Search completed in 1.18 seconds.
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.
... opening the
about:debugging page there are two ways to open
about:debugging: type
about:debugging in the firefox url bar.
... when
about:debugging opens, on the left-hand side, you'll see a sidebar with two options and information
about your remote debugging setup: setup use the setup tab to configure the connection to your remote device.
...And 17 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.
... opening the
about:debugging page there are several different ways to open
about:debugging: type "
about:debugging" in the firefox url bar.
... when
about:debugging opens, on the left-hand side, you'll see a sidebar enabling you to switch between the two main views: one for add-ons and one for workers.
...And 10 more matches
Firefox and the "about" protocol
there is a lot of useful information
about firefox hidden away behind the
about: url protocol.
... the most useful is the url
about:config, which displays preferences and settings that can be inspected and changed.
... available
about: urls depend on your specific firefox version.
...And 9 more matches
nsIAboutModule
netwerk/protocol/
about/nsi
aboutmodule.idlscriptable this interface is implemented to add an '
about:' page.
... the contract id ends with a parameter that corresponds to the name of the
about page.
...if it is, web pages and so forth will be allowed to link to this
about: uri.
...And 7 more matches
Custom about: URLs - Archive of obsolete content
this page describes how to register a new
about: url for your extension.
... setup for firefox 4+ this is a simple example of a custom
about page for bootstrapped addons.
... this example creates an
about page with url
about:my
aboutpage which takes a user to a page that writes some text out.
...And 6 more matches
about:memory
about:memory is a special page within firefox that lets you view, save, load, and diff detailed measurements of firefox's memory usage.
...perhaps you want to investigate it yourself, or perhaps someone has asked you to use
about:memory to generate "memory reports" so they can investigate a problem you are having.
...once firefox's memory usage has gotten high) open a new tab and type "
about:memory" into the address bar and hit "enter".
...And 6 more matches
Appendix: What you should know about open-source software licenses - Archive of obsolete content
appendix: what you should know
about open-source software licenses draft this page is not complete.
...
about copyright to put it very broadly, copyright is a creator’s right to decide how a work is published and how it is used.
... the different meanings of the word “use” when we talk
about the ways an author uses a work, we mean printing or recording and distributing it.
...And 5 more matches
About the JavaScript reference - JavaScript
the javascript reference serves as a repository of facts
about the javascript language.
... functions chapter
about javascript functions.
... classes chapter
about javascript classes introduced in ecmascript 2015.
...And 2 more matches
Index - Web APIs
126 audiocontext.createjavascriptnode() api, audio, method, obsolete, reference, web, createjavascriptnode the following script illustrates the use of createjavascriptnode(): 127 audiocontext.createmediaelementsource() api, audiocontext, method, reference, référence(2), web audio api, createmediaelementsource for more details
about media element audio source nodes, check out the mediaelementaudiosourcenode reference page.
... 129 audiocontext.createmediastreamsource() api, audio, audiocontext, audionode, media, mediastream, mediastreamtrack, method, reference, web, web audio, web audio api, createmediastreamsource for more details
about media stream audio source nodes, check out the mediastreamaudiosourcenode reference page.
... 263 battery status api api, apps, battery, battery api, battery status api, guide, mobile, obsolete, overview the battery status api, more often referred to as the battery api, provides information
about the system's battery charge level and lets you be notified by events that are sent when the battery level or charging status change.
...And 138 more matches
Index - Archive of obsolete content
or perhaps you're just curious
about the history of an obsolete feature or api, and how it worked.
... 4 api api, archive archived documentation
about obsolete web standards apis.
... 109 system/runtime access to information
about firefox's runtime environment.
...And 58 more matches
Index - Learn web development
5 css and javascript accessibility best practices accessibility, article, css, codingscripting, guide, javascript, learn, color, contrast, hiding, unobtrusive we hope this article has given you a good amount of detail and understanding
about the accessibility issues surrounding css and javascript use on web pages.
... 8 mobile accessibility accessibility, article, beginner, codingscripting, learn, mobile, responsive, screenreader, touch in this article, we have provided you with some details
about common mobile accessibility-specific issues and how to overcome them.
...you should now also have a thirst to learn
about the implementation details that can make sites accessible, and we'll start on that in the next section, looking at why html is a good basis for accessibility.
...And 57 more matches
Index
that's a good opportunity to talk
about ssl/tls connections to servers in general (not just ev, not just websites).
...but if you don't care
about modifying the default trust permanently (recorded on disk), you can use the no-database init calls.
... 74 nss 3.21 release notes 2016-01-07, this page has been updated to include additional information
about the release.
...And 29 more matches
Index
2 accessing the windows registry using xpcom add-ons, code snippets, extensions, needsclassification, windows registry when implementing windows-specific functionality, it is often useful to access the windows registry for information
about the environment or other installed programs.
...the resources here provide information
about this language binding and how to use it.
...it lets you get pointers to components inside mozilla, and it lets you talk
about their interfaces as well.
...And 29 more matches
XUL controls - Archive of obsolete content
<button label="save" accesskey="s"/> more information
about the button element.
... <button type="menu" label="view"> <menupopup> <menuitem label="list"/> <menuitem label="details"/> </menupopup> </button> more information
about this type of menu button element.
... <button type="menu-button" label="new"> <menupopup> <menuitem label="new document"/> <menuitem label="new image"/> </menupopup> </button> more information
about this type of menu button element.
...And 16 more matches
sslfnc.html
see the description below for more information
about this option.
...for information
about the options available and the possible values to pass in this parameter, see the description of the option parameter under ssl_optionsetdefault.
...applications may disable any cipher suites that they don't know
about (for example, that they cannot present to the user via a gui).
...And 15 more matches
Mozilla
the articles below include content
about downloading and building mozilla code.
... in addition, you'll find helpful articles
about how the code works, how to build add-ons for mozilla applications and the like.
...see the gecko overview for more information
about the style system.
...And 14 more matches
Event reference
each event is represented by an object which is based on the event interface, and may have additional custom fields and/or functions used to get additional information
about what happened.
... beforeunload the window, the document and its resources are
about to be unloaded.
... focusin an element is
about to receive focus (does bubble).
...And 14 more matches
@font-feature-values - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 9.1webview android no support nochrome android no support nofirefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 9.3samsung internet android no support no@annotationchrome no support noedge no support nofirefox full support 34 full support ...
...to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 9.1webview android no support nochrome android no support nofirefox android full support 34 full support 34 full support ...
...And 13 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.
... website and blog you should definitely create your own website containing all the information
about your games, so people can see what you've worked on.
... you should also blog
about everything related to your gamedev activities.
...And 12 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.
... this article provides some hints and tips in both of these areas that will help you get more out of learning web development, as well as further reading so you can find out more information
about each sub-topic should you wish..
... effective learning let's move straight on and think
about effective learning.
...And 12 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.
...there are different opinions
about it, and in this chapter we will talk briefly
about the pros and cons of using typescript.
... note: if you are curious
about how typescript transpiles our code to javascript you can have a look at the typescript playground.
...And 12 more matches
Zombie compartments
viewing live compartments if you want to see a list of live compartments, type "
about:memory" into the address bar and click on the measure button.
... js-compartment([system principal], 0x7f10f1250000) compartment(atoms) js-compartment(
about:home) js-compartment(
about:blank) compartment([system principal], resource://gre/modules/addons/xpiprovider.jsm) when looking at user compartments there are a couple of things to be aware of.
... for example, if i open https://bugzilla.mozilla.org/show_bug.cgi?id=668871 in one tab, then compartment(https://bugzilla.mozilla.org/show_bug.cgi?id=668871) will show up in
about:memory.
...And 12 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.
...a framework is a library that offers opinions
about how software gets built.
...And 11 more matches
JSAPI User Guide
(this is a mere nicety if the process is
about to exit anyway.
...it amounts to
about 80 lines of code, as shown below.
...the garbage collector is rather eager
about its job.
...And 11 more matches
BasicCardResponse - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
...to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...And 11 more matches
Introduction to XPCOM for the DOM
the use of xpcom and nscomptr's described in this document covers
about 80% of what you need to know to read the dom code, and even write some.
...a tutorial
about how to add a new interface is also provided, and eventually, a more detailed discussion of class inheritance in c++.
...interface to a set of methods that manipulate an object (often represented by a class), without worrying
about the details of the implementation.
...And 10 more matches
Plug-in Basics - Plugins
go to the help menu, and click help and then
about plug-ins.
... type "
about:plugins" in the location bar.
...for more information
about helper applications, refer to the netscape online help.
...And 10 more matches
Index - Archive of obsolete content
for more information
about how to use an overlay to modify a menu, see using menus and popups in extensions 441 methods xul methods, xul reference no summary!
... 612 tooltips xul, xul popup guide a tooltip is used to provide descriptive help to the user
about the control that the mouse is over.
...this is a useful means of providing additional details
about a user interface without cluttering up the main interface.
...And 9 more matches
Plug-in Development Overview - Gecko Plugin API Reference
also see making plug-ins scriptable for more information
about making plug-ins accessible from the browser.
...for information
about the html elements to use, see using html to display plug-ins.
...for more information
about mime types, see these mime rfcs: rfc-2045: "multipurpose internet mail extensions (mime) part one: format of internet message bodies" rfc-2046: "multipurpose internet mail extensions (mime) part two: media types" rfc-4288: "media type specifications and registration procedures" there are some variations to how plug-ins are handled on different platforms.
...And 9 more matches
What is accessibility? - Learn web development
we traditionally think of this as being
about people with disabilities, but the practice of making sites accessible also benefits other groups such as those using mobile devices, or those with slow network connections.
... caring
about accessibility demonstrates good ethics and morals, which improves your public image.
...the key lesson here is to think beyond your own computer and how you use the web, and start learning
about how others use it — you are not your users.
...And 9 more matches
Storing the information you need — Variables - Learn web development
but one special thing
about variables is that their contained values can change.
... to understand why this is so useful, let's think
about how we'd write this example without using a variable.
... variables just make sense, and as you learn more
about javascript they will start to become second nature.
...And 9 more matches
Client-Server Overview - Learn web development
an html file containing information
about a product, or a list of products).
... head: get the metadata information
about a specific resource without getting the body like get would.
...cookies contain session data
about the client, including keys that the server can use to determine their login status and permissions/accesses to resources.
...And 9 more matches
Handling common accessibility problems - Learn web development
however, it is wrong to say that accessibility is just
about disabilities.
... in a way, this whole module is
about accessibility — cross browser testing makes sure that your sites can be used by as many people as possible.
...we've already talked
about other spheres such as responsive design and performance in other places in the module.
...And 9 more matches
Application Translation with Mercurial
the page which opens has a bar holding information
about how many texts (strings) have already been translated, how many there are in english and your locale and have the same text, and how many are missing in your local.
...in this example, the file
aboutdialog can be found in the folder browser/chrome/browser/.
...in this example we will translate the one new text with the id privatebrowsingpage.howtostart4 in the file
aboutprivatebrowsing.dtd.
...And 9 more matches
Gecko Profiler FAQ
this documents lists a number of questions asked by people in preparation for a tutorial session
about the gecko profiler.
... the gecko profiler currently doesn’t have the ability to show you information
about line numbers, neither for js code nor for native code.
... for js code, the profiler platform doesn’t capture any information
about lines.
...And 9 more matches
Plug-in Development Overview - Plugins
also see making plug-ins scriptable for more information
about making plug-ins accessible from the browser.
...for information
about the html elements to use, see using html to display plug-ins.
...for more information
about mime types, see these mime rfcs: rfc-2045: "multipurpose internet mail extensions (mime) part one: format of internet message bodies" rfc-2046: "multipurpose internet mail extensions (mime) part two: media types" rfc-4288: "media type specifications and registration procedures" there are some variations to how plug-ins are handled on different platforms.
...And 9 more matches
RTCStatsReport - Web APIs
codec an rtccodecstats object containing statistics
about a codec currently being used by rtp streams to send or receive data for the rtcpeerconnection.
... data-channel an rtcdatachannelstats object which contains statistics
about each rtcdatachannel on the connection.
... inbound-rtp an rtcinboundrtpstreamstats object providing statistics
about inbound data being received from remote peers.
...And 9 more matches
RTCStatsType - Web APIs
codec an rtccodecstats object containing statistics
about a codec currently being used by rtp streams to send or receive data for the rtcpeerconnection.
... data-channel an rtcdatachannelstats object which contains statistics
about each rtcdatachannel on the connection.
... inbound-rtp an rtcinboundrtpstreamstats object providing statistics
about inbound data being received from remote peers.
...And 9 more matches
Using Service Workers - Web APIs
however, it made many assumptions
about what you were trying to do and then broke horribly when your app didn’t follow those assumptions exactly.
...if however you find that demo code is not working in your installed versions, you might need to enable a pref: firefox nightly: go to
about:config and set dom.serviceworkers.enabled to true; restart browser.
... microsoft edge: go to
about:flags and tick enable service workers; restart browser.
...And 9 more matches
Introduction to Public-Key Cryptography - Archive of obsolete content
for more information
about the role of cas, see "how ca certificates are used to establish trust".
...for more detailed information
about ssl, see "introduction to ssl." signed and encrypted email some email programs support digitally signed and encrypted email using a widely accepted protocol known as secure multipurpose internet mail extension (s/mime).
...(for information
about the way digital signatures work, see "digital signatures".) s/mime also makes it possible to encrypt email messages.
...And 8 more matches
HTML: A good basis for accessibility - Learn web development
html and accessibility as you learn more
about html — read more resources, look at more examples, etc.
...after all, you can use a combination of css and javascript to make just
about any html element behave in whatever way you want.
... good semantics we've already talked
about the importance of proper semantics, and why we should use the right html element for the job.
...And 8 more matches
HTML: A good basis for accessibility - Learn web development
html and accessibility as you learn more
about html — read more resources, look at more examples, etc.
...after all, you can use a combination of css and javascript to make just
about any html element behave in whatever way you want.
... good semantics we've already talked
about the importance of proper semantics, and why we should use the right html element for the job.
...And 8 more matches
HTML text fundamentals - Learn web development
(you'll find out more
about these later on in the course.) we've applied some css to it to make it look like a top level heading, but since it has no semantic value, it will not get any of the extra benefits described above.
...lists are everywhere on the web, too, and we've got three different types to worry
about.
...that solution is not saved over the user code if(solution.value === 'show solution') { userentry = textarea.value; } else { solutionentry = textarea.value; } updatecode(); }; ordered ordered lists are lists in which the order of the items does matter—let's take a set of directions as an example: drive to the end of the road turn right go straight across the first two round
abouts turn left at the third round
about the school is on your right, 300 meters up the road the markup structure is the same as for unordered lists, except that you have to wrap the list items in an <ol> element, rather than <ul>: <ol> <li>drive to the end of the road</li> <li>turn right</li> <li>go straight across the first two round
abouts</li> <li>turn left at the third round
about</li> <...
...And 8 more matches
An Overview of XPCOM
« previousnext » this is a book
about xpcom.
... the book is presented as a tutorial
about creating xpcom components, but it covers all major aspects, concepts, and terminology of the xpcom component model along the way.
...the difference here is that a "helloworld" application in xpcom finds this screen-printing functionality at runtime and never has to know
about stdio when it's compiled.
...And 8 more matches
Mail and RDF
you should learn
about rdf before reading this document or you will be hopelessly confused.
... datasources we have a few primary datasources used in mail: nsmsgaccountdatasource - answers queries
about arcs coming out of msgaccounts:/.
...note that it does not actually know anything
about the servers who's uris it returns.
...And 8 more matches
Fullscreen API - Web APIs
see using feature policy to learn more
about using feature policy to control access to an api.
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.
...And 8 more matches
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
if you're interested in more
about gecko's msaa implementation, read gecko info for windows accessibility vendors to learn how msaa clients can utilize gecko's msaa support.
...they need to know
about focus changes and other events, and it needs to know what objects are contained in the current document or dialog box.
...for example, gecko support isimpledomnode to provide information
about the dom node for an accessible object.
...And 8 more matches
HTTP Index - HTTP
70 content-disposition http, reference, header in a multipart/form-data body, the http content-disposition general header is a header that can be used on the subpart of a multipart body to give information
about the field it applies to.
... 123 feature-policy: accelerometer accelerometer, directive, feature policy, http, reference the http feature-policy header accelerometer directive controls whether the current document is allowed to gather information
about the acceleration of the device through the accelerometer interface.
... 124 feature-policy: ambient-light-sensor ambient light sensor, feature policy, http the http feature-policy header ambient-light-sensor directive controls whether the current document is allowed to gather information
about the amount of light in the environment around the device through the ambientlightsensor interface.
...And 8 more matches
JavaScript modules - JavaScript
it has therefore made sense in recent years to start thinking
about providing mechanisms for splitting javascript programs up into separate modules that can be imported when needed.
... the good news is that modern browsers have started to support module functionality natively, and this is what this article is all
about.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 48safari full support 10.1webview android full support 61chrome android full support 61firefox android full support ...
...And 8 more matches
test/assert - Archive of obsolete content
you can use this object to make assertions
about your program's state.
... assert an object used to make assertions
about a program's state in order to implement unit tests.
... message : string optional message to log, providing extra information
about the test.
...And 7 more matches
Popup Guide - Archive of obsolete content
tooltips when the mouse is positioned over a ui control, a tooltip provides a small box with descriptive help
about that control.
... working with popups the following additional information is available
about manipulating menus and popups.
...for detailed information
about how to open a popup see opening a popup or opening a menu.
...And 7 more matches
Mozilla release FAQ - Archive of obsolete content
general questions
about the mozilla project what is mozilla?
...for example, if you were to make a proposal to compress whole webpages before sending them, devise a new protocol to do so, research how http works, how html works, and think
about all the good *and* bad points of reworking things.
...when i try to use cvs on windows, i get an error
about no home directory you need to set the home environment variable to a valid directory, as cvs was designed with unix in mind, and wants to put a file in your home directory (the password file) i'm on a unix system, and still am having problems building here's a brief guide to common build problems: cc1: invalid option 'foo' cc: no such file or directory 'foo' these are almost always caused by you...
...And 7 more matches
WAI-ARIA basics - Learn web development
an important point
about wai-aria attributes is that they don't affect anything
about the web page, except for the information exposed by the browser's accessibility apis (where screenreaders get their information from).
... next, you need to worry
about whether the browsers in question support aria features and expose them via their apis, but also whether screenreaders recognise that information and present it to their users in a useful way.
...instead, we will cover the most critical wai-aria features for you to know
about; if we don't mention any support details, you can assume that the feature is well-supported.
...And 7 more matches
What’s in the head? Metadata in HTML - Learn web development
it contains information such as the page <title>, links to css (if you choose to style your html content with css), links to custom favicons, and other metadata (data
about the html, such as the author, and important keywords that describe the document.) in this article we'll cover all of the above and more, in order to give you a good basis for working with markup.
... objective: to learn
about the html head, its purpose, the most important items it can contain, and what effect it can have on the html document.
...instead, the head's job is to contain metadata
about the document.
...And 7 more matches
CustomizableUI.jsm
note that it is expressly not really aware
about the specific ui used by users to make customizations.
...customizableui assumes that each area it is told
about is present in every browser window.
...anode is the dom node changed, anextnode the dom node (if any) before which a widget will be inserted, acontainer the actual dom container (could be an overflow panel in case of an overflowable toolbar), and awasremoval is true iff the action
about to happen is the removal of the dom node.
...And 7 more matches
DevTools API - Firefox Developer Tools
a definition is a js light object that exposes different information
about the tool (like its name and its icon), and a build method that will be used later-on to start an instance of this tool.
... parameters: tooldefinition {tooldefinition} - an object that contains information
about the tool.
... parameters: themedefinition {themedefinition} - an object that contains information
about the theme.
...And 7 more matches
HTTP headers - HTTP
request headers contain more information
about the resource to be fetched, or
about the client requesting the resource.
... response headers hold additional information
about the response, like its location or
about the server providing it.
... entity headers contain information
about the body of the resource, like its content length or mime type.
...And 7 more matches
Extension Versioning, Update and Compatibility - Archive of obsolete content
compatibility updates during the automatic update checks, applications look for both new versions and updated compatibility information
about the currently installed version of an add-on.
...it lists information
about 2 different versions of the extension with id foobar@developer.mozilla.org.
... it is important to get the initial rdf:description's
about attribute correct.
...And 6 more matches
Install Manifests - Archive of obsolete content
firefox or thunderbird) uses to determine information
about an add-on as it is being installed.
... it contains metadata identifying the add-on, providing information
about who created it, where more information can be found
about it, which versions of what applications it is compatible with, how it should be updated, and so on.
... layout the basic layout of an install manifest is like so: <?xml version="1.0" encoding="utf-8"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <!-- properties --> </description> </rdf> some properties are required, some are optional.
...And 6 more matches
The box model - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the css box model, what makes up the box model and how to switch to the alternate model.
...any direct children of this box will become flex items and will be laid out according to the rules set out in the flexbox spec, which you'll learn
about later on.
... note: to read more
about the values of display, and how boxes work in block and inline layout, take a look at the mdn guide to block and inline layout.
...And 6 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.
...there are different opinions
about it, and in this chapter we will talk briefly
about the pros and cons of using typescript.
... learning more
about svelte in this section we'll give you some resources and projects to go and check out, to take your svelte learning further.
...And 6 more matches
Introduction to cross browser testing - Learn web development
you need to think
about: different browsers other than the one or two that you use regularly on your devices, including slightly older browsers that some people might still be using, which don't support all the latest, shiniest css and javascript features.
...to start with, when we talk
about sites "working cross browser", we are really saying that they should provide an acceptable user experience across different browsers.
... second, when we say "across an acceptable number of web browsers", we don't mean 100% of the browsers in the world — this is just
about impossible.
...And 6 more matches
Package management basics - Learn web development
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.
...type in something really simple, like "a simple npm package to learn
about using npm", then press return.
...open it up and it should look something like this: { "name": "parcel-experiment", "version": "1.0.0", "description": "a simple npm package to learn
about using npm", "main": "index.js", "scripts": { "test": "echo \"error: no test specified\" && exit 1" }, "author": "chris mills", "license": "isc" } so this is the config file that defines your package.
...And 6 more matches
Creating the Component Code
using xpcom utilities to make things easier shows some simpler and more elegant ways to create an xpcom component using generic macros, and this chapter is more
about learning the basics.
...in this case, the long-hand implementation gives us an opportunity to talk
about various features of xpcom.
...instead, the nsimodule can ask for implementation details
about the xpcom object.
...And 6 more matches
Observer Notifications
see receiving startup notifications for more information
about how this works.
... quit-application the application is
about to quit.
...see working with bfcache for information
about the bfcache, and inner and outer windows for details
about how the window hierarchy works.
...And 6 more matches
WebIDL bindings
the webidl bindings are generated at build time based on two things: the actual webidl file and a configuration file that lists some metadata
about how the webidl should be reflected into gecko-internal code.
... the configuration file, dom/bindings/bindings.conf, is basically a python dict that maps interface names to information
about the interface, called a descriptor.
... add an entry to dom/bindings/bindings.conf that sets some basic information
about the implementation of the interface.
...And 6 more matches
Network request details - Firefox Developer Tools
this pane provides more detailed information
about the request.
... network request details clicking on a row displays a new pane in the right-hand side of the network monitor, which provides more detailed information
about the request.
... this includes: information
about the request status: the response status code for the request; click the "?" icon to go to the reference page for the status code.
...And 6 more matches
Using IndexedDB - Web APIs
about this document this tutorial walks you through using the asynchronous api of indexeddb.
... if you are not familiar with indexeddb, you should first read basic concepts
about indexeddb.
...(to learn more
about how much storage you can have for each browser, see storage limits.) obviously, browsers do not want to allow some advertising network or malicious website to pollute your computer, so browsers used to prompt the user the first time any given web app attempts to open an indexeddb for storage.
...And 6 more matches
WebGLRenderingContext - Web APIs
webglrenderingcontext.getbufferparameter() returns information
about the buffer.
... webglrenderingcontext.getframebufferattachmentparameter() returns information
about the framebuffer.
... webglrenderingcontext.getrenderbufferparameter() returns information
about the renderbuffer.
...And 6 more matches
WebRTC Statistics API - Web APIs
rtcicecandidatepairstats rtcstats certificate statistics
about a certificate being used by an rtcicetransport.
... rtccertificatestats rtcstats codec statistics
about a specific codec being used by streams being sent or received by this connection.
... rtcdatachannelstats rtcstats ice-server statistics
about the connection to an ice server (stun or turn.
...And 6 more matches
Viewpoints and viewers: Simulating cameras in WebXR - Web APIs
there are a few articles
about the fundamental math, geometry, and other concepts behind webgl and webxr which may be useful to read before or while reading this one, including: explaining basic 3d theory matrix math for the web webgl model view projection geometry and reference spaces in webxr ed.
... cameras and relative movement when a classic live-action movie is filmed, the actors are on a set and move
about the set as they perform, with one or more cameras watching their moves.
... points of view since the camera is a virtual object which, rather than necessarily representing a physical object in the virtual world, represents a viewer's position and viewing direction, it's useful to think
about the kinds of situation that call for the use of a camera.
...And 6 more matches
Geometry and reference spaces in WebXR - Web APIs
you can learn more
about the individual operations in matrix math for the web.
...in virtual reality (vr), it's all
about creating a sense of space in which the user's movements are precisely matched by the imagery presented on the virtual display, to prevent disjoints and disconnects that could cause discomfort or worse.
... thus it's all
about creating a sense of space.
...And 6 more matches
Media container formats (file types) - Web media technologies
in this guide, we'll look at the container formats used most commonly on the web, covering basics
about their specifications as well as their benefits, limitations, and ideal use cases.
...see codecs used by webrtc for information
about codecs commonly used for making webrtc calls, as well as browser compatibility information around codec support in webrtc.
... index of media container formats (file types) to learn more
about a specific container format, find it in this list and click through to the details, which include information
about what the container is typically useful for, what codecs it supports, and which browsers support it, among other specifics.
...And 6 more matches
Codecs used by WebRTC - Web media technologies
you'll find details
about this on page 47 of rfc 6184.
... mandatory audio codecs codec name browser compatibility opus chrome, edge, firefox, safari g.711 pcm (a-law) chrome, firefox, safari g.711 pcm (µ-law) chrome, firefox, safari see below for more details
about any webrtc-specific considerations that exist for each codec listed above.
...you can find more general information
about opus and its capabilities, and how other apis can support opus, in the corresponding section of our guide to audio codecs used on the web.
...And 6 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
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.
...you can learn more
about chromebug and download it at http://getfirebug.com/wiki/index.php/chromebug_user_guide you may also find this extension to be valuable: extension developer https://addons.mozilla.org/firefox/addon/7434 developing extensions: what you need to know let’s delve into chrome, something you’ll need to know
about in order to develop extensions.
...ensions └───helloworld │ chrome.manifest │ install.rdf │ └───content clock.js clock.xul overlay.xul table 2: how files are used in phase 1 fixme: make the table cleaner file name role install.rdf called the install manifest, this gives basic information
about the extension, and is required in order for the extension to be installed in firefox..
...And 5 more matches
Creating toolbar buttons (Customize Toolbar Window) - Archive of obsolete content
explaining overlays is beyond the scope of this tutorial -- you can read
about them in the xul tutorial.
... here are some discussions at mozillazine
about adding a toolbar button in a bootstrap addon: programmatically add a button to toolbar palette?
...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("chrome://myextension/skin/btn_la...
...And 5 more matches
Archive of obsolete content
or perhaps you're just curious
about the history of an obsolete feature or api, and how it worked.
... api archived documentation
about obsolete web standards apis.
... archived mozilla and build documentation these articles are archived, obsolete documents
about mozilla, gecko, and the process of building mozilla projects.
...And 5 more matches
Game distribution - Game development
this article covers all you need to know
about the ways in which you can distribute your newly created game into the wild.
... you don't need to have separate teams to work on the same title targeting different platforms with only one code base to worry
about.
...you don't even have to worry
about looking for a hosting provider as it's possible to host games on github pages.
...And 5 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
144 fetch metadata request header fetch metadata request headers, glossary a fetch metadata request header is a http request header that provides additional information
about the context the request originated from.
... 202 head codingscripting, glossary, html, head, metadata the head is the part of an html document that contains metadata
about that document, such as author, description, and links to css or javascript files that should be applied to the html.
...hoisting was thought up as a general way of thinking
about how execution contexts (specifically the creation and execution phases) work in javascript.
...And 5 more matches
CSS and JavaScript accessibility best practices - Learn web development
screen reader users don't care
about any of this — they are happy with the content as long as the source order makes sense, and they can get to it all.
...think carefully
about whether you need that shiny javascript-powered 3d information box, or whether plain old text would do.
... think carefully
about whether you need a complex non-standard form widget, or whether a text input would do.
...And 5 more matches
Organizing your CSS - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn some tips and best practices for organizing stylesheets, and find out
about some of the naming conventions and tools in common usage to help with css organization and team working.
...you will thank yourself when you come back to this project in a year or so, and can vaguely remember there was a great tutorial
about that thing, but where is it?
...for example, look at the classes applied to this html from the page
about bem naming conventions: <form class="form form--theme-xmas form--simple"> <input class="form__input" type="text" /> <input class="form__submit form__submit--disabled" type="submit" /> </form> the additional classes are similar to those used in the oocss example, however they use the strict naming conventions of bem.
...And 5 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.
... on the technical side, creating fancy boxes are all
about mastering css border and background properties and how to apply them to a given box.
... but beyond the technics its also all
about unleashing your creativity.
...And 5 more matches
Cooperative asynchronous JavaScript: Timeouts and intervals - Learn web development
clearing intervals setinterval() keeps running a task forever, unless you do something
about it.
...have a think
about it: the number of seconds in an hour is 3600.
... things to keep in mind
about settimeout() and setinterval() there are a few things to keep in mind when working with settimeout() and setinterval().
...And 5 more matches
Basic math in JavaScript — numbers and operators - Learn web development
before you start to get worried
about your brain melting, stop right there!
... for a start, we are just going to stick to decimal numbers throughout this course; you'll rarely come across a need to start thinking
about other types, if ever.
...but for the purposes of this course, we'll just worry
about number values.
...And 5 more matches
Getting started with Svelte - Learn web development
it should take you
about 30 minutes to complete.
...�── public │ ├── favicon.ico │ ├── index.html │ ├── global.css │ └── build │ ├── bundle.css │ ├── bundle.css.map │ ├── bundle.js │ └── bundle.js.map └── src ├── app.svelte └── main.js the contents are as follows: package.json and package-lock.json: contains information
about the project that node.js/npm uses to keep it organized.
... you don't need to understand this file at all to complete this tutorial, however, if you'd like to learn more
about it, you can read what is the file package.json?
...And 5 more matches
Understanding client-side JavaScript frameworks - Learn web development
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.
...we are not aiming to exhaustively teach you everything you need to know
about react/reactdom, or vue, or some other specific framework; the framework teams' own docs (and other resources) do that job already.
...we want you to go forward and learn
about frameworks in a pragmatic way that doesn't forget
about web platform fundamental best practices such as accessibility.
...And 5 more matches
Handling common JavaScript problems - Learn web development
confusion
about this, in terms of what scope it applies to, and therefore if its value is what you intended.
... linters as with html and css, you can ensure better quality, less error-prone javascript code using a linter, which points out errors and can also flag up warnings
about bad practices, etc., and be customized to be stricter or more relaxed in their error/warning reporting.
... other uses there are other ways to use such linters; you can read
about them on the jshint and eslint install pages.
...And 5 more matches
Introducing a complete toolchain - Learn web development
three stages of tools as we talked
about in chapter 1, the toolchain will be structured into the following phases: safety net: making the software development experience stable and more efficient.
...however, bear in mind that if you want to refine and enforce a rule
about how your code looks (or validates), it's very likely that it can be done with the right eslint configuration.
...here is an example eslint output: ./my-project/src/index.js 2:8 error 'react' is defined but never used no-unused-vars 22:20 error 'body' is defined but never used no-unused-vars 96:19 error 'b' is defined but never used no-unused-vars ✖ 3 problems (3 errors, 0 warnings) note: we'll install eslint in the next section; don't worry
about this for now.
...And 5 more matches
Client-side tooling overview - Learn web development
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.
... linters linters are tools that check through your code and tell you
about any errors that are present, what error types they are, and what code lines they are present on.
...you can find more information
about it at git and github.
...And 5 more matches
Mozilla accessibility architecture
accessibility apis are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information
about document content and ui controls, as well as important events like changes of focus.
...accessibility apis on each operating system have built-in assumptions
about what is the most important information, and how an accessibility server like mozilla should use the api's programmatic interfaces to expose this information to an accessibility client (the assistive technology).
...the shared code makes itself available to the toolkit-specific code via generic xpcom interfaces that return information
about objects we want to expose.
...And 5 more matches
Displaying Places information using views
see querying places for information
about obtaining and using nsinavhistoryresult objects, which this page assumes you are familiar with.
...see the tree reference and trees tutorial for general information
about trees.
...how do you ask it
about the data it displays?
...And 5 more matches
Getting Started with Chat
for example, do not talk
about thunderbird issues in #firefox.
... channels here is a list of channels you should be aware of as a member of the mozilla community: (remember to use irc.mozilla.org and port 6697 or 6667 for your server settings) #qa a channel for qa discussion #developers a channel for mozilla development discussion #sumo a channel for support with firefox for more information
about the mozilla irc network and more channels, go here.
... /whois nickname display information
about the specified user.
...And 5 more matches
Mozilla DOM Hacking Guide
we will talk a lot
about xpconnect in this document, since it is so important for the dom.
...i'm talking
about the "scriptable flags".
...see section 1.5 for more information
about the init() method.
...And 5 more matches
Investigating leaks using DMD heap scan mode
if your leak is a ghost window, it can be handy to get an
about:memory report and write down the pid of the leaking process.
... the output will look something like this, after a message
about loading progress: 0x7f0882fe3230 [fragmentorelement (xhtml) script https://www.example.com] --[[via hash] mlistenermanager]--> 0x7f0899b4e550 [eventlistenermanager] --[mlisteners event=onload listenertype=3 [i]]--> 0x7f0882ff8f80 [callbackobject] --[mincumbentglobal]--> 0x7f0897082c00 [nsglobalwindowinner # 2147483662 inner https://www.example.com] root 0x7f0882fe3230 is a re...
...together, these lines show a chain of strong references from an object the cycle collector thinks needs to be kept alive, 0x7f0899b4e550, to the object 0x7f0897082c00 that you asked
about.
...And 5 more matches
Memory reporting
this is most obviously used in
about:memory and telemetry.
... they provide more information to dmd, which is a tool that helps keep
about:memory's "heap-unclassified" number low.
...if slop bytes aren't measured they'll end up in
about:memory's heap-unclassified entry, which is bad.
...And 5 more matches
NSS tools : modutil
-list [modulename] display basic information
about the contents of the secmod.db file.
... specifying a modulename displays detailed information
about a particular module and its slots and tokens.
... "./pk11inst.dir/setup.sh" executed successfully installed module "example pkcs #11 module" into module database installation completed successfully adding module spec each module has information stored in the security database
about its configuration and parameters.
...And 5 more matches
NSS tools : modutil
-list [modulename] display basic information
about the contents of the secmod.db file.
... specifying a modulename displays detailed information
about a particular module and its slots and tokens.
... "./pk11inst.dir/setup.sh" executed successfully installed module "example pkcs #11 module" into module database installation completed successfully adding module spec each module has information stored in the security database
about its configuration and parameters.
...And 5 more matches
NSS tools : signtool
for more information
about the syntax used with this file, see "tips and techniques".
...for example, you can use it with the -l option to get detailed information
about a particular signing certificate.
...for more information
about the use of the -g option, see "generating test object-signing certificates""generating test object-signing certificates" on page 1241.
...And 5 more matches
Handling Mozilla Security Bugs
thus people have strong feelings
about how security-related bugs are handled, and in particular
about the degree to which information
about such bugs is publicly disclosed.
...in particular, we understand and acknowledge the concerns of those who believe that all information
about security vulnerabilities should be publicly disclosed as soon as it is known, so that users may take immediate steps to protect themselves and so that problems can get the maximum amount of developer attention and be fixed as soon as possible.
... full information
about security bugs will be restricted to a known group of people, using the bugzilla access control restrictions described above.
...And 5 more matches
Finishing the Component
the interfaces needed to block certain urls from loading are not frozen, and there is still some debate
about how exactly this functionality should be exposed to embedders and component developers, so the apis are not ready to be published.
...see the following sidebar for information
about how frozen and unfrozen interfaces can affect your component development, and for technical details
about how interface changes beneath your code can cause havoc.
...they may be able to suggest a supported alternative, or they may be able to notify you
about pending changes.
...And 5 more matches
Starting WebLock
you can then use the service manager to add the component to the category: nsresult rv; nscomptr<nsiservicemanager> servman = do_queryinterface((nsisupports*)acompmgr, &rv); if (ns_failed(rv)) return rv; do_queryinterface the previous code uses the special nscomptr function do_queryinterface that lets you queryinterface without having to worry
about reference counting, error handling, and other overhead.
... instead of starting with the implementation, developers use xpidl (see xpidl and type libraries for more information
about xpidl) to define the interface to the component: how the functionality should be organized, expressed, and exposed to its clients.
... as a strongly typed and implementation-agnostic language, xpidl requires that you be quite specific
about the apis, the list of parameters, their order, and their types.
...And 5 more matches
Using XPCOM Components
component examples you can find out more
about how you can use the particular components described here in the xpcom api reference.
... see http://www.mozilla.org/scriptable/ for more information
about xpconnect and javascript.
...in object-oriented programming, it's typical to design the interface first-to define the functionality that's going to be provided in the abstract, without worrying
about how this functionality will be achieved.
...And 5 more matches
mozIRegistry
it's not really
about any "registry interface" so much as it's
about how mozilla supports a more dynamic binding between interface clients and the code that actually provides the implementation of those interfaces.
... it happens that this objective requires storing information
about which implementation to use in a place distinct from your source code.
...the information below is intended to tell you everything you need to know
about how to do that.
...And 5 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.
... var ww = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher); var win = ww.openwindow(null, "chrome://myextension/content/
about.xul", "
aboutmyextension", "chrome,centerscreen", null); window object note the win variable in the above section, which is assigned the return value of window.open.
... finding already opened windows the window mediator xpcom component (nsiwindowmediator interface) provides information
about existing windows.
...And 5 more matches
Slottable - Web APIs
to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 ...
...to change preferences in firefox, visit
about:config.
...And 5 more matches
Inputs and input sources - Web APIs
a full webxr experience isn't just
about showing the user a wholly virtual scene or augmenting reality by adding to or altering the world around them.
... managing input sources when multiple input sources are available, you need to be able to obtain information
about each one, including its position and orientation, its targeting ray (if applicable to your needs), and details that can help you decide how to present the input source visually, if at all.
... to manage input sources, then, you need to be able to enumerate input sources, examine profile information
about each input source, and decide how to use each input controller.
...And 5 more matches
Rendering and the WebXR frame animation callback - Web APIs
so if the center of the viewer's head is located at [0.0, 2.0, 0.0] (
about two meters above ground level at the center of the space horizontally), we first need to render the scene from, say, [-0.032, 2.0, 0.0] (32mm to the left of center) and then render it again at [0.032, 2.0, 0.0].
...because each eye is offset to one side or the other of the head's centerline, and each eye sees
about the same field of view, the result is that each eye sees a slightly different part of the world in front of it, and from a slightly different angle.
...and because of those differences between what is seen by the left eye versus the right eye, the brain is able to infer a great deal of information
about how deep the object is, its size, and more.
...And 5 more matches
Applying color to HTML elements using CSS - HTML: Hypertext Markup Language
these can be used on just
about any element.
...see box properties in the box model to learn
about the relationship between elements and their borders, and the article styling borders using css to learn more
about applying styles to borders.
... you can use the border shorthand property, which lets you configure everything
about the border in one shot (including non-color features of borders, such as its width, style (solid, dashed, etc.), and so forth.
...And 5 more matches
Web video codec guide - Web media technologies
a fairly typical 30 minute video conference would need
about 447.9 gb of storage, and a 2-hour movie would take almost 1.79 tb (that is, 1790 gb).
...each codec provides a link to a section below which offers additional details
about the codec, including specific capabilities and compatibility issues you may need to be aware of.
...l mpeg, quicktime mpeg-2 mpeg-2 part 2 visual mp4, mpeg, quicktime theora theora ogg vp8 video processor 8 3gp, ogg, webm vp9 video processor 9 mp4, ogg, webm factors affecting the encoded video as is the case with any encoder, there are two basic groups of factors affecting the size and quality of the encoded video: specifics
about the source video's format and contents, and the characteristics and configuration of the codec used while encoding the video.
...And 5 more matches
SVG documentation index - SVG: Scalable Vector Graphics
13 svg attribute reference drawing, landing, needshelp, overview, responsive design, svg, svg attribute, svg reference, vector graphics svg elements can be modified using attributes that specify details
about exactly how the element should be handled or rendered.
... 48 color-rendering svg, svg attribute the color-rendering attribute provides a hint to the svg user agent
about how to optimize its color interpolation and compositing operations.
... 107 image-rendering needsexample, svg, svg attribute the image-rendering attribute provides a hint to the browser
about how to make speed vs.
...And 5 more matches
Bootstrapped extensions - Archive of obsolete content
backward compatibility because older versions of firefox don't know
about the bootstrap property or bootstrap.js file, it's not overly difficult to create an xpi that will work on both as a bootstrappable extension and as a traditional extension.
... shutdown called when the extensidisableon needs to shut itself down, such as when the application is quitting or when the extension is
about to be upgraded or disabled.
... bootstrap data each of the entry points is passed a simple data structure containing some useful information
about the add-on being bootstrapped.
...And 4 more matches
List of Mozilla-Based Applications - Archive of obsolete content
this list is likely to be incomplete since we think there are many dark matter projects that we don't know
about.
... if you have information
about a new project or extra information
about an existing project, please feel free to update this page.
... name description additional information 389 directory server ldap server uses nss a380 seatback entertainment system media software this blog post mentions a reference to mozilla being used but i couldn't find more information
about it.
...And 4 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.
... for the very latest information
about psm, nss, and other crypto-related mozilla developments, see the mozilla.dev.tech.crypto newsgroup or the corresponding dev-tech-crypto mailing list.
...specific questions
about licensing of the psm and nss source code should be directed to the netscape.public.mozilla.license newsgroup or the associated mozilla-license mailing list.
...And 4 more matches
Venkman Introduction - Archive of obsolete content
for more information
about the latest improvements and versions, see the venkman development page.
...for more information
about this counter and the data, see item 2.2 in the venkman faq.) when you first start venkman, the basic views are arranged as in the screenshot above—though you can customize the layout and presence of the different views however you want, as we describe in the view customization section below.
... the scripts that have been loaded by the javascript engine appear in the loaded scripts window (for more information
about how scripts are loaded and accessed in venkman, see "loading scripts into the debugger").
...And 4 more matches
SeaMonkey - making custom toolbar (SM ver. 1.x) - Archive of obsolete content
you can also use this page to learn
about extensions, and as a starting point if you plan to write a more complex extension.
... note: for information
about how to find the directory where you installed seamonkey, see: installation directory if you cannot easily find the directory, you can use the following method to find it.
...paste it into the new file: <?xml version="1.0" encoding="utf-8"?> <!doctype rdf:rdf> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <rdf:seq rdf:
about="urn:mozilla:package:root"> <rdf:li rdf:resource="urn:mozilla:package:custombutton"/> </rdf:seq> <rdf:description rdf:
about="urn:mozilla:package:custombutton" chrome:displayname="custom button" chrome:description="my custom toolbar button" chrome:author="my name" chrome:name="custombutton" chrome:localeversion="1.8" chrome:skinversion="1.5" chrome:extensio...
...And 4 more matches
Manifest Files - Archive of obsolete content
for more information
about this feature, see xpcnativewrapper.
...for more information
about themes, see themes.
... for more information
about locales, see localization.
...And 4 more matches
The Implementation of the Application Object Model - Archive of obsolete content
by enforcing this distinction, we can successfully defend ourselves from any claims that we were "mucking
about with strange new html" when we could have been working on our standards story.
...this inability to provide a cleanly inherited system argues for a different approach, namely that all content node implementations be the same kind of object, and that those objects communicate with their pluggable content through this new streamlined interface we talked
about earlier.
...in order to achieve aggregation of data, a content node implementation cannot make any assumptions
about what kind of children it holds.
...And 4 more matches
2006-10-13 - Archive of obsolete content
summary: mozilla.dev.apps.firefox - october 6, 2006 - october 13, 2006 announcements firefox vista compatible and versioning heads up robert strong describes the compatibility between windows vista and firefox, also
about the versioning change.
... large discussion
about why the use of the sequence 2.0.0.*.
... discussions everyone and his goldfish thinks bug 300198 should be fixed large response to the discussion
about the bug: https://bugzilla.mozilla.org/show_bug.cgi?id=300198, regarding middle clicking on a tab.
...And 4 more matches
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.
...(what it is, how to use it) cross-post-and followup fx2 announcment to support-firefox request for when the announcement
about firefox 2's release to be posted on the mozilla.dev.apps.firefox newsgroup.
... debug minefield on intel mac an inqury
about how to debug minefield on an intel mac.
...And 4 more matches
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.
...(what it is, how to use it) cross-post-and followup fx2 announcment to support-firefox request for when the announcement
about firefox 2's release to be posted on the mozilla.dev.apps.firefox newsgroup.
... debug minefield on intel mac an inqury
about how to debug minefield on an intel mac.
...And 4 more matches
Common Firefox theme issues and solutions - Archive of obsolete content
@media all and (-moz-windows-compositor) { /* make transition to fullscreen mode seamlessly in firefox 10+ */ #main-window[infullscreen="true"] { -moz-appearance: none; background-color: -moz-dialog!important; } } for more information
about this issue please see bug 732757 and bug 732757 and this mozillazine thread.
...vicon { -moz-image-region: rect(0, 32px, 16px, 16px); } #identity-box:hover:active > #identity-box-inner > #page-proxy-stack > #page-proxy-favicon, #identity-box[open=true] > #identity-box-inner > #page-proxy-stack > #page-proxy-favicon { -moz-image-region: rect(0, 48px, 16px, 32px); } #page-proxy-favicon[pageproxystate="invalid"] { opacity: 0.5; } for more information
about identity boxes please see the identity box section of the amo editors theme review guidelines no visual clue for disabled url bars there needs to be a visual clue when url bar is disabled.
... "
about" pages
about:addons disabled add-on icons are not grey scale in tools > add-ons, the icons of disabled icons need to be converted to grey scale.
...And 4 more matches
Index - Game development
without promotion, they wouldn't even be able to learn
about it and play it.
...you have a whole lot of options to chose from with most of them being free, so it's only
about your enthusiasm and available time.
...it is assumed that before reading this you have read our 3d collision detection introductory article first, and have basic knowledge
about three.js.
...And 4 more matches
Desktop gamepad controls - Game development
pure javascript approach let's think
about implementing pure javascript gamepad controls in our little controls demo first to see how it would work.
... useful variables and functions: var gamepadapi = { active: false, controller: {}, connect: function(event) {}, disconnect: function(event) {}, update: function() {}, buttons: { layout: [], cache: [], status: [], pressed: function(button, state) {} } axes: { status: [] } }; the controller variable stores the information
about the connected gamepad, and there's an active boolean variable we can use to know if the controller is connected or not.
...the next function is update(), which updates the information
about the pressed buttons and axes.
...And 4 more matches
Beginner's guide to media queries - Learn web development
media queries are a key part of responsive web design, as they allow you to create different layouts depending on the size of the viewport, but they can also be used to detect other things
about the environment your site is running on, for example whether the user is using a touchscreen rather than a mouse.
... in this lesson you will first learn
about the syntax used in media queries, and then move on to use them in a worked example showing how a simple design might be made responsive.
... <body> <div class="wrapper"> <header> <nav> <ul> <li><a href="">
about</a></li> <li><a href="">contact</a></li> <li><a href="">meet the team</a></li> <li><a href="">blog</a></li> </ul> </nav> </header> <main> <article> <div class="content"> <h1>veggies!</h1> <p> ...
...And 4 more matches
Responsive images - Learn web development
previous overview: multimedia and embedding next in this article, we'll learn
about the concept of responsive images — images that work well on devices with widely differing screen sizes, resolutions, and other such features — and look at what tools html provides to help implement them.
...css arguably has better tools for responsive design than html, and we'll talk
about those in a future css module.
...screen widths) and indicates what image size would be best to choose, when certain media conditions are true — these are the hints we talked
about earlier.
...And 4 more matches
Framework main features - Learn web development
this component needs to display a portrait of the author and a short byline
about them.
... </figcaption> </figure> state we talked
about the concept of state in the previous chapter — a robust state-handling mechanism is key to an effective framework, and each component may have data to control the state of.
...all of them track the current rendered version of your browser's dom, and each makes slightly different decisions
about how the dom should change as components in your application re-render.
...And 4 more matches
Getting started with React - Learn web development
we'll discover a little bit of detail
about its background and use cases, set up a basic react toolchain on our local computer, and create and play with a simple starter app — learning a bit
about how react works in the process.
... to read more
about jsx, check out the react team's jsx in depth article.
... the package.json file contains information
about our project that node.js/npm uses to keep it organized.
...And 4 more matches
Advanced Svelte: Reactivity, lifecycle, accessibility - Learn web development
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.
... we will also learn
about the action directive, which will allow us to extend the functionality of html elements in a reusable and declarative way.
... finally, we will learn a bit more
about components.
...And 4 more matches
Initial setup
add a request
about creating your locale's repository to the new locales newsgroup.
...see this wiki page
about how to gain access to svn.
...add a request
about creating your locale's repository to the new locales newsgroup.
...And 4 more matches
Profiling with the Firefox Profiler
you can check out some frequently asked questions
about the firefox profilers.
... synchronous re-flow can be caused by js that, for example, makes changes to the page content in a loop and queries
about the layout of the page in that same loop.
... it's a good idea to search bugzilla before filing a bug
about a performance problem in firefox but sometimes it's hard to find issues that have already been reported.
...And 4 more matches
Shell global objects
stackdump(showargs, showlocals, showthisprops) tries to print a lot of information
about the current stack.
... arrayinfo(a1, a2, ...) report statistics
about arrays.
...if fun is not careful, hook could be asked to retrieve the source code for compilations that occurred long before it was set, and that it knows nothing
about.
...And 4 more matches
Introduction to DOM Inspector - Firefox Developer Tools
now, once you have selected a node like the "search-go-button" node, you can select any one of several viewers to display information
about that node in the object pane of the dom inspector application window, all of which are available from the menupopup accessed from the upper left corner of the the object pane.
... the list of viewers available from the viewer menu gives you some idea
about how extensive the dom inspector's inspecting capabilities are.
... the following descriptions provide an overview of what these viewers are
about: the dom nodes viewer shows attributes of nodes that can take them, or the text content of text nodes, comments, and processing instructions.
...And 4 more matches
Debugger.Object - Firefox Developer Tools
this means that the debugger can use the == operator to recognize when two debugger.object instances refer to the same debuggee object, and place its own properties on a debugger.object instance to store metadata
about particular debuggee objects.
...this allows the code using each debugger instance to place whatever properties it likes on its own debugger.object instances, without worrying
about interfering with other debuggers.
... hostannotations a javascript object providing further metadata
about the referent, or null if none is available.
...And 4 more matches
Window.open() - Web APIs
if url is an empty string, then a new blank, empty window (url
about:blank) is created with the default toolbars of the main window.
...when window.open() returns, the window always contains
about:blank.
...see rel="noopener" for more information and for browser compatibility details, including information
about ancillary effects.
...And 4 more matches
Intercepting Page Loads - Archive of obsolete content
you can close the tab, redirect the tab to
about:blank or another page, or tell the browser to stop loading this page, but in general you don't want to do this because it will be visible to the user and it will look like a bug.
... the aforementioned observer notifications page has more information
about these notifications and links to other useful documentation.
...we're being careful
about removing all listeners, as not doing it has the potential of causing memory leaks.
...And 3 more matches
XPCOM Objects - Archive of obsolete content
then you'll see a list of all members of this object, with some documentation
about it.
...in many cases you only need to use one interface, and you won't have to worry
about queryinterface.
...you can read more
about it in the xpcom string guide.
...And 3 more matches
Setting up an extension development environment - Archive of obsolete content
this will utilize distinctive development preferences in
about:config.
... development preferences there is a set of development preferences that, when enabled, allows you to view more information
about application activity, thus making debugging easier.
... accessing firefox development preferences to change preference settings in firefox or seamonkey, type
about:config in the location bar.
...And 3 more matches
MMgc - Archive of obsolete content
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).
...a finalizer is a method which will be invoked by the gc when an unreachable object is
about to be destroyed.
...finalizers may not perform any of the following actions: fire any write barriers dereference a pointer to any gc object, including member variables (except see below
about rcobject references) allocate any gc memory (gc::alloc), explicitly free gc memory (gc::free) change the set of gc roots (create a gcroot object or derivative) cause itself to become reachable if a finalized object holds a reference to an rcobject, it may safely call decrementref on the rcobject.
...And 3 more matches
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
situation int-evry manages
about 3000 users (mostly students) who share computers in labs and "self service" computer rooms.
...= getenv("homepath"); } var env_mozdebug= getenv("mozilla_debug"); // 2) define here (because if set after "3)" below it doesn't work !) processldapvalues which is eventually called by getldapattributes() just below, // check getldapattributes() code from $mozilla_home/defaults/autoconfig/prefcalls.js to see the inside call to "user defined" processldapvalues /* commented all this section
about ldap calls, not supported in ff5 packages :-( function processldapvalues (values) { if(values) { // set the global var with the values returned from the ldap query ldap_values = values; var uid = getldapvalue ( values ,"uid" ); var cn = getldapvalue ( values ,"cn" ); var mail = getldapvalue ( values ,"mail" ); var url = getldapvalue ( values ,"labeleduri" ...
...one can check how firefox has been compiled by opening
about:buildconfig (don't know the equivalent for thunderbird!
...And 3 more matches
Creating a Help Content Pack - Archive of obsolete content
next, you'll need to insert a rdf:description element into the file, inside the rdf:rdf element just created: <rdf:description rdf:
about="urn:root" nc:title="" nc:defaulttopic="" nc:base=""> </rdf:description> fill in the attributes as follows: rdf:
about must be urn:root or your pack won't work.
... this attribute marks the start point in the rdf graph described by the file, and the help viewer searches for this element in order to query for further information (stored in child elements)
about the content pack being parsed.
...(the index, table of contents, and search data sources are more likely to be nested, complicating their formats.) create a new rdf file (for now let's name it glossary.rdf), and add the following lines to it: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:nc="http://home.netscape.com/nc-rdf#"> <rdf:description rdf:
about="urn:root"> <nc:subheadings> <rdf:seq> </rdf:seq> <nc:subheadings> </rdf:description> </rdf:rdf> this forms the outer framework of a glossary description file.
...And 3 more matches
Measuring add-on startup performance - Archive of obsolete content
using
about:startup the
about startup add-on provides a much simpler way to measure startup performance.
... once installed, it will gather startup data and display it in the
about:startup page.
... to test with
about:startup, you should set up a new firefox profile, install this add-on, and then open and quit firefox repeatedly.
...And 3 more matches
Using XPInstall to Install Plugins - Archive of obsolete content
this article is
about how you can use xpinstall to install plugins to the browsers that support xpinstall.
... write keys in the windows registry which store information
about this secondary location, in particular the plugin path and the xpt path (if applicable) so that netscape gecko browsers can pick up the plugin from the secondary location if they are installed after the plugin is (and thus, if a particular netscape gecko browser follows or replaces the current browser).
...this value is actually entered in the client version registry upon installation, a mozilla-browser file that stores metadata
about the software that has just been installed.
...And 3 more matches
IO - Archive of obsolete content
files and streams this section describes how to access and get information
about files, read from files and create and write files.
... retrieve a file object for information
about getting a file object, see accessing files get information
about a file available information
about a file include the permissions, size, and last modified date of a file.
...reading from a file for information
about reading from text and binary files, see reading from files.
...And 3 more matches
Complete - Archive of obsolete content
this page is for readers who have followed the custom toolbar button tutorial for firefox, thunderbird and sunbird, or the custom toolbar button:seamonkey tutorial for seamonkey, and who want to learn more
about developing extensions.
...for more information
about developing extensions, see the main extensions page here.
...the xpi contains: install.rdf information
about the extension chrome.manifest registration data for firefox etc.
...And 3 more matches
Custom toolbar button - Archive of obsolete content
you can also use this page to learn
about extensions, and as a starting point if you plan to write a more complex extension.
... note: 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.
...there is more information
about identifiers in a later section of this tutorial.
...And 3 more matches
Gecko Compatibility Handbook - Archive of obsolete content
you can verify the string got changed by looking under help |
about.
... upgrade web authoring tool to versions that support the w3 standards and gecko browsers content differs in gecko browsers and internet explorer the javascript console in netscape 6.x and netscape 7.x displays errors
about document.all, document.layers, document.<property> not being defined because of an incorrect browser sniffing, or use of proprietary javascript.
...(more
about css) content differs in gecko browsers and internet explorer incorrect layout mode specified by doctype.
...And 3 more matches
Introduction to SSL - Archive of obsolete content
these capabilities address fundamental concerns
about communication over the internet and other tcp/ip networks: ssl server authentication allows a user to confirm a server's identity.
... for more information
about the handshake process, see "the ssl handshake." ciphers used with ssl the ssl protocol supports the use of a variety of different cryptographic algorithms, or ciphers, for use in operations such as authenticating the server and client to each other, transmitting certificates, and establishing session keys.
... decisions
about which cipher suites a particular organization decides to enable depend on trade-offs among the sensitivity of the data involved, the speed of the cipher, and the applicability of export rules.
...And 3 more matches
LiveConnect Overview - Archive of obsolete content
in the earlier example
about the redwood corporation, for example, the reference packages.redwood is a javapackage object.
...most of the time, you don't have to worry
about the javapackage and javaclass objects—you just work with java packages and classes, and liveconnect creates these objects transparently.
...} catch (e) { if (e instanceof java.io.filenotfound) { // handling for filenotfound } else { throw e; } } see exception handling statements for more information
about javascript exceptions.
...And 3 more matches
Anatomy of a video game - Game development
think
about whether your function really needs to be called on a strict interval of time, every frame, or only after something else happens.
... being more specific with the browser
about when your function needs to be called allows the browser to optimize when it is called.
... you can think
about developing realtime applications as having a budget of time to do work.
...And 3 more matches
Introduction to CSS layout - Learn web development
the fact that you can change the value of display for any element means that you can pick html elements for their semantic meaning, without being concerned
about how they will look.
...this gives us the effect of text wrapped around that box, and is most of what you need to know
about floats as used in modern web design.
...positioning isn’t a method for creating your main page layouts, it is more
about managing and fine-tuning the position of specific items on the page.
...And 3 more matches
What are hyperlinks? - Learn web development
objective: learn
about links on the web and why they matter.
...we'll talk
about designing website navigation in another article, but as a rule, whenever you add a new webpage, make sure at least one of your other pages links to that new page.
... on the other hand, if your site has more than
about ten pages, it's counter-productive to link to every page from every other page.
...And 3 more matches
Advanced form styling - Learn web development
<input type="color"> date-related controls such as <input type="datetime-local"> <input type="range"> <input type="file"> <progress> and <meter> let's first talk
about the appearance property, which is pretty useful for making all of the above more stylable.
...ype="checkbox"]::before { content: "✔"; position: absolute; font-size: 1.2em; right: -1px; top: -0.3em; visibility: hidden; } input[type="checkbox"]:checked::before { /* use `visibility` instead of `display` to avoid recalculating layout */ visibility: visible; } input[type="checkbox"]:disabled { border-color: black; background: #ddd; color: gray; } you'll find more out
about such pseudo-classes and more in the next article; the above ones do the following: :checked — the checkbox (or radio button) is in a checked state — the user has clicked/activated it.
... what can be done
about the "ugly" elements?
...And 3 more matches
UI pseudo-classes - Learn web development
note: a number of the pseudo-classes discussed here are concerned with styling form controls based on their validation state (is their data valid, or not?) you'll learn much more
about setting and controlling validation constraints in our next article — client-side form validation — but for now we'll keep things simple with regards to form validation, so it doesn't confuse things.
... using generated content with pseudo-classes in previous articles, we've seen the usage of generated content, but we thought now would be a good time to talk
about it in a bit more detail.
... styling controls based on whether their data is valid the other really important, fundamental concept in form validation is whether a form control's data is valid or not (in the case of numerical data, we can also talk
about in-range and out-of-range data).
...And 3 more matches
Your first form - Learn web development
objective: to gain familiarity with what web forms are, what they are used for, how to think
about designing them, and the basic html elements you'll need for simple cases.
...the controls can be single or multi-line text fields, dropdown boxes, buttons, checkboxes, or radio buttons, and are mostly created using the <input> element, although there are some other elements to learn
about too.
... designing your form before starting to code, it's always better to step back and take the time to think
about your form.
...And 3 more matches
Getting started with HTML - Learn web development
attributes look like this: attributes contain extra information
about the element that won't appear in the content.
... title: the title attribute specifies extra information
about the link, such as a description of the page that is being linked to.
...you'll learn more
about this in the next article of the series.
...And 3 more matches
Video and audio content - Learn web development
such companies offer a convenient, easy way to host and consume videos, so you don't have to worry
about the enormous bandwidth consumption.
...as we talked
about before, different browsers support different video and audio formats, and different container formats (like mp3, mp4, and webm, which in turn can contain different types of video and audio).
...each codec offers its own advantages and drawbacks, and each container may also offer its own positive and negative features affecting your decisions
about which to use.
...And 3 more matches
Graceful asynchronous programming with Promises - Learn web development
obviously, that's not an acceptable option; without promises, everything in the browser becomes unusable until the user decides what to do
about the camera and microphone.
... note: you can learn more
about this somewhat advanced topic, if you're interested, in the article signaling and video calling.
... let's talk
about ordering pizza as an analogy.
...And 3 more matches
Functions — reusable blocks of code - Learn web development
in fact, we've been using functions all the way through the course so far; we've just not been talking
about them very much.
... now is the time, however, for us to start talking
about functions explicitly, and really exploring their syntax.
...you don't need to learn
about the inner workings of structured javascript objects yet — you can wait until our later module that will teach you all
about the inner workings of objects, and how to create your own.
...And 3 more matches
Function return values - Learn web development
previous overview: building blocks next there's one last essential concept
about functions for us to discuss — return values.
...you've already met return values a number of times, although you may not have thought
about them explicitly.
... next, we're going to include a way to print out information
about the number entered into the text input.
...And 3 more matches
Drawing graphics - Learn web development
graphics on the web as we talked
about in our html multimedia and embedding module, the web was originally just text, which was very boring, so images were introduced — first via the <img> element and later via css properties such as background-image, and svg.
...you can't do anything to change this, so you have to think carefully
about the order in which you draw the graphics.
... note: to find out more
about advanced path drawing features such as bézier curves, check out our drawing shapes with canvas tutorial.
...And 3 more matches
Useful string methods - Learn web development
previous overview: first steps next now that we've looked at the very basics of strings, let's move up a gear and start thinking
about what useful operations we can do on strings with built-in methods, such as finding the length of a text string, joining and splitting strings, substituting one character in a string for another, and more.
...you really don't need to know
about most of these early on in your learning journey.
... first think
about how you could test whether the message in each case is a christmas message.
...And 3 more matches
Measuring performance - Learn web development
objective: to provide information
about web performance metrics that you can collect through various web performance apis and tools that you can use to visualize that data.
... we'll talk
about both categories in this course.
... and as well as talking
about performance metrics we will of course talk
about the metrics that you'll use to measure whether your site's performance is improving.
...And 3 more matches
Server-side web frameworks - Learn web development
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.
... the next section provides a bit more detail
about how web frameworks can ease web application development.
...the http request may also include information
about the current session or user in a client-side cookie.
...And 3 more matches
React resources - Learn web development
objective: to provide further resources for learning more
about react.
... you can read more
about component stylesheets in the create-react-app docs.
... you can read more
about react devtools on the react blog.
...And 3 more matches
Developer guide
mozilla modules and module ownership this article provides information
about mozilla's modules, what the role of a module owner is, and how module owners are selected.
... the mozilla platform information
about the workings of the mozilla platform.
... mozilla much more additional information
about mozilla coding practices.
...And 3 more matches
Firefox
here you can learn
about how to contribute to the firefox project and you will also find links to information
about the construction of firefox add-ons, using the developer tools in firefox, and other topics.
... project documentation get detailed information
about the internals of firefox and its build system, so you can find your way around in the code.
... contents experimental features in firefoxthis page lists features that are in nightly versions of firefox along with information on how to activate them, if necessary.firefox and the "
about" protocolthere is a lot of useful information
about firefox hidden away behind the
about: url protocol.
...And 3 more matches
How to get a stacktrace for a bug report
if you file a bug report in bugzilla
about a crash you should include a stacktrace (call stack) in your report.
...if you have any additional information
about the crash, such as additional detail on what you were doing at the time that may have triggered the crash, please enter it into the comments box.
... be sure that you check the "tell mozilla
about this crash" checkbox and click the restart button.
...And 3 more matches
DMD
it helps us reduce the "heap-unclassified" value in firefox's
about:memory page, and also detects if any heap blocks are reported twice.
...for instance, on osx, you can run something like: dmd=1 /applications/firefox\ nightly.app/contents/macos/firefox you can tell it is working by going to
about:memory and looking for "save dmd output".
... visit
about:memory and click the dmd button (depending on how old your build is, it might be labelled "save" or "analyze reports" or "dmd").
...And 3 more matches
GCIntegration - SpiderMonkey Redirect 1
we're still thinking
about how the apis for moving gc should work.
...the troublesome spots are the pointers in gecko that spidermonkey doesn't know
about.
... if a pointer is not traced via js_call_tracer or any similar mechanism, then there's no need for a write barrier (although see below
about read barriers).
...And 3 more matches
Mork
meta-tables are used to establish some facts
about the table as well as the default row scope.
...if inside the meta-dictionary, the only cell we care
about is if the key is 'a' (for atom scope).
...the meta-row of the table (different from the meta-row of a row) contains a few things you might care
about.
...And 3 more matches
nsIDOMWindowUtils
void garbagecollect( in nsicyclecollectorlistener alistener optional ); parameters alistener optional listener that receives information
about the cc graph (see @mozilla.org/cycle-collector-logger;1 for a logger component) getcursortype() get current cursor type from this window.
... return value a json string summarizing the information profiled
about the script.
... getpccountscriptcontents() returns detailed information
about the profile information for a script.
...And 3 more matches
nsIDocShell
method overview void addsessionstorage(in nsiprincipal principal, in nsidomstorage storage); void addstate(in nsivariant adata, in domstring atitle, in domstring aurl, in boolean areplace); void beginrestore(in nsicontentviewer viewer, in boolean top); void create
aboutblankcontentviewer(in nsiprincipal aprincipal); void createloadinfo(out nsidocshellloadinfo loadinfo); void detacheditorfromwindow(); violates the xpcom interface guidelines void finishrestore(); void firepagehidenotification(in boolean isunload); native code only!
... printpreview nsiwebbrowserprint if the current content viewer is not initialized for print preview, it is replaced with one which is and to which an
about:blank document is loaded.
... create
aboutblankcontentviewer() create a new
about:blank document and content viewer.
...And 3 more matches
nsITreeView
layout/xul/base/src/tree/public/nsitreeview.idlscriptable this interface is used by the tree widget to get information
about what and how to display a tree widget.
... further information
about creating treeviews is given in the xul tutorial.
... boolean iscontainer( in long index ); parameters index the index of the row being asked
about.
...And 3 more matches
nsIURI
about:blank) note: characters are not escaped.
...
about:blank) note: characters are not escaped.
...
about:blank) note: some characters may be escaped.
...And 3 more matches
Accessibility Inspector - Firefox Developer Tools
here we are mainly talking
about exposing information to people with visual disabilities — this is done via the accessibility apis available inside web browsers, which expose information on what roles the different elements on your page play (e.g., are they just text, or are they buttons, links, form elements, etc.?).
...this is a bit like the dom tree, except that it contains a more limited set of elements and slightly different information
about them.
... if you don't wish to allow the accessibility features to be automatically enabled, you can use the configuration editor (also known as
about:config) to define the preference devtools.accessibility.auto-init.enabled, and set it to false.
...And 3 more matches
ByteLengthQueuingStrategy - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 46safari ?
...to change preferences in firefox, visit
about:config.opera android full support 43safari ios ?
...to change preferences in firefox, visit
about:config.ie no support noopera full support 46safari ?
...And 3 more matches
CountQueuingStrategy - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 46safari ?
...to change preferences in firefox, visit
about:config.opera android full support 43safari ios ?
...to change preferences in firefox, visit
about:config.ie no support noopera full support 46safari ?
...And 3 more matches
Using the Media Capabilities API - Web APIs
more and more finely-detailed information
about the display's properties, so that informed decisions can be made when choosing the best format to play on the user's device.
... support for getting real-time feedback
about the playback of media, so your code can make informed decisions
about adapting the stream's quality or other settings to manage the user's perceived media performance and quality.
...you can, therefore, test for the presence of the api like so: if ("mediacapabilities" in navigator) { // mediacapabilities is available } else { // mediacapabilities is not available } taking video as an example, to obtain information
about video decoding abilities, you create a video decoding configuration which you pass as a parameter to mediacapabilities.decodinginfo() method.
...And 3 more matches
RTCRemoteOutboundRtpStreamStats.localId - Web APIs
together, these two objects provide statistics
about the inbound and outbound sides of the same synchronization source (ssrc).
...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.
...And 3 more matches
Lighting a WebXR setting - Web APIs
you can learn more
about how to perform lighting in webgl in the article lighting in webgl.
...you can learn all
about the proposed api and a fair amount
about the concept of lighting estimation in the explainer documnent that's included in the specification's github repository.
... in essence, lighting estimation collects this information
about the light sources and the shape and orientation of the objects in the scene, along with information
about the materials they're made of, then returns data you can use to create virtual light source objects that approximately match the real world's lighting.
...And 3 more matches
Starting up and shutting down a WebXR session - Web APIs
emulator issues and notes while this isn't the place for a full article
about the extension, there are some specific things worth mentioning.
... for more specifics
about securing webxr actitvities and usage, see the article permissions and security for webxr.
... const immersiveok = await navigator.xr.issessionsupported("immersive-vr"); if (immersiveok) { // create and use an immersive vr session } else { // create an inline session instead, or tell the user
about the // incompatibility if inline is required } creating and starting the session a webxr session is represented by an xrsession object.
...And 3 more matches
Web audio spatialization basics - Web APIs
we need to change the x orientation and the z orientation of the panner coordinates, to move around the y-axis for our left rotation: case 'rotate-left': transform.rotatey -= degreesy; // 'left' is rotation
about y-axis with negative angle increment z = panner.orientationz.value*math.cos(q) - panner.orientationx.value*math.sin(q); x = panner.orientationz.value*math.sin(q) + panner.orientationx.value*math.cos(q); y = panner.orientationy.value; panner.orientationx.value = x; panner.orientationy.value = y; panner.orientationz.value = z; break; this is a little confusing, but what we're doing i...
... case 'rotate-right': transform.rotatey += degreesy; // 'right' is rotation
about y-axis with positive angle increment z = panner.orientationz.value*math.cos(-q) - panner.orientationx.value*math.sin(-q); x = panner.orientationz.value*math.sin(-q) + panner.orientationx.value*math.cos(-q); y = panner.orientationy.value; panner.orientationx.value = x; panner.orientationy.value = y; panner.orientationz.value = z; break; case 'rotate-up': transform.rotatex += degreesx; // 'up' is rotation
about x-axis with negative angle incre...
...ment z = panner.orientationz.value*math.cos(-q) - panner.orientationy.value*math.sin(-q); y = panner.orientationz.value*math.sin(-q) + panner.orientationy.value*math.cos(-q); x = panner.orientationx.value; panner.orientationx.value = x; panner.orientationy.value = y; panner.orientationz.value = z; break; case 'rotate-down': transform.rotatex -= degreesx; // 'down' is rotation
about x-axis with positive angle increment z = panner.orientationz.value*math.cos(q) - panner.orientationy.value*math.sin(q); y = panner.orientationz.value*math.sin(q) + panner.orientationy.value*math.cos(q); x = panner.orientationx.value; panner.orientationx.value = x; panner.orientationy.value = y; panner.orientationz.value = z; break; one last thing — we need to update the css and keep a ...
...And 3 more matches
CSS Grid Layout and Accessibility - CSS: Cascading Style Sheets
in moving to css we often spoke
about css for layout enabling a separation of content and markup and presentation.
...if so that would be a sign that you need to address something
about the layout.
...the nice thing
about using css grid layout is that you should be able to move an item in the source to match the logical order, without needing to make big changes to your layout.
...And 3 more matches
HTML elements reference - HTML: Hypertext Markup Language
for more information
about the basics of html elements and attributes, see the section on elements in the introduction to html article.
... document metadata metadata contains information
about the page.
... this includes information
about styles, scripts and data to help software (search engines, browsers, etc.) use and render the page.
...And 3 more matches
Digital audio concepts - Web media technologies
therefore, a typical three-minute song requires
about 34.5 mb of memory.
...for details
about the most important and useful ones for web developers to be familiar with, see the article guide to audio codecs used on the web.
... you can apply a filter that narrows the audio bandwidth, removing any audio frequencies that you don't care
about.
...And 3 more matches
Media type and format guide: image, audio, and video content - Web media technologies
references images image file type and format guide covers support of image file types and content formats across the major web browsers, as well as providing basic information
about each type: benefits, limitations, and use cases of interest to web designers and developers.
... image file types for web designers fundamental information
about the various image file types that may be useful for web designers, including best practices and use cases for each type, and guidelines for choosing the right image file format for specific types of content.
... web video codec guide this article provides basic information
about the video codecs supported by the major browsers, as well as some that are not commonly supported but that you might still run into.
...And 3 more matches
Compiling from Rust to WebAssembly - WebAssembly
note: pay attention to the post-install note
about needing cargo's bin directory in your system path.
...it has three main parts; let's talk
about them in turn.
... 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 3 more matches
Preferences - Archive of obsolete content
if you haven't yet, read other documents
about mozilla preferences on mdn (links below in resources section).
... you can see the list of preferences in
about:config (where available).
... more
about preferences "branches" preference names consist of a few strings separated with dots, and related preferences usually share the same prefix.
...And 2 more matches
Creating custom Firefox extensions with the Mozilla build system - Archive of obsolete content
this file should be located in the main extension directory and look something like this: <?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>myextension@mycompany.com</em:id> <em:version>0.1</em:version> <em:targetapplication> <!-- firefox --> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.0+</em:minversion> <em:maxversion>1.0+</em:maxversion> </description> </em:targetapplication> <!-- front-end...
...rcdir = @srcdir@ vpath = @srcdir@ include $(depth)/config/autoconf.mk module = myextension xpidl_module = myextension xpi_name = myextension exports = \ myheader.h \ $(null) xpidlsrcs = \ myifirstcomponent.idl \ myisecondcomponent.idl \ $(null) include $(topsrcdir)/config/rules.mk xpidl_module is the name of the generated xpt file that contains type information
about your idl interfaces.
...don't worry
about this; all you need are the generated header files that contain the c++ implementation stubs.
...And 2 more matches
Enhanced Extension Installation - Archive of obsolete content
in the profile directory, the file compatibility.ini stores information
about the version of the application (build info) that last started this profile - during startup this file is checked and if the version info held by the running app disagrees with the info held by this file, a compatibility check is run on all installed items.
...if it is, a small set of metadata
about it is written to the appropriate datasource (name, version, a flag to tell the system to properly install it on the next startup), and it is added to the appropriate type container.
...by default, the application knows
about and maintains three install locations: app-profile a directory-based install location for items living in the application profile extensions directory.
...And 2 more matches
Extension Etiquette - Archive of obsolete content
about dialogs there is a default popup
about dialog that is created from install.rdf data; creating a new xul
about box is usually unnecessary.
... you can decrease download size by omitting a customized
about box.
...
about: page urls.
...And 2 more matches
Listening to events in Firefox extensions - Archive of obsolete content
gecko uses events to pass information
about interesting things that have occurred along to the parties that may wish to know
about them.
... there are several different categories of events; this article will help you learn
about them and direct you to more specific documentation covering each of them.
... 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.
...And 2 more matches
Chapter 6: Firefox extensions and XUL applications - Archive of obsolete content
tools for extension developers fixme: are we sure we'll talking
about venkman since it's not well maintained fixme: we maybe should talk
about firebug and chromebug fixme: and what
about console 2 and docked-js console?
... also, because it works with the javascript in extensions and firefox itself, the debugger can be a good way to learn
about design methods.
...open the
about:config screen and edit the extensions.mozlab.mozunit.editor property.
...And 2 more matches
Local Storage - Archive of obsolete content
in general this is the only directory flag you'll need, but sometimes you'll need access to other system directories, and you don't want to have to worry
about which operating system or system language your extension is running on.
...you can read more
about reading and writing files here.
...others feel concerned
about privacy and storing private information locally without deleting it.
...And 2 more matches
Getting Started - Archive of obsolete content
on every line that references <code>classic.jar we need to make some changes (there are
about 5 lines).
...skin info when switching skins in mozilla, it displays a preview image and some information
about the theme.
...list all the skins being supplied by this theme <rdf:seq
about="urn:mozilla:skin:root"> <rdf:li resource="urn:mozilla:skin:myskin/1.0" /> in the code search for the part listed above.
...And 2 more matches
Microsummary XML grammar reference - Archive of obsolete content
warning: microsummary support was removed in gecko 6.0 (firefox 6.0 / thunderbird 6.0 / seamonkey 2.3) this article provides detailed information
about the xml grammar used to build microsummary generators, describing each element and their attributes.
...the following example identifies a generator as being able to summarize all pages on the www.example.com web site except pages named
about.html: <pages> <include> ^http://www\.example\.com/ </include> <exclude>/
about\.html</exclude> </pages> note: regular expressions intended to match the beginnings of page urls should start with the caret (^) to ensure they do not inadvertently match urls which merely contain the urls they intend to match.
...for more information
about the use of this element, see the entry for #the_<pages>_element.
...And 2 more matches
Modularization techniques - Archive of obsolete content
the mechanism we're using is based on the principles laid down by com, so pretty much anything you know
about com can be applied here, and any reference on com can provide you with more interesting and complex examples than the ones provided here.
...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.
...
about nsiids and nscids to simplify the process of dynamically finding, loading and binding interfaces, all classes and interfaces are assigned unique ids.
...And 2 more matches
Frequently Asked Questions - Archive of obsolete content
mozilla is strict
about this, and no, it's not a bug.
... if you discover any problems with our svg implementation that you think we should know
about then we'd like to hear from you.
...to access the pref type
about:config into the url bar, then type svg.enabled into the filter field.
...And 2 more matches
A XUL Bestiary - Archive of obsolete content
there are, unfortunately, different document object models corresponding to different types of documents and also to different proprietary notions
about what in a document should be exposed programmatically.
... near synonyms for xul there is much confusion
about the words that begin with "x" in the mozilla open source project.
... xul parts people sometimes get confused
about the syntax for describing the parts of a widget.
...And 2 more matches
Using Spacers - Archive of obsolete content
we'll talk more
about this in the next section but it essentially allows you to divide a window into a series of boxes that hold elements.
...before we get into detail
about boxes, we'll introduce another xul element that is useful for layout, the spacer.
... <spacer flex="1"/> <button id="find-button" label="find"/> more
about flexibility xul lays out elements on a window by calculating suitable widths and heights for the elements and then adding space where they are flexible.
...And 2 more matches
2006-11-03 - Archive of obsolete content
source code for the nsinstall contained in moztools a user asks for advice
about building nsinstall on windows.
... picking an alternate search engine for a particular search large discussion
about how the search engine could be imporved.
... firing pageshow/pagehide when users change tabs discussion
about using events that could be fired when the user changes a tab.
...And 2 more matches
2006-11-04 - Archive of obsolete content
code for the nsinstall contained in moztools a user asks for advice
about building nsinstall on windows.
... an alternate search engine for a particular search large discussion
about how the search engine could be imporved.
... pageshow/pagehide when users change tabs discussion
about using events that could be fired when the user changes a tab.
...And 2 more matches
2006-11-10 - Archive of obsolete content
event in firefox similar to ondownloadcomplete event in ie an inquiry
about how to change the font of a web page before it is displayed using an extenstion.
... favicon as microsummary/feed/other stuff indicator suggestion
about making the favicon create a bookmark for the page with a microsummary.
... firefox 2.0 - net accessed when bookmark properties viewed question
about whether firefox 2.0 downlads the web page again when the properties of the bookmark are viewed.
...And 2 more matches
2006-10-06 - Archive of obsolete content
extension compatibility for firefox 2 chris hofmann reminds
about the push to have extensions work with ff2.
... also invites people to file bugs
about extensions that don't work.
...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.
...And 2 more matches
NPEvent - Archive of obsolete content
ws typedef xevent npevent; fields npevent on microsoft windows the data structure has the following fields: event one of the following event types: wm_paint wm_lbuttondown wm_lbuttonup wm_lbuttondblclk wm_rbuttondown wm_rbuttonup wm_rbuttondblclk wm_mbuttondown wm_mbuttonup wm_mbuttondblclk wm_mousemove wm_keyup wm_keydown wm_setcursor wm_setfocus wm_killfocus for information
about these events, see the microsoft windows developer documentation.
...values: 0 nullevent 1 mousedown 2 mouseup 3 keydown 4 keyup 5 autokey 6 updateevt 7 diskevt 8 activateevt 15 osevt 23 khighlevelevent getfocusevent 0, 1 (true, false) losefocusevent adjustcursorevent 0, 1 (true, false) for information
about these events, see the mac os developer documentation.
...additional information
about the event.
...And 2 more matches
Theme changes in Firefox 2 - Archive of obsolete content
global/
about.css new file; css used in the application's
about box.
... mozapps/extensions/
about.css updated with a simplified set of style names, since several styles were identical.
... #enginelist treechildren::-moz-tree-image(enginename) changes in global
about.css this is a new file for firefox 2.
...And 2 more matches
Reference - Archive of obsolete content
i was wondering what should be done
about those examples, since they would no longer be valid with fx 1.5+ and family.
...--nickolay 00:58, 26 aug 2005 (pdt) (more coding style questions) --maian 04:06, 31 aug 2005 (pdt) i'd say, just make a note here
about decisions you make.
...i'm very confused
about the way function and object in the javascript core are related at first i thought it was something like this : function -> object -> instance instance is for example the math object, it behaves same way as creating new object.
...And 2 more matches
Game monetization - Game development
the technology is mature enough; now it's just
about chosing the right approach.
...it varies, but around one person in every thousand is
about average.
...they follow various strategies to earn money via your games, but you don't have to worry
about all that as selling the license is usually a one-time deal.
...And 2 more matches
Unconventional controls - Game development
leap motion have you ever thought
about controlling a game only with your hands?
...you can also check out the tutorial
about using leap motion plugin for kiwi.js, or the case study of building a web game with leap motion and pixi.js.
... be sure to visit the leapjs repository on github to learn
about the javascript client for the leap motion controller and read the documentation there.
...And 2 more matches
Debugging CSS - Learn web development
this article will give you guidance on how to go
about debugging a css problem, and show you how the devtools included in all modern browsers can help you to find out what is going on.
... find out more
about the firefox devtools there is a lot of information
about the firefox devtools here on mdn.
... debugging problems in css devtools can be a great help when solving css problems, so when you find yourself in a situation where css isn't behaving as you expect, how should you go
about solving it?
...And 2 more matches
CSS values and units - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the different types of values and units used in css properties.
...the page on mdn for each value will give you information
about browser support.
... the standard color system available in modern computers is 24 bit, which allows the display of
about 16.7 million distinct colors via a combination of different red, green and blue channels with 256 different values per channel (256 x 256 x 256 = 16,777,216.) let's have a look at some of the ways in which we can specify colors in css.
...And 2 more matches
What is CSS? - Learn web development
this article explains what css is, with a simple syntax example, and also covers some key terms
about the language.
...browsers are the main type of user agent we think of when talking
about css, however, it is not the only one.
...alternatively, you should get used to searching for "mdn css-feature-name" in your favourite search engine whenever you need to find out more information
about a css feature.
...And 2 more matches
How do I start to design my website? - Learn web development
talk
about your music.
... talk
about your music.
...again, there are so many web services already available for showcasing photos that it isn't worth the effort to build a new site just to spread the word
about how cute our cats are.
...And 2 more matches
What is a Domain Name? - Learn web development
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.
...each dns server that knows
about a given domain stores the information for some time before it is automatically invalidated and then refreshed (the dns server queries an authoritative server and fetches the updated information from it).
... thus, it takes some time for dns servers that know
about this domain name to get the up-to-date information.
...And 2 more matches
Document and website structure - Learn web development
we use color and font size to draw sighted users' attention to the most useful parts of the content, like the navigation menu and related links, but what
about visually impaired people for example, who might not find concepts like "pink" and "large font" very useful?
... line breaks and horizontal rules two elements that you'll use occasionally and will want to know
about are <br> and <hr>: <br> creates a line break in a paragraph; it is the only way to force a rigid structure in a situation where you want a series of fixed short lines, such as in a postal address or a poem.
...you might also want to include notes
about how things might be presented.
...And 2 more matches
HTML table advanced features and accessibility - Learn web development
objective: to learn
about more advanced html table features, and the accessibility of tables.
...rather than have a screenreader read out the contents of many cells just to find out what the table is
about, he or she can rely on a caption and then decide whether or not to read the table in greater detail.
...you'll learn more
about this when you go through our css modules (introduction to css is a good place to start; we also have an article specifically on styling tables).
...And 2 more matches
HTML table basics - Learn web development
data
about the planets of our solar system (planetary facts taken from nasa's planetary fact sheet - metric.
...in this module we are focusing on the html part; to find out
about the css part you should visit our styling tables article after you've finished here.
... tables headers also have an added benefit — along with the scope attribute (which we'll learn
about in the next article), they allow you to make tables more accessible by associating each header with all the data in the same row or column.
...And 2 more matches
Introduction to events - Learn web development
previous overview: building blocks next events are actions or occurrences that happen in the system you are programming, which the system tells you
about so you can respond to them in some way if desired.
... you don't need to understand anything
about other such environments at this stage in your learning; we just wanted to make it clear that events can differ in different programming environments.
...these are often used to display information
about filling in form fields when they are focused, or displaying an error message if a form field is filled with an incorrect value.
...And 2 more matches
Fetching data from the server - Learn web development
let's think
about the significance of this: go to one of your favorite information-rich sites, like amazon, youtube, cnn, etc., and load it.
... aside on promises promises are a bit confusing the first time you meet them, but don't worry too much
about this for now.
... you'll get used to them after a while, especially as you learn more
about modern javascript apis — most of the newer ones are heavily based on promises.
...And 2 more matches
A first splash into JavaScript - Learn web development
previous overview: first steps next now you've learned something
about the theory of javascript, and what you can do with it, we are going to give you a crash course in the basic features of javascript via a completely practical tutorial.
...you create a variable with the keyword let (or var) followed by a name for your variable (you'll read more
about the difference between the keywords in a future article).
... note: you'll learn a lot more
about variables/constants later on in the course, starting with the next article.
...And 2 more matches
What is JavaScript? - Learn web development
you can find out much more
about these in our client-side web apis module.
... let's briefly recap the story of what happens when you load a web page in a browser (first talked
about in our how css works article).
...in this module we are explicitly talking
about client-side javascript.
...And 2 more matches
Inheritance in JavaScript - Learn web development
the technique we covered here is not the only way to create inheriting classes in javascript, but it works ok, and it gives you a good idea
about how to implement inheritance in javascript.
... object member summary to summarize, you've got four types of property/method to worry
about: those defined inside a constructor function that are given to object instances.
... if you are not sure which is which, don't worry
about it just yet — you are still learning, and familiarity will come with practice.
...And 2 more matches
Website security - Learn web development
with great regularity, we hear
about websites becoming unavailable due to denial of service attacks, or displaying modified (and often damaging) information on their homepages.
... the rest of this article gives you more details
about a few common threats and some of the simple steps you can take to protect your site.
... note: this is an introductory topic, designed to help you start thinking
about website security, but it is not exhaustive.
...And 2 more matches
Starting our Svelte Todo list app - Learn web development
once we have put our styles in place, though, any element with this class will be hidden from sighted users and still available to screen reader users — this is because these words are not needed by sighted users; they are there to provide more information
about what the button does for screenreader users that do not have the extra visual context to help them.
...a <ul> is treated like a list by default, but the styles we're
about to add will break that functionality.
...if you want to learn more
about why this is necessary, you can check out scott o'hara’s article, “fixing lists”.
...And 2 more matches
Setting up your own test automation environment - Learn web development
ration options for browsers to be tested, for example you can set a specific version and os to test in the forbrowser() method: let driver = new webdriver.builder() .forbrowser('firefox', '46', 'mac') .build(); you could also set these options using an environment variable, for example: selenium_browser=firefox:46:mac let's create a new test to allow us to explore this code as we talk
about it.
... add this line to the bottom of quick_test.js now: driver.get('http://mdn.github.io/learning-area/tools-testing/cross-browser-testing/accessibility/native-keyboard-accessibility.html'); interacting with the document now we've got a document to test, we need to interact with it in some way, which usually involves first selecting a specific element to test something
about.
... test best practices there has been a lot written
about best practices for writing tests.
...And 2 more matches
Learn web development
you should feel at home whether you are a student learning web development (on your own or as part of a class), a teacher looking for class materials, a hobbyist, or someone who just wants to understand more
about how web technologies work.
... frameworks and tooling: after mastering the essentials of vanilla html, css, and javascript, you should learn
about client-side web development tools, and then consider digging into client-side javascript frameworks, and server-side website programming.
...besides, if you have a specific question
about web development, our common questions section may have something to help you.
...And 2 more matches
Gecko info for Windows accessibility vendors
anything that is focusable or conveys important information
about the structure of the document is exposed in the msaa tree of iaccessibles.
...there are currently two techniques for parsing tables: 1) use acclocation() to get the coordinates for each cell and feed that into an algorithm that builds up your own table data structure, or 2) use isimpledomnode and parse the table see below for the complete list of roles and notes
about what we support intentional differences with internet explorer for the most part, where we support an msaa feature, we have tried to duplicate internet explorer's use of it.
... page loading is tracked via state_change events when a new document is
about to be loaded, an event_state_change occurs on the root role_document object for a window.
...And 2 more matches
Creating a Language Pack
while in that directory, issue the following command: $ make merge-x-testing locale_mergedir=$(pwd)/mergedir x-testing: browser chrome browser
aboutcerterror.dtd // add and localize this file ...
... // lots of notifications
about missing entities ...
...you can either use the locale switcher extension, or set it in
about:config.
...And 2 more matches
How Mozilla's build system works
you don't have to worry
about how you obtain a configure file: the build system does this for you.
... to view information
about the tiers, you can execute the following special make targets: command effect make echo-tiers show the final list of tiers.
...in this section, we'll talk
about how moz.build files actually work.
...And 2 more matches
Eclipse CDT
basically, you want to do something similar to the steps in the initial project properties section above, but use "make -j1 -wb" (or just "make" if you don't care
about keeping code assistance working) instead of using just-print-mozilla-build.py.
...however, when the object directory is outside the source directory, eclipse doesn't know
about it - or the headers it contains - unless the user takes extra steps to tell it.
... if you are trying to dig into a particular parser errors to figure out what it's
about, here are a few things you can try: select your project in the project explorer, then from the context menu select "index > search for unresolved includes".
...And 2 more matches
Eclipse CDT Manual Setup
before you proceed any further, check that your changes to eclipse's memory limits have taken effect and are present in eclipse/help >
about eclipse > installation details > configuration.
...this script will complete in
about 30 seconds on a warm tree (files cached in ram) if your object directory is up to date, although eclipse will take several minutes to process the "build output" that it produces.
...it should take
about 5-10 minutes for eclipse to finish processing the output.
...And 2 more matches
Multiple Firefox profiles
you can find details
about profiles on mozilla's end-user support site.
... mac os x multifirefox by dave martorana profile management determining the profile while firefox is running to determine the profile of a currently-running firefox instance in windows, macos or linux, type
about:profiles into the browser url search bar.
... from profile manager inside firefox if you already have firefox instance running, you can open another profile from the integrated profile manager on any platform: type
about:profiles into the browser url search bar.
...And 2 more matches
AddonListener
a listener only needs to implement the methods corresponding to the events it cares
about; missing methods will not cause any problems.
... void oninstalling(in addon addon, in boolean needsrestart) void oninstalled(in addon addon) void onuninstalling(in addon addon, in boolean needsrestart) void onuninstalled(in addon addon) void onoperationcancelled(in addon addon) void onpropertychanged(in addon addon, in string properties[]) methods onenabling() called when an add-on is
about to be enabled.
... void onenabled( in addon addon, ) parameters addon the addon that has been enabled ondisabling() called when an add-on is
about to be disabled.
...And 2 more matches
Add-on Manager
through its apis information
about all installed add-ons can be retrieved and new add-ons can be installed.
... accessing installed add-ons information
about installed add-ons can be retrieved through the main addonmanager api.
...for example: components.utils.import("resource://gre/modules/addonmanager.jsm"); addonmanager.getalladdons(function(aaddons) { // here aaddons is an array of addon objects }); // this code will execute before the code inside the callback notifications
about changes to installed add-ons are dispatched to any registered addonlisteners.
...And 2 more matches
Localizing without a specialized tool
you should see something like this: x-testing browser chrome browser
aboutcerterror.dtd // add and localize this file
aboutdialog.dtd +
aboutlink +
aboutlink.accesskey +
aboutversion +closecmdgnome.accesskey +closecmdgnome.label +copyright +copyright.accesskey +copyrightgnome.accesskey +copyrightinfo1 +copyrightinfo2 +licen...
...selink +licenselinktext
aboutprivatebrowsing.dtd // add and localize this file
aboutrobots.dtd // add and localize this file ...
... you should see // add and localize this file
aboutcerterror.dtd notice from the compare-locales output that this file is located in the directory /browser/chrome/browser.
...And 2 more matches
Creating localizable web applications
don't forget
about right-to-left locales.
... app logic detect the locale correctly be smart
about detecting the user's locale correctly.
...you can learn more
about the choice of the format for your project at file formats.
...And 2 more matches
L20n HTML Bindings
<p data-l10n-id="
about"></p> notice that you don't have to put the text content in the html anymore (you still can if you want to).
...for instance, a string could use the information
about the user's gender to provide two variants of the translation, like in the example below.
... see l20n by example to learn more
about l20n's syntax.
...And 2 more matches
Localization Use Cases
declensions in gaia's browser app, there's an
about-browser string defined as follows in apps/browser/locales/browser:
about-browser=
about {{browserbrandshortname}} problem definition in many inflected languages (e.g.
... german, finnish, hungarian, all slavic languages), the
about preposition governs the grammatical case of the complement.
...browser, to give
about the firefox browser.
...And 2 more matches
NSS tools : certutil
-l list all the certificates, or display information
about a named certificate, in a certificate database.
...pnb163v2, c2pnb163v3, c2pnb176v1, c2tnb191v1, c2tnb191v2, c2tnb191v3, c2pnb208w1, c2tnb239v1, c2tnb239v2, c2tnb239v3, c2pnb272w1, c2pnb304w1, c2tnb359w1, c2pnb368w1, c2tnb431r1, secp112r1, secp112r2, secp128r1, secp128r2, sect113r1, sect113r2 sect131r1, sect131r2 -r display a certificate's binary der encoding when listing information
about that certificate with the -l option.
... the --upgrade-merge command must give information
about the original database and then use the standard arguments (like -d) to give the information
about the new databases.
...And 2 more matches
certutil
-l list all the certificates, or display information
about a named certificate, in a certificate database.
... -r display a certificate's binary der encoding when listing information
about that certificate with the -l option.
... the --upgrade-merge command must give information
about the original database and then use the standard arguments (like -d) to give the information
about the new databases.
...And 2 more matches
Index
127 jsnewresolveop jsapi reference, obsolete, spidermonkey like jsresolveop, but flags provide contextual information
about the property access.
... 328 js_getpropertyattrsgetterandsetter jsapi reference, obsolete, spidermonkey see js_getpropertyattributes for details
about these functions.
...for more details
about contexts, see jscontext.
...And 2 more matches
TPS Tests
you can sign up for an fxa account on stage or dev by creating an fxa account after adding the identity.fxaccounts.autoconfig.uri preference (with the appropriate value) to
about:config.
... inspect
about:sync-log.
...it will include log output written by the python driver, which includes information
about where the temporary profiles it uses are stored.
...And 2 more matches
Redis Tips
so rather than thinking
about redis as a database with some kind of non-existent relationship to sql, think of it as a data structure server with a rich set of commands for querying and manipulating those data structures over a network connection.
... the redis command watch lets you name keys you're worried
about; it causes your next transaction to be immediately aborted if any of the watched keys has been modified by anyone else.
... i recommend instead reading
about redis's memory optimizations for small zsets: http://oldblog.antirez.com/post/everything-
about-redis-24.html.
...And 2 more matches
XPCOM array guide
these enumerators maintain state
about the current position in the array.
...this allows direct processing of array elements without worrying
about calling release().
...d-only because of const void printsize(const nscomarray<nsielements>& elements) { printf("there are %d elements.\n", elements.count()); } // no const, so we can modify the array void tweakarray(nscomarray<nsielement>& elements, nsielement* newelement) { elements.removeobjectat(0); elements.appendobject(newelement); } in-place enumeration the callback-based enumeration in nscomarray<t> is
about as fast as, if not faster than, standard loop-based iteration.
...And 2 more matches
Preface
next » this is a book
about gecko, and
about creating xpcom components for gecko-based applications.
...accordingly, the book is arranged so that you can follow along and create your own components or learn
about different xpcom topics individually, as in a reference work.
...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.
...And 2 more matches
nsIAnnotationService
toolkit/components/places/public/nsiannotationservice.idlscriptable stores arbitrary data
about a web page.
...otherwise, uris can exist in history as annotations but the user has no way of knowing it, potentially violating their privacy expectations
about actions such as clear history.
...otherwise, uris can exist in history as annotations but the user has no way of knowing it, potentially violating their privacy expectations
about actions such as clear history.
...And 2 more matches
nsICacheVisitor
netwerk/cache/nsicachevisitor.idlscriptable this interface provides information
about cache devices and entries.
... 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.
...deviceinfo specifies information
about this device.
...And 2 more matches
nsINavHistoryObserver
the specified page and all its visits are
about to be deleted.
... note: see using onbeforedeleteuri() in gecko 1.9.1 for how to implement this in gecko 1.9.1 void onbeforedeleteuri( in nsiuri auri, in acstring aguid ); parameters auri the uri of the page
about to be deleted.
... onbeginupdatebatch() notifies you that a batch of things are
about to change.
...And 2 more matches
nsISupports proxies
for more information
about alternatives, see making cross-thread calls using runnables.
...
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.
... warning
about proxy_async: you must take very special care when using this flag.
...And 2 more matches
Setting HTTP request headers
(and yes, "http-on-modify-request" is a string.) note: there are many topics, besides just "http-on-modify-request", that you can get notifications
about, for example "http-on-examine-response" and "xpcom-shutdown".
... for more information
about notifications framework and a list of common notification topics, see observer notifications.
... observers to get notified
about some topic (like "http-on-modify-request") we need to create an observer.
...And 2 more matches
Getting Started Guide
a good place to learn
about the basic rules and reasoning behind com is in essential com by don box.
...clients don't get to know much
about the implementation of any such object.
... nsresult rv; nscomptr<nsifoo> foo(do_queryinterface(bar, &rv)); // or, if you don't care
about the |nsresult| nscomptr<nsifoo> foo(do_queryinterface(bar)); nscomptr happily calls addref and release implicitly.
...And 2 more matches
Deprecated tools - Firefox Developer Tools
you may see a warning message, as in the following image, when trying to activate a deprecated panel: in addition, if you open the panel for one of these tools, you will also see a warning message
about its removal.
... alternatives remote debugging is available in
about:debugging as of firefox 68.
... features not ported to
about:debugging are: wifi debugging for firefox for android, application development.
...And 2 more matches
Index - Firefox Developer Tools
41 dominators with a garbage-collected language, like javascript, the programmer doesn't generally have to worry
about deallocating memory.
...this pane provides more detailed information
about the request.
...we don’t care
about the internal implementation of these libraries.
...And 2 more matches
Migrating from Firebug - Firefox Developer Tools
it also provides information
about html parsing or layout.
...while firebug focuses on javascript performance and provides detailed information
about javascript function calls during the profiling session, the performance tool in the devtools offers a broad spectrum of information regarding a website's performance but doesn't go into detail regarding javascript function calls.
... inspect request information both firebug and the firefox devtools' network monitor allow you to inspect the information
about a request by clicking on it.
...And 2 more matches
Network request list - Firefox Developer Tools
there's an icon next to the domain that gives you extra information
about the security status of that request.
...you can configure the threshhold in the configuration editor (
about:config) by modifying the devtools.netmonitor.audits.slow setting.
... transferred: the number of bytes that were actually transferred to load the resource, or a message
about why the resource was not transferred.
...And 2 more matches
The HTML DOM API - Web APIs
each node is based on the node interface, which provides properties for getting information
about the node as well as methods for creating, deleting, and organizing nodes within the dom.
... the htmlelement interface is generic, however, providing only the functionality common to all html elements such as the element's id, its coordinates, the html making up the element, information
about scroll position, and so forth.
...to learn more
about the actual structure of the dom, see introduction to the dom.
...And 2 more matches
Basic concepts - Web APIs
about this document this introduction discusses essential concepts and terminology in indexeddb.
... to learn more
about indexeddb terms, see the definitions section.
...you're storing critical data that cannot be recomputed later) you can force a transaction to flush to disk before delivering the complete event by creating a transaction using the experimental (non-standard) readwriteflush mode (see idbdatabase.transaction.) this is currently experimental, and can only be used if the dom.indexeddb.experimental pref is set to true in
about:config.
...And 2 more matches
Navigator - Web APIs
navigator.battery read only returns a batterymanager object you can use to get information
about the battery charging status.
... navigator.connection read only provides a networkinformation object containing information
about the network connection of a device.
... navigator.locks read only returns a lockmanager object which provides methods for requesting a new lock object and querying for an existing lock object navigator.mediacapabilities read only returns a mediacapabilities object that can expose information
about the decoding and encoding capabilities for a given format and output capabilities.
...And 2 more matches
WebGL2RenderingContext - Web APIs
renderbuffers webgl2renderingcontext.getinternalformatparameter() returns information
about implementation-dependent support for internal formats.
... webgl2renderingcontext.getqueryparameter() returns information
about a query.
... webgl2renderingcontext.gettransformfeedbackvarying() returns information
about varying variables from webgltransformfeedback buffers.
...And 2 more matches
Signaling and video calling - Web APIs
you can learn more
about the codecs which webrtc requires browsers to support, which additional codecs are supported by which browsers, and how to choose the best codecs to use in the guide codecs used by webrtc.
... function createpeerconnection() { mypeerconnection = new rtcpeerconnection({ iceservers: [ // information
about ice servers - use your own!
... rtcpeerconnection.oniceconnectionstatechange the iceconnectionstatechange event is sent by the ice layer to let you know
about changes to the state of the ice connection.
...And 2 more matches
Fundamentals of WebXR - Web APIs
assuming a person has two healthy eyes, their total field of view is
about 200° to 220° wide.
...for more details
about this, see the optics of 3d in rendering and the webxr frame animation callback.
... for more information
about using webxr to create augmented reality experiences, see augmented reality with webxr.
...And 2 more matches
Web Speech API - Web APIs
speech synthesis speechsynthesis the controller interface for the speech service; this can be used to retrieve information
about the synthesis voices available on the device, start and pause speech, and other commands besides.
... speechsynthesiserrorevent contains information
about any errors that occur while processing speechsynthesisutterance objects in the speech service.
... speechsynthesisevent contains information
about the current state of speechsynthesisutterance objects that have been processed in the speech service.
...And 2 more matches
Window.customElements - Web APIs
the customelements read-only property of the window interface returns a reference to the customelementregistry object, which can be used to register new custom elements and get information
about previously registered custom elements.
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 41safari full support 10.1webview android full support 54chrome android full support 54firefox android full support 63 full support ...
...And 2 more matches
Window - Web APIs
window.customelements read only returns a reference to the customelementregistry object, which can be used to register new custom elements and get information
about previously registered custom elements.
... deviceorientation fired when fresh data is available from the magnetometer orientation sensor
about the current orientation of the device as compared to the earth coordinate frame.
... load & unload events beforeunload fired when the window, the document and its resources are
about to be unloaded.
...And 2 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.
... according to the article, hypersensitive cones, the authors note that "by population,
about 64% of the cones are red-sensitive,
about 32% green sensitive, and
about 2% are blue sensitive." surprisingly, although cones that are blue-sensitive typically make up the fewest number of cones, they are also the most "sensitive" to color.
... to summarize, color is as much
about human physiology and perception in the brain as it is the measurement of light coming from a computer screen.
...And 2 more matches
:scope - CSS: Cascading Style Sheets
sorry
about that.
...<style scoped> made it possible to explicitly set up element scopes, but ongoing discussions
about the design of this feature as well as lack of other implementations resulted in the decision to remove it.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 15safari full support 7webview android full support ≤37chrome android full support 27firefox android full support 32notes full support 32notes notes firefox 55 removes support for <style scop...
...And 2 more matches
Visual formatting model - CSS: Cascading Style Sheets
much of the information
about the visual formatting model is defined in css2, however, various level 3 specifications have added to this information.
... 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.
... read more
about flow layout in css.
...And 2 more matches
Media buffering, seeking, and time ranges - Developer guides
this is usually contiguous but if the user jumps
about while media is buffering, it may contain holes.
...(learn more
about timeranges).
... without any user interaction there is usually only one time range, but if you jump
about in the media more than one time range can appear, as illustrated by the below visualization.
...And 2 more matches
HTML5 - Developer guides
designed to be usable by all open web developers, this reference page links to numerous resources
about html5 technologies, classified into several groups based on their function.
... improvement in <iframe> using the sandbox and srcdoc attributes, authors can now be precise
about the level of security and the wished rendering of an <iframe> element.
... 2d/3d graphics and effects canvas tutorial learn
about the new <canvas> element and how to draw graphs and other objects in firefox.
...And 2 more matches
A hybrid approach - Developer guides
instead of maintaining two completely different sites, we simply redirect users to pages for the content they care
about.
...for example, an often-criticized point
about responsive web design is that full-resolution images are sent to all devices, including phones that show the images scaled down anyway.
... we’ve talked
about incorporating server-side techniques into a responsive design, but there are even ways to use the hybrid approach if your use cases for mobile and desktop are very different.
...And 2 more matches
User input and controls - Developer guides
for example if you want to add controls when any key gets pressed, you need to add an event listener on the window object: window.addeventlistener("keydown", handlekeydown, true); window.addeventlistener("keyup", handlekeyup, true); where handlekeydown and handlekeyup are the functions implementing the controls
about the keydown and keyup events.
... note: have a look at the events reference and keyboardevent guide to find out more
about keyboard events.
... note: for further information
about what you can do with touch events, please read our touch events guide.
...And 2 more matches
A re-introduction to JavaScript (JS tutorial) - JavaScript
javascript supports object-oriented programming with object prototypes, instead of classes (see more
about prototypical inheritance and es2015 classes).
...they have methods as well that allow you to manipulate the string and access information
about the string: 'hello'.charat(0); // "h" 'hello, world'.replace('world', 'mars'); // "hello, mars" 'hello'.touppercase(); // "hello" other types javascript distinguishes between null, which is a value that indicates a deliberate non-value (and is only accessible through the null keyword), and undefined, which is a value of type undefined that indicates an uninitialized variable — that is, a va...
...we'll talk
about variables later, but in javascript it is possible to declare a variable without assigning a value to it.
...And 2 more matches
Introduction - JavaScript
if you are new to programming, try one of the tutorials linked on the main page
about javascript.
... javascript guide (this guide) provides an overview
about the javascript language and its objects.
...see new in javascript to learn more
about different versions of javascript and ecmascript specification editions.
...And 2 more matches
JavaScript
read more
about javascript.
...for information
about api specifics to web pages, please see web apis and dom.
...this module gives you some fundamental background knowledge
about how client-side frameworks work and how they fit into your toolset, before moving on to tutorial series covering some of today's most popular ones.
...And 2 more matches
Web audio codec guide - Web media technologies
for information
about the fundamental concepts behind how digital audio works, see the article digital audio concepts.
... factors affecting the encoded audio there are two general categories of factors that affect the encoded audio which is output by an audio codec's encoder: details
about the source audio's format and contents, and the codec and its configuration during the encoding process.
... for more information
about these and other features of audio data, see audio data format and structure in digital audio concepts.
...And 2 more matches
Privacy, permissions, and information security
security and privacy defined before we go into any depth
about the various security and privacy features available to users on the web, let's define some important terms.
... personally identification can include information like usernames, real names, passwords, phone numbers or addresses (or even portions of them), information
about medical history, social security numbers, driver licenses, or any other form of id or id number, credit card information, and so forth.
...everyone has some idea what it means to keep something private, but when talking
about the privacy of data, it becomes murky.
...And 2 more matches
Mobile first - Progressive web apps (PWAs)
this rings true, yes, but in our experience mobile first is more
about having the mobile implementation as a default layer to build on.
...our html looks like this: <article> <nav> <ul> <li><a href="#">home</a></li> <li><a href="#">articles</a></li> <li><a href="#">videos</a></li> <li><a href="#">work</a></li> <li><a href="#">
about</a></li> <li><a href="#">contact</a></li> </ul> </nav> <header> <a id="top" href="#bottom">jump to menu</a> <h1>my article</h1> </header> <div class="main"> <p>lorem ipsum … </p> <a id="bottom" href="#top">back to top</a> </div> </article> <button id="install-btn">install</button> default mobile css for the css, i first added some styles into our app.cs...
... one word of warning
about this technique though - positioning doesn't work as expected on elements with display: table set on them.
...And 2 more matches
The building blocks of responsive design - Progressive web apps (PWAs)
it is usually much better to create a single version of your code which doesn't care
about what browser or platform is accessing the site, but instead uses feature tests to find out what code features the browser supports or what the values of certain browser features are, and then adjusts the code appropriately.
...read more
about responsive design advantages and disadvantages.
...we have used brick to create the mobile layout for snapshot, which you will read more
about below.
...And 2 more matches
Progressive web apps (PWAs)
this set of docs tells you all you need to know
about them.
...to find out more
about what these mean, read progressive web app advantages.
...this guide explains how a2hs is used, and what you need to do as a developer to allow your users to take advantage of it.how to make pwas installablein this article, we learned
about how we can make pwas installable with a properly-configured web manifest, and how the user can then install the pwa with the "add to home screen" feature of their browser.how to make pwas re-engageable using notifications and pushhaving the ability to cache the contents of an app to work offline is a great feature.
...And 2 more matches
WebAssembly Concepts - WebAssembly
(note that webassembly has the high-level goal of supporting languages with garbage-collected memory models in the future.) with the advent of webassembly appearing in browsers, the virtual machine that we talked
about earlier will now load and run two types of code — javascript and webassembly.
... above we talked
about the raw primitives that webassembly adds to the web platform: a binary format for code and apis for loading and running this binary code.
... now let’s talk
about how we can use these primitives in practice.
...And 2 more matches
Content Scripts - Archive of obsolete 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.
...second, it means that content scripts can create objects without worrying
about whether they might clash with objects added by page scripts.
...if you need to do this, read
about interacting with page scripts.
...to learn
about communicating with content scripts loaded using context-menu, see the context-menu documentation.
context-menu - Archive of obsolete content
read more
about patterns.
... a special event named "context" is emitted in your content scripts whenever the context menu is
about to be shown.
... to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
... parameters predicatefunction : function(context) a function which will be called with an object argument that provide information
about the invocation context.
/loader - Archive of obsolete content
don't get too excited
about configuration options, keep in mind that modules are more useful if they can be used across loader instances.
...these graphs can be used to reason
about modules without diving into implementation details.
... if (subject.wrappedjsobject === unloadsubject) console.log("i am
about to unload, reason is " + reason); }}; observerservice.addobserver(observer, 'sdk:loader:destroy', false); unload the loader module exposes an unload() function that can be used to unload specific loader instance and undo changes made by modules loaded into it.
...it takes the following set of configuration options: name: a string value which identifies the sandbox in
about:memory.
Developing add-ons - Archive of obsolete content
this includes information
about addons.mozilla.org, mozilla's add-on distribution web site.
... plugins information
about how to create plugins, which are binary components that let mozilla based software display content they can't handle natively.
... 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.
... the mozilla platform information
about the mozilla platform, including all of its apis and technologies, as well as how to use them in your own projects.
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
« previousnext » fixme: we should include a link to the mdc list of snippets fixme: we need to add a part
about 'why and how to create your own component' c++/js this document was authored by hiroshi shimoda of clear code inc.
...
about xpcom xpcom is a framework for developing platform-independent components.
...type
about:config into the location bar to confirm that the value has been stored correctly.
...again, you can use
about:config to check that the value has been stored correctly.
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
read more
about this in the type attribute specification.
...this makes it easy to keep the themes separate and to make changes to one of them without having to worry
about the rest.
...now you just need to be careful
about when to use chrome://xulschoolhello/skin/ and when to use chrome://xulschoolhello-os/skin/.
...keep in mind that you shouldn't assume anything
about the location (or presence!) of any specific buttons; remember users could have moved them or removed them altogether.
Appendix F: Monitoring DOM changes - Archive of obsolete content
non-mutation triggers it is usually possible to tell when a mutation has occurred or is
about to occur without resorting to mutation events or observers.
...you can read more
about event delegation here.
... * * @param {string} selector the css selector of nodes
about which you * want to be notified.
...for instance, if you need to know
about attribute changes to a particular node, then you should replace its setattribute method with a function that calls the original setattribute function as originalsetattribute.apply(this, arguments) before running your necessary event code.
Handling Preferences - Archive of obsolete content
to access all other preferences, enter "
about:config" into the location bar.
...all changes done in
about:config are saved to the prefs.js file.
... the list in
about:config is not complete.
...you'll see this preference appear in
about:config after installing the extension.
Firefox addons developer guide - Archive of obsolete content
the stuff
about installing the dom inspector (https://developer.mozilla.org/en/firefox_addons_developer_guide/let%27s_build_a_firefox_extension#install_the_dom_inspector) is not accurate for firefox 3 or later, since it's no longer included in the firefox installer and must be downloaded from amo.
...certainly appendix 2 doesn't care what version of firefox you're using, since it's just
about open source software licenses.
...es inside the documents; add abbreviation definition to acronyms; add some link to the internal mdc documentation when it makes sense; indent source code; make sure documentation is relevant for all platforms: gnu/linux, macos, windows; add anchor links to figures & listings; add credits to original authors and license; completed sometimes, interfaces names are misspelled: s/nsl/nsi; talk
about fuel; titles of chapters and sub-headings should have caps for first letter of each word; we should add a part
about bad and good practices (leaks, global scopes, ...); add external resources (mozdev.org/community/books.html); add to chapter 3 or 5 more informations
about overlay (how to overlay some interesting part of firefox like status bar, menus or toolbar) add previous/next at the end ...
... opinions: i think we should be careful
about adding new contents to this guide.
An Interview With Douglas Bowman of Wired News - Archive of obsolete content
besides the fact that the engineers can finally focus on building out the working functionality of the site rather than worrying
about appearance or where the next spacer.gif is supposed to go?
...we don't make any claims
about past archived content, but we've taken many efforts to make sure even stories from a few years ago are as valid as possible.
...but some users may write in, frustrated and complaining
about the horrible design decisions we've made.
...what are the browser percentages of your current user base, and what
about your target user base (which may be different)?
XML data - Archive of obsolete content
for more information
about xml in mozilla, see the xml page in this wiki.
... notes
about this demonstration: the superscript 2 (in "million km²") a unicode character, coded as \b2 in the css file.
...if you had difficulty understanding this page, or if you have other comments
about it, please contribute to its discussion page.
...for more information
about css in mozilla, see the main css page in this wiki.
Creating a status bar extension - Archive of obsolete content
download the sample the install manifest the install manifest, install.rdf, is a text file containing information that tells the host application important information
about the extension.
... <?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-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>2.0.0.
... homepageurl the url of a web site the user can visit to get information
about the extension, or to look for updates.
...you can also find more details
about format of chrome manifests in the chrome manifest section.
JXON - Archive of obsolete content
if you want a complete bidirectional jxon library (modelled on the json global object), skip to the dedicated paragraph (but please read the note
about the const statement compatibility).
... now let's serialize doc — the dom tree — to a javascript object tree (you can read more
about working with objects and how javascript is object-oriented).
...before implementing it in a working environment, please read the note
about the const statement compatibility.
...
about this library the jxon.build() method summarizes all our four ways of conversion (see: #1, #2, #3, #4).
Migrate apps from Internet Explorer to Mozilla - Archive of obsolete content
one concrete example is window.open, which opens a new window: <script> function doopenwindow(){ var mywindow = window.open("
about:blank"); mywindow.location.href = "http://www.ibm.com"; } </script> the problem with the code is that window.open is asynchronous -- it does not block the javascript execution until the window has finished loading.
...this is because the parser has no knowledge
about javascript (or any other language) when in strict mode.
...i'll discuss more
about doctypes in the next section.
...zilla uses almost standards mode for the following conditions: for any "loose" doctype (for example, <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en">, <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">) for the ibm doctype (<!doctype html system "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd">) you can read more
about the image gap issue.
Space Manager High Level Design - Archive of obsolete content
during reflow, the space manager stores the space taken up by floats (updatespacemanager in nsblockframe) and provides information
about the space available for other elements (getavailablespace in nsblockreflowstate).
... data model class/component diagram nsspacemanager: the central point of management of the space taken up by floats in a block nsbanddata: provides information
about the frames occupying a band of occupied or available space nsblockbanddata: a specialization of nsbanddata that is used by nsblockreflowstate to determine the available space, float impacts, and where floats are cleared.
... frameinfo: a structure that keeps information
about the rectangle associated with a specific frame, in a linked list.
...this is used to communicate information
about the space in the band to the clients of the space manager.
Menus - Archive of obsolete content
for information
about submenus, see submenus below.
...for details
about adding shortcut keys to menus, see adding shortcut keys to menu items.
... for details
about adding icons to menus, see adding icons to menu items.
... for details
about creating checkbox menu items or radio menu items see checkbox menu items or radio menu items.
Panels - Archive of obsolete content
for more information
about positioning the popup, see positioning popups.
...for more information
about this attribute and other possible values that can be used, see positioning popups.
...for more details
about both methods, see opening and closing popups.
... for more information
about these types of panels, see floating panels.
Cross Package Overlays - Archive of obsolete content
applying overlays to other packages note: this section talks
about contents.rdf which has been replaced in gecko 1.8 by manifest files.
... <rdf:seq
about="urn:mozilla:overlays"> <rdf:li resource="chrome://navigator/content/navigator.xul"/> </rdf:seq> this declares that we are adding a overlay window, a child of the root overlay node (urn:mozilla:overlays).
... <rdf:seq
about="chrome://navigator/content/navigator.xul"> <rdf:li>chrome://findfile/content/foverlay.xul</rdf:li> </rdf:seq> mozilla reads this information and builds a list of overlays that are applied to other windows.
...the following example shows how: <rdf:seq
about="urn:mozilla:stylesheets"> <rdf:li resource="chrome://messenger/content/messenger.xul"/> </rdf:seq> <rdf:seq
about="chrome://messenger/content/messenger.xul"> <rdf:li>chrome://blueswayedshoes/skin/myskinfile.css</rdf:li> </rdf:seq> next, we'll see how to create an installer for a xul application.
Using the Editor from XUL - Archive of obsolete content
the xul contains an <editor> tag, e.g.: <editor type="content-primary" id="content-frame" src="
about:blank" flex="1"/> the attribute type="content-primary" identifies this as the window content element, i.e.
... when the xul was parsed, the src attribute on the content frame was set to
about:blank (our default 'blank page' url).
...one thing to note
about editor initialization is that we pass into the editor's init() method an nsicontent* that corresponds to the root of the content tree that the editor is allowed to work with.
... now, we initialize a nstextrulesinfo with the information
about the string being inserted, and call willdoaction() on the current editing rules.
XUL accessibility guidelines - Archive of obsolete content
titles provide users the most basic information
about the application.
... flexible sizing one of the great things
about xul is that visual layout is easy to control.
... animation user has control over animation and is warned
about flashing content.
... no control over animation or warnings
about flashing exist.
Debugging a XULRunner Application - Archive of obsolete content
see: preference reference for more information
about these preferences.
... jsdump(str) (function defined below) will output str as a "message" with a speech bubble icon next to it: function jsdump(str) { components.classes['@mozilla.org/consoleservice;1'] .getservice(components.interfaces.nsiconsoleservice) .logstringmessage(str); } for more information
about the error console see the error console and browser console article.
...bugger has changed: components.utils.import('resource://gre/modules/devtools/dbg-server.jsm'); if (!debuggerserver.initialized) { debuggerserver.init(); debuggerserver.addbrowseractors(); debuggerserver.allowchromeprocess = true; } let dbglistener=debuggerserver.createlistener(); dbglistener.portorpath=6000; dbglistener.open(); add the following to your prefs.js: (in recent ffox, edit
about:config instead) pref("devtools.debugger.remote-enabled", true); in firefox, go to tools > web developer > connect...
... note the "new in firefox 3" attribute "contentaccessible" on https://developer.mozilla.org/en/chrome_registration so as per http://markmail.org/message/ezbomhkw3bgqjllv#query:x-jsd+page:1+mid:xvlr7odilbyhn6v7+state:results change the manifest to have this line: content venkman jar:venkman.jar!/content/venkman/ contentaccessible=yes i get errors
about not being able to open contentareautils.js, contentareadd.js, findutils.js, or contentareautils.js...
Archived Mozilla and build documentation - Archive of obsolete content
these articles are archived, obsolete documents
about mozilla, gecko, and the process of building mozilla projects.
... califiletype the califiletype interface provides information
about a specific file type.
... mozilla application framework the mozilla application framework: for powerful, easy to develop cross-platform applications mozilla crypto faq 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.
... sxsw 2007 presentations presentations
about the mozilla project given at the sxsw 2007 event in austin, texas.
2006-11-24 - Archive of obsolete content
discussions
about functions that display the events/tasks of the calendars in month view.
... filing bugs for prototype implementations discussions
about explicitly address bugs in the prototype implementations.
... proposal for an event summary dialog discussions
about design for an event summary dialog.
... treating calendars as tags discussions concerning
about the layout of calendar list in lightning/sunbird.
2006-12-01 - Archive of obsolete content
discussions cancellable async requests discussions
about a bug of calicalendar's async methods.
... tasks in sunbird & lightning discussion
about how to accessing the tasks in view in sunbird and lightning.
... discussions
about universal binaries for sunbird.
... override a method (xbl) discussions
about how to override a js function in a js file.
Sunbird Theme Tutorial - Archive of obsolete content
making a theme a theme consists of: a unique identifier a file containing information
about the theme a file that registers the theme with sunbird some files containing the theme itself set up your theme in sunbird's profile directory.
... creating information
about your theme in your theme directory, create a plain text file named <tt>install.rdf</tt>.
... 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="http://developer.mozilla.org/" em:version="0.1" em:internalname="testing" em:type="4" > <em:targetapplication><!-- sunbird --> <description em:id="{718e30fb-e89b-41dd-9da7-e25a45638b28}" em:minversion="0.2.9" em:maxversion="0.4" /> </em:targetapplication> </description> </rdf> in the line that starts <tt>em:id</tt>, ...
...make an image file
about 200 by 100 pixels, and save it as <tt>preview.png</tt> in your theme directory.
Building a Theme - Archive of obsolete content
note: this tutorial is
about building themes for firefox 29 and later.
... create the install manifest open the file called install.rdf that you created at the top of your extension's folder hierarchy and put this inside: <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>sample@example.net</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- target application this theme can install into, with minimum and maximum supported versions.
...rather than load the browser from disk using a file:// uri (since the location of firefox on the system can change from platform to platform and system to system), mozilla developers came up with a solution for creating uris to content that the installed add-on knows
about.
... test first, we need to tell firefox
about your theme.
Audio for Web games - Game development
there is further information
about it here from the google developers site.
...you can find out more
about best practises with the autoplay policy here.
... testing and support here's a table that shows what mobile platforms support the features talked
about above.
... the pannernode harnesses the positional capabilities of the web audio api so we can relate further information
about the game world to the player.
Backgrounds and borders - Learn web development
this example demonstrates two things
about background images.
... you can read more
about the different types of gradients and things you can do with them on the mdn page for the <gradient> data type.
... borders when learning
about the box model, we discovered how borders affect the size of our box.
...do explore the different property pages if you want to find out more
about any of the features we have discussed.
Cascade and inheritance - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the cascade and specificity, and how inheritance works in css.
... note: on mdn css property reference pages you can find a technical information box, usually at the bottom of the specifications section, which lists a number of data points
about that property, including whether it is inherited or not.
... something to note here is that although we are thinking
about selectors, and the rules that are applied to the thing they select, it isn't the entire rule which is overwritten, only the properties which are the same.
...we'd advise that you return to this article a few times as you continue through the course, and keep thinking
about it.
Handling different text directions - Learn web development
instead they will talk
about start and end along with this idea of inline and block.
... don't worry too much
about that right now, but keep these ideas in mind as you start to look at layout; you will find it really helpful in your understanding of css.
... logical properties and values the reason to talk
about writing modes and direction at this point in your learning however, is because of the fact we have already looked at a lot of properties which are tied to the physical dimensions of the screen, and make most sense when in a horizontal writing mode.
... logical margin, border, and padding properties in the last two lessons we have learned
about the css box model, and css borders.
Images, media, and form elements - Learn web development
you need to make a decision
about what happens with the overflow.
... so what can we do
about the overflowing issue?
... you can make other choices
about images inside containers.
...you learned
about the box-sizing property in our box model lesson and you can use this knowledge when styling forms to ensure a consistent experience when setting widths and heights on form elements.
How CSS works - Learn web development
javascript is handled a bit later on in the process, and we won't talk
about it here to keep things simpler.
...
about the dom a dom has a tree-like structure.
... the updated output is as follows: in our debugging css article in the next module we will be using browser devtools to debug css problems, and will learn more
about how the browser interprets css.
...old browsers will use the pixel version, ignoring the line
about calc() as they don't understand it.
Fundamental text and font styling - Learn web development
verdana sans-serif note: among various resources, the cssfontstack.com website maintains a list of web safe fonts available on windows and macos operating systems, which can help you make your decision
about what you consider safe for your usage.
...the maths can be complicated, so you need to be careful
about how you style things.
...if you are going to use this, you should also think
about using something else along with it, such as hyphens, to break some of the longer words across lines.
...the next article will give you all you need to know
about styling html lists.
What text editors are available? - Learn web development
in this article we highlight some things to think
about when installing a text editor for web development.
... prerequisites: you should already know
about various software you need to build a website.
...you will learn more
about customizing your editors and tools as you gain experience, and more importantly you will learn what features are more useful to your purposes.
... dig deeper choice criteria so, in more detail, what should you be thinking
about when you choose a text editor?
How to build custom form controls - Learn web development
we have to think a little further: what
about the escape key?
...if you want to learn more
about this topic, you should check out the following helpful resources: uxmatters.com uxdesign.com the ux design section of smashingmagazine note: also, in most systems there is a way to open the <select> element with the keyboard to look at all the available choices (this is the same as clicking the <select> element with a mouse).
... .select .optlist.hidden { /* this is a simple way to hide the list in an accessible way; we will talk more
about accessibility in the end */ max-height: 0; visibility: hidden; } note: we could also have used transform: scale(1, 0) to give the optionlist no height and full width.
... making the job easier in the code we are
about to build, we will use the standard javascript and dom apis to do all the work we need.
CSS property compatibility table for form controls - Learn web development
font yes yes see the note
about line-height letter-spacing yes yes text-align yes yes text-decoration partial partial see the note
about opera text-indent partial[1] partial[1] ie9 supports this property only on <textarea>s, whereas opera only supports it on single line text fields.
... text and font color yes yes font yes yes see the note
about line-height.
... text and font color yes yes font yes yes see the note
about line-height.
... text and font color yes yes font yes yes see the note
about line-height.
JavaScript basics - Learn web development
to learn more
about alternative approaches, see script loading strategies.
...(see this section
about naming rules.) if you are unsure, you can check your variable name to see if it's valid.
... note: for more details
about the difference between var and let, see the difference between var and let.
...(read more
about variable scoping.) events real interactivity on a website requires events handlers.
The web and web standards - Learn web development
this article provides some useful background on the web — how it came
about, what web standard technologies are, how they work together, why "web developer" is a great career to choose, and what kinds of best practices you'll learn
about through the course.
... web best practices we have briefly talked
about the technologies that you'll use to build websites.
...it also goes beyond people with disabilities — how
about young or old people, people from different cultures, people using mobile devices, or people with unreliable or slow network connections?
...privacy refers to allowing people to go
about their business privately and not spying on them or collecting more of their data than you absolutely need to.
Creating hyperlinks - Learn web development
the title contains additional information
about the link, such as which kind of information the page contains, or things to be aware of on the web site.
... <p>i'm creating a link to <a href="https://www.mozilla.org/" title="the best place to find more information
about mozilla's mission and how to contribute">the mozilla homepage</a>.
... inside the html body, add one or more paragraphs or other types of content you already know
about.
... <a href="https://www.mozilla.org/"> <img src="mozilla-image.png" alt="mozilla logo that links to the mozilla homepage"> </a> note: you'll find out more
about using images on the web in a future article.
Adding vector graphics to the Web - Learn web development
you can also go to the svg element reference, find out more details
about other toys you can use in svg, and try those out too.
... this section is all
about practising your research skills, and having some fun.
...nt to save the state when the user code is being shown, // not the solution, so that solution is not saved over the user code if(solution.value === 'show solution') { userentry = textarea.value; } else { solutionentry = textarea.value; } updatecode(); }; summary this article has provided you with a quick tour of what vector graphics and svg are, why they are useful to know
about, and how to include svg inside your webpages.
...we've included some links below that might help you if you wish to go and find out more
about how it works.
From object to iframe — other embedding technologies - Learn web development
the online world is very familiar with youtube, but many people don't know
about some of the sharing facilities it has available.
...ie 10 and above) requests heightened security settings; we'll say more
about this in the next section.
...if you are using different hosting and are not sure, ask your hosting provider
about it.
...and then you constantly got annoying alerts
about updating flash player and your java runtime environment.
Introduction to web APIs - Learn web development
as a real-world example, think
about the electricity supply in your house, apartment, or other dwellings.
... relationship between javascript, apis, and other javascript tools so above, we talked
about what client-side javascript apis are, and how they relate to the javascript language.
...find out more
about these types of api in manipulating documents.
...find out more
about such apis in fetching data from the server.
Arrays - Learn web development
if we had 10 items to add to the invoice it would already be annoying, but what
about 100 items, or 1000?
... as in previous articles, let's learn
about the real basics of arrays by entering some examples into browser developer console.
...so for example: let sequence = [1, 1, 2, 3, 5, 8, 13]; for (let i = 0; i < sequence.length; i++) { console.log(sequence[i]); } you'll learn
about loops properly later on (in our looping code article), but briefly, this code is saying: start looping at item number 0 in the array.
...we'll be teaching you all the useful basics there are to know
about loops in the next module, but for now you should give yourself a clap and take a well-deserved break; you've worked through all the articles in this module!
Object-oriented JavaScript for beginners - Learn web development
objects can contain related data and code, which represent information
about the thing you are trying to model, and functionality or behavior that you want it to have.
... defining an object template let's consider a simple program that displays information
about the students and teachers at a school.
...there are lots of things you could know
about a person (their address, height, shoe size, dna profile, passport number, significant personality traits ...) , but in this case we are only interested in showing their name, age, gender, and interests, and we also want to be able to write a short introduction
about them based on this data, and get them to say hello.
...think
about how the sentences should be structured differently depending on gender, and depending on whether the number of listed interests is 1, 2, or more than 2.
What is web performance? - Learn web development
previous overview: performance next web performance is all
about making web sites fast, including making slow processes seem fast.
... how content is rendered to effectively understand web performance, the issues behind it, and the major topic areas we mentioned above, you really should understand some specifics
about how browsers work.
...you can read all
about this topic at understanding latency.
... conclusion that's it for now; we hope our brief overview of the web performance topic helped you to get an idea of what it is all
about, and made you excited to learn more.
The "why" of web performance - Learn web development
overview: performance next web performance is all
about making websites fast, including making slow processes seem fast.
... why care
about performance?
...our example 22.6 mb cnn.com experience would cost
about 11% of the average indian's daily wage to download.
...this is why you should care
about web performance.
Introduction to the server side - Learn web development
in the modern world of web development, learning
about server-side development is highly recommended.
... customised user experience servers can store and use information
about clients to provide a convenient and tailored user experience.
... data analysis a website may collect a lot of data
about users: what they search for, what they buy, what they recommend, how long they stay on each page.
... summary congratulations, you've reached the end of the first article
about server-side programming.
React interactivity: Editing, filtering, conditional rendering - Learn web development
objective: to learn
about conditional rendering in react, and implementing list filtering and an editing ui in our app.
...we're
about to create this.
... editing from the ui much of what we're
about to do will mirror the work we did in form.js: as the user types in our new input field, we need to track the text they enter; once they submit the form, we need to use a callback prop to update our state with the new name of the task.
... back to the filter buttons now that our main features are complete, we can think
about our filter buttons.
Beginning our React todo list - Learn web development
once we have put our styles in place, though, any element with this class will be hidden from sighted users and still available to screen reader users — this is because these words are not needed by sighted users; they are there to provide more information
about what the button does for screenreader users that do not have the extra visual context to help them.
...a <ul> is treated like a list by default, but the styles we're
about to add will break that functionality.
...if you want to learn more
about why this is necessary, you can check out scott o'hara’s article, “fixing lists”.
...don't worry too much
about this for now — we will cover this later on when we get to using events.
Strategies for carrying out testing - Learn web development
studying analytics data now you should be able to go back to the analytics web homepage, and start looking at the data you've collected
about your site (you need to leave a little bit of time for some data to actually be collected, of course.) by default, you should see the reporting tab, like so: there is a huge amount of data you could look at using google analytics — customized reports in different categories, etc.
...u are not able to have multiple versions of the default browser installed side by side, so you might want to build up a library of virtual machines to handle different tests as required, e.g.: windows 10 with edge 14 windows 10 with edge 13 windows 8.1 with ie11 windows 8 with ie10 windows 7 with ie9 windows xp with ie8 windows xp with ie7 windows xp with ie6 note: another good thing
about virtual machines is that the virtual disk images are fairly self-contained.
... there are also commercial tools available such as sauce labs, browser stack and lambdatest that do this kind of thing for you, without you having to worry
about the setup, if you wish to invest some money in your testing.
... user testing before we move on, we'll finish this article off by talking a bit
about user testing — this can be a good option if you have a willing user group to test your new functionality on.
Git and GitHub - Learn web development
this module aims to teach you what you need to know
about both of them.
... in terms of prerequisite knowledge, you don't need to know anything
about web development, git/github or vcses to start this module.
...
about pull requests (from github) a useful guide to managing pull requests, the way that your suggested code changes are delivered to people's repositories for consideration.
...this articles gives you what you need to know
about issues.
Command line crash course - Learn web development
we’ll see how to install some tools later on in this chapter, and we’ll learn more
about package registries in the next chapter.
... you don’t need to worry too much
about whether a command is a built-in or not, but bear in mind that built-ins appear on all unix-based systems.
...simple commands do not carry too much danger, but as you start putting together more complex commands, you need to think carefully
about what the command will do, and try testing them out first before you finally run them in the intended directory.
...you can find a lot more information
about using prettier in different ways in the prettier docs.
Adding a new CSS property
see the gecko overview for more information
about the style system.
... issues
about how to write such a specification (including things such as whether it is appropriate to use prefixes or when properties should be inherited by default) are not covered here.
... again, see the documentation at the top of the file and the other entries for examples, and also see the next section for details
about parsing.
... while we implement the string api in terms of the value api, we generally don't care much
about the deprecated primitive value api, so in cases where there's some new structure, you should generally create the simplest structure of primitive values that will produce the right string.
Application cache implementation overview
nsiapplicationcacheservice::chooseapplicationcache is given the url the channel is
about to load.
...associating the top level document with offline cache this happens between document load start and the first sub-resource download start and is not
about associating nsiapplicationcache object with the channel, but with the document object the load is performed for.
... until steps described further the document doesn't know anything
about its appcache.
...when the update is
about to actually start, the scheduling service calls nsofflinecacheupdate::begin() method, that switches the update to checking state (+invokes onchecking event) and starts fetch of the manifest file.
Creating reftest-based unit tests
sorry
about this, but the released builds and the nightly builds are built with the "--disable-tests" option and reftest will not work - see bug 369809.
... there is one thing
about automated tests that may not be obvious.
...the cost of thinking
about and managing the execution of a manual test is fairly high.
... reftests and preferences in order to use preferences that are not listed in the browser's built-in preferences files such as all.js (in other words, preferences that will not show up in
about:config) it is necessary to add the preference to testing/profiles/reftest/user.js.
Debugging JavaScript
to enable it, go to
about:config in the url bar and set devtools.chrome.enabled to true, or set the "enable chrome and add-on debugging" option in the developer tool settings.
... go to
about:config and set the following two prefs: devtools.chrome.enabled: true devtools.debugger.remote-enabled: true after you restart the browser, you can access the browser debugger through tools > web developer > browser toolbox.
... (note that before firefox 28, this was labeled "browser debugger" and only the debugger was available, not the whole toolbox.) note that you must accept the incoming connection : (you may disable the pop-up above with the devtools.debugger.prompt-connection set to false in
about:config.
...in
about:config (add new pref, it doesn't exist per default).
HTTP logging
using
about:networking this is available starting with firefox 52.
... open a new tab and type in "
about:networking" into the url bar.
... logging http activity by manually setting environment variables sometimes the
about:networking approach won't work, for instance if your bug occurs during startup, or you're running on mobile, etc.
... this will cause each log message to be immediately written (and fflush()'d), which is likely to give us more information
about your crash.
Debugging
debugging the mozilla platform using debuggers with mozilla debugging mozilla on windows faq questions (and answers)
about debugging mozilla on windows.
... debugging mozilla on os x questions (and answers)
about debugging mozilla on os x.
... debugging a minidump windows crash reports include a minidump, which contains a lot of information
about the application when it crashed.
... miscellaneous debugging safari some tips for debugging safari debugging chrome some tips for debugging chrome debugging internet explorer some tips for debugging internet explorer providing useful information to the mozilla developers how to get a stacktrace for a bug report useful information you can provide
about a crash.
The Firefox codebase: CSS Guidelines
the overriding css section contains more information
about this.
... testing to test for rtl layouts, you can go to
about:config and set intl.uidirection to -1.
... if you are not using windows, one way to test against those adjustments on other platforms is: going to
about:preferences clicking on the "colors..." button in the "fonts & colors" sub-section of the "language and appearance" section under "override the colors specified by the page with your selections above", select the "always" option chrome area the automatic adjustments previously mentioned only apply to pages rendered in the content area.
... reflows and style flushes see performance best practices for firefox front-end engineers for more information
about this.
Index
found 172 pages: # page tags and summary 1 firefox firefox, landing, mozilla here you can learn
about how to contribute to the firefox project and you will also find links to information
about the construction of firefox add-ons, using the developer tools in firefox, and other topics.
... 11 firefox and the "
about" protocol firefox, guide, mozilla, protocols there is a lot of useful information
about firefox hidden away behind the
about: url protocol.
... the most useful is the url
about:config, which displays preferences and settings that can be inspected and changed.
...you can find details
about profiles on mozilla's end-user support site.
Limitations of chrome scripts
in this case, the shim will return a javascript object that looks somewhat like a window or a document for
about:blank.
... nsi
aboutmodule by default, custom
about: pages registered using nsi
aboutmodule are loaded in the chrome process.
... you can change this default in the code you use to register the
about: uri.
... see
about: and chrome: uris.
Limitations of frame scripts
nsi
aboutmodule by default, custom
about: pages registered using nsi
aboutmodule are loaded in the chrome process.
... there is a shim for this that makes the content of
about: pages registered by the add-on transparently available in the content process.
... to avoid the shim: if you need to access the content of your
about page from the content process, you need to register the nsi
aboutmodule in the content process as well as the chrome process.
... by default,
about: pages (except for a small whitelist) are loaded in the chrome process when browsed to from the awesomebar.
Performance best practices for Firefox front-end engineers
detecting and avoiding synchronous reflow this is also sometimes called “sync layout”, "sync layout flushes" or “sync layout calculations” sync reflow is a term bandied
about a lot, and has negative connotations.
... here's a list of things that javascript can ask for that can cause uninterruptible reflow, to help you think
about the problem.
...there’s plenty of excellent documentation on mdn
about the gecko profiler: basic instructions for gathering and sharing a performance profile advanced profile analysis don’t guess—measure.
... if you’re working on a performance improvement, this should go without saying: ensure that what you care
about is actually improving by measuring before and after.
AsyncShutdown.jsm
info optionally, a function returning information
about the current state of the blocker as an object.
... // 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.
... properties attribute type description profilebeforechange read only phase the profile is
about to be unmounted.
... webworkersshutdown read only phase javascript threads are
about to be killed.
OS.File for the main thread
os.file.stat() obtain information
about a file, such as size, creation date, etc.
... promise resolves to an instance of file.info holding information
about a file.
... stat() obtain information
about the file, such as size, creation date, etc.
... promise<file.info> stat() promise resolves to an instance of file.info holding information
about the file.
Localizing with Mozilla Translator
the directory structure will look like this: (ab-cd jar root) locale |-- branding | |-- brand.dtd | `-- brand.properties |-- browser | |--
aboutdialog.dtd .
... |-- browser-region | `-- region.properties `-- ab-cd |-- alerts | `-- notificationnames.properties |-- autoconfig | `-- autoconfig.properties |-- cookie | |-- cookieacceptdialog.dtd | `-- cookieacceptdialog.properties |-- global | |--
about.dtd | |-- apppicker.dtd .
...rt looks like this: toolkit |-- locales | |-- en-us | | |-- chrome | | | |-- alerts | | | | `-- notificationnames.properties | | | |-- autoconfig | | | | `-- autoconfig.properties | | | |-- cookie | | | | |-- cookieacceptdialog.dtd | | | | `-- cookieacceptdialog.properties | | | |-- global | | | | |--
about.dtd | | | | |-- apppicker.dtd .
... browser |-- locales | |-- en-us | | |-- readme.txt | | |-- chrome | | | |-- branding | | | | |-- brand.dtd | | | | `-- brand.properties | | | |-- browser | | | | |--
aboutdialog.dtd as you see, there is ''link'' point, usually at chrome (in cvs & mozilla-central), sometimes in a deeper point.
GC and CC logs
gc and cc logs garbage collector (gc) and cycle collector (cc) logs give information
about why various js and c++ objects are alive in the heap.
... 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.
...
about:cc is simple, ugly, but rather powerful.
...
about:ccdump is prettier but a bit slower.
Power profiling overview
this article covers important background information
about power profiling, with an emphasis on intel processors used in desktop and laptop machines.
... the other thing to note
about c-states is that they apply both to cores and the entire package — i.e.
...see section 14.9 of volume 3 of the intel software developer's manual for more details
about rapl.
... further reading chapter 13 of the intel optimization manual has many details
about optimizing for power consumption.
Performance
about:memory
about:memory is the easiest-to-use tool for measuring memory usage in mozilla code, and is the best place to start.
...
about:memory is built on top of firefox's memory reporting infrastructure.
... dmd dmd is a tool that identifies shortcomings in
about:memory's measurements, and can also do multiple kinds of general heap profiling.
... investigating css performance how to figure out why restyle is taking so long power profiling power profiling overview this page provides an overview of relevant information, including details
about hardware, what can be measured, and recommended approaches.
Debugging out-of-memory problems
by the time
about:memory is loaded in a new tab and you have clicked the "measure" button to diagnose what's happened, the memory usage causing the spike has gone away, making temporary memory spikes difficult to diagnose.
... 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.
... ideally, memory.dump_reports_on_oom would generate an
about:memory dump, but it does not currently.
... 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.
Midas
examples this example shows the basic structure described in the notes section : <html> <head> <title>simple edit box</title> </head> <body> <iframe id="midasform" src="
about:blank" onload="this.contentdocument.designmode='on';" ></iframe> </body> </html> methods document.execcommand executes the given command.
...see: more
about security preferences note: the shortcut key will automatically trigger this command (typically accel-c) with or without the signed js or any code on the page to handle it.
...see: more
about security preferences note: the shortcut key will automatically trigger this command (typically accel-x) with or without the signed js or any code on the page to handle it.
...user_pref("capability.policy.policynames", "allowclipboard"); user_pref("capability.policy.allowclipboard.clipboard.paste", "allaccess"); see: more
about security preferences note: the shortcut key will automatically trigger this command (typically accel-v) with or without the signed js or any code on the page to handle it.
PR_GetFileInfo
gets information
about a file with a specified pathname.
... syntax #include <prio.h> prstatus pr_getfileinfo( const char *fn, prfileinfo *info); parameters the function has the following parameters: fn the pathname of the file to get information
about.
...on output, pr_getfileinfo writes information
about the given file to the file information object.
... description pr_getfileinfo stores information
about the file with the specified pathname in the prfileinfo structure pointed to by info.
PR_GetFileInfo64
gets information
about a file with a specified pathname.
... syntax #include <prio.h> prstatus pr_getfileinfo64( const char *fn, prfileinfo64 *info); parameters the function has the following parameters: fn the pathname of the file to get information
about.
...on output, pr_getfileinfo64 writes information
about the given file to the file information object.
... description pr_getfileinfo64 stores information
about the file with the specified pathname in the prfileinfo64 structure pointed to by info.
PKCS11 FAQ
nss never attempts to cache this information, because login state can change instantly without nss knowing
about it (for example, when the user removes the card).
...nss knows
about all the mechanisms defined in pkcs #11 version 2.01, but will not perform those that aren't defined by nss's policy mechanism.
... questions
about keys and tokens is the pkcs #11 token treated in a read-only manner?
... questions
about pins will a password change ever be done on the token?
NSS Tools
for information
about downloading the nss source, see https://developer.mozilla.org/nss/building.
...this newsgroup is the preferred forum for all questions
about nss and nss tools.
...for additional information
about this tool, see object signing.
...for additional information
about this tool, see form signing ...
NSS Tools modutil
-list [modulename] display basic information
about the contents of the secmod.db file.
... use modulename to display detailed information
about a particular module and its slots and tokens.
... creating a set of security management database files (key3.db, cert8.db, and secmod.db): -create displaying basic module information or detailed information
about the contents of a given module: -list [modulename] adding a pkcs #11 module, which includes setting a 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 -installdi...
... displaying module information this example gives detailed information
about the specified module: modutil -list "netscape internal pkcs #11 module" -dbdir c:\databases the security module database tool displays information similar to this: using database directory c:\databases...--------------------------------------------------------name: netscape internal pkcs #11 modulelibrary file: **internal only module**manufacturer: netscape communications corp description: com...
Network Security Services
nss faq answers basic questions
about nss.
... introduction to ssl introduces the ssl protocol, including information
about cryptographic ciphers supported by ssl and the steps involved in the ssl handshake.
... getting started nss releases this page contains information
about the current and past releases of nss.
... nss api guidelines explains how the libraries and code are organized, and guidelines for developing code (naming conventions, error handling, thread safety, etc.) nss technical notes links to nss technical notes, which provide latest information
about new nss features and supplementary documentation for advanced topics in programming with nss.
Garbage collection
mark bits are allocated based on the minimum cell size, thus an object comprised of larger cells consumes multiple bits in the bitmap (but only uses two of them.) exact stack rooting api note: the information here is
about the implementation of gc roots and their use within spidermonkey.
...the barrier fires whenever the mutator is
about to overwrite a location that holds a gc pointer.
...thus, if whenever we're
about to overwrite a pointer to an object we mark the object black first, then no objects can get 'lost'.
...in other words, it is an updatable pointer to a gc thing (it is essentially a cell** that the gc knows
about.) root a starting point to the gc graph traversal, a root is known to be alive for some external reason (one other than being reachable by some other part of the gc heap.) weak pointer in common cs terminology, a weak pointer is one that doesn't keep the pointed-to value live for gc purposes.
Web Replay
when the code creates a debugger object, that debugger provides information
about the child process rather than the current (middleman) process.
... as with the devtools js code, this debugger lives in the middleman process, and instead of wrapping things from another compartment the debug objects hold heap structures with information
about some thing in the child process.
... appendix: debugger details here is some more detailed information
about how a recording/replaying process affects the debugger, and options for future improvements.
... appendix: impacts on gecko development web replay is designed to minimize the places where other parts of gecko need to know
about it or interact with it.
Querying Places
a new session starts when the user types a new url or follows a bookmark (xxx link to more details
about what constitutes a session).
...the results are of type result_type_full_visit and have additional information
about the visit, such as the referring visit, and how the transition happened (typed, redirect, link, etc).
... and deserializing two queries and an options object: let querystring = placesutils.history.queriestoquerystring([query1, query2], 2, options); let queriesref = { }; let querycountref = { }; let optionsref = { }; placesutils.history.querystringtoqueries(querystring, queriesref, querycountref, optionsref); // now use queriesref.value, optionsref.value see places query uris for more information
about the terms available for "place:" uris.
... nsinavhistoryfullvisitresultnode: derived from nsinavhistoryvisitresultnode, contains information
about how the user navigated to this page.
nsIProtocolHandler
if the protocol doesn't need a port (for example, the "
about" protocol), this attribute is -1.
... uri_norelative 1<<0 the protocol doesn't support relative uris (for example,
about and javascript).
...(many servers do not support utf-8 iris at the present time, so we must be careful
about tracking the native charset of the origin server.) nsiuri newuri( in autf8string aspec, in string aorigincharset, in nsiuri abaseuri ); parameters aspec the uri string in utf-8 encoding.
... see also nsiproxiedprotocolhandler adding a new protocol to mozilla writing a firefox protocol handler custom
about: urls - similar to adding new protocol but adding onto the existing
about: protocol ...
Storage
if you end up finalizing the statement (see mozistoragestatement.finalize()) you do not need to worry
about calling mozistoragestatement.reset().
...of course, if your statement is local only to the function, you do not have to worry
about calling reset since the object will be destroyed.
...this method will manage the transactions for you, so you don't have to worry
about them.
... you can use them quite simply in your select queries, like this: var stmt = aconn.createstatement("select * from foo order by name collate locale asc"); var results = []; while (stmt.executestep()) { results.push(stmt.row.t); } stmt.finalize(); how to corrupt a database sqlite is very good
about maintaining database integrity, but there are a few things you can do that can lead to database corruption.
Reference Manual
you're more likely to see it in a form like this nscomptr<nsifoo> foo( do_queryinterface(alist->elementat(i)) ); // |elementat|, like all good getters, |addrefs| it's result // which would be dropped on the floor, after querying it for the needed // interface bugzilla bug 8221 is specifically
about finding and fixing this particular kind of leak.
...they know
about each other, but neither holds an owning reference to the other.
...several reasons: it would become inconvenient take the address of an nscomptr in all other situations; the name "getter_addrefs" enforces the notion that a certain behavior is required of the getter; and once upon a time, there was another possibility (as you're
about to learn).
... nsifoo* temp; nsresult rv = getfoo_withoutaddref(&temp); // note to self: must report |getfoo_withoutaddref| as a bug, all getters // must |addref| nscomptr<nsifoo> foo = temp; "in/out" parameters what
about "in/out" parameters?
Using the clipboard
this section provides information
about cutting, copying, and pasting to and from the clipboard.
... tell the transferring object
about the type of data being copied.
... tell the transferring object
about the data to copy.
... tell the transferring object
about the flavor of data you want to get.
XPCOM
accessing the windows registry using xpcomwhen implementing windows-specific functionality, it is often useful to access the windows registry for information
about the environment or other installed programs.
... troubleshooting xpcom components registrationoften the first time you create an xpcom component, it may fail to register correctly.using nscomptrthis document is the sum total of everything written down
about nscomptr.
... if you have a question
about nscomptr, and this document doesn't answer it, there probably isn't a document that answers it.
...this implementation will allow you to get(), set(), define(), and undefine() nsifile.using nsipasswordmanagertechnical review completed.using nsisimpleenumeratorusing the clipboardthis section provides information
about cutting, copying, and pasting to and from the clipboard.using the gecko sdkweak referencein xpcom, a weak reference is a special object that contains a pointer to an xpcom object, but doesnot keep that object alive.
Index
(see this document for info
about that.) for the addressbook card pane, the icon will show is on disk at: <profile home>/nim/<value of pref aim.session.screenname>/picture/<screenname for card>.gif if aim.session.screenname is not set, the icon will not appear.
... 32 index index found 72 pages: 33 ldap support administration, enterprise, thunderbird this document is intended to "fill in the gaps"
about how enterprise customers can leverage and customize ldap support in mozilla thunderbird.
...when this tutorial is finished, our extension will look like this: 76 building a thunderbird extension 3: install manifest extensions, thunderbird the install.rdf file is an xml file that provides general information
about the extension.
...bug 493414), but in the meantime, it would be helpful to be able to get useful output on stderr
about exceptions, events and pretty-printed objects.
Thunderbird
(from early 2007 to early 2011 thunderbird was developed by mozilla messaging, a subsidiary owned by mozilla.) documentation building thunderbird information
about building thunderbird with the comm-central repository.
... there's also information
about how the review process works and how to use the mozilla symbol server to help with debugging.
... mailnews protocols rough documentation
about mail protocols..
... database views backend information
about nsimsgdbview and related interfaces.
CSS Flexbox Inspector: Examine Flexbox layouts - Firefox Developer Tools
in the infobar when you hover over an element in the html pane, you will see a tooltip that gives you more information
about the element.
...once you select an element whose display is defined as flex, the panel will include a number of options for viewing details
about the flex container and flex items within it.
... you can find out more
about those in the section below.
... if you click on the item, 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 ther...
Work with animations - Firefox Developer Tools
the bar is: blue if a transition was used to animate a property orange if a @keyframes 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).
... if you hover over the bar, a tooltip appears, giving you more detailed information
about the animation or transition, including: the type of animation: css transition, css animation, or web animations api the duration of the animation the animation's start and end delay the animation's easing (or timing function).
... the animation's fill the playback rate of the animation information
about the animated element to the left of each bar is a selector for the element that the animation applies to.
... further information
about animation compositing if you open animation-inspector-compositing.html and click the red rectangle, a simple opacity animation will start.
UI Tour - Firefox Developer Tools
select element button the inspector gives you detailed information
about the currently selected element.
...to learn more
about the structure of the html pane, see the guide to examining and editing html.
... to learn more
about the layout view, see examine and edit the box model.
... to learn more
about the css declarations listed in this view, see examine computed css.
UI Tour - Firefox Developer Tools
to learn much more
about the waterfall, see the separate waterfall page.
... to learn much more
about the call tree, see the separate call tree page.
... flame chart if the call tree tells you, statistically, which functions your site is spending most time executing across the whole recording, the flame chart tells you the call stack at any given point during the recording: to learn much more
about the flame chart, see the separate flame chart page.
... the allocations view only appears if you checked "record allocations" in the performance tool settings, before recording a profile: to learn much more
about the allocations view, see the separate allocations page.
Settings - Firefox Developer Tools
if common preferences is not included in the settings, web console logs can be persisted by using the '
about:config' url in browser address bar, searching for: 'devtools.webconsole.persistlog' then toggling this value to true inspector show browser styles a setting to control whether styles applied by the browser (user-agent styles) should be displayed in the inspector's rules view.
...this setting works by toggling the
about:config preference "devtools.markup.collapseattributes".
... to change the threshold at which attributes are truncated, you can edit the
about:config preference "devtools.markup.collapseattributelength".
...learn more
about style editor support for css source maps.
Background Tasks API - Web APIs
getting the most out of idle callbacks because idle callbacks are intended to give your code a way to cooperate with the event loop to ensure that the system is utilized to its full potential without over-tasking it, resulting in lag or other performance problems, you should be thoughtful
about how you go
about using them.
... html content in order to be oriented
about what we're trying to accomplish, let's have a look at the html.
...on"> start </div> <div class="label counter"> task <span id="currenttasknumber">0</span> of <span id="totaltaskcount">0</span> </div> </div> <div class="logbox"> <div class="logheader"> log </div> <div id="log"> </div> </div> the progress box uses a <progress> element to show the progress, along with a label with sections that are changed to present numeric information
about the progress.
... variable declarations let tasklist = []; let totaltaskcount = 0; let currenttasknumber = 0; let taskhandle = null; these variables are used to manage the list of tasks that are waiting to be performed, as well as status information
about the task queue and its execution: tasklist is an array of objects, each representing one task waiting to be run.
Using the Frame Timing API - Web APIs
the performanceframetiming interface provides frame timing data
about the browser's event loop.
...this means the browser should process a frame in
about 16.7ms.
... an application can register a performanceobserver for "frame" performance entry types and the observer will have data
about the duration of each frame event.
...see performance profiling with the timeline for more information
about this tool.
Guide to the Fullscreen API - Web APIs
to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.
GlobalEventHandlers.onanimationend - Web APIs
note that there's nothing there
about animation.
...we'll use this to show information
about the events we receive.
... note the use of animationevent.animationname and animationevent.elapsedtime to get information
about the event which occurred.
...for information
about why, and how to support running an animation more than once, see run an animation again in css animations tips and tricks.
GlobalEventHandlers.onanimationstart - Web APIs
note that there's nothing there
about animation.
...we'll use this to show information
about the events we receive.
... note the use of animationevent.animationname and animationevent.elapsedtime to get information
about the event which occurred.
...for information
about why, and how to support running an animation more than once, see run an animation again in css animations tips and tricks.
HTMLSlotElement.name - Web APIs
to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 ...
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios full support 10.3samsung internet android full support 6.0legend full support full support no support no supportexperimental.
HTML Drag and Drop API - Web APIs
see interoperability for more information
about drag-and-drop interoperability.
... for more information
about drag data, see drag data.
... let img = new image(); img.src = 'example.gif'; ev.datatransfer.setdragimage(img, 10, 10); } learn more
about drag feedback images in: setting the drag feedback image define the drag effect the dropeffect property is used to control the feedback the user is given during a drag-and-drop operation.
... for more information
about handling the end of a drag operation, see: finishing a drag interoperability as can be seen in the datatransferitem interface's browser compatibility table, drag-and-drop interoperability is relatively broad among desktop browsers (except the datatransferitem and datatransferitemlist interfaces have less support).
RTCPeerConnection - Web APIs
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.
...the answer contains information
about any media already attached to the session, codecs and options supported by the browser, and any ice candidates already gathered.
...h rtp receiver manages the reception and decoding of data for a mediastreamtrack on an rtcpeerconnectiongetsenders()the rtcpeerconnection method getsenders() returns an array of rtcrtpsender objects, each of which represents the rtp sender responsible for transmitting one track's data.getstats()the rtcpeerconnection method getstats() returns a promise which resolves with data providing statistics
about either the overall connection or
about the specified mediastreamtrack.getstreambyid() the rtcpeerconnection.getstreambyid() method returns the mediastream with the given id that is associated with local or remote end of the connection.
...<<<add a link to info
about multiplexed rtcp.
Slottable: assignedSlot - Web APIs
to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 40safari full support 10.1webview android full support 53chrome android full support 53firefox android full support 63 full support 63 ...
...to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios full support 10.3samsung internet android full support 6.0legend full support full support no support no supportexperimental.
WebRTC connectivity - Web APIs
the description includes information
about the kind of media being sent, its format, the transfer protocol being used, the endpoint's ip address and port, and other information needed to describe a media transfer endpoint.
...this description includes all the information
about the caller's proposed configuration for the call.
... see the individual articles on these properties and methods for more specifics, and codecs used by webrtc for information
about codecs supported by webrtc and which are compatible with which browsers.
... ice candidates as well as exchanging information
about the media (discussed above in offer/answer and sdp), peers must exchange information
about the network connection.
A simple RTCDataChannel sample - Web APIs
we'll cover the mechanics of accomplishing the connection and transmitting and receiving data, but we will save the bits
about locating and linking to a remote computer for another example.
... set up the ice candidates the next step is to set up each connection with ice candidate listeners; these will be called when there's a new ice candidate to tell the other side
about.
... the next step is to connect the local peer to the remote by telling the remote peer
about it.
...now the remoteconnection knows
about the connection that's being built.
WebRTC API - Web APIs
to learn more
about adapter.js, see improving compatibility using webrtc adapter.js.
...details
about using webrtc statistics can be found in webrtc statistics api.
... rtcicetransport represents information
about an ice transport.
... rtcrtpcontributingsource contains information
about a given contributing source (csrc) including the most recent time a packet that the source contributed was played out.
Using XMLHttpRequest - Web APIs
these tell the client making the xmlhttprequest important information
about the status of the response.
...read the article
about html in xmlhttprequest to learn how to do this.
...if you want to perform the same effects using javascript you have to instruct the interpreter
about everything.
...*/ ifhaschanged("yourpage.html", function (nmodif, nvisit) { console.log("the page '" + this.filepath + "' has been changed on " + (new date(nmodif)).tolocalestring() + "!"); }); if you want to know if the current page has changed, please read the article
about document.lastmodified.
Web applications and ARIA FAQ - Accessibility
for more information
about how to create accessible widgets with aria, see the overview of accessible web applications and widgets.
...user interface library (yui) for more information
about javascript toolkit accessibility: steve faulkner's wai-aria implementation in javascript ui libraries can you show me an example of aria in action?
... .tab-panel[aria-hidden="true"] { display: none; } .tab-panel[aria-hidden="false"] { display: block; } what
about validation?
... where can i learn more
about aria?
Cognitive accessibility - Accessibility
providing warnings
about inactivity that could result in data loss.
... all users benefit from information
about where they are in a site's hierarchy, especially for sites or applications with large amounts of content or many subsections.
...for example, this document has an average grade level of
about 11.
...if you need to redirect a user, let the user know
about it beforehand.
@supports - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 12.1safari full support 9webview android full support ≤37chrome android full support 28firefox android full suppor...
...to change preferences in firefox, visit
about:config.opera android full support 12.1safari ios full support 9samsung internet android full support 1.5selector()chrome full support 83edge full support 83firefox full support 69 ...
...to change preferences in firefox, visit
about:config.ie no support noopera full support 69safari no support nonotes no support nonotes notes see bug 199237webview android full support 83chrome android full support 83firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nonotes no support nonotes notes see bug 979041.safari ios no support nonotes no support nonotes notes see bug 199237samsung internet android no support nonotes no support nonotes notes see bug 979041.legend ...
Basic concepts of flexbox - CSS: Cascading Style Sheets
start and end lines another vital area of understanding is how flexbox makes no assumption
about the writing mode of the document.
... you can read more
about the relationship between flexbox and the writing modes specification in a later article; however, the following description should help explain why we do not talk
about left and right and top and bottom when we describe the direction that our flex items flow in.
... after a while, thinking
about start and end rather than left and right becomes natural, and will be useful to you when dealing with other layout methods such as css grid layout which follow the same patterns.
... find out more
about wrapping flex items in the guide mastering wrapping of flex items.
CSS Scrollbars - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android no support nochrome android no support nofirefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportuser must explicitly enable this feature.user must explici...
...to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android no support nochrome android no support nofirefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportsee implementation notes.see implementation notes.user mus...
Event developer guide - Developer guides
our hope is that everything you need to know
about events will go under here.
... two common styles are: the generalized addeventlistener() and a set of specific on-event handlers.media eventsvarious events are sent when handling media that are embedded in html documents using the <audio> and <video> elements; this section lists them and provides some helpful information
about using them.mouse gesture eventsgecko 1.9.1 added support for several mozilla-specific dom events used to handle mouse gestures.
... these are special movements that can be made with a mouse or trackpad and can be interpreted to perform specific tasks.mutation eventsmutation events provide a mechanism for a web page or an extension to get notified
about changes made to the dom.
...this article provides details
about the coordinate systems at play and how you use them.overview of events and handlersevents 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.touch events (mozilla experimental)the experimental touch events api described on this page was avail...
Index - Developer guides
20 media events intermediate, media various events are sent when handling media that are embedded in html documents using the <audio> and <video> elements; this section lists them and provides some helpful information
about using them.
... 22 mutation events advanced, dom, guide mutation events provide a mechanism for a web page or an extension to get notified
about changes made to the dom.
...this article provides details
about the coordinate systems at play and how you use them.
...decisions like these are at the heart of mobile web development: be specific
about what you would like to accomplish, and pick a practical approach while being aware of the tradeoffs.
<a>: The Anchor element - HTML: Hypertext Markup Language
linking to an email address to create links that open in the user's email program to let them send a new message, use the mailto: scheme: <a href="mailto:nowhere@mozilla.org">send email to nowhere</a> for details
about mailto: urls, such as including a subject or body, see email links or rfc 6068.
... see rfc 3966 for syntax, additional features, and other details
about the tel: url scheme.
... inaccessible, weak link text a sadly common mistake is to only link the words “click here” or “here”: <p> learn more
about our products <a href="/products">here</a>.
... <p> learn more <a href="/products">
about our products</a>.
<input>: The Input (Form Input) element - HTML: Hypertext Markup Language
tip: if using the pattern attribute, inform the user
about the expected format by including explanatory text nearby.
...when it is, the position and size of the element's size and positioning within its frame can be adjusted using the css object-position and object-fit properties styling for more information
about adding color to elements in html, see: applying color to html elements using css.
...the <label> element provides explanatory information
about a form field that is always appropriate (aside from any layout concerns you have).
...for more information
about labels in general see labels .
Link types - HTML: Hypertext Markup Language
<a>, <area>, <link> <form> help if the element is <a> or <area>, it indicates that the hyperlink leads to a resource giving further help
about the parent of the element, and its descendants.
... if the element is <link> it indicates that the hyperlink leads to a resource giving further help
about the page as a whole.
... this is especially useful when opening untrusted links, in order to ensure they cannot tamper with the originating document via the window.opener property (see
about rel=noopener for more details), while still providing the referer http header (unless noreferrer is used as well).
... <a>, <area>, <form> <link> pingback defines an external resource uri to call if one wishes to make a comment or a citation
about the webpage.
Browser detection using the user agent - HTTP
browser makers do pay attention to bug reports, and the analysis may hint
about other workarounds for the bug.
... lastly, the above code snippets bring
about a critical issue with cross-browser coding that must always be taken into account.
...let us imagine a page composed of boxes of information; each box is
about a different feline breed or canine breed.
...always be very deliberate
about choosing the right media query and choosing the right >=, <=, >, or < in any corresponding javascript because it is very easy to get these mixed up, resulting in the website looking wonking right at the screen size where the layout changes.
Using HTTP cookies - HTTP
for details
about the header attributes mentioned below, refer to the set-cookie reference article.
...however, it can be helpful when subdomains need to share information
about a user.
... as a defence-in-depth measure, however, it is possible to use cookie prefixes to assert specific facts
about the cookie.
... for more information
about cookie prefixes and the current state of browser support, see the prefixes section of the set-cookie reference article.
Feature-Policy - HTTP
directives accelerometer controls whether the current document is allowed to gather information
about the acceleration of the device through the accelerometer interface.
... ambient-light-sensor controls whether the current document is allowed to gather information
about the amount of light in the environment around the device through the ambientlightsensor interface.
... gyroscope controls whether the current document is allowed to gather information
about the orientation of the device through the gyroscope interface.
... magnetometer controls whether the current document is allowed to gather information
about the orientation of the device through the magnetometer interface.
Index - HTTP
22 content-disposition http, reference, header in a multipart/form-data body, the http content-disposition general header is a header that can be used on the subpart of a multipart body to give information
about the field it applies to.
... 82 index http, http header, index found 115 pages: 83 keep-alive general header, http, http header, reference the keep-alive general header allows the sender to hint
about how the connection may be used to set a timeout and a maximum amount of requests.
... 98 server http, reference, header the server header contains information
about the software used by the origin server to handle the request.
... 115 warning general header, http, reference, header the warning general http header contains information
about possible problems with the status of the message.
Link prefetching FAQ - HTTP
add this line to your prefs.js file located in your profile directory (or make the appropriate change via
about:config): user_pref("network.prefetch-next", false); however, the theory is that if link prefetching needs to be disabled then there must be something wrong with the implementation.
... what
about folks who pay-per-byte for network bandwidth?
...you can block 3rd party cookies in firefox, see disabling third party cookies.) what
about...?
... if you have any questions or comments
about link prefetching, please feel free to send them my way :-) see also...
Control flow and error handling - JavaScript
the javascript reference contains exhaustive details
about the statements in this chapter.
...see expressions and operators for complete information
about expressions.
... throw statement try...catch statement exception types just
about any object can be thrown in javascript.
...you can use this identifier to get information
about the exception that was thrown.
The "codecs" parameter in common media types - Web media technologies
for instance, just describing a video in an mpeg-4 file with the mime type video/mp4 doesn't say anything
about what format the actual media within takes.
... this guide briefly examines the syntax of the media type codecs parameter and how it's used with the mime type string to provide details
about the contents of audio or video media beyond simply indicating the container type.
...the table below provides a basic list of the audio object types and in the case of the more common object ypes provides a list of the profiles supporting it, but you should refer to the specification for details if you need to know more
about the inner workings of any given mpeg-4 audio type.
...the following table lists permitted values; see chroma subsampling in digital video concepts for additional information
about this topic and others.
Web Performance
this article starts the module off with a good look at what performance actually is — this includes the tools, metrics, apis, networks, and groups of people we need to consider when thinking
about performance, and how we can make performance part of our web development workflow.
... frame timing api the performanceframetiming interface provides frame timing data
about the browser's event loop.
...from there, we'll go on to talk
about how browsers text, and how you can use css and javascript features to ensure your fonts render quickly, and with minimal disruption to the user experience.
...in this guide we'll talk
about the dynamic import() statement, which is a feature in modern browsers that loads a javascript module on demand.
Progressive loading - Progressive web apps (PWAs)
this is all
about deferring loading of as many resources as possible (html, css, javascript), and only loading those immediately that are really needed for the very first experience.
...if you're past that point, then you can start thinking
about optimizing the image loading using javascript.
... remember
about the progressive enhancement approach — offer a usable product no matter the device or platform, but be sure to enrich the experience to those using modern browsers.
... final thoughts that's all for this tutorial series — we went through the source code of the js13kpwa example app and learned
about the use of progressive web apps features including an introduction, pwa structure, offline availability with service workers, installable pwas, and finally notifications.
SVG Presentation Attributes - SVG: Scalable Vector Graphics
value: auto|srgb|linearrgb|<name>|<iri>|inherit; animatable: yes color-rendering it provides a hint to the browser
about how to optimize its color interpolation and compositing operations.
... value: auto|<angle>|inherit; animatable: no image-rendering it provides a hint to the browser
about how to make speed vs.
... value: bounding-box|visiblepainted|visiblefil|visiblestroke|visible |painted|fill|stroke|all|none; animatable: yes shape-rendering hints
about what tradeoffs to make as the browser renders <path> element or basic shapes.
... value: none|underline|overline|line-through|blink|inherit; animatable: yes text-rendering hints
about what tradeoffs to make as the browser renders text.
Guides - Archive of obsolete content
this page lists more theoretical in-depth articles
about the sdk.
... modules learn
about the module system used by the sdk (which is based on the commonjs specification), how sandboxes and compartments can be used to improve security, and
about the built-in sdk module loader, known as cuddlefish.
... classes and inheritance learn how classes and inheritance can be implemented in javascript, using constructors and prototypes, and
about the helper functions provided by the sdk to simplify this.
page-mod - Archive of obsolete content
to learn much more
about communicating with content scripts, see the guide to content scripts and in particular the chapter on communicating using port.
...sometimes, though, we don't care
about the url: we just want to execute a script on demand in the context of a particular tab.
... to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
panel - Archive of obsolete content
it means that the panel's
about // to be shown.
...pe="text/css" media="all"> textarea { margin: 10px; } body { background-color: gray; } </style> </head> <body> <textarea rows="13" cols="33" id="edit-box"></textarea> </body> </html> finally, save these three icon files to the "data" directory: icon-16.png icon-32.png icon-64.png to learn much more
about content scripts, see the working with content scripts guide.
...it means that the panel's
about // to be shown.
platform/xpcom - Archive of obsolete content
to learn more
about this, see registering and unregistering.
...to learn more
about this, see registering and unregistering.
... if the object implements an interface that's already defined in xpcom, you can pass that in here: var
about =
aboutfactory.createinstance(null, ci.nsi
aboutmodule); // you can now access the nsi
aboutmodule 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 t...
Display a Popup - Archive of obsolete content
it means that the panel's
about // to be shown.
... learning more to learn more
about the panel module, see the panel api reference.
... to learn more
about buttons, see the action button and toggle button api reference.
List Open Tabs - Archive of obsolete content
you'll see output in the command line console that looks something like this: info: http://www.mozilla.org/
about/ info: http://www.bbc.co.uk/ you don't get direct access to any content hosted in the tab.
...document: require("sdk/ui/button/action").actionbutton({ id: "list-tabs", label: "list tabs", icon: "./icon-16.png", onclick: listtabs }); function listtabs() { var tabs = require("sdk/tabs"); for (let tab of tabs) runscript(tab); } function runscript(tab) { tab.attach({ contentscript: "document.body.style.border = '5px solid red';" }); } learning more to learn more
about working with tabs in the sdk, see the tabs api reference.
... to learn more
about running scripts in tabs, see the tutorial on using tab.attach().
Listen for Page Load - Archive of obsolete content
you can get notifications
about new pages loading using the tabs module.
...adds a red border to the tab's document: require("sdk/tabs").on("ready", runscript); function runscript(tab) { tab.attach({ contentscript: "if (document.body) document.body.style.border = '5px solid red';" }); } (this example is only to show the idea: to implement something like this, you should instead use page-mod, and specify "*" as the match-pattern.) learning more to learn more
about working with tabs in the sdk, see the tabs api reference.
... to learn more
about running scripts in tabs, see the tutorial on using tab.attach().
JS XPCOM - Archive of obsolete content
xpcomutils -
about protocol handler this example implements a quick
about protocol handler in js using xpcomutils.jsm.
... components.utils.import("resource://gre/modules/services.jsm"); components.utils.import("resource://gre/modules/xpcomutils.jsm"); const cc = components.classes; const ci = components.interfaces; function
abouthandler() {}
abouthandler.prototype = { newchannel: function(uri) { var channel = services.io.newchannel("chrome://mystuff/content/mystuff.xul", null, null); channel.originaluri = uri; return channel; }, geturiflags: function(uri) { // do not return ci.nsi
aboutmodule.uri_safe_for_untrusted_content unless // you make sure to set a non-system principal in newchannel.
... return 0; }, classdescription: "
about mystuff page", classid: components.id("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"), contractid: "@mozilla.org/network/protocol/
about;1?what=mystuff", queryinterface: xpcomutils.generateqi([ci.nsi
aboutmodule]) } var nsgetmodule = xpcomutils.generatensgetmodule([
abouthandler]); } ...
Deploying a Plugin as an Extension - Archive of obsolete content
normally, this plugin is installed in a local directory, and a registry item is used to let firefox know
about the plugin.
...this contains information
about our extension; all extensions have one.
... here's what a basic install.rdf file looks like: <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>rhapsodyplayerengine@rhapsody.com</em:id> <em:name>rhapsody player engine</em:name> <em:version>1.0.0.487</em:version> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>1.5.0.*</em:maxversion> </description> </em:targetapplication> </description> </rdf> you can get more detailed information
about this file at install.rdf.
Multiple item extension packaging - Archive of obsolete content
<rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:nc="http://home.netscape.com/nc-rdf#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <!-- nsiupdateitem type for a multiple item package --> <em:type nc:parsetype="integer">32</em:type> ...
...<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"> <!-- nsiupdateitem type for a multiple item package --> <em:type>32</em:type> ...
... structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration ...
Adding windows and dialogs - Archive of obsolete content
you may be asking yourself what's the big deal
about defining a simple xul window with an ok and maybe a cancel button.
...there are also subtle aspects
about window size, margins and paddings that are not the same for all systems, so you should avoid making dialogs from scratch or overriding the default dialog css styles.
...all of this without having to worry
about your dialog looking odd in some operating systems.
Custom XUL Elements with XBL - Archive of obsolete content
but there is one thing you need to know
about moving or cloning your node: all internal state in the node will be lost.
...you do need to be careful
about keeping all anonid attributes consistent, and even some dom structure if the code does node traversal.
...it's very easy to break the ui of the application or other extensions if you do this the wrong way, so be very careful
about it.
Getting Started with Firefox Extensions - Archive of obsolete content
this tutorial is
about extension development, but themes and language packs are developed in a very similar way.
...you can read more
about plugins and their development in the plugins page.
...unsigned add-ons can still be installed in developer edition, nightly, and esr versions of firefox, after toggling the xpinstall.signatures.required preference in
about:config.
Mozilla Documentation Roadmap - Archive of obsolete content
the
about:mozilla newsletter is a weekly publication that includes the highlights of what is posted at planet mozilla.
...posts on
about:mozilla also make it to planet mozilla.
...be sure to look at the license the extension's code is released with before thinking
about copying large sections of it.
User Notifications and Alerts - Archive of obsolete content
« previousnext » it is often the case that extensions need to notify users
about important events, often requiring some response.
... the alerts service this is a very good option when you want to alert users
about events without requiring input from them.
...this usually means that the box will be hovering on top of the page's content, and there are a few things you must know
about this.
Session store API - Archive of obsolete content
knowing when to restore each time firefox is
about to restore a tab, an event of type sstabrestoring is sent.
... firefox 3 note in firefox 3 and later, if you need to detect when a tab is
about to be closed so that you can update data associated with the tab before it is closed, you can watch for the "sstabclosing" event, which is sent to the tab.
... the session restore process the exact sequence of events that occurs when a session is being restored is: a session state is
about to be restored.
Add-ons - Archive of obsolete content
how to convert an overlay extension to restartless first off, what kind of add-on are we talking
about here?
...firefox or thunderbird) uses to determine information
about an add-on as it is being installed.
... it contains metadata identifying the add-on, providing information
about who created it, where more information can be found
about it, which versions of what applications it is compatible with, how it should be updated, and so on.
Creating reusable content with CSS and XBL - Archive of obsolete content
more details for more information
about xbl bindings, see the xbl page in this wiki.
...it looks something like this, before and after you press the button: notes
about this demonstration: the html document links the document stylesheet as usual, but it does not link any javascript code.
...if you had difficulty understanding this page, or if you have other comments
about it, please contribute to its discussion page.
XUL user interfaces - Archive of obsolete content
more details for more information
about xul user interfaces, see the xul page in this wiki.
... it looks something like this: xul demonstration day of week calculator date: 6/27/2005 day: sunday monday tuesday wednesday thurdsay friday saturday clear today june 27, 2005 notes
about this demonstration: the xul document links the stylesheet as usual, and it also links the script.
...if you had difficulty understanding this page, or if you have other comments
about it, please contribute to its discussion page.
Creating a Firefox sidebar extension - Archive of obsolete content
see building an extension for more detailed information
about structuring, packaging, and deploying extensions.
...install.rdf <?xml version="1.0" encoding="utf-8"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>emptysidebar@yourdomain.com</em:id> <em:name>emptysidebar extension</em:name> <em:version>1.0</em:version> <em:creator>your name</em:creator> <em:description>example extension for creation and registration of a sidebar.</em:description> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</e...
...first, we need to tell firefox
about your extension.
Creating a Skin for Firefox/Getting Started - Archive of obsolete content
skin\classic\communicator doesn't do a whole lot and can typically be forgotten
about promptly.
... <description
about="urn:mozilla:install-manifest"> <em:id>{themes_uuid}</em:id> <em:version>themes_version</em:version> the first section requires that you establish a uuid for your theme and that you give your theme a version number.
... see install manifests for the reference information
about the install.rdf file.
Creating regular expressions for a microsummary generator - Archive of obsolete content
by the end of the tutorial, you should know some basics
about regular expressions and understand how to create expressions that match urls.
... for detailed documentation
about regular expressions, see core_javascript_1.5_reference:global_objects:regexp.
... conclusion if we include both of these regular expressions in a microsummary generator for ebay auction item pages, the generator will then apply to just
about all ebay auction item pages (at least all the ones we've seen so far!).
Layout System Overview - Archive of obsolete content
the decision
about when to apply css-specified formatting and when to apply legacy formatting is controlled by the document's doctype specification.
...the presentation shell also receives notifications
about changes in cursor and focus states, whereby the selection and caret updates can be made visible.
...the frame manager uses the frame constructor state class to manage the important information
about the container of a frame being created (and lots of other state-stuff too - need to describe more fully).
Repackaging Firefox - Archive of obsolete content
notice: the article is
about repackaging firefox 2.0 and is obsolete when working on 3.x repackaging.
...more
about this below.
... install.rdf meta-information
about your extension, such as the creator (your organization), a unique id, and which versions of firefox are supported.
JavaScript Client API - Archive of obsolete content
before starting before you start learning the javascript api, you should spend some time on http://docs.services.mozilla.com/ reading
about how the sync service operates.
...you can find out more
about registering as an observer here: [link].
...when your tracker detects that an item has changed, you should add it to this list by calling: this.addchangedid(guid); these guids correspond to the .id fields of your record objects; see the section on the store class for more
about defining and maintaining the mapping between guids and records.
How to Write and Land Nanojit Patches - Archive of obsolete content
in this case, you have to look through the converted revisions you're
about to push (run hg outgoing to list them) and figure out which patch(es) caused the breakage.
...at this point the set of changes you are
about to push will consist of a sequence of converted revisions from nanojit-central, followed by one of more "fixups" to tr/tm to make them work properly.
...if you are at all confused
about this, ask in #nanojit irc.
Space Manager Detailed Design - Archive of obsolete content
the primary goal of the space manager is to provide information
about those bands of space to support the css notion of floated elements.
...); } prbool intersectsdamage(nscoord aintervalbegin, nscoord aintervalend) { return mfloatdamage.intersects(aintervalbegin + my, aintervalend + my); } #ifdef debug /** * dump the state of the spacemanager out to a file */ nsresult list(file* out); void sizeof(nsisizeofhandler* ahandler, pruint32* aresult) const; #endif private: // structure that maintains information
about the region associated // with a particular frame struct frameinfo { nsiframe* const mframe; nsrect mrect; // rectangular region frameinfo* mnext; frameinfo(nsiframe* aframe, const nsrect& arect); #ifdef ns_build_refcnt_logging ~frameinfo(); #endif }; // doubly linked list of band rects struct bandrect : prcliststr { nscoord mleft, mtop; ...
... */ nsiframe* getframe() const { return mframe; } implementation notes algorithm 1: getbanddata getbanddata is used to provide information to clients
about what space if available and unavailable in a band of space.
URIs and URLs - Archive of obsolete content
simply speaking it's scheme and non-scheme, separated by a colon, like "
about".
...nssimpleuri one implementation of nsiuri is nssimpleuri which is the basis for protocols like "
about".
...also to be somewhat tolerant to syntax errors the parser has to know more
about the specific syntax of the urls for that scheme.
Install Wizards (aka: Stub Installers) - Archive of obsolete content
to learn more
about the xpinstall and installer packages please refer to the annotated browser xpi installer and the xpinstall api reference.
...to learn more
about the three platform-specific versions of the stub installer follow the links below: unix stub installer mac stub installer windows stub installer what do we mean by xpistub?
...complete details
about this library is available at libxpnet: architecture and api overview.
Learn XPI Installer Scripting by Example - Archive of obsolete content
about browser.xpi browser.xpi is the xpi archive in which the main components of the mozilla browser are archived for installation.
...the browser.xpi install script does not demonstrate the use of these objects, but see the xpinstall api reference for more information
about registering software with the win32 operating systems and other operating systems.
... see registerchrome in the xpinstall api reference for more information
about registering new packages with the chrome registry.
Reading from Files - Archive of obsolete content
to learn more
about file objects, see files and streams.
...however, a number of other character encodings are available; see reading other character encodings below for details
about reading text in other encodings.
...this method handles all the different types of end of line characters and combinations, so you do not need to worry
about platform specific conventions.
Writing to Files - Archive of obsolete content
to learn more
about file objects, see files and streams.
...see below for more details
about this.
...other character encodings are available; see writing other character encodings below for details
about writing text in other encodings.
Extensions - Archive of obsolete content
in this example, the thumbnailsshowhideitems function will be called when the popup is
about to be shown.
... for more details
about hiding and showing items on a context menu, see hiding and showing menu items based on context.
... determining what element was context clicked for general information
about how to determine which element was the target of the context menu, that is, the element that was context clicked, see determining what was context clicked firefox uses its own popupshowing event listener to adjust the items on the context menu.
PopupEvents - Archive of obsolete content
for more information
about how to use this event, see context menu events.
... popuphiding this event is fired on a menupopup, panel or tooltip once it is
about to be hidden.
... the popupshowing event just before a popup is
about to be displayed, a popupshowing event will fired on the popup.
Adding Event Handlers - Archive of obsolete content
there are
about thirty or so different events that may be handled in several different ways.
...this is used to get specific information
about the event.
... find files example so far : source view next, we'll look at some more details
about the event object.
Box Objects - Archive of obsolete content
« previousnext » this section describes the box object, which holds display and layout related information
about a xul box as well as some details
about xul layout.
...
about mozilla layout mozilla divides things into two sets of trees, the content tree and the layout tree.
...however, there are a number of subtypes,
about 25 or so, for specific xul elements.
Install Scripts - Archive of obsolete content
the registry also stores the set of files and version information
about the installed components.
...you don't need to know much
about it to create xul applications unless you are creating your own xpcom components.
... what you do need to know for an installation is that the registry stores a set of information
about your application, such as the file list and versions.
Introduction to RDF - Archive of obsolete content
for more information
about rdf, see the rdf specification.
...<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:animals="http://www.some-fictitious-zoo.com/rdf#"> <rdf:seq
about="http://www.some-fictitious-zoo.com/all-animals"> <rdf:li> <rdf:description
about="http://www.some-fictitious-zoo.com/mammals/lion"> <animals:name>lion</animals:name> <animals:species>panthera leo</animals:species> <animals:class>mammal</animals:class> </rdf:description> </rdf:li> <rdf:li> <rdf:description
about="http://www.some-fictitio...
...us-zoo.com/arachnids/tarantula"> <animals:name>tarantula</animals:name> <animals:species>avicularia avicularia</animals:species> <animals:class>arachnid</animals:class> </rdf:description> </rdf:li> <rdf:li> <rdf:description
about="http://www.some-fictitious-zoo.com/mammals/hippopotamus"> <animals:name>hippopotamus</animals:name> <animals:species>hippopotamus amphibius</animals:species> <animals:class>mammal</animals:class> </rdf:description> </rdf:li> </rdf:seq> </rdf:rdf> here, three records have been described, one for each animal.
Templates - Archive of obsolete content
if you are using your own rdf file as a datasource, the value will usually correspond to the value of an
about attribute on an rdf bag, seq or alt element.
...we'll see more
about this when we get to creating templates for trees.
...more
about resource syntax (xulplanet).
Trees - Archive of obsolete content
these functions will be called by the tree as necessary to retrieve data and state
about the tree.
...by using this element, you can specify additional information
about how the data in the columns are sorted and if the user can resize the columns.
...this may be a bit confusing, but essentially, one of the built-in tree views uses a set of tags which can be used to specify information
about the data in the tree.
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?
... creating mozsearch plugins contains more help information
about creating mozsearch plugin on firefox 2.
... someelement { font-family: "my font", "trebuchet ms"; } for more information
about platform specific questions, please visit mozilla.dev.platform ...
XML - Archive of obsolete content
you must be very careful
about your syntax, and in particular
about these four cardinal rules of xul: all events and attributes must be written in lowercase.
... xul is made out of xml you don't need to know all
about xml in order to use xul, but you may want to read through this article to get a sense of xul's pedigree as a specialized markup language.
...it does not describe the way in which this data is to be presented, like its semantically-challenged cousin html does, and it doesn't have much to say
about the data itself.
editor - Archive of obsolete content
to edit a new document, set the src attribute to
about:blank.
... see the rich text editing and midas pages for more information
about gecko's built-in rich text editor.
..., makeeditable examples this example shows how to made the editor editable by setting the designmode property of the loaded html document: <script language="javascript"> function initeditor(){ // this function is called to set up the editor var editor = document.getelementbyid("myeditor"); editor.contentdocument.designmode = 'on'; } </script> <editor id="myeditor" editortype="html" src="
about:blank" flex="1" type="content-primary"/> once editable, the document can have special formatting and other html pieces added to it using the document.execcommand method: var editor = document.getelementbyid("myeditor"); // toggle bold for the current selection editor.contentdocument.execcommand("bold", false, null); see the midas overview for more command strings.
prefwindow - Archive of obsolete content
help: a help button for displaying help
about the dialog.
... help: a help button for displaying help
about the dialog.
...if you put other elements before the first <prefpane>, you possibly see strange behaviors
about switching panes.
Application Update - Archive of obsolete content
pref("app.update.auto", true); // defines how the application update service notifies the user
about updates: // // aum set to: minor releases: major releases: // 0 download no prompt download no prompt // 1 download no prompt download no prompt if no incompatibilities // 2 download no prompt prompt // // see chart in nsupdateservice.js.in for more details // pref("app.update.mode", 1); // if set to true, the update service will p...
...pref("app.update.url.manual", "http://yourserver.net/yourpage"); // a default value for the "more information
about this update" link // supplied in the "an update is available" page of the update wizard.
... update.xml contains only information
about the update.
Getting started with XULRunner - Archive of obsolete content
main.js: function showmore() { document.getelementbyid("more-text").hidden = false; } for more information
about xul see: xul.
... for information
about mixing html elements into your xul read adding html elements.
... for now, click the "next" link to learn
about windows and menus in xulrunner!
Mozilla.dev.apps.firefox-2006-09-29 - Archive of obsolete content
uncements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion
about why sometimes dmg files are not mounted correctly after they are downloaded.
... binding tab bar to new theme discussion
about how to bind a new theme to a tab bar without losing its original binding.
... firefox 2 on windows vista discussion
about the "state of affairs" of firefox 2 on windows vista rc1 - update for rc1 listed in update history as 'install pending' right-click "copy email address" - bug 353102 a proposed bug fix to the 'copy email address' bug how to use the rss feeds discovery & parsing tool in another open source project?
2006-09-29 - Archive of obsolete content
uncements bon echo 20060921 nightly to recieve "major update" offer mike beltnzer announced that 'users running the bon echo 20060921 nightly build will be offered the chance to upgrade to a "new version"' firefox start up performance boris zbarsky recently performed some profiling of firefox's start up - these are some of the details discussions problem handling dmg files on mac discussion
about why sometimes dmg files are not mounted correctly after they are downloaded.
... binding tab bar to new theme discussion
about how to bind a new theme to a tab bar without losing its original binding.
... firefox 2 on windows vista discussion
about the "state of affairs" of firefox 2 on windows vista rc1 - update for rc1 listed in update history as 'install pending' right-click "copy email address" - bug 353102 a proposed bug fix to the 'copy email address' bug how to use the rss feeds discovery & parsing tool in another open source project?
2006-12-01 - Archive of obsolete content
discussion november 29th gecko 1.9/gran paradiso status meeting other than annoucing the meeting, this thread discusses where else can info
about what happens at the meetings be found (since the agenda often seems bare).
... mitchell baker asks where should topics
about organization and governance, moz.dev.planning or moz.governance?
... mozilla.org staff, project drivers, and technical oversight mike connor starts a discussion
about the need for a "buck stops here" group and the replacement of drivers@mozilla.org.
2006-11-03 - Archive of obsolete content
discussions extended validation certificates major discussion this week started by gervase markham
about security certificates, more specifically extended validation certificates.
...all questions
about the cabf are welcome.
... more information
about ca can be found at http://www.cabforum.org/ meetings none during this week.
2006-10-13 - Archive of obsolete content
discussions how to change between lightning and mail discussion
about how to view folder pane and lightning pane again after you closed them.
...discussion
about the ability to list and search all the events in a calendar.
...discussion
about the problem remotely connecting to a particular calendar meetings none this week.
2006-11-03 - Archive of obsolete content
aborting a new event/edit event dialog discussions
about behaves of new event/edit event.
... wcap calendar subscription discussions
about calendar subscriptions.
... last check-ins on sun-calendar-event-dialog.* files discussions
about some localization issues with sun-calendar-event-dialog.
2006-11-10 - Archive of obsolete content
discussions hunting down the "sunbird fails to start" bug -- please help discussion
about a crash when starting sunbird 0.2.
... calendar:improving the calendar views discussion
about improving the layout of calendar.
... next steps for 24 hours view discussion
about the improving of some features of calendar ex.
2006-11-17 - Archive of obsolete content
discussions itip and imip new designs for sending invitations available for comment discussion
about the new interface designs for itip.
... view performance discussion
about tests on view performance.
... calendar xpcom component discussion
about a debug error of additem function from calicalendar.
NPWindow - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary contains information
about the target into which the plug-in instance can draw.
... ws_info unix: contains information
about the plug-in's unix window environment; points to an npsetwindowcallbackstruct.
...(the drawable is provided in a graphicsexpose event, when the paint is requested.) description the npwindow structure represents the native window or a drawable, and contains information
about coordinate position, size, whether the plug-in is windowed or windowless, and some platform-specific information.
NPAPI plugin reference - Archive of obsolete content
npp_destroystream tells the plug-in that a stream is
about to be closed or destroyed.
... npsetwindowcallbackstruct contains information
about the plug-in's unix window environment.
... npwindow contains information
about the target into which the plug-in instance can draw.
The First Install Problem - Archive of obsolete content
the solution suggests that plugin vendors ought to leave dlls on a windows desktop whether or not a netscape gecko browser is detected, and then write keys in the windows registry giving future netscape gecko browsers the path where the plugin resides and meta-information
about how to load the plugin.
...this document proposes a meta-information model in the win32 registry similar to the one used by microsoft's hkey_classes_root\clsid\ where a new activex control (ocx) on the system presents its uuid as a registry key (identifying the activex control) as well as information
about where to find the ocx (e.g.
...the same mimetype description that apears when you type "
about:plugins" as a url in mozilla's location bar.
Plugins - Archive of obsolete content
for more information
about plugin roadmap, see non-archived plugin information.
...more information
about these tools can be found on the external resources page.
... gecko plugin api reference (npapi) this reference describes the application programming interfaces for npapi plugins and provides information
about how to use these interfaces.
RSS - Archive of obsolete content
documentation why rss slash is popular - counting your comments charles iliya krempeaux talks
about the rss slash module, why it is popular among some, and how it is used to give a count for your comments.
... why well-formed web rss module is popular - syndicating your comments charles iliya krempeaux talks
about the rss well-formed web module, why it is popular among some, and how it is used to link to your comments.
... atomic rss tim bray talks
about using atom 1.0 as a micro format and extension module for rss 2.0; keeping rss 2.0 as your sydication format but bringing in and using selected atom 1.0 elements.
Scratchpad - Archive of obsolete content
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.
... to select these, visit
about:config, select the setting devtools.editor.keymap, and assign "vim" or "emacs", or "sublime" to that setting.
... 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.
Browser Detection and Cross Browser Support - Archive of obsolete content
introduction in an ideal world, we could author html, xml, css and javascript and only worry
about the w3c and ecma standards.
... if (document.body && typeof(document.body.offsetheight) == 'number') { height = document.body.offsetheight; } else if (typeof(window.innerheight) == 'number') { height = window.innerheight; } else { height = 0; } note how the previous example does not make assumptions
about which browser is being used.
...if you are concerned
about a specific security issue in gecko and know for example that all gecko browsers contain a fix for the issue after a certain date, you can check that the navigator.productsub value is after that date.
XForms - Archive of obsolete content
this extension, while supporting a significant subset of the xforms 1.0 and 1.1 candidate recommendations, is not actively maintained any more since
about 2010.
... for more details
about the future of the mozilla xforms extension see this blog post.
... xforms user preferences a description of the
about:config variables that xforms uses.
RDF in Fifty Words or Less - Archive of obsolete content
the rdf graph provides a perfect data model upon which to build a "universal" bookmarking service as described above: the graph can contain pointers to arbitrary resources and can group them in just
about any way that you can imagine.
...the cgi script actually generatesserialized rdf, which is basically just a way of formatting a graph into xml: <rdf:rdf xmlns:rdf="http://www.w3.org/tr/wd-rdf-syntax#" xmlns:sm="http://www.mozilla.org/smart-mail/schema#"> <rdf:description
about="http://www.mozilla.org/smart-mail/get-mail.cgi?user=waterson&folder=inbox"> <sm:message id="4025293"> <sm:recipient> chris waterson "waterson@netscape.com" </sm:recipient> <sm:sender> aunt helga "helga@netcenter.net" </sm:sender> <sm:received-by>x-wing.mcom.com</sm:received-by> <sm:subject>great recipe for yam soup!</sm:sub...
...dy> http://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.
Using the Right Markup to Invoke Plugins - Archive of obsolete content
this article is
about how to invoke a plugin with the correct use of html.
... it discusses the object element and the embed element, with details
about using the most apt html to invoke java in a web page as well.
...the references section gathers resources
about the use of the applet element.
XUL Parser in Python - Archive of obsolete content
v.00001 to celebrate activestate's recent announcement
about support for perl and python in mozilla, i have put together this little python script that parses your local xul and builds a list of all the xul elements and their attributes in an html page.
...in the explanation section below, i try to say a little something
about how this script works.
...but mozilla's upcoming support for languages like perl and python will really open up the mozilla platform to tools and approaches of this kind--and make now a good time to start thinking
about how these various technologies will be put together.
Introduction to game development for the Web - Game development
and we're not talking
about simple card games or multi-player social games that have in the olden days been done using flash®.
... we're talking
about kick-ass 3d action shooters, rpgs, and more.
...instead of relying on someone else to make all the decisions
about what analytics you need, you can collect your own -- or choose the third party that you like the best -- to gather information
about your sales and your game's reach.
Explaining basic 3D theory - Game development
coordinate system 3d essentially is all
about representations of shapes in a 3d space, with a coordinate system used to calculate their position.
... vertex processing vertex processing is
about combining the information
about individual vertices into primitives and setting their coordinates in the 3d space for the viewer to see.
...read the camera paragraph in the three.js article to learn
about those.
3D games on the Web - Game development
support on modern browsers is very good, even on mobile, so you don't have to worry
about that too much.
...there are some advanced concepts which you should dive into and learn more
about — like shaders, collision detection, or the latest hot topic: virtual reality on the web.
...you should definitely check out glsl shaders article to learn more
about them.
Desktop mouse and keyboard controls - Game development
the good thing
about using phaser is that it offers helper variables and functions for easier and faster development, but it's totally up to you which approach you chose.
... pure javascript approach let's think
about implementing pure javascript keyboard/mouse controls in the game first to see how it would work.
... how to play we've implemented the controls, and now we should inform the player
about their options to control the game — they wouldn't know
about them otherwise.
Tiles and tilemaps overview - Game development
think
about any game that uses regularly repeating squares of background, and you'll probably find it uses tilemaps.
...a high-level algorithm could be: for (var column = 0; column < map.columns; column++) { for (var row = 0; row < map.rows; row++) { var tile = map.gettile(column, row); var x = column * map.tilesize; var y = row * map.tilesize; drawtile(tile, x, y); } } you can read more
about this and see an example implementation in square tilemaps implementation: static maps.
... you can read more
about implementing scrolling tilemaps and see some example implementations in square tilemaps implementation: scrolling maps.
2D breakout game using pure JavaScript - Game development
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.
... note: if you are interested in learning
about 2d web game development using a game library, consult this series' counterpart, 2d breakout game using phaser.
...you can also make use of the gamedev canvas content kit based on this tutorial if you want to give a talk
about game development in general.
Game development
we've also included a reference section so you can easily find information
about all the most common apis used in game development.
... port native games to the web if you are a native developer (for example writing games in c++), and you are interested in how you can port your games over to the web, you should learn more
about our emscripten tool — this is an llvm to javascript compiler, which takes llvm bytecode (e.g.
... to get started, see:
about emscripten for an introduction including high-level details.
Gecko FAQ - Gecko Redirect 1
the original mozilla browser, first released as navigator 1.0, was developed rapidly by a small team that was passionate
about creating the next killer app, and they succeeded.
... xml 1.0: full support, except for processing to manipulate default attributes rdf: full support, except for
abouteach,
abouteachprefix, and parsetype javascript 1.5, including ecma-262 edition 3 (ecmascript) compliance, except for date.todatestring and date.totimestring, which are not implemented transfer protocols: http 1.1 (including gzip compression), ftp ssl unicode oji (open java interface) image formats png gif jpeg, pjpeg does "full support" mean that gecko has zero bugs today...
...: see dom0, dom1, dom2 and event handling components xml rdf core javascript language interpreter (javascript engine) http 1.1 compliance bugs should generally be found on the networking, networking - general, and networking: cache components oji imagelib image library (see also jpeg image handling and png image handling) ssl-related bugs are filed on the crypto component for information
about the known bugs of a specific commercial product based on gecko, see that product's release notes.
HTTP header - MDN Web Docs Glossary: Definitions of Web-related terms
request header: headers containing more information
about the resource to be fetched or
about the client itself.
... response header: headers with additional information
about the response, like its location or
about the server itself (name, version, …).
... entity header: headers containing more information
about the body of the entity, like its content length or its mime-type.
Mobile accessibility - Learn web development
responsive design — make sure layouts work on mobile, conserve image download sizes, and think
about the provision of images for high-resolution screens.
... thinking
about high resolutions.
... summary in this article, we have provided you with some details
about common mobile accessibility-specific issues and how to overcome them.
Accessible multimedia - Learn web development
as well as giving deaf users access to the information contained in the audio, think
about a user with a low bandwidth connection, who would find downloading the audio inconvenient.
... think also
about a user in a noisy environment like a pub or bar, who is trying to access the information but can't hear it over the noise.
...remember that accessibility is
about doing as much as you can, rather than striving for 100% accessibility all the time, which is often impossible.
Supporting older browsers - Learn web development
in my experience, developers are often very worried
about the experience of 1% of users in an old version of internet explorer, while not considering at all the far greater number who have accessibility needs.
... another popular way to find out
about how well a feature is supported is the can i use website.
... this site lists the majority of web platform features with information
about their browser support status.
CSS layout - Learn web development
we have covered the necessary prerequisites so we can now dive deep into css layout, looking at different display settings, modern layout tools like flexbox, css grid, and positioning, and some of the legacy techniques you might still want to know
about.
...media queries are a key part of responsive web design, as they allow you to create different layouts depending on the size of the viewport, but they can also be used to detect other things
about the environment your site is running on, for example whether the user is using a touchscreen rather than a mouse.
... in this lesson you will first learn
about the syntax used in media queries, and then move on to use them in a worked example showing how a simple design might be made responsive.
CSS first steps - Learn web development
this article explains what css is, with a simple syntax example, and also covers some key terms
about the language.
... getting started with css in this article we will take a simple html document and apply css to it, learning some practical things
about the language along the way.
... how css is structured now that you have an idea
about what css is and the basics of using it, it is time to look a little deeper into the structure of the language itself.
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.
...(see eric meyer's note
about the working group's stance).
...more detailed information
about how selector specificity is calculated can be found in the css 2.1 specification chapter 6.4.3.
Learn to style HTML using CSS - Learn web development
in that module, you will learn
about: css, starting with the introduction to css module more advanced html modules javascript, and how to use it to add dynamic functionality to web pages once you understand the fundamentals of html, we recommend that you learn html and css at the same time, moving back and forth between the two topics.
...we have covered the necessary prerequisites so we can now dive deep into css layout, looking at different display settings, modern layout tools like flexbox, css grid, and positioning, and some of the legacy techniques you might still want to know
about.
...one of the best things
about learning css is that once you know the fundamentals, usually you have a pretty good feel for what can and can't be done, even if you don't actually know how to do it yet!
What do common web layouts contain? - Learn web development
prerequisites: make sure you've already thought
about what you want to accomplish with your web project.
... summary there's a reason we talk
about web design.
...remember that word "float"--it will ring a bell when you start learning
about css.
What are browser developer tools? - Learn web development
find out more find more out
about the inspector in different browsers: firefox page inspector ie dom explorer chrome dom inspector (opera's inspector works the same as this) safari dom inspector and style explorer the javascript debugger the javascript debugger allows you to watch the value of variables and set breakpoints, places in your code that you want to pause execution and identify the problems that prevent your c...
... find out more find more out
about the javascript debugger in different browsers: firefox javascript debugger microsoft edge debugger chrome debugger safari debugger the javascript console the javascript console is an incredibly useful tool for debugging javascript that isn't working as expected.
... find out more find more out
about the javascript console in different browsers: firefox web console ie javascript console chrome javascript console (opera's inspector works the same as this) safari console ...
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.
... more details please refer to: wikipedia article
about accessibility wai (w3c's web accessibility initiative) next steps accessibility can impact both a website's design and technical structure.
... from a design point of view, we suggest learning
about designing for all types of users.
HTML forms in legacy browsers - Learn web development
learn
about the issues to understand common patterns, it helps to read browser documentation.
...rather, it's
about simplicity, intuitivess, and ease of user interaction.
...as a last reminder, just always think
about the end users.
Sending forms through JavaScript - Learn web development
let's first talk
about why this requires a different approach.
...to learn more
about that, see the example in accessing the element list's contents in htmlformelement.elements.
...to learn more
about the filereader api, see using files from web applications.
CSS basics - Learn web development
css comments are a way for you to write helpful notes
about your code or logic.
...your work-in-progress should look similar to this: css: all
about boxes something you'll notice
about writing css: a lot of it is
about boxes.
...you can find more information
about different display values on mdn's display reference page.
Dealing with files - Learn web development
don't worry
about what it all means for now — we'll look at the structures in more detail later in the series.
... for now, this is
about all you need to know.
... that is
about it for now.
HTML basics - Learn web development
elements can also have attributes that look like the following: attributes contain extra information
about the element that you don't want to appear in the actual content.
... find out more
about accessibility in our accessibility learning module.
... wrap the text in an <a> element, as shown below: <a>mozilla manifesto</a> give the <a> element an href attribute, as shown below: <a href="">mozilla manifesto</a> fill in the value of this attribute with the web address that you want the link to link to: <a href="https://www.mozilla.org/
about/manifesto/">mozilla manifesto</a> you might get unexpected results if you omit the https:// or http:// part, called the protocol, at the beginning of the web address.
Use JavaScript within a webpage - Learn web development
about javascript javascript is a programming language mostly used client-side to make webpages interactive.
...if you already know something
about javascript or if you have a background with other programming languages, we suggest you jump directly into our javascript guide.
...to make javascript work in your favor, it's worth knowing
about certain best practices for adding javascript: make all content available as (structured) text.
Debugging HTML - Learn web development
however, error messages can quickly get more complicated and less easy to interpret as programs get bigger, and even simple cases can look a little intimidating to someone who doesn't know anything
about rust.
...in a small example like the one seen above, it is easy to search through the lines and find the errors, but what
about a huge, complex html document?
... if you can't work out what every error message means, don't worry
about it — a good idea is to try fixing a few errors at a time.
Introduction to HTML - Learn web development
it contains information such as the page <title>, links to css (if you want to style your html content with css), links to custom favicons, and metadata (data
about the html, such as who wrote it, and important keywords that describe the document).
...the elements here are less well-known, but still useful to know
about.
... in this article, you'll learn
about marking up quotations, description lists, computer code and other related text, subscript and superscript, contact information, and more.
Making decisions in your code — conditionals - Learn web development
cheese available for making cheese on toast.'); } else { console.log('no cheese on toast for you today.'); } and, returning to our previous example
about the child doing a chore for their parent, you could write it like this: let shoppingdone = false; if (shoppingdone) { // don't need to explicitly specify '=== true' let childsallowance = 10; } else { let childsallowance = 5; } nesting if ...
... think
about which number of days is the most common, and use that as a default value.
... conclusion and that's all you really need to know
about conditional structures in javascript right now!
Client-side storage - Learn web development
elsewhere in the mdn learning area we talked
about the difference between static sites and dynamic sites.
... you'll learn more
about these apis below.
...you can store just
about anything you want, including complex objects such as video or image blobs.
JavaScript First Steps - Learn web development
a first splash into javascript now you've learned something
about the theory of javascript, and what you can do with it, we are going to give you a crash course in the basic features of javascript via a completely practical tutorial.
...in this article we'll look at all the common things that you really ought to know
about strings when learning javascript, such as creating strings, escaping quotes in string, and joining them together.
... useful string methods now we've looked at the very basics of strings, let's move up a gear and start thinking
about what useful operations we can do on strings with built-in methods, such as finding the length of a text string, joining and splitting strings, substituting one character in a string for another, and more.
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?".
...finally, we provide a high-level introductory article
about web server security.
...we do hope that at this point you have a good understanding of what sorts of functionality you can deliver using server-side programming, and that you have made a decision
about what server-side web framework you will use to create your first website.
Getting started with Ember - Learn web development
there are a couple of github issues open
about this on the todomvc family of projects: add keyboard access to demos re-enable outline on focusable elements ember has a strong commitment to being accessible by default and there is an entire section of the ember guides on accessibility on what it means for website / app design.
... installing the shared assets for todomvc projects installing shared assets, as we're
about to do, isn't normally a required step for new projects, but it allows us to use existing shared css so we don't need to try to guess at what css is needed to create the todomvc styles.
...ember-cli-build.js is responsible for configuring details
about how your project is built — including bundling all your files together, asset minification, and creating sourcemaps — with reasonable defaults, so you don't typically need to worry
about this file.
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.
... objective: to learn
about implementing routing in ember.
...study the code to learn more
about ember, and also check out the next article, which provides links to more resources and some troubleshooting advice.
Working with Svelte stores - Learn web development
for example, information
about the logged in user, or whether the dark theme is selected or not.
... to learn more
about detecting and fixing accessibility issues check out our handling common accessibility problems article.
...having a unique place to handle state modifications makes it easier to reason
about the state flow and spot issues.
Getting started with Vue - Learn web development
note: if you don't have the above installed, find out more
about installing npm and node.js here.
...these small blocks can help you reason
about and test your code.
...we've learnt
about some of the ideas behind vue, created some scaffolding for our example app to live inside, inspected it, and made a few preliminary changes.
Focus management with Vue refs - Learn web development
in order to set focus, we need to understand a little bit more
about how vue works internally.
...for custom vue components, you can also use refs to directly access the internal structure of a child component, however this should be done with caution as it can make code harder to reason
about and understand.
...since the <h2> is always rendered in the app, you do not need to worry
about using $nexttick of lifecycle methods to handle focusing it.
Vue resources - Learn web development
further resources here’s where you should go to learn more
about vue: vue docs — the main vue site.
...you are required to be explicit
about "reactive" properties when using this api.
...to read more
about the changes involved with vue 3, refer to this article by vue school which goes over most of the major changes in vue 3.
Introduction to automated testing - Learn web development
there are two main ways in which we can automate the tests we've been talking
about in this module: use a task runner such as grunt or gulp, or npm scripts to run tests and clean up code during your build process.
... you can run your gulp task with the following commands — try this now: gulp adding some real tasks to gulp to add some real tasks to gulp, we need to think
about what we want to do.
... device info — displays information
about the testing device.
Tools and testing - Learn web development
this module gives you some fundamental background knowledge
about how client-side frameworks work and how they fit into your toolset, before moving on to tutorial series covering some of today's most popular ones.
...this module aims to teach you what you need to know
about both of them.
...what users, browsers and devices do you most need to worry
about?), how to go
about testing, the main issues that you'll face with different types of code and how to fix/mitigate those, what tools are most useful in helping you test and fix problems, and how to use automation to speed up testing.
Accessibility API cross-reference
however, only
about one third of the states and roles in sun's accessibility api's are the same as in msaa.
... 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 sure it's up-to-date accessible roles description & notes msaa role (role_system_*) java accessibility role gnome accessibility role (atk_role_*) mac os x accessibility role aria (role=*) ...
... composite (abstract role) a large perceivable region that contains information
about the parent document such as copyright, authors' names etc.
Accessibility Features in Firefox
you can furthermore control javascript capabilities to remove scrollbars, toolbars or system buttons like minimize, close and maximize by editing the
about:config related properties or by editing accordingly the user.js file as explained in this "disable other javascript window features" document.
...also, usercontent.css allows users knowledgeable
about cascading style sheets to customize the appearance of all pages that are displayed.
... that's the great thing
about the open firefox community model and source code license -- anyone can contribute, and everyone benefits.
Accessibility information for UI designers and developers
this is specifically important in these cases: the user input is
about legal commitments or financial transactions it updates or removes the user's data in a system when recording tests responses in those cases, ensure users can change submissions, automatically check for errors.
...that way, users of screen readers and screen magnifiers can reliably make assumptions
about them and skip over them.
...the most important thing
about consistent headings is that no levels are skipped.
Multiprocess on Windows
note: if your new interface does not contain either of these annotations, then you do not need to worry
about this step.
... a word
about smart pointers as long as you're manipulating an object in its home apartment, it is okay to just use refptr.
... simple example now you know
about mainthreadhandoff::wrapinterface and
about the smart pointers, you're ready to wrap an interface: accessible* myaccessible = ....; mozilla::mscom::stauniqueptr<iaccessible> acctowrap; myaccessible->getnativeinterface(mozilla::mscom::getter_addrefs(acctowrap)); mozilla::mscom::proxyuniqueptr<iaccessible> wrapped; hresult hr = mozilla::mscom::mainthreadhandoff::wrapinterface(mozilla::move(acctow...
Software accessibility: Where are we today?
one great place to go and learn
about this industry is the csun conference in los angeles, which takes place every year in mid-late march.
...without the application somehow notifying a blind person
about the meaning of the light bulb image, the blind person is unable to understand what the application is attempting to convey.
... similarly, voice recognition software often needs information
about the context of a user's interaction, in order to make sense of what the user is speaking.
Mozilla’s UAAG evaluation report
we use 16 bit strings, not sure
about utf-16 6.8 dom css access.
... does not provide information
about whether link is internal or external, except through url itself.
... provides information
about whether link will open in same window does not support fee links 10.7 highlight current viewport.
Benchmarking
in
about:addons > plugins, set shockwave flash to "never activate".
...they are currently reduce to a multiple of 2ms; which is controlled by the privacy.reducetimerprecision
about:config flag.
... the exact value of the precision is controlled by the privacy.resistfingerprinting.reducetimerprecision.microseconds
about:config flag.
What to do and what not to do in Bugzilla
when in doubt
about resolving a bug, leave it alone!
...in general you should make sure that the bug has been resolved for a few months and no complaints
about the resolution have come up.
... bug reports
about crashes, hangs, data-loss, or severe security exploits (e.g.
Creating a spell check dictionary add-on
this file contains information
about your add-on such as name and version number (see below).
... <?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>locale-code@dictionaries.addons.mozilla.org</em:id> <em:version>version number</em:version> <em:type>64</em:type> <em:unpack>true</em:unpack> <em:name>name</em:name> <!-- other install.rdf metadata such as em:localized, em:description, em:creator, em:developer, em:translator, em:contributor or em:homepageurl -...
...2.0</em:maxversion> </description> </em:targetapplication> <!-- seamonkey --> <em:targetapplication> <description> <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id> <em:minversion>2.15a1</em:minversion> <em:maxversion>2.49</em:maxversion> </description> </em:targetapplication> </description> </rdf> there are some rules
about how you should adapt the install.rdf file: if you are creating a new dictionary add-on, we recommend that the em:id consists of your locale code followed by @dictionaries.addons.mozilla.org, but if there is more than one dictionary for your language (for example the german "old spelling" versus "new spelling" dictionaries), you may need to choose another id, that follows the rules of em:id.
Contributing to the Mozilla code base
fix your pet peeve if there's something you'd like to fix
about firefox, thunderbird, or your other favorite mozilla application, this can be a great place to start.
...they're all
about small changes, sometimes as little as a few lines, but they're a great way to learn
about setting up your development environment, navigating bugzilla, and making contributions to the mozilla codebase.
... now that you've got your first bug fixed you should request level 1 access to the repository to push to the try server and get automated feedback
about your changes on multiple platforms.
mach
without this decorator, mach will not know
about any commands defined within, even if they have decorators.
... @commandargument this is a method decorator that tells mach
about an argument to a mach command.
...this object holds state from the mach driver, including the current directory, a handle on the logging manager, the settings object, and information
about available mach commands.
Limitations of frame scripts
nsi
aboutmodule by default, custom
about: pages registered using nsi
aboutmodule are loaded in the chrome process.
... you can change this default in the code you use to register the
about: uri.
... see
about: and chrome: uris.
How to Report a Hung Firefox
type "
about:crashes" in the url bar and click on the top listing.
...type "
about:crashes" in the url bar and click on the top listing.
...type "
about:crashes" in the url bar and click on the top listing.
Addon
optional properties attribute type description
abouturl read only string the url of the
about dialog to display for this add-on.
... this is passed to window.opendialog() when presenting the
about dialog.
... if you don't provide an
abouturl, a generic
about dialog is displayed.
Bootstrapping a new locale
we'll first navigate to the directory called "browser" by running the following commands one after the other from your command line: $ cd [ab-cd]/browser/chrome/browser to see what is contained in "browser" type $ ls and, you should see the following output from your terminal:
aboutcerterror.dtd pageinfo.dtd
aboutdialog.dtd pageinfo.properties
aboutprivatebrowsing.dtd pagereportfirsttime.dtd
aboutrobots.dtd places
aboutsessionrestore.dtd preferences
aboutsupport.dtd quitdialog.properties basemenuoverlay.dtd safemode.dtd browser.dtd safebrowsing browser.properties ...
... (read more
about tools at l10n:tools.) after you have downloaded your editor of choice, type the following command in the same path from above (~/ab-cd/browser/chrome/browser) $ edit ab-cd/browser/chrome/browser/
aboutcerterror.dtd read the top of the file to get any context on how to translate contained in the notes written by the developers or l10n-drivers.
...you can either use the locale switcher extension, or set it in
about:config.
Index
for more detailed documentation
about localization in general, see our localization page.
... 21 localizing extension descriptions add-ons, extensions, guide, internationalization, localization this article provides details on how to go
about localizing the descriptions of mozilla add-ons, as well as for other metadata
about your add-on.
...infrastructure, localization, php, svn, unix first, make your project's file type decision (see localization formats for details): 40 what every mozilla translator should know internationalization, localization l10n stands for localization = l + another 10 letters + n 41 writing localizable code internationalization, localization this page tells you
about best practices and guidelines when dealing with ui code with respect to localization.
Localization content best practices
if you have any doubts
about the quality of strings, ask a copywriter to do a copy review of this text.
...in general, localizers should make the decision
about capitalization.
...if you have doubts
about the localizability of some text or structure (not
about the text itself, that would need copywriters), it's definitely good to ask feedback.
Localizing with Koala
koala features a very handy tool called compare-locales, which compares the files from en-us with your files in x-testing and gives you statistics
about new, changed, missing and obsolete files and strings.
...it is a good practice to be descriptive
about the changes you made in this revision.
... a good way of doing that is to ask yourself a question: "if i was a new person to this project and new nothing
about the work already done in this repository, would this message help me understand what changes were made in this revision?".
Localizing with Mercurial
if you see a message
about the version of mercurial (e.g.
...if you see a message
about the version of mercurial (e.g.
...if you see a message
about the version of mercurial (e.g.
Localization quick start guide
along the way, you'll learn
about the variety of projects you can contribute to and the tools used to localize them.
...visit the l10n process page to learn
about the whole process.
...to learn more
about any of these, click on any of the links above.
Mozilla Web Developer FAQ
different people have different ideas
about what x should be.
... try asking in the newsgroup relevant to your question in the comp.infosystems.www.authoring.* hierarchy or, if your question is
about javascript/ecmascript or the dom, in comp.lang.javascript (after reading the group faqs first, of course).
... please do not ask web authoring questions in the newsgroups intended for discussion
about the development of mozilla.
Mozilla projects on GitHub
to learn more
about setting up a github account, visit the github website.
... codefirefox the codefirefox site, with videos and tutorials
about how to contribute to the firefox project and mozilla code in general.
... mozilla-metrics tools used to collect metrics
about mozilla code.
Profiling with Xperf
to see your xperf version, either run 'xperf' on a command line with no arguments, or start 'xperfview' and look at help ->
about performance analyzer.
... (note that it's not the first version number in the
about window; that's the windows version.) if you have an older version, you will experience bugs, especially around symbol loading for local builds.
...the stock windows crt allocator is horrible
about fragmentation, and causes memory usage to rise drastically even if only a small fraction of that memory is in use.
A guide to searching crash reports
please read the documentation
about individual crash reports before reading this page.
... the first link in each "signature" column cell links to a signature report, which contains additional details
about crash reports with that signature.
...one way to learn
about them is to read lots of individual crash reports; note that all fields shown in the details tab of an individual crash report have a tool-tip that indicates its key for search.
NSPR's Position On Abrupt Thread Termination
in the general course of events when programming with threads, it is very advantageous for a thread to have resources that it and only it knows
about.
...that is not what this memo is
about.
... this is
about providing an api that coaxes people to do the right thing in as many ways as possible.
NSS FAQ
more information
about nspr may be found at netscape portable runtime.
... how can i learn more
about tls?
... for more information
about u.s.
NSS 3.21 release notes
2016-01-07, this page has been updated to include additional information
about the release.
... in ssl.h ssl_getpreliminarychannelinfo - obtains information
about a tls channel prior to the handshake being completed, for use with the callbacks that are invoked during the handshake ssl_signatureprefset - configures the enabled signature and hash algorithms for tls ssl_signatureprefget - retrieves the currently configured signature and hash algorithms ssl_signaturemaxcount - obtains the maximum number signature algorithms that can be configured with...
...y_mat_params{_ptr} - parameters {or pointer} for ckm_tls12_key_and_mac_derive ck_tls_kdf_params{_ptr} - parameters {or pointer} for ckm_tls_kdf ck_tls_mac_params{_ptr} - parameters {or pointer} for ckm_tls_mac in sslt.h sslhashtype - identifies a hash function sslsignatureandhashalg - identifies a signature and hash function sslpreliminarychannelinfo - provides information
about the session state prior to handshake completion new macros in nss.h nss_rsa_min_key_size - used with nss_optionset and nss_optionget to set or get the minimum rsa key size nss_dh_min_key_size - used with nss_optionset and nss_optionget to set or get the minimum dh key size nss_dsa_min_key_size - used with nss_optionset and nss_optionget to set or get the minimum dsa key siz...
NSS API Guidelines
the areas which need the most work (both here and throughout the code) is: the relationship of the certificate library with just
about every other component (most noticeably pkcs #12, pkcs #7, and pkcs #11) splitting low key and high key components more clearly the crypto wrappers (pkcs #11 wrappers) and high key pkcs #12 and pkcs #5 libraries nss compiles into the libraries described below.
...these rules are derived from existing coding practices inside the security library, since consistency is more important than debates
about what might look nice.
... there are a number of strategies, and entire books
about how to safely access data on lists.
NSS PKCS11 Functions
more information
about module spec is available at pkcs11_module_specs.
...the caller should ask for one new database per call if the caller wants to get meaningful information
about the new database.
...for example, mozilla uses the parameter to pass information
about which window is associated with the modal dialog box requesting the password from the user.
FC_GetInfo
name fc_getinfo - return general information
about the pkcs #11 library.
... syntax ck_rv fc_getinfo(ck_info_ptr pinfo); parameters fc_getinfo has one parameter: pinfo points to a ck_info structure description fc_getinfo returns general information
about the pkcs #11 library.
... /* invoke fc_getinfo as pfunctionlist->c_getinfo */ crv = pfunctionlist->c_getinfo(&info); assert(crv == ckr_ok); printf("general information
about the pkcs #11 library:\n"); printf(" pkcs #11 version: %d.%d\n", (int)info.cryptokiversion.major, (int)info.cryptokiversion.minor); printf(" manufacturer id: %.32s\n", info.manufacturerid); printf(" flags: 0x%08lx\n", info.flags); printf(" library description: %.32s\n", info.librarydescription); printf(" library version: %d.%d\n", (int)info.libraryversion.major, (int)info.li...
TLS Cipher Suite Discovery
when a new version of a tls implementation is made available for use by applications, those applications may wish to immediately use the newly supported cipher suites found in the new version, without the application needing to be modified and re-released to know
about these new cipher suites.
...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.
...*/ ssl_import const pruint16 ssl_numimplementedciphers; of course, the raw integer numbers of the cipher suites are not likely to be known to most users, so libssl provides a function by which the application can obtain a wealth of information
about any supported cipher suite, by its number.
Necko FAQ
everything you wanted to know
about the networking library in mozilla...
... todo what
about proxy auto config?
... todo what
about socks support?
Bytecode Descriptions
also emitted at end of every script so consumers don't need to worry
about running off the end.
...when jsop::gosub runs, it leaves two values on the stack that the stack depth math doesn't know
about.
...the lineno operand should agree with this script's source notes
about the line number of the preceding *eval instruction.
Tracing JIT
this document is talking
about deprecated feature.
...the nanojit component is language agnostic, and contains no knowledge
about spidermonkey or any other part of the mozilla codebase.
...bailing from a regular guard involves executing precise per-guard write-flushing code, as the guard encodes a specific failed condition on a specific set of operands, and so the exit code can be much more fine-grained
about and reconstructing the pre-bail state.
SpiderMonkey Internals
this document is talking
about partially obsolete things.
...the emitter does some constant folding and a few codegen optimizations;
about the fanciest thing it does is to attach source notes to the script for the decompiler's benefit.
...the jsopcode.tbl file is a c preprocessor source that defines almost everything there is to know
about js bytecodes.
SpiderMonkey 1.8.7
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
...spidermonkey 1.8.7 includes type inference, which boosts the speed of the jägermonkey jit by
about 30% over version 1.8.5.
... jsxdrapi changes were missed jsstrictpropertyop for setters (affects jsclass) - maybe general notes
about es5 strict mode changes in jsapi tricks like argv[-2] not guaranteed to work any more; is js_callee or similar instead ...
Using the Places history service
the main url table stores the information
about the page: url, host name, title, visit count, hidden, and typed.
... this separation of the global page information and the visit allows us to store information
about each time the page was visited instead of just the last time.
... nsiglobalhistory3.setgeckoflags: called by gecko to store rendering information
about a page.
Component Internals
xpcom registry manifests xpcom uses special files called manifests to track and persist information
about the components to the local system.
... the next section describes how to hook into the xpcom startup and registration process and make the data
about your component available in these manifests, so that your component will be found and registered at startup.
...there are two supported ways to go
about registering your xpcom component.
Mozilla internal string guide
have the string "forget"
about it and hand off ownership to other code.
... ns_free(val); } with getter_copies() you never have to worry
about this.
... beginwriting(iterator) endwriting(iterator) setcapacity() - inform the string
about buffer size need before a sequence of calls to append() or converting appends that convert between utf-16 and latin1 in either direction.
Interfacing with the XPCOM cycle collector
what the cycle collector does the cycle collector spends most of its time accumulating (and forgetting
about) pointers to xpcom objects that might be involved in garbage cycles.
... handling jsobjects fields if your class needs to store a pointer to a jsobject then you need to tell the cycle collector
about it.
...hence, we need to tell the cycle collector
about any such member variables.
XPConnect wrappers
they are implicitly created by xpconnect and you should not have to worry
about how that happens.
... these wrappers are created by xpconnect, so you should not have to worry
about how to construct them or whether to construct them.
... security wrappers exposed to chrome to learn
about security wrappers, see the article on script security in gecko.
IAccessibleValue
see the section
about.
...see the section
about.
...see the section
about.
nsIAccessible
can also be used by in-process accessibility clients to get information
about objects in the accessible tree.
...use nsiaccessible.groupposition() to get information
about this accessible in its group.
...descriptions nsiaccessible.description and nsiaccessible.help provides additional text information
about accessible.
nsIAccessibleEvent
event_dragdrop_start 0x0022 0x001f an application is
about to enter drag-and-drop mode.
... event_dragdrop_end 0x0023 0x0020 an application is
about to exit drag-and-drop mode.
... event_minimize_start 0x0028 0x0025 a window object is
about to be minimized or maximized.
nsIDownloadManager
toolkit/components/downloads/public/nsidownloadmanager.idlscriptable this interface lets applications and extensions communicate with the download manager, adding and removing files to be downloaded, fetching information
about downloads, and being notified when downloads are completed.
...whereas canceldownload() simply cancels the transfer while retaining information
about it, removedownload() removes all knowledge of it.
... startbatchupdate() obsolete since gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) indicate that a batch update (for example mass removal) is
about to start.
nsIDynamicContainer
the service need not worry
about removing any created nodes, they will be automatically removed when this call completes.
... oncontainernodeopening() this method is called when the given container node is
about to be populated so that the service can populate the container if necessary.
... 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.
nsINavBookmarkObserver
this method notifies this observer that an item is
about to be removed.
... aitemtype the type of the item that is
about to be removed; this is one of the nsinavbookmarksservice.type constants.
...this means that the visit the observer is told
about may not be the most recent visit for that page.
nsITreeBoxObject
the nsitreeboxobject interface contains information
about the size and layout of a tree.
... further information
about trees is given in the xul tutorial.
...inform the tree
about this change by calling rowcountchanged(rowindex+1, -1); beginupdatebatch() notify the tree that the view is
about to perform a batch update, that is, add, remove or invalidate several rows at once.
nsIUpdate
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.
... detailsurl astring the url to a page which offers details
about the content of this update.
... errorcode long a numeric error code that conveys additional information
about the state of a failed update or failed certificate attribute check during an update check.
nsIWindowWatcher
embedding clients need do nothing special
about that requirement.
...ication or mozilla extension, if the window object is unavailable (for example, when opening a window from xpcom component code), you might want to use this interface for opening a new window: var ww = components.classes["@mozilla.org/embedcomp/window-watcher;1"] .getservice(components.interfaces.nsiwindowwatcher); var win = ww.openwindow(null, "chrome://myextension/content/
about.xul", "
aboutmyextension", "chrome,centerscreen", null); note: versions of gecko before gecko 2.0 would ignore some of the chrome flags when opening a chrome window without an opener window, instead behaving as if the "all" flag was present.
... void registernotification( in nsiobserver aobserver ); parameters note: be careful
about generating open/close window events inside nsiobserver.observe().
nsIXULAppInfo
xpcom/system/nsixulappinfo.idlscriptable this interface provides information
about the host application.
...be careful
about which one you want.
...be careful
about which one you want!
Mail event system
if the object just needs to be notified
about one folder, it should call that folder's addlistener method.
... if the object wants to know
about all notifications on all folders, then it should register with the mail session.
... getservice(components.interfaces.nsimsgmailsession); mailsession.addlistener(folderlistener); // now test to see if integer stuff is firing at all // let's say "folder" is a folder we know
about // first we need an atom to play with atomservice = components.classes["component://netscape/atom-service"].
Theme Packaging
install.rdf your install.rdf manifest will look something like this: <?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:type>4</em:type> more properties </description> </rdf> required install.rdf properties your install.rdf file must have the following properties.
... sample install.rdf file <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>{18b64b56-d42f-428d-a88c-baa413bc413f}</em:id> <em:version>1.0</em:version> <em:type>4</em:type> <!-- target application this extension can install into, with minimum and maximum supported versions.
... structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration ...
Add to iPhoto
the interesting things to note
about the declaration of corefoundation.cfurlcreatefromfilesystemrepresentation() are: it returns a cfurlref, which is an opaque pointer similar to the cfstringref we noted above.
... cfmutablearray one thing
about core foundation types that is interesting is the use of regular and mutable versions of the same data types.
... there's nothing particularly interesting
about how we declare this api, but it will be noteworthy when we look at how we use cfmutablearray objects with methods that accept a cfarray as input, so i introduce this concept here.
Using js-ctypes
about declaring the function how we knew how to declare the function was by going to msdn site and looking at the messagebox (messageboxw is just a unicode version of same function) function.
... also learn
about the lib.declare function used here: lib.declare.
... learn
about the data types used here: data types.
Plugins
roadmap plugin roadmap information
about the roadmap for adobe flash and other plugin support in firefox.
... tutorials and references the articles below are developer information
about the developing for click-to-play, and plugin blocking.
... archived information legacy documentation
about developing npapi plugins.
Debugger.Object - Firefox Developer Tools
this means that the debugger can use the == operator to recognize when two debugger.object instances refer to the same debuggee object, and place its own properties on a debugger.object instance to store metadata
about particular debuggee objects.
...this allows the code using each debugger instance to place whatever properties it likes on its own debugger.object instances, without worrying
about interfering with other debuggers.
... once a promise is settled, it will generally notify its dependent promises and forget
about them, so this is most useful on pending promises.
All keyboard shortcuts - Firefox Developer Tools
to select these, visit
about:config, select the setting devtools.editor.keymap, and assign "vim" or "emacs", or "sublime" to that setting.
... 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.
... show/hide more information
about current property (computed view only, when a property is selected) enter or space return or space enter or space open mdn reference page
about current property (computed view only, when a property is selected) f1 f1 f1 open current css file in style editor (computed view only, when more information is shown for a property and a css file reference is focused).
Storage Inspector - Firefox Developer Tools
clicking on a tree item will display detailed information
about that item in the table widget on the right.
... add and refresh storage you'll also have buttons available to add a new storage entry or refresh the view of the currently viewed storage type where applicable (you can't add new entries to indexeddb or cache): sidebar when you select any row in the storage table widget, the sidebar is shown with details
about that row.
... if a cookie is selected, it will list all the details
about that cookie.
Web Console remoting - Firefox Developer Tools
to better understand the architecture of the web console we recommend learning
about the debugger architecture.
...see evalinglobalwithbindings() for information
about bindings.
... the getrequestheaders and other packets to get more details
about a network event you can use the following packet requests (and replies).
A basic ray-caster - Web APIs
after realizing, to my delight, that the nifty <canvas> element i'd been reading
about was not only soon to be supported in firefox, but was already supported in the current version of safari, i had to try a little experiment.
... the canvas overview and tutorial i found here at mdn are great, but nobody had written
about animation yet, so i thought i'd try a port of a basic raycaster i'd worked on a while ago, and see what sort of performance we can expect from a javascript-controlled pixel buffer.
...not exactly a new member of the id software family, but pretty decent considering it's a fully interpreted environment, and i didn't have to worry
about memory allocation or video modes or coding inner routines in assembler or anything.
Applying styles and colors - Web APIs
« previousnext » in the chapter
about drawing shapes, we used only the default line and fill styles.
...it is then equal to the cosecant of half the minimum inner angle of connecting segments below which no miter join will be rendered, but only a bevel join: miterlimit = max miterlength / linewidth = 1 / sin ( min θ / 2 ) the default miter limit of 10.0 will strip all miters for sharp angles below
about 11 degrees.
...ntext('2d'); ctx.shadowoffsetx = 2; ctx.shadowoffsety = 2; ctx.shadowblur = 2; ctx.shadowcolor = 'rgba(0, 0, 0, 0.5)'; ctx.font = '20px times new roman'; ctx.fillstyle = 'black'; ctx.filltext('sample string', 5, 30); } <canvas id="canvas" width="150" height="80"></canvas> draw(); screenshotlive sample we will look at the font property and filltext method in the next chapter
about drawing text.
Credential Management API - Web APIs
interfaces credential provides information
about an entity as a prerequisite to a trust decision.
... federatedcredential provides information
about credentials from a federated identity provider, which is an entity that a website trusts to correctly authenticate a user, and which provides an api for that purpose.
... passwordcredential provides information
about a username/password pair.
DeviceMotionEvent.rotationRate - Web APIs
syntax var rotationrate = devicemotionevent.rotationrate; value the rotationrate property is a read only object describing the rotation rates of the device around each of its axes: alpha the rate at which the device is rotating
about its z axis; that is, being twisted
about a line perpendicular to the screen.
... beta the rate at which the device is rotating
about its x axis; that is, front to back.
... gamma the rate at which the device is rotating
about its y axis; that is, side to side.
Introduction to the DOM - Web APIs
dom interfaces this guide is
about the objects and the actual things you can use to manipulate the dom hierarchy.
... but the relationship between objects and the interfaces that they implement in the dom can be confusing, and so this section attempts to say a little something
about the actual interfaces in the dom specification and how they are made available.
...however, you design your test pages, testing the interfaces as you read
about them is an important part of learning how to use the dom effectively.
How whitespace is handled by HTML, CSS, and in the DOM - Web APIs
there are rules in the browser engine that decide which whitespace characters are useful and which aren’t — these are specified at least in part in css text module level 3, and especially the parts
about the css white-space property and whitespace processing details, but we also offer an easier explanation below.
... spaces in between inline and inline-block elements let's move on to look at a few issues that can arise due to whitespace, and what can be done
about them.
...when you’re only dealing with block-level elements such as <p> that only contain inline elements such as <em>, <strong>, <span>, etc., you don’t normally care
about this because the extra whitespace that does make it to the layout is helpful to separate the words in the sentence.
EventTarget.addEventListener() - Web APIs
options optional an options object specifies characteristics
about the event listener.
... you can learn more from the article
about eventlisteneroptions from the web incubator community group.
... you don't need to worry
about the value of passive for the basic scroll event.
Introduction to the File and Directory Entries API - Web APIs
about this document this introduction discusses essential concepts and terminology in the file and directory entries api.
...to learn more
about terminology used in this api, see the definitions section.
...to learn more
about the chrome-specific implementation, see managing html5 offline storage.
GamepadEvent - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 22 full support 22 no support 15 — 21prefixed prefixed implemented with the vendor prefix: webkitsafari full support 10.1webview android ...
...to change preferences in firefox, visit
about:config.ie no support noopera full support 22safari full support 10.1webview android no support nochrome android full support yesfirefox android full support ...
...to change preferences in firefox, visit
about:config.ie no support noopera full support 22 full support 22 no support 15 — 21prefixed prefixed implemented with the vendor prefix: webkitsafari full support 10.1webview android ...
Using the Gamepad API - Web APIs
%d buttons, %d axes.", gp.index, gp.id, gp.buttons.length, gp.axes.length); }); the gamepad object's properties are as follows: id: a string containing some information
about the controller.
...once we have a reference to it, we can query its properties for information
about the current state of the gamepad.
...when one is connected, we grab the gamepad using navigator.getgamepads()[0], print information
about the gamepad into our gamepad info div, and fire the gameloop() function that starts the whole ball movement process up.
GlobalEventHandlers.onanimationcancel - Web APIs
we'll use this to show information
about the events we receive.
... note the use of animationevent.animationname and animationevent.elapsedtime to get information
about the event which occurred.
... result assembled together, you get this: if your browser supports animationcancel, hiding the box using the button will cause a message to be displayed
about the event.
InputDeviceCapabilities API - Web APIs
the inputdevicecapabilities api provides details
about the underlying sources of input events.
... what
about when the mousedown event is triggered?
... if (!e.sourcecapabilities.firestouchevents) mybutton.classlist.add("pressed"); }); interfaces inputdevicecapabilities provides logical information
about an input device.
MediaDevices.getUserMedia() - Web APIs
while information
about a user's cameras and microphones are inaccessible for privacy reasons, an application can request the camera and microphone capabilities it needs and wants, using additional constraints.
... for additional details on these requirements and rules, how they are reflected in the context in which your code is running, and
about how browsers manage user privacy and security issues, read on.
...here, indicate we need the ability to use both camera and microphone: <iframe src="https://mycode.example.net/etc" allow="camera;microphone"> </iframe> read our guide, using feature policy, to learn more
about how it works.
MediaRecorder.mimeType - Web APIs
see our media type and format guide for information
about container and codec support across browsers.
...this string may include the codecs parameter, giving details
about the codecs and the codec configurations used by the media recorder.
...see also media types to learn more
about media types and how they're used in web content and by web browers.
Media Capabilities API - Web APIs
the media capabilities api allows developers to determine decoding and encoding abilities of the device, exposing information such as whether media is supported and whether playback should be smooth and power efficient, with real time feedback
about playback to better enable adaptive streaming, and access to display property information.
...the api also provides abilities to access display property information such as supported color gamut, dynamic range abilities, and real-time feedback
about the playback.
... media capabilities interfaces mediacapabilities provides information
about the decoding abilities of the device, system and browser based on codecs, profile, resolution, and bitrates.
Capabilities, constraints, and settings - Web APIs
the twin concepts of constraints and capabilities let the browser and web site or app exchange information
about what constrainable properties the browser's implementation supports and what values it supports for each one.
... overview the process works like this (using mediastreamtrack as an example): if needed, call mediadevices.getsupportedconstraints() to get the list of supported constraints, which tells you what constrainable properties the browser knows
about.
... finally, the track's applyconstraints() method is called to configure the api as desired by specifying the values or ranges of values it wishes to use for any of the constrainable properties
about which it has a preference.
NavigatorPlugins.plugins - Web APIs
in chrome) return flash.description.replace(/shockwave flash /,""); } } the following example displays information
about the installed plugin(s).
...ow = table.insertrow(); newrow.insertcell().textcontent = navigator.plugins[i].name; newrow.insertcell().textcontent = navigator.plugins[i].filename; newrow.insertcell().textcontent = navigator.plugins[i].description; newrow.insertcell().textcontent = navigator.plugins[i].version?navigator.plugins[i].version:""; } notes the plugin object exposes a small interface for getting information
about the various plugins installed in your browser.
... a list of plugins is also available by entering
about:plugins in the browser's location bar.
PerformanceFrameTiming - Web APIs
performanceframetiming is an abstract interface that provides frame timing data
about the browser's event loop.
...this means the browser should process a frame in
about 16.7ms.
... an application can register a performanceobserver for "frame" performance entry types and the observer can retrieve data
about the duration of each frame event.
Using Pointer Events - Web APIs
lienty + ");"); ctx.lineto(evt.clientx, evt.clienty); ctx.linewidth = 4; ctx.strokestyle = color; ctx.stroke(); ongoingtouches.splice(idx, 1, copytouch(evt)); // swap in the new touch record log("."); } else { log("can't figure out which touch to continue: idx = " + idx); } } this function looks in our cached touch information array for the previous information
about each touch to determine the starting point for each touch's new line segment to be drawn.
... after drawing the line, we call array.splice() to replace the previous information
about the touch point with the current information in the ongoingtouches array.
... copying a touch object some browsers may re-use touch objects between events, so it's best to copy the bits you care
about, rather than referencing the entire object.
RTCDtlsTransport - Web APIs
the rtcdtlstransport interface provides access to information
about the datagram transport layer security (dtls) transport over which a rtcpeerconnection's rtp and rtcp packets are sent and received by its rtcrtpsender and rtcrtpreceiver objects.
... a dtls transport is also used to provide information
about sctp packets transmitted and received by an connection's data channels.
... features of the dtls transport include the addition of security to the underlying transport; the rtcdtlstransport interface can be used to obtain information
about the underlying transport and the security added to it by the dtls layer.
Using the Resource Timing API - Web APIs
the interface also includes other properties that provide data
about the size of the fetched resource as well as the type of resource that initiated the fetch.
...for more details
about the interfaces, including examples, see each interface's reference page and the references in the see also section.
...the performanceresourcetiming interface has three properties that can be used to obtain size data
about a resource.
Resource Timing API - Web APIs
the interface also includes other properties that provide data
about the size of the fetched resource as well as the type of resource that initiated the fetch.
...for more details
about the interfaces including examples see each interface's reference page, using the resource timing api, and the references in the see also section.
... resource size the performanceresourcetiming interface has three properties that can be used to obtain size data
about a resource.
Sensor APIs - Web APIs
if (error.name === 'securityerror') { // see the note above
about feature policy.
... magnetometersecure context provides information
about the magnetic field as detected by the device’s primary magnetometer sensor.
... sensorerroreventsecure context provides information
about errors thrown by a sensor or related interface.
Using readable streams - Web APIs
it has a number of advantages, and what is really nice
about it is that browsers have recently added the ability to consume a fetch response as a readable stream.
...for example, our simple stream pump example goes on to enqueue each chunk in a new, custom readablestream (we will find more
about this in the next section), then create a new response out of it, consume it as a blob, create an object url out of that blob using url.createobjecturl(), and then display it on screen in an <img> element, effectively creating a copy of the image we originally fetched.
...we’ll explain more
about the custom stream in the next section.
Touch events - Web APIs
newidth = 4; ctx.strokestyle = color; ctx.stroke(); ongoingtouches.splice(idx, 1, copytouch(touches[i])); // swap in the new touch record console.log("."); } else { console.log("can't figure out which touch to continue"); } } } this iterates over the changed touches as well, but it looks in our cached touch information array for the previous information
about each touch to determine the starting point for each touch's new line segment to be drawn.
... after drawing the line, we call array.splice() to replace the previous information
about the touchpoint with the current information in the ongoingtouches array.
... copying a touch object some browsers (mobile safari, for one) re-use touch objects between events, so it's best to copy the properties you care
about, rather than referencing the entire object.
WebGL constants - Web APIs
constant name value description static_draw 0x88e4 passed to bufferdata as a hint
about whether the contents of the buffer are likely to be used often and not change often.
... stream_draw 0x88e0 passed to bufferdata as a hint
about whether the contents of the buffer are likely to not be used often.
... dynamic_draw 0x88e8 passed to bufferdata as a hint
about whether the contents of the buffer are likely to be used often and change often.
Matrix math for the web - Web APIs
// manually rotating a point
about the origin without matrices let point = [10, 2]; // calculate the distance from the origin let distance = math.sqrt(point[0] * point[0] + point[1] * point[1]); // the equivalent of 60 degrees, in radians let rotationinradians = math.pi / 3; let transformedpoint = [ math.cos(rotationinradians) * distance, math.sin(rotationinradians) * distance ]; it is possible to encode these type of ste...
...below is the representation of a rotation
about the x axis: let sin = math.sin; let cos = math.cos; // note: there is no perspective in these transformations, so a rotation // at this point will only appear to only shrink the div let a = math.pi * 0.3; //rotation amount in radians // rotate around z axis let rotatezmatrix = [ cos(a), -sin(a), 0, 0, sin(a), cos(a), 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]; view on jsfiddle here are a set of functions that return rotation matrices for rotating around each of the three axes.
...for instance, to scale something down by 80%, move it down 200 pixels, and then rotate
about the origin 90 degrees would look something like the following in pseudo-code.
Using DTMF with WebRTC - Web APIs
this article offers a brief high-level overview of how dtmf works over webrtc, then provides a guide for everyday developers
about how to send dtmf over an rtcpeerconnection.
... if you'd like to know more
about how this works, read rfc 3550: rtp: a transport protocol for real-time applications and rfc 4733: rtp payload for dtmf digits, telephony tones, and telephony signals.
...if so, we log the fact that we're
about to send the dtmf, then we call dtmf.insertdtmf() to send the dtmf on the same track as the audio data method on the rtcdtmfsender object we previously stored in dtmfsender.
Using the Web Animations API - Web APIs
in the @keyframes block we can see that 30% of the way through each loop (
about .9 seconds in), alice’s color changes from black to a deep burgundy then back again by the end of the loop.
... pausing and playing animations we’ll talk more
about alice’s animation later, but for now, let’s look closer at the cupcake’s animation: var nommingcake = document.getelementbyid('eat-me_sprite').animate( [ { transform: 'translatey(0)' }, { transform: 'translatey(-80%)' } ], { fill: 'forwards', easing: 'steps(4, end)', duration: alicechange.effect.timing.duration / 2 }); the element.animate() method will immediately run after it i...
...for instance, in the growing and shrinking alice game example, you might have noticed something odd
about the cake’s duration: duration: alicechange.effect.getcomputedtiming().duration / 2 to understand what’s happening here, let’s take a look at alice’s animation: var alicechange = document.getelementbyid('alice').animate( [ { transform: 'translate(-50%, -50%) scale(.5)' }, { transform: 'translate(-50%, -50%) scale(2)' } ], { duration: 8000, easing: 'ease-in-out', ...
Advanced techniques: Creating and sequencing audio - Web APIs
if you are
about to embark on building something more complex, tone.js would be a good place to start.
...ttime(0, audioctx.currenttime); // set our attack sweepenv.gain.linearramptovalueattime(1, audioctx.currenttime + attacktime); // set our release sweepenv.gain.linearramptovalueattime(0, audioctx.currenttime + sweeplength - releasetime); osc.connect(sweepenv).connect(audioctx.destination); osc.start(); osc.stop(audioctx.currenttime + sweeplength); } note: we'll talk
about the property baseaudiocontext.currenttime later, so don't worry if you're unsure of it for now.
...this is what we shall use for timing within our step sequencer — it's extremely accurate, returning a float value accurate to
about 15 decimal places.
Using the Web Audio API - Web APIs
you can learn more
about this in our article autoplay guide for media and web audio apis.
...gain can be set to a minimum of
about -3.4 and a max of
about 3.4.
... more examples there are other examples available to learn more
about the web audio api.
Web Authentication API - Web APIs
note most javascript programmers that are creating an application will only really care
about steps 1 and 5 where the create() function is called and subsequently returns; however, steps 2, 3, and 4 are essential to understanding the processing that takes place in the browser and authenticator and what the resulting data means.
... interfaces credential provides information
about an entity as a prerequisite to a trust decision.
... publickeycredential provides information
about a public key / private key pair, which is a credential for logging in to a service using an un-phishable and data-breach resistant asymmetric key pair instead of a password.
Web Bluetooth API - Web APIs
bluetoothadvertisingdata provides advertising data
about a particular bluetooth device.
... bluetoothremotegattcharacteristic represents a gatt characteristic, which is a basic data element that provides further information
about a peripheral’s service.
... bluetoothremotegattdescriptor represents a gatt descriptor, which provides further information
about a characteristic’s value.
Using the Web Speech API - Web APIs
think
about dictation on macos, siri on ios, cortana on windows 10, android speech, etc.
...]; var grammar = '#jsgf v1.0; grammar colors; public <color> = ' + colors.join(' | ') + ' ;' the grammar format used is jspeech grammar format (jsgf) — you can find a lot more
about it at the previous link to its spec.
... browser support support for web speech api speech synthesis is still getting there across mainstream browsers, and is currently limited to the following: firefox desktop and mobile support it in gecko 42+ (windows)/44+, without prefixes, and it can be turned on by flipping the media.webspeech.synth.enabled flag to true in
about:config.
ARIA live regions - Accessibility
dropdown box updates useful onscreen information a website specializing in providing information
about planets provides a dropdown box.
... when a planet is selected from the dropdown, a region on the page is updated with information
about the selected planet.
... the paciello group has some information
about the state of the support of live regions (2014).
Using the alert role - Accessibility
when this role is added to an element, the browser will send out an accessible alert event to assistive technology products which can then notify the user
about it.
... the alert role is most useful for information that requires the user's immediate attention, for example: an invalid value was entered into a form field the user's login session is
about to expire the connection to the server was lost, local changes will not be saved because of its intrusive nature, the alert role must be used sparingly and only in situations where the user's immediate attention is required.
...for example, a form control may have instruction
about the expected value.
ARIA: textbox role - Accessibility
description when an element has the textbox role, the browser sends an accessible textbox event to assistive technologies, which can then notify the user
about it.
... aria-placeholder attribute represents a hint (word or phrase) to the user
about what to enter into the text field.
... the hint should be a sample value or a brief description of the expected format.this information should not be used as a substitute for a label: a label is focusable, permanent, indicates what kind of information is expected, and increases the hit area for setting focus on the control, whereas placeholder text is only temporary hint
about the expected value, which if implemented incorrectly can decrease accessibility.
Architecture - Accessibility
nstextaccessible serves 2 purposes it is used by nshypertextaccessible to collect information
about itself it is still exposed in msaa for backward compatibility by old windows assistive technologies.
... those at's don't yet know
about any iaccessibletext yet, and want to see the hierarchy how they always did -- with text in leaf nodes.
...using this technique is
about twice as fast as visiting all nodes in the tree, according to tests run by the developers of nvda.
Accessibility Information for Web Authors - Accessibility
wave 4.0 beta (web accessibility versatile evaluator) from webaim and sponsored by temple university institute on disabilities wave 4.0 beta is another powerful, free online webpage accessibility validation service that identifies accessibility errors and reports accessibility warnings
about webpage related to section 508 standards and/or the wcag guidelines.
...(...)
about one-third complained
about low contrast between text and background." top ten web design mistakes of 2005: 1.
...a study has established that
about 8 percent of all men have some form of color deficiency.
Web accessibility for seizures and physical reactions - Accessibility
ause seizures and other disorders is documented in such articles as “gamma oscillations and photosensitive epilepsy”, where it is noted “certain visual images, even in the absence of motion or flicker, can trigger seizures in patients with photosensitive epilepsy” the epilepsy foundation, in its article, "shedding light on photosensitivity, one of epilepsy's most complex conditions" talks
about static images and patterns.
...only a few types of epilepsies are photosensitive though, and the vast majority of epilepsies are not." in addition to seizures brought
about by photosensitivity, listening to certain pieces of music can also trigger what are called musicogenic seizures, although these types of seizures seem to be much more rare.
... light-level from w3c's draft document, media queries level 5 section on light-level: "the light-level media feature is used to query
about the ambient light-level in which the device is used, to allow the author to adjust style of the document in response." this will be a godsend to those who have motor-skills problems, or for some with cognitive difficulties, who cannot find the right "button" to change their screen settings.
Using CSS animations - CSS: Cascading Style Sheets
animation-name: fadeinout, moveleft300px, bounce; animation-duration: 2.5s, 5s; animation-iteration-count: 2, 1; using animation events you can get additional control over animations — as well as useful information
about them — by making use of animation events.
... we'll modify the sliding text example to output some information
about each animation event when it occurs, so we can get a look at how they work.
... the html just for the sake of completeness, here’s the html that displays the page content, including the list into which the script inserts information
about the received events: <h1 id="watchme">watch me move</h1> <p> this example shows how to use css animations to make <code>h1</code> elements move across the page.
Typical use cases of Flexbox - CSS: Cascading Style Sheets
you can read more
about the difference between flexbox and css grid layout in relationship of flexbox to other layout methods, where we discuss how flexbox fits into the overall picture of css layout.
...you can read more
about this property in aligning items in a flex container, which deals with aligning items on the main axis.
... think
about the best way to present the content that you have and then see how flexbox or other layout methods can help you achieve it.
Block and inline layout in normal flow - CSS: Cascading Style Sheets
you can read more
about margin collapsing in our article mastering margin collapsing.
... find out more
about how block and inline boxes behave in our guide to the visual formatting model.
...in the css display model level 3, we can learn more
about how the display property changes the behaviour of boxes and the boxes they generate.
Variable fonts guide - CSS: Cascading Style Sheets
variable fonts: what they are, and how they differ to better understand what's different
about variable fonts, it is worth reviewing what non-variable ones are like and how they compare.
...that file would be larger than a single font, but in most cases smaller or
about the same size as the 4 you might load for body copy.
... a note
about font families, weights, and variants you might notice that we have been talking
about having a specific font file for every weight and style (i.e.
box-direction - CSS: Cascading Style Sheets
see flexbox for information
about the current standard.
...to change preferences in firefox, visit
about:config.ie no support noopera full support 15prefixed full support 15prefixed prefixed implemented with the vendor prefix: -webkit-safari full support 3prefixed full support ...
...to change preferences in firefox, visit
about:config.opera android full support 14prefixed full support 14prefixed prefixed implemented with the vendor prefix: -webkit-safari ios full support 1prefixed full support 1prefixed prefixed implemented with the vendor p...
max-block-size - CSS: Cascading Style Sheets
everything else
about the two boxes is identical, including the values used for max-block-size.
...some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, i thought i would sail
about a little and see the watery part of the world.
...some years ago—never mind how long precisely—having little or no money in my purse, and nothing particular to interest me on shore, i thought i would sail
about a little and see the watery part of the world.
WAI ARIA Live Regions/API Support - Developer guides
please read the aria spec or the live region report to learn
about aria live region markup.
... atk/at-spi event iaccessible2 event object
about to be hidden or removed children_changed::remove (fired on the parent, with event data pointing to the child index of the accessible object to be removed) event_object_hide* (fired on the actual accessible object
about to go away) object shown or inserted children_changed::add (fired on the parent, with event data pointing to the child index of the inserted accessible object) event_object_show* (fired on the actual new accessible object) object replaced with different object (this happens especially if an object's interfaces or role changes) chi...
...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.
Mouse gesture events - Developer guides
if you only care
about the end results of the pinch gesture, you can simply watch for this event; however, if you want to provide feedback during the handling of the gesture, you should also watch the mozmagnifygesturestart and mozmagnifygestureupdate events.
...if you only care
about the end results of the rotate gesture, you can simply watch for this event; however, if you want to provide feedback during the handling of the gesture, you should also watch the mozrotategesturestart and mozrotategestureupdate events.
...event fields mouse gesture events have additional fields providing information
about the gesture.
Orientation and motion data explained - Developer guides
this article provides details
about the coordinate systems at play and how you use them.
...
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.
...
about rotation rotation is described
about any given axis in terms of the number of degrees of difference between the device's coordinate frame and the earth coordinate frame, and is measured in degrees.
<iframe>: The Inline Frame element - HTML: Hypertext Markup Language
notes
about sandboxing: when the embedded document has the same origin as the embedding page, it is strongly discouraged to use both allow-scripts and allow-same-origin, as that lets the embedded document remove the sandbox attribute — making it no more secure than not using the sandbox attribute at all.
...use a value of
about:blank to embed an empty page that conforms to the same-origin policy.
...via element.removeattribute()) causes
about:blank to be loaded in the frame in firefox (from version 65), chromium-based browsers, and safari/ios.
<input type="time"> - HTML: Hypertext Markup Language
you can learn more
about the format of the time value used by this input type in time strings in date and time formats used in html.
... basic uses of time the simplest use of <input type="time"> involves a basic <input> and <label> element combination, as seen below: <form> <label for="appt-time">choose an appointment time: </label> <input id="appt-time" type="time" name="appt-time"> </form> controlling input size <input type="time"> doesn't support form sizing attributes such as size, since times are always
about the same number of characters long.
...no information is yet available
about when or if safari will add it.
HTML: Hypertext Markup Language
the articles below can help you learn more
about html.
... html tutorials for articles
about how to use html, as well as tutorials and complete examples, check out our html learning area.
... html reference in our extensive html reference section, you'll find the details
about every element and attribute in html.
HTTP caching - HTTP
this page will mostly talk
about browser and proxy caches, but there are also gateway caches, cdn, reverse proxy caches and load balancers that are deployed on web servers for better reliability, performance and scaling of web sites and web applications.
...for more details see the information
about the vary header below.
... no caching the cache should not store anything
about the client request or server response.
A typical HTTP session - HTTP
an absolute url without the protocol or domain name the http protocol version subsequent lines represent an http header, giving the server information
about what type of data is appropriate (e.g., what language, what mime types), or other data altering its behavior (e.g., not sending an answer if it is already cached).
... subsequent lines represent specific http headers, giving the client information
about the data sent (e.g.
... type, data size, compression algorithm used, hints
about caching).
Grammar and types - JavaScript
(for more information, see the detailed reference
about javascript's lexical grammar.) it is considered best practice, however, to always write a semicolon after a statement, even when it is not strictly needed.
... if (true) { let y = 5; } console.log(y); // referenceerror: y is not defined variable hoisting another unusual thing
about variables in javascript is that you can refer to a variable declared later, without getting an exception.
...to learn more
about javascript's language constructs, see also the following chapters in this guide: control flow and error handling loops and iteration functions expressions and operators in the next chapter, we will have a look at control flow constructs and error handling.
Using Promises - JavaScript
one of the great things
about using promises is chaining.
...you can read more
about the syntax here.
... if you think microtasks may help solve this problem, see the microtask guide to learn more
about how to use queuemicrotask() to enqueue a function as a microtask.
Intl.Locale - JavaScript
additional information
about the locale is stored in the optional extension tags.
... extension tags hold information
about locale aspects such as calendar type, clock type, and numbering system type.
... instance properties intl.locale.prototype.basename returns basic, core information
about the locale in the form of a substring of the complete data string.
Lexical grammar - JavaScript
see also the page
about parseint() exponential the decimal exponential literal is specified by the following format: ben; where b is a base number (integer or floating), followed by e char (which serves as separator or exponent indicator) and n, which is exponent or power number – a signed integer (as per 2019 ecma-262 specs): 0e-5 // => 0 0e+5 // => 0 5e1 // => 50 175e-2 // => 1.75 1e3 // => 1000 1e-3 ...
... var n = 0o755; // 493 var m = 0o644; // 420 // also possible with just a leading zero (see note
about decimals above) 0755 0644 hexadecimal hexadecimal number syntax uses a leading zero followed by a lowercase or uppercase latin letter "x" (0x or 0x).
... // 123456789123456789 0o777777777777n // 68719476735 0x123456789abcdefn // 81985529216486895 0b11101001010101010101n // 955733 note that legacy octal numbers with just a leading zero won't work for bigint: // 0755n // syntaxerror: invalid bigint syntax for octal bigint numbers, always use zero followed by the letter "o" (uppercase or lowercase): 0o755n for more information
about bigint, see also javascript data structures.
How to make PWAs installable - Progressive web apps (PWAs)
previous overview: progressive next in the last article, we read
about how the example application, js13kpwa, works offline thanks to its service worker, but we can go even further and allow users to install the web app on mobile and desktop browers that support doing so.
... the manifest file the key element is a web manifest file, which lists all the information
about the website in a json format.
... summary in this article, we learned
about how we can make pwas installable with a properly-configured web manifest, and how the user can then install the pwa with the "add to home screen" feature of their browser.
How to make PWAs re-engageable using Notifications and Push - Progressive web apps (PWAs)
see the web push data encryption test page for detailed information
about securing the server.
...this, for example, can be used to remind the user
about something, or let them know
about new content being available in the app.
...to learn more
about vapid keys you can read the sending vapid identified webpush notifications via mozilla’s push service blog post.
transform - SVG: Scalable Vector Graphics
form="scale(4)" /> <!-- vertical scale --> <circle cx="0" cy="0" r="10" fill="yellow" transform="scale(1,4)" /> <!-- horizontal scale --> <circle cx="0" cy="0" r="10" fill="pink" transform="scale(4,1)" /> <!-- no scale --> <circle cx="0" cy="0" r="10" fill="black" /> </svg> rotate the rotate(<a> [<x> <y>]) transform function specifies a rotation by a degrees
about a given point.
... if optional parameters x and y are not supplied, the rotation is
about the origin of the current user coordinate system.
... if optional parameters x and y are supplied, the rotation is
about the point (x, y).
<metadata> - SVG: Scalable Vector Graphics
metadata is structured information
about data.
... example <svg width="400" viewbox="0 0 400 300" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <metadata> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:connect="http://www.w3.org/1999/08/29-svg-connections-in-rdf#"> <rdf:description
about="#cablea"> <connect:ends rdf:resource="#socket1"/> <connect:ends rdf:resource="#computera"/> </rdf:description> <rdf:description
about="#cableb"> <connect:ends rdf:resource="#socket2"/> <connect:ends rdf:resource="#computerb"/> </rdf:description> <rdf:description
about="#cablen"> <connect:ends rdf:resource="#socket5"/> <conne...
...ct:ends>everything</connect:ends> </rdf:description> <rdf:description
about="#hub"> <connect:ends rdf:resource="#socket1"/> <connect:ends rdf:resource="#socket2"/> <connect:ends rdf:resource="#socket3"/> <connect:ends rdf:resource="#socket4"/> <connect:ends rdf:resource="#socket5"/> </rdf:description> </rdf:rdf> </metadata> <title>network</title> <desc>an example of a computer network based on a hub.</desc> <style> svg { /* default styles to be inherited */ fill: white; stroke: black; } text { fill: black; stroke: none; } path { fill: none; } </style> <!-- define symbols used in the svg --> <defs> <!-- hubplug symbol.
SVG: Scalable Vector Graphics
documentation svg element reference details
about each svg element.
... svg attribute reference details
about each svg attribute.
... svg dom interface reference details
about the svg dom api, for interaction with javascript.
Mixed content - Web security
the attacker could also infer information
about the user's activities by watching which images are served to the user; often images are only served on a specific page within a website.
...malicious active content can steal the user's credentials, acquire sensitive data
about the user, or attempt to install malware on the user's system (by leveraging vulnerabilities in the browser or its plugins, for example).
...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.
Same-origin policy - Web security
pany.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,
about:blank is often used as a url of new, empty popup windows into which the parent script writes content (e.g.
...it is often necessary to prevent embedding because embedding a resource always leaks some information
about it.
Using templates and slots - Web Components
the truth
about templates when you have to reuse the same markup structures repeatedly on a web page, it makes sense to use some kind of a template rather than repeating the same structure over and over again.
... <dl slot="attributes"> <dt>name</dt> <dd>the name of the slot.</dd> </dl> </element-details> <element-details> <span slot="element-name">template</span> <span slot="description">a mechanism for holding client- side content that is not to be rendered when a page is loaded but may subsequently be instantiated during runtime using javascript.</span> </element-details>
about that snippet, notice these points: the snippet has two instances of <element-details> elements which both use the slot attribute to reference the named slots "element-name" and "description" we put in the <element-details> shadow root .
... screenshotlive sample notice the following points
about this rendered result: even though the instances of the <element-details> element in the document do not directly use the <details> element, they get rendered using <details> because the shadow root causes them to get populated with that.
Understanding WebAssembly text format - WebAssembly
(note that when this text gets converted to binary, though, the binary will contain only the integer.) stack machines before we can write a function body, we have to talk
about one more thing: stack machines.
...also see webassembly.instantiatestreaming() for more details
about the instantiate function.
...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?
simple-storage - Archive of obsolete content
currently this limit is
about five megabytes (5,242,880 bytes).
... to read
about how to opt into private browsing mode and how to use the sdk to avoid storing user data associated with private windows, refer to the documentation for the private-browsing module.
tabs - Archive of obsolete content
to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
... this event is not emitted when the tab is made the active tab: to get notified
about that, you need to listen to the activate event.
widget - Archive of obsolete content
ta; var player = widgets.widget({ id: "player", width: 72, label: "player", contenturl: data.url("buttons.html"), contentscriptfile: data.url("button-script.js") }); player.port.on("play", function() { console.log("playing"); }); player.port.on("pause", function() { console.log("pausing"); }); player.port.on("stop", function() { console.log("stopping"); }); to learn much more
about content scripts, see the working with content scripts guide.
... to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
io/file - Archive of obsolete content
for now, you need to require("chrome") and use the xpcom directory service as described in this article
about file i/o.
... read more
about escaping characters in strings.
places/history - Archive of obsolete content
usage this module exports a single function, search(), which synchronously returns a placesemitter object which then asynchronously emits data and end or error events that contain information
about the state of the operation.
... example let { search } = require("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.
ui/button/action - Archive of obsolete content
read more
about specifying icons in the reference documentation for the actionbutton constructor.
...refox-16.png", "32": "./firefox-32.png" }, onclick: disableforthiswindow }); function disableforthiswindow(state) { button.state("window", { disabled: true }); } to fetch the state for a specific window or tab, call state(), passing in the window or tab you are interested in, and it will return the state: var labelforactivetab = button.state("tab").label; to learn more
about this, see the api documentation for state().
ui/button/toggle - Archive of obsolete content
read more
about specifying icons in the reference documentation for the togglebutton constructor.
...refox-16.png", "32": "./firefox-32.png" }, onclick: disableforthiswindow }); function disableforthiswindow(state) { button.state("window", { disabled: true }); } to fetch the state for a specific window or tab, call state(), passing in the window or tab you are interested in, and it will return the state: var labelforactivetab = button.state("tab").label; to learn more
about this, see the api documentation for state().
cfx - Archive of obsolete content
to do this, include a url in the xpi called the updateurl: the host application will go here to get information
about updates.
... the default value of --static-args is "{}" (an empty object), so you don't have to worry
about checking whether staticargs exists in system.
console - Archive of obsolete content
console.error(object[, object, ...]) logs the arguments to the console, preceded by "error:" and the name of your add-on: console.error("this is an error message"); error: my-addon: this is an error message console.exception(exception) logs the given exception instance as an error, outputting information
about the exception's stack traceback if one is available.
... both these preferences can be set programmatically using the preferences/service api, or manually using
about:config.
Getting Started (jpm) - Archive of obsolete content
navigate to it, type jpm init, and hit enter: mkdir my-addon cd my-addon jpm init you'll then be asked to supply some information
about your add-on: this will be used to create your add-on's package.json file.
...during development, or if you don't plan to distribute, you can open
about:config and set xpinstall.signatures.required to false to run it unsigned.
Modifying Web Pages Based on URL - Archive of obsolete content
var pagemod = require("sdk/page-mod").pagemod({ include: "*", contentstylefile: require("sdk/self").data.url("my-style.css") }); or, from firefox 34, you can use the simpler version: var pagemod = require("sdk/page-mod").pagemod({ include: "*", contentstylefile: "./my-style.css" }); learning more to learn more
about page-mod, see its api reference page.
... to learn more
about content scripts in general, see content scripts guide.
Open a Web Page - Archive of obsolete content
this add-on loads a page, then attaches a script to the page which adds a red border to it: var tabs = require("sdk/tabs"); tabs.open({ url: "http://www.example.com", onready: runscript }); function runscript(tab) { tab.attach({ contentscript: "document.body.style.border = '5px solid red';" }); } learning more to learn more
about working with tabs in the sdk, see the tabs api reference.
... to learn more
about running scripts in tabs, see the tutorial on using tab.attach().
Add-on SDK - Archive of obsolete content
development techniques learn
about common development techniques, such as unit testing, logging, creating reusable modules, localization, and mobile development.
... guides contributor's guide learn how to start contributing to the sdk and
about the most important idioms used in the sdk code such as modules, classes and inheritance, private properties, and content processes.
Downloading Files - Archive of obsolete content
swordrealm, savepassword, pwd) { pwd.value = hardcodedpassword; return true; }, promptusernameandpassword: function(dialogtitle, text, passwordrealm, savepassword, user, pwd) { user.value = hardcodedusername; pwd.value = hardcodedpassword; return true; } }; persist.saveuri(urltosave, null, null, null, "", nsfileinstance, privacy); the above is going to give you errors
about missing nsidownloadprogresslistener methods, so you should implement that as well.
... for example, with empty dummy methods if you are not interested
about the progress.
HTML to DOM - Archive of obsolete content
; frame.webnavigation.allowjavascript = false; frame.webnavigation.allowmetaredirects = true; frame.webnavigation.allowplugins = false; frame.webnavigation.allowsubframes = false; // listen for load frame.addeventlistener("load", function (event) { // the document of the html in the dom var doc = event.originaltarget; // skip blank page or frame if (doc.location.href == "
about:blank" || doc.defaultview.frameelement) return; // do something with the dom of doc alert(doc.location.href); // when done remove frame or set location "
about:blank" settimeout(function (){ var frame = document.getelementbyid("sample-frame"); // remove frame // frame.destroy(); // if using browser element instead of iframe frame.parentnode.removechild...
...(frame); // or set location "
about:blank" // frame.contentdocument.location.href = "
about:blank"; },10); }, true); } // load a page frame.contentdocument.location.href = "http://www.mozilla.org/"; // or // frame.webnavigation.loaduri("http://www.mozilla.org/",components.interfaces.nsiwebnavigation,null,null,null); if you are starting with an html string, you can convert it to a data uri and use that to load in the browser element.
JavaScript Daemons Management - Archive of obsolete content
about the “callback arguments” polyfill in order to make this framework compatible with internet explorer (which doesn't support sending additional parameters to timers' callback function, neither with settimeout() or setinterval()) we included the ie-specific compatibility code (commented code), which enables the html5 standard parameters' passage functionality in that browser for both timers (po...
... mydaemon.forceposition(index) sets the internal index property equal to the index argument without any kind of control
about the range.
Displaying web content in an extension without security issues - Archive of obsolete content
this means for example that javascript code top.location.href = "
about:blank" will only unload the content document but won’t have any effect on the chrome.
...it won’t harm disabling everything else as well unless it is really required: frame.docshell.allowauth = false; frame.docshell.allowimages = false; frame.docshell.allowjavascript = false; frame.docshell.allowmetaredirects = false; frame.docshell.allowplugins = false; frame.docshell.allowsubframes = false; but what
about interactivity, for example if you want a certain reaction to mouse clicks?
Extension Packaging - Archive of obsolete content
every extension must provide an install.rdf file, which contains metadata
about the extension, such as its unique id, version, author, and compatibility information.
... official references for toolkit api structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration printing in xul apps ...
Migrating from Internal Linkage to Frozen Linkage - Archive of obsolete content
for errors
about undeclared do_createinstance: #include "nscomponentmanagerutils.h" for errors
about undeclared do_getservice: #include "nsservicemanagerutils.h" for errors
about undeclared ns_getspecialdirectory: #include "nsdirectoryserviceutils.h" utility classes some utility classes could previously be created with ns_new* utility functions.
...nichar str[] = {'f','o','o','\0'}; - pruint32 len = nscrt::strlen(str); + pruint32 len = ns_strlen(str); - #include "nscrt.h" + #include "nsmemory.h" + #include "nscrtglue.h" prunichar* anotherstr = (prunichar*) ns_alloc(100 * sizeof(prunichar)); - prunichar *str = nscrt::strdup(anotherstr); - nscrt::free(str); + prunichar *str = ns_strdup(anotherstr); + ns_free(str); linking for information
about the correct libraries to link to when using frozen linkage, see xpcom glue.
Chapter 2: Technologies used in developing extensions - Archive of obsolete content
figure 1: role of each technology in firefox in addition to these technologies, extension development will require you to learn
about how to confer privileges to overcome security restrictions on code that you write, and how to embed your code into the firefox ui.
...to learn more
about the dom, please take a look at the mdc documentation.
Adding menus and submenus - Archive of obsolete content
instead of setting the menupopup directly in the xul, you can use the onpopupshowing event to fill the children when the popup is
about to be displayed.
...here's a list of the known issues we've run into when handling menus on mac: the
about, preferences and quit menu items are located under the "firefox" menu, not the usual places you would find them.
Connecting to Remote Content - Archive of obsolete content
you would of course need to be very careful
about escaping characters and protecting yourself against sql injection attacks.
...you can discover some interesting things
about firefox like this, such as the automatic update urls for extensions, and the behavior of web applications such as gmail.
Security best practices in extensions - Archive of obsolete content
many of the items talked
about so far in this document apply in this sphere, but here are some additional tips: api providers should use the https protocol, which provides better protection for data passed over the network.
...this article is
about websites, but gives some insights into the general risks.
Updating addons broken by private browsing changes - Archive of obsolete content
idls nsitransferable: see using the clipboard for information
about the new init method.
...the supporting per-window private browsing article explains further
about the equivalent notifications, which are all backwards compatible through to firefox 12 (and are sent side-by-side with the global private browsing notifications in older versions).
Index of archived content - Archive of obsolete content
windows xml-related code snippets xml:base support in old browsers xpath getattributens common pitfalls communication between html and your extension creating custom firefox extensions with the mozilla build system custom
about: urls default preferences deploying a plugin as an extension developing add-ons displaying web content in an extension without security issues downloading json and javascript in extensions enhanced extension installation extension etiquette extension library extension packaging extension samples ...
...events in firefox extensions migrating from internal linkage to frozen linkage migrating raw components to add-ons multiple item extension packaging offering a context menu for form controls overlay extensions firefox addons developer guide appendix: what you should know
about open-source software licenses chapter 1: introduction to extensions chapter 2: technologies used in developing extensions chapter 3: introduction to xul—how to build a more intuitive ui chapter 4: using xpcom—implementing advanced processes chapter 5: let's build a firefox extension chapter 6: firefox extensio...
Defining Cross-Browser Tooltips - Archive of obsolete content
on the other hand, the html 4.01 definition of the title attribute states: title = text cs this attribute offers advisory information
about the element for which it is set.
... unlike the title element, which provides information
about an entire document and may only appear once, the title attribute may annotate any number of elements.
Installing plugins to Gecko embedding browsers on Windows - Archive of obsolete content
you now have information
about the plugins directory for gecko embedding browsers.
...hkey_local_machine\software\mozilla\netscape 6 6.1\bin\ access the pathtoexe value and value-data pair, e.g: pathtoexe=c:\program files\netscape\netscape 6\netscp6.exe you now have information
about the location of the exe on windows for gecko embedding browsers.
Notes on HTML Reflow - Archive of obsolete content
when reflow begins, the root reflow state is initialized with information
about the top-level container for the document's presentation; e.g., the width and height of the application window.
...a frame requests a incremental reflow (or one is requested on a frame's behalf) when something
about the frame itself has changed.
Using content preferences - Archive of obsolete content
var value = prefservice.getpref(uri, "devmo.somesetting"); built-in site-specific preferences preference name menu equivalent values notes browser.content.full-zoom view / zoom example: "1.10000002384186" (rounding variant of "1.1") related
about:config preferences: browser.zoom.full boolean, set by the menu item view / zoom / zoom text only.
... browser.zoom.sitespecific toolkit.zoommanager.zoomvalues zoom.maxpercent and zoom.minpercent browser.download.lastdir path of a filesystem directory related
about:config preferences: browser.download.lastdir the last directory for any site use downloadlastdir.jsm for access to these preferences.
Making it into a dynamic overlay and packaging it up for distribution - Archive of obsolete content
ss.png"); } statusbarpanel#tinderbox-status[status="testfailed"] { list-style-image: url("chrome://tinderstatus/content/tb-testfailed.png"); } statusbarpanel#tinderbox-status[status="busted"] { list-style-image: url("chrome://tinderstatus/content/tb-busted.png"); } then we need to create two files in the directory, one called contents.rdf which contains information for the chrome registry
about the component being installed and one called install.js that contains the code to install the component.
... contents.rdf goes in the content sub-subdirectory: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <rdf:seq
about="urn:mozilla:package:root"> <rdf:li resource="urn:mozilla:package:tinderstatus"/> </rdf:seq> <rdf:description
about="urn:mozilla:package:tinderstatus" chrome:displayname="mozilla tinderstatus extension" chrome:author="myk melez" chrome:name="tinderstatus" chrome:extension="true" chrome:description="displays tinderbox status for the mozilla codebase."> </rdf:description> <rdf:seq
about="urn:mozilla:overlays"> <rdf:li resource="chrome://navigator/content/navigator.xul"/> </rdf:seq> <rdf:seq
about="chrome://navigator/content/navigator.xul"> <rdf:...
Getting Started - Archive of obsolete content
<description
about="urn:mozilla:install-manifest"> <em:id>{themes_uuid}</em:id> <em:version>themes_version</em:version> the first section requires that you establish a uuid for your theme and that you give your theme a version number.
...see install manifests for the reference information
about the install.rdf file.
install.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "install.rdf": <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>author@oftheme.com</em:id> <em:version>2.0b1</em:version> <!-- seamonkey --> <em:targetapplication> <description> <em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id> <em:minversion>2.0b1pre</em:minversion> <em:maxversion>2.0b2pre</em:maxversion> </description> </em:targetapplication> <!-- front end metadata --> <em:name>my_theme</em:name> <em:description>my first theme</em:description> <!-- front end integration hooks (used by th...
...eme manager)--> <em:creator>john johnson</em:creator> <em:contributor>john johnson</em:contributor> <em:homepageurl>https://mycoolskin.com/</em:homepageurl> <em:updateurl>https://mycoolskin.com/</em:updateurl> <em:
abouturl>https://mycoolskin.com/</em:
abouturl> <em:internalname>my_theme</em:internalname> </description> </rdf> ...
contents.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "contents.rdf": <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <!-- list all the skins being supplied by this theme --> <rdf:seq
about="urn:mozilla:skin:root"> <rdf:li resource="urn:mozilla:skin:myskin/1.0" /> </rdf:seq> <rdf:description
about="urn:mozilla:skin:myskin/1.0" chrome:displayname="my skin" chrome:accesskey="m" chrome:author="me" chrome:description="this is my custom skin for mozilla" chrome:name="myskin/1.0" chrome:image="preview.png"> <chrome:packages> <rdf:seq
about="urn:mozilla:skin:myskin/1.0:packages"> <rdf:li resource="u...
...--> <rdf:description chrome:skinversion="1.0"
about="urn:mozilla:skin:myskin/1.0:communicator"/> <rdf:description chrome:skinversion="1.0"
about="urn:mozilla:skin:myskin/1.0:editor"/> <rdf:description chrome:skinversion="1.0"
about="urn:mozilla:skin:myskin/1.0:global"/> <rdf:description chrome:skinversion="1.0"
about="urn:mozilla:skin:myskin/1.0:messenger"/> <rdf:description chrome:skinversion="1.0"
about="urn:mozilla:skin:myskin/1.0:navig...
Download Manager improvements in Firefox 3 - Archive of obsolete content
download manager interfaces nsidownloadmanager gives applications and extensions access to the download manager, allowing them to add and remove files to the download list, retrieve information
about past and present downloads, and request notifications as to the progress of downloads.
... the download manager schema this article describes the database format used to store and track information
about each download.
Downloading Nightly or Trunk Builds - Archive of obsolete content
the same machines produce
about every 24 hours a "nightly" build which can be downloaded by anyone if you know where to get it: these are the nightly builds, and testers all over the world download them and test them, reporting as they go along on any bugs that hit them.
...if one has questions
about the way a particular nightly was built, the best way to get that information is to download the executable, launch it, and then go to the "
about:buildconfig" page, by typing this into the location bar.
Code snippets - Archive of obsolete content
to access a chrome-privileged console, open an
about page (like
about:
about) then open a web console via the web developer menu.
...+ 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.
Makefile.mozextension.2 - Archive of obsolete content
u {136c295a-4a5a-41cf-bf24-5cee526720d5} #mozilla suite {86c18b42-e466-45a9-ae7a-9b95ba6f5640} #seamonkey {92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a} #sunbird {718e30fb-e89b-41dd-9da7-e25a45638b28} #netscape browser {3db10fab-e461-4c80-8b97-957ad5f8ea47} ###### define install_rdf <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"> <id>$(project_id)</id> <name>$(project_name)</name> <version>$(project_version)</version> <description>$(project_desc)</description> <creator>$(project_author)</creator> <contributor>here is a place for you who helped me</contributor> <homepageurl>http://$(project).mozdev.org/</homepageurl> <optionsurl>chrome://$(project)/content/settings.xul</optionsurl> <
about...
...url>chrome://$(project)/content/
about.xul</
abouturl> <iconurl>chrome://$(project)/skin/mainicon.png</iconurl> <updateurl>http://$(project).mozdev.org/update.rdf</updateurl> <type>2</type> <targetapplication> <description> <id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</id> <minversion>2.0</minversion> <maxversion>9.0</maxversion> </description> </targetapplication> </description> </rdf> endef export install_rdf install.rdf: @echo generating $(project)/install.rdf @echo "$$install_rdf" > $(project)/install.rdf ###### define overlay_xul <overlay id="$(project)-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"><script src="overlay.js"/></overlay> ...
Message Summary Database - Archive of obsolete content
the mail summary files (.msf) are used to store summary information
about messages and threads in a folder, and some meta information
about the folder.
...mdb is a schema-less db interface, so it's trivial to add new attributes without regenerating the db, and it's trivial for older code to read newer databases, because the code can ignore but maintain the attributes it doesn't know
about.
Metro browser chrome tests - Archive of obsolete content
a simple test looks like this: gtests.push({ desc: "test loading
about:blank", setup: function () { }, teardown: function () { }, run: function () { yield addtab("
about:blank"); is(tab.browser.currenturi.spec, "
about:blank", "
about:blank is loaded"); } }); function test() { runtests(); } gtests contains individual tests that make up the library of tests your test file will contain.
...be careful
about changing existing helpers as changes may impact tests in other libraries.
New Skin Notes - Archive of obsolete content
--dria how
about modifying style for the side-bar to have a :hover class added which modifies (to a slightly lighter shade) the background color of the link, this will help to make items "appear as links" to many users, possibly add a text-decoration: underline as well.
...also see
about improving accessibility of default skin.
RDF Datasource How-To - Archive of obsolete content
the "rdf universe" consists of a set of statements
about internet resources; for example, "my home page was last modified april 2nd", or "that news article was sent by bob".
...this can be useful if your datasource is "read-only", and you aren't worried
about modification using assert(), etc.
The life of an HTML HTTP request - Archive of obsolete content
nsicontent::appendchild() is used to build the content tree but appendchild takes a "anotify" argument that marks if it should notify the document
about the content model changes or not.
...the content sink tells the document
about content model changes (notifybody()) in places like nshtmlcontentsink::willinterrupt() and nshtmlcontentsink::didbuildmodel().
URIScheme - Archive of obsolete content
and the size number by 1 to 127 mailto:emailaddress@domain.com
about: chrome:// ...
...
about:
about:
about:config
about:crashes
about:mozilla
about:plugins
about:robots ...
Venkman Internals - Archive of obsolete content
if the file is not currently loaded, the js engine doesn't know anything
about the file.
... scriptwrapper newsgroup, 2002, rgrinda here is a bit more information
about how venkman tracks files and functions...
Using Breakpoints in Venkman - Archive of obsolete content
using breakpoints to debug when you set a breakpoint, you give venkman (or whatever debugger you're using) the opportunity to display information
about the execution environment.
... for more information
about the sorts of actions you can take in venkman when you're at a breakpoint, see the debugging basics section of the introductory venkman article.
Video presentations - Archive of obsolete content
the mozilla community (part 1, part 2) this presentation talks
about the mozilla community and how you can get involved smoothly.
... (as quicktime; 170 mb and 80 mb) mozilla-seneca projects q&a with mike shaver (part 1, part 2) mike shaver answers questions
about the mozilla project.
addDirectory - Archive of obsolete content
a relative pathname is appended to the registry name of the package as specified by the package parameter to the initinstall method.this parameter can also be null, in which case the xpisourcepath parameter is used as a relative pathname.note that the registry pathname is not the location of the software on the computer; it is the location of information
about the software inside the client version registry.
...also see the note
about binaries on the macintosh platform in addfile.
addFile - Archive of obsolete content
ublic int addfile ( string registryname, string xpisourcepath, object localdirspec, string relativelocalpath); public int addfile ( string registryname, string version, string xpisourcepath, object localdirspec, string relativelocalpath); parameters the addfile method has the following parameters: registryname the pathname in the client version registry
about the file.
...this parameter can also be null, in which case the xpisourcepath parameter is used as a relative pathname.note that the registry pathname is not the location of the software on the machine; it is the location of information
about the software inside the client version registry.
Dynamically modifying XUL-based user interface - Archive of obsolete content
you may also want to read some introductory documents
about dom, like the
about the document object model article or the introduction page of the gecko dom reference.
...(read more
about this in working with windows in chrome code.) when your script is included using a <script> tag, the document property references the dom document that includes the script.
XUL Events - Archive of obsolete content
event is executed when a <menu> or a <menuitem> has been hovered or highlighted.dommenuiteminactivethe dommenuiteminactive event is executed when a <menu> or a <menuitem> in no longer hovered or highlighted.popuphiddenthe popuphidden event is executed when a <menupopup>, <panel> or <tooltip> has become hidden.popuphidingthe popuphiding event is executed when a <menupopup>, <panel> or <tooltip> is
about to be hidden.popupshowingthe popupshowing event is executed when a <menupopup>, <panel> or <tooltip> is
about to become visible.
... attribute: onpopuphidden popuphiding this event is sent to a popup when it is
about to be hidden.
Introduction to XUL - Archive of obsolete content
but proper ui descriptions which take into account various platforms' differing ideas
about proper placement of such things as dialog buttons will require some platform-specific work.
...our current code tends not to be strict
about enforcing this, especially for tags and attributes in the html namespace.
Tooltips - Archive of obsolete content
tooltips a tooltip is used to provide descriptive help to the user
about the control that the mouse is over.
...this is a useful means of providing additional details
about a user interface without cluttering up the main interface.
Printing from a XUL App - Archive of obsolete content
this document will talk
about printutils, and the ways that xul applications can trigger print-related behaviors.
... structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration printing in xul apps ...
Additional Navigation - Archive of obsolete content
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:r="http://www.xulplanet.com/rdf/"> <rdf:seq rdf:
about="http://www.xulplanet.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.jpg" dc:title="obelisk"> <r:country resource="http://www.daml.org/2001/09/countries/iso#it"/> </rdf:description> <rdf:description
about="http://www.daml.org/2001/09/countries/iso#it" dc:title="italy"/> <rdf:description
about="http://www.daml.org/2001/09/countries/iso#nl" dc:title="netherlands"/> </rdf:rdf>...
Simple Example - Archive of obsolete content
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> <rdf:seq rdf:
about="http://www.xulplanet.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.
Sorting Results - Archive of obsolete content
here is a sample of how to specify this in the rdf/xml datasource: <rdf:rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:r="http://www.xulplanet.com/rdf/" xmlns:nc="http://home.netscape.com/nc-rdf#"> <rdf:description rdf:
about="http://www.xulplanet.com/ndeakin/images/t/palace.jpg"> <r:date nc:parsetype="date">1125966767295<r:date> </rdf:description> </rdf:rdf> you can also specify parsetype="integer" for numbers which will allow sorting numerically.
...for instance: <treecol id="name" label="name" sort="rdf:http://purl.org/dc/elements/1.1/title" flex="1"/> note that all of this discussion
about sorting only applies to tree builders.
Using Multiple Queries to Generate More Results - Archive of obsolete content
if we add the following data
about people to the neighbourhood datasource: <rdf:description rdf:
about="http://www.xulplanet.com/rdf/myneighbourhood"> <r:people> <rdf:seq> <rdf:li rdf:resource="http://www.xulplanet.com/rdf/person/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.co...
...m/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.
Toolbars - Archive of obsolete content
the following articles provide details
about implementing and working with toolbars.
... mailing list newsgroup rss feed #extdev irc channel mozillazine forum
about:addons newsletter mozilla's web-tech blog mozdev project owners planet mozilla other community links...
Tree Widget Changes - Archive of obsolete content
this object implements the nsitreecolumn interface and holds information
about a single column in the tree.
...from there you can get specific columns, the current sort column, and position and size info
about the columns.
Commands - Archive of obsolete content
however, a command has the advantage that it can be disabled when needed and can be invoked without needing to know
about the details of its implementation.
...(see discussion
about opening this example).
More Event Handlers - Archive of obsolete content
if a capturing event stops the event propagation, none of the later capturing listeners, nor any of the bubbling listeners will ever receive notification
about the events.
...we'll learn more
about the box object in a later section, but it holds information pertaining to how the element is displayed, including the x and y position of the element.
Skinning XUL Files by Hand - Archive of obsolete content
this needs rewording: , which, like the windows registry, is a database in which information
about a user's software and environment can be recorded and accessed as necessary.
...xul represents, as one evangelist put it, the "democratization" of interface design and ofapplications development,
about which we will have more to say in a later article.
Updating Commands - Archive of obsolete content
you will need to think
about when a command is valid and when it is not.
...note that the command updater will receive notifications
about all focus events on all elements, even if other event handlers respond to the event.
Using Remote XUL - Archive of obsolete content
in our case, the iframe will be the only flexible element in our document, so we don't have to worry
about its value and give it a standard value of 1.
... [optionally add something
about how flex only applies to one axis] note that for remote xul documents you can see changes you make to the ui by reloading the document with your browser's "reload" function, just as with a typical html page.
Using nsIXULAppInfo - Archive of obsolete content
note: nsixulappinfo provides information
about the application and the platform, be careful to use the right one, especially when dealing with xulrunner-based applications.
... platform version nsixulappinfo provides version information
about both the xul application (such as firefox) and the platform (i.e.
XUL Event Propagation - Archive of obsolete content
events are used for different purposes, but they play a particularly important role in creating interactive xul-based user interfaces, since it is events that bring the information
about user actions to the code behind the interface.
...any element that is interested in the event -- any part of the interface, in other words, that needs to know
about and respond to the user's click action on the button -- "handles" the event with an event handler, or chunk of code to be executed when the given event is "heard".
menupopup - Archive of obsolete content
item 1"/> <menuitem label="submenu1 item 2"/> </menupopup> </menu> <menu id="submenu2" label="submenu 1"> <menupopup id="submenu2-popup"> <menuitem label="submenu2 item 1"/> <menuitem label="submenu2 item 2"/> </menupopup> </menu> <menupopup/> onpopuphiding type: script code this event is sent to a popup when it is
about to be hidden.
... hiding: the popup is
about to be hidden.
panel - Archive of obsolete content
item 1"/> <menuitem label="submenu1 item 2"/> </menupopup> </menu> <menu id="submenu2" label="submenu 1"> <menupopup id="submenu2-popup"> <menuitem label="submenu2 item 1"/> <menuitem label="submenu2 item 2"/> </menupopup> </menu> <menupopup/> onpopuphiding type: script code this event is sent to a popup when it is
about to be hidden.
... hiding: the popup is
about to be hidden.
tooltip - Archive of obsolete content
item 1"/> <menuitem label="submenu1 item 2"/> </menupopup> </menu> <menu id="submenu2" label="submenu 1"> <menupopup id="submenu2-popup"> <menuitem label="submenu2 item 1"/> <menuitem label="submenu2 item 2"/> </menupopup> </menu> <menupopup/> onpopuphiding type: script code this event is sent to a popup when it is
about to be hidden.
... hiding: the popup is
about to be hidden.
Deploying XULRunner - Archive of obsolete content
other executables and libraries the core changes to xul and gecko that require this new file layout were implemented in gecko 34, except that the xulrunner application was not updated to know
about the change, so it will report an error: "unable to load xpcom." xulrunner was fixed in gecko 39.
... see this blog post for additional background
about this change.
XULRunner tips - Archive of obsolete content
window url window type extension manager chrome://mozapps/content/extensions/extensions.xul?type=extensions extension:manager-extensions theme manager chrome://mozapps/content/extensions/extensions.xul?type=themes extension:manager-themes javascript console chrome://global/content/console.xul global:console
about:config chrome://global/content/config.xul developer extensions venkman need a custom build or a compatible extension need to edit compatibility in needs a method to start venkman (usually by overlaying the main xul file, similar to existing code for firefox, suite, etc.) the function toopenwindowbytype() needs to be defined.
...in addition, a branding content package must be registered to include the application logos: content branding chrome/branding/ 3 files should be provided in this folder:
about.png, icon48.png and icon64.png.
2006-11-17 - Archive of obsolete content
firefox 2.0 javascript popup issue user seeks advice
about a line of javascript code that worked in firefox 1.5.0.x, but not in firefox 2.0 balloon help user inquires if anyone can explain how to disable the balloon help in firefox 2.0.
... two questions: (1) launching a separate intance of firefox.exe, and (2) programmatically closing a window user has two questions
about using adobe flex builder debugger in firefox 2.0.
2006-10-27 - Archive of obsolete content
discussions effect of eudora/thunderbird re-write joes is voicing a concern
about the recent announcement regarding the eudora/thunderbird rewrite: "is thunderbird destined to become a hybrid of the existing code and eudora?".
... calling tb with a specific message to be displayed there's a new question by guenter
about calling tb from an external program (eg.
2006-10-20 - Archive of obsolete content
summary: mozilla.dev.builds - october 14th to october 20th 2006 linux reference platform 1.8.1 october 18th: marcus is wondering
about the linux platform that is currently used to compile both public releases of firefox and xulrunner.
...paul reed's post: robert kaiser shared the following information
about comet and btek machines: comet and btek are used as machines that upload nightly gtk1 builds.
Extentsions FAQ - Archive of obsolete content
there's a bug in bugzilla
about stacking other widgets on top of browser/iframe, which hopefully will be fixed for gecko 1.9.
... asking
about the feasibility of making an extension that has the same functionality as “trace route”.
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.
...there's a question
about the roles of peer in the team meetings none for this week.
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 crossposted a notice
about unit testing for the mozilla toolkit, letting developers know
about the importance of testing for the improvement of mozilla 2, and asks for complete coverage.
2006-10-20 - Archive of obsolete content
discussion
about the missing ability to list and search all the events in a calendar in lightning 0.3.
... location of files discussion
about where are the calendar files stored and can they be moved.
contents.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "contents.rdf": <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <!-- list all the skins being supplied by this theme --> <rdf:seq
about="urn:mozilla:skin:root"> <rdf:li resource="urn:mozilla:skin:my_theme"/> </rdf:seq> <rdf:description
about="urn:mozilla:skin:my_theme" chrome:displayname="my theme" chrome:accesskey="n" chrome:author="" chrome:authorurl="" chrome:description="" chrome:name="my_theme" chrome:image="preview.png"> <chrome:packages> <rdf:seq
about="urn:mozilla:skin:my_theme:packages"> <rdf:li resource="urn:mozilla:skin:my_th...
...--> <rdf:description chrome:skinversion="1.5"
about="urn:mozilla:skin:my_theme:browser"/> <rdf:description chrome:skinversion="1.5"
about="urn:mozilla:skin:my_theme:communicator"/> <rdf:description chrome:skinversion="1.5"
about="urn:mozilla:skin:my_theme:global"/> <rdf:description chrome:skinversion="1.5"
about="urn:mozilla:skin:my_theme:mozapps"/> <rdf:description chrome:skinversion="1.5"
about="urn:mozilla:skin:my_theme:help"/> </rdf:rd...
install.rdf - Archive of obsolete content
copy the following text and paste it into a text file, then save that file as "install.rdf": <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>{themes_uuid}</em:id> <em:version>themes_version</em:version> <!-- target application this extension can install into, with minimum and maximum supported versions.
...f_version</em:maxversion> </description> </em:targetapplication> <!-- front end metadata --> <!-- my_theme --> <em:name>my_theme</em:name> <em:description>my_theme</em:description> <em:creator>your_name</em:creator> <em:contributor>contributors_names</em:contributor> <em:homepageurl>themes_homepage</em:homepageurl> <em:updateurl> url_of_update_location </em:updateurl> <em:
abouturl> url_of_
about_page </em:
abouturl> <!-- front end integration hooks (used by theme manager)--> <em:internalname>my_theme</em:internalname> </description> </rdf> ...
Developing cross-browser and cross-platform pages - Archive of obsolete content
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.
...with this approach, you ensure that all browsers -- including future releases and browsers whose useragent strings you do not know
about -- will continue working with your code.
Using workers in extensions - Archive of obsolete content
if there is no data field, the refreshinformation() method is called to fetch the latest information
about the stock and pass it back to the main thread.
... a note
about chromeworkers requires gecko 2.0(firefox 4 / thunderbird 3.3 / seamonkey 2.1) gecko 2.0 added the new chromeworker object, which provides a special chrome-only worker that can be used by applications and extensions.
New in JavaScript - Archive of obsolete content
this chapter contains information
about javascript's version history and implementation status for mozilla/spidermonkey-based javascript applications, such as firefox.
... ecmascript versions language resources learn more
about the ecmascript standards on which the javascript language is based on.
Back to the Server: Server-Side JavaScript On The Rise - Archive of obsolete content
} // define the namespaces, first the default, // then additional namespaces default xml namespace = "http://purl.org/rss/1.0/"; var dc = new namespace( "http://purl.org/dc/elements/1.1/" ); var rdf = new namespace( "http://www.w3.org/1999/02/22-rdf-syntax-ns#" ); // use e4x to process the feed var x = new xml( str ); for each( var i in x..item ) { print( "title: " + i.title + "\n" ); print( "
about: " + i.@rdf::
about + "\n" ); print( "link: " + i.link + "\n" ); print( "date: " + i.dc::date + "\n" ); } the first half of this script is standard java code used to retrieve the feed data.
...notice during the processing of the item element where we use the rdf and dc namespace to access the
about attribute of the item element, and the date element respectively.
background-size - Archive of obsolete content
it's hard to get reliable information
about its css support without having this browser (read: multiple versions of this browser) installed.
... i tried locating the part of the spec
about <body>'s background extending to <html> but it didn't seem to be explicitly mentioned in the cascading and inheritance section and both the background-image and border-image say 'inherited: no'.
XForms Custom Controls - Archive of obsolete content
please keep in mind that just
about everything we mention here may change to some degree as we continue to work on it.
...to give you an idea of what we are talking
about, it could look something like this: <content> <xf:input xbl:inherits="ref=ref1" anonid="ref1"/> <xf:input xbl:inherits="ref=ref2" anonid="ref2"/> </content> <implementation> <method name="refresh"> <body> // here we should refresh custom control.
RDF in Mozilla FAQ - Archive of obsolete content
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.
...in fact, you can change anything
about a template using the w3c dom apis.
The Business Benefits of Web Standards - Archive of obsolete content
instead of worrying
about each engine and attempting to artificially manipulate the results, web standards pages index and rank properly (where they deserve to) across all search engines.
... assumptions
about the user and their platform based on erroneous thinking
about the anticipated user community are inevitably always wrong.
Publishing games - Game development
game distribution provides all you need to know
about the ways you can distribute your newly created game into the wild — including hosting it yourself online, submitting it to open marketplaces, and submitting it to closed ones like google play or the ios app store.
...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 Babylon.js - Game development
creating a camera now the setup code is in place we need to think
about implementing the standard scene components: camera, light and objects.
...the good thing
about objects is that we can move them on the scene however we want, for example rotating and scaling.
Building up a basic demo with the PlayCanvas engine - Game development
app.setcanvasfillmode(pc.fillmode_fill_window); app.setcanvasresolution(pc.resolution_auto); camera now when the setup code is in place we need to think
about implementing the standard scene components: camera, lights and objects.
...let's move the cube 2 units to the left to make space for some friends — add the following line just below the previous code: box.translate(-2, 0, 0); now let's add a new shape — how
about a cylinder?
GLSL Shaders - Game development
the calculations result in a variable containing the information
about the rgba color.
... note: you can learn more
about model, view, and projection transformations from the vertex processing paragraph, and you can also check out the links at the end of this article to learn more
about it.
WebVR — Virtual Reality for the Web - Game development
get the devices to get information
about devices connected to your computer, you can use the navigator.getvrdevices method: navigator.getvrdevices().then(function(devices) { for (var i = 0; i < devices.length; ++i) { if (devices[i] instanceof hmdvrdevice) { ghmd = devices[i]; break; } } if (ghmd) { for (var i = 0; i < devices.length; ++i) { if (devices[i] instanceof positionsensorvrdevice && ...
... boris smus has written
about the concept of responsive webvr, where a single web game can be played on various devices like laptops without vr hardware, pcs with oculus rift, or smartphones inside google cardboard and still deliver a unique and valuable experience across all of them.
Mobile touch controls - Game development
the good thing
about using phaser is that it offers helper variables and functions for easier and faster development, but it's entirely up to you which approach you to choose.
...the pointer variable will contain the information
about the pointer that activated the event.
Bounce off the walls - Game development
the code above would deal with the ball bouncing off the top edge, so now let's think
about the bottom edge: if(y + dy > canvas.height) { dy = -dy; } if the ball's y position is greater than the height of the canvas (remember that we count the y values from the top left, so the top edge starts at 0 and the bottom edge is at 320 pixels, the canvas' height), then bounce it off the bottom edge by reversing the y axis movement as before.
... bouncing off the left and right we have the top and bottom edge covered, so let's think
about the left and right ones.
Paddle and keyboard controls - Game development
from that you can get useful information: the key holds the information
about the key that was pressed.
... the paddle moving logic we've now set up the variables for storing the info
about the pressed keys, event listeners, and relevant functions.
Visual-js game engine - Game development
014 tappali ekanathan keestu (keestu@gmail.com) gnu general public license obj loader : https://github.com/frenchtoast747/webgl-obj-loader textures download from http://textures.com more texture downloads http://www.textures4photoshop.com/ female body v3.blend this file has been released by andrescuccaro under the following license: creative commons attribution 3.0
about gui for windows (canvas2d part only) : windows gui application version 1.0 (using visual-js 0.9 lib) important : you will need net 4.5.2 minimum also redistribution pack for c++ how to start project ?
... online demo examples at : https://jsfiddle.net/user/zlatnaspirala/fiddles/ demo slot mashine basic demo at : https://jsfiddle.net/zlatnaspirala/7d0d8v6d/ help
about new 2d part - implementation of matter.js based typescript .
CSS pixel - MDN Web Docs Glossary: Definitions of Web-related terms
as such, it generally suffices to say that when the unit px is used, the goal is to try to have the distance 96px equal
about 1 inch on the screen, regardless of the actual pixel density of the screen.
... learn more technical reference css values and units module, section 5.2: absolute lengths learn
about it css length explained on the mdn hacks blog ...
Client hints - MDN Web Docs Glossary: Definitions of Web-related terms
basically, with the client hints header, the developer or application can tell the browser to advertise information
about itself to the server, such as the device pixel ratio, the viewport width, and the display width.
... the client can then give the server information
about the client's environment, and the server can determine which resources to send based on that information.
REST - MDN Web Docs Glossary: Definitions of Web-related terms
rest(representational state transfer) refers to a group of software architecture design constraints that bring
about efficient, reliable and scalable distributed systems.
... learn
about it restapitutorial.com restcookbook.com general knowledge rest on wikipedia rest architecture ...
Signature (functions) - MDN Web Docs Glossary: Definitions of Web-related terms
a signature can include: parameters and their types a return value and type exceptions that might be thrown or passed back information
about the availability of the method in an object-oriented program (such as the keywords public, static, or prototype).
...a signature in javascript can still give you some information
about the method: myobject.prototype.myfunction(value) the method is installed on an object called myobject.
Advanced styling effects - Learn web development
prerequisites: html basics (study introduction to html) and an idea of how css works (study css first steps.) objective: to get an idea
about how to use some of the advanced styling effects available in modern browsers.
... the really nice thing
about filters however, is that they work on the exact shapes of the content inside the box, not just the box itself as one big chunk, so it is worth knowing the difference.
Fundamental CSS comprehension - Learn web development
this could affect the values you need, although in this simple example this is not an issue.) other things to think
about: you'll get bonus marks if you write your css for maximum readability, with a separate declaration on each line.
... when trying to work out the em value you need to represent a certain pixel length, think
about what base font size the root (<html>) element has, and what it needs to be multiplied by to get the desired value.
Attribute selectors - Learn web development
previous overview: building blocks next as you know from your study of html, elements can have attributes that give further detail
about the element being marked up.
... next steps now we are done with attribute selectors, you can continue on to the next article and read
about pseudo-class and pseudo-element selectors.
Type, class, and ID selectors - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the different css selectors we can use to apply css to a document.
...for example, if i wanted to select the first child of any descendant element of <article> , no matter what element it was, and make it bold, i could use the :first-child selector, which we will learn more
about in the lesson on pseudo-classes and pseudo-elements, as a descendant selector along with the <article> element selector: article :first-child { } this could be confused however with article:first-child, which will select any <article> element that is the first child of another element.
Styling tables - Learn web development
well, i say typical — most html table examples are
about shoes, or the weather, or employees; we decided to make things more interesting by making it
about famous punk bands from the uk.
... first of all, we've found a font on google fonts that is suitable for a table
about punk bands.
Flexbox - Learn web development
you can always refer back to it if you get confused
about any of the terms being used.
...let's talk
about how this works in a bit more detail: by default, all flex items have an order value of 0.
Floats - Learn web development
cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p> body { width: 90%; max-width: 900px; margin: 0 auto; font: .9em/1.2 arial, helvetica, sans-serif } .box { float: left; margin-right: 15px; width: 150px; height: 150px; border-radius: 5px; background-color: rgb(207,232,220); padding: 1em; } so let's think
about how the float works — the element with the float set on it (the <div> element in this case) is taken out of the normal layout flow of the document and stuck to the left-hand side of its parent container (<body>, in this case).
... summary you now know all there is to know
about floats in modern web development.
Grids - Learn web development
a fairly basic fact
about the web is that you never really know how tall something is going to be; additional content or larger font sizes can cause problems with designs that attempt to be pixel perfect in every dimension.
... as many columns as will fit we can combine some of the things we have learned
about track listing, repeat notation and minmax() to create a useful pattern.
Legacy layout methods - Learn web development
if you read our previous article
about flexbox, you might think that flexbox is the ideal solution for creating a grid system.
... they also don’t respect the grid used by the items above because they don’t know anything
about it.
Practical positioning examples - Learn web development
you won't need to understand the javascript itself at this stage, but you should think
about learning some basic javascript as soon as possible — the more complex your ui features become, the more likely it is that you'll need some javascript to implement your desired functionality.
...we told you it was a hack.) you will learn a lot more
about...
Responsive design - Learn web development
you can find out more
about this approach to create a grid in the learn layout grids topic, under flexible grids with the fr unit.
...because mobile browsers tend to lie
about their viewport width.
Getting started with CSS - Learn web development
previous overview: first steps next in this article we will take a simple html document and apply css to it, learning some practical things
about the language along the way.
...when we talk
about accessibility we are referring to the requirement for our webpages to be understandable and usable by everyone.
Styling links - Learn web development
you can find more information
about this problem (and solutions) at fighting the space between inline block elements.
... summary we hope this article has provided you with all you'll need to know
about links — for now!
Styling lists - Learn web development
previous overview: styling text next lists behave like any other text for the most part, but there are some css properties specific to lists that you need to know
about, and some best practices to consider.
...there are three properties you should know
about to start with, which can be set on <ul> or <ol> elements: list-style-type: sets the type of bullets to use for the list, for example, square or circle bullets for an unordered list, or numbers, letters or roman numerals for an ordered list.
Web fonts - Learn web development
there are two important things to bear in mind
about web fonts: browsers support different font formats, so you'll need multiple font formats for decent cross-browser support.
... using an online font service online font services generally store and serve fonts for you, so you don't have to worry
about writing the @font-face code, and generally just need to insert a simple line or two of code into your site to make everything work.
Client-side form validation - Learn web development
summary client-side form validation sometimes requires javascript if you want to customize styling and error messages, but it always requires you to think carefully
about the user.
... be permissive
about the input format.
The HTML5 input types - Learn web development
as we mentioned earlier, the pattern attribute can be used to enforce constraints, which you'll learn
about in client-side form validation.
...there are a few other control types that cannot be easily grouped together due to their very specific behaviors, but which are still essential to know
about.
Sending form data - Learn web development
an http request consists of two parts: a header that contains a set of global metadata
about the browser's capabilities, and a body that can contain information necessary for the server to process the specific request.
... if you've worked your way through these tutorials in order, you now know how to markup and style a form, do client-side validation, and have some idea
about submitting a form.
Installing basic software - Learn web development
that looks like a scary list, but fortunately, you can get started in web development without knowing anything
about most of these.
...you usually don't need to worry
about making your web projects compatible with it, as very few people still use it — certainly don't worry too much
about it while you are learning.
Tips for authoring fast-loading HTML pages - Learn web development
it allows for efficient page caching; by means of this header, information is conveyed to the user agent
about the file it wants to load, such as when it was last modified.
...switching to lazy loading of images tells the browser to hold off on loading images until they're
about to be needed to draw the visual viewport.
Advanced text formatting - Learn web development
the elements described in this article are less known, but still useful to know
about (and this is still not a complete list by any means).
... here you'll learn
about marking up quotations, description lists, computer code and other related text, subscript and superscript, contact information, and more.
Test your skills: Links - Learn web development
you'll get a bonus point if you also set it so that the subject line of the email is automatically filled in as "question
about whales".
... links 3 the following links link to an info page
about narwhals, a support email address, and a pdf factfile that is 4mb in size.
Images in HTML - Learn web development
if you are interested in more information
about this, read the trials and tribulations of the title attribute by scott o'hara.
... note: you'll learn a lot more
about css background images in our css topic.
Mozilla splash page - Learn web development
previous overview: multimedia and embedding in this assessment, we'll test your knowledge of some of the techniques discussed in this module's articles, getting you to add some images and video to a funky splash page all
about mozilla!
... project brief in this assessment we are presenting you with a mostly-finished mozilla splash page, which aims to say something nice and interesting
about what mozilla stands for, and provide some links to further resources.
Multimedia and Embedding - Learn web development
responsive images in this article, we'll learn
about the concept of responsive images — images that work well on devices with widely differing screen sizes, resolutions, and other such features — and look at what tools html provides to help implement them.
... assessments the following assessments will test your understanding of the html basics covered in the guides above: mozilla splash page in this assessment, we'll test your knowledge of some of the techniques discussed in this module's articles, getting you to add some images and video to a funky splash page all
about mozilla!
HTML Tables - Learn web development
coupled with a little css for styling, html makes it easy to display tables of information on the web such as your school lesson plan, the timetable at your local swimming pool, or statistics
about your favorite dinosaurs or football team.
... this module takes you through all you need to know
about structuring tabular data using html.
Structuring the web with HTML - Learn web development
to build websites, you should know
about html — the fundamental technology used to define the structure of a webpage.
... after learning html, you can then move on to learning
about more advanced topics such as: css, and how to use it to style html (for example alter your text size and fonts used, add borders and drop shadows, layout your page with multiple columns, add animations and other visual effects.) javascript, and how to use it to add dynamic functionality to web pages (for example find your location and plot it on a map, make ui elements appear/disappear when y...
Making asynchronous programming easier with async and await - Learn web development
the downsides of async/await async/await is really useful to know
about, but there are a couple of downsides to consider.
... if you want to use async/await but are concerned
about older browser support, you could consider using the babeljs library — this allows you to write your applications using the latest javascript and let babel figure out what changes if any are needed for your user’s browsers.
Build your own function - Learn web development
you'll learn a lot more
about these in our later events article.
...in a real application, such a message box would probably be called in response to new data being available, or an error having occurred, or the user trying to delete their profile ("are you sure
about this?"), or the user adding a new contact and the operation completing successfully, etc.
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.
...we haven't explicitly illustrated this above, but we could think
about the farmer being able to collect say 2 portions of food per hour.
JavaScript building blocks - Learn web development
function return values the last essential concept you must know
about a function is return values.
... introduction to events events are actions or occurrences that happen in the system you are programming, which the system tells you
about so you can respond to them in some way if desired.
Manipulating documents - Learn web development
active learning: basic dom manipulation to start learning
about dom manipulation, let's begin with a practical example.
... how
about we use an event so that the div resizes as we resize the window?
Third-party APIs - Learn web development
what
about google maps?
... we are not going to say too much more
about this example in the article — the source code has detailed comments inserted inside it to explain how it works.
Object prototypes - Learn web development
in the next article, we talk
about the modern way of doing things, which provides easier syntax to achieve the same things — see ecmascript 2015 classes.
... think
about this for a moment.
Web performance resources - Learn web development
below is a quick review of best practices, tools, apis with links to provide more information
about each topic.
... quick wins css web performance is all
about user experience and perceived performance.
Server-side website programming - Learn web development
in the modern world of web development, learning
about server-side development is highly recommended.
... server-side website programming first steps this module provides technology-agnostic information
about server-side website programming such as "what is it?", "how does it differ from client-side programming?", and "why is it useful?".
Ember app structure and componentization - Learn web development
testing is outside the scope of this tutorial, although generally testing should be implemented as you develop, rather than after, otherwise it tends to be forgotten
about.
... if you're curious
about testing, or why you would want to have automated tests, check out the official ember tutorial on testing.
Accessibility in React - Learn web development
objective: to learn
about implementing keyboard accessibility in react.
... most of the time, you can be an effective contributor to a react project even if all you do is think carefully
about components and their state and props.
React interactivity: Events and state - Learn web development
objective: to learn
about handling events and state in react, and use those to start making the case study app interactive.
...update your newtask constant declaration to this: const newtask = { id: "todo-" + nanoid(), name: name, completed: false }; save everything, and try your app again — now you can add tasks without getting that warning
about duplicate ids.
Componentizing our Svelte app - Learn web development
it will help you understand how they relate to each other, it will promote reuse, and it will make your code easier to reason
about, maintain, and extend.
...this pattern establishes a two-way flow of information, which is predictable and easier to reason
about.
Handling common HTML and CSS problems - Learn web development
linters another good option to choose is a so-called linter application, which not only points out errors, but can also flag up warnings
about bad practices in your css, and other points besides.
... summary now you should be familiar with the main types of cross browser html and css problems that you'll meet in web development, and how to go
about fixing them.
Web APIs: Mozilla-specific documents
in the pages listed here, we provide mozilla-specific documents
about standard web apis.
... this includes notes
about any firefox-only features, or
about any experiments or other deviations from the specification that may exist in mozilla code.
CSUN Firefox Materials
in addition to winning major awards such as pc world product of the year, firefox has attracted a huge following among savvy users who simply care enough
about their web browsing experience to download a new piece of software.
...that's the great thing
about the open firefox community model and source code license -- anyone can contribute, and everyone benefits.
Accessibility and Mozilla
these articles provide mozilla-specific details
about accessibility.
...in addition to winning major awards such as pc world product of the year, firefox has attracted a huge following among savvy users who simply care enough
about their web browsing experience to download a new piece of software.
Lightweight themes
read more
about the types of creative common licenses.
... submit your theme now frequently asked questions for more information
about lightweight themes, including content guidelines, please see these frequently asked questions.
Theme concepts
for example, we could use this image combined with a complementary background color, to create this effect in the header see details
about this theme in the themes example weta_fade.
... return; } currenttheme = theme; browser.theme.update(themes[theme]); } learn more
about dynamic themes and see an additional example in the following video: if you have not built a browser extension before, check out your first extension for a step-by-step guide.
A bird's-eye view of the Mozilla framework
the client object does not need to know anything
about the internal structure or implementation of the provider object in order to take advantage of its services.
... let’s consider a resource description framework (rdf) example, where rdf is a framework for describing and interchangingmetadata, that is, information
about information.
Bugzilla
documentation
about b.m.o.
... testopia - test case management extension bugzilla.org - the project site wikipedia:bugzilla - general description of bugzilla (not specific to mozilla projects) bmo on wiki.mozilla.org - information
about mozilla's customized bugzilla installation, including how to contribute to it tools bugzilla todos lists review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs.
Chrome registration
component component {00000000-0000-0000-0000-000000000000} components/mycomponent.js [flags] informs mozilla
about a component cid implemented by an xpcom component implemented in javascript (or another scripting language, if applicable).
... structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration ...
Creating a Login Manager storage module
to see some debugging output in the console set signon.debug to true using
about:config.
...see how_to_build_an_xpcom_component_in_javascript for more details
about javascript components.
Capturing a minidump
sometimes a more complete form of minidump is needed to see additional details
about a crash, in which case manual capture of a minidump is desired.
... when the program is
about to crash, windbg will spit out more data, and the prompt at the bottom will change from saying "*busy*" to having a number in it.
Debugging a hang on OS X (Archived)
this article contains historical information
about older versions of os x.
... after
about 3-4 seconds, select the hanging application in the “detected hangs” window and click the “interrupt sampling” button.
Adding APIs to the navigator object
you can read
about creating and registering xpcom components in javascript.
...you can learn more
about contract ids are unique text identifiers for xpcom components.
Commenting IDL for better documentation
this is an * example of what an interface document should look like; however, it's not a * document
about a real interface.
...this is where you would * provide additional information
about the interface as necessary.
Cross Process Object Wrappers
to learn more
about this, see the documentation on using the message manager.
... message ordering cpows can violate assumptions you might make
about message ordering.
Tracking Protection
click the ⓘ symbol in the address bar to view information
about the currently loaded page.
...example.com', event);"> visit example.com </a> <script> function tracklink(url,event) { event.preventdefault(); if (window.ga && ga.loaded) { ga('send', 'event', 'outbound', 'click', url, { 'transport': 'beacon', 'hitcallback': function() { document.location = url; } }); } else { document.location = url; } } </script> more information
about this technique is available at google analytics, privacy, and event tracking.
Site Identity Button
the site identity button is a feature in firefox that gives users more information
about the sites they visit.
...look for messages
about weak ciphers (e.g.
Browser API
events in order to allow an application to manage the browser <iframe>, the application can listen for new events
about what's happening within the browser <iframe>.
... mozbrowserfindchange sent when a search operation is performed on the browser <iframe> content (see htmliframeelement search methods.) mozbrowserfirstpaint sent when the <iframe> paints content for the first time (this doesn't include the initial paint from
about:blank.) mozbrowsericonchange sent when a new icon (e.g.
Embedding the editor
(the current nseditorshell makes assumptions
about the hosting xul document, which need to be broken.) composer embedded in a web page (<htmlarea>) ie 5 supports the <htmlarea> element; if mozilla is to support something similar, editor needs to be embeddable to the extent that this can be done.
... insulating editor from the chrome composer needs to not know anything
about the ui that is driving it.
HTML parser threading
(how exactly data is inserted into the buffer list depends on parser keys when document.write() is invoked re-entrantly, but that's outside the scope of this document, since this document is
about parser threading.) whenever the argument of document.write() isn't tokenized to completion synchronously, the part left unprocessed by the main document.write() tokenizer/tree builder is processed by the third tokenizer/tree builder pair.
...there speculative load operations are flushed to the main thread (via the staging area) whenever tree ops are flushed and also whenever nshtml5streamparser::parseavailabledata() is
about to stop working.
How to add a build-time test
if a test is added, that test or its directory needs to be mentioned in a makefile.in file somewhere so that the build system knows
about it.
... reference the test dir in a parent makefile (<tt>yourmoduledir/makefile.in</tt>): ifdef enable_tests dirs += tests_type endif (optional, but recommended) add the new makefile to allmakefiles.sh (todo: need more details
about this) reconfigure (e.g.
How to get a stacktrace with WinDbg
if you are prompted for a command but don't see an error
about a crash, go back to the debug menu and press go.
...a developer may ask you for a "minidump" or a "full memory dump", which are files containing more information
about the process.
Implementing QueryInterface
; // i (may) have multiple |nsisupports| in me, // so first i cast to a specific base to avoid ambiguity else foundinterface = 0; nsresult status; if ( !foundinterface ) status = ns_nointerface; else { ns_addref(foundinterface); status = ns_ok; } *ainstanceptr = foundinterface; return status; } what's so good
about it?
...in such cases, you'll probably want to call through to the underlying implementation, after you've tested for the particular iids that you care
about.
UpdateInfo
updateinfo objects hold information
about available versions of add-ons and are generated as a result of an update check performed by addonupdatechecker.
... targetapplications object[] information
about what applications the update is compatible with.
Widget Wrappers
widget wrappers are objects that provide information
about a widget.
... there are 'group' wrappers which provide information
about the widget across all windows, and 'single' wrappers which provide information
about a specific instance in a specific window.
OSFile.jsm
we are talking
about several seconds to execute operations that look trivial, such as closing a file, or checking when it was last modified.
... i/o efficiency is all
about minimizing the number of actual i/o calls.
Examples
rejection handlers provide information
about the exact error time and location, but the handlers may sometimes be forgotten.
... note: this warning is generated some time after the error occurred, and may provide less information
about the error location.
WebRequest.jsm
the event listener receives detailed information
about the request, and can modify or cancel the request.
... onbeforerequest this event is triggered when a request is
about to be made, and before headers are available.
JavaScript code modules
see export and import to learn more
about how to use standard modules.
...the event listener receives detailed information
about the request, and can modify or cancel the request.
Localizing extension descriptions
this article provides details on how to go
about localizing the descriptions of mozilla add-ons, as well as for other metadata
about your add-on.
...the following example demonstrates this (most normal manifest properties have been removed for brevity): <?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>tabsidebar@blueprintit.co.uk</em:id> <em:localized> <description> <em:locale>de-de</em:locale> <em:name>tab sidebar</em:name> <em:description>zeigt in einer sidebar vorschaubilder der inhalte aller offenen tabs an.</em:description> </description> </em:localized> <em:localized> <description> <e...
Localizing with Pontoon
read
about implementing pontoon in your project or learn how to get involved on github.
... alright, how
about we do some translating now?
Localization technical reviews
for more info
about access keys in the technical review process, see bug 421893.
...for more info
about utf-7 in firefox, see bug 441876.
What every Mozilla translator should know
discussion
about localization take part here just as well as l10n-focused announcements.
... translate the mozilla web or mozilla.dev.l10n.web, we moved announcements and discussions
about the translation of the mozilla web pages to this group.
Writing localizable code
this page tells you
about best practices and guidelines when dealing with ui code with respect to localization.
...
about localizers a few notes
about localizers for developers who rarely deal with them: localizers like tools, and they don't like editors, localization tools are often based on key-value pairs, at least some localizers have their talents focused on language skills and are not savvy in programming, or even building applications.
MathML In Action
or what
about those things that just seem itchy, and that you wish could be done just a little better?
... or what
about those things that were working before and are not working anymore (a.k.a.
MathML Demo: <msqrt>, <mroot> - radicals
about all you can do with them is see how the rendering stretches them in various ways: horizontally sin x cos y , vertically 1 2 3 4 and det ( 1 2 3 4 ) 2 , as well as 2 x y z w , 2 1 2 3 4 , and 2 ⌈ det ( 1 2 3 4 ) ⌉ .
...
about all you can do with them is see how the rendering stretches them in various ways: horizontally sin x cos y vertically 1 2 3 4 and det ( 1 2 3 4 ) 2 as well as 2 x y z w 2 1 2 3 4 and 2 ⌈ det ( 1 2 3 4 ) ⌉ the formula of binet shows how the n-th term in the fibonacci series can be expressed using roots f n = 1 5 [ ( 1 + 5 2 ) n - ( 1 - 5 2 ) n ] ...
Preferences
these articles provide information
about how to use the preference system.
... a brief guide to mozilla preferences an introductory guide to where preferences are stored and other useful information
about the core preference system.
L20n
what l20n looks like here is a simple, straightforward example showing an english string being provided: <brandname "firefox"> <
about "
about {{ brandname }}"> here is the same string being provided in slovenian: <brandname { nominative: "firefox", genitive: "firefoxa", dative: "firefoxu", accusative: "firefox", locative: "firefoxu", instrumental: "firefoxom" }> <
about "o {{ brandname.locative }}"> for developers documentation for developers wanting to implement localization functionality on their web apps ...
... wiki page info
about the project to develop l20n.
Introduction to NSPR
monitoring is
about protecting data, not code.
... if ((db = delink()) == null) { wait(condition); db = delink(); } exit(monitor); return db; } the same function would be more appropriately written as follows: void *dequeue() { void *db; enter(monitor); while ((db = delink()) == null) wait(condition); exit(monitor); return db; } caution: the semantics of pr_waitcondvar assume that the monitor is
about to be exited.
PRIOMethods
fileinfo get information
about an open file.
...for information
about each function, see the corresponding function description in this document.
PR_Bind
if you do not care
about the exact ip address assigned to the socket, set the inet.ip field of prnetaddr to pr_htonl(pr_inaddr_any).
... if you do not care
about the tcp/udp port assigned to the socket, set the inet.port field of prnetaddr to 0.
An overview of NSS Internals
that's a good opportunity to talk
about ssl/tls connections to servers in general (not just ev, not just websites).
...but if you don't care
about modifying the default trust permanently (recorded on disk), you can use the no-database init calls.
nss tech note1
this is used in a template array within a sequence, if you don't care
about the fields at the end of it.
...see bug 175163 for more information
about the reason for this recommendation.
NSS Tech Notes
nss technical notes newsgroup: mozilla.dev.tech.crypto nss technical notes provide latest information
about new nss features and supplementary documentation for advanced topics in programming with nss.
... tn3: all
about certificate extensions.
Migration to HG
most parts of the nss build instructions remain valid, especially the instructions
about setting environment variables.
... updated instructions for building nss with nspr can be found at: /docs/nss_reference/building_and_installing_nss/build_instructions it's best to refer to the above document to learn
about the various environment variables that you might have to set to build on your platform (this part hasn't changed).
FC_GetSessionInfo
name fc_getsessioninfo - obtain information
about a session.
... description fc_getsessioninfo obtains information
about a session.
FC_GetSlotInfo
name fc_getslotinfo - get information
about a particular slot in the system.
... description fc_getslotinfo stores the information
about the slot in the ck_slot_info structure that pinfo points to.
FC_GetTokenInfo
name fc_gettokeninfo - obtain information
about a particular token in the system.
... syntax ck_rv fc_gettokeninfo(ck_slot_id slotid, ck_token_info_ptr pinfo); parameters fc_gettokeninfo has two parameters: slotid the id of the token's slot pinfo points to a ck_token_info structure description fc_gettokeninfo returns information
about the token in the specified slot.
NSS tools : cmsutil
-h num generate email headers with info
about cms message (decode only).
...for information specifically
about nss, the nss project wiki is located at [2]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : pk12util
the default is to return information in a pretty-print ascii format, which displays the information
about the certificates and public keys in the p12 file.
... o https://wiki.mozilla.org/nss_shared_db_howto o https://wiki.mozilla.org/nss_shared_db additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
sslintro.html
to avoid the overhead of repeating the full ssl handshake in situations like this, the ssl protocol supports the use of a session cache, which retains information
about each connection, such as the master secret generated during the ssl handshake, for a predetermined length of time.
... if ssl can locate the information
about a previous connection in the local session cache, it can reestablish the connection much more quickly than it can without the connection information.
NSS Tools certutil
-l list all the certificates, or display information
about a named certificate, in a certificate database.
... -r display a certificate's binary der encoding when listing information
about that certificate with the -l option.
NSS tools : cmsutil
-h num generate email headers with info
about cms message (decode only).
... for information specifically
about nss, the nss project wiki is located at [2]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : pk12util
the default is to return information in a pretty-print ascii format, which displays the information
about the certificates and public keys in the p12 file.
... o https://wiki.mozilla.org/nss_shared_db_howto o https://wiki.mozilla.org/nss_shared_db additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
Necko Architecture
mimetype - mime <-> file extension mapping nk
about -
about: protocol nkdata - data: protocol nkfile - file: protocol nkftp - ftp: protocol nkkeyword - keyword: protocol nkresrc - resource: protocol cnvts - stream converters stremcnv - stream converter service these libraries will change with time and illustrate the modularity of necko.
...because a uri has no self knowledge
about what "protocol" it represents, another component is responsible for deciding which channel implementation will be responsible for "loading" the uri.
Proxies in Necko
this means that callers can just create an nsichannel, not needing to worry
about whether the channel will use a proxy or not the basic interfaces for proxies are: nsiproxyinfo, nsiprotocolproxyservice, and nsiproxiedprotocolhandler nsiproxyinfo is a simple helper which stores information
about the type of the proxy, its host and its port.
...to be written xxx missing paragraphs are
about pac, and more details
about http proxying, and maybe some more details
about socks proxies.
Tutorial: Embedding Rhino
faces 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 runscript example.
...a context stores information
about the execution environment of a script.
SpiderMonkey Build Documentation
mkdir build_opt.obj cd build_opt.obj /bin/sh ../configure.in # use "mozmake" on windows make a few notes
about this: the most common build problems are dependency problems.
...for example, if you're using the gnu toolchain, the following will pass the -g3 flag to the compiler, causing it to emit debug information
about macros.
GC Rooting Guide
since spidermonkey has a moving gc, it is very important that it knows
about each and every pointer to a gc thing in the system.
...a js::handle<t> is a reference to a js::rooted<t>, and is created implicitly by referencing a js::rooted<t>: it is not valid to create a js::handle<t> manually (the whole point of a handle is that it only reference pointers that the gc knows
about so it can update them when they move).
Hacking Tips
the other being disable this check in "
about:config", by temporarily switching "security.fileuri.strict_origin_policy" to false note 2: the files can be very big and take a long time to load in the browser.
... use the vixl debugger in the simulator (arm64) set a breakpoint (see the comments above
about masm.breakpoint()) and run with the environment variable use_debugger=1.
Exact Stack Rooting
since the gc may move gcthings, it very important that spidermonkey know
about each and every gcpointer in the system.
...by using js::handlet in the interface instead of direct gcpointers, we ensure that the gcthing is already rooted on some previous stack frame, freeing us from having to worry
about rooting the gcthing for the duration of the call.
Invariants
a general rule
about the state of all threads at a given time: either exactly one thread is "in gc" and no threads are in requests; or no thread is doing gc, in which case any number of threads may be in requests; or the gc lock is held.
...(note that the locking scheme applies to all objects and talks
about properties being locked.
Introduction to the JavaScript shell
help([command ...]) displays brief help information
about the specified commands, or
about all available functions if none are specified.
...when the bytecode at the offset specified by pc in the function function is
about to be executed, the expression is evaluated.
JIT Optimization Outcomes
this failure mode is unlikely and occurs if the target object is obtained in some round
about way.
...the engine knows nothing definite
about the type of the callee function object.
JSNewResolveOp
flags uint32_t obsolete since jsapi 31 flags giving contextual information
about the ongoing property access.
... description like jsresolveop, but flags provide contextual information
about the property access.
JS_DumpHeap
when tracing a thing, the gc needs to know
about the layout of the object it is looking at.
... there are a fixed number of different layouts that the gc knows
about.
JS_GetPropertyAttrsGetterAndSetter
description see js_getpropertyattributes for details
about these functions.
...for more information
about javascript getters and setters, see defining getters and setters.
JS_SET_TRACING_DETAILS
this article covers features introduced in spidermonkey 1.8 set debugging information
about the next thing to be traced by a jstracer.
... description set debugging information
about a reference to a traceable thing to prepare for the following call to js_calltracer.
JS_SetErrorReporter
report jserrorreport * an error report record containing additional details
about the error.
...the error you log and display can make use of the information passed
about the error condition in the jserrorreport structure.
SpiderMonkey 1.8.5
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
... jsxdrapi changes were missed jsstrictpropertyop for setters (affects jsclass) - maybe general notes
about es5 strict mode changes in jsapi tricks like argv[-2] not guaranteed to work any more; is js_callee or similar instead ...
SpiderMonkey 38
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
...579) js_evaluateucscript (bug 1100579) js_executescriptversion (bug 1095660) js_getflatstringchars (bug 1037869) js_getfunctioncallback (bug 1103269) js_getinternedstringchars (bug 1037869) js_getinternedstringcharsandlength (bug 1037869) js_getstringcharsandlength (bug 1037869) js_getstringcharsz (bug 1037869) js_getstringcharszandlength (bug 1037869) js_gettypename (bug 1037718) js_is
abouttobefinalized (bug 650161) js_lookupelement (bug 1094176) js_lookupproperty (bug 1094176) js_lookuppropertybyid (bug 1094176) js_lookupucproperty (bug 1094176) js_newpropertyiterator (bug 1081660) js_nextproperty (bug 1081660) js_resolvestub (bug 1103152) js_setfinalizecallback (bug 996785) js_setfunctioncallback (bug 1103269) jschar (bug 1063962) api changes jschar, a typedef for the...
Setting up CDT to work on SpiderMonkey
step 3 - index all the code to let cdt know
about the build, it has to invoke make itself (or, as is done in the guide for the whole mozilla codebase on mdn, read a log of the build), which can be setup with these simple steps: open the project's properties by selecting its root and clicking "properties" in the "file" menu and select "c/c++ build".
... instead, change "build command" to read make -w (this is required because cdt needs detailed information
about which directories make operates on, which using -w causes make to provide).
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.
...there is little public information
about it, and it is hard to find even on the apple developer site.
Gecko events
is supported: no event_movesize_end the movement or resizing of a window has finished is supported: no event_contexthelp_start a window has entered context-sensitive help mode is supported: no event_contexthelp_end a window has exited context-sensitive help mode is supported: no event_dragdrop_start an application is
about to enter drag-and-drop mode is supported: yes event_dragdrop_end an application is
about to exit drag-and-drop mode is supported: no event_dialog_start a dialog box has been displayed is supported: no event_dialog_end a dialog box has been closed is supported: no event_scrolling_start scrolling has started on a scroll bar is supported: yes event_scrolling_end scrolling has ended on a sc...
...roll bar is supported: yes event_minimize_start a window object is
about to be minimized or maximized is supported: no event_minimize_end a window object has been minimized or maximized is supported: no event_document_load_start is supported: yes event_document_load_complete the loading of the document has completed.
Gecko Roles
role_alert represents an alert or a condition that a user should be notified
about.
... role_statusbar represents a status bar, which is an area at the bottom of a window that displays information
about the current operation, state of the application, or selected object.
Gecko states
because objects with this state are not available to users, client applications should not communicate information
about the object to users.
...if this second state is defined, then clients can communicate the information
about the object to users.
XForms Accessibility
project there are set of tests at beaufour.dk w3c's xforms test at w3.org keyboard navigation issues navigation sequence though xforms spec declares navindex attribute to define the navigation sequence (see 1.0 specs or 1.1 specs) but rich schwerdtfeger (distinguished engineer, swg accessibility architect/strategist chair, ibm accessibility architecture review board) gave some clarification
about navindex.
...so, yes we don't care
about navindex in xforms.
History Service Design
history views should allow to quickly find a page in a certain timeframe remembering only small details
about it.
... certain scheme are excluded from history, so they will never be added, for example:
about, view-source, chrome.
Places Developer Guide
// create a bookmark observer var observer = { onbeginupdatebatch: function() { // this method is notified when a batch of changes are
about to occur.
... var title = node.title; var url = node.uri; var visited = node.accesscount; var lastvisitedtimeinmicrosecs = node.time; var iconuri = node.icon; // is null if no favicon available } result.root.containeropen = false; querying history for redirects and from_visit results of type result_type_full_visit have information
about the visit, such as the referring visit, and how the transition happened (typed, redirect, link, etc).
Places utilities for JavaScript
description_anno - this annotation stores description information
about a bookmark.
... localstore warning: local store provided access to the local-store rdf data source, which stores persisted information
about the browser.
Accessing the Windows Registry Using XPCOM
introduction when implementing windows-specific functionality, it is often useful to access the windows registry for information
about the environment or other installed programs.
...dows productid: var wrk = components.classes["@mozilla.org/windows-registry-key;1"] .createinstance(components.interfaces.nsiwindowsregkey); wrk.open(wrk.root_key_local_machine, "software\\microsoft\\windows\\currentversion", wrk.access_read); var id = wrk.readstringvalue("productid"); wrk.close(); this example, while simple, shows several important things
about using the interface.
How to build an XPCOM component in JavaScript
ihelloworld]" argument for the call to xpcomutils.generateqi() in queryinterface, then you can access your component like this: try { var mycomponent = components.classes['@dietrich.ganx4.com/helloworld;1'] .getservice().wrappedjsobject; alert(mycomponent.hello()); } catch (anerror) { dump("error: " + anerror); } for more information
about wrappedjsobject, see here.
... using xpcom instantiation try { var mycomponent = components.classes['@dietrich.ganx4.com/helloworld;1'] .createinstance(components.interfaces.nsihelloworld); alert(mycomponent.hello()); } catch (anerror) { dump("error: " + anerror); } other resources rm lantwo mozillazine forums threads
about implementing xpcom components in js with some explanations, example code, and troubleshooting tips: http://forums.mozillazine.org/viewtopic.php?t=308369 http://forums.mozillazine.org/viewtopic.php?t=367298 implementing xpcom components in javascript at kb.mozillazine.org using xpcom in javascript without leaking - a must-read.
Packaging WebLock
like the windows registry, the chrome registry is a database of information
about applications, skins, and other extensions that have been installed in a gecko application.
... 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.
Creating XPCOM components
next » this guide is
about gecko, and
about creating xpcom components for gecko-based applications.
...accordingly, the book is arranged so that you can follow along and create your own components or learn
about different xpcom topics individually, as in a reference work.
XPCOM Stream Guide
in basic c++ programming for a console application, we usually talk
about streams to access files, or to interact with the user.
... a note
about unicode strings versus nsiinputstream nsiinputstream and nsioutputstream work with 8-bit characters.
mozIStorageConnection
this method will manage the transactions for you, so you don't have to worry
about them.
...this helps avoid disk fragmentation by letting you help sqlite make intelligent decisions
about resizing of the file.
nsIAccessibleRole
role_alert 8 represents an alert or a condition that a user should be notified
about.
... role_statusbar 23 represents a status bar, which is an area at the bottom of a window that displays information
about the current operation, state of the application, or selected object.
nsIAccessibleStates
because objects with this state are not available to users, client applications should not communicate information
about the object to users.
...if this second state is defined, then clients can communicate the information
about the object to users.
nsIApplicationUpdateService
methods adddownloadlistener() adds a listener that receives progress and state information
about the update that is currently being downloaded.
...removedownloadlistener() removes a listener that is receiving progress and state information
about the update that is currently being downloaded.
nsIBrowserHistory
note: if removing fewer than 10 pages, calling this repeatedly is preferable over calling removepages(), since that's
about the point at which the overhead of setting up a batch operation doesn't make sense anymore.
... note: if removing fewer than 10 pages, calling removepage() repeatedly is preferable over calling this, since that's
about the point at which the overhead of setting up a batch operation doesn't make sense anymore.
nsICacheDeviceInfo
netwerk/cache/nsicachevisitor.idlscriptable this interface provides information
about a cache device.
... usagereport string get a usage report, statistics, miscellaneous data
about the cache device.
nsIChannelEventSink
this method notifies the sink that a redirect is
about to happen, but also to gives the sink the right to veto the redirect by throwing an exception or passing a failure code in the callback.
... callback object to inform
about the async result of this method.
nsIContentSecurityPolicy
given a bit of information
about the request, decides whether or not the policy is satisfied.
...given a bit of information
about the request, decides whether or not the policy is satisfied.
nsIFeed
it includes attributes that provide information
about the feed, as well as access to the items or entries in the feed.
... textinput nsiwritablepropertybag2 information
about a text box that can be displayed along with the feed by aggregators that support it, to allow the reader to send a response back to the source of the feed.
nsIFeedProgressListener
void handleentry( in nsifeedentry entry, in nsifeedresult result ); parameters entry pointer to an nsifeedentry containing information
about the entry that was just processed.
... result pointer to an nsifeedresult containing the current information
about the feed being processed.
nsIGlobalHistory2
docshell/base/nsiglobalhistory2.idlscriptable this interface provides information
about global history to gecko.
...note: docshell will not filter out uri schemes like chrome:, data:,
about: and view-source:.
nsIHttpChannel
there are no assumptions made
about the charset of the returned text.
...this method allows, for example, the html content sink to inform the http channel
about http-equiv headers found in html <meta> tags.
nsIMemoryReporter
this includes the
about:memory page.
...paths are delimited with '/' characters to allow a hierarchy of memory to be displayed in
about:memory.
nsIMessenger
getnavigatehistory() returns information
about the current navigation history.
... ahistory an array of strings containing information
about each entry in the history.
nsIMsgMessageService
acopylistener already knows
about the destination folder.
...the good thing
about this method is that you can extract a standard representation of any message, no matter if they are emails, rss, news, blogs, etc.
nsINavBookmarksService
beginupdatebatch() obsolete since gecko 1.9 (firefox 3) causes observers to be notified of a beginupdatebatch when a lot of things are
about to change.
...use this when a lot of things are
about to change, for example adding or deleting a large number of bookmark items.
nsINavHistoryResultObserver
methods batching() lets the observer know when a batch operation in places is
about to start or end.
... the observer can then pause updates or events until the batch is completed, so that it won't handle the large number of updates that are
about to be notified.
nsINavHistoryService
you don't have to worry
about calling this, addpagetosession/adduri will always check before actually adding the page.
...use this when a lot of things are
about to change.
nsIPrivateBrowsingService
netwerk/base/public/nsiprivatebrowsingservice.idlscriptable provides access to information
about the state of the private browsing service.
... the nsiprivatebrowsingservice interface provides access to information
about the state of the private browsing feature offered in firefox 3.5 and later.
nsIResumableChannel
entityid information
about the file, to match before obtaining the file.
...entityid information
about the file, to match before obtaining the file.
nsIThreadPoolListener
onthreadshuttingdown() called when a new thread is
about to be destroyed by the thread pool.
... the notification happens on the thread that is
about to be destroyed.
nsITransport
for a socket transport, these events can include status
about the connection.
... see nsisockettransport for more info
about socket transport specifics.
nsIURLFormatter
if the preference value cannot be retrieved, a fatal error is reported and the "
about:blank" url is returned.
... return value the formatted url returned by formaturl(), or "
about:blank".
nsIUserInfo
toolkit/components/startup/public/nsiuserinfo.idlscriptable these are things the system may know
about the current user.
...to get the service, use: var userinfo = components.classes["@mozilla.org/userinfo;1"] .getservice(components.interfaces.nsiuserinfo); you can then look at the userinfo object's attributes to learn what the system knows
about the user.
nsIWebProgressListener
location_change_error_page 0x00000002 this flag indicates that awebprogress redirected from the requested document to an internal page to show error status, such as
about:neterror,
about:certerror and so on.
... note: if the object also implements nsiwebprogresslistener2 and the caller knows
about that interface, this function will not be called.
nsIXULRuntime
xpcom/system/nsixulruntime.idlscriptable provides information
about the xul runtime to allow extensions and xul applications to determine information
about the xul runtime.
... example display the user's operating system in an alert box: var xulruntime = components.classes["@mozilla.org/xre/app-info;1"] .getservice(components.interfaces.nsixulruntime); alert(xulruntime.os); see also nsixulappinfo - a related interface providing information
about the host application, it's also implemented by xre/app-info.
Warnings
storage sometimes warns
about things to stderr.
...sort operations this warning message will say something
about the number of sort operations that have occurred for a sql statement.
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!
...to learn more
about enabling chrome errors, see "how can i see errors in my code" in the extension faqs.
Frequently Asked Questions
if you're looking here just to learn
about nscomptrs, you'll get a better introduction in the getting started guide.
... people don box is a smart guy who has been writing
about com programming for a long time.
Using nsCOMPtr
this document is the sum total of everything written down
about nscomptr.
... if you have a question
about nscomptr, and this document doesn't answer it, there probably isn't a document that answers it.
Using the Gecko SDK
introduction it is assumed that you already know something
about xpcom component development.
...(<tt>
about:buildconfig</tt> can be loaded in mozilla to reveal details
about the compiler that was used.) for the remainder of this guide, we'll assume you are developing components under linux.
DB Views (message lists)
one unique thing
about nsmsggroupview is that instead of using the message database's nsmsgthread objects like the other view classes, it uses an nsmsggroupthread object, which also implements nsimsgthread.
...see the tutorial for information
about styling trees using css, and the thunderbird source for some example css.
LDAP Support
this document is intended to "fill in the gaps"
about how enterprise customers can leverage and customize ldap support in mozilla thunderbird.
...some notes
about the relationship: there is a many to one relationship between ldap attributes and its address book counterpart.
MailNews fakeserver
a daemon is information
about the server that can be manipulated.
... the server is smart
about the responses and will normalize all occurrences of '\n' (but not '\r') to '\r\n' for you, as well as append the '\r\n' to the response if not present.
Building a Thunderbird extension 3: install manifest
the install.rdf file is an xml file that provides general information
about the extension.
... open the file called install.rdf that you created at the top of your extension's directory hierarchy and paste the following text into the file: <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <em:id>myfirstext@jen.zed</em:id> <em:name>my first extension</em:name> <em:version>1.0</em:version> <em:creator>jenzed</em:creator> <em:targetapplication> <description> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>5.0.*</em:maxversion> </description> </em:targetapplication> </description> </rdf> the following items (shown in bold) should be...
Thunderbird extensions
read
about the main windows to learn
about « thread pane », « preview pane », and « folder pane ».
...learn more
about gloda: an overview of gloda how to create your first message query and read the gloda examples gloda internals: gloda debugging, gloda indexing more thunderbird-specific links some links may be out of date, but they still provide valuable information on the codebase.
Working with data
there are several ways you can go
about creating new cdata objects.
... if you don't care
about type equality, and simply want to compare two addresses, you can use type casting: if (ctypes.cast(p, ctypes.uintptr_t).value.tostring() == "5") { // the pointer p's address is 5 } this casts the pointer to a ctypes.uintptr_t, for which the value property returns a ctypes.uint64.
Drawing and Event Handling - Plugins
for information
about the way html determines plug-in display mode, see using html to display plug-ins.
...this structure contains information
about coordinate position, size, the state of the plug-in (windowed or windowless), and some platform-specific information.
Plug-in Side Plug-in API - Plugins
npp_destroystream tells the plug-in that a stream is
about to be closed or destroyed.
... npp_setvalue sets information
about the plug-in.
Structures - Plugins
npsetwindowcallbackstruct contains information
about the plug-in's unix window environment.
... npwindow contains information
about the target into which the plug-in instance can draw.
Debugging service workers - Firefox Developer Tools
debugging your service worker in any case, when the service worker is successfully registered, you'll see information
about it displayed in the application > service workers view (along with any other service workers registered on the same domain): this gives you a variety of information
about your service worker: the url that the service worker is registered on.
...if you want to see a list of information concerning all the service workers registered on your browser, you can visit
about:debugging#/runtime/this-firefox.
Browser Console - Firefox Developer Tools
to enable it set the devtools.chrome.enabled preference to true in
about:config, or set the "enable browser chrome and add-on debugging toolboxes" (firefox 40 and later) option in the developer tool settings.
...to enable it set the devtools.chrome.enabled preference to true in
about:config, or set the "enable chrome debugging" option in the developer tool settings.
Examine, modify, and watch variables - Firefox Developer Tools
if you need to use it, you can, for now, switch back to the old debugger by visiting
about:config and setting the "devtools.debugger.new-debugger-frontend" preference to false.
... pointing your cursor at a variable's name displays a tooltip that provides additional information
about the variable.
Debugger.Environment - Firefox Developer Tools
this means that the debugger can use the == operator to recognize when two debugger.environment instances refer to the same environment in the debuggee, and place its own properties on a debugger.environment instance to store metadata
about particular environments.
...this allows the code using each debugger instance to place whatever properties it likes on its own debugger.object instances, without worrying
about interfering with other debuggers.) if a debugger.environment instance’s referent is not a debuggee environment, then attempting to access its properties (other than inspectable) or call any its methods throws an instance of error.
Debugger.Memory - Firefox Developer Tools
the statistics parameter is an object containing information
about the gc cycle.
...web developers need to know their pages’ actual memory consumption on real browsers, so it is correct for the tool to expose these behaviors, as long as it is done in a way that helps developers make decisions
about their own code.
Debugger.Script - Firefox Developer Tools
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.
... getoffsetscoverage(): if the instance refers to a jsscript, return null or an array which contains informations
about the coverage of all opcodes.
Debugger - Firefox Developer Tools
onenterframe(frame) the stack frameframe is
about to begin executing code.
... onerror(frame,report) spidermonkey is
about to report an error inframe.report is an object describing the error, with the following properties: message the fully formatted error message.
Debugger-API - Firefox Developer Tools
thus, a tool can store metadata
about a shadow’s referent as a property on the shadow itself, and count on finding that metadata again if it comes across the same referent.
... and since shadows are per-debugger, tools can do so without worrying
about interfering with other tools that use their own debugger instances.
Dominators view - Firefox Developer Tools
the first two are call and window objects, and retain
about 21% and 8% of the total size of the memory snapshot, respectively.
... taking a snapshot to see what it looks like in the dominators view: load the page enable the memory tool in the settings, if you haven't already open the memory tool check "record call stacks" press the button labeled "make monsters!" take a snapshot switch to the "dominators" view analyzing the dominators tree you'll see the three arrays as the top three gc roots, each retaining
about 23% of the total memory usage: if you expand an array, you'll see the objects (monsters) it contains.
Examine and edit CSS - Firefox Developer Tools
read more
about css source map support in the style editor documentation.
...(this calculated value is exactly the same as what getcomputedstyle would return.) you can tab through the styles to select them, and you can find more information
about each property — pressing f1 on a selected property will open up its mdn reference page.
Call Tree - Firefox Developer Tools
we have
about six times as many samples in bubble sort as in selection sort, and 13 times as many as in quicksort.
...let's expand that: this result is telling us that 614 of those samples, or
about 20% of the total cost, are coming from our sort() call.
Flame Chart - Firefox Developer Tools
let's zoom in: this slice is
about 140 ms long, and shows us more details of the functions being called by sort().
... let's zoom in one more time: this slice is
about 20ms long.
Waterfall - Firefox Developer Tools
when a marker is selected you'll see more information
about it in a sidebar on the right.
...see kyle huey's blog post
about cycle collection.
Style Editor - Firefox Developer Tools
to select these, visit
about:config, select the setting devtools.editor.keymap, and assign "vim" or "emacs", or "sublime" to that setting.
... 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.
AddressErrors - Web APIs
then a paymentdetailsupdate object is created with its error set to a generic message
about address errors and with the reset of the object's values taken from shippingaddresserrors, and, using "...defaultpaymentdetails" as the final entry in the object, the remeainder of the properties' values are taken from defaultpaymentdetails.
... window.addeventlistener("load", function(ev) { document.getelementbyid("pay").addeventlistener("click", process, false); }, false); see addeventlistener() for information
about event handlers and how they work.
BasicCardRequest.supportedNetworks - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.billingAddress - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.cardNumber - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.cardSecurityCode - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.cardholderName - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.expiryMonth - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
BasicCardResponse.expiryYear - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
Drawing shapes with canvas - Web APIs
the grid before we can start drawing, we need to talk
about the canvas grid or coordinate space.
... note: to learn more
about the arc() function, see the arcs section below.
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!
DOMMatrixReadOnly.flipX() - Web APIs
the flipx() method of the dommatrixreadonly interface creates a new matrix being the result of the original matrix flipped
about the x-axis.
... syntax dommatrix.flipx() return value returns a dommatrix containing a new matrix being the result of the original matrix flipped
about the x-axis, which is equivalent to multiplying the matrix by dommatrix(-1, 0, 0, 1, 0, 0).
DOMMatrixReadOnly.scale() - Web APIs
if a scale is applied
about the z-axis, the resulting matrix will be a 4x4 3d matrix.
... we then create a new matrix scaled
about a given origin, using either three or six parameters depending on the browser support.
DeviceMotionEvent - Web APIs
the devicemotionevent provides web developers with information
about the speed of changes for the device's position and orientation.
...take care
about this while using them.
Document.onbeforescriptexecute - Web APIs
fired when the code in a <script> element declared in an html document is
about to start executing.
...the event's target attribute is set to the script element that is
about to be executed.
Element - Web APIs
also available via the onfocus property focusin fired when an element is
about to gain focus.
... focusout fired when an element is
about to lose focus.
Using files from web applications - Web APIs
you need to use eventtarget.addeventlistener() to add the change event listener, like this: const inputelement = document.getelementbyid("input"); inputelement.addeventlistener("change", handlefiles, false); function handlefiles() { const filelist = this.files; /* now you can work with the file list */ } getting information
about selected file(s) the filelist object provided by the dom lists all of the files selected by the user, each specified as a file object.
... there are three attributes provided by the file object that contain useful information
about the file.
FileSystemEntry.getMetadata() - Web APIs
} the filesystementry interface's method getmetadata() obtains a metadata object with information
about the file system entry, such as its modification date and time and its size.
...receives a single input parameter: a metadata object with information
about the file.
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.
... getmetadata() obtains metadata
about the file, such as its modification date and size.
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.
... methods getmetadata() look up metadata
about this entry.
Frame Timing API - Web APIs
the performanceframetiming interface provides frame timing data
about the browser's event loop.
...this means the browser should process a frame in
about 16.7 ms.
HTMLImageElement.currentSrc - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support yessafari full support 10.1webview android full support 45chrome android full support 45firefox android full support...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 10.3samsung internet android full support 5.0legend full support full support no support no supportexperimental.
HTMLImageElement.sizes - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support yessafari no support nowebview android full support 45chrome android full support 45firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios no support nosamsung internet android full support 5.0legend full support full support no support no supportexperimental.
HTMLImageElement.srcset - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 21safari full support 8webview android full support 37chrome android full support 34firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 8samsung internet android full support 2.0legend full support full support no support no supportexperimental.
HTMLImageElement.useMap - Web APIs
you can learn more
about client-side image maps in our learning article add a hitmap on top of an image.
...a shape="circle" coords="25, 25, 75, 75" href="/index.html" alt="return to home page"> <area shape="rect" coords="25, 25, 100, 150" href="/index.html" alt="shop"> </map> given the image map named mainmenu-map, the image which uses it should look something like the following: <img src="menubox.png" usemap="#mainmenu-map"> for additional examples (including interactive ones), see the articles
about the <map> and <area> elements, as well as the guide to using image maps.
HTMLMediaElement.audioTracks - Web APIs
see event handlers in audiotracklist to learn more
about watching for changes to a media element's track list.
... each track is represented by a audiotrack object which provides information
about the track.
HTMLMediaElement.textTracks - Web APIs
see event handlers in texttracklist to learn more
about watching for changes to a media element's track list.
... each track is represented by a texttrack object which provides information
about the track.
HTMLMediaElement.videoTracks - Web APIs
see event handlers in videotracklist to learn more
about watching for changes to a media element's track list.
... each track is represented by a videotrack object which provides information
about the track.
HTMLVideoElement.videoHeight - Web APIs
see
about intrinsic width and height for more details.
...
about intrinsic width and height a user agent calculates the intrinsic width and height of the element's media by starting with the media's raw pixel width and height, then taking into account factors including: the media's aspect ratio.
HTMLVideoElement.videoWidth - Web APIs
see
about intrinsic width and height for more details.
...
about intrinsic width and height a user agent calculates the intrinsic width and height of the element's media by starting with the media's raw pixel width and height, then taking into account factors including: the media's aspect ratio.
In depth: Microtasks and the JavaScript runtime environment - Web APIs
when debugging or, possibly, when trying to decide upon the best approach to solving a problem around timing and scheduling of tasks and microtasks, there are things
about how the javascript runtime operates under the hood that may be useful to understand.
... a special note
about recursive functions—that is, functions which call themselves, possibly over multiple levels of depth or recursion: each recursive call to the function creates a new execution context.
Using microtasks in JavaScript with queueMicrotask() - Web APIs
be cautious with how you go
about recursively adding microtasks.
...generally, it's
about capturing or checking results, or performing cleanup, after the main body of a javascript execution context exits, but before any event handlers, timeouts and intervals, or other callbacks are processed.
IDBIndex - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 35safari full support 10.1webview android full support 48chrome android full support 48firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 35safari ios full support 10.3samsung internet android full support 5.0getkeychrome full support 24 full support 24 no support 23 — 24prefixed prefixed implemented with the vendor prefix: webkitedge full support 12firefox ...
Timing element visibility with the Intersection Observer API - Web APIs
since intersection observer only cares
about the intersection between the targeted elements and the intersection root, and not the tab's visibility (which is a different issue entirely), we need to use the page visibility api to detect these tab switches and disable our timers for the duration.
... handling periodic actions our interval handler, handlerefreshinterval(), is called
about once per second courtesy of the call to setinterval() made in the startup() function described above.
Intersection Observer API - Web APIs
the author of the web site may not even realize this is happening, since they may know very little
about the inner workings of the two libraries they are using.
... it's useful to understand a bit
about how the various properties provided by intersectionobserverentry describe an intersection.
LocalFileSystem - Web APIs
(to learn more
about the storage types, see the basic concepts article.) in most cases, you need to create only one file system, but in a few cases, it might be useful to create a second one.
...for more information
about restrictions, see the basic concepts article.
MediaCapabilities - Web APIs
the mediacapabilities interface of the media capabilities api provides information
about the decoding abilities of the device, system and browser.
... the api can be used to query the browser
about the decoding abilities of the device based on codecs, profile, resolution, and bitrates.
MediaDevices - Web APIs
enumeratedevices() obtains an array of information
about the media input and output devices available on the system.
...see capabilities and constraints in media capture and streams api (media stream) to learn more
about constraints and how to use them.
MediaSession.metadata - Web APIs
the metadata property of the mediasession interface contains a mediametadata object providing descriptive information
about the currently playing media, or null if the metadata has not been set.
... syntax var mediametadata = navigator.mediasession.metadata; navigator.mediasession.metadata = mediametadata; value an instance of mediametadata containing information
about the media currently being played.
MediaSession.setPositionState() - Web APIs
the mediasession method setpositionstate() is used to update the current document's media playback position and speed for presentation by user's device in any kind of interface that provides details
about ongoing media.
... syntax navigator.mediasession.setpositionstate(statedict); parameters statedict optional an object conforming to the mediapositionstate dictionary, providing updated information
about the playback position and speed of the document's ongoing media.
MediaStreamConstraints.audio - Web APIs
to learn more
about how constraints work, see capabilities, constraints, and settings.
...this tells getusermedia() that we require an audio track, but we don't care
about any specifics beyond that.
MediaStreamConstraints.video - Web APIs
to learn more
about how constraints work, see capabilities, constraints, and settings.
...this tells getusermedia() that we require a video track, but we don't care
about any specifics beyond that.
MediaTrackConstraints - Web APIs
to learn more
about how constraints work, see capabilities, constraints, and settings.
...the value may be a single one of the following strings, or an array of them to allow the browser flexibility in deciding what to do
about the cursor.
Media Capture and Streams API (Media Stream) - Web APIs
interfaces in these reference articles, you'll find the fundamental information you'll need to know
about each of the interfaces that make up the media capture and streams api.
... capabilities, constraints, and settingsthe twin concepts of constraints and capabilities let the browser and web site or app exchange information
about what constrainable properties the browser's implementation supports and what values it supports for each one.
MimeType - Web APIs
the mimetype interface provides contains information
about a mime type associated with a particular plugin.
... mimetype.enabledplugin returns an instance of plugin containing information
about the plugin itself.
Navigator.getBattery() - Web APIs
the getbattery() method provides information
about the system's battery.
... syntax var batterypromise = navigator.getbattery(); return value a promise which, when resolved, calls its fulfillment handler with a single parameter: a batterymanager object which you can use to get information
about the battery's state.
Navigator.mediaSession - Web APIs
the read-only navigator property mediasession returns a mediasession object that can be used to share with the browser metadata and other information
about the current playback state of media being handled by a document.
... syntax let mediasession = navigator.mediasession; value a mediasession object the current document can use to share information
about media it's playing and its current playback status.
NavigatorID.appVersion - Web APIs
returns either "4.0" or a string representing version information
about the browser.
... syntax window.navigator.appversion value either "4.0" or a string representing version information
about the browser.
Network Information API - Web APIs
the network information api provides information
about the system's connection in terms of general connection type (e.g., 'wifi', 'cellular', etc.).
... let preloadvideo = true; var connection = navigator.connection || navigator.mozconnection || navigator.webkitconnection; if (connection) { if (connection.effectivetype === 'slow-2g') { preloadvideo = false; } } interfaces networkinformation provides information
about the connection a device is using to communicate with the network and provides a means for scripts to be notified if the connection type changes.
PaymentAddress.toJSON() - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 61disabled full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android no support nolegend full support full support no support ...
PaymentRequest.abort() - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 53firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this featu...
PaymentRequest.canMakePayment() - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 53firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this featu...
PaymentRequest.prototype.id - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 60firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 8.0legend full support full support no support no supportsee implementation notes.see implementation notes.us...
PaymentRequest.onshippingaddresschange - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 53firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this featu...
PaymentRequest.onshippingoptionchange - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 53firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this featu...
PaymentRequest: paymentmethodchange event - Web APIs
for example, if the user switches from one credit card to another on their apple pay account, a paymentmethodchange event is fired to let you know
about the change.
... servicefeeinfo = calculateservicefee(event.methoddetails); object.assign(detailsupdate, servicefeeinfo); } event.updatewith(detailsupdate); }, false); this begins by looking at the event's methodname property; if that indicates that the user is trying to use apple pay, we pass the methoddetails into a function called calculateservicefee(), which we might create to take the information
about the transaction, such as the underlying credit card being used to service the apple pay request, and compute and return an paymentdetailsupdate object that specifies changes to be applied to the paymentrequest in order to add any service fees that the payment method might require.
PaymentRequest.shippingOption - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 53firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this featu...
PaymentRequest.shippingType - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support 11.1webview android no support nochrome android full support 55firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support 11.3samsung internet android full support 6.0legend full support full support no support no supportsee implementation notes.see implementation notes.us...
PaymentResponse.complete() - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 56 full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 6.0legend full support full support no support no supportsee im...
PaymentResponse.details - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 56 full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 6.0legend full support full support no support no supportsee im...
PaymentResponse.payerEmail - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 56 full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 6.0legend full support full support no support no supportsee im...
PaymentRequest.payerName - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 58firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 7.0legend full support full support no support no supportsee implementation notes.see implementation notes.user must explicitly enable this feature...
PaymentResponse.requestId - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 60firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 8.0legend full support full support no support no supportsee implementation notes.see implementation notes.user...
PaymentResponse.shippingAddress - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 56 full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 6.0legend full support full support no support no supportsee im...
PaymentResponse.shippingOption - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari full support yeswebview android no support nochrome android full support 56 full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios full support yessamsung internet android full support 6.0legend full support full support no support no supportsee im...
Permissions - Web APIs
to change preferences in firefox, visit
about:config.
...to change preferences in firefox, visit
about:config.
Pointer Lock API - Web APIs
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.
...lockelement === canvas || document.mozpointerlockelement === canvas) { console.log('the pointer lock status is now locked'); } else { console.log('the pointer lock status is now unlocked'); } the document.exitpointerlock() method is used to exit pointer lock, and like requestpointerlock, works asynchronously using the pointerlockchange and pointerlockerror events, which you'll see more
about below.
Multi-touch interaction - Web APIs
see the update_background function for more details
about the color changes.
...h point ev.target.style.background = "yellow"; break; case 2: // two simultaneous touch points ev.target.style.background = "pink"; break; default: // three or more simultaneous touches ev.target.style.background = "lightblue"; } } event logging these functions are used send to event activity to the application window (to support debugging and learning
about the event flow).
Web Push API Notifications best practices - Web APIs
in this document, we’ll talk
about the ethical use of web push notifications.
... 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.
RTCConfiguration - Web APIs
<<<add a link to info
about multiplexed rtcp.
... <<<--- add link to information
about identity --->>> example the configuration below establishes two ice servers.
RTCDataChannel: error event - Web APIs
bubbles yes cancelable no interface rtcerrorevent event handler property onerror the rtcerrorevent object provides details
about the error that occurred; see that article for details.
...the message string is always output, as is information
about the source file's name, line number, and column number at which the error occurred.
RTCIceCandidate.address - Web APIs
security notes it's important to note here that although webrtc does not require the two peers on an rtcpeerconnection to know one another's true ip addresses, the address property on rtcicecandidate can expose more information
about the source of the remote peer than the user expects.
... the ip address can be used to derive information
about the remote device's location, network topology, and so forth.
RTCIceCandidateStats - Web APIs
this function is then called for rtcstats objects whose type is local-candidate, indicating that the object is in fact an rtcicecandidatestats with information
about a local ice candidate.
...rnet": case "vpn": return true; case "bluetooth": case "cellular": case "wimax": case "unknown": default: return false; } } if (rtcstats && rtcstats.type === "local-candidate") { if (!isusablenetworktype(rtcstats)) { abortconnection(); return; } } this code calls a function called abortconnection() if the rtcstats object represents information
about a local candidate is which would be using a network connection other than ethernet or a vpn.
RTCIceTransport - Web APIs
the rtcicetransport interface provides access to information
about the ice transport layer over which the data is being sent and received.
... this is particularly useful if you need to access state information
about the connection.
RTCRtpContributingSource.source - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari ?
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios ?
RTCRtpReceiver - Web APIs
rtcrtpreceiver.getparameters() returns an rtcrtpparameters object which contains information
about how the rtc data is to be decoded.
... rtcrtpreceiver.getstats() returns a promise whose fulfillment handler receives a rtcstatsreport which contains statistics
about the incoming streams and their dependencies.
RTCRtpSender - Web APIs
the rtcrtpsender interface provides the ability to control and obtain details
about how a particular mediastreamtrack is encoded and sent to a remote peer.
... with it, you can configure the encoding used for the corresponding track, get information
about the device's media capabilities, and so forth.
RTCRtpStreamStats - Web APIs
the rtcrtpstreamstats dictionary is returned by the rtcpeerconnection.getstats(), rtcrtpsender.getstats(), and rtcrtpreceiver.getstats() methods to provide detailed statistics
about webrtc connectivity.
...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.
RTCStats - Web APIs
for example, statistics
about a received rtp stream are represented by rtcreceivedrtpstreamstats.
... rtcoutboundrtpstreamstats contains statistics
about the local sending endpoint of an rtp stream.
Using the Screen Capture API - Web APIs
this effect can be amplified when capturing logical display surfaces, which may contain content that the user doesn't know
about at all, let alone see.
... the dumpoptionsinfo() function—which we will look at in a moment—dumps information
about the stream to the log box for educational purposes.
ServiceWorkerGlobalScope - Web APIs
pushsubscriptionchange occurs when a push subscription has been invalidated, or is
about to be invalidated (e.g.
...
about to fetch from network...'); return fetch(event.request).then(function(response) { console.log('response from network is:', response); return response; }, function(error) { console.error('fetching failed:', error); throw error; }); }) ); }); specifications specification status comment service workersthe defini...
ServiceWorkerRegistration.showNotification() - Web APIs
on android devices, the badge should accommodate devices up to 4x resolution,
about 96 by 96 px, and the image will be automatically masked.
...for example, this could be in the past when a notification is used for a message that couldn’t immediately be delivered because the device was offline, or in the future for a meeting that is
about to start.
Service Worker API - Web APIs
note: service workers win over previous attempts in this area such as; appcache because they don't make assumptions
about what you are trying to do, and then break when those assumptions are not exactly right; you have granular control over everything.
...it contains information
about the request and resulting response, and provides the fetchevent.respondwith() method, which allows us to provide an arbitrary response back to the controlled page.
TextEncoder.prototype.encodeInto() - Web APIs
see the next section
about c strings.
...there are still edge-cases which are possible // in many circumstances, we can use the faster native textencoder var res8 = globaltextencoderinstance["encode"](string); var res8len = res8.length|0; if (res8len < u8len) { // if we dont have to worry
about read/written u8arr.set( res8 ); return { "read": strlen, "written": res8.length|0 }; } } return polyfill_encodeinto(string, u8arr); }; } })(typeof global == "" + void 0 ?
Multi-touch interaction - Web APIs
see touch move for information
about the background color changing when a 2-finger move/pinch/zoom is detected.
... // single tap` ev.target.style.background = "yellow"; break; case 2: // two simultaneous touches ev.target.style.background = "pink"; break; default: // more than two simultaneous touches ev.target.style.background = "lightblue"; } } event logging the functions are used to log event activity to the application window, to support debugging and learning
about the event flow.
Using Touch Events - Web APIs
for more information
about the interaction between mouse and touch events, see supporting both touchevent and mouseevent.
... what
about pointer events?
UIEvent.initUIEvent() - Web APIs
the page on creating and triggering events gives more information
about the way to use these.
... detail is an unsigned long specifying some detail information
about the event, depending on the type of event.
UIEvent - Web APIs
uievent.detailread only returns a long with details
about the event, depending on the event type.
... uievent.sourcecapabilities read only returns an instance of the inputdevicecapabilities interface, which provides information
about the physical device responsible for generating a touch event.
USBAlternateInterface - Web APIs
the usbalternateinterface interface of the webusb api provides information
about a particular configuration of an interface provided by the usb device.
... constructor usbalternateinterface.usbalternateinterface creates a new usbalternateinterface object which will be populated with information
about the alternate interface of the provided usbinterface with the given alternate setting number.
USBConfiguration - Web APIs
the usbconfiguration interface of the webusb api provides information
about a particular configuration of a usb device and the interfaces that it supports.
... constructor usbconfiguration.usbconfiguration() creates a new usbconfiguration object which contains information
about the configuration on the provided usbdevice with the given configuration value.
USBEndpoint - Web APIs
the usbendpoint interface of the webusb api provides information
about an endpoint provided by the usb device.
... constructor usbendpoint.usbendpoint creates a new usbendpoint object which will be populated with information
about the endpoint on the provided usbaltenateinterface with the given endpoint number and transfer direction.
USBInterface - Web APIs
the usbinterface interface of the webusb api provides information
about an interface provided by the usb device.
... constructor usbinterface.usbinterface creates a new usbinterface object which will be populated with information
about the interface on the provided usbconfiguration with the given interface number.
WEBGL_debug_renderer_info - Web APIs
the webgl_debug_renderer_info extension is part of the webgl api and exposes two constants with information
about the graphics driver for debugging purposes.
... examples with the help of this extension, privileged contexts are able to retrieve debugging information
about about the user's graphic driver: var canvas = document.getelementbyid('canvas'); var gl = canvas.getcontext('webgl'); var debuginfo = gl.getextension('webgl_debug_renderer_info'); var vendor = gl.getparameter(debuginfo.unmasked_vendor_webgl); var renderer = gl.getparameter(debuginfo.unmasked_renderer_webgl); console.log(vendor); console.log(renderer); specifications specification ...
WebGL2RenderingContext.getInternalformatParameter() - Web APIs
the webgl2renderingcontext.getinternalformatparameter() method of the webgl 2 api returns information
about implementation-dependent support for internal formats.
... internalformat a glenum specifying the internal format
about which to retrieve information (must be a color-renderable, depth-renderable or stencil-renderable format).
Boilerplate 1 - Web APIs
specifically, the html has a <p> element that contains some descriptive text
about the page and may also hold error messages; a <canvas> element; and optionally a <button>.
... html <p>[ some descriptive text
about the example.
WebGL by example - Web APIs
explanations
about the examples are found in both the main text and in comments within the code.
... you should read all comments, because more advanced examples could not repeat comments
about parts of the code that were previously explained.
Introduction to the Real-time Transport Protocol (RTP) - Web APIs
some of the more noteworthy things rtp doesn't include: editor's note: we should add information
about where these deficiencies are compensated for, if they are at all.
... rtcrtpreceiver rtcrtpreceivers provide the ability to inspect and obtain information
about incoming mediastreamtrack data.
Lifetime of a WebRTC session - Web APIs
this article doesn't get into details of the actual apis involved in establishing and handling a webrtc connection; it simply reviews the process in general with some information
about why each step is required.
...the most important thing to know
about the signaling process for webrtc: it is not defined in the specification.
Web Animations API Concepts - Web APIs
back then it was the only animation engine browsers had to worry
about.
...(read more
about how to use element.animate() in using the web animations api.) uses the api allows for the creation of dynamic animations that can be updated on the fly as well as more straightforward, declarative animations like those css creates.
Background audio processing using AudioWorklet - Web APIs
glitch project page see the code try it live creating an audio worklet processor fundamentally, an audio worklet processor (which we'll refer to usually as either an "audio processor" or simply as a "processor" because otherwise this article will be
about twice as long) is implemented using a javascript module that defines and installs the custom audio processor class.
...which brings us to talking
about those inputs and outputs.
Using IIR filters - Web APIs
if you are looking to learn more there's some information
about the maths behind iir filters here.
...musicdsp.org is also a great resource if you want to read more
about different filters and how they are implemented digitally.
window.cancelIdleCallback() - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support yessafari no support nowebview android full support 47chrome android full support 47firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support yessafari ios no support nosamsung internet android full support 5.0legend full support full support no support no supportexperimental.
window.dump() - Web APIs
you can set the preference in
about:config or in a user.js file.
... note: this preference is not listed in
about:config by default, you may need to create it (right-click the content area -> new -> boolean).
Window.event - Web APIs
to change preferences in firefox, visit
about:config.ie full support 4opera full support 7safari full support 1.1webview android full support 1chrome android full support 18firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 10.1safari ios full support 1samsung internet android full support 1.0legend full support full supportsee implementation notes.see implementation notes.user must...
Privileged features - Web APIs
mozilla and firefox users can force new windows to always render the titlebar by setting dom.disable_window_open_feature.titlebar to true in
about:config or in their user.js file.
... mozilla and firefox users can force new windows to always have a close button by setting dom.disable_window_open_feature.close to true in
about:config or in their user.js file.
XRInputSourceEvent - Web APIs
to learn more
about handling inputs in a webxr project, see the article inputs and input sources.
... properties frame read only an xrframe object providing the needed information
about the event frame during which the event occurred.
XSLT Basic Example - Web APIs
the example will take an xml document that contains information (title, list of authors and body text)
about an article and present it in an human readable form.
...the xml document (example.xml) contains the information
about the article.
XSL Transformations in Mozilla FAQ - Web APIs
what
about document.write?
... <xsl:if xmlns:msxsl="urn:schemas-microsoft-com:xslt" test="system-property('msxsl:version')=3"> <!-- msxml3 specific markup --> </xsl:if> what
about media="print"?
ARIA annotations - Accessibility
you can learn more
about this in the next section.
...� simply nest the comments inside one another, like so: <div role="comment" id="thread-1" data-author="chris"> <h3>chris said</h3> <p class="comment-text">i really think this moment could use more cowbell.</p> <p><time datetime="2019-03-30t19:29">march 30 2019, 19:29</time></p> <div role="comment" data-author="marcus"> <h3>marcus replied</h3> <p class="comment-text">i don't know
about that.
Accessibility and Spacial Patterns - Accessibility
the web developer can do something
about this in the manner in which he displays math.
...ty: what users can do to browse more safely web accessibiltity for seizures and physical reactions web accessibility: understanding colors and luminance braille part 3: a step-by-step guide to typesetting ada braille correctly in adobe illustrator spatial math in brailleblaster (4 of 5) government literature nasa: designing with blue math spatial reasoning: why math talk is
about more than numbers scientific literature colour constancy in context: roles for local adaptation and levels of reference gamma oscillations and photosensitive epilepsy characterizing the patterned images that precipitate seizures and optimizing guidelines to prevent them arnold wilkins, john emmett, and graham harding contributers: heartfelt thanks to jim allan of the diagram center for...
Text labels and names - Accessibility
examples the title for the reference article
about the <title> element is as follows: <title><title>: the document title element - html: hypertext markup language</title> another example might look like so: <title>fill in your details to register — mygov services</title> to help the user, you can update the page title value to reflect significant page state changes (such as form validation problems): <title>2 errors — fill in your ...
... <input type="checkbox" id="terms"> </label> <input type="checkbox" id="emailoptin"> <label for="emailoptin">yes, please send me news
about this product.</label> form elements should have a visible text label in addition to having a <label> for every form element, those labels should be visible, not hidden.
Understanding the Web Content Accessibility Guidelines - Accessibility
wcag 2.1 includes: all of wcag 2.0 (verbatim, word-for-word) 17 new success criteria at the a / aa / aaa levels primarily addressing user needs in these areas: mobile accessibility low vision cognitive read more
about wcag 2.1: deque: wcag 2.1: what is next for accessibility guidelines tpg: web content accessibility guidelines (wcag) 2.1 legal standing this guide is intended to provide practical information to help you build better, more accessible websites.
...if you are worried
about the legal implications of web accessibility, we'd recommend that you check the specific legislation governing accessibility for the web/public resources in your country or locale, and seek the advice of a qualified lawyer.
::slotted() - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 37safari full support 10webview android full support 50chrome android full support 50firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 37safari ios full support 10samsung internet android full support 5.0legend full support full support no support no supportuser must explicitly enable this feature.user must explicitly e...
:host() - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 41safari full support 10notes full support 10notes notes certain css selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.webview andro...
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios full support 10notes full support 10notes notes certain css selectors do not work (:host > .local-child) and styling slotted content (::slotted) is buggy.samsung internet android full support ...
:host - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 41safari full support 10webview android full support 54chrome android full support 54firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios full support 10samsung internet android full support 6.0legend full support full support no support no supportuser must explicitly enable this feature.user must explicitly e...
Using feature queries - CSS: Cascading Style Sheets
the difference is that with a media query you are testing something
about the environment in which the web page is running, whereas with feature queries you are testing browser support for css features.
...once a floated item becomes a grid item, the float is removed — something you can read more
about in supporting older browsers.
CSS Containment - CSS: Cascading Style Sheets
the browser can then use this information to make decisions
about how to render the content.
...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.
Backwards Compatibility of Flexbox - CSS: Cascading Style Sheets
you can also check can i use for information
about when prefixes were removed in browsers to make your decision.
...the following feature query would include uc browser, which supports feature queries and old flexbox syntax, prefixed: @supports (display: flex) or (display: -webkit-box) { // code for supporting browsers } for more information
about using feature queries see using feature queries in css on the mozilla hacks blog.
OpenType font features guide - CSS: Cascading Style Sheets
this article provides you with all you need to know
about using opentype font features in css.
... more
about alternates https://www.w3.org/tr/css-fonts-4/#propdef-font-variant-alternates /docs/web/css/font-variant-alternates ligatures (font-variant-ligatures) ligatures are glyphs that replace two or more separate glyphs in order to represent them more smoothly (from a spacing or aesthetic perspective).
Auto-placement in CSS Grid Layout - CSS: Cascading Style Sheets
a related issue may have already come to mind if you followed the last guide
about named lines on the grid.
... it would be to define a rule that said “auto-place items against the next line named “n”, and grid would then skip other lines.there is an issue raised
about this on the csswg github repository, and you would be welcome to add your own use cases to this.
Line-based placement with CSS Grid - CSS: Cascading Style Sheets
we will learn more
about the interaction between writing modes and grids in a later guide.
...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.
Privacy and the :visited selector - CSS: Cascading Style Sheets
before
about 2010, the css :visited selector allowed websites to uncover a user's browsing history and figure out what sites the user had visited.
...this process was quick to execute, and made it possible not only to determine where the user had been on the web, but could also be used to guess a lot of information
about the user's identity.
aspect-ratio - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android partial support 79notes partial support 79notes notes webview 79 adds internal support only for mapped valueschrome android ...
...to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android full support 79chrome android full support 79firefox android no support ...
font-variant-caps - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 39safari no support nowebview android full support 52chrome android full support 52firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios no support nosamsung internet android full support 6.0legend full support full support no support no supportuser must explicitly enable this f...
font-variant-position - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android no support nochrome android no support nofirefox android full support ...
...to change preferences in firefox, visit
about:config.opera android no support nosafari ios no support nosamsung internet android no support nolegend full support full support no support no supportuser must explicitly enable this feature.user...
font-variant - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 39safari full support 9.1webview android full support 52chrome android full support 52firefox android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 41safari ios full support 9.3samsung internet android full support 6.0greek accented characterschrome no support nonotes no support nonotes notes some operating systems may correctly omit accents in ...
position - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera full support 43safari full support 6.1prefixed full support 6.1prefixed prefixed implemented with the vendor prefix: -webkit-webview android full support ...
...to change preferences in firefox, visit
about:config.opera android full support 43safari ios full support 6.1prefixed full support 6.1prefixed prefixed implemented with the vendor prefix: -webkit-samsung internet android full support 6.0legend ...
text-rendering - CSS: Cascading Style Sheets
the text-rendering css property provides information to the rendering engine
about what to optimize for when rendering text.
... syntax values auto the browser makes educated guesses
about when to optimize for speed, legibility, and geometric precision while drawing text.
will-change - CSS: Cascading Style Sheets
this property is intended as a method for authors to let the user-agent know
about properties that are likely to change ahead of time.
... contents indicates that the author expects to animate or change something
about the element’s contents in the near future.
CSS: Cascading Style Sheets
you might have heard
about css1, css2.1, css3.
...we have covered the necessary prerequisites so we can now dive deep into css layout, looking at different display settings, modern layout tools like flexbox, css grid, and positioning, and some of the legacy techniques you might still want to know
about.
Media events - Developer guides
various events are sent when handling media that are embedded in html documents using the <audio> and <video> elements; this section lists them and provides some helpful information
about using them.
...information
about the current amount of the media that has been downloaded is available in the media element's buffered attribute.
Making content editable - Developer guides
this article provides some information
about this functionality.
...you can enable them by setting the preferences shown below using
about:config: user_pref("capability.policy.policynames", "allowclipboard"); user_pref("capability.policy.allowclipboard.sites", "https://www.mozilla.org"); user_pref("capability.policy.allowclipboard.clipboard.cutcopy", "allaccess"); user_pref("capability.policy.allowclipboard.clipboard.paste", "allaccess"); example: a simple but complete rich text editor <!doctype html> <html> <head> <title>rich te...
Constraint validation - Developer guides
while marking up the form itself is easy, checking whether each field has a valid and coherent value is more difficult, and informing the user
about the problem may become a headache.
... if (constraint.test(zipfield.value)) { // the zip follows the constraint, we use the constraintapi to tell it zipfield.setcustomvalidity(""); } else { // the zip doesn't follow the constraint, we use the constraintapi to // give a message
about the format required for this country zipfield.setcustomvalidity(constraints[country][1]); } } then we link it to the onchange event for the <select> and the oninput event for the <input>: window.onload = function () { document.getelementbyid("country").onchange = checkzip; document.getelementbyid("zip").oninput = checkzip; } you can see a live example of the postal code validati...
Introduction to Web development - Developer guides
pt — a comprehensive guide to intermediate and advanced javascript methodologies intermediate a re-introduction to javascript — a recap on the javascript programming language aimed at intermediate-level developers essential javascript design patterns — an introduction to essential javascript design patterns introduction to object-oriented javascript — learn
about the javascript object model.
... christian heilmann's javascript best practices — learn
about some of the obvious and (not so) obvious best practices when writing javascript.
Mobile-friendliness - Developer guides
that’s why this first goal is all
about presenting your content in a way that makes life easy for users on mobile device.
... goal #2 (content) “adjust your content for mobile users.” think
about what your users want to do at your site if they are on a phone.
Date and time formats used in HTML - HTML: Hypertext Markup Language
fter 2:00 pm on april 1, 1977 [details] 1901-01-01t00:00z midnight utc on january 1, 1901 [details] 1901-01-01t00:00:01-04:00 1 second past midnight eastern standard time (est) on january 1, 1901 [details] basics before looking at the various formats of date and time related strings used by html elements, it is helpful to understand a few fundamental facts
about the way they're defined.
...no information
about the time zone is included in the string; the date and time is presumed to be in the user's local time zone.
<footer> - HTML: Hypertext Markup Language
a footer typically contains information
about the author of the section, copyright data or links to related documents.
... usage notes enclose information
about the author in an <address> element that can be included into the <footer> element.
Standard metadata names - HTML: Hypertext Markup Language
the css device adaptation specification defines the following metadata name: viewport: gives hints
about the size of the initial size of the viewport.
... to learn
about this declaration in firefox for mobile, see this article.
<tbody>: The Table Body element - HTML: Hypertext Markup Language
basic example in this relatively simple example, we create a table listing information
about a group of students with a <thead> and a <tbody>, with a number of rows in the body.
...note that all of the body cells including information
about students are contained within a single <tbody> element.
<video>: The Video Embed element - HTML: Hypertext Markup Language
see our autoplay guide for additional information
about how to properly use autoplay.
... preload this enumerated attribute is intended to provide a hint to the browser
about what the author thinks will lead to the best user experience with regards to what content is loaded before the video is played.
HTML documentation index - HTML: Hypertext Markup Language
a footer typically contains information
about the author of the section, copyright data or links to related documents.
... 108 <head>: the document metadata (header) element element, html, html document metadata, html:metadata content, reference, web the html <head> element contains machine-readable information (metadata)
about the document, like its title, scripts, and style sheets.
Microdata - HTML: Hypertext Markup Language
note: more
about itemtype attributes can be found at http://schema.org/thing microdata vocabularies provide the semantics or meaning of an item.
... itemscope – itemscope (usually) works along with itemtype to specify that the html contained in a block is
about a particular item.
Evolution of HTTP - HTTP
during the same time, the need for an encrypted transport layer raised: the web left the relative trustiness of a mostly academic network, to a jungle where advertisers, random individuals or criminals compete to get as much private information
about people, try to impersonate them or even to replace data transmitted by altered ones.
... the introduction of client-hints allows the browser, or client, to proactively communicate information
about its requirements, or hardware constraints, to the server.
Configuring servers for Ogg media - HTTP
for apache, you can add the following to your configuration: addtype audio/ogg .oga addtype video/ogg .ogv addtype application/ogg .ogg you can find specific information
about possible media file types and the codecs used within them in our comprehensive guide to media types and formats on the web.
... by default, ffmpeg2theora uses one key frame every 64 frames (or
about every 2 seconds at 30 frames per second), which works pretty well.
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.
...servfail) dns.address_changed for security reasons, if the server ip address that delivered the original report is different to the current server ip address at time of error generation, the report data will be downgraded to only include information
about this problem and the type set to dns.address_changed.
An overview of HTTP - HTTP
new functionality can even be introduced by a simple agreement between a client and a server
about a new header's semantics.
...the server can instruct proxies and clients,
about what to cache and for how long.
Proxy servers and tunneling - HTTP
this page outlines some basics
about proxies and introduces a few configuration options.
... to provide information
about the proxy itself (not
about the client connecting to it), the via header can be used.
HTTP response status codes - HTTP
207 multi-status (webdav) conveys information
about multiple resources, for situations where multiple status codes might be appropriate.
...the webmaster must also take care
about the caching-related headers that are sent along with this response, as these temporary condition responses should usually not be cached.
Equality comparisons and sameness - JavaScript
this is useful in representing certain mathematical solutions, but as most situations don't care
about the difference between +0 and -0, strict equality treats them as the same value.
...which one is the better model for understanding depends on how you choose to view things.) however, this way of thinking
about the built-in sameness operators is not a model that can be stretched to allow a place for es2015's object.is on this "spectrum".
Details of the object model - JavaScript
however, in talking
about javascript, "instance" can be used informally to mean an object created using a particular constructor function.
...if you care
about the exact value of this counter, one possible solution involves instead using the following constructor: function employee(name, dept) { this.name = name || ''; this.dept = dept || 'general'; if (name) this.id = idcounter++; } when you create an instance of employee to use as a prototype, you do not supply arguments to the constructor.
Expressions and operators - JavaScript
this section describes the operators and contains information
about operator precedence.
... < <= > >= in instanceof equality == != === !== bitwise-and & bitwise-xor ^ bitwise-or | logical-and && logical-or || conditional ?: assignment = += -= *= /= %= <<= >>= >>>= &= ^= |= &&= ||= ??= comma , a more detailed version of this table, complete with links to additional details
about each operator, may be found in javascript reference.
Functions - JavaScript
see also the exhaustive reference chapter
about javascript functions to get to know the details.
...read more
about objects and methods in working with objects.
Text formatting - JavaScript
0; console.log('fifteen is ' + (five + ten) + ' and not ' + (2 * five + ten) + '.'); // "fifteen is 15 and not 20." now, with template literals, you are able to make use of the syntactic sugar making substitutions like this more readable: const five = 5; const ten = 10; console.log(`fifteen is ${five + ten} and not ${2 * five + ten}.`); // "fifteen is 15 and not 20." for more information, read
about template literals in the javascript reference.
... const germandictionary = new intl.collator('de-de-u-co-dict'); // as if sorting ["hochberg", "honigswald", "holzman"]: console.log(names.sort(germandictionary.compare).join(', ')); // logs "hochberg, holzman, hönigswald" for more information
about the intl api, see also introducing the javascript internationalization api.
JavaScript Guide - JavaScript
if you need exhaustive information
about a language feature, have a look at the javascript reference.
... chapters this guide is divided into several chapters: introduction
about this guide
about javascript javascript and java ecmascript tools hello world grammar and types basic syntax & comments declarations variable scope variable hoisting data structures and types literals control flow and error handling if...else switch try/catch/throw error objects loops and iteration for while do...while break/continue for..in for..of functions defining functions calling functions function scope closures arguments & parameters arrow functions expressions and operators assignment & comparisons arithmetic operators bitwise & logical operators conditional (ternary) operator numbers and dates num...
Array - JavaScript
nevertheless, trying to access an element of an array as follows throws a syntax error because the property name is not valid: console.log(arr.0) // a syntax error there is nothing special
about javascript arrays and the properties that cause this.
...this array has properties and elements which provide information
about the match.
FinalizationRegistry - JavaScript
it's common to use the object itself as the unregister token, which is just fine: registry.register(theobject, "some value", theobject); // ...some time later, if you don't care
about `theobject` anymore...
... registry.unregister(theobject); it doesn't have to be the same object, though; it can be a different one: registry.register(theobject, "some value", tokenobject); // ...some time later, if you don't care
about `theobject` anymore...
Intl.Locale.prototype.baseName - JavaScript
the intl.locale.prototype.basename property returns a substring of the locale's string representation, containing core information
about the locale.
...the basename property returns basic, core information
about the locale in the form of a substring of the complete data string.
Number - JavaScript
a number only keeps
about 17 decimal places of precision; arithmetic is subject to rounding.
... the largest value a number can hold is
about 1.8×10308.
Promise - JavaScript
to learn
about the way promises work and how you can use them, we advise you to read using promises first.
...states and fates contains more details
about promise terminology.
WeakMap - JavaScript
you can learn more
about weakmaps in the weakmap object guide (under keyed collections).
...native weakmaps can be particularly useful constructs when mapping keys to information
about the key that is valuable only if the key has not been garbage collected.
import.meta - JavaScript
it contains information
about the module, like the module's url.
... examples using import.meta given a module my-module.js <script type="module" src="my-module.js"></script> you can access meta information
about the module using the import.meta object.
JavaScript reference - JavaScript
this part of the javascript section on mdn serves as a repository of facts
about the javascript language.
... read more
about this reference.
Web app manifests
the web app manifest provides information
about a web application in a json text file, necessary for the web app to be downloaded and be presented to the user similarly to a native app (e.g., be installed on the homescreen of a device, providing users with quicker access and a richer experience).
...click each one for more information
about it: background_colorcategoriesdescriptiondirdisplayiarc_rating_idiconslangnameorientationprefer_related_applicationsrelated_applicationsscopescreenshotsserviceworkershort_nameshortcutsstart_urltheme_color example manifest { "name": "hackerweb", "short_name": "hackerweb", "start_url": ".", "display": "standalone", "background_color": "#fff", "description": "a simply readable hacker news app.", "icons": [{ "src": "ima...
MathML
mathml reference mathml element reference details
about each mathml element and compatibility information for desktop and mobile browsers.
... mathml attribute reference information
about mathml attributes that modify the appearance or behavior of elements.
Digital video concepts - Web media technologies
because the eye has vastly more rods than cones (
about 120 million rods to around 6 or 7 million cones), we see detail in greyscale, with color being far less detailed.
...the greyscale sensor is 120 megapixels, while the color sensor is only
about 7 megapixels.
Using images in HTML - Web media technologies
image file type and format guide a guide to the various image file types commonly supported by web browsers including details
about their individual use cases, capabilities, and compatibility factors.
... learn html: responsive images in this article, we'll learn
about the concept of responsive images — images that work well on devices with widely differing screen sizes, resolutions, and other such features — and look at what tools html provides to help implement them.
CSS and JavaScript animation performance - Web Performance
enabling fps tools before going through the example, please enable fps tools first to see the current frame rate: in the url bar, enter
about:config; click the i’ll be careful, i promise!
... to enable the omta (off main thread animation) in firefox, you can go to
about:config and search for the layers.offmainthreadcomposition.async-animations.
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.
...it contains multiple fields that define certain information
about the web app and how it should behave.
PWA developer guide - Progressive web apps (PWAs)
in the articles listed here, you'll find guides
about every aspect of development specific to the greation of progressive web applications (pwas).
... for all other documentation
about web development, which generally pertains to pwas as well, see our primary web development documentation.
Introduction to progressive web apps - Progressive web apps (PWAs)
an example application in this series of articles we will examine the source code of a super simple website that lists information
about games submitted to the a-frame category in the js13kgames 2017 competition.
... you don't have to think
about what the actual content on the website is; the main point is to learn how to use pwa features in your own projects.
Structural overview of progressive web apps - Progressive web apps (PWAs)
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>js13kgames a-frame entries</title> <meta name="description" content="a list of a-frame entries submitted to the js13kgames 2017 competition, used as an example for the mdn articles
about progressive web apps."> <meta name="author" content="end3r"> <meta name="theme-color" content="#b12a34"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:image" content="icons/icon-512.png"> <link rel="shortcut icon" href="favicon.ico"> <link rel="stylesheet" href="style.css"> <link rel="manifest" href="js13kpwa.webmanifest"> <script src="data/games.
...de.</p> <button id="notifications">request dummy notifications</button> <section id="content"> // content inserted in here </section> </main> <footer> <p>© js13kgames 2012-2018, created and maintained by <a href="http://end3r.com"> andrzej mazur</a> from <a href="http://enclavegames.com">enclave games</a>.</p> </footer> </body> </html> the <head> section contains basic information
about the app, including its title, description, and the needed references to its css file, web manifest, the main application javascript file (app.js, in which the app is initialized) as well as an additional javascript code file.
path - SVG: Scalable Vector Graphics
for detailed information
about the commands that can be used, see the explanation for the d attribute.
...for detailed information
about the commands that can be used, see the explanation for the d attribute.
Namespaces crash course - SVG: Scalable Vector Graphics
in fact how does the user agent tell when xml content is something it knows
about, and not just a meaningless xml file containing arbitrary element names unknown to it?
...in this case, we have chosen to use the prefix xlink (the second part) since the prefix will be used to tell the user agent
about attributes that belong to xlink.
Patterns - SVG: Scalable Vector Graphics
they're also very powerful, so they're worth talking
about and getting at least a fundamental grasp on.
... the confusing thing
about patterns is defining a unit system and their size.
SVG and CSS - SVG: Scalable Vector Graphics
result notes
about this demonstration: the svg document links the stylesheet in the usual way.
...there is some discussion
about what rules apply to such referenced elements.
Transport Layer Security - Web security
the cipher names correspondence table on the mozilla opsec team's article on tls configurations lists these names as well as information
about compatibility and security levels.
...the timeout value can be varied by editing the network.http.tls-handshake-timeout pref in
about:config.
Web security
this article provides some information
about signature algorithms known to be weak, so you can avoid them when appropriate.
... privacy and the :visited selector before
about 2010, the css :visited selector allowed websites to uncover a user's browsing history and figure out what sites the user had visited.
port - Archive of obsolete content
when messages are sent their payloads are automatically serialized, and when messages are received their payloads are automatically deserialized, so you don't need to worry
about serialization.
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.
Porting the Library Detector - Archive of obsolete content
tview.width = tab.libraries.length * icon_width; } main.js will use the tabs module to update the widget's content when necessary (for example, when the user switches between tabs): tabs.on('activate', function(tab) { updatewidgetview(tab); }); tabs.on('ready', function(tab) { tab.libraries = []; }); showing the library detail the xul library detector displayed the detailed information
about each library on mouseover in a tooltip: we can't do this using a widget, so instead will use a panel.
selection - Archive of obsolete content
to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
system - Archive of obsolete content
usage querying your environment using the system module you can access environment variables (such as path), find out which operating system your add-on is running on and get information
about the host application (for example, firefox or fennec), such as its version.
windows - Archive of obsolete content
to learn more
about private windows, how to opt into private browsing, and how to support private browsing, refer to the documentation for the private-browsing module.
jpm - Archive of obsolete content
mkdir my-addon cd my-addon jpm init you'll then be asked to supply some information
about your add-on: this will be used to create your add-on's package.json file.
package.json - Archive of obsolete content
the package.json file contains manifest data for your add-on, providing not only descriptive information
about the add-on for presentation in the add-ons manager, but other metadata required of add-ons.
Tools - Archive of obsolete content
package.json the package.json file contains manifest data for your add-on, providing not only descriptive information
about the add-on for presentation in the add-ons manager, but other metadata required of add-ons.
Add a Context Menu Item - Archive of obsolete content
u.item({ label: "log selection", context: contextmenu.selectioncontext(), contentscript: 'self.on("click", function () {' + ' var text = window.getselection().tostring();' + ' self.postmessage(text);' + '});', accesskey: "l", onmessage: function (selectiontext) { console.log(selectiontext); } }); learning more to learn more
about the context-menu module, see the context-menu api reference.
File I/O - Archive of obsolete content
storing nsifile in preferences the following two snippets show the right way to store a file path in user preferences (more
about preferences in mozilla): absolute path (nsifile) to store an arbitrary path in user preferences, use this code: // |file| is nsilocalfile.
Finding window handles - Archive of obsolete content
// 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++.
Forms related code snippets - Archive of obsolete content
date picker (before implementing it in a working environment, please read the note
about the const statement compatibility) <!doctype html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>datepicker example - mdn</title> <script type="text/javascript"> /*\ |*| |*| datepicker example mdndeveloper network |*| |*| https://developer.mozilla.org/docs/code_snippets/forms |*| https://developer.mozilla.org/user:fusionchess |*| |*| this snippet is released under the gnu public license, version 3 or later.
JavaScript Debugger Service - Archive of obsolete content
// 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.
Observer Notifications - Archive of obsolete content
createinstance(components.interfaces.nsisupportsstring); // assign some text to data attribute subject.data = "this is a test."; // notify all registered observers observerservice.notifyobservers( subject, "xulschoolhello-test-topic", "hello"); } in the notifytest method, the notifyobservers call is used to notify all registered observers
about the notification topic "xulschoolhello-test-topic".
Tabbed browser - Archive of obsolete content
reusing by url/uri a common feature found in many extensions is to point the user to chrome:// uris in a browser window (for example, help or
about information) or external (on-line http(s)://) html documents when the user clicks an extension's button or link.
CSS3 - Archive of obsolete content
precision
about the real size of the absolute length units, which are not really absolute, but defined in relation with the reference pixel .
List of Former Mozilla-Based Applications - Archive of obsolete content
old article available
about how borland embedded mozilla in kylix 2 mango im client last news item on site from january 2007 mobidvd dvd/vcd/cd ripping software site down mozilla suite internet application suite development shifted to firefox, thunderbird and seamonkey applications netscape navigator browser support for netscape ended on february 1, 2008 n...
Localizing an extension - Archive of obsolete content
update the chrome manifest to let firefox know
about the locale files, we need to make a revision to our chrome.manifest file, adding one line for each localization: locale stockwatcher2 en-us chrome/locale/ this instructs firefox that the en-us localization is located in the chrome/locale/en-us directory.
Locked config settings - Archive of obsolete content
} catch(e) { displayerror("test", e); } clear text configuration if you don't care
about encoding the mozilla.cfg file, append this config to all.js instead : pref("general.config.obscure_value", 0); pref("general.config.filename", "mozilla.cfg"); ...
Structure of an installable bundle - Archive of obsolete content
official references for toolkit api structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration printing in xul apps ...
Adding the structure - Archive of obsolete content
panel> <statusbarpanel class="statusbarpanel-iconic" id="tinderbox-status" status="none"/> <statusbarpanel class="statusbarpanel-iconic" id="offline-status"/> <statusbarpanel class="statusbarpanel-iconic" id="security-button" onclick="browserpageinfo(null, 'securitytab')"/> </statusbar> the statusbar xul element defines a horizontal status bar where informative messages
about an application's state can be displayed.
Creating a hybrid CD - Archive of obsolete content
cii 'r*ch' 'text' "css file" .dtd ascii 'r*ch' 'text' "dtd file" .js ascii 'r*ch' 'text' "javascript file" .mp3 raw 'tvod' 'mpg3' "mpeg file" .mpg raw 'tvod' 'mpeg' "mpeg file" .mpeg raw 'tvod' 'mpeg' "mpeg file" .au raw 'tvod' 'ulaw' "audio file" * ascii 'ttxt' 'text' "text file" for more information
about recording cds, see the cd-recordable faq.
Error Console - Archive of obsolete content
for information
about what javascript exceptions get logged into the error console, and how to make all exceptions get logged, read the article exception logging in javascript.
Using microformats - Archive of obsolete content
to use the api, you need to first load the object: components.utils.import("resource://gre/modules/microformats.js"); once you've loaded the microformats api, you can manage microformats using the methods listed here; for information
about parsing microformats, see parsing microformats in javascript.
Basics - Archive of obsolete content
titlethe head of the notification message.string bodythe messagestringfalse iconthe url of an .ico file.string jetpack.notifications.show("hello world");var mybody = " my first message body on jetpack";var myicon = "http://www.mozilla.com/favicon.ico";jetpack.notifications.show({title: "my first message on jetpack", body: mybody, icon: myicon}); class tabs in this class you can find information
about the tabs in your firefox window.
Extenders - Archive of obsolete content
manifest chief mechanism for allowing advanced api use within your jetpack superpowers similar to libraries, superpowers are for adding deeper platform coupling for your jetpack sandboxes safely abstracts library interoperability issues so you don't have to worry
about them future api interface method for including not yet finalized functionality in your jetpack ...
Twitter - Archive of obsolete content
(you can read
about the parameters of the various methods at twitter's api reference.) there are two special, optional properties: success and error.
System - Archive of obsolete content
clipboard interactions with the os clipboard system information get information
about the platform on which jetpack is running visual effects os-level visual effects abilities devices methods for accessing and controlling devices (ex.
slideBar - Archive of obsolete content
about status: in development instantiation: jetpack.future.import('slidebar') last update: v0.6 summary: slidebar is a reinvention of the old sidebar feature of browsers.
Mozilla Application Framework in Detail - Archive of obsolete content
that initiates installations windows registry access mozilla registration interfaces for registering new mozilla software facilities for detecting and maintaining application versions high-level objects for manipulating local directories and files complete reference documentation, including useful example installations the following snippet from an xpinstall installation gives you some idea
about how easy it is to write cross-platform installations that use the mozilla browser: // register chrome registerchrome(package | delayed_chrome, getfolder("chrome","xmlterm.jar"), "content/xmlterm/"); registerchrome(skin | delayed_chrome, getfolder("chrome","xmlterm.jar"), "skin/modern/xmlterm/"); registerchrome(locale | delayed_chrome, getfolder("chrome","xmlterm.jar"), "locale/xmlterm/"); if (g...
Reading textual data - Archive of obsolete content
var lis = fis.queryinterface(components.interfaces.nsilineinputstream); var linedata = {}; var cont; do { cont = lis.readline(linedata); var line = converter.converttounicode(linedata.value); // now you can do something with line } while (cont); fis.close(); see also writing textual data joel on software: the absolute minimum every software developer absolutely, positively must know
about unicode and character sets ...
Remotely debugging Firefox for Metro - Archive of obsolete content
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.
Merging TraceMonkey Repo - Archive of obsolete content
hg clone ssh://hg.mozilla.org/mozilla-central mozilla-central hg clone ssh://hg.mozilla.org/tracemonkey tm-merge cd tm-merge pull mozilla-central into tracemonkey via hg pull ../mozilla-central you will see a notice
about adding at least one head to the repository -- this is the mozilla-central head that you are
about to merge.
Table Cellmap - Archive of obsolete content
introduction 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).
Example Sticky Notes - Archive of obsolete content
fax - respond today.</p></div> <div class="sticker"><p>don't forget the eggs!</p></div> <div class="sticker"><p>the new project - who's on charge?</p></div> <div class="sticker"><p>learn more
about xbl.</p></div> <p style="clear: left"><a href="http://validator.w3.org/check?uri=referer"><img src="https://udn.realityripple.com/samples/e2/dd625ef1cd.png" width="88" height="31" alt="valid html 4.01" style="border: 1px none"></a></p> </body> </html> notes.xml <?xml version="1.0"?> <bindings xmlns="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekee...
Creating XPI Installer Modules - Archive of obsolete content
in the following listing, the items in red are particular to the barley package and can be edited for your own distribution: <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:chrome="http://www.mozilla.org/rdf/chrome#"> <!-- list all the packages being supplied --> <rdf:seq
about="urn:mozilla:package:root"> <rdf:li resource="urn:mozilla:package:barley"/> </rdf:seq> <!-- package information --> <rdf:description
about="urn:mozilla:package:barley" chrome:displayname="barley grain" chrome:author="ian oeschger" chrome:name="barley"> </rdf:description> </rdf:rdf> create a contents.rdf file like the one in the listing above and put it in the content/ subdirect...
Install script template - Archive of obsolete content
errorcode="+myregstatus); return myregstatus; } } // ok were done, let's write info
about our plugin, path, productname, etc // write a subkey to mozillaplugins with our plid //var mysetstrrc = winreg.setvaluestring(plidpath, plidid, dllabsolutepath); mymozillapluginpath = plidpath+"\\"+plidid; // for instance.
execute - Archive of obsolete content
t in order to pass three command-line arguments (-c, -d, and -s) to the executable, you should format the args string as follows: err = file.execute(myfile, '"-c""-d""-s"', true); //technically, given the rules above, you could also pass the same //arguments with the following line, but the result is much less //readable: err = file.execute(myfile, "\"-c\"\"-d\"\"-s\"", true); also see the note
about binaries on the macintosh platform in addfile.
patch - Archive of obsolete content
note that the registry pathname is not the location of the software on the computer; it is the location of information
about the software inside the client version registry.
XPInstall - Archive of obsolete content
<?xml version="1.0" encoding="utf-8"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description
about="urn:mozilla:install-manifest"> <!-- properties --> </description> </rdf> cross-platform install (xpinstall) is a technology used by mozilla application suite, mozilla firefox, mozilla thunderbird and other xul-based applications for installing extensions.
disablechrome - Archive of obsolete content
this is used to hide chrome when showing in-browser ui such as the
about:addons page, and causes the toolbars to be hidden, with only the tab strip (and, if currently displayed, the add-on bar) left showing.
textbox.type - Archive of obsolete content
for more information
about autocomplete textboxes, see the autocomplete documentation (xpfe [thunderbird/seamonkey]) (firefox) number a textbox that only allows the user to enter numbers.
findbar - Archive of obsolete content
attributes browserid, findnextaccesskey, findpreviousaccesskey, highlightaccesskey, matchcaseaccesskey properties browser, findmode methods close, onfindagaincommand, open, startfind, togglehighlight example <browser type="content-primary" flex="1" id="content" src="
about:blank"/> <findbar id="findtoolbar" browserid="content"/> attributes browserid type: string the id of the browser element to which the findbar is attached.
Menus - Archive of obsolete content
for more information
about how to use an overlay to modify a menu, see using menus and popups in extensions the following tables list the ids of menus in firefox that are commonly overlaid upon.
appendNotification - Archive of obsolete content
popup: null }; buttons.push(button2); //appendnotification( label , value , image (url) , priority , buttons, eventcallback ) notifybox.appendnotification("my notification text", "test notification unique id", "chrome://browser/content/
aboutrobots-icon.png", notifybox.priority_info_high, buttons, testnotificationcallback); } ...
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.
Containment Properties - Archive of obsolete content
the only difference between this and the previous example is a a couple of additional lines added to the rdf/xml: <rdf:seq rdf:
about="http://www.xulplanet.com/rdf/a"> <rdf:li rdf:resource="http://www.xulplanet.com/rdf/e"/> <rdf:li rdf:resource="http://www.xulplanet.com/rdf/f"/> </rdf:seq> the effect is that there are five results instead of three.
Filtering - Archive of obsolete content
we need to add the type to the two countries in the datasource, as well as ensure that the namespace is declared on the root rdf tag: <nso:country
about="http://www.daml.org/2001/09/countries/iso#it" dc:title="italy"/> <nso:country
about="http://www.daml.org/2001/09/countries/iso#nl" dc:title="netherlands"/> the type of these two resources, when expanded with the namespace (not shown here), will be 'http://www.daml.org/2001/09/countries/country-ont#country'.
Introduction - Archive of obsolete content
for instance, you might use the built-in bookmarks datasource which holds the user's browser bookmarks and use your own datasource to add custom data
about those bookmarks.
RDF Modifications - Archive of obsolete content
for instance, if the predicate of the triple being added was 'http://purl.org/dc/elements/1.1/date', the builder could ignore it since the template doesn't even care
about the date field.
Result Generation - Archive of obsolete content
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rel="http://www.xulplanet.com/rdf/"> <rdf:description rdf:
about="http://www.xulplanet.com/rdf/a"> <rel:relateditem rdf:resource="http://www.xulplanet.com/rdf/b"/> <rel:relateditem rdf:resource="http://www.xulplanet.com/rdf/c"/> <rel:relateditem rdf:resource="http://www.xulplanet.com/rdf/d"/> </rdf:description> <rdf:description rdf:
about="http://www.xulplanet.com/rdf/c"> <rel:relateditem rdf:resource="http://www.xulplanet.com/rdf/d"/> </...
Static Content - Archive of obsolete content
one interesting thing
about this example is that only one menupopup will be created, even though there are two in the code, one outside the template and another one inside the action body.
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="http://www.xulplanet.com...
Creating a Wizard - Archive of obsolete content
t 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="male" label="male"/> <radio value="female" label="female"/> </radiogroup> </wizardpage> </wizard> this wizard has two pages, one that h...
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.
XUL Template Primer - Bindings - Archive of obsolete content
<?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:nc="http://home.netscape.com/nc-rdf#"> <rdf:description
about="urn:root"> <nc:friends> <rdf:seq> <rdf:li> <rdf:description nc:name="alison appel"> <nc:address resource="#home"/> </rdf:description> </rdf:li> <rdf:li> <rdf:description nc:name="jack"> <nc:address resource="#doghouse"/> </rdf:description> </rdf:li> <rdf:li> <rdf:descriptio...
stringbundle - Archive of obsolete content
width, 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 applocale obsolete since gecko 1.9.1 type: nsilocale returns the xpcom object which holds information
about the user's locale.
textbox - Archive of obsolete content
for more information
about autocomplete textboxes, see the autocomplete documentation (xpfe [thunderbird/seamonkey]) (firefox) number a textbox that only allows the user to enter numbers.
window - Archive of obsolete content
this is used to hide chrome when showing in-browser ui such as the
about:addons page, and causes the toolbars to be hidden, with only the tab strip (and, if currently displayed, the add-on bar) left showing.
Dialogs in XULRunner - Archive of obsolete content
here is the code needed to open a dialog: function opendialog() { window.opendialog("chrome://basicapp/content/dialog.xul", "newdlg", "modal"); } the resulting dialog looks like this on windows 2000, and will look similar on other operating systems: the first thing that caught my eye
about dialog is the button-related attributes on the element.
MacFAQ - Archive of obsolete content
to enable the mac "
about" menu make sure that you use "
aboutname" as the id for your menu item to enable the mac "preferences" menu make sure that you use "menu_preferences" as the id for your options/preferences menu item toolbars mac windows have a small "jelly bean" button in the top right corner.
ant script to assemble an extension - Archive of obsolete content
<filterchain> <replacetokens> <token key="version" value="${version}"/> <token key="description" value="${description}"/> </replacetokens> </filterchain> </copy> <copy file="chrome/content/blogmark/
about.xul.tpl.xml" tofile="chrome/content/blogmark/
about.xul" overwrite="true"> <filterchain> <replacetokens> <token key="version" value="${version}"/> </replacetokens> </filterchain> </copy> ...
2006-09-29 - Archive of obsolete content
summary: mozilla.dev.builds - september 22nd to 29th 2006 .mar packages peter weilbacher posted a question and asked: how does one go
about creating a .mar package that can be used in updating firefox and thunderbird?
2006-10-27 - Archive of obsolete content
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.
2006-11-10 - Archive of obsolete content
discussions help
about firefox 3 a discussion on how to syncronise mozilla_1_8_branch with the trunk, which tag should be used to check-in files on trunk, and when files will be pulled from trunk to create another branch (mozilla_1_9_branch?) for firefox 3.
2006-11-10 - Archive of obsolete content
discussion version numbering changes some discussion
about paul's announcement of version number changes meetings november 6 project status meeting (notes) november 7 bon echoe status meeting (notes) november 8 gecko 1.9/gran paradiso status meeting: (agenda) ...
2006-11-24 - Archive of obsolete content
announcments bon echo status mike beltzner posted a small to-do list with regards to bon echo firefox 1.5.0.9/2.0.0.1 jay patel posted an update of bugs for the firefox 1.5.0.9/2.0.0.1 releases discussion non-ascii rendering performance boris zbarsky made some suggestions on how to improve international font rendering cvs commit access changes a large discussion went on
about changes to policies surrounding cvs commit access project drivers and technical oversight mike connor suggested ways to better organize project management, policy making, and technical oversight.
2006-10-13 - Archive of obsolete content
summary: mozilla.dev.platform - october 7th to october 13th 2006 announcements no announcments this week other traffic javascript package system for 1.9/ff3 on sun, oct 8 2006 robert sayre inquires
about the javascript package system for 1.9 for firefox 3, robert would like to know if there is any chance we'll get this?
2006-10-20 - Archive of obsolete content
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-09-29 - Archive of obsolete content
discussions file: vs resource: vs chrome: from a security point of view boris zbarsky gives a summary the current setup for checkloaduri (which type of security principal can load what) and asks for comments
about whether that is the desired behaviour.
2006-11-17 - Archive of obsolete content
extended validation certificates a note as to how opera is handling extended validation certificates http://labs.opera.com/news/2006/10/09/ fwd: re: mozilla questions regarding the ev standard gervase markham posted a summary of questions emailed to kelvin yiu
about the extended validation certificates.
2006-11-03 - Archive of obsolete content
announcements developer chat with javascript developer brendan eich on tuesday, november 7th at 10am pst (utc-8) brendan eich and some special guests will be hosting a developer chat
about new technologies comming to mozilla 2.
2006-12-01 - Archive of obsolete content
r 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.
2006-11-24 - Archive of obsolete content
discussions backed out view manager hierarchy unification discussion
aboutthe view manager hierarchy unification and the problems with tp regressions that occuring whenever update batching interacts it.
2006-09-30 - Archive of obsolete content
developers should use this sample instead: http://developer.mozilla.org/en/docs/xpcom_glue discussions dynamic load overlay a short discussion
about the possibilities of loading and unloading xul overlay runtime reading binary data from file discusses
about the code to read binary data from file how to build xpcom component on mac os x discusses
about the make file code used to build xpcom components on mac os x successfully meetings none during this week.
2006-10-27 - Archive of obsolete content
discussions evalinsandbox and xmlhttprequest a discussion
about writing something that calls a function defined by the page that the user is currently on chrome files and last modified date ways to retrieve the last modified date of a chrome file that may be in a jar or on the file system.
2006-11-24 - Archive of obsolete content
h it's com interface tutorals and references related to extension development tutorials on developing extensions which use the third party libraries for firefox references to mozilla api exposed javascript component + xmldocument not accessible a discussion on error: uncaught exception: permission denied to get property xmldocument.textcontent creating xpcom components a good discussion
about "components.classes[cid] has no properties" error firefox http explanation
about how firefox handles the http aspect meetings none during this week.
External resources for plugin creation - Archive of obsolete content
t two: discusses the basic lifecycle of a npapi plugin building a firefox plugin - part three: discusses npobjects and how to use them memory management in npapi: discusses how memory is managed in a npapi plugin browser plugins vs extensions (add-ons) -- the difference: discusses the oft-misunderstood difference between a plugin and an extension wikipedia npapi: history and general information
about npapi plugins and extensions: the general difference between them boom swagger boom writing an npapi plugin for mac os x ...
NPP - Archive of obsolete content
the npp_destroy() function informs the plug-in when the npp instance is
about to be deleted; after this call returns, the npp pointer is no longer valid.
NPP_New - Archive of obsolete content
it is called after np_initialize and is passed the mime type, embedded or full-screen display mode, and, for embedded plug-ins, information
about html embed arguments.
NPP_SetWindow - Archive of obsolete content
before setting the window parameter to point to a new window, it is a good idea to compare the information
about the new window to the previous window (if one existed) to account for any changes.
Shipping a plugin as a Toolkit bundle - Archive of obsolete content
for a plugin the manifest only needs to be very simple: <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>mypluginid@myplugin.com</em:id> <em:name>my plugin</em:name> <em:version>1.0</em:version> <em:targetapplication> <description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minversion>1.5</em:minversion> <em:maxversion>4.0.*</em:maxversion> </description> </em:targetapplication> <em:unpa...
XEmbed Extension for Mozilla Plugins - Archive of obsolete content
nperror np_initialize(npnetscapefuncs* nstable, nppluginfuncs* pluginfuncs) { nperror err = nperr_no_error; prbool supportsxembed = pr_false; npntoolkittype toolkit = 0; [ code that copies all of the function tables and does ] [ other standard checks ] /* * make sure that the browser supports functionality we care *
about.
Syndicating content with RSS - Archive of obsolete content
when this is the case, the html web page can let people and machines know
about the feed by using the <link> element, like this: <link rel="alternate" type="application/rss+xml" href="http://example.com/feed" /> adding the <a> while use of the html <link> element is powerful, it is mostly hidden.
Atomic RSS - Archive of obsolete content
documentation selected articles atomic rss tim bray talks
about using atom 1.0 as a micro format and extension module for rss 2.0; keeping rss 2.0 as your sydication format but bringing in and using selected atom 1.0 elements.
Content - Archive of obsolete content
documentation selected articles why rss content module is popular - including html contents charles iliya krempeaux talks
about the rss content module, why it is popular among some, and how it is used to include html contents.
Slash - Archive of obsolete content
documentation selected articles up to 10 why rss slash is popular: counting your comments charles iliya krempeaux talks
about the rss slash module, why it is popular among some, and how it is used to give a count for your comments (2005-08-22).
Well-Formed Web - Archive of obsolete content
documentation selected articles why well-formed web rss module is popular - syndicating your comments charles iliya krempeaux talks
about the rss well-formed web module, why it is popular among some, and how it is used to link to your comments (2005-08-22).
Digital Signatures - Archive of obsolete content
(information
about the hashing algorithm used is sent with the digital signature, although this isn't shown in the figure.) finally, the receiving software compares the new hash against the original hash.
Encryption and Decryption - Archive of obsolete content
(for more information
about rc4 and other ciphers used with ssl, see "introduction to ssl.") an encryption key is considered full strength if the best known attack to break the key is no faster than a brute force attempt to test every key possibility.
Archived JavaScript Reference - Archive of obsolete content
to make the function a legacy generator, the function body should contain at least one yield expression.microsoft javascript extensionsmicrosoft browsers (internet explorer, and in a few cases, microsoft edge) support a number of special microsoft extensions to the otherwise standard javascript apis.new in javascriptthis chapter contains information
about javascript's version history and implementation status for mozilla/spidermonkey-based javascript applications, such as firefox.number.tointeger()the number.tointeger() method used to evaluate the passed value and convert it to an integer, but its implementation has been removed.object.getnotifier()the object.getnotifer() method was used to create an object that allows to synthetically trigger a c...
Server-Side JavaScript - Archive of obsolete content
server-side javascript is another way in which, as this article quotes eich, "mozilla wants to 'get people thinking
about javascript as a more general-purpose language' and show them that 'it really is a platform for writing full applications.'" many vendors today are embedding mozilla rhino or mozilla spidermonkey into web server environments.
XForms API Reference - Archive of obsolete content
ming convention the xforms interfaces has the following naming convention: nsixforms...element interfaces implemented by the c++ part of a control nsixformsns...element interfaces extending xforms specification interfaces nsixforms...uielement interfaces implemented by the js part of a control nsixforms...accessors interface exposing states
about the bound instance node for a given control frozen interfaces nsixformsmodelelement the model interface experimental interfaces nsixformsdelegate the delegate interface for xforms:custom_controls nsixformsaccessors the accessors interface for xforms:custom_controls nsixformsnsmodelelement custom extension(s) to the nsixformsmodelelem...
XForms Input Element - Archive of obsolete content
picker - used to represent data of type xsd:date (xhtml/xul) calendar - used to represent data of type xsd:date when appearance attribute also has the value 'full' (xhtml/xul) month list - used to represent data of type xsd:gmonth (xhtml only) days list - used to represent data of type xsd:gday (xhtml only) number field - used to represent data of numeric type (fx 3.0 only, xul only) more detail
about each of these widgets follows below.
Popup Window Controls - Archive of obsolete content
<html> <head> <title>detecting popup controls</title> <script type="text/javascript"> <!-- // attempt to open an unsolicited window var popup = window.open('
about:blank', 'popup'); if (!popup) { // the user has suppressed the popup } // --> </script> </head> <body> <!-- your page here --> </body> </html> if your popup window is crucial to the operation of your web site you can notify the user and ask them to add your site to the list of sites which are allowed to use unsolicited popup windows.
Windows Media in Netscape - Archive of obsolete content
for the sake of brevity, we've made the following code snippet shorter to illustrate the relevant points
about the api: var player; try { if(window.activexobject) { player = new activexobject("wmplayer.ocx.7"); } else if (window.geckoactivexobject) { player = new geckoactivexobject("wmplayer.ocx.7"); } } catch(e) { // handle error -- no wmp 7 or 9 control // can use wmp 6 also if necessary, but this is legacy software nowadays } if (player) { // windows media player control exists a...
Community - Extensions
mozillazine extensions & themes forum #extdev channel on moznet irc network — extension development questions #addons channel on moznet irc network — questions
about http://addons.mozilla.org mozdev project owners mailing list mozillazine knowledge base allyourideas — ideas for extensions ((really needs a unique captcha)) babelzilla — a community for developers and translators of extension for mozilla applications ...
asm.js - Game development
it makes it easier to collaborate across multiple js engines because it's easy to talk
about and benchmark.
Track the score and win - Game development
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?
Initialize the framework - Game development
compare your code here's the full source code of the first lesson, running live in a jsfiddle: next steps now we've set up the basic html and learned a bit
about phaser initialization, let's continue to the second lesson and learn
about scaling.
Scaling - Game development
we can make the game scale to fit on any screen size automatically during the preload stage, so we don't have to worry
about it later.
Visual JS GE - Game development
.5", path_of_node_app : "d:/path_to_server_instance_folder/server/" , // edit here path_of_www : "d:/xamp/htdocs/project_instance/", // path_to_www edit here editor_port : "1013", reg_path : "users/", account_port : 3666 , destroy_session_after_x_mseconds : 20000, }; local node.js application tools (uses in developer mode only) the following section provides information
about the tools involved in visual-js game engine.
Function - MDN Web Docs Glossary: Definitions of Web-related terms
is way // error (https://en.wikipedia.org/wiki/immediately-invoked_function_expression) /* function foo() { console.log('hello foo'); }(); */ // function expressions, named or anonymous, can be called immediately (function foo() { console.log("hello foo"); }()); (function food() { console.log("hello food"); })(); (() => console.log('hello world'))(); if you'd like to know more
about iifes, check out the following page on wikipedia : immediately invoked function expression learn more technical reference functions arrow functions ...
I18N - MDN Web Docs Glossary: Definitions of Web-related terms
(the w3c definition) among other things, i18n requires support for multiple character sets (usually via unicode) units of measure (currency, °c/°f, km/miles, etc.) time and date formats keyboard layouts text directions learn more general knowledge i18n on wikipedia technical reference i18n on w3c i18n on gala-global.org learn
about it i18n material on i18nguy.com ...
Microsoft Internet Explorer - MDN Web Docs Glossary: Definitions of Web-related terms
learn more general knowledge internet explorer on wikipedia history of internet explorer on wikipedia internet explorer versions on wikipedia learning
about internet explorer http://windows.microsoft.com/en-us/internet-explorer/download-ie http://windows.microsoft.com/en-us/windows7/getting-started-with-internet-explorer-9 http://windows.microsoft.com/en-us/internet-explorer/internet-explorer-help http://windows.microsoft.com/en-us/internet-explorer/make-ie-default-browser#ie=ie-11 technical reference http://windows.microsoft.com/en-us/int...
Combinators - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the different combinator selectors that can be used in css.
Pseudo-classes and pseudo-elements - Learn web development
prerequisites: basic computer literacy, basic software installed, basic knowledge of working with files, html basics (study introduction to html), and an idea of how css works (study css first steps.) objective: to learn
about the pseudo-class and pseudo-element selectors.
CSS selectors - Learn web development
the following for example selects paragraphs that are direct children of <article> elements using the child combinator (>): article > p { } next steps you can take a look at the reference table of selectors below for direct links to the various types of selectors in this learn section or on mdn in general, or continue on to start your journey by finding out
about type, class, and id selectors.
CSS building blocks - Learn web development
this article will give you guidance on how to go
about debugging a css problem, and show you how the devtools included in all modern browsers can help you find out what is going on.
Normal Flow - Learn web development
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?
Styling text - Learn web development
styling lists lists behave like any other text for the most part, but there are some css properties specific to lists that you need to know
about, and some best practices to consider.
What is a web server? - Learn web development
next steps now that you are familiar with web servers, you could: read up on how much it costs to do something on the web learn more
about various software you need to create a website move on to something practical like how to upload files on a web server.
Use HTML to solve common problems - Learn web development
how to create a basic html document how to divide a webpage into logical sections how to set up a proper structure of headings and paragraphs basic text-level semantics html specializes in providing semantic information for a document, so html answers many questions you might have
about how to get your message across best in your document.
Structuring a page of content - Learn web development
previous overview: introduction to html structuring a page of content ready for laying it out using css is a very important skill to master, so in this assessment you'll be tested on your ability to think
about how a page might end up looking, and choose appropriate structural semantics to build a layout on top of.
Choosing the right approach - Learn web development
if you want to use async/await but are concerned
about older browser support, you could consider using the babeljs library — this allows you to write your applications using the latest javascript and let babel figure out what changes if any are needed for your user’s browsers.
JavaScript object basics - Learn web development
note: it is useful to think
about the way objects communicate as message passing — when an object needs another object to perform some kind of action often it sends a message to another object via one of its methods, and waits for a response, which we know as a return value.
JavaScript — Dynamic client-side scripting - Learn web development
after getting familiar with the basics of javascript, you should be in a position to learn
about more advanced topics, for example: javascript in depth, as taught in our javascript guide web apis modules this topic contains the following modules, in a suggested order for working through them.
Multimedia: video - Learn web development
objective: to learn
about the various video formats, their impact on performance, and how to reduce video impact on overall page load time while serving the smallest video file size based on each browsers file type support.
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?
Vue conditional rendering: editing existing todos - Learn web development
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.
Cross browser testing - Learn web development
what users, browsers, and devices do you most need to worry
about?), how to go
about doing testing, the main issues that you'll face with different types of code and how to mitigate them, what tools are most useful in helping you test and fix problems, and how to use automation to speed up testing.
Accessibility/LiveRegionDevGuide
for more information
about live regions, please read the aria properties spec or the live region report to learn
about aria live region markup and the live region api support document for the latest firefox api with regards to live regions.
Embedding API for Accessibility
/* 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.warn
aboutcookies", boolwarn); moz 0.8 fonts setcharpref("font.name.monospace.x-western", newfontname); setcharpref("font.name.serif.x-western", newfontname); setcharpref("font.name.sans-serif.x-western", newfontname); /* for other i18n charsets, change x-western to x-c...
Links and Resources
wave 3.0 (web accessibility versatile evaluator) from webaim and sponsored by temple university institute on disabilities wave 3.0 is another powerful, mature, free online webpage accessibility validation service that identifies accessibility errors and reports accessibility warnings
about webpage related to section 508 standards and/or the wcag guidelines.
Mozilla's Section 508 Compliance
(d) sufficient information
about a user interface element including the identity, operation and state of the element shall be available to assistive technology.
Accessible Toolkit Checklist
the checklist this checklist is currently only for microsoft windows, but should be expanded to include information
about linux and os x.
ZoomText
our main focus is on the browser itself, so you you only need to install mailnews or address book if curious
about the other apps.
Add-ons
for more information
about transition support, please visit our wiki page.
Adding phishing protection data providers
installing a new data provider to install a data provider for phishing protection, it's necessary to set a series of preferences to provide details
about the provider.
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.
Cookies Preferences in Mozilla
(the old prefs are network.cookie.lifetime.enabled, network.cookie.lifetime.behavior, and network.cookie.warn
aboutcookies.) true = prefs have been migrated false = migrate prefs on next startup original document information author(s): mike connor last updated date: may 22, 2004 copyright information: portions of this content are © 1998–2007 by individual mozilla.org contributors; content available under a creative commons license | details.
Creating Sandboxed HTTP Connections
channel.asyncopen(listener, null); http notifications the above mentioned listener is a nsistreamlistener, which gets notified
about events such as http redirects and data availability.
Debugging update problems
useful preferences enabling the following preferences in
about:config can help troubleshoot problems with updates: app.update.log - for application updates; extensions.logging.enabled - for add-on updates.
Debugging on Windows
by default it will be: vc++ 6.0: c:\program files\microsoft visual studio\common\msdev98\bin\autoexp.dat vc++ 7.0: c:\program files\microsoft visual studio .net 2003\common7\packages\debugger\autoexp.dat the file has information
about the format in the beginning, and after a little practice you should be well on your way.
Building Firefox with Debug Symbols
see https://dxr.mozilla.org/mozilla/source/toolkit/crashreporter/tools/upload_symbols.sh for more information
about the environment variables used by this target.
Configuring Build Options
omm/mail to build firefox, run the following commands: export mozconfig=/path/to/mozilla/mozconfig-firefox ./mach build to build thunderbird, run the following commands: export mozconfig=/path/to/mozilla/mozconfig-thunderbird ./mach build using mozconfigwrapper mozconfigwrapper is similar to using multiple mozconfig files except that it abstracts and hides them so you don't have to worry
about where they live or which ones you've created.
pymake
usage if you use mach for everything, you don't have to worry
about gmake and pymake: mach will run whatever is best for the current machine.
Callgraph
the callgraph project uses gcc and treehydra to generate information
about function and method calls at compile time, and aggregates it into a sqlite database.
ESLint
no-undef (eslint) if you don't understand a rule, you can look it up on eslint.org for more information
about it.
Reviewer Checklist
[fennec: when writing tests that use paintedsurface, ensure the paintedsurface is closed when you're done with it.] performance impact check for main-thread io [fennec: android may warn
about this with strictmode].
Working with Mozilla source code
navigating the mozilla source code learn
about the various folders in the mozilla source tree, and how to find what you're looking for.
Frame script environment
this means you don't have to worry
about global variables you define conflicting with global variables defined by another frame script.
Frame script environment
this means you don't have to worry
about global variables you define conflicting with global variables defined by another frame script.
Frame script loading and lifetime
var gcontentframemessagemanager = this; addeventlistener('unload', function(aevent) { if (aevent.target == gcontentframemessagemanager) { sendasyncmessage('my-addon-id', 'framescript-died'); // if you did not set third argument of `services.mm.addmessagelistener` to `true`, then this will fail to send a message } }, false); note
about unload during uninstallation/upgrade when your add-on is uninstalled, or disabled, you should: cancel it, if you have used allowdelayedload, by calling removedelayedframescript; ensuring the frame script is not loaded into any new tabs.
Process scripts
in just
about every respect, using process scripts is like using frame scripts: you can pass the allowdelayedload to loadprocessscript().
Errors
you can find further information
about them by clicking on the links below: a request to access cookies or storage was blocked because of a custom cookie permission blocked because it came from a tracker and content blocking is enabled blocked because we are blocking all storage access requests blocked because we are blocking all third-party storage access requests and content blocking is enabled granted partitioned access because it came from a third-party and dynamic first-party isolation is enabled ...
Security best practices for Firefox front-end engineers
developers are able to avoid tripping the rule by using escaping functions in combination with template strings, for example: bar.innerhtml = escapehtml`<a href='${url}'>
about</a>`; in system-privileged chrome code, any kind of remaining scripts will still be removed by our sanitizer.
Using the Browser API
zoomin.addeventlistener('touchend',function() { zoomfactor += 0.1; browser.zoom(zoomfactor); }); zoomout.addeventlistener('touchend',function() { zoomfactor -= 0.1; browser.zoom(zoomfactor); }); controlling the stop/reload button next, let's talk
about the stop/reload button.
HTMLIFrameElement.findAll()
invoking this method results in a mozbrowserfindchange event firing, which carries details
about the search results.
HTMLIFrameElement.findNext()
invoking this method results in a mozbrowserfindchange event firing, which carries details
about the search results.
mozbrowsercaretstatechanged
details the details property returns an anonymous javascript object with the following properties: rect an object that defines information
about the bounding rectangle of the current selection.
mozbrowserfirstpaint
the mozbrowserfirstpaint event is fired when the <iframe> paints content for the first time (this doesn't include the initial paint from
about:blank).
Gecko SDK
contents of the sdk the sdk contains the following: 1.9.2 idl files for frozen interfaces (under idl/) header files for frozen interfaces, xpcom functions, and nspr functions (under include/) import libraries or shared libraries (under lib/) static utility libraries (under lib/) various tools (under bin/) for more information
about safely linking xpcom components using the xpcom "glue" library, see xpcom glue.
Gecko Keypress Event
(bug 359638 partially addressed this issue by trying both characters on the key, but bug 303192 would provide a complete solution.) solution the following rules apply: key handlers should be provided with information
about all the possible meanings of the event.
Gecko
gecko faq frequently asked questions
about gecko.
Getting from Content to Layout
nscssframeconstructor gets notified from the document's presshell (which implements nsidocumentobserver and observes the document)
about all nodes in the document.
HTTP Cache
k 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 purgefrommemory – 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.
How to implement a custom autocomplete search component
basic example for gecko 2.0 and up (firefox 4 / thunderbird 3.3 / seamonkey 2.1) this example is your first best try because: it has no specific logic (it just returns a dummy array of choices) it doesn't care
about compatibility with older gecko versions first copy the following javascript code into a file named basic_autocomplete.js into the components directory (or whatever components folder is appropriate in your case): warning: the uuid used below in chrome.manifest and assigned to class_id must be changed before use.
IME handling guide
imestatemanager works more complicated because imestatemanagers in each processe need to negotiate
about owner ship of managing input context.
IPDL Best Practices
while this can be worked around with actordestroy, being explicit
about deleting the protocol with send__delete__ is easier to maintain, with symmetric alloc/deallocpprotocol functions also being easier to reason
about.
Extending a Protocol
we need to add the following things: at the top of the file: include protocol pecho; after "manager pbrowser or pinprocess;", add: manages pecho; finally, under parent: add async pecho(); - this is the "constructor" part we talked
about before, which will allow us to eventually send messages.
PBackground
this allows the dom code to generally not worry
about what thread (main vs.
Internationalized Domain Names (IDN) Support in Mozilla Browsers
if you find idn test sites under the .com and .net top domains, and if you cannot successfully access these sites, you can use the following workaround until the conversion to punycode is completed for these top domains: using netscape 7.1 or mozilla 1.4: type
about:config into the location/url bar.
JavaScript-DOM Prototypes in Mozilla
ok, so that's how class constructor and their prototype properties are set up, what
about the actual prototype chain of a xpconnected dom object?
JavaScript Tips
xpconnect knows all
about tearoffs and modifies the object that you queryinterface or instanceof to cache all its known interfaces.
AddonAuthor
url optional string an optional url with details
about the person.
AddonManager
the addonmanager object is the global api used to access information
about add-ons installed in the application and to manipulate them.
AddonType
add-on types hold useful information
about each type of add-on that may be installed.
AddonUpdateChecker
if all you care
about is finding the newest version for an addon then you probably want to use findupdates() instead.
DeferredTask.jsm
promise finalize(); example firefox 28 note this section describes
about deferredtask.jsm in firefox 28.0 or higher.
DownloadError
a downloaderror object provides detailed information
about a download failure.
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.
Log.jsm
something bad happened!"); log.debug("details
about bad thing only useful during debugging", {someinfo: "nothing"}); log.warn("here is an error", new error("ouch")); logger levels fatal severe errors that cause premature termination.
SourceMap.jsm
get a reference to the module: let sourcemap = {}; components.utils.import('resource:///modules/devtools/sourcemap.jsm', sourcemap); sourcemapconsumer a sourcemapconsumer instance represents a parsed source map which we can query for information
about the original file positions by giving it a file position in the generated source.
Sqlite.jsm
you don't need to worry
about caching created statement instances, destroying them when you are done, etc.
Release phase
for more detailed information
about reviews for new localizations and sign-offs for maintenance releases, visit the technical review and sign-off review pages.
SVN for Localizers
you can also run svn status to check the list of modified files (they'll display a m before the name) you're
about to commit.
Web Localizability
why localizability is important there are many reasons why you should start thinking
about making your web app localizable as soon as possible.
gettext
read more
about plurals in gettext at gnu.org.
Basics
riptlevel="0"> <mrow> <mn>2</mn> <mo>+</mo> <mfrac numalign="left"> <mstyle scriptlevel="0"> <msup><mn>7</mn><mn>2</mn></msup> </mstyle> <mstyle scriptlevel="0"> <mn>2</mn><mo>+</mo><mo mathvariant="bold">...</mo> </mstyle> </mfrac> </mrow> </mstyle> </mfrac> </mrow> </mstyle> </mfrac> </mrow> </mstyle> </mfrac> </mrow> </mstyle> </mfrac> </mrow> </math> </button> </div> for more information
about mathml in mozilla, see the mathml project page.
Mobile
read
about how to develop web sites that look good on mobile devices and take advantage of the new possibilities they offer.
Mozilla Development Strategies
make sure you have the right fix when you go for reviews when tempted to do a first pass fix and fix the fallout later, do it right the first time; don't assume you'll be able to file a "fix it" bug and fix stuff you know
about later -- chances are the reviewer will make you do the work anyway.
Mozilla Quirks Mode Behavior
something
about the overhanging border (i.e., the half of the border that's outside the border-box) in border-collapse tables differs between quirks mode and standards mode.
Mozilla Style System Documentation
i'm reluctant to write it both since i don't know much
about it.] problems:a bunch the code needs to be rewritten to prevent stylesheets from blocking the parser and to reduce string copying (although that partly goes with parsing).] parsing stylesheet representation problems: the stylesheet representation uses way too much memory.
Mozilla
stuff
about the mozilla namespace.
Namespace
below, find links to articles
about c++ classes mozilla uses within various namespaces, primarily the mozilla namespace.
Are We Slim Yet
it used the same infrastructure as
about:memory to measure memory usage on a predefined snapshot of alexa top 100 pages known as tp5.
BloatView
bloatview is a tool that shows information
about cumulative memory usage and leaks.
Reporting a Performance Problem
try to give some context
about what you were doing when the performance problem arose such as the url you were viewing and what actions were you doing (ex.
Scroll-linked effects
in order to do so, we need you (yes, you!) to tell us more
about the kinds of scroll-linked effects you are trying to implement, so that we can find good ways to support them in the compositor.
TraceMalloc
other documentation some older documentation
about tracemalloc is here.
A brief guide to Mozilla preferences
modifying preferences advanced users can set named preferences via the advanced preferences editor, by typing
about:config in the location bar.
browser.pagethumbnails.capturing_disabled
the 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.
Preference reference
if set to true, the data is stored as content preference.browser.pagethumbnails.capturing_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.form...
Preferences system
reference information
about them is available below: preferences system documentation: introduction: getting started | examples | troubleshooting reference: prefwindow | prefpane | preferences | preference | xul attributes use code for a typical preferences window may look like this: <prefwindow id="apppreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <prefpane id="pane1" label="&pane1.title;"> <preferences> <preference id="pref1" name="pref.name...
Research and prep
if you have questions
about what that means, please contact milos@mozilla.com or milos on irc.
Productization guide
for example, putting one sample news feed on the bookmarks toolbar in new profiles in firefox helps in learning
about the live bookmarks.
Crash reporting
type
about:crashes into your location bar to get a page listing both submitted and unsubmitted crash reports.
Emscripten techniques
by the time
about:memory is loaded in a new tab and you have clicked the "measure" button to diagnose what's happened, the memory usage causing the spike has gone away, making temporary memory spikes difficult to diagnose.
Emscripten
read more
about emscripten and try some demos, then get started with using it.
Firefox Sync
general the always prolific richard newman has written a couple of notes
about bookmark syncing (first, second) and has a blog where he talks
about the various challenges syncing this kind of data.
Installing JSHydra
prerequisites for building spidermonkey spidermonkey is part of the build process, but since jshydra will get the code if required, you do not need to worry
about obtaining the right version of spidermonkey.
L20n Javascript API
ctx.localize(['hello', '
about'], function(l10n) { var node = document.queryselector('[data-l10n-id=hello]'); node.textcontent = l10n.entities.hello.value; node.classlist.remove('hidden'); }); the callback becomes bound to the entities on the ids list.
MailNews automated testing
it allows reviewers to quickly pick up regressions in patches and helps developers to think
about different cases.
MailNews
it allows reviewers to quickly pick up regressions in patches and helps developers to think
about different cases.
McCoy
if you want to learn
about the technical details of mccoy then visit the project wiki.
Optimizing Applications For NSPR
at thread switch time, the stack of the current running thread is copied to other storage associated with that thread and the
about-to-be-dispatched thread's stack data is copied back onto the windows stack just before the thread is given control.
I/O Functions
for information
about the types most commonly used with the functions described in this chapter, see i/o types.
Named Shared Memory
no assumptions
about the persistence of data in the named file should be made.
PRFileDesc
for more details
about the use of prfiledesc and related structures, see file descriptor types.
PRFileInfo
description the prfileinfo structure provides information
about a file, a directory, or some other kind of file system object, as specified by the type field.
PRFileInfo64
description the prfileinfo64 structure provides information
about a file, a directory, or some other kind of file system object, as specified by the type field.
PR_AttachThread
pr_attachthread informs nspr
about the new thread by associating a prthread object with the native thread.
PR_GetOpenFileInfo
on output, information
about the given file is written into the file information object.
PR_GetOpenFileInfo64
on output, information
about the given file is written into the file information object.
NSPR
documentation
about nspr this topic describes, in general terms, the goals of nspr and a bit
about how it does it.
NSS Certificate Download Specification
the content field is the following asn.1 structure: certificatesequence ::= sequence of certificate see the section below on certificate chains for more information
about how multiple certificates are handled.
HTTP delegation
to learn
about all the details, please read the documentation contained in the nss c header files.
HTTP delegation
to learn
about all the details, please read the documentation contained in the nss c header files.
Introduction to Network Security Services
what you should already know before using nss, you should be familiar with the following topics: concepts and techniques of public-key cryptography the secure sockets layer (ssl) protocol the pkcs #11 standard for cryptographic token interfaces cross-platform development issues and techniques where to find more information for information
about pki and ssl that you should understand before using nss, see the following: introduction to public-key cryptography introduction to ssl for links to api documentation, build instructions, and other useful information, see the nss project page.
4.3.1 Release Notes
ssl3 & tls renegotiation vulnerability see cve-2009-3555 and us-cert vu#120541 for more information
about this security vulnerability.
JSS
introduces the ssl protocol, including information
about cryptographic ciphers supported by ssl and the steps involved in the ssl handshake.
NSS_3.12.2_release_notes.html
nstalled 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 usage doesn't give enough information
about trust arguments bug 412311: replace pr_interval_no_wait with pr_interval_no_timeout in client initialization calls bug 423839: add multiple pkcs#11 token password command line option to nss tools.
NSS 3.12.5 release_notes
new in nss 3.12.5 ssl3 & tls renegotiation vulnerability see cve-2009-3555 and us-cert vu#120541 for more information
about this security vulnerability.
NSS_3.12_release_notes.html
bug 330721: remove os/2 vacpp compiler support from nss bug 408260: certutil usage doesn't give enough information
about trust arguments bug 410226: leak in create_objects_from_handles bug 415007: pk11_findcertfromdersubjectandnickname is dead code bug 416267: compiler warnings on solaris due to extra semicolon in sec_asn1_mksub bug 419763: logger thread should be joined on exit bug 424471: counter overflow in bltest bug 229335: remove certificates that expired in august 2004 from tree bug 346551: init secitem dert...
NSS 3.14 release notes
for more information
about mpl 2.0, please see http://www.mozilla.org/mpl/2.0/faq.html.
NSS 3.18.1 release notes
ou = equifax secure certificate authority sha1 fingerprint: d2:32:09:ad:23:d3:14:23:21:74:e4:0d:7f:9d:62:13:97:86:63:3a the following ca certificate was removed after discussion
about it in the mozilla.dev.security.policy forum.
NSS 3.18 release notes
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.
NSS 3.24 release notes
this struct contains supplementary information
about a certificate, such as the intended type of the certificate, stapled ocsp responses, or signed certificate timestamps (used for certificate transparency).
Enc Dec MAC Output Public Key as CSR
outfile = null; /* open the certificate request file to write */ outfile = pr_open(certreqfilename, pr_create_file | pr_rdwr | pr_truncate, 00660); if (!outfile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for writing (%ld, %ld).\n", certreqfilename, pr_geterror(), pr_getoserror()); goto cleanup; } /* create info
about public key */ spki = seckey_createsubjectpublickeyinfo(pubk); if (!spki) { pr_fprintf(pr_stderr, "unable to create subject public key\n"); rv = secfailure; goto cleanup; } /* generate certificate request */ cr = cert_createcertificaterequest(subject, spki, null); if (!cr) { pr_fprintf(pr_stderr, "unable to make certificate request\n"); ...
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
name); } /* open the certificate request file to write */ outfile = pr_open(certreqfilename, pr_create_file | pr_rdwr | pr_truncate, 00660); if (!outfile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for writing (%ld, %ld).\n", certreqfilename, pr_geterror(), pr_getoserror()); goto cleanup; } /* create info
about public key */ spki = seckey_createsubjectpublickeyinfo(pubk); if (!spki) { pr_fprintf(pr_stderr, "unable to create subject public key\n"); rv = secfailure; goto cleanup; } /* generate certificate request */ cr = cert_createcertificaterequest(subject, spki, null); if (!cr) { pr_fprintf(pr_stderr, "unable to make certificate request\...
sample2
/ if (pr_access(certreqfilename, pr_access_exists) == pr_success) { pr_delete(certreqfilename); } /* open the certificate request file to write */ outfile = pr_open(certreqfilename, pr_create_file | pr_rdwr | pr_truncate, 00660); if (!outfile) { pr_fprintf(pr_stderr, "unable to open \"%s\" for writing (%ld, %ld).\n", certreqfilename, pr_geterror(), pr_getoserror()); goto cleanup; } /* create info
about public key */ spki = seckey_createsubjectpublickeyinfo(pubk); if (!spki) { pr_fprintf(pr_stderr, "unable to create subject public key\n"); rv = secfailure; goto cleanup; } /* generate certificate request */ cr = cert_createcertificaterequest(subject, spki, null); if (!cr) { pr_fprintf(pr_stderr, "unable to make certificate request\n"); rv = secfailure; goto cleanup; } arena = port_newarena(der_de...
nss tech note3
all
about certificate extensions nss technical note: 3 09 may 2002 nelson b.
Overview of NSS
for more detailed information
about nss, see wiki.mozilla.org and nss faq.
FC_GetMechanismInfo
description fc_getmechanisminfo obtains information
about a particular mechanism possibly supported by a token.
NSS tools : crlutil
for information specifically
about nss, the nss project wiki is located at [2]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : ssltab
for information specifically
about nss, the nss project wiki is located at [3]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : ssltap
for information specifically
about nss, the nss project wiki is located at [3]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : vfychain
additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : vfyserv
name vfyserv — tbd synopsis vfyserv description the vfyserv tool verifies a certificate chain options additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
gtstd.html
for complete information
about the command-line options used in the examples that follow, see using the certificate database tool.
pkfnc.html
for example, communicator uses the parameter to pass information
about which window is associated with the modal dialog box requesting the password from the user.
modutil-tasks.html
a fix was made for "hpux b.11.00," but issues may still arise for platforms like "linux 2.2.12-20." documentation needs to be explicit
about the use of fo ...
NSS_3.12.3_release_notes.html
here is a table of the new environment variables introduced in nss 3.12.3 and information
about how they affect these new behaviors.
NSS Tools cmsutil
-h num generate email headers with info
about cms message (decode only).
NSS Tools dbck-tasks
nss security tools: dbck tasks newsgroup: mozilla.dev.tech.crypto task list in analyze mode, there should be an option to create a file containing a graph of the certificate database without any information
about the user's certificates (no common names, email addresses, etc.).
NSS Tools modutil-tasks
a fix was made for "hpux b.11.00," but issues may still arise for platforms like "linux 2.2.12-20." documentation needs to be explicit
about the use of fo ...
NSS tools : crlutil
for information specifically
about nss, the nss project wiki is located at [2]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : signver
o setting up the shared nss database https://wiki.mozilla.org/nss_shared_db_howto o engineering and technical information
about the shared nss database https://wiki.mozilla.org/nss_shared_db additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : ssltap
for information specifically
about nss, the nss project wiki is located at [3]http://www.mozilla.org/projects/security/pki/nss/.
NSS tools : vfychain
additional resources for information
about nss and other tools related to nss (like jss), check out the nss project wiki at [1]http://www.mozilla.org/projects/security/pki/nss/.
Necko walkthrough
note: nsconnectionentry has a single nshttpconnectioninfo object attached, a pending queue of nshttptransactions, and 3 arrays for connections: active nshttpconnections idle nshttpconnections nshalfopensockets nshttpconnectionmgr::trydispatchtransaction there is a series of decisions
about whether dispatchtransaction is called, along with good code comments: best to read the code for more detail.
Rhino community
the mozilla.dev.tech.js-engine newsgroup answers questions
about the c implementation of javascript, and was also used for answering questions
about rhino until september 27, 2007.
Rhino Debugger
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.
Rhino FAQ
frequently asked questions
about rhino how do i create a java array from javascript?
Small Footprint
debug information debug information in rhino classes consumes
about 25% of code size and if you can live without that, you can recompile rhino to remove it.
Rhino history
rhino gets its name from the animal on the cover of the o'reilly book
about javascript.
Rhino scopes and contexts
contexts the rhino context object is used to store thread-specific information
about the execution environment.
Scripting Java
exploratory programming is the process of learning
about what a library or api can do by writing quick programs that use it.
Shumway
it is currently available as an extension and as a component in firefox's nightly builds that can be enabled through
about:config (you need to find the shumway.disabled preference and set it to false).
Creating JavaScript jstest reftests
if you are contributing directly to test262, you must submit the tests in the test262 format, which you can see in the test262 git repository and read
about here.
Getting SpiderMonkey source code
git clone https://github.com/mozilla/gecko-dev.git cd gecko-dev/js/src if you want a faster (
about 5 times as of january 2015) download, try doing a shallow clone (no version control history).
Property cache
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.
JSAPI reference
ey 38 enum jsfinalizestatus added in spidermonkey 17 js_removefinalizecallback added in spidermonkey 38 js_setgczeal added in spidermonkey 1.8 js_schedulegc added in spidermonkey 17 js_dumpheap added in spidermonkey 1.8 js_setgccallbackrt obsolete since jsapi 13 js_setfinalizecallback added in spidermonkey 17 obsolete since jsapi 32 js_markgcthing obsolete since jsapi 5 js_is
abouttobefinalized obsolete since jsapi 35 js_clearnewbornroots obsolete since jsapi 5 the rest of these apis help protect objects from being destroyed by the garbage collector before the application is done using them.
Parser API
if the parser produced no information
about the node's source location, the field is null; otherwise it is an object consisting of a start position (the position of the first character of the parsed source region) and an end position (the position of the first character after the parsed source region): interface sourcelocation { source: string | null; start: position; end: position; } each position object consists of a line ...
SpiderMonkey 1.8.8
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 1.8
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 17
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 24
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 31
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 45
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
SpiderMonkey 52
please let us know
about your experiences with this release by posting in the mozilla.dev.tech.js-engine newsgroup.
Split object
...and yet, there is special code in jsobj.h with a comment
about fixing some kind of interaction between with an split objects.
TPS Pref Lists
to find the list of valid preferences, go to
about:config on a browser that has weave installed, and search for services.sync.prefs.sync.
WebReplayRoadmap
memory analysis (not yet implemented) analyzing memory usage and leaks in js can be difficult because there is no (or limited) information
about where objects were allocated or how the object graph was constructed.
The Rust programming language
to learn more
about rust, you can: watch the videos below for a closer look at the power and benefits rust provides.
Secure Development Guidelines
introduction provide developers with information on specific 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 contro...
Signing Mozilla apps for Mac OS X
for more details on using the coderesources file, refer to the code resources section on erick dransch's blog post
about code signing.
Animated PNG graphics
information for each frame
about placement and rendering is stored in 'fctl' chunks.
ROLE_ALERT
« gecko roles page represents an alert or a condition that a user should be notified
about.
Implementation Details
please refer to pages below for interesting at api: msaa ia2 at-spi differences with other applications this section provides information
about implementation differences between gecko based applications and other applications.
AT APIs Support
as well you might find helpful the
about:accessibilityenabled firefox extension.
Frecency algorithm
developer notes there are various development notes you can read
about places that may offer additional insights: initial algorithm ideas implementation notes history the initial algorithm design was by mike connor and seth spitzer.
Places Expiration
on maintenance when places maintenance runs (
about once a week, on daily idle), an orphans expiration step is executed, this ensures database cleanup.
Using the Places annotation service
the annotation service, provided by the nsiannotationservice interface, is designed to store arbitrary data
about a web page or
about an item in the places database in firefox 3.
Preferences API
many applications including firefox and thunderbird have an additional tool for power users,
about:config, which can be used to tweak the preferences without ui.
FUEL
fuel is
about making it easier for extension developers to be productive, by minimizing some of the xpcom formality and adding some "modern" javascript ideas.
SMILE
smile is
about making it easier for extension developers to be productive, by minimizing some of the xpcom formality and adding some "modern" javascript ideas.
extIExtension
you may need to reset this preference in
about:config during testing.
Toolkit API
these services include: profile management chrome registration browsing history extension and theme management application update service safe mode printing official references structure of an installable bundle: describes the common structure of installable bundles, including extensions, themes, and xulrunner applications extension packaging: specific information
about how to package extensions theme packaging: specific information
about how to package themes multiple-item extension packaging: specific information
about multiple-item extension xpis xul application packaging: specific information
about how to package xulrunner applications chrome registration printing in xul apps see also the following developer pages contain examples and...
Setting up the Gecko SDK
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.
Using XPCOM Utilities to Make Things Easier
to get an idea
about how much can be handled with the macros described in this section, compare the code listing in weblock2.cpp at the end of the chapter with weblock1.cpp in the previous chapter.
XPCOM guide
this document attempts to help them do so, first by explaining 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 inher...
Components.returnCode
generally, xpconnect does a fine job of making it unnecessary for javascript code to worry
about nsresult codes.
Components.utils.Sandbox
sandboxname a string value which identifies the sandbox in
about:memory (and possibly other places in the future).
PlXPCOM
the resources here provide information
about this language binding and how to use it.
Architecture basics
it lets you get pointers to components inside mozilla, and it lets you talk
about their interfaces as well.
XPConnect
xpconnect and xpidl faq a faq
about using xpconnect and xpidl.
Language bindings
the resources here provide information
about this language binding and how to use it.pyxpcompyxpcom allows for communication between python and xpcom, such that a python application can access xpcom objects, and xpcom can access any python class that implements an xpcom interface.
IAccessibleApplication
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.
IAccessibleEditableText
refer to the @ref _specialoffsets "special offsets for use in the iaccessibletext and iaccessibleeditabletext methods" for information
about a special offset constant that can be used in iaccessibleeditabletext methods.
IAccessibleHypertext
other-licenses/ia2/accessiblehypertext.idlnot scriptable this interface exposes information
about hypertext in a document.
amIWebInstallInfo
toolkit/mozapps/extensions/amiwebinstalllistener.idlscriptable this interface is used by the default implementation of amiwebinstalllistener to communicate with the running application and allow it to warn the user
about blocked installs and start the installs running.
amIWebInstallListener
the registered amiwebinstalllistener is used to notify
about new installs triggered by websites.
amIWebInstaller
acallback optional an optional callback to notify
about installation success and failure.
imgICache
use the following snippet to obtain a relevant image cache for a given document or channel (where relevantdocument is a document object that contains images you care
about, or relevantchannel is an nsichannel that is used for fetching images): var tools = components.classes["@mozilla.org/image/tools;1"].getservice(components.interfaces.imgitools); var cache = tools.getimgcachefordocument(relevantdocument); // alternatively, tools.getimgcacheforchannel(relevantchannel) if there is no relevant document or channel, null may be passed, but this will cause any imag...
imgIDecoderObserver
unfortunately, this is currently the only way to signal decoding errors to consumers, and the only decoding errors that consumers care
about (indeed, the only ones that they're prepared to hear
about) are failures to instantiate the decoder (<img src="foo.html"> for example).
imgIRequest
imgirequest clone( in imgidecoderobserver aobserver ); parameters aobserver return value decrementanimationconsumers() tell the image it can forget
about a request that the image animate.
mozIStoragePendingStatement
note: for read statements, such as select, once you cancel the statement, you will receive no further notifications
about results.
mozIStorageStatement
the optional callback routine receives notifications
about the progress of the query.
mozIStorageStatementParams
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.
nsIAccessNode
accessible/public/nsiaccessnode.idlscriptable an interface used by in-process accessibility clients to get style, window, markup and other information
about a dom node.
nsIAccessibleDocument
accessible/public/nsiaccessibledocument.idlscriptable an interface for in-process accessibility clients that wish to retrieve information
about a document.
nsIAccessibleImage
accessible/public/nsiaccessibleimage.idlscriptable this interface allows in-process accessibility clients to retrieve information
about an image.
nsIAlertsService
alertlistener optional an object to receive callbacks from the alert; may be null if you don't care
about callbacks.
nsIAppShellService
follow this bug - bugzilla - bug 1280028 nsiwebnav createwindowlessbrowser( in bool aischrome ); var webnav = services.appshell.createwindowlessbrowser(true); var docshell = webnav.queryinterface(ci.nsiinterfacerequestor).getinterface(ci.nsidocshell); var systemprincipal = cc["@mozilla.org/systemprincipal;1"].createinstance(ci.nsiprincipal); docshell.create
aboutblankcontentviewer(systemprincipal); var contentwindow = docshell.contentviewer.domdocument.defaultview; // when you are done with it, destroy it if (webnav.close) { webnav.close() }; // only available in firefox 46+, and is needed for good measure webnav = null; // in firefox <= 45 setting to null will cause it to get gc'ed which will destroy it registertoplevelwindow() add a window to the ...
nsIAppStartup_MOZILLA_2_0
toolkit/components/startup/public/nsiappstartup.idlscriptable this lets you get information
about the times at which key application startup events occurred.
nsIAsyncStreamCopier
aobservercontext the object to receive notifications with information
about the progress of the copy operation.
nsIAuthPrompt2
in that case information
about the failure has to come through the callback.
nsIBadCertListener2
boolean notifycertproblem( in nsiinterfacerequestor socketinfo, in nsisslstatus status, in autf8string targetsite ); parameters socketinfo a network communication context that can be used to obtain more information
about the active connection.
nsIBlocklistPrompt
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 prompt([array, size_is(acount)] in nsivariant aaddons, [optional] in pruint32 acount); methods prompt() prompt the user
about newly blocked addons.
nsICacheEntryInfo
netwerk/cache/nsicachevisitor.idlscriptable this interface provides information
about a cache entry.
nsICachingChannel
the cache token can be queryinterface'd to a nsicacheentryinfo if more detail
about the cache entry is needed.
nsIChannel
load_call_content_sniffers 21 if this flag is set, the channel should call the content sniffers as described in netwerk/build/nsnetcid.h
about ns_content_sniffer_category.
nsIChromeRegistry
chrome/public/nsichromeregistry.idlscriptable provides access to the chrome registry; you can use this to get information
about chrome documents that have been registered.
nsIClassInfo
xpcom/components/nsiclassinfo.idlscriptable provides information
about a specific implementation class.
nsIClipboard
hasdatamatchingflavors() this method provides a way to give correct ui feedback
about, for instance, whether a paste should be allowed.
nsIClipboardOwner
the nsiclipboardowner interface notifies the clipboard owner
about the current status of ownership of the clipboard transferable at given situation and time.
nsIConsoleService
in this example nsiscripterror, which implements nsiconsolemessage, is used to include information
about the source file and line number of the error.
nsIHttpActivityObserver
activity subtype constants constant value description activity_subtype_request_header 0x5001 the http request is
about to be queued for sending.
nsIHttpServer
* @throws ns_error_invalid_arg * if dir is non-null and does not exist or is not a directory, or if path * does not begin with and end with a forward slash */ void registerdirectory(in string path, in nsifile dir); /** * associates files with the given extension with the given content-type when * served by this server, in the absence of any file-specific information *
about the desired content-type.
nsIInstallLocation
note: this function makes no promises
about whether or not this path is actually maintained by this install location.
nsIJSID
js/src/xpconnect/idl/xpcjsid.idlscriptable this interface provides information
about a contract or interface.
nsIMacDockSupport
about dockmenu by default firefox adds two menu items to the dock menu.
nsIMemory
moreover, a mechanism exists by which a client can receive notifications
about low-memory situations.
nsIMsgDBHdr
don't even think
about using orflags and/or andflags.
nsINavHistoryResultTreeViewer
if you use this object and attach it to a result without attaching it to a tree, then forget
about it, it will leak.
nsIPlacesView
the nsiplacesview interface provides a view-agnostic way to access information
about a places view.
nsIProtocolProxyService
netwerk/base/public/nsiprotocolproxyservice.idlscriptable this interface provides methods to access information
about various network proxies.
nsISHistoryListener
docshell/shistory/public/nsishistorylistener.idlscriptable an interface you can implement to receive notifications
about activities that occur in session history, and optionally cancel them.
nsISOCKSSocketInfo
netwerk/socket/nsisockssocketinfo.idlscriptable this interface provides information
about a socks socket.
nsISSLErrorListener
boolean notifysslerror( in nsiinterfacerequestor socketinfo, in print32 error, in autf8string targetsite ); parameters socketinfo a network communication context that can be used to obtain more information
about the active connection.
nsIScreen
widget/nsiscreen.idlscriptable this interface provides information
about a display screen.
nsIScreenManager
widget/public/nsiscreenmanager.idlscriptable this interface lets you get information
about the display screen (or screens) attached to the user's computer.
nsIScriptError
examples logging a message with additional information in this example nsiscripterror, which implements nsiconsolemessage, is used to log information to the console including information
about the source file and line number of the error.
nsIScriptableIO
for more details
about how to use this object, see the file and stream guide.
nsISearchEngine
getsubmission() gets a nsisearchsubmission object that contains information
about what to send to the search engine, including the uri and postdata, if applicable.
nsISessionStartup
it will either be restored or
about:sessionrestore will be displayed.
nsISessionStore
if the preference browser.sessionstate.enabled is false when this method is called, then you will get an exception
about "awindows[i] has no properties".
nsISocketTransportService
for more details on communicating information
about proxies like socks (which are transparent to upper protocols), see nsiproxiedprotocolhandler , nsiprotocolproxyservice or proxies in necko.
nsITaskbarTabPreview
methods violates the xpcom interface guidelines ensureregistration() used internally to ensure that the taskbar knows
about this preview.
nsIThreadPool
a listener will only receive notifications
about threads created after the listener is set so it is recommended that the consumer set the listener before dispatching the first event.
nsITransportSecurityInfo
netwerk/socket/nsitransportsecurityinfo.idlscriptable this interface provides information
about transport security, including the security state and any error message for the connection.
nsITreeSelection
layout/xul/base/src/tree/public/nsitreeselection.idlscriptable this interface is used by the tree widget to get information
about what is selected.
nsIURIFixup
getfixupuriinfo() same as createfixupuri, but returns information
about what it corrected (e.g.
nsIUpdateCheckListener
update an nsiupdate object containing details
about the error in its statustext attribute.
nsIUpdatePrompt
showupdateerror() displays an error message telling the user
about an update failure, such as a failure to successfully apply a patch.
nsIWebContentHandlerRegistrar
can bypass this by opening
about:config and setting preference of gecko.handlerservice.allowregisterfromdifferenthost to true.
nsIWifiAccessPoint
netwerk/wifi/nsiwifiaccesspoint.idlscriptable this interface provides information
about a single access point.
nsIWorkerGlobalScope
this interface allows a worker to look up information
about itself, as well as to control itself.
nsIZipReader
to create an instance, use: var zipreader = components.classes["@mozilla.org/libjar/zip-reader;1"] .createinstance(components.interfaces.nsizipreader);
about character sets and code pages note: nsizipreader has a code page problem; that is, in the zip specification, filenames are supposed to use 7-bit ascii; however, most modern filesystems use 8 bit code pages, such as utf-8.
nsMsgFolderFlagType
defined in comm-central/ mailnews/ base/ public/ nsmsgfolderflags.idl typedef unsigned long nsmsgfolderflagtype; /// flags
about a folder or a newsgroup.
XPCOM Interface Reference
ozistoragefunctionmozistoragependingstatementmozistorageprogresshandlermozistorageresultsetmozistoragerowmozistorageservicemozistoragestatementmozistoragestatementcallbackmozistoragestatementparamsmozistoragestatementrowmozistoragestatementwrappermozistoragevacuumparticipantmozistoragevaluearraymozitxttohtmlconvmozithirdpartyutilmozivisitinfomozivisitinfocallbackmozivisitstatuscallbacknsiabcardnsi
aboutmodulensiabstractworkernsiaccelerometerupdatensiaccessnodensiaccessibilityservicensiaccessiblensiaccessiblecaretmoveeventnsiaccessiblecoordinatetypensiaccessibledocumentnsiaccessibleeditabletextnsiaccessibleeventnsiaccessiblehyperlinknsiaccessiblehypertextnsiaccessibleimagensiaccessibleprovidernsiaccessiblerelationnsiaccessibleretrievalnsiaccessiblerolensiaccessiblescrolltypensiaccessibleselectabl...
Weak reference
you really want this weak reference scheme to give you a pointer that implements the interface you actually care
about, e.g., // note: _not_ the implementation we have...
Working with Multiple Versions of Interfaces
unfortunately we compiled this in the latest sdk, and so this magic number happens to be: "244e4c67-a1d3-44f2-9cab-cdaa31b68046" whereas, inside firefox 2, the iid it happens to know
about is: "663ca4a8-d219-4000-925d-d8f66406b626".
wrappedJSObject
calling queryinterface on the wrapper works, because it is defined in the nsisupports interface, and the wrapper knows the underlying object implements nsisupports: > comp.queryinterface(components.interfaces.nsihelloworld); [xpconnect wrapped (nsisupports, nsihelloworld)] as you can see, the queryinterface call also made the wrapper know
about the other interface our component supports.
xptcall FAQ
if anyone has credible ideas
about how to get the required functionality in a cross platform way and/or without resorting to assembly code i'd love to hear
about it.
XUL Overlays
the chrome registry, which is a special rdf datasource into which user-specific information is persisted, or stored, contains information
about the components or additional packages that have been installed with the browser.
Testing Mozilla code
fuzzing interfacethe fuzzing interface is glue code living in mozilla-central in order to make it easier for developers and security researchers to test c/c++ code with either libfuzzer or afl-fuzz.measuring code coverage on firefoxcode coverage essentially is
about measuring how often certain lines are hit, branches taken or conditions met in a program, given some test that you run on it.
Address Book examples
each photo handler must implement the following interface: /* * onload: function(acard, adocument): * called when the editor wants to populate the contact editor * input fields with information
about acard's photo.
Buddy icons in mail
(see this document for info
about that.) for the addressbook card pane, the icon will show is on disk at: <profile home>/nim/<value of pref aim.session.screenname>/picture/<screenname for card>.gif if aim.session.screenname is not set, the icon will not appear.
Creating a gloda message query
glodamessage.conversation.getmessagescollection(alistener, adata) returns a collection that should contain all of the messages gloda knows
about that belong to the conversation.
Thunderbird Binaries
distinguishing between different nightly builds the main way you can determine if you are using a trunk or branch build is to click the "help" menu and choose "
about".
Adding items to the Folder Pane
a note
about the initial rebuild when thunderbird first starts up, the folder pane does an initial rebuild to get the first data it should display.
Building a Thunderbird extension 1: introduction
the tutorial has the following pages: introduction (this page) the extension filesystem (setting up your local system) install manifest (the install.rdf file that contains meta-information
about the extension) chrome manifest (list of packages and overlays) xul (the xml user interface language that is used to modify the thunderbird user interface) adding javascript (explains how to add some simple javascript to your thunderbird extension) installing locally (enabling the extension on your local thunderbird instance) packaging (making a distribution package that contains the extensio...
Creating a Custom Column
note that an object that implements this interface can also take control of an existing, built-in column, but more
about that later.
Folders and message lists
when using this, be sure that there's only one selected message (or that you only care
about the first one).
Tips and Tricks from the newsgroups
d 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 selecting 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 ...
customDBHeaders Preference
install.rdf superfluous.xpi: ${deps} zip $@ ${deps} chrome.manifest: content superfluous chrome/content/ overlay chrome://messenger/content/messenger.xul chrome://superfluous/content/superfluous_overlay.xul install.rdf: <?xml version='1.0' encoding='utf-8'?> <rdf xmlns='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:em='http://www.mozilla.org/2004/em-rdf#'> <description
about='urn:mozilla:install-manifest'> <em:id>superfluous@yoursite.com</em:id> <em:version>0.1.1</em:version> <em:type>2</em:type> <!-- 2 is type 'extension' --> <em:targetapplication> <description> <!-- this next line identifies tbird as target --> <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id> <em:minversion>2*</em:minversion> ...
Using the Mozilla source server
now, when you click on a frame in the "calls" window, windbg will prompt you
about running cvs to download the associated source code.
Standard OS Libraries
core foundation to learn
about all the mac os x apis and which library file you will need to call, go to the mac developer library website and find the function, then scroll down to "declared in" section, and find which framework contains the header file.
CType
these objects have assorted methods and properties that let you create objects of these types, find out information
about them, and so forth.
js-ctypes
documentation if you are brand new to js-ctypes, and have no idea
about it, the pages you should read first is - ctypes.open followed by standard os libraries.
Blocking By Domain - Plugins
any concerns or questions
about the plugin block lists should be directed to plugin-blocking-by-domain@mozilla.com.
Flash Activation: Browser Comparison - Plugins
yes <object> with fallback content triggers ui yes, with exceptions no yes small/hidden flash triggers additional ui yes no no enabling flash automatically reloads the page no yes yes other features related to flash domain blocking plugin power saver peripheral content pause each of the browser vendors has a roadmap
about the future of flash and changes to the user experience.
Initialization and Destruction - Plugins
the browser calls the plug-in's np_shutdown function, which informs the plug-in that its library is
about to be unloaded, and gives it a chance to cancel any outstanding i/o requests, delete threads it created, free any memory it allocated, and perform any other closing tasks.
URLs - Plugins
url scheme description
about locates browser information or "fun" pages.
Preferences System
reference information
about them is available below: preferences system documentation: introduction: getting started | examples | troubleshooting reference: prefwindow | prefpane | preferences | preference | xul attributes use code for a typical preferences window may look like this: <prefwindow id="apppreferences" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <prefpane id="pane1" label="&pane1.title;"> <preferences> <preference id="pref1" name="pref.name...
Browser Toolbox - Firefox Developer Tools
altogether you will have access to the following developer tools: debugger (note: if you want to debug a specific add-on that is restartless or sdk-based then try the add-on debugger.) console style editor performance network monitor page inspector accessibility inspector you can debug chrome: and
about: pages using the normal debugger, just as if they were ordinary content pages.
Step through code - Firefox Developer Tools
if you want to turn this feature off, since firefox 71 you can do so by going to
about:config in a new tab, setting the devtools.debugger.features.overlay pref to false, and restarting the browser.
UI Tour - Firefox Developer Tools
in the screenshot below there are three breakpoints: line 82 has a normal breakpoint and execution is paused here line 85 has a logpoint which logs the contents of tablerow to the console line 100 has a conditional breakpoint the third column shows more information
about the breakpoints.
Debugger.Frame - Firefox Developer Tools
this allows the code using each debugger instance to place whatever properties it likes on its debugger.frame instances, without worrying
about interfering with other debuggers.) when the debuggee pops a stack frame (say, because a function call has returned or an exception has been thrown from it), the debugger.frame instance referring to that frame becomes inactive: its live property becomes false, and accessing its other properties or calling its methods throws an exception.
Inspecting web sockets - Firefox Developer Tools
columns in the response pane in the response pane, you can choose to show the following information
about each frame: data size time opcode maskbit finbit the data and time columns are visible by default, but you can customize the interface to see more columns by choosing which ones to show from the context menu that is opened by right-clicking in the table header.
Page inspector 3-pane mode - Firefox Developer Tools
enabling the 3-pane inspector pre-firefox 62 in earlier versions of firefox (since firefox 59/60), you can enable 3 pane mode in release/beta by going to
about:config and flipping the following prefs to true: devtools.inspector.split-rule-enabled — this switches 3-pane mode on and off.
Animation inspector (Firefox 41 and 42) - Firefox Developer Tools
the animation inspector enables you to: see information
about all animations running in the page play/pause all animations play/pause/rewind/fast-forward each animation jump to a specific point in an animation highlight and inspect the animated node adjust the playback rate of each animation see whether an animation is running in the compositor thread (a lightning bolt icon is displayed next to such animations) ...
Page inspector keyboard shortcuts - Firefox Developer Tools
show/hide more information
about current property (computed view only, when a property is selected) enter or space return or space enter or space open mdn reference page
about current property (computed view only, when a property is selected) f1 f1 f1 open current css file in style editor (computed view only, when more information is shown for a property and a css file reference is focused).
Responsive Design Mode - Firefox Developer Tools
now when you change such settings for the first time, you are given a warning message that tells you these reloads are no longer automatic, and informed
about how you can make them automatic.
Shader Editor - Firefox Developer Tools
for example, you can modify the colors: the editor highlights syntax errors in your code: if you hover over the cross shown next to a line containing an error, you'll see more details
about the problem: ...
Ambient Light Events - Web APIs
when the browser gets such a notification, it fires a devicelightevent event that provides information
about the exact light intensity (in lux units).
AudioContext() - Web APIs
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.
AudioTrackList - Web APIs
var audiotracks = document.queryselector("video").audiotracks; monitoring track count changes in this example, we have an app that displays information
about the number of channels available.
BaseAudioContext.createBuffer() - Web APIs
the createbuffer() method of the baseaudiocontext interface is used to create a new, empty audiobuffer object, which can then be populated by data, and played via an audiobuffersourcenode for more details
about audio buffers, check out the audiobuffer reference page.
BatteryManager - Web APIs
the batterymanager interface provides ways to get information
about the system's battery charge level.
Battery Status API - Web APIs
the battery status api, more often referred to as the battery api, provides information
about the system's battery charge level and lets you be notified by events that are sent when the battery level or charging status change.
BluetoothRemoteGATTCharacteristic - Web APIs
the bluetoothremotegattcharacteristic interface of the web bluetooth api represents a gatt characteristic, which is a basic data element that provides further information
about a peripheral’s service.
BluetoothRemoteGATTDescriptor - Web APIs
the bluetoothremotegattdescriptor interface of the web bluetooth api provides a gatt descriptor, which provides further information
about a characteristic’s value.
device - Web APIs
the bluetoothgattservice.device read-only property returns information
about a bluetooth device through an instance of bluetoothdevice.
BluetoothRemoteGATTService - Web APIs
teristic); promise<sequence<bluetoothgattcharacteristic>> getcharacteristics(optional bluetoothcharacteristicuuid characteristic); promise<bluetoothgattservice> getincludedservice(bluetoothserviceuuid service); promise<sequence<bluetoothgattservice>> getincludedservices(optional bluetoothserviceuuid service); }; properties bluetoothremotegattservice.deviceread only returns information
about a bluetooth device through an instance of bluetoothdevice.
Managing screen orientation - Web APIs
accepted values are: portrait-primary, portrait-secondary, landscape-primary, landscape-secondary, portrait, landscape (see screen.lockorientation to know more
about each of those values).
Using the CSS properties and values API - Web APIs
r(--unregistered)); transition: --unregistered 1s ease-in-out; } .unregistered:hover, .unregistered:focus { --unregistered: #b4d455; } button { height: 40vh; display: block; width: 100%; font-size: 3vw; } window.css.registerproperty({ name: '--registered', syntax: '<color>', inherits: false, initialvalue: 'red', }); while not functionally accurate, a good way to think
about the difference between the unregistered property in the above example and the registered property is the difference between a <custom-ident> and a number when trying to animate height.
Cache - Web APIs
about to fetch ' + 'from network...', event.request.url); // we call .clone() on the request since we might use it in a call to cache.put() later on.
CanvasRenderingContext2D.addHitRegion() - Web APIs
vas(); }); edit.addeventlistener("click", function() { textarea.focus(); }); canvas.addeventlistener("mousemove", function(event){ if(event.region) { alert("ouch, my eye :("); } }); textarea.addeventlistener("input", drawcanvas); window.addeventlistener("load", drawcanvas); specifications canvas hit regions have been removed from the whatwg living standard, although discussions
about future standardization are ongoing.
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.
CanvasRenderingContext2D.clearHitRegions() - Web APIs
> 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.lineWidth - Web APIs
html <canvas id="canvas"></canvas> javascript const canvas = document.getelementbyid('canvas'); const ctx = canvas.getcontext('2d'); ctx.linewidth = 15; ctx.beginpath(); ctx.moveto(20, 20); ctx.lineto(130, 130); ctx.rect(40, 40, 70, 70); ctx.stroke(); result more examples for more examples and explanation
about this property, see applying styles and color in the canvas tutorial.
CanvasRenderingContext2D.removeHitRegion() - Web APIs
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.
Basic animations - Web APIs
for more information
about the animation loop, especially for games, see the article anatomy of a video game in our game development zone.
Compositing and clipping - Web APIs
in the chapter
about drawing shapes i only mentioned the stroke() and fill() methods, but there's a third method we can use with paths, called clip().
Drawing text - Web APIs
earrect(0, 0, canvas.width, canvas.height); eval(textarea.value); } reset.addeventlistener('click', function() { textarea.value = code; drawcanvas(); }); edit.addeventlistener('click', function() { textarea.focus(); }) textarea.addeventlistener('input', drawcanvas); window.addeventlistener('load', drawcanvas); advanced text measurements in the case you need to obtain more details
about the text, the following method allows you to measure it.
Transformations - Web APIs
« previousnext » earlier in this tutorial we've learned
about the canvas grid and the coordinate space.
Using images - Web APIs
because 24-bit png images include a full 8-bit alpha channel, unlike gif and 8-bit png images, it can be placed onto any background without worrying
about a matte color.
Canvas tutorial - Web APIs
the examples provided should give you some clear ideas
about what you can do with canvas, and will provide code snippets that may get you started in building your own content.
console - Web APIs
clicking the object name opens more information
about it in the inspector.
Console API - Web APIs
find out
about these at: google chrome devtools implementation safari devtools implementation usage is very simple — the console object — available via window.console, or workerglobalscope.console in workers; accessible using just console — contains many methods that you can call to perform rudimentary debugging tasks, generally focused around logging various values to the browser's web console.
Credential - Web APIs
the credential interface of the the credential management api provides information
about an entity as a prerequisite to a trust decision.
DOMImplementation.createHTMLDocument() - Web APIs
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> <iframe id="theframe" src="
about:blank" /> </body> the javascript implementation of makedocument() follows: function makedocument() { let frame = document.getelementbyid("theframe"); 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 n...
Detecting device orientation - Web APIs
the motion event contains four properties: devicemotionevent.acceleration devicemotionevent.accelerationincludinggravity devicemotionevent.rotationrate devicemotionevent.interval motion values explained the devicemotionevent objects provide web developers with information
about the speed of changes for the device's position and orientation.
DeviceLightEvent - Web APIs
the devicelightevent provides web developers with information from photo sensors or similiar detectors
about ambient light levels near the device.
DeviceProximityEvent - Web APIs
the deviceproximityevent interface provides information
about the distance of a nearby physical object using the proximity sensor of a device.
DirectoryEntrySync - Web APIs
about this document this document was last updated on march 2, 2012 and follows the w3c specifications (working draft) drafted on april 19, 2011.
DirectoryReaderSync - Web APIs
about this document this document was last updated on march 2, 2012 and follows the w3c specifications (working draft) drafted on april 19, 2011.
Document.fonts - Web APIs
to change preferences in firefox, visit
about:config.ie no support noopera full support 47safari full support 10webview android full support 60chrome android full support 60firefox android full support ...
Document.lastModified - Web APIs
(see: bug 4363 – document.lastmodified returns date in utc time, but should return it in local time) if you want to know whether an external page has changed, please read this paragraph
about the xmlhttprequest() api.
Document.location - Web APIs
the document.location read-only property returns a location object, which contains information
about the url of the document and provides methods for changing that url and loading another url.
Document.origin - Web APIs
syntax var origin = document.origin; examples var origin = document.origin; // on this page, returns:'https://developer.mozilla.org' var origin = document.origin; // on "
about:blank", returns:'null' var origin = document.origin; // on "data:text/html,<b>foo</b>", returns:'null' ...
Document.requestStorageAccess() - Web APIs
to make testing easier, we have added two preferences in
about:config that control prompting upon requeststorageaccess() calls: dom.storage_access.auto_grants can be set to false to disable the automatic granting of ephemeral storage access grants.
Document: scroll event - Web APIs
note, however, that input events and animation frames are fired at
about the same rate, and therefore the optimization below is often unnecessary.
EffectTiming - Web APIs
simply put, these properties describe how the user agent should go
about making the transition from keyframe to keyframe, and how to behave when the animation begins and ends.
Element.innerHTML - Web APIs
we add a second method that logs information
about mouseevent based events (such as mousedown, click, and mouseenter): function logevent(event) { var msg = "event <strong>" + event.type + "</strong> at <em>" + event.clientx + ", " + event.clienty + "</em>"; log(msg); } then we use this as the event handler for a number of mouse events on the box that contains our log: var boxelem = document.queryselector(".box"); boxelem.addev...
Element: scroll event - Web APIs
note, however, that input events and animation frames are fired at
about the same rate, and therefore the optimization below is often unnecessary.
ElementCSSInlineStyle.style - Web APIs
examples // set multiple styles in a single statement elt.style.csstext = "color: blue; border: 1px solid black"; // or elt.setattribute("style", "color:red; border: 1px solid blue;"); // set specific style while leaving other inline style values untouched elt.style.color = "blue"; getting style information the style property is not useful for completely learning
about the styles applied on the element, since it represents only the css declarations set in the element's inline style attribute, not those that come from style rules elsewhere, such as style rules in the <head> section, or external style sheets.
ExtendableEvent.waitUntil() - Web APIs
example using waituntil() within a service worker's install event: addeventlistener('install', event => { const precache = async () => { const cache = await caches.open('static-v1'); return cache.addall([ '/', '/
about/', '/static/styles.css' ]); }; event.waituntil(precache()); }); specifications specification status comment service workersthe definition of 'waituntil()' in that specification.
FederatedCredential - Web APIs
the federatedcredential interface of the the credential management api provides information
about credentials from a federated identity provider.
FetchEvent.request - Web APIs
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 defi...
FetchEvent - Web APIs
it contains information
about the fetch, including the request and how the receiver will treat the response.
Cross-global fetch usage - Web APIs
so in the case described above, it is resolved against the iframe'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.
Using Fetch - Web APIs
ders.get('content-type'); if (!contenttype || !contenttype.includes('application/json')) { throw new typeerror("oops, we haven't got json!"); } return response.json(); }) .then(data => { /* process your data further */ }) .catch(error => console.error(error)); guard since headers can be sent in requests and received in responses, and have various limitations
about what information can and should be mutable, headers objects have a guard property.
Fetch API - Web APIs
note: find out more
about using the fetch api features in using fetch, and study concepts in fetch basic concepts.
File - Web APIs
the file interface provides information
about files and allows javascript in a web page to access their content.
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.
FileSystemSync - Web APIs
about this document this document was last updated on march 2, 2012 and follows the w3c specifications (working draft) drafted on april 19, 2011.
Gamepad.id - Web APIs
the gamepad.id property of the gamepad interface returns a string containing some information
about the controller.
Gamepad - Web APIs
gamepad.id read only a domstring containing identifying information
about the controller.
Gamepad API - Web APIs
it contains three interfaces, two events and one specialist function, to respond to gamepads being connected and disconnected, and to access other information
about the gamepads themselves, and what buttons and other controls are currently being pressed.
GeometryUtils - Web APIs
the geometryutils interface provides different utility function to retrieve geometry information
about dom nodes.
HTMLElement: pointermove event - Web APIs
bubbles yes cancelable yes interface pointerevent event handler property onpointermove usage notes the event, which is of type pointerevent, provides all the information you need to know
about the user's interaction with the pointing device, including the position, movement distance, button states, and much more.
HTMLElement - Web APIs
input events beforeinput fired when the value of an <input>, <select>, or <textarea> element is
about to be modified.
HTMLIFrameElement - Web APIs
via element.removeattribute()) causes
about:blank to be loaded in the frame in firefox (from version 65), chromium-based browsers, and safari/ios.
HTMLImageElement.alt - Web APIs
in this example, a starburst image with the word "new!" is used to indicate that an article is
about something new (and probably supposedly also exciting).
HTMLImageElement.x - Web APIs
html in this example, we see a table showing information
about users of a web site, including their user id, their full name, and their avatar image.
HTMLImageElement.y - Web APIs
html in this example, we see a table showing information
about users of a web site, including their user id, their full name, and their avatar image.
HTMLSelectElement - Web APIs
example get information
about the selected option /* assuming we have the following html <select id='s'> <option>first</option> <option selected>second</option> <option>third</option> </select> */ var select = document.getelementbyid('s'); // return the index of the selected option console.log(select.selectedindex); // 1 // return the value of the selected option console.log(select.options[select.selectedindex...
HTMLTextAreaElement - Web APIs
placeholder string: returns / sets the element's placeholder attribute, containing a hint to the user
about what to enter in the control.
Drag Operations - Web APIs
you may also wish to set either the effectallowed, dropeffect property, or both at the same time, if you wish to be more specific
about the type of operation that will performed.
Headers - Web APIs
note: you can find more out
about the available headers by reading our http headers reference.
IDBDatabase.transaction() - Web APIs
you're storing critical data that cannot be recomputed later) you can force a transaction to flush to disk before delivering the complete event by creating a transaction using the experimental (non-standard) readwriteflush mode (see idbdatabase.transaction.) this is currently experimental, and can only be used if the dom.indexeddb.experimental pref is set to true in
about:config.
IDBObjectStore - Web APIs
to change preferences in firefox, visit
about:config.ie partial support 10opera full support 15safari full support 7webview android full support yes full support yes no support ?
IDBRequest.onerror - Web APIs
); // when this new request succeeds, run the displaydata() // function again to update the display updatetitlerequest.onsuccess = function() { displaydata(); }; }; objectstoretitlerequest.onerror = function() { // if an error occurs with the request, log what it is console.log("there has been an error with retrieving your data: " + objectstoretitlerequest.error); // todo what
about event parameter into onerror()?
IDBRequest - Web APIs
the request object does not initially contain any information
about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the idbrequest instance.
IDBTransaction.oncomplete - Web APIs
you're storing critical data that cannot be recomputed later) you can force a transaction to flush to disk before delivering the complete event by creating a transaction using the experimental (non-standard) readwriteflush mode (see idbdatabase.transaction.) this is currently experimental, and can only be used if the dom.indexeddb.experimental pref is set to true in
about:config.
IdleDeadline - Web APIs
to learn more
about how request callbacks work, see collaborative scheduling of background tasks.
InputDeviceCapabilities - Web APIs
the inputdevicecapabilities() constructor creates a new inputdevicecapabilities object provides information
about the physical device responsible for generating a touch event.
InputDeviceCapabilities - Web APIs
the inputdevicecapabilities interface of the input device capabilities api provides information
about the physical device or a group of related devices responsible for generating input events.
InputEvent() - Web APIs
datatransfer: (optional) a datatransfer object containing information
about richtext or plaintext data being added to or removed from editible content.
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.
InputEvent - Web APIs
inputevent.datatransferread only returns a datatransfer object containing information
about richtext or plaintext data being added to or removed from editable content.
compareVersion - Web APIs
note that the registry pathname is not the location of the software on the computer; it is the location of information
about the software inside the client version registry.
install - Web APIs
to surface detail
about the status of the installation, use the optional callback function and its status parameter, as in the example below.
Key Values - Web APIs
vk_prev_day "info" toggles the display of information
about the currently selected content, program, or media.
KeyboardEvent.key - Web APIs
lear-console'); function logmessage(message) { document.getelementbyid("console-log").innerhtml += message + "<br>"; } textarea.addeventlistener('keydown', (e) => { if (!e.repeat) logmessage(`key "${e.key}" pressed [event: keydown]`); else logmessage(`key "${e.key}" repeating [event: keydown]`); }); textarea.addeventlistener('beforeinput', (e) => { logmessage(`key "${e.data}"
about to be input [event: beforeinput]`); }); textarea.addeventlistener('input', (e) => { logmessage(`key "${e.data}" input [event: input]`); }); textarea.addeventlistener('keyup', (e) => { logmessage(`key "${e.key}" released [event: keyup]`); }); btnclearconsole.addeventlistener('click', (e) => { let child = consolelog.firstchild; while (child) { consolelog.removechild(child); chil...
KeyframeEffectOptions - Web APIs
simply put, these properties describe how the user agent should go
about making the transition from keyframe to keyframe, and how to behave when the animation begins and ends.
LargestContentfulPaint - Web APIs
the largestcontentfulpaint interface of the largest contentful paint api provides details
about the largest image or text paint before user input on a web page.
LayoutShiftAttribution - Web APIs
the layoutshiftattribution interface of the layout instability api provides debugging information
about elements which have shifted.
LocalFileSystemSync - Web APIs
about this document this document was last updated on march 2, 2012 and follows the w3c specifications (working draft) drafted on april 19, 2011.
LockManager.query() - Web APIs
the query() method of the lockmanager interface returns a promise which resolves with an object containing information
about held and pending locks.
LockManager - Web APIs
lockmanager.query() returns a promise that resolves with a lockmanagersnapshot which contains information
about held and pending locks.
Long Tasks API - Web APIs
taskattributiontiming returns information
about the work involved in a long task and its associate frame context.
MIDIAccess - Web APIs
examples navigator.requestmidiaccess() .then(function(access) { // get lists of available midi controllers const inputs = access.inputs.values(); const outputs = access.outputs.values(); access.onstatechange = function(e) { // print information
about the (dis)connected midi controller console.log(e.port.name, e.port.manufacturer, e.port.state); }; }); specifications specification status comment web midi api working draft initial definition.
Magnetometer.Magnetometer() - Web APIs
the magnetometer constructor creates a new magnetometer object which returns information
about the magnetic field as detected by a device’s primary magnetometer sensor.
Magnetometer - Web APIs
the magnetometer interface of the sensor apis provides information
about the magnetic field as detected by the device’s primary magnetometer sensor.
MediaDevices.getDisplayMedia() - Web APIs
browsers are encouraged to provide a warning to users
about sharing displays or windows that contain browsers, and to keep a close eye on what other content might be getting captured and shown to other users.
MediaError - Web APIs
a mediaerror object describes the error in general terms using a numeric code categorizing the kind of error, and a message, which provides specific diagnostics
about what went wrong.
MediaPositionState - Web APIs
its contents can be used by the user agent to provide a user interface displaying information
about the playback position and duration of the media currently being performed.
MediaRecorder() - Web APIs
options optional a dictionary object that can contain the following properties: mimetype: a mime type specifying the format for the resulting media; you may simply specify the container format (the browser will select its preferred codecs for audio and/or video), or you may use the codecs parameter and/or the profiles parameter to provide detailed information
about which codecs to use and how to configure them.
MediaRecorderErrorEvent.error - Web APIs
the read-only error property in the mediarecordererrorevent interface is a domexception object providing details
about the exception that was thrown by a mediarecorder instance.
MediaStream Image Capture API - Web APIs
in addition to capturing data, it also allows you to retrieve information
about device capabilities such as image size, red-eye reduction and whether or not there is a flash and what they are currently set to.
MediaStream Recording API - Web APIs
for more information to learn more
about using the mediastream recording api, see using the mediastream recording api, which shows how to use the api to record audio clips.
Media Session API - Web APIs
mediapositionstate used to contain information
about the current playback position, playback speed, and overall media duration when calling the mediasession method setpositionstate() to establish the media's length, playback position, and playback speed.
Transcoding assets for Media Source Extensions - Web APIs
[0] (c) copyright 2008, blender foundation / www.bigbuckbunny.org / https://peach.blender.org/
about/ tools required when working with mse, the following tools are a must have: ffmpeg — a command-line utility for transcoding your media into the required formats.
Media Source API - Web APIs
videoplaybackquality contains information
about the quality of video being played by a <video> element, such as number of dropped or corrupted frames.
Metadata - Web APIs
the metadata interface is used by the file and directory entries api to contain information
about a file system entry.
MimeTypeArray - Web APIs
the mimetypearray interface returns an array of mimetype instances, each of which contains information
about a supported browser plugins.
MouseEvent.pageX - Web APIs
see page in coordinate systems for some additional information
about coordinates specified in this fashion.
NDEFReader - Web APIs
ndefreader.onreading an event handler for reading event, that notifies
about availability of a new reading.
NDEFRecord.id - Web APIs
web nfc does not sign the nfc content, thus record consumer should not make any assumptions
about integrity or authenticity of the identifier or any other part of the records.
Using Navigation Timing - Web APIs
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.
Navigator.battery - Web APIs
the battery read-only property returns a batterymanager which provides information
about the system's battery charge level and whether the device is charging and exposes events that fire when these parameters change.
Navigator.connection - Web APIs
the navigator.connection read-only property returns a networkinformation object containing information
about the system's connection, such as the current bandwidth of the user's device or whether the connection is metered.
Navigator.mediaCapabilities - Web APIs
the navigator.mediacapabilities read-only property returns a mediacapabilities object that can expose information
about the decoding and encoding capabilities for a given format and output capabilities as defined by the media capabilities api.
Navigator.registerProtocolHandler() - Web APIs
this might happen if: the registered scheme (protocol) is invalid, such as a scheme the browser handles itself (https:,
about:, etc.) the handler url’s origin does not match the origin of the page calling this api.
NavigatorID - Web APIs
navigatorid.appversion read only returns either "4.0" or a string representing version information
about the browser.
NetworkInformation - Web APIs
the networkinformation interface provides information
about the connection a device is using to communicate with the network and provides a means for scripts to be notified if the connection type changes.
NodeFilter - Web APIs
a nodefilter knows nothing
about the document or traversing nodes; it only knows how to evaluate a single node against the provided filter.
Using the Notifications API - Web APIs
most modern browsers dismiss notifications automatically after a few moments (around four seconds) but this isn't something you should generally be concerned
about as it's up to the user and user agent.
PannerNode.coneInnerAngle - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PannerNode.coneOuterAngle - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PannerNode.coneOuterGain - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PannerNode.orientationX - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PannerNode.orientationY - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PannerNode.orientationZ - Web APIs
he sound will play at full volume const [x1, y1, z1] = yrotationtovector(0); // schedule the no-rotation vector immediately panner.orientationx.setvalueattime(x1, context.currenttime); panner.orientationy.setvalueattime(y1, context.currenttime); panner.orientationz.setvalueattime(z1, context.currenttime); // calculate the vector for -22.4 degrees // since our coneouterangle is 45, this will just
about make the sound audible // if we set it to +/-22.5, the sound volume will be 0, as the threshold is exclusive const [x2, y2, z2] = yrotationtovector(-22.4); panner.orientationx.setvalueattime(x2, context.currenttime + 2); panner.orientationy.setvalueattime(y2, context.currenttime + 2); panner.orientationz.setvalueattime(z2, context.currenttime + 2); finally, let's connect all our nodes and start ...
PaymentAddress - Web APIs
it may be useful to refer to the universal postal union web site's addressing s42 standard materials, which provide information
about international standards for postal addresses.
PaymentMethodChangeEvent - Web APIs
the paymentmethodchangeevent() constructor creates a new paymentmethodchangeevent object providing details
about a paymentmethodchange event.
PaymentRequest.show() - Web APIs
omplete("fail")); } you could even have checkallvalues() be a synchronous function, although that may have performance implications you don't want to deal with: function validateresponse(response) { if (checkallvalues(response) { response.complete("success"); } else { response.complete("fail"); } } see the article using promises for more information if you need more information
about working with promises.
PaymentValidationErrors - Web APIs
the paymentvalidationerrors dictionary represents objects providing information
about any and all errors that occurred while processing a payment request.
Payment Request API - Web APIs
consistent error handling: the browser can check the validity of card numbers, and can tell the user if a card has expired (or is
about to expire).
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 refresh, how many redirections occurred, and so forth.
PerformancePaintTiming - Web APIs
the performancepainttiming interface of the paint timing provides timing information
about "paint" (also called "render") operations during web page construction.
PerformanceResourceTiming - Web APIs
additionally, the interface extends performanceentry with other properties which provide data
about the size of the fetched resource as well as the type of resource that initiated the fetch.
Performance API - Web APIs
performanceframetiming provides methods and properties containing frame timing data
about the browser's event loop.
PluginArray - Web APIs
pluginslength; i++) { let newrow = table.insertrow(); newrow.insertcell().textcontent = navigator.plugins[i].name; newrow.insertcell().textcontent = navigator.plugins[i].filename; newrow.insertcell().textcontent = navigator.plugins[i].description; newrow.insertcell().textcontent = navigator.plugins[i].version?navigator.plugins[i].version:""; } the following example displays information
about the installed plugin(s).
PointerEvent.getCoalescedEvents() - Web APIs
to change preferences in firefox, visit
about:config.opera android full support 43safari ios no support nosamsung internet android full support 7.0legend full support full support partial support partial supp...
PointerEvent.isPrimary - Web APIs
if there are multiple primary pointers, these pointers will all produce compatibility mouse events (see pointer_events for more information
about pointer, mouse and touch interaction).
Pinch zoom gestures - Web APIs
function remove_event(ev) { // remove this event from the target's cache for (var i = 0; i < evcache.length; i++) { if (evcache[i].pointerid == ev.pointerid) { evcache.splice(i, 1); break; } } } event logging these functions are used to send event activity to the application's window (to support debugging and learning
about the event flow).
Pointer events - Web APIs
this section contains information
about pointer event and mouse event interaction and the ramifications for application developers.
PublicKeyCredential - Web APIs
the publickeycredential interface provides information
about a public key / private key pair, which is a credential for logging in to a service using an un-phishable and data-breach resistant asymmetric key pair instead of a password.
PushManager - Web APIs
in a production environment it might make sense to // also report information
about errors back to the // application server.
Push API - Web APIs
serviceworkerglobalscope.onpushsubscriptionchange an event handler fired whenever a pushsubscriptionchange event occurs; for example, when a push subscription has been invalidated, or is
about to be invalidated (e.g.
RTCConfiguration.certificates - Web APIs
<<<--- add link to information
about identity --->>> examples specifications specification status comment webrtc 1.0: real-time communication between browsersthe definition of 'rtcconfiguration.certificates' in that specification.
RTCErrorEvent.error - Web APIs
syntax let errorinfo = rtcerrorevent.error; value an rtcerror object whose properties provide details
about the error which has occurred in the context of a webrtc operation.
RTCErrorEvent - Web APIs
properties in addition to the standard properties available on the event interface, rtcerrorevent also includes the following: error read only an rtcerror object specifying the error which occurred; this object includes the type of error that occurred, information
about where the error occurred (such as which line number in the sdp or what sctp cause code was at issue).
RTCIceCandidate.RTCIceCandidate() - Web APIs
syntax candidate = new rtcicecandidate([candidateinfo]); parameters candidateinfo optional an optional rtcicecandidateinit object providing information
about the candidate; if this is provided, the candidate is initialized configured to represent the described candidate.
RTCIceCandidate.tcpType - Web APIs
the rtcicecandidate interface's read-only tcptype property is included on tcp candidates to provide additional details
about the candidate type.
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.
RTCIceProtocol - Web APIs
the tcptype property provides additional information
about the kind of tcp candidate represented by the object.
RTCIceRole - Web APIs
you can learn more
about ice roles in choosing a candidate pair in webrtc connectivity.
RTCIceTransport: selectedcandidatepairchange event - Web APIs
bubbles no cancelable no interface event event handler property onselectedcandidatepairchange examples this example creates an event handler for selectedcandidatepairchange that updates a display providing the user information
about the progress of the ice negotiation for an rtcpeerconnection called pc.
RTCInboundRtpStreamStats.receiverId - Web APIs
syntax var receiverstatsid = rtcinboundrtpstreamstats.receiverid; value a domstring which contains the id of the rtcaudioreceiverstats or rtcvideoreceiverstats object which provides information
about the rtcrtpreceiver which is receiving the streamed media.
RTCOutboundRtpStreamStats - Web APIs
senderid the {domxref("rtcstats.id", "id")}} of the rtcaudiosenderstats or rtcvideosenderstats object containing statistics
about this stream's rtcrtpsender.
RTCPeerConnection.createOffer() - Web APIs
the sdp offer includes information
about any mediastreamtracks already attached to the webrtc session, codec, and options supported by the browser, and any candidates already gathered by the ice agent, for the purpose of being sent over the signaling channel to a potential peer to request a connection or to update the configuration of an existing connection.
RTCPeerConnection.getStats() - Web APIs
the rtcpeerconnection method getstats() returns a promise which resolves with data providing statistics
about either the overall connection or
about the specified mediastreamtrack.
RTCPeerConnection.onicecandidate - Web APIs
this lets the ice agent perform negotiation with the remote peer without the browser itself needing to know any specifics
about the technology being used for signaling; simply implement this method to use whatever messaging technology you choose to send the ice candidate to the remote peer.
RTCRtpContributingSource - Web APIs
the rtcrtpcontributingsource dictionary of the the webrtc api is used by getcontributingsources() to provide information
about a given contributing source (csrc), including the most recent time a packet that the source contributed was played out.
RTCRtpReceiver.getStats() - Web APIs
the rtcrtpreceiver method getstats() asynchronously requests an rtcstatsreport object which provides statistics
about incoming traffic on the owning rtcpeerconnection, returning a promise whose fulfillment handler will be called once the results are available.
RTCRtpSender.getStats() - Web APIs
the rtcrtpsender method getstats() asynchronously requests an rtcstatsreport object which provides statistics
about outgoing traffic on the rtcpeerconnection which owns the sender, returning a promise which is fulfilled when the results are available.
RTCSctpTransport - Web APIs
this provides information
about limitations of the transport, but also provides a way to access the underlying datagram transport layer security (dtls) transport over which sctp packets for all of an rtcpeerconnection's data channels are sent and received.
RTCStats.id - Web APIs
the format of the id string is not defined by the specification, so you cannot reliably make any assumptions
about the contents of the string, or assume that the format of the string will remain unchanged for a given object type.
RTCTrackEvent() - Web APIs
syntax trackevent = new rtctrackevent(eventinfo); parameters eventinfo an object based on the rtctrackeventinit dictionary, providing information
about the track which has been added to the rtcpeerconnection.
Reporting API - Web APIs
the report-to http header is used to specify details
about the different endpoints that a user-agent has available to it for delivering reports to.
Request.referrer - Web APIs
example in the following snippet, we create a new request using the request.request() constructor (for an image file in the same directory as the script), then save the request referrer in a variable: var myrequest = new request('flowers.jpg'); var myreferrer = myrequest.referrer; // returns "
about:client" by default specifications specification status comment fetchthe definition of 'referrer' in that specification.
ScreenOrientation - Web APIs
the screenorientation interface of the the screen orientation api provides information
about the current orientation of the document.
SensorErrorEvent - Web APIs
the sensorerrorevent interface of the sensor apis provides information
about errors thrown by a sensor or related interface.
ServiceWorkerContainer - Web APIs
see /docs/web/api/serviceworkerregistration }).catch(function(error) { console.log('service worker registration failed:', error); }); // independent of the registration, let's also display // information
about whether the current page is controlled // by an existing service worker, and when that // controller changes.
ServiceWorkerGlobalScope.onfetch - Web APIs
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 defi...
SharedWorker() - Web APIs
note: there is disagreement among browser manufacturers
about whether a data uri is of the same origin or not.
SpeechSynthesis - Web APIs
the speechsynthesis interface of the web speech api is the controller interface for the speech service; this can be used to retrieve information
about the synthesis voices available on the device, start and pause speech, and other commands besides.
SpeechSynthesisErrorEvent - Web APIs
the speechsynthesiserrorevent interface of the web speech api contains information
about any errors that occur while processing speechsynthesisutterance objects in the speech service.
SpeechSynthesisEvent - Web APIs
the speechsynthesisevent interface of the web speech api contains information
about the current state of speechsynthesisutterance objects that have been processed in the speech service.
Storage API - Web APIs
note: see using the permissions api for further details
about obtaining and managing permissions.
Streams API - Web APIs
note: you can find a lot more details
about the theory and practice of streams in our articles — streams api concepts, using readable streams, and using writable streams.
SubtleCrypto.encrypt() - Web APIs
authentication helps protect against chosen-ciphertext attacks, in which an attacker can ask the system to decrypt arbitrary messages, and use the result to deduce information
about the secret key.
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.
TextTrackList - Web APIs
var texttracks = document.queryselector("video").texttracks; monitoring track count changes in this example, we have an app that displays information
about the number of channels available.
TimeEvent - Web APIs
"50" fill="#f4f7f8" stroke="#d4dde4" stroke-width="2px" /><text x="161" y="30" font-size="12px" font-family="consolas,monaco,andale mono,monospace" fill="#4d4e53" text-anchor="middle" alignment-baseline="middle">timeevent</text></a></svg></div> a:hover text { fill: #0095dd; pointer-events: all;} properties timeevent.detail read only is a long that specifies some detail information
about the event, depending on the type of the event.
Touch() - Web APIs
"rotationangle", optional and defaulting to 0, of type float, that is the angle (in degrees) that the ellipse described by radiusx and radiusy is rotated clockwise
about its center; 0 if no value is known.
Touch.radiusX - Web APIs
the touch.rotationangle is the angle (in degrees) that the ellipse described by radiusx and radiusy is rotated clockwise
about its center.
UIEvent() - Web APIs
sourcecapabilities: an instance of the inputdevicecapabilities interface which provides information
about the physical device responsible for generating a touch event.
sourceCapabilities - Web APIs
the uievent.sourcecapabilities read-only property returns an instance of the inputdevicecapabilities interface which provides information
about the physical device responsible for generating a touch event.
USBConfiguration.USBConfiguration() - Web APIs
the usbconfiguration() constructor creates a new usbconfiguration object which contains information
about the configuration on the provided usbdevice with the given configuration value.
USBDevice - Web APIs
the usbdevice interface of the the webusb api provides access to metadata
about a paired usb device and methods for controlling it.
VideoTrackList - Web APIs
var videotracks = document.queryselector("video").videotracks; monitoring track count changes in this example, we have an app that displays information
about the number of channels available.
Visual Viewport API - Web APIs
a window's visualviewport object provides information
about the viewport's position and size, and receives the resize and event:visualviewport:scroll events you can onitor to know when chances occur to the window's viewport.
WEBGL_debug_shaders - Web APIs
this extension is not directly available to web sites as the way of how the shader is translated may uncover personally-identifiable information to the web page
about the kind of graphics card in the user's computer.
WebGLRenderingContext.getContextAttributes() - Web APIs
ecaveat: false, powerpreference: "default", premultipliedalpha: true, preservedrawingbuffer: false, stencil: false, desynchronized: false } the context attributes can be set when creating the context using the htmlcanvaselement.getcontext() method: canvas.getcontext('webgl', { antialias: false, depth: false }); see getcontext() for more information
about the individual attributes.
WebGLRenderingContext.stencilOp() - Web APIs
gl.enable(gl.stencil_test); gl.stencilop(gl.incr, gl.decr, gl.invert); to get the current information
about stencil and depth pass or fail, query the following constants with getparameter().
WebGLRenderingContext.stencilOpSeparate() - Web APIs
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().
Adding 2D content to a WebGL context - Web APIs
the shaders a shader is a program, written using the opengl es shading language (glsl), that takes information
about the vertices that make up a shape and generates the data needed to render the pixels onto the screen: namely, the positions of the pixels and their colors.
Lighting in WebGL - Web APIs
simulating lighting and shading in 3d although going into detail
about the theory behind simulated lighting in 3d graphics is far beyond the scope of this article, it's helpful to know a bit
about how it works.
WebGL best practices - Web APIs
in firefox, setting the pref webgl.perf.max-warnings to -1 in
about:config will enable performance warnings that include warnings
about fb completeness invalidations.
WebGL model view projection - Web APIs
if you want to read a full explanation of the math behind it check out some of the following links: opengl projection matrix perspective projection trying to understand the math behind the perspective projection matrix in webgl one important thing to note
about the perspective projection matrix used below is that it flips the z axis.
WebRTC coding guide - Web APIs
if you need to learn more
about the fundamentals of how webrtc and its protocols work, check out our high-level guides for webrtc.
Introduction to WebRTC protocols - Web APIs
for example, lines providing media descriptions have the type "m", so those lines are referred to as "m-lines." for more information to learn more
about sdp, see the following useful resources: specification: rfc 4566: sdp: session description protocol iana registry of sdp parameters ...
WebSocket: close event - Web APIs
bubbles no cancelable no interface closeevent event handler property onclose examples you might want to know when the connection has been closed so that you can update the ui or, perhaps, save data
about the closed connection.
Writing WebSocket client applications - Web APIs
if you want to open a connection and are flexible
about the protocols you support, you can specify an array of protocols: var examplesocket = new websocket("wss://www.example.com/socketserver", ["protocolone", "protocoltwo"]); once the connection is established (that is, readystate is open), examplesocket.protocol will tell you which protocol the server selected.
Spaces and reference spaces: Spatial tracking in WebXR - Web APIs
<<<--- more text and example
about how to handle rendering during lost tracking --->>> when tracking resumes you can detect when tracking has resumed after being lost when the user position jumps while at the same time the value of emulatedposition changes from true to false.
WebXR Device API - Web APIs
using bounded reference spaces in this article, we examine how to use a bounded-floor reference space to define the boundaries of where the viewer can safely move
about without leaving the area tracked by their xr hardware or colliding with a physical obstacle.
Controlling multiple parameters with ConstantSourceNode - Web APIs
you could use a loop and change the value of each affected audioparam one at a time, but there are two drawbacks to doing it that way: first, that's extra code that, as you're
about to see, you don't have to write; and second, that loop uses valuable cpu time on your thread (likely the main thread), and there's a way to offload all that work to the audio rendering thread, which is optimized for this kind of work and may run at a more appropriate priority level than your code.
Web Audio API - Web APIs
you can read
about the theory of the web audio api in a lot more detail in our article basic concepts behind web audio api.
Web NFC API - Web APIs
low-level operations are currently not supported by the api, however there is a public discussion
about api that would add such functuionality.
Using Web Workers - Web APIs
about thread safety the worker interface spawns real os-level threads, and mindful programmers may be concerned that concurrency can cause “interesting” effects in your code if you aren't careful.
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.
Window.getComputedStyle() - Web APIs
to avoid the “css history leak” security issue, browsers may lie
about the computed styles for a visited link, returning values as if the user never visited the linked url.
Window.getDefaultComputedStyle() - Web APIs
in particular, to avoid the so called css history leak security issue, browsers may expressly "lie"
about the used value for a link and always return values as if a user has never visited the linked site, and/or limit the styles that can be applied using the :visited pseudo-selector.
window.location - Web APIs
the window.location read-only property returns a location object with information
about the current location of the document.
Window.navigator - Web APIs
the window.navigator read-only property returns a reference to the navigator object, which has methods and properties
about the application running the script.
Window.onbeforeinstallprompt - Web APIs
the window.onbeforeinstallprompt property is an event handler for processing a beforeinstallprompt, which is dispatched on devices when a user is
about to be prompted to "install" a web application.
Obsolete features - Web APIs
mozilla and firefox users can force new windows to always render the personal toolbar/bookmarks toolbar by setting dom.disable_window_open_feature.personalbar to true in
about:config or in their user.js file.
Window.pageYOffset - Web APIs
there is slightly better support for pageyoffset than for scrolly in older browsers, but if you're not concerned
about browsers more than a handful of years old, you can use either one.
Window.performance - Web APIs
the window interface's performance property returns a performance object, which can be used to gather performance information
about the current document.
Window.pkcs11 - Web APIs
syntax objref = window.pkcs11 example window.pkcs11.addmodule(smod, secpath, 0, 0); notes see nsidompkcs11 for more information
about how to manipulate pkcs11 objects.
Worker() - Web APIs
note: that there is a disagreement among browser manufacturers
about whether a data uri is of the same origin or not.
WorkerGlobalScope.dump() - Web APIs
for example, on mac os x you'd run it using something like this (assuming you are inside the applications folder): ./firefox.app/contents/macos/firefox-bin -profile /tmp -no-remote now go into
about:config and enable the browser.dom.window.dump.enabled pref.
WorkerGlobalScope.location - Web APIs
rkerlocation {hash: "", search: "", pathname: "/worker.js", port: "8000", hostname: "localhost"…} hash: "" host: "localhost:8000" hostname: "localhost" href: "http://localhost:8000/worker.js" origin: "http://localhost:8000" pathname: "/worker.js" port: "8000" protocol: "http:" search: "" __proto__: workerlocation you could use this location object to return more information
about the document's location, as you might do with a normal location object.
WorkerGlobalScope.navigator - Web APIs
x 10_10_1) applewebkit/537.36 (khtml, like gecko) chrome/40.0.2214.93 safari/537.36" hardwareconcurrency: 4 online: true platform: "macintel" product: "gecko" useragent: "mozilla/5.0 (macintosh; intel mac os x 10_10_1) applewebkit/537.36 (khtml, like gecko) chrome/40.0.2214.93 safari/537.36" __proto__: object you could use this navigator object to return more information
about the runtime envinronment, as you might do with a normal navigator object.
WorkerNavigator.connection - Web APIs
the workernavigator.connection read-only property returns a networkinformation object containing information
about the system's connection, such as the current bandwidth of the user's device or whether the connection is metered.
WorkerNavigator - Web APIs
workernavigator.connectionread only provides a networkinformation object containing information
about the network connection of a device.
XMLHttpRequestEventTarget - Web APIs
xmlhttprequesteventtarget.onprogress contains the function that is called periodically with information
about the progress of the request and the progress event is received by this object.
XMLSerializer.serializeToString() - Web APIs
notes on the resulting xml there are some things worth noting
about the xml output by serializetostring(): for xml serializations, element and attr nodes are always serialized with their namespaceuri intact.
XRFrame - Web APIs
the information
about a specific object can be obtained by calling one of the methods on the object.
XRInputSource.profiles - Web APIs
each string: has no spaces; instead, words are separated by hyphen ("-") characters if the platform makes it available, the usb vendor and product id may be provided but cannot be relied upon does not uniquely identify a specific device; rather, it identifies a configuration that the product is capable of using does not provide information
about handedness of the device, if applicable the webxr input profiles registry is used by device developers and browser developers to attempt to ensure that a given device will report the same profile strings regardless of which browser or other user agent you use.
XRInputSourceEventInit.frame - Web APIs
the xrinputsourceeventinit dictionary's property frame specifies an xrframe providing information
about the timestamp at which the new input source event took place, as well as access to the xrframe method getpose() which can be used to map the coordinates of any xrreferencespace to the space in which the event took place.
XRPermissionStatus.granted - Web APIs
the types of reference space are listed in the table below, with brief information
about their use cases and which interface is used to implement them.
XRReferenceSpace - Web APIs
reference space descriptors the types of reference space are listed in the table below, with brief information
about their use cases and which interface is used to implement them.
XRReferenceSpaceType - Web APIs
reference space descriptors the types of reference space are listed in the table below, with brief information
about their use cases and which interface is used to implement them.
XRSession.requestReferenceSpace() - Web APIs
reference space descriptors the types of reference space are listed in the table below, with brief information
about their use cases and which interface is used to implement them.
XRSession - Web APIs
with xrsession methods, you can poll the viewer's position and orientation (the xrviewerpose), gather information
about the user's environment, and present imagery to the user.
Generating HTML - Web APIs
the second example will transform the input document (example2.xml), which again contains information
about an article, into an html document.
Using the alertdialog role - Accessibility
<div role="alertdialog" aria-labelledby="dialog1title" aria-describedby="dialog1desc"> <div role="document" tabindex="0"> <h2 id="dialog1title">your login session is
about to expire</h2> <p id="dialog1desc">to extend your session, click the ok button</p> <button>ok</button> </div> </div> working examples: tbd notes aria attributes used alertdialog aria-labelledby aria-describedby related aria techniques using the dialog role using the alert role compatibility tbd: add support information for common ua and at product combinations add...
Using the aria-activedescendant attribute - Accessibility
possible effects on user agents and assistive technology the user agent, which is any software that retrieves, renders and facilitates end user interaction with web content, uses the aria-activedescendant property to inform the assistive technology
about the active child which has focus.
Using the group role - Accessibility
when the role is added to an element, the browser will send out an accessible group event to assistive technology products which can then notify the user
about it.
Using the log role - Accessibility
when this role is added to an element, the browser will send out an accessible log event to assistive technology products which can then notify the user
about it.
Using the status role - Accessibility
when the role is added to an element, the browser will send out an accessible status event to assistive technology products which can then notify the user
about it.
ARIA: tabpanel role - Accessibility
the aria tabpanel role indicates description an element with the tabpanel role associated roles and attributes aria- keyboard interaction key action tab → ← delete required javascript features include note
about semantic alternatives to using this role or attribute.
ARIA: Comment role - Accessibility
� simply nest the comments inside one another, like so: <div role="comment" id="thread-1" data-author="chris"> <h3>chris said</h3> <p class="comment-text">i really think this moment could use more cowbell.</p> <p><time datetime="2019-03-30t19:29">march 30 2019, 19:29</time></p> <div role="comment" data-author="marcus"> <h3>marcus replied</h3> <p class="comment-text">i don't know
about that.
ARIA: contentinfo role - Accessibility
examples <body> <!-- other page content --> <div role="contentinfo"> <h2>mdn web docs</h2> <ul> <li><a href="#">web technologies</a></li> <li><a href="#">learn web development</a></li> <li><a href="#">
about mdn</a></li> <li><a href="#">feedback</a></li> </ul> <p>© 2005-2018 mozilla and individual contributors.
ARIA: gridcell role - Accessibility
aria-colindex="1">debra</div> <div role="gridcell" aria-colindex="2">burks</div> <div role="gridcell" aria-colindex="5">new york</div> <div role="gridcell" aria-colindex="6">14127</div> </div> </div> … </div> describing the position of gridcells when the overall structure is unknown in situations where the table-style grouping of content does not provide information
about the columns and rows, gridcells must have their positions programatically described by using aria-describedby.
ARIA: List role - Accessibility
there are no hard and fast rules
about which elements you should use to markup the list and list items, but you should make sure that the list items make sense in the context of a list, e.g.
ARIA: Listitem role - Accessibility
there are no hard and fast rules
about which elements you should use to markup the list and list items, but you should make sure that the list items make sense in the context of a list, e.g.
ARIA: heading role - Accessibility
<div id="container"> <div role="heading" aria-level="1">the main page heading</div> <p>this article is
about showing a page structure.</p> <div role="heading" aria-level="2">introduction</div> <p>an introductory text.</p> <div role="heading" aria-level="2">chapter 1</div> <p>text</p> <div role="heading" aria-level="3">chapter 1.1</div> <p>more text in a sub section.</p> ...</div> however, instead, you should do: <div id="container"> <h1>the main page heading</h1> <p>this article is
about showing a pag...
Alerts - Accessibility
the form first, please read
about the aria-required technique if you have not done so, as this technique expands upon that.
ARIA - Accessibility
live regions live regions provide suggestions to screen readers
about how to handle changes to the contents of a page.
Keyboard-navigable JavaScript widgets - Accessibility
(for more information
about aria, see this overview of accessible web applications and widgets.) the aria-activedescendant property identifies the id of the descendent element that currently has the virtual focus.
Mobile accessibility checklist - Accessibility
use alt and title where appropriate (see steve faulkner's post
about using the html title attribute for a good guide.) if the above attributes are not applicable, use appropriate aria states and properties such as aria-label, aria-labelledby, or aria-describedby.
Perceivable - Accessibility
the whole of html: a good basis for accessibility is packed with information
about this, but you should particularly refer to good semantics, ui controls, and text alternatives.
:where() - CSS: Cascading Style Sheets
to change preferences in firefox, visit
about:config.ie no support noopera no support nosafari no support nowebview android no support nochrome android full support 72disabled full support ...
speak-as - CSS: Cascading Style Sheets
let's talk
about speech css | css tricks formal definition related at-rule@counter-styleinitial valueautocomputed valueas specified formal syntax auto | bullets | numbers | words | spell-out | <counter-style-name>where <counter-style-name> = <custom-ident> examples setting the spoken form for a counter html <ul class="list"> <li>one</li> <li>two</li> <li>three</li> <li>four</li> <li>five</li> <...
Box alignment in Flexbox - CSS: Cascading Style Sheets
therefore it is easiest to think
about the main and cross axis when working in flexbox like so: the main axis = direction set by flex-direction = alignment via justify-content the cross axis = runs across the main axis = alignment via align-content, align-self/align-items main axis alignment justify-content cross axis alignment align-self align-items align-content there is no justify-self in flexbox on the main axis...
Grid template areas - CSS: Cascading Style Sheets
</div> </div> grid definition shorthands having looked at various ways of placing items on our grids and many of the properties used to define grid, this is a good time to take a look at a couple of shorthands that are available for defining the grid and many things
about it all in one line of css.
Layout using named grid lines - CSS: Cascading Style Sheets
in-start; grid-row-end: content-end; } .box3 { grid-column-start: content-start; grid-row-start: main-start; } .box4 { grid-column-start: content-start; grid-column-end: main-end; grid-row-start: content-end; } <div class="wrapper"> <div class="box1">one</div> <div class="box2">two</div> <div class="box3">three</div> <div class="box4">four</div> </div> everything else
about line-based placement still works in the same way and you can mix named lines and line numbers.
Using the :target pseudo-class in selectors - CSS: Cascading Style Sheets
<h4 id="one">...</h4> <p id="two">...</p> <div id="three">...</div> <a id="four">...</a> <em id="five">...</em> <a href="#one">first</a> <a href="#two">second</a> <a href="#three">third</a> <a href="#four">fourth</a> <a href="#five">fifth</a> conclusion in cases where a fragment identifier points to a portion of the document, readers may become confused
about which part of the document they're supposed to be reading.
CSS Transforms - CSS: Cascading Style Sheets
reference properties backface-visibility perspective perspective-origin rotate scale transform transform-box transform-origin transform-style translate data types <transform-function> guides using css transforms step-by-step tutorial
about how to transform elements styled with css.
Using CSS transitions - CSS: Cascading Style Sheets
first, we set up the menu using html: <nav> <a href="#">home</a> <a href="#">
about</a> <a href="#">contact us</a> <a href="#">links</a> </nav> then we build the css to implement the look and feel of our menu.
CSS Transitions - CSS: Cascading Style Sheets
reference properties transition transition-delay transition-duration transition-property transition-timing-function guides using css transitions step-by-step tutorial
about how to create transitions using css.
Testing media queries programmatically - CSS: Cascading Style Sheets
ending query notifications to stop receiving notifications
about changes to the value of your media query, call removelistener() on the mediaquerylist, passing it the name of the previously-defined callback function: mediaquerylist.removelistener(handleorientationchange); ...
justify-items - CSS: Cascading Style Sheets
in table cell layouts, this property is ignored (more
about alignment in block, absolute positioned and table layout) in flexbox layouts, this property 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:...
justify-self - CSS: Cascading Style Sheets
in table cell layouts, this property is ignored (more
about alignment in block, absolute positioned and table layout) in flexbox layouts, 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; ...
overflow - CSS: Cascading Style Sheets
in
about:config, set layout.css.overflow.moz-scrollbars.enabled to true description overflow options include clipping, showing scrollbars, or displaying the content flowing out of its container into the surrounding area.
pointer-events - CSS: Cascading Style Sheets
to help us in deciding how pointer-events should be further extended for html, if you have any particular things that you would like to be able to do with this property, then please add them to the use cases section of this wiki page (don't worry
about keeping it tidy).
text-emphasis - CSS: Cascading Style Sheets
the size of the emphasis symbol, like ruby symbols, is
about 50% of the size of the font, and text-emphasis may affect line height when the current leading is not enough for the marks.
rotate() - CSS: Cascading Style Sheets
a) 0 0] examples basic example html <div>normal</div> <div class="rotated">rotated</div> css div { width: 80px; height: 80px; background-color: skyblue; } .rotated { transform: rotate(45deg); /* equal to rotatez(45deg) */ background-color: pink; } result combining rotation with another transformation if you want apply multiple transformations to an element, be careful
about the order in which you specify your transformations.
Index - Event reference
each event is represented by an object which is based on the event interface, and may have additional custom fields and/or functions used to get additional information
about what happened.
Adding captions and subtitles to HTML5 video - Developer guides
background:#666; list-style-type:none; margin:0; padding:0; width:100px; padding:10px; } .subtitles-menu li { padding:0; text-align:center; } .subtitles-menu li button { border:none; background:#000; color:#fff; cursor:pointer; width:90%; padding:2px 5px; border-radius:2px; } styling the displayed subtitles one of the less well known
about and supported features of webvtt is the ability to style the individual subtitles (something called text cues) via css extensions.
The Unicode Bidirectional Text Algorithm - Developer guides
fundamentals (base direction, character types, etc) the algorithm character level directionality directional runs (what they are, how base direction applies) handling neutral characters overriding the algorithm content
about using html and css to override the default behavior of the algorithm; include info
about isolating ranges etc.
Writing forward-compatible websites - Developer guides
don't ua-sniff this is really a particularly common instance of assuming that one feature (the presence of a particular substring in the user agent (ua) string) implies something
about the presence or absence of other features.
<canvas>: The Graphics Canvas element - HTML: Hypertext Markup Language
the javascript code, call htmlcanvaselement.getcontext() to get a drawing context and start drawing onto the canvas: const canvas = document.queryselector('canvas'); const ctx = canvas.getcontext('2d'); ctx.fillstyle = 'green'; ctx.fillrect(10, 10, 100, 100); result accessibility concerns alternative content the <canvas> element on its own is just a bitmap and does not provide information
about any drawn objects.
<hgroup> - HTML: Hypertext Markup Language
to produce any (non-abstract) rendered view of such an outline, some choice must be made in the design of the rendering tool
about how to render <hgroup> headings in such a way as to convey their multi-level nature.
<i>: The Idiomatic Text element - HTML: Hypertext Markup Language
ext 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 presentational element used to display text in italics, much like the <b> element was used to display text in bold letters.
<input type="datetime-local"> - HTML: Hypertext Markup Language
here is javascript code for programmatically setting the value: function setvalue(element, date) { var isostring = date.toisostring() element.value = isostring.substring(0, (isostring.indexof("t")|0) + 6|0); } why worry
about the y10k problem if it is going to happen many centuries after your death?
<input type="email"> - HTML: Hypertext Markup Language
browsers that implement the specification should be using an algorithm equivalent to the following regular expression: /^[a-za-z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-za-z0-9](?:[a-za-z0-9-]{0,61} [a-za-z0-9])?(?:\.[a-za-z0-9](?:[a-za-z0-9-]{0,61}[a-za-z0-9])?)*$/ to learn more
about how form validation works and how to take advantage of the :valid and :invalid css properties to style the input based on whether or not the current value is valid, see form data validation.
<input type="tel"> - HTML: Hypertext Markup Language
each input has a placeholder attribute to show a hint to sighted users
about what to enter into it, a pattern to enforce a specific number of characters for the desired section, and an aria-label attribute to contain a hint to be read out to screenreader users
about what to enter into it.
<isindex> - HTML: Hypertext Markup Language
the user fills in the fields, clicks ok, and the query results come up in the table of contents window." a thread
about isindex in november 1992, kevin hoadley questioned the need for an isindex element and proposed to drop it.
<q>: The Inline Quotation element - HTML: Hypertext Markup Language
example <p>according to mozilla's website, <q cite="https://www.mozilla.org/
about/history/details/">firefox 1.0 was released in 2004 and became a big success.</q></p> specifications specification status comment html living standardthe definition of '<q>' in that specification.
<rb>: The Ruby Base element - HTML: Hypertext Markup Language
ents: <ruby> 漢 <rp>(</rp><rt>kan</rt><rp>)</rp> 字 <rp>(</rp><rt>ji</rt><rp>)</rp> </ruby> <ruby> <rb>漢<rb>字 <rp>(</rp><rt>kan<rt>ji<rp>)</rp> </ruby> body { font-size: 22px; } the output looks like so: the html above might look something like this when rendered by a browser without ruby support: 漢字 (kan ji) body { font-size: 22px; } note: see the article
about the <ruby> element for further examples.
<rp>: The Ruby Fallback Parenthesis element - HTML: Hypertext Markup Language
<ruby> 漢 <rp>(</rp><rt>kan</rt><rp>)</rp> 字 <rp>(</rp><rt>ji</rt><rp>)</rp> </ruby> css body { font-size: 22px; } the result looks like this in your browser: the html above rendered by a browser without ruby support might look like this: 漢 (kan) 字 (ji) body { font-size: 22px; } see the article
about the <ruby> element for further examples.
data-* - HTML: Hypertext Markup Language
for example, a space-ship "sprite" in a game could be a simple <img> element with a class attribute and several data-* attributes: <img class="spaceship cruiserx3" src="shipx3.png" data-ship-id="324" data-weapons="laseri laserii" data-shields="72%" data-x="414354" data-y="85160" data-z="31940" onclick="spaceships[this.dataset.shipid].blasted()"> for a more in-depth tutorial
about using html data attributes, see using data attributes.
itemtype - HTML: Hypertext Markup Language
note: more
about itemtype attributes can be found at http://schema.org/thing the itemtype attribute must have a value that is an unordered set of unique tokens which are case-sensitive, each is a valid and absolute url, and all defined to use the same vocabulary.
Link types: noopener - HTML: Hypertext Markup Language
this is especially useful when opening untrusted links, in order to ensure they cannot tamper with the originating document via the window.opener property (see
about rel=noopener for more details), while still providing the referer http header (unless noreferrer is used as well).
Using the application cache - HTML: Hypertext Markup Language
firefox, the offline cache data is stored separately from the firefox profile—next to the regular disk cache: windows vista/7: c:\users\<username>\appdata\local\mozilla\firefox\profiles\<salt>.<profile name>\offlinecache mac/linux: /users/<username>/library/caches/firefox/profiles/<salt>.<profile name>/offlinecache in firefox the current status of the offline cache can be inspected on the
about:cache page (under the "offline cache device" heading).
HTTP authentication - HTTP
in firefox, it is checked if the site actually requires authentication and if not, firefox will warn the user with a prompt "you are
about to log in to the site “www.example.com” with the username “username”, but the website does not require authentication.
MIME types (IANA media types) - HTTP
our media container formats guide provides a list of the file types that are commonly supported by web browsers, including information
about what their special use cases may be, any drawbacks they have, and compatibility information, along with other details.
CORS errors - HTTP
note: for security reasons, specifics
about what went wrong with a cors request are not available to javascript code.
Feature Policy - HTTP
inferring the policy scripts can programatically query information
about the feature policy via the featurepolicy object located at either document.featurepolicy or htmliframeelement.featurepolicy.
Content-Disposition - HTTP
in a multipart/form-data body, the http content-disposition general header is a header that can be used on the subpart of a multipart body to give information
about the field it applies to.
DNT - HTTP
null the user has not specified a preference
about tracking.
Expect - HTTP
expect: 100-continue directives 100-continue informs recipients that the client is
about to send a (presumably large) message body in this request and wishes to receive a 100 (continue) interim response.
Feature-Policy: accelerometer - HTTP
the http feature-policy header accelerometer directive controls whether the current document is allowed to gather information
about the acceleration of the device through the accelerometer interface.
Feature-Policy: ambient-light-sensor - HTTP
the http feature-policy header ambient-light-sensor directive controls whether the current document is allowed to gather information
about the amount of light in the environment around the device through the ambientlightsensor interface.
Feature-Policy: battery - HTTP
the http feature-policy header battery directive controls whether the current document is allowed to gather information
about the acceleration of the device through the batterymanager interface obtained via navigator.getbattery().
Feature-Policy: gyroscope - HTTP
the http feature-policy header gyroscope directive controls whether the current document is allowed to gather information
about the orientation of the device through the gyroscope interface.
Feature-Policy: magnetometer - HTTP
the http feature-policy header magnetometer directive controls whether the current document is allowed to gather information
about the orientation of the device through the magnetometer interface.
Keep-Alive - HTTP
the keep-alive general header allows the sender to hint
about how the connection may be used to set a timeout and a maximum amount of requests.
Server - HTTP
how much detail to include is an interesting balance to strike; exposing the os version is probably a bad idea, as mentioned in the earlier warning
about overly-detailed values.
Set-Cookie - HTTP
it does help satisfying the requirements
about which characters are allowed for <cookie-value> though.
Warning - HTTP
the warning general http header contains information
about possible problems with the status of the message.
HTTP Messages - HTTP
response headers, like vary and accept-ranges, give additional information
about the server which doesn't fit in the status line.
Protocol upgrade mechanism - HTTP
this means that a typical request that includes upgrade would look something like: get /index.html http/1.1 host: www.example.com connection: upgrade upgrade: example/1, foo/2 other headers may be required depending on the requested protocol; for example, websocket upgrades allow additional headers to configure details
about the websocket connection as well as to offer a degree of security in opening the connection.
Proxy Auto-Configuration (PAC) file - HTTP
(in the first example above, netscape will ask user confirmation
about making direct connections; in this case, there is no user intervention.) proxy w3proxy.netscape.com:8080; socks socks:1080 use socks if the primary proxy goes down.
Redirections in HTTP - HTTP
in this case, the response is a 303 (see other) redirect that links to a page indicating that the action has been scheduled, and eventually informs
about its progress, or allows to cancel it.
500 Internal Server Error - HTTP
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.
Concurrency model and the event loop - JavaScript
this offers some nice properties when reasoning
about your program, including the fact that whenever a function runs, it cannot be pre-empted and will run entirely before any other code runs (and can modify data the function manipulates).
Indexed collections - JavaScript
const arr = [1, 2, 3]; arr.property = "value"; console.log(arr.property); // logs "value" arrays and regular expressions when an array is the result of a match between a regular expression and a string, the array returns properties and elements that provide information
about the match.
Numbers and dates - JavaScript
numbers in javascript, numbers are implemented in double-precision 64-bit binary format ieee 754 (i.e., a number between ±2−1022 and ±2+1023, or
about ±10−308 to ±10+308, with a numeric precision of 53 bits).
Regular expressions - JavaScript
(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.
Working with objects - JavaScript
rn false // two variables, a single object var fruit = {name: 'apple'}; var fruitbear = fruit; // assign fruit object reference to fruitbear // here fruit and fruitbear are pointing to same object fruit == fruitbear; // return true fruit === fruitbear; // return true fruit.name = 'grape'; console.log(fruitbear); // output: { name: "grape" }, instead of { name: "apple" } for more information
about comparison operators, see comparison operators.
Memory Management - JavaScript
this automaticity is a potential source of confusion: it can give developers the false impression that they don't need to worry
about memory management.
Array.prototype.indexOf() - JavaScript
} else // all else for (; i !== len; ++i) if (that[i] === member) return i return -1 // if the value was not found, then return -1 } })(object, math.max, math.min) however, if you are more interested in all the little technical bits defined by the ecma standard, and are less concerned
about performance or conciseness, then you may find this more descriptive polyfill to be more useful.
Array.prototype.map() - JavaScript
here is a concise example of the iteration steps: // parseint(string, radix) -> map(parseint(value, index)) /* first iteration (index is 0): */ parseint("1", 0) // 1 /* second iteration (index is 1): */ parseint("2", 1) // nan /* third iteration (index is 2): */ parseint("3", 2) // nan then let's talk
about solutions.
DataView - JavaScript
the dataview view provides a low-level interface for reading and writing multiple number types in a binary arraybuffer, without having to care
about the platform's endianness.
Error.prototype.stack - JavaScript
ould instead produce the following text: error("myerror")@:0 trace()@file:///c:/example.html:9 b(3,4,"\n\n",(void 0),[object object])@file:///c:/example.html:16 a("first call, firstarg")@file:///c:/example.html:19 @file:///c:/example.html:21 stack of eval'ed code starting with firefox 30, the error stack of code in function() and eval() calls, now produces stacks with more detailed information
about the line and column numbers inside these calls.
FinalizationRegistry.prototype.register() - JavaScript
, passing in the held value "some value" and passing the target object itself as the unregistration token: registry.register(target, "some value", target); the following registers the target object referenced by target, passing in another object as the held value, and not passing in any unregistration token (which means target can't be unregistered): registry.register(target, {"useful": "info
about target"}); specifications specification weakrefsthe definition of 'finalizationregistry.prototype.register' in that specification.
Function.prototype.apply() - JavaScript
// min/max number in an array const numbers = [5, 6, 2, 3, 7]; // using math.min/math.max apply let max = math.max.apply(null, numbers); // this
about equal to math.max(numbers[0], ...) // or math.max(5, 6, ...) let min = math.min.apply(null, numbers); // vs.
Function.prototype.bind() - JavaScript
if you do not understand any of the deviations from the specification above, then it is safe in this particular case to not worry
about these noncompliant deviation details.
typeof - JavaScript
for more information
about types and primitives, see also the javascript data structure page.
const - JavaScript
all the considerations
about the "temporal dead zone" apply to both let and const.
return - JavaScript
function counter() { for (var count = 1; ; count++) { // infinite loop console.log(count + 'a'); // until 5 if (count === 5) { return; } console.log(count + 'b'); // until 4 } console.log(count + 'c'); // never appears } counter(); // output: // 1a // 1b // 2a // 2b // 3a // 3b // 4a // 4b // 5a returning a function see also the article
about closures.
JavaScript typed arrays - JavaScript
we can confirm that it is indeed 16 bytes long, and that's
about it: if (buffer.bytelength === 16) { console.log("yes, it's 16 bytes."); } else { console.log("oh no, it's the wrong size!"); } before we can really work with this buffer, we need to create a view.
dir - Web app manifests
the dir member can be set to one of the following values: auto — text direction is determined by the user agent ltr — left to right rtl — right to left the directionality-capable members are: name short_name description note: if the value is omitted or set to auto, the browser will use the unicode bidirectional algorithm to make a best guess
about the text's direction.
Performance fundamentals - Web Performance
if your page contains javascript code that is taking a long time to run, the javascript profiler will pinpoint the slowest lines of code: the built-in gecko profiler is a very useful tool that provides even more detailed information
about which parts of the browser code are running slowly while the profiler runs.
Populating the page: how browsers work - Web Performance
<!doctype html> <html> <head> <meta charset="utf-8"/> <title>my simple page</title> <link rel="stylesheet" src="styles.css"/> <script src="myscript.js"></script> </head> <body> <h1 class="heading">my page</h1> <p>a paragraph with a <a href="https://example.com/
about">link</a></p> <div> <img src="myimage.jpg" alt="image description"/> </div> <script src="anotherscript.js"></script> </body> </html> this response for this initial request contains the first byte of data received.
Progressive web app structure - Progressive web apps (PWAs)
the folder structure looks like this: the html from the html point of view, the app shell is everything outside the content section: <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>js13kgames a-frame entries</title> <meta name="description" content="a list of a-frame entries submitted to the js13kgames 2017 competition, used as an example for the mdn articles
about progressive web apps."> <meta name="author" content="end3r"> <meta name="theme-color" content="#b12a34"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta property="og:image" content="icons/icon-512.png"> <link rel="shortcut icon" href="favicon.ico"> <link rel="stylesheet" href="style.css"> <link rel="manifest" href="js13kpwa.webmanifest"> <script src="data/games.
Web technology reference
some introduce content into the page directly, others provide information
about document text and may include other tags as sub-elements.
<mpath> - SVG: Scalable Vector Graphics
--> <path id="path1" d="m100,250 c 100,50 400,50 400,250" fill="none" stroke="blue" stroke-width="7.06" /> <circle cx="100" cy="250" r="17.64" fill="blue" /> <circle cx="250" cy="100" r="17.64" fill="blue" /> <circle cx="400" cy="250" r="17.64" fill="blue" /> <!-- here is a triangle which will be moved
about the motion path.
Certificate Transparency - Web security
certificate transparency initially came
about in 2013 against a backdrop of ca compromises (diginotar breach in 2011), questionable decisions (trustwave subordinate root incident in 2012) and technical issuance issues (weak, 512 bit certificate issuance by digicert sdn bhd of malaysia).
Insecure passwords - Web security
for example, a news site may save which news articles a user wants to go back to and read, but not save any other data
about a user.
Tutorials
html5 doctor articles
about using html5 right now.
Index - XSLT: Extensible Stylesheet Language Transformations
the structure of an xml document is designed to reflect and clarify important relationships among the individual aspects of the content itself, unhindered by a need to provide any indication
about how this data should eventually be presented.
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.
Exported WebAssembly functions - WebAssembly
they are real functions in the previous example, the return value of each table.prototype.get() call is an exported webassembly function — exactly what we have been talking
about.
Index - WebAssembly
this article explains a little bit
about how it works, and how to use available tools to covert text format files to the .wasm assembly format.
Loading and running WebAssembly code - WebAssembly
the object looks like this: { module : module // the newly compiled webassembly.module object, instance : instance // a new webassembly.instance of the module object } note: usually we only care
about the instance, but it’s useful to have the module in case we want to cache it, share it with another worker or window via postmessage(), or simply create more instances.
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.