Search completed in 1.58 seconds.
mach
mach (german for to make) is a program via the "command-line interface" to help developers perform installation tasks such as installing firefox from its c++ source code.
... requirements
mach requires a current version of /mozilla-central/ (or a tree derived from there).
...
mach was committed on 2012-sep-26.
...And 106 more matches
Encrypt Decrypt_MAC_Using Token
nss sample code 3: encryption/decryption and
mac using token object.
... generates encryption/
mac keys and uses token for storing.
...*/ /* nspr headers */ #include #include #include #include #include #include #include /* nss headers */ #include #include /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin aeskey ckaid-----" #define enckey_trailer "-----end aeskey ckaid-----" #define
mackey_header "-----begin
mackey ckaid-----" #define
mackey_trailer ...
...And 37 more matches
Enc Dec MAC Output Public Key as CSR
nss sample code 5: encryption/decryption and
mac and output public as a csr.
... generates encryption/
mac keys and outputs public key as certificate signing request /* this source code form is subject to the terms of the mozilla public * license, v.
...*/ /* nspr headers */ #include #include #include #include #include #include #include /* nss headers */ #include #include #include #include #include #include #include #include #include #include #include #include /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define default_key_bits 1024 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin wrapped enckey-----" #define enckey_trailer "-----end wrapped enckey-----" #define
mackey_header "-----begin wrapped...
...And 35 more matches
Encrypt Decrypt MAC Keys As Session Objects
nss sample code 4: encryption/decryption and
mac keys using session.
... generates encryption/
mac keys and uses session objects.
...*/ /* nspr headers */ #include #include #include #include #include #include #include /* nss headers */ #include #include /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin aeskey ckaid-----" #define enckey_trailer "-----end aeskey ckaid-----" #define
mackey_header "-----begin
mackey ckaid-----" #define
mackey_trailer ...
...And 31 more matches
Encrypt and decrypt MAC using token
nss sample code 3: encryption/decryption and
mac using token object.
... generates encryption/
mac keys and uses token for storing.
...*/ /* nspr headers */ #include #include #include #include #include #include #include /* nss headers */ #include #include /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin aeskey ckaid-----" #define enckey_trailer "-----end aeskey ckaid-----" #define
mackey_header "-----begin
mackey ckaid-----" #define
mackey_trailer ...
...And 31 more matches
NSS Sample Code Sample_3_Basic Encryption and MACing
nss sample code 3: basic encryption and
macing this example program demonstrates how to encrypt and
mac a file.
... sample code 3 /* nspr headers */ #include <prthread.h> #include <plgetopt.h> #include <prerror.h> #include <prinit.h> #include <prlog.h> #include <prtypes.h> #include <plstr.h> /* nss headers */ #include <keyhi.h> #include <pk11priv.h> /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin aeskey ckaid-----" #define enckey_trailer "-----end aeskey ckaid-----" #define
mackey_header "-----begin
mackey ckaid-----" #define
mackey_trailer "-----end
mackey ckaid-----" ...
...#define iv_header "-----begin iv-----" #define iv_trailer "-----end iv-----" #define
mac_header "-----begin
mac-----" #define
mac_trailer "-----end
mac-----" #define pad_header "-----begin pad-----" #define pad_trailer "-----end pad-----" typedef enum { encrypt, decrypt, unknown } commandtype; typedef enum { symkey = 0,
mackey = 1, iv = 2,
mac = 3, pad = 4 } headertype; /* print a usage message and exit */ static void usage(const char *progname) { fprintf(stderr, "\nusage: %s -c <a|b> -d <dbdirpath> [-z <noisefilename>] " "[-p <dbpwd> | -f <dbpwdfile>] -i <ipfilename> -o <opfilename>\n\n", progname); fprintf(stderr, "%-20s specify 'a' for encrypt operatio...
...And 31 more matches
EncDecMAC using token object - sample 3
encdec
mac using token object example: <h2 id="nss_sample_code_3_hashing.">nss sample code 3: enc/dec/
mac using token object id.</h2> <p class="summary">computes the hash of a file and saves it to another file, illustrates the use of nss message apis.</p> <pre class="brush: cpp"> /* this source code form is subject to the terms of the mozilla public * license, v.
...*/ /* nspr headers */ #include #include #include #include #include #include #include /* nss headers */ #include #include /* our samples utilities */ #include "util.h" #define buffersize 80 #define digestsize 16 #define ptext_
mac_buffer_size 96 #define ciphersize 96 #define blocksize 32 #define cipher_header "-----begin cipher-----" #define cipher_trailer "-----end cipher-----" #define enckey_header "-----begin aeskey ckaid-----" #define enckey_trailer "-----end aeskey ckaid-----" #define
mackey_header "-----begin
mackey ckaid-----" #define
mackey_trailer "-----end
mackey ckaid-----" #define iv_header "-----begin iv-----" #define iv_trailer "-----end iv-----" #define
mac_header "...
...-----begin
mac-----" #define
mac_trailer "-----end
mac-----" #define pad_header "-----begin pad-----" #define pad_trailer "-----end pad-----" typedef enum { encrypt, decrypt, unknown } commandtype; typedef enum { symkey = 0,
mackey = 1, iv = 2,
mac = 3, pad = 4 } headertype; /* * print usage message and exit */ static void usage(const char *progname) { fprintf(stderr, "\nusage: %s -c -d [-z ] " "[-p | -f ] -i -o \n\n", progname); fprintf(stderr, "%-20s specify 'a' for encrypt operation\n\n", "-c "); fprintf(stderr, "%-20s specify 'b' for decrypt operation\n\n", " "); fprintf(stderr, "%-20s specify db directory path\n\n", "-d "); fprintf(stderr, "%-20s specify db password [optional]\n\n", "-p "); fprintf(stderr, "%-20s specify db password file [optional]\n\n", "-f "); fprintf(stderr, "%-20s sp...
...And 25 more matches
Mac stub installer - Archive of obsolete content
where does the
mac stub installer code reside?
... the
mac stub installer project resides at: <http://lxr.mozilla.org/seamonkey/sou...ll/wizard/
mac/> the
mac stub installer source code resides at: <http://lxr.mozilla.org/seamonkey/sou...izard/
mac/src/> how do we get setup to debug the
mac installer?
... build the
mac installer (debug or non-debug target) using miw.mcp grab a nightly build, say from <http://ftp.mozilla.org/pub/mozilla/n...taller.sea.bin> drop in the installer binary next to the "mozilla installer" in the "mozilla installer" folder created by unstuffing the opt build.
...And 13 more matches
Debugging on Mac OS X
this document explains how to debug mozilla-derived applications such as firefox, thunderbird, and seamonkey on
macos using xcode.
...see building firefox for
macos if you need help creating your own build.
... debugging firefox on
macos 10.14+
macos 10.14 introduced notarization and hardened runtime features for improved application security.
...And 6 more matches
State machine - MDN Web Docs Glossary: Definitions of Web-related terms
a state
machine is a mathematical abstraction used to design algorithms.
... a state
machine reads a set of inputs and changes to a different state based on those inputs.
... there are two types of basic state
machines: deterministic finite state
machine this kind allows only one possible transition for any allowed input.
...And 5 more matches
Enc Dec MAC Using Key Wrap CertReq PKCS10 CSR
nss sample code 6: encryption/decryption and
mac and output public as a pkcs 11 csr.
... generates encryption/
mac keys and outputs public key as pkcs11 certificate signing request /* this source code form is subject to the terms of the mozilla public * license, v.
....h> /* nss headers */ #include <keyhi.h> #include <pk11priv.h> /* our samples utilities */ #include "util.h" /* constants */ #define blocksize 32 #define modblocksize 128 #define default_key_bits 1024 /* header file constants */ #define enckey_header "-----begin wrapped enckey-----" #define enckey_trailer "-----end wrapped enckey-----" #define
mackey_header "-----begin wrapped
mackey-----" #define
mackey_trailer "-----end wrapped
mackey-----" #define iv_header "-----begin iv-----" #define iv_trailer "-----end iv-----" #define
mac_header "-----begin
mac-----" #define
mac_trailer "-----end
mac-----" #define pad_header "-----begin pad-----" #define pad_trailer ...
...And 5 more matches
nsIMacDockSupport
widget/nsi
macdocksupport.idlscriptable provides access to the dock on
mac os x.
... 1.0 66 introduced gecko 2.0 inherits from: nsi
macdocksupport last changed in gecko 11.0 (firefox 11.0 / thunderbird 11.0 / seamonkey 2.8) implemented by: @mozilla.org/cookie-monster;1.
... to create an instance, use: var dock = components.classes["@mozilla.org/widget/
macdocksupport;1"] .getservice(components.interfaces.nsi
macdocksupport); see working with the
mac os x dock for details and examples.
...And 5 more matches
Navigator.requestMediaKeySystemAccess() - Web APIs
the navigator.requestmediakeysyste
maccess() method returns a promise which delivers a mediakeysyste
maccess object that can be used to access a particular media key system, which can in turn be used to create keys for decrypting a media stream.
...consider that when deciding when to call requestmediakeysyste
maccess(); you don't want those requests to happen at inconvenient times.
... as a general rule, this function should be called only when it's about time to create and use a mediakeys object by calling the returned mediakeysyste
maccess object's createmediakeys() method.
...And 4 more matches
<maction> - MathML
the mathml <
maction> element provides a possibility to bind actions to (sub-) expressions.
...the syntax is: <
maction actiontype="statusline"> expression message </
maction>.
... the syntax is: <
maction actiontype="toggle" selection="positive-integer" > expression1 expression2 expressionn </
maction>.
...And 4 more matches
Custom app bundles for Mac OS X - Archive of obsolete content
mac os x applications are typically packaged as application bundles which are then distributed in .dmg (disk image) files.
... this tutorial will show you how to package your xulrunner-based application in a way which is consistent with the expectations of
mac os x users.
...a xul application for
mac os x should follow something similar to this basic directory structure: example.app/ contents/ info.plist (application bundle properties are specified in this xml file.) pkginfo (this is a simple text file and is created along with the info.plist file)
macos/ (the
macos folder will contain your xulrunner executable) xulrunner (this is the xulrunner stub) resources/ (this is where you place your xul application code and support files) application.ini (xulrunner-related application settings) example.icns (this is the icon which...
...And 3 more matches
nsILocalFileMac
xpcom/io/nsilocalfile
mac.idlscriptable please add a summary to this article.
...note: supported only for xp_
macosx.
...note: supported only for xp_
macosx.
...And 3 more matches
MediaKeySystemAccess - Web APIs
the mediakeysyste
maccess interface of the encryptedmediaextensions api provides access to a key system for decryption and/or a content protection provider.
... you can request an instance of this object using the navigator.requestmediakeysyste
maccess() method.
... properties mediakeysyste
maccess.keysystem read only returns a domstring identifying the key system being used.
...And 3 more matches
Signing Mozilla apps for Mac OS X
mac os x's gatekeeper functionality prevents users from launching applications that haven't been code-signed, in order to help keep their computers secure.
...on
mac os x, part of this infrastructure is automatic signing of the ".app" folder using apple's codesign tool.
...it will guide you through creating a private key, certificate signing request, and importing your new developer id into the keychain access application on your
mac.
...And 2 more matches
nsICryptoHMAC
netwerk/base/public/nsicryptoh
mac.idlscriptable this interface provides h
mac signature algorithms.
...these values map onto the values defined in mozilla/security/nss/lib/softoken/pkcs11t.h and are switched to ckm_*_h
mac constant.
... constant value description md2 1 message digest algorithm 2 md5 2 message-digest algorithm 5 sha1 3 secure hash algorithm 1 sha256 4 secure hash algorithm 256 sha384 5 secure hash algorithm 384 sha512 6 secure hash algorithm 512 methods finish() completes this h
mac object and produces the actual h
mac diegest data.
...And 2 more matches
MacFAQ - Archive of obsolete content
for command-line work, you would call on: /applications/(vendor)/(name).app/contents/
macos/xulrunner ui notes menus to enable your application quit command to work with the application menu (the one to the right of the blue apple), you need to give your quit menu item an id of "menu_filequititem".
... 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.
... commandline support commandline handlers work great on the
mac if it's a cold start.
... taking advantage of the core code "openurl" from "nscommandlineservice
mac.cpp", you'll see that it looks for "browser.chromeurl" before defaulting to navigator.xul, and this is called when an xulrunner app is already running, so: create a default preference of "browser.chromeurl" that points to your new "hiddenwindow" as such: "chrome://myxul/content/hiddenwindow.xul" next take the code below and drop it in, to create the hiddenwindow.xul (note: the debug function and nsicommandline try/catch ca...
Writing a plugin for Mac OS X - Archive of obsolete content
this article is adapted from josh aas's blog post writing an npapi plugin for
mac os x.
... getting started if you check out the mozilla source code in
mac os x, you can simply open basicplugin.xcodeproj in xcode, click build, and you're done.
... xp_
macosx it's important to define the gcc preprocessor definition xp_
macosx to 1; this is used by the npapi headers to build properly on
mac os x.
... in c format by using extern "c" in the header, like this: #pragma gcc visibility push(default) extern "c" { nperror np_initialize(npnetscapefuncs *browserfuncs); nperror np_getentrypoints(nppluginfuncs *pluginfuncs); void np_shutdown(void); } #pragma gcc visibility pop you can check to be sure your symbols are visible and in standard c format by using the nm utility provided among the
mac os x developer tools: [user@foo my
mac] nm basicplugin ...
HMAC - MDN Web Docs Glossary: Definitions of Web-related terms
h
mac is a protocol used for cryptographically authenticating messages.
...with such a combination, the h
mac verification algorithm is then known with a compound name such as h
mac-sha1.
... h
mac is used to ensure both integrity and authentication.
... learn more general knowledge h
mac on wikipedia technical reference rfc 2104 on ietf ...
macAlias - Archive of obsolete content
method of file object syntax int
macalias( filespecobject destdir, string filename, filespecobject aliasdir, string aliasname ); parameters the
macalias method has the following parameters: destdir a filespecobject that represents the directory into which the program file will be installed.
... aliasdir a filespecobject that represents the directory into which the alias file will be installed (e.g.,"
mac desktop").
... example see file.
macalias in the script examples chapter.
-moz-mac-graphite-theme - Archive of obsolete content
the -moz-
mac-graphite-theme gecko-only css media feature can be used to apply styles based on whether the user has the
mac os x "graphite" theme enabled.
... syntax <integer> if the user has configured their device to use the "graphite" appearance on
mac os x, this is 1.
... if the user is using the standard blue appearance, or is not on
mac os x, this is 0.
Element: DOMActivate event - Web APIs
the do
mactivate event is fired at an element when it becomes active, such as when it is clicked on using the mouse or a keypress is used to navigate to it.
... bubbles yes cancelable yes interface mouseevent examples <svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseprofile="tiny" xmlns:ev="http://www.w3.org/2001/xml-events" width="6cm" height="5cm" viewbox="0 0 600 500"> <desc>example: invoke an ecmascript function from a do
mactivate event</desc> <!-- ecmascript to change the radius --> <script type="application/ecmascript"><![cdata[ function change(evt) { var circle = evt.target; var currentradius = circle.getfloattrait("r"); if (currentradius == 100) circle.setfloattrait("r", currentradius * 2); else circle.setfloattrait("r", currentradius * 0.5); } ]]></script> <!-- act on each do
mactivate event --> <circle cx="300" cy="...
...225" r="100" fill="red"> <handler type="application/ecmascript" ev:event="do
mactivate"> change(evt); </handler> </circle> <text x="300" y="480" font-family="verdana" font-size="35" text-anchor="middle"> activate the circle to change its size </text> </svg> specifications specification status ui eventsthe definition of 'do
mactivate' in that specification.
HmacImportParams - Web APIs
the h
macimportparams dictionary of the web crypto api represents the object that should be passed as the algorithm parameter into subtlecrypto.importkey() or subtlecrypto.unwrapkey(), when generating a key for the h
mac algorithm.
...this should be set to h
mac.
... specifications specification status comment web cryptography apithe definition of 'subtlecrypto.h
macimportparams' in that specification.
HmacKeyGenParams - Web APIs
the h
mackeygenparams dictionary of the web crypto api represents the object that should be passed as the algorithm parameter into subtlecrypto.generatekey(), when generating a key for the h
mac algorithm.
...this should be set to h
mac.
... specifications specification status comment web cryptography apithe definition of 'subtlecrypto.h
mackeygenparams' in that specification.
File.macAlias - Archive of obsolete content
file.
macalias in this example, a
mac alias is created for software (applecd audio player) that is installed locally.
... xpisrc = "miscellaneous program"; var vi = "1.1.1.1"; initinstall( "
macintosh alias", "misc", vi, 0); f = getfolder("program"); g = getfolder("
mac desktop"); addfile( "file
macalias", "2.2.2.2", xpisrc, f, xpisrc, true); err = file.
macalias(f, xpisrc, g, xpisrc + " alias"); logcomment("file.
macalias returns: " + err); if (0 == getlasterror()) performinstall(); else cancelinstall(); ...
NumActions
attribute unsigned long nu
mactions; see also nsiaccessible.getactionname() nsiaccessible.getactiondescription() nsiaccessible.doaction() ...
nsIMsgFilterCustomAction
defined in comm-central/ mailnews/ base/ search/ public/ nsimsgfiltercusto
maction.idl interface nsimsgfiltercusto
maction : nsisupports { /* globally unique string to identify this filter action.
Using XPCOM Utilities to Make Things Easier
to begin with, the first section describesc++
macros that can replace a lot of the code in weblock1.cpp.
... much of the code created to get the software recognized and registered as a component can be reduced to a small data structure and a single
macro.
... xpcom
macros the xpcom framework includes a number of
macros for making c++ development easier.
...And 34 more matches
Index - Archive of obsolete content
269 adding menus and submenus add-ons, codingscripting,
macs, xul, apple the hello world example in the previous sections shows the two most common ways to add menus.
...it consists of a set of client
machines that continuously build and test mozilla and report their results back to a server that makes those results available via a web page.
...note that there are a couple of extra files for win32 and
macintosh that aren't pulled by the normal script and need to be pulled by hand.
...And 28 more matches
Strategies for carrying out testing - Learn web development
for example, if you live in western europe or north america, you will know that a lot of people use windows and
mac desktops/laptops, where the main browsers are chrome, firefox, safari, ie, and edge.
... note: you can only have one version of ie or edge installed on a
machine at once, so you will probably have to use virtual
machine, or other strategy to do the testing you need.
... see virtual
machines later on.
...And 24 more matches
Key Values - Web APIs
keyboardevent.key value description virtual keycode windows
mac linux android "unidentified" the user agent wasn't able to map the event's virtual keycode to a specific key value.
... keyboardevent.key value description virtual keycode windows
mac linux android "alt" [5] the alt (alternative) key.
...this is the windows logo key, or the command or ⌘ key on
mac keyboards.
...And 23 more matches
Tamarin build documentation - Archive of obsolete content
windows 32 and 64 bit
mac osx 10.4, 10.5 on ppc
mac osx 10.5, 10.6 on intel linux 32 and 64 bit solaris 10 on sparc android 2.2 on arm windows mobile 6.5 mips (linux) sh4 (linux) getting the tamarin source the tamarin source resides in mercurial at tamarin central.
... $ make cppflags=-davmplus_verbose additional instructions for non-android cross-platform tamarin-redux build on osx 10.6 (snow leopard) (to build tamarin-central on
mac please see previous cross-platform instructions here: https://developer.mozilla.org/index.php?title=en/tamarin/tamarin_build_documentation&revision=21 the bug when building on snow leopard (bug 537817) has been fixed in the tamarin-redux repo.
... the work for that fix also included some changes to the configure.py default behavior to decouple the --target switch from sdk choice: there is a new switch, --
mac-sdk, that selects the 10.4u, 10.5 or 10.6 sdk.
...And 21 more matches
Mozilla DOM Hacking Guide
the array uses two
macros to define its items: ns_define_classinfo_data and ns_define_classinfo_data_with_name.
...the
macros for those flags are defined nsdomclassinfo.cpp.
...here is the description of the structure: const char *mname: c-style string that is passed as second argument to the
macro.
...And 19 more matches
NSS Sample Code Sample1
this program shows the following: rsa key pair generation naming rsa key pairs looking up a previously generated key pair by name creating aes and
mac keys (or encryption and
mac keys in general) wrapping symmetric keys using your own rsa key pair so that they can be stored on disk or in a database.
... we will add message protection (encryption and
macing) examples to this program in the future.
... this key // may be used for an encryption mechanism (des or aes) or for // integrity (md5_h
mac or sha1_h
mac).
...And 18 more matches
All keyboard shortcuts - Firefox Developer Tools
command windows
macos linux open toolbox (with the most recent tool activated) ctrl + shift + i cmd + opt + i ctrl + shift + i bring toolbox to foreground (if the toolbox is in a separate window and not in foreground) ctrl + shift + i or f12 cmd + opt + i or f12 ctrl + shift + i or f12 close toolbox (if the toolbox is in a separate window and in foreground) ctrl + s...
...to close the web console, use the global toolbox shortcut of ctrl + shift + i (cmd + opt + i on a
mac).
...before firefox 55, the keyboard shortcut was ctrl + shift + q (cmd + opt + q on a
mac).
...And 18 more matches
BluetoothCharacteristicProperties - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothcharacteristicproperties experimentalchrome full support 56notes full support 56notes notes chromeos and
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes edgeos and
macos only.
... full support yessafari ios no support nosamsung internet android full support 6.0authenticatedsignedwrites experimentalchrome full support 56notes full support 56notes notes chromeos and
macos only.
...And 17 more matches
Installing plugins to Gecko embedding browsers on Windows - Archive of obsolete content
since the prospect of embedded gecko browsers raises the scenario of more than one gecko-based browser that a netscape-style plugin can work with, it becomes important to let plugin developers know how to discover these browsers on a windows
machine.
... go to hkey_local_
machine\software\mozilla caveat emptor: if the mozilla subkey is not present under hkey_local_
machine, look under hkey_current_user\software\mozilla\.
...traditionally, hkey_current_user is a copy of everything in hkey_local_
machine.
...And 16 more matches
Drawing and Event Handling - Plugins
on
mac os, window is a pointer to an np_port.
...the window field holds a platform-specific handle to a drawable, as follows: windows: hdc
mac os: pointer to np_port structure.
...on
mac os, full-page printing requires that the field printinfo contain a standard
mac os thprint (see printing.h).
...And 15 more matches
BluetoothRemoteGATTDescriptor - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetbluetoothremotegattdescriptor experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
...And 15 more matches
Adobe Flash - Archive of obsolete content
in particular, the
macromedia® flash™ plugin exposes certain plugin functionality for access via javascript.
...on
mac os x, there is an additional caveat: netscape gecko browsers such as camino (formerly chimera), the latest mozilla browsers, and future versions of netscape which are built using the
mach-o binary format won't be able to use flash's scriptability features.
... until
macromedia changes this from within the flash plugin, scriptability can not be used on
mac os x browsers based on gecko.
...And 14 more matches
Index
27 components.results xpcom:language bindings, xpconnect components.results is a read-only object whose properties are the names listed as the first parameters of the
macros in js/xpconnect/src/xpc.msg (also at table of errors), with the value of each corresponding to that constant's value.
... 97 xpcom glue without mozalloc starting with xulrunner 2.0, the frozen linkage dependent glue (xpcomglue_s.lib on windows, libxpcomglue_s.a on linux and
mac) is dependent on the new infallible memory allocation routines (mozalloc).
... 141 ns ensure success xpcom, xpcom_
macros
macro 142 ns ensure true xpcom, xpcom_
macros
macro 143 ns_abort_if_false this was removed in bug 1127201 144 ns_addref xpcom, xpcom_
macros
macro 145 ns_assertion xpcom, xpcom_
macros
macro 146 ns_ensure_arg_pointer xpcom, xpcom_
macros
macro 147 ns_error xpcom, xpcom_
mac...
...And 14 more matches
The First Install Problem - Archive of obsolete content
proposed solution on
mac os x, the system's plugins folder will probably suffice as an install location in which browsers installed later can find their plugins.
... write a key under hkey_local_
machine\software\mozillaplugins\ which is a vendor-determined plid.
... if the hkey_local_
machine\software\mozillaplugins key doesn't exist, create it, and write the vendor-determined plid for each module that the vendor wishes to install.
...And 13 more matches
Old Thunderbird build
while you can build thunderbird on older hardware it can take quite a bit of time to compile on slower
machines with less ram.
... build prerequisites depending on your operating system you will need to carry out a different process to prepare your
machine.
... windows build prerequisites gnu/linux build prerequisites
mac os x build prerequisites get the source note: on windows, you won't be able to build the thunderbird source code if it's under a directory with spaces in the path (e.g., don't use "documents and settings").
...And 12 more matches
Simple Thunderbird build
while you can build thunderbird on older hardware it can take quite a bit of time to compile on slower
machines with less ram.
... build prerequisites depending on your operating system you will need to carry out a different process to prepare your
machine.
... windows build prerequisites gnu/linux build prerequisites
macos build prerequisites mapi headers on windows: check that the mapi header files from https://www.microsoft.com/en-us/download/details.aspx?id=12905 are installed because the mapi header files (except mapi.h) are not bundled with visual studio 2017 (windows sdk 10).
...And 12 more matches
Eclipse CDT
therefore, it is not recommended for use if your
machine only has 4 gb of ram.
... download "eclipse ide for c/c++ developers" (not eclipse ide for enterprise java developers) from the eclipse download page, install it, and add the directory containing the eclipse binary to your path (/applications/eclipse.app/contents/eclipse/ on
mac).
... once your build is complete,
mach can then generate a useful eclipse project on your behalf.
...And 12 more matches
Details of the object model - JavaScript
it adds the
machine property (whose value defaults to the empty string) and also overrides the dept property with the value "engineering".
... javascript function salesperson() { workerbee.call(this); this.dept = 'sales'; this.quota = 100; } salesperson.prototype = object.create(workerbee.prototype); salesperson.prototype.constructor = salesperson; function engineer() { workerbee.call(this); this.dept = 'engineering'; this.
machine = ''; } engineer.prototype = object.create(workerbee.prototype) engineer.prototype.constructor = engineer; java public class salesperson extends workerbee { public string dept = "sales"; public double quota = 100.0; } public class engineer extends workerbee { public string dept = "engineering"; public string
machine = ""; } using these definitions, you can create instances...
...new manager; // sally.name is '' // sally.dept is 'general' // sally.reports is [] var mark = new workerbee; // mark.name is '' // mark.dept is 'general' // mark.projects is [] var fred = new salesperson; // fred.name is '' // fred.dept is 'sales' // fred.projects is [] // fred.quota is 100 var jane = new engineer; // jane.name is '' // jane.dept is 'engineering' // jane.projects is [] // jane.
machine is '' object properties this section discusses how objects inherit properties from other objects in the prototype chain and what happens when you add a property at run time.
...And 12 more matches
Using the Right Markup to Invoke Plugins - Archive of obsolete content
here's an example of this kind of usage for ie: <!-- ie only code --> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.
macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="366" height="142" id="myflash"> <param name="movie" value="javascript-to-flash.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> </object> in the above example, the classid attribute that goes along with the object element points to a "clsid:" urn followed by the unique id...
...this is, in fact, the unique identifier of
macromedia's flash plugin, and developers are expected to know such unique identifiers in order to invoke the component of their choice.
...here is an example of this usage, once again for the
macromedia flash plugin: <object type="application/x-shockwave-flash" data="javascript-to-flash.swf" width="366" height="142" id="myflash"> <param name="movie" value="javascript-to-flash.swf" /> <param name="quality" value="high" /> <param name="swliveconnect" value="true" /> <p>you need flash -- get the latest version from <a href= "http://www.
macromedia.com/downloads/">here.</a...
...And 11 more matches
CSS property compatibility table for form controls - Learn web development
property n t note css box model width yes yes height partial[1][2] yes webkit browsers (mostly on
mac osx and ios) use the native look & feel for the search fields.
... border partial[1][2] yes webkit browsers (mostly on
mac osx and ios) use the native look & feel for the search fields.
... margin yes yes padding partial[1][2] yes webkit browsers (mostly on
mac osx and ios) use the native look & feel for the search fields.
...And 11 more matches
MMgc - Archive of obsolete content
mmgc is the tamarin (née
macromedia) garbage collector, a memory management library that has been built as part of the avm2/tamarin effort.
... class myunmanagedobject : public mmgc::gcroot { myobject *object; }; any pointers to a gcobject from managed memory require a dwb write barrier
macro.
...all of the rules for gcobject apply to rcobject, and there are a few more: any pointer to a rcobject from unmanaged memory must use the drc
macro.
...And 10 more matches
Fundamental text and font styling - Learn web development
many a fat alley rat had met its demise while staring point blank down the cavernous barrel of this awesome prowling
machine.
...many a fat alley rat had met its demise while staring point blank down the cavernous barrel of this awesome prowling
machine.
...the browser will only apply a font if it is available on the
machine the website is being accessed on; if not, it will just use a browser default font.
...And 10 more matches
Power profiling overview
this article covers important background information about power profiling, with an emphasis on intel processors used in desktop and laptop
machines.
... intel processor basics processor layout the following diagram (from the intel power governor documentation) shows how
machines using recent intel processors are constructed.
... intel processors have model-specific registers (msrs) containing measurements of how much time is spent in different c-states, and tools such as powermetrics (
mac), powertop and turbostat (linux) can expose this information.
...And 10 more matches
Introduction to XPCOM for the DOM
the numerous
macros and facilities brought by the dom, as well as nscomptr's, make our life much easier.
... nsifoo2 *ifooptr2; ifooptr->queryinterface(ns_get_iid(nsifoo2), (void **)&ifooptr2); ns_get_iid is a
macro that evaluates to the iid of the argument.
... ns_imethod is a
macro that basically means "virtual nsresult".
...And 10 more matches
Index - Web APIs
1172 element: do
mactivate event api, input, mouse events, mouseevent, reference, activate event, events, onactivate the do
mactivate event is fired at an element when it becomes active, such as when it is clicked on using the mouse or a keypress is used to navigate to it.
... 1228 element: webkitmouseforcewillbegin event api, event, force touch, input, mouseevent, needsexample, non-standard, reference, ui, web, webkit, apple, events,
macos, webkitmouseforcewillbegin safari for
macos fires the non-standard webkitmouseforcewillbegin event at an element before firing the initial mousedown event.
... 1943 htmltimeelement.datetime api, html dom, htmltimeelement, property, reference the htmltimeelement.datetime property is a domstring that reflects the datetime html attribute, containing a
machine-readable form of the element's date and time value.
...And 10 more matches
Simple Instantbird build
build prerequisites hardware requirements: while you can build instantbird on older hardware it can take quite a bit of time to compile on slower
machines, and having 8gb of ram is recommended (though you can probably still get away with 4gb).
... setup: depending on your operating system you will need to carry out a different process to prepare your
machine.
... windows build prerequisites gnu/linux build prerequisites
mac os x build prerequisites tip: after completing setup for your os, and before you get the source, you can opt to add the progressextension to your mercurial.ini (for windows) or .hgrc (for *nix /
mac) file.
...And 9 more matches
Extending a Protocol
return echopromise.forget(); } ok, let's ./
mach build and make sure everything is compiling ok.
... once it's compiled, ./
mach run and you should be able to spin up the developer console and type: navigator.echo("hi!"); that will return a pending promise that never settles.
... ok, if we now try to compile this (./
mach build), it will say: |manager| declaration in protocol `pecho' does not match any |manages| declaration in protocol `pwindowglobal' that's good!
...And 9 more matches
DMD
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".
... launch use
mach run --dmd; use --mode to choose the mode.
... desktop firefox (
mac) build build with these options: ac_add_options --enable-dmd if building via try server, modify browser/config/mozconfigs/
macosx64/common-opt or a similar file before pushing.
...And 9 more matches
Web Replay
getting started to enable web replay (
macos and firefox nightly only), go to devtools settings and select "enable webreplay".
... save recording and replay on the same
machine clicking the 'tools -> web developer -> web replay -> save recording' menu item when a recording tab is open will allow the entire recording to be saved to a file.
... save recording and replay on a different
machine (partially implemented) recordings can be replayed on a different
machine from the one which recorded them.
...And 8 more matches
Starting WebLock
the next parameter is a nifty
macro that returns the iid for the interface name that you pass in.
...recall from using xpcom utilities to make things easier that implementing these basic interfaces can be easy and straightforward if you use the
macros and other utilities that xpcom provides.
... declaration
macros the class declaration for the weblock class that implements these three interfaces is as follows: class weblock: public nsiobserver, public iweblock { public: weblock(); virtual ~weblock(); ns_decl_isupports ns_decl_nsiobserver ns_decl_iweblock }; note that we derive from the nsiobserver interface as well as the iweblock class.
...And 8 more matches
Command line crash course - Learn web development
since then, the terminal has remained a constant feature of all operating systems — from desktop
machines, to servers tucked away in the cloud (it’s not really a cloud), to microcomputers like the raspberry pi zero, and even to mobile phones.
... and below, you can see the
macos terminal application.
...
macos
macos has a system called darwin that sits underneath the graphical user interface.
...And 7 more matches
Configuring Build Options
if you need to re-run configure, the easiest way to do it is using ./
mach configure; running configure manually is strongly discouraged.
...example, a mozconfig-dbg: mk_add_options moz_objdir=@topsrcdir@/obj-ff-dbg ac_add_options --enable-debug and a mozconfig-rel-opt: mk_add_options moz_objdir=@topsrcdir@/obj-ff-rel-opt ac_add_options --disable-debug ac_add_options --enable-optimize allow for building both versions by specifiying the configuration via the mozconfig environment variable: $ env mozconfig=/path/to/mozconfig-dbg ./
mach build $ env mozconfig=/path/to/mozconfig-rel-opt ./
mach build don't forget to set the mozconfig environment variable for the
mach run command as well.
... mk_add_options moz_make_flags="-j4" if your
machine is overheating, you might want to try a lower value, e.g.
...And 7 more matches
Index
9 encrypt decrypt
mac keys as session objects decrypt, encryption, example, nss, sample code generates encryption/
mac keys and uses session objects.
... 10 encrypt and decrypt
mac using token example, intermediate, mozilla, nss generates encryption/
mac keys and uses token for storing.
... 170 enc dec
mac output public key as csr generates encryption/
mac keys and outputs public key as certificate signing request 171 enc dec
mac using key wrap certreq pkcs10 csr generates encryption/
mac keys and outputs public key as pkcs11 certificate signing request 172 encdec
mac using token object - sample 3 encdec
mac, html, ncc, ncc article, web, web development ...
...And 7 more matches
NSS_3.12_release_notes.html
.h) secmod_deletemoduleex (see secmod.h) sec_getregisteredhttpclient (see ocsp.h) sec_pkcs5isalgorithmpbealgtag (see secpkcs5.h) vfy_createcontextdirect (see cryptohi.h) vfy_createcontextwithalgorithmid (see cryptohi.h) vfy_verifydatadirect (see cryptohi.h) vfy_verifydatawithalgorithmid (see cryptohi.h) vfy_verifydigestdirect (see cryptohi.h) vfy_verifydigestwithalgorithmid (see cryptohi.h) new
macros for camellia support (see blapit.h): nss_camellia nss_camellia_cbc camellia_block_size new
macros for rsa (see blapit.h): rsa_max_modulus_bits rsa_max_exponent_bits new
macros in certt.h: x.509 v3 ku_encipher_only cert_max_serial_number_bytes cert_max_dn_bytes pkix cert_rev_m_do_not_test_using_this_method cert_rev_m_test_using_this_method cert_rev_m_allow_network_fetching cert_rev_m_f...
...issing_fresh_info cert_rev_m_stop_testing_on_fresh_info cert_rev_m_continue_testing_on_fresh_info cert_rev_mi_test_each_method_separately cert_rev_mi_test_all_local_information_first cert_rev_mi_no_overall_info_requirement cert_rev_mi_require_some_fresh_info_available cert_policy_flag_no_mapping cert_policy_flag_explicit cert_policy_flag_no_any cert_enable_ldap_fetch cert_enable_http_fetch new
macro in utilrename.h: smime_aes_cbc_128 the nssckbi pkcs #11 module's version changed to 1.70.
... in pkcs11n.h, all the _netscape_
macros are renamed with _nss_ for example, cko_netscape_crl becomes cko_nss_crl.
...And 7 more matches
Source code directories overview - Archive of obsolete content
mac contains source code for
macos: both the powerpc and 68000 versions.
... rhapsody contains source code for
mac os x server (which is based on nextstep which is based on x-windows on unix) using yellow box (cocoa).
...this code is also known by the names, "nglayout" and "gecko." lib contains c code used for reference by developers in programming the
mac.
...And 6 more matches
Using XPInstall to Install Plugins - Archive of obsolete content
xpinstall can be used to install any combination of these files on an end-user's
machine.
...ginurl attribute of the embed tag: <embed type="application/x-randomtype" src="myfile.typ" width="50" height="50" pluginurl="http://mytypecompany.xyz/jarpacks/mytypeplugin.jar"></embed> in the example above, the pluginurl attribute points to the signed jar file, which netscape communicator 4.x would then download (subject to the security dialog boxes) if the plugin was not located on the user's
machine.
... on windows: write windows registry keys that netscape gecko browsers (that get installed after the current browser) can parse to discover where the plugin is installed on the
machine.
...And 6 more matches
Index - MDN Web Docs Glossary: Definitions of Web-related terms
19 apple safari glossary, navigation, webmechanics safari is a web browser developed by apple and bundled with both
macos and ios.
...what sets it apart from previous scm systems is the ability to do common operations (branching, committing, etc.) on your local development
machine, without having to change the master repository or even having write access to it.
... 191 h
mac cryptography, glossary, hash, security h
mac is a protocol used for cryptographically authenticating messages.
...And 6 more matches
Test your skills: Conditionals - Learn web development
conditionals 2 for this task you are given three variables:
machineactive — contains an indicator of whether the answer
machine is switched on or not (true/false) score — contains your score in an imaginary game.
... this score is fed into the answer
machine, which provides a response to indicate how well you did.
... you need to create an if...else structure that checks whether the
machine is switched on and puts a message into the response variable if it isn't, telling the user to switch the
machine on.
...And 6 more matches
Creating a Language Pack
configure step you need to prepare the build directory, which is done with ./
mach configure you only need to run this if the version number of firefox changes.
... $ cd ../../dist the xpi file can be found in the directory win32/xpi on windows, linux-i686/xpi or linux-x86_64 on linux or
mac/xpi on
mac.
... $ make wget-en-us en_us_binary_url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora if you're building on
mac 64 bit, you'll need to change the command slightly: $ make wget-en-us en_us_binary_url=http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-mozilla-aurora moz_pkg_platform=
mac at some point, you should see the following success message: downloaded http://ftp.mozilla.org/pub/mozilla.o....en-us.
mac.dmg to /users/your_id/mozilla/vc/firefox/browser/locales/../../dist/firefox-3.6b5pre.en-u...
...And 6 more matches
SpiderMonkey Build Documentation
before you begin, make sure you have the right build tools for your computer: linux, windows,
mac, others.
... note: if you are on
mac and getting an error similar to "checking whether the c compiler (gcc-4.2 ) works...
...refer the release notes under command line tools -> new features the release notes also states that this compatibility package will no longer be provided in the near future, so the build system on
macos will have to be adapted to look for headers in the sdk until then, the following should help, open /library/developer/commandlinetools/packages/
macos_sdk_headers_for_
macos_10.14.pk this builds an executable named js in the directory build-release/dist/bin.
...And 6 more matches
Interfacing with the XPCOM cycle collector
how to make your classes participate the interface between the cycle collector and your classes can be accessed directly using the contents of xpcom/base/nscyclecollector.h, but there are convenience
macros for annotating your classes in xpcom/glue/nscyclecollectionparticipant.h that are much easier to use.
... add the appropriate ns_impl_cycle_collection_#
macro, where # is the number of member variables in your class.
...for example, your class may have multiple nsisupports base classes, which requires the use of some *_ambiguous
macros that perform a disambiguating downcast.
...And 6 more matches
nsIFile
on the
mac, getting/setting the file size with nsifile only deals with the size of the data fork.
... if you need to know the size of the combined data and resource forks use nsilocalfile
mac.getfilesizewithresfork().
...any meta data, such as a resource fork on the
mac, is not included in the measurement of the file size.
...And 6 more matches
The JavaScript input interpreter - Firefox Developer Tools
multi-line mode for multi-line entry, click the "split pane" icon at the right hand side of the single-line entry field, or press ctrl+b (windows/linux) or cmd+b (
macos).
...to execute the snippet that is currently in the editing pane, click the run button or press ctrl+enter (or cmd+return on
macos).
... to open a file, press ctrl+o (cmd+o on
macos).
...And 6 more matches
KeyboardEvent - Web APIs
examples include the left control key, the left command key on a
macintosh keyboard, or the left shift key.
... examples include the right shift key and the right alt key (option on a
mac keyboard).
... keyboardevent.metakey read only returns a boolean that is true if the meta key (on
mac keyboards, the ⌘ command key; on windows keyboards, the windows key (⊞)) was active when the key event was generated.
...And 6 more matches
Adding Toolbars and Toolbar Buttons - Archive of obsolete content
indow id="main-window"> <toolbox id="navigator-toolbox"> <toolbar id="xulschoolhello-toolbar" toolbarname="&xulschoolhello.toolbarname.label;" accesskey="&xulschoolhello.toolbar.accesskey;" customizable="true" mode="icons" context="toolbar-context-menu" defaultset="xulschoolhello-hello-world-button" insertbefore="personaltoolbar" /> </toolbox> </window> (note for
mac os x: <window id="main-window"> and </window> are not required) our toolbar is added as a child of the toolbox element in the main browser window.
...this is a matter of personal preference, but the
mac os theme seems to be designed so that the bookmarks toolbar is always the last one (it has a lighter color than the rest).
... these are the current icon sets for firefox: windows
mac os x (lion and above)
mac os x linux (gnome) note: the images above are probably not distributable under the same cc license, unlike the rest of this material.
...And 5 more matches
Adding menus and submenus - Archive of obsolete content
the menubar element should be a child of a toolbox element because it is treated like another toolbar on systems other than
mac os x.
...
mac os x treats menus in a very different way than other systems.
... if your extension involves menus in any way, you should test it on
mac os x to make sure everything works adequately.
...And 5 more matches
Using Dependent Libraries In Extension Components - Archive of obsolete content
brary->setnativeleafname(ns_literal_cstring(krealcomponent)); prlibrary *lib; rv = library->load(&lib); if (ns_failed(rv)) return rv; nsgetmoduleproc getmoduleproc = (nsgetmoduleproc) pr_findfunctionsymbol(lib, ns_get_module_symbol); if (!getmoduleproc) return ns_error_failure; return getmoduleproc(acompmgr, alocation, aresult); } extensions/stub/bdsstubloader.cpp (for
mac os x) the code as written above won't work for
mac os x.
... dependant libraries on the
mac must be loaded with a special system function nsaddimage() with the flag nsaddimage_option_match_filename_by_installname.
...2008 */ //include the stuff from mozilla glue that we need #include "nsilocalfile.h" #include "nsstringapi.h" #include "nscomptr.h" //include things from the
mach-o libraries that we need for loading the libraries.
...And 5 more matches
Special per-platform menu considerations - Archive of obsolete content
the
mac application menu on the
macintosh, an extra menu exists beside the file menu; its name is the same as the name of the application.
...on the
mac, these menu items will be moved onto the application menu, but on other platforms, they will be left in their original locations.
... menu_
mac_services a menu which provides system services.
...And 5 more matches
Eclipse CDT Manual Setup
mach setup most people should be reading the eclipse cdt page instead of this one, now that
mach ide eclipse is a thing.
...there is valuable information here that should be integrated back into that page, but a large amount of it is now taken care of by the
mach project generation code.
... setup time some points in the rest of this document below are old and taken care of by the
mach commands described above (although some of the project configuration is not done automatically yet).
...And 5 more matches
Implementing QueryInterface
some alternatives the ns_impl_query_interface[012]
macros the sample above implements two xpcom interfaces in addition to nsisupports.
... the ns_impl_query_interface2
macro can write this function for you (though it pains me to recommend
macros), e.g., ns_impl_query_interface2(nsmyimplementation, nsix, nsiy) // implements |nsmyimplementation::queryinterface| as above ns_impl_query_interface1(nsfoo, nsifoo) // |nsfoo::queryinterface| provides |nsifoo| and |nsisupports| ns_impl_query_interface0(nsbar) // |nsbar::queryinterface| can only provide an |nsisupports| similarly, you can use the
macro ns_impl_query_interface1 when you implement only one additional interface; and ns_impl_query_interface0 when you only implement nsisupports.
... these
macros will be invoked for you if you use the ns_impl_isupports*
macros, which give the corresponding queryinterface implementation, plus an addref and a release.
...And 5 more matches
Mozilla Framework Based on Templates (MFBT)
the mozilla framework based on templates ("mfbt") is the central repository for
macros, functions, and data structures used throughout mozilla code, including in the javascript engine.
... core types.h further provides
macros to define imported and exported c symbols.
... attributes.h implements various function and class attribute
macros.
...And 5 more matches
Basics
</p> <div> <math display="block"> <mtable> <mtr> <mtd> <mtable align="axis" columnalign="left left left"> <mtr> <mtd> <
maction id="a11" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo> </mrow> <mn>0</mn> </msup> <mn>1</mn> </
maction> </mtd> <mtd> <
maction id="a12" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo> </mrow> <mn>1</mn> </msup> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> <...
.../mrow> </
maction> </mtd> <mtd> <
maction id="a13" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mrow> <mn>2</mn> <mo>&invisibletimes;</mo> <mi>x</mi> <mo>&invisibletimes;</mo> <mi>y</mi> </mrow> <mo>+</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> </mrow> </
maction> </mtd> </mtr> <mtr> <mtd> <
maction id="a21" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo> </mrow> <mn>1</mn> </msup> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> </
maction> </mtd> <mtd> <
maction id="a22" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow...
...> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mrow> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>+</mo> <mrow> <mn>2</mn> <mo>&invisibletimes;</mo> <mi>x</mi> <mo>&invisibletimes;</mo> <mi>y</mi> </mrow> <mo>+</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> </mrow> </
maction> </mtd> <mtd> <
maction id="a23" actiontype="toggle" selection="2"> <msup> <mrow> <mo>(</mo> <mrow> <mi>x</mi> <mo>+</mo> <mi>y</mi> </mrow> <mo>)</mo> </mrow> <mn>3</mn> </msup> <mrow> <msup> <mi>x</mi> <mn>3</mn> </msup> <mo>+</mo> <mrow> <mn>3</mn> <mo>&invisibletimes;</mo> <msup> <mi>x</mi> <mn>2</mn> </msup> <mo>&invisibletimes;</mo> <mi>y</mi> </mrow> <mo>+</mo> <mrow> <mn>3</mn> <mo>&invisibletimes;</mo> <mi>x</mi> <mo>&invisibletimes;</mo> <msup> <mi>y</mi> <mn>2</mn> </msup> </mrow> <mo>+</mo> <msup> <mi>y</mi> <mn>3</mn> </msup...
...And 5 more matches
Activity Monitor, Battery Status Menu and top
this article describes the activity monitor, battery status menu, and top — three related tools available on
mac os x.
... idle wake ups: in
mac os 10.9 this measured "package idle exit" wakeups.
...task_power_info::task_platform_idle_wakeups obtained from the task_info function.) in
mac os 10.10 it appears to have been changed to measure interrupt-level wakeups (a superset of idle wakeups), which are less interesting.
...And 5 more matches
nss tech note1
rather, the goal here is to explain what type of tags the decoder supports and which
macros should be used when defining tags in decoder templates.
...you can specify the class of the tag using the
macros sec_asn1_universal, sec_asn1_application, sec_asn1_context_specific and sec_asn1_private.
...you can use the
macro sec_asn1_constructed for a constructed component type.
...And 5 more matches
sslerr.html
ssl_error_bad_
mac_read -12273 "ssl received a record with an incorrect message authentication code." this usually indicates that the client and server have failed to come to agreement on the set of keys used to encrypt the application data and to check message integrity.
... ssl_error_bad_
mac_alert -12272 "ssl peer reports incorrect message authentication code." the remote system has reported that it received a message with a bad message authentication code from the local system.
... ssl_error_md5_digest_failure -12215 "md5 digest function failed." ssl_error_sha_digest_failure -12214 "sha-1 digest function failed." ssl_error_
mac_computation_failure -12213 "message authentication code computation failed." ssl_error_sym_key_context_failure -12212 "failure to create symmetric key context." ssl_error_sym_key_unwrap_failure -12211 "failure to unwrap the symmetric key in client key exchange message." ssl_error_iv_param_failure -12209 "pkcs11 code failed to translate an iv into...
...And 5 more matches
Index
104 jsfun_bound_method jsapi reference, obsolete, spidermonkey this
macro exists only for backward compatibility with existing applications.
...future versions of the javascript engine may not support or recognize this
macro.
... 106 jsfastnative jsapi reference, obsolete, spidermonkey the callback should use the following
macros to access the fields of vp: 107 jsfinalizeop jsapi reference, reference, référence(2), spidermonkey the jsfinalizeop is analogous to java finalizers or c++ destructors.
...And 5 more matches
SpiderMonkey 1.8.5
spidermonkey 1.8.5 includes a just-in-time compiler (jit) (several, actually) that compiles javascript to
machine code, for a significant speed increase.
...instead, jsvals should be converted to their c equivalents with the appropriate jsval_to_*
macro and then compared.
... this affects
macros like double_to_jsval and jsval_to_double, which now operate directly on jsdouble rather than jsdouble pointers.
...And 5 more matches
Using RAII classes in Mozilla
this involves just one addition to the class, and the inclusion of attributes.h: class moz_raii nsautoscriptblocker {...} this is much simpler and more thorough than the guardobject runtime assertions, but are unfortunately currently only run on
mac os x and linux builds, which means that guardobject should still be used for raii guards which may be used in windows-only code.
...we have a set of
macros that will cause a class to assert when it is instantiated at a temporary.
... these
macros are provided in guardobjects.h.
...And 5 more matches
nsITreeView
rowindex, in long afterindex); boolean iscontainer(in long index); boolean iscontainerempty(in long index); boolean iscontaineropen(in long index); boolean iseditable(in long row, in nsitreecolumn col); boolean isselectable(in long row, in nsitreecolumn col); boolean isseparator(in long index); boolean issorted(); void perfor
maction(in wstring action); void perfor
mactiononcell(in wstring action, in long row, in nsitreecolumn col); void perfor
mactiononrow(in wstring action, in long row); void selectionchanged(); void setcelltext(in long row, in nsitreecolumn col, in astring value); void setcellvalue(in long row, in nsitreecolumn col, in astring value); void settree(in...
... perfor
maction() a command api that can be used to invoke commands on the selection.
...for example, when the del key is pressed, perfor
maction will be called with the delete string.
...And 5 more matches
Deploying XULRunner - Archive of obsolete content
this should be fixed with xulrunner 11.0 with xulrunner 11.0 you may need to copy "gkmedias.dll" from the xulrunner directory to the root directory
mac os x on
mac os x, the exact layout of your application bundle depends on which version of xulrunner you're using.
... xulrunner 39 and later due to
mac os x code signing rules and how they interact with the design of xulrunner (see bug 1105044 for the inside scoop), starting with xulrunner 39 the xulrunner library files are no longer able to reside in a xulrunner framework directory.
... instead, the library files are placed directly into the
macos directory alongside the main executable file.
...And 4 more matches
Gecko Compatibility Handbook - Archive of obsolete content
gecko is a cross-platform browser engine, compatible with a number of windows versions including windows xp, as well as
mac and linux.
... because of gecko's cross-platform nature, functionality is generally very much the same on different platforms unlike internet explorer for
mac and ie for windows, which are very different programs and so may behave quite differently from each other.
...thus it's critical to verify that you are properly detecting browsers such as aol for
macos.
...And 4 more matches
Handling common accessibility problems - Learn web development
most modern browsers follow the tab pattern described above (you can also do shift + tab to move backwards through the focusable elements), but some browsers have their own idiosyncracies: firefox for the
mac doesn't do tabbing by default.
...next, you have to open your
mac's system preferences app, then go to keyboard > shortcuts, then select the all controls radio button.
... some are free products, like nvda (windows), chromevox (chrome, windows, and
mac os x), and orca (linux).
...And 4 more matches
Mozilla accessibility architecture
ions accessible/src/html/ document and html object implementations accessible/src/xul/ user interface and xul object implementations accessible/src/msaa/ windows implementations accessible/src/atk/ atk implementations, may eventually be used on platforms other than linux and unix accessible/src/
mac/ empty implementations of platform-specific classes for os x.
...when there is no dom node for each accessible, as is the case for nshtmlcomboboxaccessible and nsxultreeite
maccessible, we also need to override the shutdown() method, so that the children get removed from memory when the parent is shutdown.
... gecko events (or callback) event type accessibility event focus, select standard html dom event event_focus dommenuite
mactive, dommenubaractive mozilla dom event_focus domnodeinserted w3c dom mutation event event_create (atk) event_reorder (msaa) domsubtreemodified w3c dom mutation event event_reorder domnoderemoved w3c dom mutation event event_destroy (atk) event_reorder (msaa) checkboxstatechange, radios...
...And 4 more matches
Multiple Firefox profiles
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.
...
macos run the terminal application, which is found in applications/utilities.
... type or paste in the path to firefox, followed by .app/contents/
macos/firefox.
...And 4 more matches
How to embed the JavaScript engine
spidermonkey 24 // following code might be needed in some case // #define __stdc_limit_
macros // #include <stdint.h> #include "jsapi.h" /* the class of the global object.
...atescript(cx, global, script, strlen(script), filename, lineno, rval.address()); if (!ok) return 1; } jsstring *str = rval.tostring(); printf("%s\n", js_encodestring(cx, str)); } js_destroycontext(cx); js_destroyruntime(rt); js_shutdown(); return 0; } spidermonkey 31 // following code might be needed in some case // #define __stdc_limit_
macros // #include <stdint.h> #include "jsapi.h" /* the class of the global object.
... js_evaluatescript(cx, global, script, strlen(script), filename, lineno, &rval); if (!ok) return 1; } jsstring *str = rval.tostring(); printf("%s\n", js_encodestring(cx, str)); } js_destroycontext(cx); js_destroyruntime(rt); js_shutdown(); return 0; } spidermonkey 38 // following code might be needed in some case // #define __stdc_limit_
macros // #include <stdint.h> #include "jsapi.h" /* the class of the global object.
...And 4 more matches
SpiderMonkey Internals
106 => line 28 line 29 => pc 127 => line 29 line 30 => pc 154 => line 21 line 31 => pc 154 => line 21 line 32 => pc 161 => line 32 line 33 => pc 172 => line 33 line 34 => pc 172 => line 33 line 35 => pc 172 => line 33 line 36 => pc 172 => line 33 line 37 => pc 172 => line 33 line 38 => pc 172 => line 33 line 39 => pc 172 => line 33 line 40 => pc 172 => line 33 jsconfig.h various configuration
macros defined as 0 or 1 depending on how js_version is defined (as 10 for javascript 1.0, 11 for javascript 1.1, etc.).
... not all
macros are tested around related code yet.
... jsarena.cpp, jsarena.h last-in-first-out allocation
macros that amortize malloc costs and allow for en-masse freeing.
...And 4 more matches
SpiderMonkey 1.8.7
instead, jsvals should be converted to their c equivalents with the appropriate jsval_to_*
macro and then compared.
... this affects
macros like double_to_jsval and jsval_to_double, which now operate directly on jsdouble rather than jsdouble pointers.
...
macros must be used instead.
...And 4 more matches
Setting up an update server
be sure that you use the one that matches your
machine's configuration.
... for example, if you want the nightly mar from 2019-09-17 for a 64 bit windows
machine, you probably want the mar located at https://archive.mozilla.org/pub/firefox/nightly/2019/09/2019-09-17-09-36-29-mozilla-central/firefox-71.0a1.en-us.win64.complete.mar.
...to move the installation, first call ./
mach package, then you can either copy <obj dir>/dist/firefox to a new "install directory" elsewhere, or run the installer located in the <obj dir>/dist/install/sea.
...And 4 more matches
Accessing the Windows Registry Using XPCOM
a simple example here's a simple example showing how to read your windows productid: var wrk = components.classes["@mozilla.org/windows-registry-key;1"] .createinstance(components.interfaces.nsiwindowsregkey); wrk.open(wrk.root_key_local_
machine, "software\\microsoft\\windows\\currentversion", wrk.access_read); var id = wrk.readstringvalue("productid"); wrk.close(); this example, while simple, shows several important things about using the interface.
... notice in the open() call that the root key to use is specified using the named constants available on the nsiwindowsregkey interface, in this case root_key_local_
machine, which corresponds to hkey_local_
machine in the windows registry.
...they are: root_key_classes_root — corresponds to hkey_classes_root root_key_current_user — corresponds to hkey_current_user root_key_local_
machine — corresponds to hkey_local_
machine the second parameter for open() and create() is the path to the key.
...And 4 more matches
Mozilla internal string guide
helper classes and functions converting cocoa strings use mozilla::copycocoastringtoxpcomstring() in mozilla/
macstringhelpers.h to convert cocoa strings to xpcom strings.
...(win32 w apis and
mac os x natively use utf-16.) latin1 - 8-bit encoding for the first 256 unicode code points.
... nowadays, all supported platforms have 16-bit literals using u""_ns, so we longer need to rely on
macros for portability.
...And 4 more matches
nsINavHistoryResultViewObserver
sisupports last changed in gecko 1.9.0 method overview boolean candrop(in long index, in long orientation); void ondrop(in long row, in long orientation); void ontoggleopenstate(in long index); void oncycleheader(in nsitreecolumn column); void oncyclecell(in long row, in nsitreecolumn column); void onselectionchanged(); void onperfor
maction(in wstring action); void onperfor
mactiononrow(in wstring action, in long row); void onperfor
mactiononcell(in wstring action, in long row, in nsitreecolumn column); constants constant value description drop_before -1 the drag operation wishes to insert the dragged item before the indicated row.
...onperfor
maction() this method provides a command api that can be used to invoke commands on the selection.
... void onperfor
maction( in wstring action ); parameters action a string identifying the action to be performed.
...And 4 more matches
Plug-in Basics - Plugins
directories pointed to by hkey_local_
machine\software\mozillaplugins\*\path registry value, where * can be replaced by any name.
...
mac os x ~/library/internet plug-ins.
...this guide notes platform-specific differences in coding for the ms windows,
mac os x, and unix platforms.
...And 4 more matches
Web audio codec guide - Web media technologies
this capability was introduced on each platform in different firefox releases: aac support in firefox using external library, by platform platform first firefox version with aac support windows (vista and later) 22 android 20 linux (depends on gstreamer) 26
macos 35 [2] chrome supports aac only in mp4 containers, and only supports aac's main profile.
...however, if your target is primarily
macos and ios users, it may be worth considering, as the operating systems have integrated support for alac.
...this capability was introduced on each platform in different firefox releases: mp3 support with external library, by platform, in firefox platform first firefox version with mp3 support windows (vista and later) 22 android 20 linux (depends on gstreamer) 26
macos 35 opus the opus audio format was created by the xiph.org foundation as a fully open audio format; it has been standardized by ietf as rfc 6716.
...And 4 more matches
Media container formats (file types) - Web media technologies
quicktime files are primarily supported by
macos, but for a number of years, quicktime for windows was available to access them on windows.
... on
mac os, the quicktime framework not only supported quicktime format movie files and codecs, but supported a vast array of popular and specialty audio and video codecs, as well as still image formats.
... through quicktime,
mac applications (including web browsers, through the quicktime plugin or direct quicktime integration) were able to read and write audio formats including aac, aiff, mp3, pcm, and qualcomm purevoice; and video formats including avi, dv, pixlet, prores, flac, cinepak, 3gp, h.261 through h.265, mjpeg, mpeg-1 and mpeg-4 part 2, sorenson, and many more.
...And 4 more matches
Repackaging Firefox - Archive of obsolete content
the following diagram represents an overview of the process and the pieces involved: you will need the following to get started: a
macintosh computer (even for repackaging windows or linux only); it may be either powerpc or intel based.
... the pristine firefox 2 installer files (windows .exe,
mac .dmg, or linux .tar.gz) for each of the locales you need.
... install the repackager tool like you would any
mac application.
...And 3 more matches
prefwindow - Archive of obsolete content
this one can be safely omitted in xulrunner-based applications but you can override the default behavior (true for
mac os x and false for other platforms) setting it.
... note for
mac os x: a common way of opening modal windows on
mac os x that are not attached as a sheet to the main window is to use nsiwindowwatcher.openwindow() with a null parentwindow.
...this only affects
mac os x.
...And 3 more matches
NPEvent - Archive of obsolete content
syntax microsoft windows typedef struct _npevent { uint16 event; uint32 wparam; uint32 lparam; } npevent;
mac os typedef eventrecord npevent; type eventrecord = record { what: integer; message: longint; when: longint; where: point; modifiers: integer; end; xwindows 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...
... eventrecord npevent on
mac os npevent is defined as an eventrecord data structure, which has the following fields: what integer representing an event type.
...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.
...And 3 more matches
Scratchpad - Archive of obsolete content
usage opening scratchpad in its own window there are several different ways to open scratchpad in its own window: press shift + f4, or go to the web developer menu (which is a submenu in the tools menu on
macos and linux), then select scratchpad click the wrench icon (), which is in the main toolbar or under the hamburger menu (), then select "scratchpad".
... editing the scratchpad window looks something like this (on
macos the menu bar is at the top of the screen): the file menu offers options to save and load javascript code snippets, so you can reuse code later if you like.
... keyboard shortcuts command windows
macos linux open the scratchpad shift + f4 shift + f4 shift + f4 run scratchpad code ctrl + r cmd + r ctrl + r run scratchpad code, display the result in the object inspector ctrl + i cmd + i ctrl + i run scratchpad code, insert the result as a comment ctrl + l cmd + l ctrl + l re-evaluate current function ctrl + e...
...And 3 more matches
What text editors are available? - Learn web development
extensible atom mit/bsd free windows,
mac, linux forum online manual yes bluefish gpl 3 free windows,
mac, linux mailing list, wiki online manual yes brackets mit/bsd free windows,
mac, linux forum, irc github wiki yes coda closed source $99
mac twitter, forum, e-mail ebook yes codelobster closed source free windows,
mac, linux ...
...forum, e-mail no end user doc yes e
macs gpl 3 free windows,
mac, linux faq, mailing list, news group online manual yes espresso closed source $75
mac faq, e-mail no end user doc, but plug-in doc yes gedit gpl free windows,
mac, linux mailing list, irc online manual yes kate lgpl, gpl free windows,
mac, linux mailing list, irc online manual yes komodo edit mpl free windows,
mac, linux forum online manual yes notepad++ gpl free windows forum wiki yes pspad closed source free windows faq, forum online help yes sublime text closed source $70 windows,
mac, linux forum official, ...
...unofficial yes textmate closed source $50
mac twitter, irc, mailing list, e-mail online manual, wiki yes textwrangler closed source free
mac faq, forum pdf manual no vim specific open license free windows,
mac, linux mailing list online manual yes visual studio code open source under mit licence/ specific licence for product free windows,
mac, linux faq documentation yes active learning in this active learning section, we would like you to try using and/or installing a text editor of your choice.
...And 3 more matches
How much does it cost to do something on the Web? - Learn web development
software text editors you likely have a text editor: such as, notepad on windows, gedit on linux, textedit on
mac.
... image editors your system likely includes a simple image editor, or viewer: paint on windows, eye of gnome on ubuntu, preview on
mac.
...likewise, video-editing software can be free (pitivi, openshot for linux, imovie for
mac), less than $100 (adobe premiere elements), or several hundred dollars (adobe premiere pro, avid media composer, final cut pro).
...And 3 more matches
What software do I need to build a website? - Learn web development
here is a short list of editors: operating system built-in editor third-party editor windows notepad notepad++ visual studio code web storm brackets shiftedit sublime text
mac os textedit textwrangler visual studio code brackets shiftedit sublime text linux vi (all unix) gedit (gnome) kate (kde) leafpad (xfce) e
macs vim visual studio code brackets shiftedit sublime text chrome os shif...
...for now, here's a short list of free basic (s)ftp clients: operating system ftp software windows winscp moba xterm filezilla (all os) linux nautilus/files (gnome) dolphin (kde)
mac os cyberduck chrome os shiftedit (all os) browsing websites as you already know, you need a web browser to view websites.
...apple safari runs on ios and
mac os, while internet explorer runs only on windows.
...And 3 more matches
Introduction to automated testing - Learn web development
as you click on the start button, a loading screen will appear, providing you with a vm (virtual
machine) based on your configurations.
... when you click start session, a loading screen will then appear, which spins up a virtual
machine running the combination you chose.
... note: this is already very useful, and way more convenient than having to set up all these emulators and virtual
machines by yourself.
...And 3 more matches
Setting up your own test automation environment - Learn web development
for example, if we were using a
mac os x
machine, our user name was bob, and we put our drivers in the root of our home folder, the path would be /users/bob.
... to set your path variable on
mac os x/most linux systems: open your .bash_profile (or .bashrc) file (if you can't see hidden files, you'll need to display them, see show/hide hidden files in
mac os x or show hidden folders in ubuntu).
... paste the following into the bottom of your file (updating the path as it actually is on your
machine): #add webdriver browser drivers to path export path=$path:/users/bob save and close this file, then restart your terminal/command prompt to reapply your bash configuration.
...And 3 more matches
Mozilla's Section 508 Compliance
here are the section 508 requirements and how far along mozilla seamonkey rv1.8a4 is with each one: requirement windows linux/unix
mac os requirement windows linux/unix
mac os (a) when software is designed to run on a system that has a keyboard, product functions shall be executable from a keyboard where the function itself or the result of performing a function can be discerned textually.
...inadequate attention paid to
mac keyboard bugs.
... requirement windows linux/unix
mac os (f) textual information shall be provided through operating system functions for displaying text.
...And 3 more matches
Creating reftest-based unit tests
running reftest-based unit tests note:
mach is a python2 script.
... if your use python3 as default you must edit the first line of
mach.
... to run all the reftests, go to the directory where you save firefox's source code and run: ./
mach reftest if you want to run a particular set of reftests, pass the path as an argument: ./
mach reftest path/from/sourcedir/reftest.list and to run a single reftest just pass the path to the test file (not the reference file): ./
mach reftest path/from/sourcedir/reftest-name.html there is no reftest equivalent to
mach mochitest --keep-open, but temporarily adding the reftest-wait class to a test (or disabling the script that removes it) will keep it open longer.
...And 3 more matches
Geckoview-Junit Tests
running tests locally if desired, connect an android device to your computer, or start an emulator, and make sure your device is visible to adb: $ adb devices list of devices attached emulator-5554 device if no device is found, '
mach geckoview-junit' will offer to start an emulator.
... before running tests, install the androidtest apk on your device; otherwise, '
mach geckoview-junit' will offer to install it.
... mozilla-central$
mach install --app org.mozilla.geckoview.test to run all tests: mozilla-central$
mach geckoview-junit to run just one class of tests: mozilla-central$
mach geckoview-junit <class> please note that unlike robocop tests, <class> needs to be specified using the fully qualified class name including the package, e.g.
...And 3 more matches
Performance
apple tools apple provides some tools for
mac os x that report similar problems to those reported by lsan and valgrind.
... adding a new telemetry probe information on how to add a new measurement to the telemetry performance-reporting system profiling javascript with shark (obsolete - replaced by instruments) how to use the
mac os x shark profiler to profile javascript code in firefox 3.5 or later.
... tools/power/rapl (
mac, linux) tools/power/rapl is a command-line utility in the mozilla codebase that uses the intel rapl interface to gather direct power estimates for the package, cores, gpu and memory.
...And 3 more matches
Optimizing Applications For NSPR
macintosh the current port of nspr for
macintosh will not be usable in its own right.
...
macintosh threads are not preemptable.
... as usual, it isn't that we couldn't preempt them, but rather that the
macintosh libraries are not prepared for such things to happen.
...And 3 more matches
NSS API Guidelines
pkcs #11 lib/fortcrypt cryptint.h, fmutex.h, fortsock.h, fpkcs11.h, fpkcs11f.h, fpkcs11t.h, fpkmem.h, fpkstrs.h, genci.h,
maci.h freebl provides the api to actual cryptographic operations.
... public
macros should have the form layer_body(), where layer is an all caps prefix for what layer the
macro lives in, and body is english words, all in upper case, separated by underscores.
... enum members have the same standard as public
macros (minus the '()' of course).
...And 3 more matches
sample2
e <secerr.h> #include <secport.h> #include <secoid.h> #include <secmodt.h> #include <secoidt.h> #include <sechash.h> /* our samples utilities */ #include "util.h" /* constants */ #define blocksize 32 #define modblocksize 128 #define default_key_bits 1024 /* header file constants */ #define enckey_header "-----begin wrapped enckey-----" #define enckey_trailer "-----end wrapped enckey-----" #define
mackey_header "-----begin wrapped
mackey-----" #define
mackey_trailer "-----end wrapped
mackey-----" #define iv_header "-----begin iv-----" #define iv_trailer "-----end iv-----" #define
mac_header "-----begin
mac-----" #define
mac_trailer "-----end
mac-----" #define pad_header "-----begin pad-----" #define pad_trailer "-----end pad-----" #define lab_header "-----begin key label-----" #define lab_trai...
...*/ #ifndef port_errortostring #define port_errortostring(err) pr_errortostring((err), pr_language_i_default) #endif /* sample 6 commands */ typedef enum { generate_csr, add_cert_to_db, save_cert_to_header, encrypt, decrypt, sign, verify, unknown } commandtype; typedef enum { symkey = 0,
mackey = 1, iv = 2,
mac = 3, pad = 4, pubkey = 5, lab = 6, certenc= 7, certvfy= 8, sig = 9 } headertype; /* * print usage message and exit */ static void usage(const char *progname) { fprintf(stderr, "\nusage: %s %s %s %s %s %s %s %s %s %s\n\n", progname, " -<g|a|h|e|ds|v> -d <dbdirpath> ", "[-p <dbpwd> | -f <dbpwdfile>] [-z <noisefilename>] [-a <\"\">]", "-s <subject> -r <csr> | ", "-n <nickname> -t...
...p: if (infile) { pr_close(infile); } if (vfy) { vfy_destroycontext(vfy, pr_true); } return rv; } /* * write cryptographic parameters to header file */ secstatus writetoheaderfile(const char *buf, unsigned int len, headertype type, prfiledesc *outfile) { secstatus rv; const char *header; const char *trailer; switch (type) { case symkey: header = enckey_header; trailer = enckey_trailer; break; case
mackey: header =
mackey_header; trailer =
mackey_trailer; break; case iv: header = iv_header; trailer = iv_trailer; break; case
mac: header =
mac_header; trailer =
mac_trailer; break; case pad: header = pad_header; trailer = pad_trailer; break; case pubkey: header = pubkey_header; trailer = pubkey_trailer; break; case certenc: header = ns_cert_enc_header; trailer = ns_cert_enc_trailer; break; case ce...
...And 3 more matches
An Overview of XPCOM
when you implement the nsisupports class (and you'll see in the chapter using xpcom utilities to make things easier how
macros can make this process much easier), you must make sure the class methods return a valid result when the client calls queryinterface with the nsisupports iid.
...this simple
macro declares a constant with the value of the cid: static ns_define_cid(kwebshellcid, ns_web_shell_cid); a cid is sometimes also referred to as a class identifier.
... writing components in other languages though you do not have access to some of the tools that xpcom provides for c++ developers (such as
macros, templates, smart pointers, and others) when you create components in other languages, you may be so comfortable with the language itself that you can eschew c++ altogether and build, for example, python-based xpcom components that can be used from javascript or vice versa.
...And 3 more matches
nsIAlertsService
note: prior firefox 22, the alerts service was only supported on windows in gecko 1.7, had no effect on
mac os x in gecko 1.8, but was fully supported in
mac os x in gecko 1.9.
... note: if you are calling this function from javascript, you should wrap it in a try/catch because it can fail on
mac os x prior to firefox 22.
...however, certain notification systems (such as growl on
mac os x) allow the user to disable alerts by name.
...And 3 more matches
Add to iPhoto
this extension for
mac os x serves as a demonstration of how to use js-ctypes to call
mac os x carbon, core foundation, and other system frameworks from an extension written entirely in javascript.
... declaring the apis the first thing we have to do is declare the
mac os x apis we'll be using.
..."file system representation" strings on
mac os x are in utf-8 format.
...And 3 more matches
Page inspector keyboard shortcuts - Firefox Developer Tools
command windows
macos linux inspect element ctrl + shift + c cmd + shift + c ctrl + shift + c node picker these shortcuts work while the node picker is active.
... command windows
macos linux select the element under the mouse and cancel picker mode click click click select the element under the mouse and stay in picker mode shift+click shift+click shift+click html pane these shortcuts work while you're in the inspector's html pane.
... command windows
macos linux delete the selected node delete delete delete undo delete of a node ctrl + z cmd + z ctrl + z redo delete of a node ctrl + shift + z / ctrl + y cmd + shift + z / cmd + y ctrl + shift + z / ctrl + y move to next node (expanded nodes only) down arrow down arrow down arrow move to previous node up arrow up arrow up arrow move to first node in the tree.
...And 3 more matches
SubtleCrypto.sign() - Web APIs
to use h
mac, pass the string "h
mac" or an object of the form { "name": "h
mac" }.
... the fourth algorithm — h
mac — uses the same algorithm and key for signing and for verification: this means that the verification key must be kept secret, which in turn means that this algorithm is not suitable for many signature use cases.
... h
mac the h
mac algorithm calculates and verifies hash-based message authentication codes according to the fips 198-1 standard.
...And 3 more matches
<input type="image"> - HTML: Hypertext Markup Language
supported common attributes alt, src, width, height, for
maction, formenctype, formmethod, formnovalidate, formtarget idl attributes none.
... additional attributes in addition to the attributes shared by all <input> elements, image button inputs support the following attributes: attribute description alt alternate string to display when the image can't be shown for
maction the url to which to submit the data formenctype the encoding method to use when submitting the form data formmethod the http method to use when submitting the form formnovalidate a boolean which, if present, indicates that the form shouldn't be validated before submission formtarget a string indicating a browsing context from where to load th...
... for
maction a string indicating the url to which to submit the data.
...And 3 more matches
Index of archived content - Archive of obsolete content
system clipboard ui selection jspage statusbar statusbar litmus tests
mac os x build prerequisites/fink makefile.mozextension.2 message summary database metro browser chrome tests microsummary topics microsummary xml grammar reference migrate apps from internet explorer to mozilla modularization techniques monitoring downloads ...
...kpoints in venkman venkman internals venkman introduction video presentations when to use ifdefs writing textual data xml in mozilla xpinstall creating xpi installer modules install wizards (aka: stub installers)
mac stub installer unix stub installer windows stub installer learn xpi installer scripting by example installer script using xpinstall to install plugins install script template ...
... xpinstall api reference examples file.
macalias file.windowsshortcut install.adddirectory install.addfile installtrigger.installchrome installtrigger.startsoftwareupdate trigger scripts and install scripts windows install file object methods install object methods properties installversion object meth...
...And 2 more matches
Modularization techniques - Archive of obsolete content
the convenience
macros ns_addref() and ns_release() are preferred over calling addref and release directly.
... in debug builds, these
macros provide useful reference counting logs.
... /* * the nsisupports interface */ class nsisupports { public: ns_imethod queryinterface(const nsiid &aiid, void **aresult) = 0; ns_imethod_(nsrefcnt) addref(void) = 0; ns_imethod_(nsrefcnt) release(void) = 0; }; the ns_imethod and ns_imethod_(type)
macros are basically shorthand for virtual nsresult and virtualtype.
...And 2 more matches
Nanojit - Archive of obsolete content
overview nanojit is a small, cross-platform c++ library that emits
machine code.
...the term lir is compiler jargon for a language used internally in a compiler that is usually cross-platform but very close to
machine language.
...a compiler's lir is typically one of several partly-compiled representations of a program that a compiler produces on the way from raw source code to
machine code.
...And 2 more matches
addFile - Archive of obsolete content
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.
...the file is installed under this directory on the user's
machine.
...the file is installed in this location on the user's
machine.
...And 2 more matches
XULRunner 2.0 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english.
... specific runtimes can be found at: download xulrunner for windows download xulrunner for
mac os x download xulrunner for 32-bit linux download xulrunner for 64-bit linux (warning: links may become out-of-date at times).
...
mac os x open the .pkg file within the installer and follow the directions.
...And 2 more matches
Getting started with XULRunner - Archive of obsolete content
as a developer, i like the idea that xulrunner only needs to be unzipped onto my
machine.
... the
mac version of xulrunner is distributed as an tar.bz2 archive.
... on the
mac, extract the tar.bz2 archive, which contains xulrunner as xul.framework.
...And 2 more matches
2006-10-20 - Archive of obsolete content
he also points out that when he performs a local build any of those platforms (gentoo, suse and fedora) he doesn't encounter any problems on the same
machine.
...paul reed announced that: sparky, the linux performance test
machine for the 1.8 branchs, is being decommissioned.
...paul reed stated that he is also going to decommission comet, the
machine that performed seamonkey trunk gtk1 builds, this friday.
...And 2 more matches
External resources for plugin creation - Archive of obsolete content
platforms supported include windows, linux, and
mac os x (intel).
... feature highlights include thread safety checks, unicode support (with std::wstring), activex support, built-in drawing model negotiation for
mac, automatic type conversion (including javascript arrays and objects), advanced security features, and more.
... supported development environments are visual studio on windows, xcode on
mac, and gcc on linux.
...And 2 more matches
Introduction to Public-Key Cryptography - Archive of obsolete content
however, it's important to note that these two assumptions are true only if unauthorized personnel have not gained access to the user's
machine or password, the password for the client software's private key database has been set, and the software is set up to request the password at reasonable frequent intervals.
... neither password-based authentication nor certificate-based authentication address security issues related to physical access to individual
machines or passwords.
...it is the user's responsibility to protect a
machine's physical security and to keep the private-key password secret.
...And 2 more matches
Advanced form styling - Learn web development
the answer is that in chromium-based browsers on
macos, search boxes have some styling restrictions — you can't adjust their height or font-size freely, for example.
... this is because non-
macos chrome browsers no longer use the webkit rendering engine, which enabled aqua appearance by default for certain form controls.
...if you look at it in
macos chrome you'll see that the left one isn't sized properly.
...And 2 more matches
Android-specific test suites
these tests are local — they run on your development
machine and do not require an android device or android emulator.
... running android-test to run android-test, first build firefox for android with your changes; then run ./
mach android test this will run the tests and report the results to stdout, as well as produce an html report.
... running android-checkstyle to run android-checkstyle, first build firefox for android with your changes; then run ./
mach android checkstyle this will run the tests and report the results to stdout, as well as produce an html report.
...And 2 more matches
Simple SeaMonkey build
yum install mercurial autoconf213 glibc-static libstdc++-static yasm wireless-tools-devel mesa-libgl-devel alsa-lib-devel libxt-devel gstreamer-devel gstreamer-plugins-base-devel pulseaudio-libs-devel # 'development tools' is defunct in fedora 19 and above use the following sudo yum groupinstall 'c development tools and libraries' sudo yum group mark install "x software development"
mac: install xcode tools.
... insert "
mac os x install disc 2", then open xcodetools.mpkg.
... (for some
mac os x versions, you will find it in a directory called "optional installs".) install
macports.
...And 2 more matches
Simple Sunbird build
ubuntu linux: sudo apt-get build-dep sunbird sudo apt-get install mercurial libasound2-dev libcurl4-openssl-dev libnotify-dev libiw-dev autoconf2.13 cvs fedora linux: sudo yum groupinstall 'development tools' 'development libraries' 'gnome software development' sudo yum install mercurial autoconf213 glibc-static libstdc++-static yasm wireless-tools-devel mesa-libgl-devel
mac: install xcode tools.
... insert "
mac os x install disc 2", then open xcodetools.mpkg.
... (for some
mac os x versions, you will find it in a directory called "optional installs".) install
macports.
...And 2 more matches
Roll your own browser: An embedding how-to
(screenshot)
macromedia homesite html editor: internal browser for the homesite studio application is implemented by embedding mozilla.
...versions for windows and
mac with linux to follow.
...
mac external projects activestate's komodo: development environment, based on mozilla's xul.
...And 2 more matches
Gecko Profiler FAQ
if the issue you are trying to avoid is not profiling on fast
machines that mozilla developers typically use to build firefox on, a better solution may be using a less high-end
machine that actually has lower spec’d hardware instead of artificially slowing down just the cpu.
... overview of the changes in the last (year?) to cleopatra/etc faster, hopefully more reliable has a timeline tab lets you hide threads with a context menu supports symbolication for local builds on windows if you run “
mach buildsymbols” first profiling non-nsthreads?
...
mac: instruments; linux: perf, zoom, callgrind; windows: concurrency visualizer, vtune, xperf when to use gecko profiler vs.
...And 2 more matches
powermetrics
powermetrics is a
mac-only command-line utility that provides many high-quality power-related measurements.
... it is most useful for getting cpu, gpu and wakeup measurements in a precise and easily scriptable fashion (unlike activity monitor and top) especially in combination with rapl via the
mach power command.
... this document describes the version of powermetrics that comes with
mac os 10.10.
...And 2 more matches
NSS 3.14.3 release notes
however, unlike pk11_sign, which uses a seckeyprivatekey, pk11_signwithsymkey performs the signature using a symmetric key, such as commonly used for generating
macs.
... new types ck_nss_
mac_constant_time_params - parameters for use with ckm_nss_h
mac_constant_time and ckm_nss_ssl3_
mac_constant_time.
... new pkcs #11 mechanisms ckm_nss_h
mac_constant_time - constant-time h
mac operation for use when verifying a padded,
mac-then-encrypted block of data.
...And 2 more matches
getFile
ns_xpcom_component_dir "comsd" ns_xpcom_component_dir_list "comsdl" ns_xpcom_component_registry_file "comregf" ns_xpcom_xpti_registry_file "xptiregf" ns_xpcom_library_file "xpcomlib" ns_gre_dir "gred" note: on
mac os x, up through firefox 34 this is the contents/
macos directory within the application's bundle.
...this change was required in order to comply with apple's new gatekeeper v2 rules; without this change, firefox would not work on any
mac os x newer than 10.9.4.
...available on both
mac and unix these locations are available on both
mac os x and unix implementations of gecko.
...And 2 more matches
nsISyncJPAKE
1.0 66 introduced gecko 2.0 inherits from: nsisupports last changed in gecko 2.0 (firefox 4 / thunderbird 3.3 / seamonkey 2.1) method overview void final(in acstring ab, in acstring agvb, in acstring arb, in acstring ahkdfinfo, out acstring aaes256key, out acstring ah
mac256key); void round1(in acstring asignerid, out acstring agx1, out acstring agv1, out acstring ar1, out acstring agx2, out acstring agv2, out acstring ar2); void round2(in acstring apeerid, in acstring apin, in acstring agx3, in acstring agv3, in acstring ar3, in acstring agx4, in acstring agv4, in acstring ar4, out acstring aa, out acstring agva, out acstring ara); methods final() perform the ...
...this will compute the key and expand the key to two keys, an aes256 encryption key and a 256 bit h
mac key.
... it returns a key confirmation value (sha256d of the key) and the encryption and h
mac keys.
...And 2 more matches
Examples
mac os x these examples require
mac os x to operate.
... add image to iphoto an extension that adds a contextual menu item to images that lets you easily add them to iphoto on
mac os x.
... js-
macosx an extension that demonstrates javascript-cocoa bridge for
mac os x.
...And 2 more matches
Standard OS Libraries
to be precise, x is "just" like a display
machine.
... // placeholder - example soon to come x11 x11 runs primarily on unix® and unix-like operating systems like linux, all of the bsd variants, sun solaris both native 32 and 64 bit support, solaris x86,
mac os x (via darwin) as well as other platforms like os/2 and cygwin.
... resources for xcb github :: noitidart - ostypes / ostypes_x11.jsm - some method and type signatures xcb freedesktop :: xproto.h
mac os x
mac os x has two categories of c-based api (carbon, core foundation) and objective-c based api (cocoa).
...And 2 more matches
Browser Console - Firefox Developer Tools
opening the browser console you can open the browser console in one of two ways: from the menu: select "browser console" from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on
macos).
... from the keyboard: press ctrl+shift+j (or cmd+shift+j on a
mac).
... you can also start the browser console by launching firefox from the command line and passing the -jsconsole argument: /applications/firefoxaurora.app/contents/
macos/firefox-bin -jsconsole the browser console looks like this: you can see that the browser console looks and behaves very much like the web console: most of the window is occupied by a pane that display messages.
...And 2 more matches
<input type="submit"> - HTML: Hypertext Markup Language
this label is likely to be something along the lines of "submit" or "submit query." here's an example of a submit button with a default label in your browser: <input type="submit"> additional attributes in addition to the attributes shared by all <input> elements, submit button inputs support the following attributes: attribute description for
maction the url to which to submit the form's data; overrides the form's action attribute, if any formenctype a string specifying the encoding type to use for the form data formmethod the http method (get or post) to use when submitting the form.
... formnovalidate a boolean which, if present, means the form's fields will not be subjected to constraint validation before submitting the data to the server formtarget the browsing context into which to load the response returned by the server after submitting the form for
maction a string indicating the url to which to submit the data.
...permitted values are: get a url is constructed by starting with the url given by the for
maction or action attribute, appending a question mark ("?") character, then appending the form's data, encoded as described by formenctype or the form's enctype attribute.
...And 2 more matches
Firefox user agent string reference - HTTP
windows,
mac, linux or android), and whether or not it's a mobile phone.
... windows version gecko user agent string windows nt on x86 cpu mozilla/5.0 (windows nt x.y; rv:10.0) gecko/20100101 firefox/10.0 windows nt on x64 cpu mozilla/5.0 (windows nt x.y; win64; x64; rv:10.0) gecko/20100101 firefox/10.0
macintosh here, x.y is the version of
mac os x (for instance,
mac os x 10.6).
...
mac os x version gecko user agent string
mac os x on intel x86 or x86_64 mozilla/5.0 (
macintosh; intel
mac os x x.y; rv:10.0) gecko/20100101 firefox/10.0
mac os x on powerpc mozilla/5.0 (
macintosh; ppc
mac os x x.y; rv:10.0) gecko/20100101 firefox/10.0 linux linux is a more diverse platform.
...And 2 more matches
Testing the Add-on SDK - Archive of obsolete content
only on a linux
machine at the moment.
... from mozilla-central repository with a checkout of the mozilla-central source code, one can always cd addon-sdk/source and use any of the methods described above, but in addtion to that there are a couple of
mach commands available, and ofcourse there is the try server if you have access to that.
... with
mach there are two commands: ./
mach mochitest -f jetpack-addon <optional_addon_path>: this runs the test add-ons mentioned for cfx testaddons and gulp test:addons with the older sdk/loader/cuddlefish used with cfx.
... ./
mach mochitest -f jetpack-package <optional_file_path>: this runs the module unit tests mentioned for cfx testpkgs and gulp test:modules but in this case with the newer toolkit/loader used with jpm.
hotkeys - Archive of obsolete content
on the
macintosh, this is the option key.
... on
macintosh this can only be used in conjunction with another modifier, since alt-letter combinations are reserved for entering special characters in text.
...on the
macintosh, this is the command key.
... accel: the key used for keyboard shortcuts on the user's platform, which is control on windows and linux, and command on
mac.
Customizing the download progress bar - Archive of obsolete content
the myextension.css file will look something like this: richlistitem progressmeter { %ifdef xp_win min-height: 17px !important; %else %ifdef xp_
macosx -moz-appearance: none !important; background-image: url(chrome://myextension/skin/progress_bg_osx.png) !important; %endif %endif } richlistitem .progress-bar { %ifdef xp_win -moz-appearance: none !important; background-image: url(chrome://myextension/skin/progress_fd_win.png) !important; %else %ifdef xp_
macosx background-image: url(chrome://myextension/skin/progress_fd_...
...osx.gif) !important; %endif %endif } note: this file only supports windows and
mac, but it would be straightforward to add support for linux.
...we are specifying the height of the progress meter on windows and a background image on
mac.
...the other two images are for the filled in progress bar on windows and
mac respectively.
File I/O - Archive of obsolete content
the user's desktop directory (for example ~/desktop on linux or
mac os x, c:\documents and settings\username\desktop on windows).
... desk f dfltdwnld f the default downloads directory (for example, ~/downloads on
mac os x).
... tmpd d the operating system's temporary files directory (for example, /tmp on
mac os x and linux).
... enumerating drives on windows while you can use initwithpath("/") on unix-like systems (linux,
mac) to get the root of the file system, there's no such root on windows.
Finding window handles - Archive of obsolete content
note: starting in gecko 17.0, nsibasewindow.nativehandle provides the handle (hwnd [widows], gdkwindow* [linux], nswindow* [
macosx],...) of a top-level window, for all plateforms, as a string.
... recall that nsibasewindow -> nativehandle returns the following in the different operating systems: windows - hwnd
mac os x - nswindow* linux - gdkwindow* (it will be gdkwindow* no matter what desktop/window manager) is in use, for explanation why see the article: standard os libraries - unix section) windows components.utils.import('resource://gre/modules/services.jsm'); var browserwindow = services.wm.getmostrecentwindow('navigator:browser'); if (!browserwindow) { throw new error('no browser window foun...
...nd hwnd * ); */ var setforegroundwindow = user32.declare('setforegroundwindow', ctypes.winapi_abi, ctypes.bool, // return bool ctypes.voidptr_t // hwnd ); var hwnd = ctypes.voidptr_t(ctypes.uint64(hwndstring)); var rez_setforegroundwindow = setforegroundwindow(hwnd); console.log('rez_setforegroundwindow:', rez_setforegroundwindow, rez_setforegroundwindow.tostring()); user32.close();
mac os x objective-c components.utils.import('resource://gre/modules/services.jsm'); var browserwindow = services.wm.getmostrecentwindow('navigator:browser'); if (!browserwindow) { throw new error('no browser window found'); } var basewindow = browserwindow.queryinterface(ci.nsiinterfacerequestor) .getinterface(ci.nsiwebnavigation) .q...
... ctypes.open(ctypes.libraryname('objc')); // types let id = ctypes.voidptr_t; let sel = ctypes.voidptr_t; // constants let nil = ctypes.voidptr_t(0); //common functions let sel_registername = objc.declare('sel_registername', ctypes.default_abi, sel, ctypes.char.ptr); let objc_msgsend = objc.declare('objc_msgsend', ctypes.default_abi, id, id, sel, '...'); /* https://developer.apple.com/library/
mac/documentation/cocoa/reference/applicationkit/classes/nsapplication_class/index.html#//apple_ref/occ/instp/nsapplication/orderfront: * [nswindowptr orderfront:nil] */ var orderfront = sel_registername('orderfront:'); var nswindowptr = ctypes.voidptr_t(ctypes.uint64(nswindowstring)); var rez_orderfront = objc_msgsend(nswindowptr, orderfront, nil); console.log('rez_orderfront:', rez_orderfront...
Chapter 3: Introduction to XUL—How to build a more intuitive UI - Archive of obsolete content
for example, windows places the ok button on the left and the cancel button on the right, while
mac os x has the opposite layout.
...the standard modifier key on windows and linux is control; on
mac os it is command.
... an easy way to automatically use the modifier key appropriate for the current platform is to set the modifier key to "accel", which maps to control on windows and linux, command on
mac os.
... note: the "meta" key is the command key on
mac os x (the one with the cloverleaf design on it).
DTrace - Archive of obsolete content
mozilla dtrace support has been added by the sun dtrace team and can be used on solaris 10 and
mac os x 10.5.
... the dtrace probes currently built into the codebase may be enabled by default in the future, but for now you'll need to create a build with --enable-dtrace (on
mac os x you also have to use at least the 10.5 sdk for --with-
macos-sdk, unlike the common configuration that uses the 10.4 sdk).
... trunk nightly builds with shark support (*-
mac-shark.dmg here) are built with --enable-dtrace.
... pounce on dtrace a guide to using dtrace on
mac os x 10.5.
Porting NSPR to Unix Platforms - Archive of obsolete content
you can build the <tt>gencfg</tt> tool as follows: cd mozilla/nsprpub/pr/include gmake gencfg gencfg > foo.bar then you use the
macro values in <tt>foo.bar</tt> as a basis for the <tt>_xxxos.cfg</tt> file.
... <tt>mozilla/nsprpub/pr/include/md/_netbsd.h</tt>: for local threads only version, the main challenge is to figure out how to define the three thread context switch
macros.
...usually <tt>jmp_buf</tt> is an array of integers, and some platforms have a <tt>jb_sp</tt>
macro that tells you which array element is the stack pointer.
... if you can't find a <tt>jb_sp</tt>
macro, you must resort to brute-force experiments.
Install script template - Archive of obsolete content
var plid = "@myplugin.com/myplugin,version=5.3"; var version = "5.3.0.0"; var mimetype = "application/x-my-plugin"; var suffix = "my"; var suffix_description = "my plugin files"; var company_name = "mypluginco"; var plugin_description = "my exemplary plugin mine all mine"; // registry constant paths // these will be used when the win32 registry keys are written var hkey_local_
machine = "hkey_local_
machine"; var hkey_current_user = "hkey_current_user"; var reg_moz_path = "software\\mozillaplugins"; // my own error code in case secondary installation fails var nosecondaryinstall = 1; // error return codes need some memory var err; // error return codes when we try and install to the current browser var errblock1; // error return codes when we try and do a secondary...
...riteplidsolution() { //concatenate the secondary install path with the filename to make a fully qualified pathname var qualifiedsecondaryfolderdll = secondaryfolder + plugin_file; var qualifiedsecondaryfolderxpt = secondaryfolder + component_file; // write plid keys (mozilla.org/projects/plugins/first-install-problem.html) // write plid keys to hklm var hklm_status = registerplid(hkey_local_
machine, reg_moz_path, plid, qualifiedsecondaryfolderdll, qualifiedsecondaryfolderxpt, plugin_description, company_name, software_name, version, mimetype, suffix, suffix_description); logcomment("moz first install installation: registerplid("+hkey_local_
machine+") returned, status "+hklm_status); if (hklm_status == false) { // write plid keys (mozi...
... * * @param rootkey must be one of these two string values hkey_local_
machine or hkey_current_user * @param plidid plid for plugins * @param dllabsolutepath the fully qualified path to the dll * @param xptabsolutepath the fully qualified path to the xpt * @param plugindescription a string describing the plugin * @param vendor a string describing the vendor * @param productname the name of this software * @param pluginversion version str...
... plidpath, plidid, dllabsolutepath, xptabsolutepath, plugindescription, vendor, productname, pluginversion, mimetype, suffix, suffixdescription) { var myregstatus = 0; winreg = getwinregistry(); if (winreg == null) { logcomment("moz registerplid: winreg == null"); return winregisnullerror; } // which root to start from hklm, hkcu if (rootkey == hkey_local_
machine) { logcomment("moz registerplid: rootkey=="+hkey_local_
machine); winreg.setrootkey(winreg.hkey_local_
machine); } else if (rootkey == hkey_current_user) { logcomment("moz registerplid: rootkey=="+hkey_current_user); winreg.setrootkey(winreg.hkey_current_user); } else { logcomment("moz registerplid: invalid rootkey, "+rootkey); return invalidrootkeyerror; } if (!winreg.isk...
modifiers - Archive of obsolete content
on the
macintosh, this is the option key.
... on
macintosh this can only be used in conjunction with another modifier, since alt+letter combinations are reserved for entering special characters in text.
...on the
macintosh, this is the command key.
... accel: the key used for keyboard shortcuts on the user's platform, which is control on windows and linux, and command on
mac.
Index - Archive of obsolete content
on
macintosh, accesskeys are available only in html not in xul, and they are activated using ctrl+letter instead of alt.
... 981 dommenuite
mactive the dommenuite
mactive event is executed when a <menu> or a <menuitem> has been hovered or highlighted.
...cuando use un árbol con los atributos flags ("banderas"), establezca dont-build-content, ("no al
macenar contenido"), use treeitem en su lugar.
...on the
macintosh, the menubar is displayed along the top of the screen, and all non-menu related elements inside the menubar will be ignored.
The Joy of XUL - Archive of obsolete content
the calendar was initially developed exclusively for linux but was successfully ported to both
macintosh and windows within a week.
...but later, when the original developer (oeone corporation) contributed the source to the mozilla project, the calendar had to be migrated to the windows and
macintosh platforms.
... fortunately, an implementation of the libical library was already available for
macintosh so, with the cross platform nature of xpcom, a
macintosh calendar implementation was working within a few days.
...within a week this too was complete and mozilla had a working calendar for all three primary platforms: linux,
macintosh, and windows.
dialog - Archive of obsolete content
this only affects
mac os x.
...the cancel button might be shown as an additional possibility to close the dialog in this situation (windows and linux) or might be hidden, too (
mac os).
... the default setting of browser.preferences.instantapply currently is true on linux and
mac os and false on windows (which however might or might not change soon, see bug 738797 and bug 1037225).
...this affects only on
mac os x.
key - Archive of obsolete content
on the
macintosh, this is the option key.
... on
macintosh this can only be used in conjunction with another modifier, since alt+letter combinations are reserved for entering special characters in text.
...on the
macintosh, this is the command key.
... accel: the key used for keyboard shortcuts on the user's platform, which is control on windows and linux, and command on
mac.
treecol - Archive of obsolete content
on firefox 2.x and 3.x, all operating systems other than
mac os x already use these styles by default.
... if targeting firefox for
mac os x, be sure to use these styles but include your own checkbox image.
... however, chrome://global/skin/checkbox/cbox-check.gif is available in seamonkey on
mac os x..
...cbox-check.gif isn't available in firefox 1, 2, and 3 on
mac os x, so you should specify a url to an image in your extension or elsewhere.
XULRunner 1.8.0.1 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english: download xulrunner for windows download xulrunner for
mac os x download xulrunner for linux windows unpack the zip file to a new directory using a archive tool (7zip is recommended).
...
mac os x open the .pkg file within the installer and follow the directions.
...
mac os x if you have multiple versions of xulrunner installed on
mac os x, it is not possible to uninstall only one version.
... windows run the following command from the start menu -> run or from a command prompt: "c:\program files\mozilla xulrunner\1.8.0.1\xulrunner\xulrunner.exe" --install-app "c:\documents and settings\user\desktop\myapplication.xpi" the application will be installed to c:\program files\vendorname\applicationname
mac os x run the following command in a command prompt: /library/frameworks/xul.framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi the application will be installed to /applications/vendor/appicationname linux run the following command in a command prompt: /opt/xulrunner/1.8.0.1/xulrunner/xulrunner --install-app ~/desktop/myapplication.xpi the application will be installed to /usr/li...
XULRunner 1.8.0.4 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english: download xulrunner for windows download xulrunner for
mac os x download xulrunner for linux windows unpack the zip file to a new directory using an archive tool (7zip is recommended).
...
mac os x open the .pkg file within the installer and follow the directions.
...
mac os x if you have multiple versions of xulrunner installed on
mac os x, it is not possible to uninstall only one version.
... windows run the following command from the start menu -> run or from a command prompt: "c:\program files\mozilla xulrunner\1.8.0.4\xulrunner\xulrunner.exe" --install-app "c:\documents and settings\user\desktop\myapplication.xpi" the application will be installed to c:\program files\vendorname\applicationname
mac os x run the following command in a command prompt: /library/frameworks/xul.framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi the application will be installed to /applications/vendor/applicationname linux run the following command in a command prompt: /opt/xulrunner/1.8.0.4/xulrunner/xulrunner --install-app ~/desktop/myapplication.xpi the application will be installed to...
XULRunner 1.9.1 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english: download xulrunner for windows download xulrunner for
mac os x download xulrunner for linux windows unpack the zip file to a new directory using an archive tool (7zip is recommended).
...
mac os x open the .pkg file within the installer and follow the directions.
...
mac os x if you have multiple versions of xulrunner installed on
mac os x, it is not possible to uninstall only one version.
... windows run the following command from the start menu -> run or from a command prompt: "c:\program files\mozilla xulrunner\1.9.1\xulrunner\xulrunner.exe" --install-app "c:\documents and settings\user\desktop\myapplication.xpi" the application will be installed to c:\program files\vendorname\applicationname
mac os x run the following command in a command prompt: /library/frameworks/xul.framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi the application will be installed to /applications/vendor/applicationname linux run the following command in a command prompt: /opt/xulrunner/1.9.1/xulrunner/xulrunner --install-app ~/desktop/myapplication.xpi the application will be installed to /usr/lib...
XULRunner 1.9.2 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english: download xulrunner for windows download xulrunner for
mac os x download xulrunner for linux windows unpack the zip file to a new directory using an archive tool (7zip is recommended).
...
mac os x open the .pkg file within the installer and follow the directions.
...
mac os x if you have multiple versions of xulrunner installed on
mac os x, it is not possible to uninstall only one version.
... windows run the following command from the start menu -> run or from a command prompt: "c:\program files\mozilla xulrunner\1.9.2\xulrunner\xulrunner.exe" --install-app "c:\documents and settings\user\desktop\myapplication.xpi" the application will be installed to c:\program files\vendorname\applicationname
mac os x run the following command in a command prompt: /library/frameworks/xul.framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi the application will be installed to /applications/vendor/applicationname linux run the following command in a command prompt: /opt/xulrunner/1.9.2/xulrunner/xulrunner --install-app ~/desktop/myapplication.xpi the application will be installed to /usr/lib...
XULRunner 1.9 Release Notes - Archive of obsolete content
installing xulrunner mozilla provides xulrunner for windows,
mac os x, and linux, in english: download xulrunner for windows download xulrunner for
mac os x download xulrunner for linux windows unpack the zip file to a new directory using an archive tool (7zip is recommended).
...
mac os x open the .pkg file within the installer and follow the directions.
...
mac os x if you have multiple versions of xulrunner installed on
mac os x, it is not possible to uninstall only one version.
... windows run the following command from the start menu -> run or from a command prompt: "c:\program files\mozilla xulrunner\1.9\xulrunner\xulrunner.exe" --install-app "c:\documents and settings\user\desktop\myapplication.xpi" the application will be installed to c:\program files\vendorname\applicationname
mac os x run the following command in a command prompt: /library/frameworks/xul.framework/xulrunner-bin --install-app ~/desktop/myapplication.xpi the application will be installed to /applications/vendor/applicationname linux run the following command in a command prompt: /opt/xulrunner/1.9/xulrunner/xulrunner --install-app ~/desktop/myapplication.xpi the application will be installed to /us...
XULRunner Hall of Fame - Archive of obsolete content
azardi free win/
mac/linux epub 2/epub 3 desktop reader using html5 and latest css features of gecko for interactive e-books.
... conkeror a highly programmable web browser with a leopard-oriented design inspired by e
macs.
...source yoono desktop win/
mac application to get all your friend updates, update your status and share stuff easily across facebook, myspace, twitter, and more - all at once!
...latest release: 1.2 november 2008 - source cocoapsyc.app a psyc im/chat client for
mac os x (also available as a firefox extension).
Mozilla release FAQ - Archive of obsolete content
these instructions are included in the source tree, and are also available on the mozilla website: detailed build instructions: unix/x win32
mac if your version of make chokes on the makefiles (on unix), you might not be using gnu make.
...this list will be updated with time, but (according to netscape.public.mozilla.general) the following platforms have been built successfully: solaris 2.4, 2.5, 2.6 freebsd 2.2, 3.0 linux/intel and alpha 2.0, 2.1
macos winnt 4.0 irix 5.3, 6.2, 6.3, 6.4 win95, win98 digital unix 4.0 netbsd openbsd bsdi hp/ux 9.05, 10.20, 11.0 (see 2.7) hurd .03 dg/ux
mac os x i'm *still* having problems getting mozilla to build on my platform!
...mozilla is currently targeted for win32,
macos, and unix/x systems.
... mozilla also runs on
mac os x, os/2, and beos, and ports exist for some other platforms.
2006-10-27 - Archive of obsolete content
these were the following choices stated: search the filesystem for unneeded files delete or archive them, add a hard disk, move all or part of the concerned filesystem there move that tinderbox to a different
machine with more empty disk space on october 23rd: nick responded to gavin and tony's posting.
... he also mentioned that the tinderbox is just a virtual
machine, so you can easily allocate more space to it as need, assuming the host has some available.
... firefox 2 wont build under solaris 10 x86 october 26: alex was trying to build firefox 2 source on a solaris 10 x86
machine but was not successful with the build.
... he has already built firefox 1.5.0.7 on the same
machine with no problems.
NPP_HandleEvent - Archive of obsolete content
for windowed plug-ins: currently used only on
mac os.
...values: ms windows: pointer to npevent structure
mac os: pointer to a standard
mac os eventrecord unix/x11: pointer to a standard xlib xevent for a list of possible events, see npevent.
...
mac os the browser does not give a windowed plug-in a native window, because the
mac os platform does not support child windows.
...for this reason, npp_handleevent is only way the plug-in can receive events from its host application on
mac os.
NPWindow - Archive of obsolete content
mac os: window is a pointer to an np_port.
...
mac os: cliprect is the rectangle in port coordinates to which the plug-in should clip its drawing.
...the window field holds a platform-specific handle to a drawable or an off-screen pixmap, as follows: windows: hdc
mac os: pointer to np_port structure unix/x11: not used.
...the plug-in area is a native window element on windows and unix, or a rectangle within a native window on
mac os.
Plug-in Development Overview - Gecko Plugin API Reference
the following sections describe platform-specific discovery and registration: ms windows unix
mac os x ms windows on windows, plug-ins are found according to the section how gecko finds plug-ins.
...
mac os x
mac os x plug-ins are found according to the section how gecko finds plug-ins.
... use the npn_memflush method to free memory (
mac os only) before calling memory-intensive
mac toolbox calls.
...r descripton: reg_sz "description of the plugin" path: reg_sz "c:\..path to the plugin.dll" productname: reg_sz "the plugin name" vendor: reg_sz "the plugin author/vendor" version: reg_sz "0.5.whatever plugin version string" hklm/software/mozillaplugins/plugin-identifier/mimetypes add a sub-key for each mime type the plugin supports, with no values install to known locations on linux and
mac on linux and
mac, plug-ins are installed to well-known locations: linux: /usr/lib/mozilla/plugins or /usr/lib64/mozilla/plugins
mac: /library/internet plug-ins or ~/library/internet plug-ins ...
Basic native form controls - Learn web development
the following screenshot shows default, focused and disabled text input types in firefox 71 and safari on
macos and in chrome 79 and edge 18 on windows 10.
... the following screenshots show default, focused and disabled checkboxes in firefox 71 and safari 13 on
macos and chrome 79 and edge 18 on windows 10: note: any checkboxes and radio buttons with the checked attribute on load match the :default pseudo class, even if they are no longer checked.
... <input type="radio" id="curry" name="meal" value="curry"> </li> <li> <label for="pizza">pizza</label> <input type="radio" id="pizza" name="meal" value="pizza"> </li> </ul> </fieldset> the following screenshots show unchecked and checked radio buttons, radio buttons that have focus, and disabled unchecked and checked radio buttons — on firefox 71 and safari 13 on
macos and chrome 79 and edge 18 on windows 10.
... the following examples show default, focused, and disabled button input types — in firefox 71 and safari 13 on
macos and chrome 79 and edge 18 on windows 10.
Installing basic software - Learn web development
for serious web development, it's better to invest in a desktop or laptop computer running windows,
macos or linux.
...visual studio code, notepad++, sublime text, atom, gnu e
macs, or vim), or a hybrid editor (e.g.
...by default windows includes notepad and
macos comes with textedit.
...
macos: firefox, chrome, opera, safari, brave (
macos and ios come with safari by default).
HTML table basics - Learn web development
first of all, make a local copy of blank-template.html and minimal-table.css in a new directory on your local
machine.
... first, make a local copy of our dogs-table.html and minimal-table.css files in a new directory on your local
machine.
... first, make a local copy of our animals-table.html and minimal-table.css files in a new directory on your local
machine.
... first, make a local copy of our timetable.html file in a new directory on your local
machine.
Basic math in JavaScript — numbers and operators - Learn web development
for now, let's look at a quick example: <button>start
machine</button> <p>the
machine is stopped.</p> const btn = document.queryselector('button'); const txt = document.queryselector('p'); btn.addeventlistener('click', updatebtn); function updatebtn() { if (btn.textcontent === 'start
machine') { btn.textcontent = 'stop
machine'; txt.textcontent = 'the
machine has started!'; } else { btn.textcontent = 'start
machine'; txt.textcont...
...ent = 'the
machine is stopped.'; } } open in new window you can see the equality operator being used just inside the updatebtn() function.
...if the button is currently saying "start
machine" when it is pressed, we change its label to "stop
machine", and update the label as appropriate.
... if the button is currently saying "stop
machine" when it is pressed, we swap the display back again.
Introduction to cross browser testing - Learn web development
remember that you are not your users — just because your site works on your
macbook pro or high-end galaxy nexus, doesn't mean it will work for all your users — there's a whole lot of testing to be done!
...for example: try to test the latest change on all the modern desktop browsers you can — including firefox, chrome, opera, ie, edge, and safari on desktop (
mac, windows, and linux, ideally).
... if you haven't got the means to test all those different browser, operating system, and device combinations on physical hardware, you can also make use of emulators (emulate a device using software on your desktop computer) and virtual
machines (software that allows you to emulate multiple operating system/software combinations on your desktop computer).
... this is a very popular choice, especially in some circumstances — for example, windows doesn't let you have multiple versions of windows installed simulataneously on the same
machine, so using multiple virtual
machines is often the only option here.
Accessibility API cross-reference
to do fill out
mac api column.(
mac os x - carbon accessibility api and accessibility constants) finish aria column - add explanation of the term 'abstract role' fill out html column create aom column fill out xul column.
... 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=*) html tagged pdf relevant xul for alerts, in java/gnome for any alert, in msaa if no other role applies.
... invoked with <input type=file> no explanation given n/a n/a invalid n/a contains accessible info, but its role is not known n/a n/a unknown accessible states and properties description & notes msaa state (state_system_*) java accessibility state gnome accessibility state (atk_state_*)
mac os x accessibility state aria state or property html attribute tagged pdf relevant xul used in aria to denote non-conformant user input n/a n/a invalid aria-invalid this window is currently the active window n/a active active n/a identifies the currently active element when focus is on a composite w...
... unavailable enabled n/a aria-disabled=true disabled (boolean attribute) especially used for sliders and scrollbars n/a vertical vertical aria-orientation=vertical accessible events msaa event (event_object_*, event_system_*) java accessibility event gnome accessibility signals
mac os x accessibility event description & notes javascript relevant xul focus focus, focusin blur, focusout selection select state_change change (not sure if this is the same thing?) ...
Adding a new CSS property
this will cause tests of your new property to be added to many of the mochitests in layout/style/test, which can be run with the command "./
mach mochitest -f plain layout/style/".
... if you add a shorthand property, you'll need to use the css_prop_shorthand
macro.
... and for shorthands you also need to include a subproperty table in nscssprops, whose name must match the "method" argument in the css_prop_shorthand
macro.
... finishing up then you'll need to rebuild and run the mochitests in layout/style (./
mach mochitest -f plain layout/style/).
Debugging a hang on OS X (Archived)
creating the sample on
mac os x 10.5 (xcode < 4.2) when the application is still hung, open up spin control.app (it’s in your <tt>/developer/applications/performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools from apple).
... creating the sample on
mac os x 10.4 when the application is still hung, open up sampler.app (it’s in your <tt>/developer/applications/performance tools/</tt> folder; if it is missing, install the latest computer hardware understanding development (chud) tools from apple.).
... when you have the raw sample data, you can't just save that and attach it to a bug, because the format is not very usable (unless the developer is a
mac hacker).
... see also debugging on
mac os x ...
Debugging on Windows
if you have followed the steps in building firefox for windows and have a local debug build, you can execute ./
mach run --debug from the same command line.
... alternatively, if you have generated the visual studio solution, via ./
mach build-backend -b visualstudio, opening this solution allows you to run firefox.exe directly in the debugger.
...one way to view it is simply to disable e10s (./
mach run --disable-e10s) but in order to debug with e10s enabled one can run ./
mach run ...
... 2>&1 | tee it may also be necessary to disable the content sandbox (moz_disable_content_sandbox=1 ./
mach run ...).
HTTP logging
mac os x these instructions show how to log http traffic in firefox on
mac os x.
...keep in mind that simply closing all windows does not quit firefox on
mac os x (this is standard practice for
mac applications).
... export moz_log=timestamp,rotate:200,nshttp:5,cache2:5,nssockettransport:5,nshostresolver:5,cookie:5 export moz_log_file=~/desktop/log.txt cd /applications/firefox.app/contents/
macos ./firefox-bin (the instructions assume that you've installed firefox directly into your startup disk's applications folder.
...older editors may have problems with this, but if you're using an even reasonably modern
mac os x application to view the log, you won't have any problems.
The Firefox codebase: CSS Guidelines
writing cross-platform css firefox supports many different platforms and each of those platforms can contain many different configurations: windows 7, 8 and 10 default theme aero basic (windows 7, 8) windows classic (windows 7) high contrast (all versions) linux
macos file structure the browser/ directory contains styles specific to firefox the toolkit/ directory contains styles that are shared across all toolkit applications (thunderbird and seamonkey) under each of those two directories, there is a themes directory containing 4 sub-directories: shared linux osx windows the shared directories contain styles shared across all 3 platforms, whi...
... writing media queries boolean media queries do this: @media (-moz-
mac-yosemite-theme: 0) { not this: @media not all and (-moz-
mac-yosemite-theme) { privilege css for most common configuration it is better to put the most common configuration (latest version of an os, or default theme for example) outside of the media query.
... in the following example, -moz-
mac-yosemite-theme targets
macos 10.10 and higher, so it should be privileged over the styling for
macos 10.9.
... do this: @media (-moz-
mac-yosemite-theme: 0) { #placeslist { box-shadow: inset -2px 0 0 hsla(0,0%,100%,.2); } } not this: #placeslist { box-shadow: inset -2px 0 0 hsla(0,0%,100%,.2); } @media (-moz-
mac-yosemite-theme) { #placeslist { box-shadow: none; } } theme support firefox comes built-in with 3 themes: default, light and dark.
Creating Custom Events That Can Pass Data
if you peruse nsdomclassinfoclasses.h you'll see of list of
macros of the form domci_class(foo).
...mozilla/dom/src/base/nsdomclassinfo.cpp mozilla contains many convenience
macros to make changes like the one you're making easier.
... your modification of this file is basically just two
macro calls.
...use nsdomevent.h's ns_forward_to_nsdomevent
macro so that you don't have to forward manually (unless you plan on overriding one of nsdomevent's original functions).
Gecko Logging
lazyloglodule provides a conversion operator to logmodule* and is suitable for passing into the logging
macros detailed below.
... #include "mozilla/logging.h" static mozilla::lazylogmodule sfoolog("foo"); logging interface a basic interface is provided in the form of 2
macros and an enum class.
... mozilla logging
macros moz_log(module, level, message) outputs the given message if the module has the given log level enabled.
... you can set an overall logging level, though it could be quite verbose: set rust_log="debug" you can also target individual modules by path: set rust_log="style::style_resolver=debug" for linux/
macos users, you need to use export rather than set.
Gecko SDK
download link latest gecko (latest firefox) gecko 1.9.2 (firefox 3.6) gecko 1.9.1 (firefox 3.5) gecko 1.9 (firefox 3.0) gecko 1.8 (firefox 1.5 and 2.0) windows download download download download download
mac x86_64 download n/a n/a n/a n/a
mac i386 download download download download n/a
mac ppc n/a download download download download linux x86_64 download n/a n/a n/a n/a linux i686 download download download download download the sdk is not officially released for other platforms; if...
...to get around it, you'll need to first install
macports as outlined in the
mac os x build prerequisites and install libidl with it.
... on 64-bit versions of
mac os x, you'll need to install libidl with the +universal flag.
...
mac intel gecko 1.8 sdk the official
mac 1.8 sdk is a ppc version.
Gecko Keypress Event
command) is the accel key on
mac.
... the charcode value depends on the state of capslock and numlock (except they are currently ignored if alt (option) is down on
mac - see bug 432953).
...
mac the charcode is replaced when meta (command) or ctrl is down.
...(when option (alt) on
mac is down, the alt modifier should be ignored in the same way, but this is not implemented in gecko 1.9.
IME handling guide
its mimestate, mhtmlinputtype, mhtmlinputinputmode and
mactionhint are set at nsiwidget::setinputcontext() called.
... how does gecko disable ime on
mac mozilla::widget::textinputhandler::handlekeydownevent() doesn't call focused view's interpretkeyevents.
...
mactionhint the value is mozactionhint attribute value of the focused editor.
...
mac both ime and key events are handled in textinputhandler.mm.
OS.File.Info
before deprecation, this used to be the date at which the file was created on windows and
mac os x, as a javascript date object.
...the creationdate can be obtained on windows by winbirthdate and on
mac os x by
macbirthdate.
... winattributes hidden boolean readonly boolean system boolean
macos x
macbirthdate a date representing the time at which the file was created.
...(as of firefox 38 this attribute is not found, see screen shots below, bugzilla :: bug 1156060) screenshot of info object in variable viewer
macosx 10.10.1 ubuntu 14.04.1 windows 8.1 see also os.file.directoryiterator.entry ...
OS.File for the main thread
let sessionstore = os.path.join(os.constants.path.profiledir, "sessionstore.js"); // under linux, this is generally "$home/.firefox/profiles/$profilename/sessionstore.js" // under
macos, this is generally "$home/library/application support/firefox/$profilename/sessionstore.js" // under windows, this is generally "%appdata%\local\temp\%profilename%"\sessionstore.js // etc.
...to make a file hidden on unix based platforms, including
mac, simply rename the file with os.file.move to have "." at the start of the file name.
... os.file.unixsymlink() create a symoblic link file, also known as "alias" files on
mac os.
...this function is specific to unix baed systems such as linux and
mac os x.
Localizing with Mercurial
mercurial allows localizers to work locally (on their
machines) and then push (an hg term) changes to a remote repository, which usually is hosted on the mozilla servers (hg.mozilla.org).
... mercurial on
mac osx installing hg on
mac osx is super easy.
... you can install mercurial via
macports through the terminal, like so: $ sudo port install mercurial you can also install it by downloading the dmg package from the hg download page.
... more details for more details on installing hg on
mac osx, refer to the instructions on mercurial's download page.
Localization prerequisites
on
mac and linux, you should be just fine, and on windows, mozillabuild should get you everything you need.
...you can try one of these: notepad++ or notepad2 on windows, vim, gedit or kate on gnu/linux, bbedit on
mac os x.
...linux users should know, on the
mac, you find terminal in applications/utilities.
...let’s try our entry points: $ hg --version mercurial distributed scm (version 1.3.1) copyright (c) 2005-2009 matt
mackall <mpm@selenic.com> and others this is free software; see the source for copying conditions.
QA phase
to create and configure this file, follow these instructions: until the fix for bug 1063880 lands on mozilla-aurora and mozilla-beta when building language packs against those two trees you should: remove ac_add_options --disable-compile-environment from .mozconfig in step 3 use ./
mach build config after step 4 update the mozilla source code: $ cd mozilla-aurora $ hg pull -u enter the following command to create the .mozconfig file: $ nano -w .mozconfig enter the following lines in your .mozconfig file: mk_add_options moz_objdir=@topsrcdir@/../firefox-build ac_add_options --disable-compile-environment ac_add_options --with-l10n-base=../l10n-central # path relat...
... enter the following command to perform the configuration: $ ./
mach configure once your command-line finishes spitting out the config command's output, navigate to the newly created directory: $ cd ../firefox-build/browser/locales now you're ready to build!
...you can do this by entering the following url into your browser: http://hg.mozilla.org/l10n-central/x-testing now, navigate to your locale's directory on your local
machine.
... enter the following command: $ hg log -l 1 you should see an output similar to the one below: changeset: 0:7c543e8f3a6a tag: tip user: your name <email@example.com> date: mon nov 23 18:08:25 2009 +0100 summary: added search bar strings now compare the local repository on your
machine with the remote hg repository by entering this command: $ hg outgoing http://hg.mozilla.org/l10n-central/x-testing the hg outgoing command compares the two repositories and lists all changesets that are present locally, but not in the remote repository.
BloatView
this could indicate a hand-written release method (that doesn't use the ns_log_release
macro from nstracerefcnt.h), or perhaps you're just not freeing any of the instances you've allocated.
... to do so, the xpcom_mem_log_classes environment variable should be set to the name of the class from the bloatview table: xpcom_mem_log_classes=myclass
mach mochitest [options] multiple class names can be specified by setting xpcom_mem_log_classes to a comma-separated list of names: xpcom_mem_log_classes=myclass,myotherclass,deliberatelyleakedclass
mach mochitest [options] test harness scripts typically accept a --setenv option for specifying environment variables, which may be more convenient in some cases:
mach mochitest --setenv=xpcom_mem_log...
... the most likely configs you'll want to modify are listed below: linux: unittests/linux_unittest.py
mac: unittests/
mac_unittest.py windows: unittests/win_unittest.py android: android/androidarm_4_3.py how to instrument your objects for bloatview first, if your object is an xpcom object and you use the ns_impl_addref and ns_impl_release (or a variation thereof)
macro to implement your addref and release methods, then there is nothing you need do.
... by default, those
macros support refcnt logging directly.
dtrace
dtrace is a powerful
mac os x kernel instrumentation system that can be used to profile wakeups.
... sudo dtrace -n '
mach_kernel::wakeup { @[ustack()] = count(); }' -p $firefox_pid > $output_file let's break that down further.
... the -n option combined with the
mach_kernel::wakeup selects a probe point.
...
mach_kernel is the module name and wakeup is the probe name.
tools/power/rapl
these are
machine-wide estimates, so if you want to estimate the power consumption of a single program you should minimize other activity on the
machine while measuring.
...
mac on
mac, rapl can be run as follows.
...note that if you do change this file, its contents may reset when the
machine is next rebooted.
... combining with powermetrics on
mac, you can use the
mach power command to run rapl in combination with powermetrics in a way that gives the most useful summary measurements for each of firefox, chrome and safari.
Linked Lists
the api is a set of
macros for initializing a circular (doubly linked) list, inserting and removing elements from the list.
... the
macros are not thread safe.
... linked list types linked list
macros linked list types the prclist type represents a circular linked list.
... linked list
macros
macros that create and operate on linked lists are: pr_init_clist pr_init_static_clist pr_append_link pr_insert_link pr_next_link pr_prev_link pr_remove_link pr_remove_and_init_link pr_insert_before pr_insert_after pr_clist_is_empty pr_list_head pr_list_tail ...
NSPR Types
for information on naming conventions for nspr types, functions, and
macros, see nspr naming conventions.
...since the types (long long versus struct longlong) are not type compatible, nspr defines
macros to manipulate 64-bit numeric fields.
... these
macros are defined in prlong.h.
... conscientious use of these
macros ensures portability of code to all the platforms supported by nspr and still provides optimal behavior on those systems that treat long long values directly.
PR_ASSERT
syntax #include <prlog.h> void pr_assert ( expression ); parameters the
macro has this parameter: expression any valid c language expression that evaluates to true or false.
... returns nothing description this
macro evaluates the specified expression.
...the
macro converts the expression to a string and passes it to pr_assert, using file and line parameters from the compile-time environment.
... this
macro compiles to nothing if compile-time options are not specified to enable logging.
JSS Provider Notes
dsakpg.initialize(1024); keypair dsapair = dsakpg.generatekeypair(); supported classes cipher dsaprivatekey dsapublickey keyfactory keygenerator keypairgenerator
mac messagedigest rsaprivatekey rsapublickey secretkeyfactory secretkey securerandom signature what's not supported the following classes don't work very well: keystore: there are many serious problems mapping the jca keystore interface onto nss's model of pkcs #11 modules.
...
mac supported algorithms notes h
macsha1 (h
mac-sha1 ) any secret key type (aes, des, etc.) can be used as the
mac key, but it must be a jss key.
... secretkeyfactory supported algorithms notes aes des desede (des3 ) pbah
macsha1 pbewithmd5anddes pbewithsha1anddes pbewithsha1anddesede (pbewithsha1anddes3 ) pbewithsha1and128rc4 rc4 generatesecret supports the following transformations: keyspec class key algorithm pbekeyspec org.mozil...
... secretkey supported algorithms notes aes des desede (des3 ) h
macsha1 rc2 rc4 secretkey is implemented by the class org.mozilla.jss.crypto.secretkeyfacade, which acts as a wrapper around the jss class symmetrickey.
Mozilla-JSS JCA Provider notes
dsakpg.initialize(1024); keypair dsapair = dsakpg.generatekeypair(); supported classes cipher dsaprivatekey dsapublickey keyfactory keygenerator keypairgenerator
mac messagedigest rsaprivatekey rsapublickey secretkeyfactory secretkey securerandom signature cipher supported algorithms notes aes des desede (des3) rc2 rc4 rsa the following modes and padding schemes are supported: algorithm mode padding des ecb nopadding cbc nopadding ...
...
mac supported algorithms notes h
macsha1 (h
mac-sha1) any secret key type (aes, des, etc.) can be used as the
mac key, but it must be a jss key.
... secretkeyfactory supported algorithms notes aes des desede (des3) pbah
macsha1 pbewithmd5anddes pbewithsha1anddes pbewithsha1anddesede (pbewithsha1anddes3) pbewithsha1and128rc4 rc4 generatesecret supports the following transformations: keyspec class key algorithm pbekeyspec org.mozilla.jss.crypto.pbekeygenparams using the appropriate pbe algorithm: des desede rc4 desedekeyspec ...
... secretkey supported algorithms notes aes des desede (des3) h
macsha1 rc2 rc4 secretkey is implemented by the class org.mozilla.jss.crypto.secretkeyfacade, which acts as a wrapper around the jss class symmetrickey.
NSS 3.15.1 release notes
h
mac-sha256 cipher suites (rfc 5246 and rfc 5289) are supported, allowing tls to be used without md5 and sha-1.
... tls_dhe_rsa_with_aes_256_cbc_sha256, tls_rsa_with_aes_256_cbc_sha256, tls_ecdhe_ecdsa_with_aes_128_cbc_sha256, tls_ecdhe_rsa_with_aes_128_cbc_sha256, tls_dhe_rsa_with_aes_128_cbc_sha256, tls_rsa_with_aes_128_cbc_sha256, tls_rsa_with_null_sha256 - new tls 1.2 only h
mac-sha256 cipher suites.
... in sslt.h ssl_h
mac_sha256 - a new value in the ssl
macalgorithm enum type.
... bug 884072 - fix a typo in the header include guard
macro of secmod.h.
NSS 3.22 release notes
pk11_createpbev2algorithmid() now supports sec_oid_pkcs5_pbkdf2 with cipheralgtag and prfalgtag set to sec_oid_h
mac_sha256, sec_oid_h
mac_sha224, sec_oid_h
mac_sha384, or sec_oid_h
mac_sha512.
...on data ssl_setsignedcerttimestamps - set signed_certificate_timestamp tls extension data new types in secoidt.h the following are added to secoidtag: sec_oid_aes_128_gcm sec_oid_aes_192_gcm sec_oid_aes_256_gcm sec_oid_idea_cbc sec_oid_rc2_40_cbc sec_oid_des_40_cbc sec_oid_rc4_40 sec_oid_rc4_56 sec_oid_null_cipher sec_oid_h
mac_md5 sec_oid_tls_rsa sec_oid_tls_dhe_rsa sec_oid_tls_dhe_dss sec_oid_tls_dh_rsa sec_oid_tls_dh_dss sec_oid_tls_dh_anon sec_oid_tls_ecdhe_ecdsa sec_oid_tls_ecdhe_rsa sec_oid_tls_ecdh_ecdsa sec_oid_tls_ecdh_rsa sec_oid_tls_ecdh_anon sec_oid_tls_rsa_export sec_oid_tls_dhe_rsa_export sec_oid_tls_dhe_dss_export sec_oid_tls_dh_rs...
... new
macros in nss.h nss_rsa_min_key_size nss_dh_min_key_size nss_dsa_min_key_size nss_tls_version_min_policy nss_tls_version_max_policy nss_dtls_version_min_policy nss_dtls_version_max_policy in pkcs11t.h ckp_pkcs5_pbkd2_h
mac_gostr3411 - prf based on h
mac with gostr3411 for pbkdf (not supported) ckp_pkcs5_pbkd2_h
mac_sha224 - prf based on h
mac with sha-224 for pbkdf ckp_pkcs5_pbkd2_h
mac_sha256 - prf based on h
mac with sha-256 for pbkdf ckp_pkcs5_pbkd2_h
mac_sha384 - prf based on h
mac with sha-256 for pbkdf ckp_pkcs5_pbkd2_h
mac_sha512 - prf based on...
... h
mac with sha-256 for pbkdf ckp_pkcs5_pbkd2_h
mac_sha512_224 - prf based on h
mac with sha-512 truncated to 224 bits for pbkdf (not supported) ckp_pkcs5_pbkd2_h
mac_sha512_256 - prf based on h
mac with sha-512 truncated to 256 bits for pbkdf (not supported) in secoidt.h nss_use_alg_in_ssl nss_use_policy_in_ssl in ssl.h ssl_enable_signed_cert_timestamps in sslt.h ssl_max_extensions is updated to 13 notable changes in nss 3.22 nss c++ tests are built by default, requiring a c++11 compiler.
NSS 3.47 release notes
notable changes in nss 3.47 bug 1152625 - support aes hw acceleration on armv8 bug 1267894 - allow per-socket run-time ordering of the cipher suites presented in clienthello bug 1570501 - add c
mac to freebl and pkcs #11 libraries bugs fixed in nss 3.47 bug 1459141 - make softoken cbc padding removal constant time bug 1589120 - more cbc padding tests bug 1465613 - add ability to distrust certificates issued after a certain date for a specified root cert bug 1588557 - bad debug statement in tls13con.c bug 1579060 - mozilla::pkix tag definitions for issueruniqueid and subjectuniqueid...
...pk11load and stanpcertdb bug 1576307 - check mechanism param and param length before casting to mechanism-specific structs bug 1577953 - support longer (up to rfc maximum) hkdf outputs bug 1508776 - remove refcounting from sftk_freesession (cve-2019-11756) bug 1494063 - support tls exporter in tstclnt and selfserv bug 1581024 - heap overflow in nss utility "derdump" bug 1582343 - soft token
mac verification not constant time bug 1578238 - handle invald tag sizes for ckm_aes_gcm bug 1576295 - check all bounds when encrypting with seed_cbc bug 1580286 - nss rejects tls 1.2 records with large padding with sha384 h
mac bug 1577448 - create additional nested s/mime test messages for thunderbird bug 1399095 - allow nss-try to be used to test nspr changes bug 1267894 - libssl should allow...
... selecting the order of cipher suites in clienthello bug 1581507 - fix unportable grep expression in test scripts bug 1234830 - [cid 1242894][cid 1242852] unused values bug 1580126 - fix build failure on aarch64_be while building freebl/gcm bug 1385039 - build nspr tests as part of nss continuous integration bug 1581391 - fix build on openbsd/arm64 after bug #1559012 bug 1581041 -
mach-commands ->
mach-completion bug 1558313 - code bugs found by clang scanners.
... bug 1578751 - ensure a consistent style for pk11_find_certs_unittest.cc bug 1570501 - add c
mac to freebl and pkcs #11 libraries bug 657379 - nss uses the wrong oid for signaturealgorithm field of signerinfo in cms for dsa and ecdsa bug 1576664 - remove -mms-bitfields from mingw nss build.
nss tech note5
key); s = pk11_digestop(digestcontext, data, sizeof data); s = pk11_digestfinal(digestcontext, digest, &len, sizeof digest); /* now, digest contains the 'digest', and len contains the length of the digest */</big> clean up pk11_destroycontext(digestcontext, pr_true); pk11_freesymkey(symkey); pk11_freeslot(slot); you can also look at a sample program illustrating this h
mac include headers #include "nss.h" #include "pk11pub.h" make sure nss is initialized.the simplest init function, in case you don't need a nss database is nss_nodb_init(".") choose a h
mac mechanism.
... you can find a list of h
mac mechanisms in security/nss/lib/softoken/pkcs11.c - grep for ckf_sn_vr, and choose the mechanisms that contain h
mac in the name ck_mechanism_type h
macmech = ckm_md5_h
mac; <big>(for example)</big> choose a slot on which to to do the operation pk11slotinfo* slot = pk11_getbestslot(h
macmech, null); or pk11slotinfo* slot = pk11_getinternalkeyslot(); /* always returns int slot, may not be optimal */ prepare the key if using a raw key /* turn the raw key into a secitem */ secitem keyitem; keyitem.type = sibuffer; keyitem.data = /* ptr to an array of key bytes */ keyitem.len = /* length of the array of key bytes */ /* turn the secitem into a key object */ pk11symkey* symkey = pk1...
...1_importsymkey(slot, h
macmech, pk11_originunwrap, cka_sign, &keyitem, null); if generating the key - see section generate a symmetric key.
... secitem param; param.type = sibuffer; param.data = null; param.len = 0;</big> <big>create crypto context</big> pk11context* digestcontext = pk11_createcontextbysymkey(h
macmech, cka_sign, symkey, ¶m); <big>digest the data</big> <big>secstatus s = pk11_digestbegin(digestcontext); s = pk11_digestop(digestcontext, data, sizeof data); s = pk11_digestfinal(digestcontext, digest, &len, sizeof digest); /* now, digest contains the 'signed digest', and len contains t...
Python binding for NSS
rsuiteinfo.auth_algorithm sslciphersuiteinfo.auth_algorithm_name sslciphersuiteinfo.kea_type sslciphersuiteinfo.kea_type_name sslciphersuiteinfo.symmetric_cipher sslciphersuiteinfo.symmetric_cipher_name sslciphersuiteinfo.symmetric_key_bits sslciphersuiteinfo.symmetric_key_space sslciphersuiteinfo.effective_key_bits sslciphersuiteinfo.
mac_algorithm sslciphersuiteinfo.
mac_algorithm_name sslciphersuiteinfo.
mac_bits sslciphersuiteinfo.is_fips sslciphersuiteinfo.is_exportable sslciphersuiteinfo.is_nonstandard sslchannelinfo.protocol_version sslchannelinfo.protocol_version_str sslchannelinfo.protocol_version_enum sslchannelinfo.major_protocol_version sslchannelinfo.m...
...ion_range.py the following constants were added: nss.certdb_terminal_record nss.certdb_valid_peer nss.certdb_trusted nss.certdb_send_warn nss.certdb_valid_ca nss.certdb_trusted_ca nss.certdb_ns_trusted_ca nss.certdb_user nss.certdb_trusted_client_ca nss.certdb_govt_approved_ca ssl.srtp_aes128_cm_h
mac_sha1_32 ssl.srtp_aes128_cm_h
mac_sha1_80 ssl.srtp_null_h
mac_sha1_32 ssl.srtp_null_h
mac_sha1_80 ssl.ssl_ck_des_192_ede3_cbc_with_md5 ssl.ssl_ck_des_64_cbc_with_md5 ssl.ssl_ck_idea_128_cbc_with_md5 ssl.ssl_ck_rc2_128_cbc_export40_with_md5 ssl.ssl_ck_rc2_128_cbc_with_md5 ssl.ssl_ck_rc4_128_export40_with_md5 ssl.ssl_ck_rc4_128_with_...
... error_message (optional detailed message) error_code (alias for errno) error_desc (alias for strerror) certverifyerror derived from nsprerror, extends with: usages (bitmask of returned usages) log (certverifylog object) expose error lookup to sibling modules use
macros for bitmask_to_list functions to reduce code duplication and centralize logic.
... internal changes utilize pr_netaddrfamily() access
macro instead of explict access.
Tracing JIT
therefore an assembler contains several
machine-specific methods which are implemented in the accompanying nanojit/native*.* files.
... the architecture-specific methods found in these files are the only functions within nanojit or tracemonkey that emit raw bytes of
machine-code into memory.
...a closed loop is passed through the nanojit assembler and thereby compiled to native
machine code.
... executing when the monitor interprets a backward jump to a pc that it has a compiled trace of
machine code for, the monitor enters executing mode.
JSAPI reference
24 js::undefinedhandlevalue added in spidermonkey 24 js::truehandlevalue added in spidermonkey 38 js::falsehandlevalue added in spidermonkey 38 jsval constants: jsval_null obsolete since jsapi 42 jsval_void obsolete since jsapi 42 jsval_true obsolete since jsapi 42 jsval_false obsolete since jsapi 42 jsval_zero obsolete since jsapi 42 jsval_one obsolete since jsapi 42 function and
macros for checking the type of a jsval: enum jstype js_typeofvalue all of the following are deprecated.
...etofunction js_valuetoobject js_valuetosource js_convertvalue js_valuetoboolean obsolete since jsapi 28 js_valuetoecmaint32 obsolete since jsapi 26 js_valuetoecmauint32 obsolete since jsapi 28 js_valuetoint32 obsolete since jsapi 28 js_valuetonumber obsolete since jsapi 27 js_valuetostring obsolete since jsapi 28 js_valuetouint16 obsolete since jsapi 28 fast, unchecked type-casting
macros.
... these
macros must not be applied to values that are not known to be the right type.
...
macros js_default_xml_namespace_id obsolete since jsapi 21 jsfun_bound_method obsolete since javascript 1.8.5 jsfun_getter obsolete since javascript 1.8.5 jsfun_setter obsolete since javascript 1.8.5 jsfun_global_parent obsolete since javascript 1.8.5 jsfun_heavyweight obsolete since jsapi 19 jsfun_lambda obsolete since jsapi 19 c++ features class jsautorequest class jsautolocalrootsco...
WebReplayRoadmap
media elements (bug 1304146) web audio (bug 1304147) webrtc (bug 1304149) webassembly (bug 1481007) webgl (bug 1506467) support more operating systems (not yet implemented) only
macos is supported right now.
... web replay's architecture should allow it to work on any operating system: the os features needed are not specific to
macos or to posix systems.
... still, porting it to other posix systems (linux, android) will be easier than windows, due to the overlap with
macos.
... cloud integration (partially implemented) storing recordings in the cloud and interacting with them via the debugger could streamline several features described above: difficulties when recording and replaying on different
machines with incompatible firefox builds or operating systems will be smoothed out.
XPCOM glue
.h" linker flags: windows for older versions of the firefox sdk: -libpath:c:/path/to/sdk/lib xpcomglue_s.lib xpcom.lib nspr4.lib for recent versions of the firefox sdk (at least version 42, but possibly earlier versions as well): -libpath:c/path/to/sdk/lib xpcomglue_s.lib xul.lib nss3.lib mozcrt.lib -libpath:c:/path/to/sdk/lib xpcomglue.lib
mac -l/path/to/sdk/lib -l/path/to/sdk/bin -wl,-executable-path,/path/to/sdk/bin -lxpcomglue_s -lxpcom -lnspr4 when building against a xulrunner derived sdk, use: -l/path/to/sdk/lib -l/path/to/xulrunner-bin -wl,-executable_path,/path/to/xulrunner-bin -lxpcomglue_s -lxpcom -lnspr4 where 'xulrunner-bin' is either /library/frameworks/xul.framework/versions/current/ or /path/to/xulr...
... linux and
mac: make sure the gecko libraries are listed after your object (.o) files on the link line.
... linux and
mac: write the linker options exactly as stated (just replacing the /path/to/sdk/), otherwise you get an undefined symbol: ...ns_tabledrivenqi...qitableentry...
... on linux and
mac, add "-lmozalloc" exactly after "-lnspr4" in your linker invocation.
nsIFileProtocolHandler
inherits from: nsiprotocolhandler last changed in gecko 1.9.2 (firefox 3.6 / thunderbird 3.1 / fennec 1.0) method overview nsifile getfilefromurlspec(in autf8string url); autf8string geturlspecfro
mactualfile(in nsifile file); autf8string geturlspecfromdir(in nsifile file); autf8string geturlspecfromfile(in nsifile file); nsiuri newfileuri(in nsifile afile); nsiuri readurlfile(in nsifile file); methods getfilefromurlspec() converts the url string into the corresponding nsifile if possible.
...geturlspecfro
mactualfile() converts the nsifile to the corresponding url string.
... autf8string geturlspecfro
mactualfile( in nsifile file ); parameters file the nsifile to convert.
... note: callers should use geturlspecfro
mactualfile() if possible, for performance reasons.
Troubleshooting XPCOM components registration
note that even your version of msvc may matter; your test
machine may not have the c runtime libraries (msvcr70.dll / msvcp70.dll for msvc 7.0, and similarly named files for 7.1 and 8.0) available.
... this even means that if you are using a component stub, the stub needs to be compiled using a version which the
machine does support; most likely this means msvc 6.0.
... if you compiled the component with msvc 8.0 (2005) and are attempting to use it on a windows xp
machine or later, it will need a manifest embedded to find the runtime.
...
mac-specific hints use ktrace to see if firefox is trying to load your components.
Reference Manual
such a cast can easily by-pass nscomptrs
machinery, causing leaks, type mismatches, and other calamities.
... // old-style c/c++ casts by-pass |nscomptr|s
machinery and cause leaks...
...implementation details and debugging
machinery although it is a class, nscomptr has no virtual methods, and therefore, no vtable or vptr.
...in fact, if you used the ns_release
macro, p would be null by the time you got to the getnext call.
The Valgrind Test Job
it also works on
mac, though sometimes not as well.
...
mach valgrind-test see also the general instructions for using valgrind with mozilla code.
... when running locally, you may see errors that do not occur on the test
machines.
... errors in system libraries can generally be ignored, because they are out of our control and the kind of thing we suppress on the test
machines.
Using the Mozilla symbol server
replace c:\users\bsmedberg\symbols with an appropriate cache directory on your
machine.
... symchk: failed files = 4 symchk: passed + ignored files = 179 downloading symbols on linux /
mac os x if you are on linux and running gdb 7.9 or newer, you can use this gdb python script to automatically fetch symbols.
...if you want to reload symbols, you can try: nosharedlibrary sharedlibrary lib on older gdb and
mac os x there is a python script to download symbols from the mozilla symbol server for gdb, shark and other software that uses symbols.
...the platform is either 'darwin' (for
mac) or 'linux'.
Using js-ctypes
on windows, for example, you might load the system user32 library like this: var lib = ctypes.open("user32.dll"); on
mac os x, you can load the core foundation library from the core foundation framework like this: var corefoundation = ctypes.open("/system/library/frameworks/corefoundation.framework/corefoundation"); the returned object is a library object that you use to declare functions and data types for use with the loaded library.
... var lib = ctypes.open("user32"); calling carbon routines on
mac os x this example demonstrates how to use ctypes to call a carbon function on
mac os x.
...ypes.structtype("__cfallocator"); var cfallocatorref = __cfallocator.ptr; var unichar = ctypes.jschar; // uint16 with automatic conversion // define constants var kcfusernotificationstopalertlevel = 0; var kcfusernotificationnotealertlevel = 1; var kcfusernotificationcautionalertlevel = 2; var kcfusernotificationplainalertlevel = 3; // declare functions /* https://developer.apple.com/library/
mac/documentation/corefoundation/reference/cfusernotificationref/index.html#//apple_ref/c/func/cfusernotificationdisplaynotice * sint32 cfusernotificationdisplaynotice ( * cftimeinterval timeout, * cfoptionflags flags, * cfurlref iconurl, * cfurlref soundurl, * cfurlref localizationurl, * cfstringref alertheader, * cfstringref alertmessage, * cfstringref defaultbuttontitle *...
...usernotificationdisplaynotice = libcf.declare("cfusernotificationdisplaynotice", ctypes.default_abi, sint32, // return cftimeinterval, // timeout cfoptionflags, // flags cfurlref, // iconurl cfurlref, // soundurl cfurlref, // localizationurl cfstringref, // alertheader cfstringref, // alertmessage cfstringref // defaultbuttontitle ); /* https://developer.apple.com/library/
mac/documentation/corefoundation/reference/cftyperef/#//apple_ref/c/func/cfrelease * void cfrelease ( * cftyperef cf * ); */ var cfrelease = libcf.declare('cfrelease', ctypes.default_abi, void, // return cftyperef // cf ); /* https://developer.apple.com/library/
mac/documentation/corefoundation/reference/cfstringref/#//apple_ref/c/func/cfstringcreatewithcharacters * cfstringref cfstringcrea...
Plug-in Development Overview - Plugins
the following sections describe platform-specific discovery and registration: ms windows unix
mac os x ms windows on windows, plug-ins are found according to the section how gecko finds plug-ins.
...
mac os x
mac os x plug-ins are found according to the section how gecko finds plug-ins.
... use the npn_memflush method to free memory (
mac os only) before calling memory-intensive
mac toolbox calls.
...r descripton: reg_sz "description of the plugin" path: reg_sz "c:\..path to the plugin.dll" productname: reg_sz "the plugin name" vendor: reg_sz "the plugin author/vendor" version: reg_sz "0.5.whatever plugin version string" hklm/software/mozillaplugins/plugin-identifier/mimetypes add a sub-key for each mime type the plugin supports, with no values install to known locations on linux and
mac on linux and
mac, plug-ins are installed to well-known locations: linux: /usr/lib/mozilla/plugins or /usr/lib64/mozilla/plugins
mac: /library/internet plug-ins or ~/library/internet plug-ins ...
Debugger keyboard shortcuts - Firefox Developer Tools
command windows
macos linux close current file ctrl + w cmd + w ctrl + w search for a string in the current file ctrl + f cmd + f ctrl + f search for a string in all files ctrl + shift + f cmd + shift + f ctrl + shift + f find next in the current file ctrl + g cmd + g ctrl + g search for scripts by name ctrl + p cmd + p ctrl + p resume execution when at a breakpoint f8 f8 1 f8 step over f10 f10 1 f10 step into f11 f11 1 f11 step out shift + f11 shift + f11 1 shift + f11 toggle breakpoint on the currently selected line ctrl + b cmd + b ctrl + b toggle conditional breakpoint on the currentl...
...by default, on some
macs, the function key is remapped to use a special feature: for example, to change the screen brightness or the volume.
... note: before firefox 66, the combination ctrl + shift + s on windows and linux or cmd + opt + s on
macos would open/close the debugger.
... command windows
macos linux increase font size ctrl + + cmd + + ctrl + + decrease font size ctrl + - cmd + - ctrl + - reset font size ctrl + 0 cmd + 0 ctrl + 0 ...
Style Editor - Firefox Developer Tools
the style editor enables you to: view and edit all the stylesheets associated with a page create new stylesheets from scratch and apply them to the page import existing stylesheets and apply them to the page to open the style editor choose the "style editor" option from the "web developer" menu (which is a submenu in the "tools" menu on the
mac).
... in the editor preferences section of the developer tools settings, you can choose to use vim, e
macs, or sublime text key bindings instead.
... to select these, visit about:config, select the setting devtools.editor.keymap, and assign "vim" or "e
macs", or "sublime" to that setting.
... command windows
macos linux go to line ctrl + j, ctrl + g cmd + j, cmd + g ctrl + j, ctrl + g find in file ctrl + f cmd + f ctrl + f select all ctrl + a cmd + a ctrl + a cut ctrl + x cmd + x ctrl + x copy ctrl + c cmd + c ctrl + c paste ctrl + v cmd + v ctrl + v undo ctrl + z cmd + z ctrl + z redo ...
Web console keyboard shortcuts - Firefox Developer Tools
command windows
macos linux open the web console ctrl + shift + k cmd + opt + k ctrl + shift + k search in the message display pane ctrl + f cmd + f ctrl + f open the object inspector pane ctrl + click ctrl + click ctrl + click clear the object inspector pane esc esc esc focus on the command line ctrl + shift + k cmd + opt + k ctrl + shift + k clear output ctrl + shift + l ctrl + l from firefox 67: cmd + k ctrl + shift + l command line interpreter these shortcuts apply when you're in the command line interpreter.
... command windows
macos linux scroll to start of console output (only if the command line is empty) home home home scroll to end of console output (only if the command line is empty) end end end page up through console output page up page up page up page down through console output page down page down page down go backward through command history up arrow up arrow up arrow go forward through command history down arrow down arrow down arrow initiate reverse search through command history/step backwards through matching commands f9 ctrl + r f9 step forward through matching command history (after initiating reverse search) shift + f9 ctrl ...
... home ctrl + a ctrl + a move to the end of the line end ctrl + e ctrl + e execute the current expression enter return enter add a new line, for entering multiline expressions shift + enter shift + return shift + enter autocomplete popup these shortcuts apply while the autocomplete popup is open: command windows
macos linux choose the current autocomplete suggestion tab tab tab cancel the autocomplete popup esc esc esc move to the previous autocomplete suggestion up arrow up arrow up arrow move to the next autocomplete suggestion down arrow down arrow down arrow page up through autocomplete suggestions page up page up ...
... command windows
macos linux increase font size ctrl + + cmd + + ctrl + + decrease font size ctrl + - cmd + - ctrl + - reset font size ctrl + 0 cmd + 0 ctrl + 0 ...
Element: mousewheel event - Web APIs
note: on
macos, the scroll distance (and therefore the value of detail) is computed based on the accelerated scroll distance.
... on
mac, the value is complicated.
... if the device supports continuous scroll (e.g., trackpad of
macbook or mouse wheel which can be turned smoothly), the value is computed from accelerated scroll amount.
... on
mac, the detail attribute value is computed from accelerated scroll amout of native event.
SubtleCrypto.importKey() - Web APIs
for h
mac: pass an h
macimportparams object.
... raw you can use this format to import or export aes or h
mac secret keys, or elliptic curve public keys.
... json web key you can use json web key format to import or export rsa or elliptic curve public or private keys, as well as aes and h
mac secret keys.
....charcodeat(i); } return buf; } const pemencodedkey = `-----begin private key----- miievqibadanbgkqhkig9w0baqefaascbkcwggsjageaaoibaqdd0tpv/du2vftjvxj1t/gxtk39snbvroaeb/jkzxae+xa0h+3lhzaqiqnmfacibsgifzuvegb+7tqxwqpolofr/r7mvgwcsk98jyrvtved8zmzyyitsy7m2hcasqafikyoouv5vzyre87/leyzzbpf3bqq4idaqu+k9hj5fkuu6rroeohsdnjc+vddqlschxvmolz9vtt+ok9j4/tolwr4cg8khdlburcby6gpclo3dpu09sw+6ctx2cx4mkxx6o/0mmdt
macr/vu50kdrmlefezyowpaehhmfywybtuzbipvizvp8wfcsknmbfi1s9a9pdbqnebwwhhx3/hsebt2bagmbaaecggeabei1p6nf6zs7mjlybdv+pfl5rjl2coqly6tovvzvblmkcppjyfunipdk2tk2i897zaxfhpdbikmllm2hq6jzqkb110oantpdg0jxzmiihps32s1d/kilhjgff4hjd4nxp1l1dp8bupollorr2tym2x6dccgfw9lhtr8o03qp4hjn84vjgiwadyck83mgs4nrsnhkdiqynwx1ajkly51yek6rcrdmi0th2rxrrinoc35svv+apt2rkomgi52rwtesea1kzgfrxjq61rejif6p2vxecvhex6cwlx014lgk43z6q28p6hgeeve...
SubtleCrypto.verify() - Web APIs
to use h
mac, pass the string "h
mac" or an object of the form { "name": "h
mac" }.
..."valid" : "invalid"); } h
mac this code uses a secret key to verify a signature.
...*/ function getmessageencoding() { const messagebox = document.queryselector(".h
mac #message"); let message = messagebox.value; let enc = new textencoder(); return enc.encode(message); } /* fetch the encoded message-to-sign and verify it against the stored signature.
...*/ async function verifymessage(key) { const signaturevalue = document.queryselector(".h
mac .signature-value"); signaturevalue.classlist.remove("valid", "invalid"); let encoded = getmessageencoding(); let result = await window.crypto.subtle.verify( "h
mac", key, signature, encoded ); signaturevalue.classlist.add(result ?
Mozilla CSS extensions - CSS: Cascading Style Sheets
e -moz-force-broken-image-icon -moz-image-region o -moz-orient -moz-osx-font-smoothing -moz-outline-radius -moz-outline-radius-bottomleft -moz-outline-radius-bottomright -moz-outline-radius-topleft -moz-outline-radius-topright overflow-clip-box overflow-clip-box-block overflow-clip-box-inline s–z -moz-stack-sizing :-moz-system-metric(images-in-menus) :-moz-system-metric(
mac-graphite-theme) :-moz-system-metric(scrollbar-end-backward) :-moz-system-metric(scrollbar-end-forward) :-moz-system-metric(scrollbar-start-backward) :-moz-system-metric(scrollbar-start-forward) :-moz-system-metric(scrollbar-thumb-proportional) :-moz-system-metric(touch-enabled) :-moz-system-metric(windows-default-theme) -moz-user-focus -moz-user-input -moz-user-modify -...
... values -moz-initial -moz-appearance button button-arrow-down button-arrow-next button-arrow-previous button-arrow-up button-bevel checkbox checkbox-container checkbox-label checkmenuitem dialog groupbox listbox menuarrow menucheckbox menuimage menuitem menuitemtext menulist menulist-button menulist-text menulist-textfield menupopup menuradio menuseparator -moz-
mac-unified-toolbar -moz-win-borderless-glass -moz-win-browsertabbar-toolbox -moz-win-communications-toolbox -moz-win-glass -moz-win-media-toolbox -moz-window-button-box -moz-window-button-box-maximized -moz-window-button-close -moz-window-button-maximize -moz-window-button-minimize -moz-window-button-restore -moz-window-titlebar -moz-window-titlebar-maximized progressbar progresschunk...
...lete since gecko 1.9 -moz-bg-solidobsolete since gecko 1.9 <color> keywords -moz-activehyperlinktext -moz-hyperlinktext -moz-visitedhyperlinktext -moz-buttondefault -moz-buttonhoverface -moz-buttonhovertext -moz-default-background-color -moz-default-color -moz-cellhighlight -moz-cellhighlighttext -moz-field -moz-fieldtext -moz-dialog -moz-dialogtext -moz-dragtargetzone -moz-
mac-accentdarkestshadow -moz-
mac-accentdarkshadow -moz-
mac-accentface -moz-
mac-accentlightesthighlight -moz-
mac-accentlightshadow -moz-
mac-accentregularhighlight -moz-
mac-accentregularshadow -moz-
mac-chrome-active -moz-
mac-chrome-inactive -moz-
mac-focusring -moz-
mac-menuselect -moz-
mac-menushadow -moz-
mac-menutextselect -moz-menuhover -moz-menuhovertext -moz-win-communicationstext -mo...
...e-drop-feedback :-moz-tree-image :-moz-tree-indentation :-moz-tree-line :-moz-tree-progressmeter :-moz-tree-row :-moz-tree-row(hover) :-moz-tree-separator :-moz-tree-twisty u – x :-moz-ui-invalid :-moz-ui-valid :-moz-user-disabled ::-moz-viewport ::-moz-viewport-scroll :-moz-window-inactive ::-moz-xul-anonymous-block at-rules @-moz-document media features -moz-
mac-graphite-theme -moz-maemo-classic -moz-device-pixel-ratio -moz-os-version -moz-scrollbar-end-backward -moz-scrollbar-end-forward -moz-scrollbar-start-backward -moz-scrollbar-start-forward -moz-scrollbar-thumb-proportional -moz-touch-enabled -moz-windows-accent-color-in-titlebar -moz-windows-classic -moz-windows-compositor -moz-windows-default-theme -moz-windows-glass -moz-windows-t...
font-smooth - CSS: Cascading Style Sheets
it only works on
mac os x/
macos.
...it only works on
mac os x/
macos.
...itial valueautoapplies toall elementsinheritedyescomputed valueas specifiedanimation typediscrete formal syntax auto | never | always | <absolute-size> | <length>where <absolute-size> = xx-small | x-small | small | medium | large | x-large | xx-large | xxx-large examples basic usage example the following example shows the safari/chromium and firefox equivalents that turn on font-smoothing on
macos.
... for those of you not on a
macos system, here is a screenshot (the live version appears later on): html <p>without font smoothing</p> <p class="smoothed">with font smoothing</p> css html { background-color: black; color: white; font-size: 3rem; } p { text-align: center; } .smoothed { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } result specifications not part of any standard.
<input type="button"> - HTML: Hypertext Markup Language
a simple button we'll begin by creating a simple button with a click event handler that starts our
machine (well, it toggles the value of the button and the text content of the following paragraph): <form> <input type="button" value="start
machine"> </form> <p>the
machine is stopped.</p> const button = document.queryselector('input'); const paragraph = document.queryselector('p'); button.addeventlistener('click', updatebutton); function updatebutton() { if (button.value === 'start
machine'...
...) { button.value = 'stop
machine'; paragraph.textcontent = 'the
machine has started!'; } else { button.value = 'start
machine'; paragraph.textcontent = 'the
machine is stopped.'; } } the script gets a reference to the htmlinputelement object representing the <input> in the dom, saving this refence in the variable button.
... <form> <input type="button" value="start
machine" accesskey="s"> </form> <p>the
machine is stopped.</p> const button = document.queryselector('input'); const paragraph = document.queryselector('p'); button.addeventlistener('click', updatebutton); function updatebutton() { if (button.value === 'start
machine') { button.value = 'stop
machine'; paragraph.textcontent = 'the
machine has started!'; } else { button.value = 's...
...tart
machine'; paragraph.textcontent = 'the
machine is stopped.'; } } note: the problem with the above example of course is that the user will not know what the access key is!
HTML documentation index - HTML: Hypertext Markup Language
85 <data> element, html, html text-level semantics, reference, web the html <data> element links a given piece of content with a
machine-readable translation.
... 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 is an attempt to provide a simpler way of annotating html elements with
machine-readable tags than the similar approaches of using rdfa and classic microformats.
...35 preloading content with rel="preload" guide, html, javascript, link, media, performance, web performance, as, preload, rel the preload value of the <link> element's rel attribute lets you declare fetch requests in the html's <head>, specifying resources that your page will need very soon, which you want to start loading early in the page lifecycle, before browsers' main rendering
machinery kicks in.
Microformats - HTML: Hypertext Markup Language
in addition to being
machine-readable, their format is designed to be easily read by humans.
...p-name entry name/title p-author who wrote the entry, optionally embedded h-card dt-published when the entry was published p-summary short entry summary e-content full content of the entry parsed reply h-entry example <div class="h-entry"> <p><span class="p-author h-card"> <a href="https://quickthoughts.jgregorymcverry.com/profile/jg
mac1106" ><img class="u-photo" src="https://quickthoughts.jgregorymcverry.com/file/2d6c9cfed7ac8e849f492b5bc7e6a630/thumb.jpg"/></a> <a class="p-name u-url" href="https://quickthoughts.jgregorymcverry.com/profile/jg
mac1106">greg mcverry</a></span> replied to <a class="u-in-reply-to" href="/docs/web/html/microformats">a post on <strong>developer.mozilla.org</strong> </a>: </p> <p clas...
...s="p-name e-content">hey thanks for making this microformats resource</p> <p> <a href="https://quickthoughts.jgregorymcverry.com/profile/jg
mac1106">greg mcverry</a> published this <a class="u-url url" href="https://quickthoughts.jgregorymcverry.com/2019/05/31/hey-thanks-for-making-this-microformats-resource"><time class="dt-published" datetime="2019-05-31t14:19:09+0000">31 may 2019</time></a></p> </div> { "items": [ { "type": [ "h-entry" ], "properties": { "in-reply-to": [ "/docs/web/html/microformats" ], "name": [ "hey thanks for making this microformats resource" ], "url": [ "https://quickthoughts.jgregorymcverry.com/2019/05/31/hey-thanks-for-making-this-microformats-resource" ], "published": [ "2019-05-31t14:19:09+0000" ], ...
...oformats resource", "lang": "en" } ], "author": [ { "type": [ "h-card" ], "properties": { "name": [ "greg mcverry" ], "photo": [ "https://quickthoughts.jgregorymcverry.com/file/2d6c9cfed7ac8e849f492b5bc7e6a630/thumb.jpg" ], "url": [ "https://quickthoughts.jgregorymcverry.com/profile/jg
mac1106" ] }, "lang": "en", "value": "greg mcverry" } ] }, "lang": "en" } h-feed the h-feed is a stream or feed of h-entry posts, like complete posts on a home page or archive pages, or summaries or other brief lists of posts example h-feed <div class="h-feed"> <h1 class="p-name">microformats blogs</h1> <article class="h-...
Cross-Origin Resource Sharing (CORS) - HTTP
sources/public-data/'; xhr.open('get', url); xhr.onreadystatechange = somehandler; xhr.send(); this performs a simple exchange between the client and the server, using cors headers to handle the privileges: let's look at what the browser will send to the server in this case, and let's see how the server responds: get /resources/public-data/ http/1.1 host: bar.other user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.14; rv:71.0) gecko/20100101 firefox/71.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip,deflate connection: keep-alive origin: https://foo.example the request header of note is origin, which shows that the invocation is coming from https://foo.example.
...the first exchange is the preflight request/response: options /doc http/1.1 host: bar.other user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.14; rv:71.0) gecko/20100101 firefox/71.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip,deflate connection: keep-alive origin: http://foo.example access-control-request-method: post access-control-request-headers: x-pingother, content-type http/1.1 204 no content date: mon, 01 dec 2008 01:15:...
.../2 access-control-allow-origin: https://foo.example access-control-allow-methods: post, get, options access-control-allow-headers: x-pingother, content-type access-control-max-age: 86400 vary: accept-encoding, origin keep-alive: timeout=2, max=100 connection: keep-alive once the preflight request is complete, the real request is sent: post /doc http/1.1 host: bar.other user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.14; rv:71.0) gecko/20100101 firefox/71.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip,deflate connection: keep-alive x-pingother: pingpong content-type: text/xml; charset=utf-8 referer: https://foo.example/examples/preflightinvocation.html content-length: 55 origin: https://foo.example pragma...
... here is a sample exchange between client and server: get /resources/credentialed-content/ http/1.1 host: bar.other user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.14; rv:71.0) gecko/20100101 firefox/71.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip,deflate connection: keep-alive referer: http://foo.example/examples/credential.html origin: http://foo.example cookie: pageaccess=2 http/1.1 200 ok date: mon, 01 dec 2008 01:34:52 gmt server: apache/2 acce...
User-Agent - HTTP
platform describes the native platform the browser is running on (windows,
mac, linux, android, etc.), and if it's a mobile phone.
... examples mozilla/5.0 (windows nt 6.1; win64; x64; rv:47.0) gecko/20100101 firefox/47.0 mozilla/5.0 (
macintosh; intel
mac os x x.y; rv:42.0) gecko/20100101 firefox/42.0 chrome ua string the chrome (or chromium/blink-based engines) user agent string is similar to firefox’s.
... examples mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko) chrome/51.0.2704.106 safari/537.36 opr/38.0.2220.41 older, presto-based opera releases used: opera/9.80 (
macintosh; intel
mac os x; u; en) presto/2.2.15 version/10.00 opera/9.60 (windows nt 6.0; u; en) presto/2.1.1 safari ua string in this example, the user agent string is mobile safari’s version.
... examples mozilla/5.0 (iphone; cpu iphone os 13_5_1 like
mac os x) applewebkit/605.1.15 (khtml, like gecko) version/13.1.1 mobile/15e148 safari/604.1 internet explorer ua string examples mozilla/5.0 (compatible; msie 9.0; windows phone os 7.5; trident/5.0; iemobile/9.0) crawler and bot ua strings examples googlebot/2.1 (+http://www.google.com/bot.html) specifications specification title rfc 7231, section 5.5.3: user-agent hypertext transfer protocol (http/1.1): semantics and content rfc 2616, section 14.43: user-agent hypertext transfer protocol -- http/1.1 ...
eval() - JavaScript
if you run eval() with a string that could be affected by a malicious party, you may end up running malicious code on the user's
machine with the permissions of your webpage / extension.
... additionally, modern javascript interpreters convert javascript to
machine code.
...thus, any use of eval() will force the browser to do long expensive variable name lookups to figure out where the variable exists in the
machine code and set its value.
... additonally, new things can be introduced to that variable through eval() such as changing the type of that variable, forcing the browser to re-evaluate all of the generated
machine code to compensate.
Web video codec guide - Web media technologies
supported bit rates varies by level supported frame rates varies by level; up to 300 fps is possible compression lossy dct-based algorithm, though it's possible to create lossless
macroblocks within the image supported frame sizes up to 8,192 x 4,320 pixels supported color modes some of the more common or interesting profiles: profile color depths chroma subsampling constrained baseline (cbp) 8 4:2:0 baseline (bp) 8 4:2:0 ...
... for example, each coding tree unit (ctu)—similar to the
macroblock used in previous codecs—consists of a tree of luma values for each sample as well as a tree of chroma values for each chroma sample used in the same coding tree unit, as well as any required syntax elements.
...the biggest drawback of all, however, is that it is not supported by safari, leaving theora unavailable not only on
macos but on all those millions and millions of iphones and ipads.
...of note, however, is that safari supports neither webm nor vp9, so if you choose to use vp9, be sure to offer a fallback format such as avc or hevc for iphone, ipad, and
mac users.
Codecs used by WebRTC - Web media technologies
max-dpb if specified and supported, max-dpb indicates the maximum decoded picture buffer size, given in units of 8/3
macroblocks.
... max-fs if specified and supported by the software, max-fs specifies the maximum size of a single video frame, given as a number of
macroblocks.
... max-mbps if specified and supported by the software, this value is an integer specifying the maximum rate at which
macroblocks should be processed per second (in
macroblocks per second).
... max-smbps if specified and supported by the software, this specifies an integer stating the maximum static
macroblock processing rate in static
macroblocks per second (using the hypothetical assumption that all
macroblocks are static
macroblocks).
Developing for Firefox Mobile - Archive of obsolete content
this tutorial explains how to run sdk add-ons on an android device connected via usb to your development
machine.
... enable usb debugging on the device (step 2 of this link only) on the development
machine: install version 1.5 or higher of the add-on sdk install the correct version of the android sdk for your device using the android sdk, install the android platform tools next, attach the device to the development
machine via usb.
...for example, on
mac os x or linux you can use a command like the one below to filter only the lines of console output: adb logcat | grep console you can experiment with different filter strings on adb logcat to focus in on the lines relevant to you.
StringView - Archive of obsolete content
advanced examples edit an ascii part contained within a binary file let's compile this c program: #include <stdio.h> int main () { printf("hello world!\n"); return 0; } in a 64-bit
machine it will result in an output like the following first alert.
...araaaaaaaasayaaaaaaaadaaaalwaaaagaaaaaaaaagaaaaaaaaaajaaaaawaaaaaaaaaaaaaaaaaaaaaaaaaygaaaaaaaad4caaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaqaaakaaaaaaaaaaaaaaaaaaaaaaaamaagacakaaaaaaaaaaaaaaaaaaaaaaaamaawa8akaaaaaaaaaaaaaaaaaaaaaaaamababgakaaaaaaaaaaaaaaaaaaaaaaaamabqcaakaaaaaaaaaaaaaaaaaaaaaaaamabgdgakaaaaaaaaaaaaaaaaaaaaaaaamabwaea0aaaaaaaaaaaaaaaaaaaaaaaa
macaaoa0aaaaaaaaaaaaaaaaaaaaaaaa
macqbia0aaaaaaaaaaaaaaaaaaaaaaaa
macgbga0aaaaaaaaaaaaaaaaaaaaaaaa
macwcoa0aaaaaaaaaaaaaaaaaaaaaaaamadadqa0aaaaaaaaaaaaaaaaaaaaaaaamadqaqbeaaaaaaaaaaaaaaaaaaaaaaaamadgcubuaaaaaaaaaaaaaaaaaaaaaaaamadwcgbuaaaaaaaaaaaaaaaaaaaaaaaamaeac0buaaaaaaaaaaaaaaaaaaaaaaaamaeqdobuaaaaaaaaaaaaaaaaaaaaaaaamaegdgbmaaaaaaaaaaaaaaaaaaaaaaaamaewdobmaaaaaaaaaaaaaaaaaaaaaaaamafadwbmaaaaaaaaaaa...
...*/ location.assign(url.createobjecturl(new blob([swhelloworld.buffer], { "type": "application\/x-executable" }))); note: the executable above has been compiled with gnu gcc 4.8.1 running on a 64-bit
machine with arch gnu/linux.
Creating custom Firefox extensions with the Mozilla build system - Archive of obsolete content
on other platforms on other platforms, namely linux and
macos, the process is much easier.
...the main advantage of using an extension is that it is easy to package everything up and install it on another
machine.
...add the following line at the end of the file: ac_add_options --enable-extensions=default,myextension now launch make from the mozilla root: make -f client.mk build even if you have an up-to-date firefox build, you'll have to wait a while for make to recurse over the entire mozilla source tree looking for new stuff (on my
machine, which is pretty fast, this takes a good 10-15 minutes).
Setting Up a Development Environment - Archive of obsolete content
it can be installed on
mac os x as part of the xcode tools package, and on windows with cygwin.
... for
mac os x developers, there is also a way to set up "shortcuts".
... you can do this by opening the automator application, choosing run shell script and then entering the profile-loading script in the textbox: /applications/firefox.app/contents/
macos/firefox-bin -no-remote -p myprofile > /dev/null & you can change "/dev/null" to a file location, in case you want to see dump output from firefox, or other extensions.
The Essentials of an Extension - Archive of obsolete content
if our extension needed to look differently on different systems, we could change the manifest file so that it looks like this: content xulschoolhello content/ skin xulschoolhello classic/1.0 skin/unix/ skin xulschoolhello classic/1.0 skin/
mac/ os=darwin skin xulschoolhello classic/1.0 skin/win/ os=winnt locale xulschoolhello en-us locale/ this way we can have separate skins for windows,
mac os x, and linux (plus other unix-like systems), each defined in a separate directory.
...same goes with "w" and the window menu on
mac os.
...issue the following command from within the extension root directory on linux or
mac os x: zip -r ../xulschoolhello2.xpi * on windows, use a zip tool to compress all files and subdirectories within the extension root directory.
Setting up an extension development environment - Archive of obsolete content
on ubuntu (and many other linux distributions): /usr/bin/firefox -no-remote -p dev on other distributions of linux/unix: /usr/local/bin/firefox -no-remote -p dev on
macos mavericks (10.9) and newer: /applications/firefox.app/contents/
macos/firefox-bin -no-remote -p dev & on windows: start -> run "%programfiles%\mozilla firefox\firefox.exe" -no-remote -p dev on windows 64 bit: start -> run "%programfiles(x86)%\mozilla firefox\firefox.exe" -no-remote -p dev to start thunderbird or seamonkey instead of firefox, substitute thunderbird, or seamonkey for the f...
...(linux,
mac os x, windows instructions.) you'll see the list of available user profiles one which is default (stable) and other (unstable) profile(s) created automatically when you run other versions of firefox earlier.
... the contents of this file should be the path to the directory that contains your install.rdf file, for example /full/path/to/yourextension/ on
mac and linux, and c:\full\path\to\yourextension\ on windows.
List of Mozilla-Based Applications - Archive of obsolete content
celtx media tool cenzic hailstorm vulnerability assessment and management tool uses gecko chatzilla irc client standalone version (xulrunner) chromium and google chrome web browser uses mozilla nss and npapi libraries chromeless browser with html-based interface classilla mozilla browser for
mac os 9 clines a clone of color lines (game) standalone version cloud web operating system cloud browse iphone/ipad/ipod touch browser seems to be firefox running remotely on servers that people access through device conkeror keyboard-oriented browser convertigo enterprise mashup server server tool for transactional web sc...
... lotus notes / sametime groupware the latest version of ibm lotus notes and sametime can embed xul applications lucidor e-book reader lx-office accounting tool looks like it makes at least some use of xul maavis simple ui & communications for accessibility framework designed for elderly people with dementia but other applications
mac os x operating system makes use of some mpl files such as libsecurity_asn1 maemo browser browser for maemo internet tablet development name is microb magooclient business process management tool uses mozilla rhino mantra security tool mccoy secure update tool for add-ons xulrunner application mediacoder media converter...
... authoring tool talend open studo data integration software seems to use xulrunner talking clipboard text to speech software read epub books, web pages, chm, pdf, ms word, rtf, rss feeds taskpool productivity telasocial kiosk app uses xulrunner telekast teleprompter tenfourfox browser for powerpc-based
macs timberwolf browser for amiga os4 based on firefox - project page mozilla thunderbird email 47 million dl tomtom home 2 pc application to manage tomtom gps devices review article from gps magazine; over 2.4m users topstyle html, xhtml and css editor seems to have optional gecko embedding but doesn't use it by default toxtox ...
Structure of an installable bundle - Archive of obsolete content
for example: binary-component components/windows/mycomponent.dll abi=winnt_x86-msvc binary-component components/
mac/mycomponent.dylib abi=darwin_x86-gcc3 binary-component components/
mac/mycomponent64.dylib abi=darwin_x86_64-gcc3 binary-component components/linux/mycomponent.so abi=linux_x86-gcc3 this also means you can no longer have platform-specific preference files in your bundle.
...for example, if a plugin vendor wanted to make a plugin available for consumer computers running linux(of the form: /platform/linux*/),
macintosh(of the form: /platform/darwin*/), and windows(of the form: /platform/win*/), it would provide the following files: /platform/linux_x86-gcc3/plugins/libmyplugin.so /platform/winnt_x86-msvc/plugins/myplugin.dll /platform/darwin_ppc-gcc3/plugins/libmyplugin.dylib because xpt files are not platform-specific, any associated xpt files would go in the generic components directory: /components/...
...ch as code which uses the windows registry from script), it can also use just the operating system identifier as a platform-subdirectory: /platform/winnt/components/registerdoctype.js when platform-specific jar files are used, each platform directory should have its own chrome.manifest file: chrome.manifest chrome/mytheme-base.jar platform/darwin/chrome.manifest platform/darwin/chrome/mytheme-
mac.jar platform/winnt/chrome.manifest platform/winnt/chrome/mytheme-win.jar the app/extension loader processes the base directory first, followed by the applicable platform directories (first /{os_target}/, then /{os_target}_{target_xpcom_abi}/).
Making a Mozilla installation modifiable - Archive of obsolete content
although jar archives are binary files, mozilla's ui is not compiled into
machine code; mozilla instead builds its ui from the non-compiled files in the archive each time it starts up.
...on unix-like operating systems with bash-like shells, you can run the following command within that directory to accomplish this task: for file in *.jar; do unzip $file; done on operating systems with dos-like shells, the following command accomplishes this task: for %file in (*.jar); do unzip %file note that there are platform-specific files — en-
mac.jar, en-unix.jar, and en-win.jar — in that directory.
...make sure you start the modified copy and not the default installation on your
machine, and shut down "quick launch" if you are on windows and that feature is enabled.
Creating a hybrid CD - Archive of obsolete content
the cd should support hfs (
macintosh), joliet (win32), and rock ridge (unix).
... many mozilla files have long file names which makes creating the cd on a
macintosh difficult because the hfs filesystem limits the length of file names to 32 characters.
...ile" .zip raw 'sitx' 'zip ' "zip file" .gz raw 'sitx' 'zip ' "gzip file" .tgz raw 'sitx' 'zip ' "tar.gz gzip file" .tar raw 'sitx' 'tarf' "tar file" .tif raw '8bim' 'tiff' "photoshop tiff image" .doc raw 'mswd' 'wdbn' "word file" .mov raw 'tvod' 'moov' "quicktime movie" .bin raw 'sitx' 'bina' "
mac binary" .h ascii 'cwie' 'text' "c/c++ header file" .c ascii 'cwie' 'text' "c source file" .cp ascii 'cwie' 'text' "c++ source file" .cpp ascii 'cwie' 'text' "c++ source file" .exp ascii 'cwie' 'text' "symbol export file" .mcp raw 'cwie' 'mmpr' "codewarrior project file" .r ascii 'mps ' 'text' "rez file" .html ...
Building Firefox with Rust code - Archive of obsolete content
if you don't have rust already, use the rustup tool to install it and update as new releases become available, or use the ./
mach bootstrap command.
...this is automated by the
mach vendor command, which installs the dependencies in third_party/rust.
... ./
mach gtest rust.* look for the rust.callfromcpp test to pass, along with any others.
Creating a Help Content Pack - Archive of obsolete content
strings recognized from 1.8 onward are win,
mac, os2, and unix; more will be added as required.
...an example of how to use this attribute follows: <!-- assumptions: win-toc.rdf contains windows- and os/2-specific info, unix-toc.rdf contains linux- and
mac-specific info.
... --> <rdf:li> <rdf:description nc:panelid="toc" nc:platform="win os2" nc:datasources="win-toc.rdf"/> </rdf:li> <rdf:li> <rdf:description nc:panelid="toc" nc:platform="unix
mac" nc:datasources="unix-toc.rdf"/> </rdf:li> there's one final element to add inside rdf:seq to complete the content pack descriptor file: an element to describe the help viewer's search function.
Mozilla Application Framework in Detail - Archive of obsolete content
you can create applications using our framework that either have a native look and feel for each os, or one which is identical on
macs, pc's or unix operating systems.
...on the developer side, xpcom lets you to write components in c++, javascript, python, or other languages for which special bindings have been created, and compile and run those components on dozens of different platforms, including these and others where mozilla itself is supported: microsoft windows gnu/linux hp-ux aix solaris openvms
mac os x *bsd the flexibility to reuse the xpcom components from the gecko library and develop new components that run on different platforms can make your application development faster, more productive, and easier to maintain.
...tools including various xpcom manager interfaces, smart pointers, special string classes, and an extensive collection of
macros that make your c++ implementations easy to write and extend.
Running Tamarin acceptance tests - Archive of obsolete content
-redux/test/acceptance $ export asc=/users/build/hg/tamarin-redux/utils/asc.jar $ export builtinabc=/users/build/hg/tamarin-redux/generated/builtin.abc $ export shellabc=/users/build/hg/tamarin-redux/generated/shell_toplevel.abc $ export avm=/users/build/hg/tamarin-redux/objdir-release/shell/avmshell $ python runtests.py tamarin tests started: 2010-09-28 10:37:06.410676 current configuration: x64-
mac-tvm-release avm version: 5260:6d1899261bac executing 2532 tests against vm: /users/build/hg/builds/5260-6d1899261bac/
mac/avmshell_64 2532 running abcasm/abs_helper.as skipping...
...notes on using acceptance runtests.py threading in order to speed up the execution time of the acceptance testsuite, the runtests script automatically detects the number of cores on the
machine and sets an equivalent number of threads.
...if you've correctly edited and run the android-vars.sh script mentioned on the tamarin build documentation page you should already be pathed to the adb executable in the public sdk/ndk, but if not it exists at /android-public/android-sdk-
mac_86/platform-tools.
Tamarin-central rev 703:2cee46be9ce0 - Archive of obsolete content
testing summary acceptance tests have passed on the following supported platforms: * windows, 32 & 64 bit *
mac ox x ppc & intel, 32 bit * linux, 32 bit * windows mobile arm version asc-4200 of the actionscript compiler was used for all tests.
... osdefault-jitinterpretedaggressive jit
mac (os/x 10.4 intel, 2ghz dual core)tc-703 vs tc-700: 0.0%tc-703 vs flash10: 1.1% slowertc-703 vs tc-700: 17.4% fastertc-703 vs flash10: 165.3% fastertc-703 vs tc-700: 0.1% fastertc-703 vs flash10: 0.8% slower windows (xp pro, 2.13ghz dual core)tc-703 vs tc-700: 0.6% fastertc-703 vs flash10: 0.8% fastertc-703 vs tc-700: 16.4% fastertc-703 vs flash10: 148.7% fastertc-703 vs tc-700: 0.1% slowertc-703 vs flash10: 5.2% faster linux (ubuntu linux...
... osdefault-jitinterpretedaggressive jit
mac (os/x 10.4 intel, 2ghz dual core)tc-703 vs tc-700: 2.0% smallertc-703 vs tc-663: 7.8% smallertc-703 vs tc-700: 7.1% largertc-703 vs tc-663: 14.6% largertc-703 vs tc-700: 16.4% largertc-703 vs tc-663: 2.1% larger windows (xp pro, 2.13ghz dual core)tc-703 vs tc-700: 3.2% largertc-703 vs tc-663: 7.6% largertc-703 vs tc-700: 3.9% largertc-703 vs tc-663: 12.4% largertc-703 vs tc-700: 3.3% lar...
Windows stub installer - Archive of obsolete content
note that there are several
macro strings--a
macro name wrapped in dollar ($) signs--which may be used in the .jsts, including: $version$ which is replaced at packages time with the browser version.
... other
macro strings listed in makejs.pl can be found by searching for "version", which is one of the
macro strings, until you find the line $line =~ s/\$version\$/$inversion/i; other
macro strings are grouped in this section.
... as with "version", the
macro name will be the first string in the substitution statement on each line.
gestalt - Archive of obsolete content
gestalt (
macintosh only) retrieves information about the operating environment.
...description the gestalt method is a wrapper for the gestalt function of the
macintosh toolbox.
... for information on that function, see inside
macintosh: operating system utilities.
getFolder - Archive of obsolete content
name must be one of the following (info is based on mozilla 1.7 stable branch, might also work in other versions): "chrome" "components" "current user" "defaults" "file:///" "os drive" "plugins" "preferences" "profile" "program" "temporary" "
mac apple menu" "
mac control panel" "
mac desktop" "
mac documents" "
mac extension" "
mac fonts" "
mac shutdown" "
mac startup" "
mac system" "
mac trash" "
mac preferences" "
macosx default download" "
macosx home" "
macosx internet sites" "
macosx local ap...
...plications" "
macosx local desktop" "
macosx local documents" "
macosx local frameworks" "
macosx local internet plugin" "
macosx local preferences" "
macosx movie documents" "
macosx music documents" "
macosx picture documents" "
macosx user applications" "
macosx user desktop" "
macosx user documents" "
macosx user frameworks" "
macosx user internet plugin" "
macosx user preferences" "unix lib" "unix local" "windows" "win appdata" "win common files" "win desktop" "win desktop common" "win program files" "win programs" ...
...the folders whose names start with "win", "
mac", or "unix" are specific to those platforms.
accesskey - Archive of obsolete content
on non-
macintosh platforms, the character on the element's label matching the accesskey is underlined.
...when the user presses a modifier key specific to the platform (eg, control* on windows, command* on
macintosh) and the access key, the element will be focused and/or activated from anywhere in the window.
... on the
macintosh, labels are never underlined, however accesskeys can still be used by pressing the letter combined with the command key.
Menus - Archive of obsolete content
on the
macintosh, the menubar is placed along the top of the screen.
...the first menubar encountered when parsing the xul window will be used as the main menu bar for the window, and on the
macintosh, will be hidden from the main window and transformed into a native menu bar at the top of the screen.
... </menu> </menubar> it's possible to place other elements on a menubar, but remember that they will not appear on a
macintosh.
Accesskey display rules - Archive of obsolete content
xul elements don't display any accesskeys on
mac xul elements don't display any accesskeys on
mac.
... because
macos x doesn't have the conception of accesskey function on its native widgets/applications.
... basic accesskey display rules on non-
mac platforms, a character which is same as its accesskey is underlined.
Simple Menu Bars - Archive of obsolete content
you can customize the menus on the menubar to have whatever you want on them on all platforms except the
macintosh.
... this is because the
macintosh has its own special menu along the top of the screen controlled by the system.
...you can place any element on a menupopup, however they will be ignored on a
macintosh.
XML - Archive of obsolete content
those authors may be people or
machines, but they must use the new language if the readers are to understand what sort of data it is they are reading.
...this consistency makes it possible for both humans and
machines to read memoml memos, to "understand" the english marked up with memoml and to do what they will with it.
... this is what xml is: a meta-language for defining languages appropriate to the tasks at hand; it's structured in a way that makes it accessible as "information" to both humans and
machines.
Building XULRunner with Python - Archive of obsolete content
development
machine setup first a word of warning that zonealarm has exhibited memory leaks that cause build
machines to crash with rather spurious errors.
... deploying python must be installed on the target
machine.
...don't copy any.pyo files that exist for python modules in the application or errors will occur on the target
machine.
2006-11-17 - Archive of obsolete content
preed reports that the
machine with autoconf is back up.
... mozilla scheduled downtime - 11/14/2006, 9:30pm - 1:00am pst a number of
machines are going to go down.
... a full list can be found here mozilla/configure regeneration down preed says that the
machine that does autoconf went down during a power outage.
NPAPI plugin developer guide - Archive of obsolete content
efault plug-in using html to display plug-ins plug-in display modes using the object element for plug-in display nesting rules for html elements using the appropriate attributes using the embed element for plug-in display using custom embed attributes plug-in references plug-in development overview writing plug-ins registering plug-ins ms windows unix
mac os x drawing a plug-in instance handling memory sending and receiving streams working with urls getting version and ui information displaying messages on the status line making plug-ins scriptable building plug-ins building, platforms, and compilers building carbonized plug-ins for
mac os x type libraries installing plug-ins native installers xpi plug-ins i...
...nstallations plug-in installation and the windows registry initialization and destruction initialization instance creation instance destruction shutdown initialize and shutdown example drawing and event handling the npwindow structure drawing plug-ins printing the plug-in setting the window getting information windowed plug-ins
mac os windows unix event handling for windowed plug-ins windowless plug-ins specifying that a plug-in is windowless invalidating the drawing area forcing a paint message making a plug-in opaque making a plug-in transparent creating pop-up menus and dialog boxes event handling for windowless plug-ins streams receiving a stream telling the plug-in when a stream is created tel...
...andom-access mode sending the stream in file mode sending a stream creating a stream pushing data into the stream deleting the stream example of sending a stream urls getting urls getting the url and displaying the page posting urls posting data to an http server uploading files to an ftp server sending mail memory allocating and freeing memory
mac os flushing memory (
mac os only) version, ui, and status information displaying a status line message getting agent information getting the current version finding out if a feature exists reloading a plug-in ...
NP_Port - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary used on
mac os only contains information required by the window field of an npwindow structure.
... syntax typedef struct np_port { cgrafptr port; /* grafport */ int32 portx; /* position inside the topmost window */ int32 porty; } np_port; fields the data structure has the following fields: port standard
mac os port into which the plug-in should draw.
... description on
mac os, the window field of an npwindow structure points to an np_port object, which is allocated by the browser.
Building a Theme - Archive of obsolete content
note: firefox for
mac os x has changed some directories so the guide may be obsolete.
...the location differs by operating system: linux: /usr/lib/mozillafirefox/chrome/classic.ja or /usr/lib/firefox-*.*.*/omni.ja windows: \program files\mozilla firefox\omni.ja
mac os x: /applications/firefox.app/contents/
macos/omni.ja now, open (or unzip) this file into the directory you created.
... on
mac os or linux, you can use the command-line zip tool: zip -r my_theme.xpi install.rdf chrome.manifest browser communicator global mozapps or, if you have 7-zip installed, you can use that for zipping it up: 7z a -tzip my_theme.xpi chrome chrome.manifest note: the command-line tool will update an existing zip file, not replace it - so if you have files you've deleted from your theme, be sure t...
Theme changes in Firefox 3 - Archive of obsolete content
mac os x file description of change browser/themes/pinstripe/browser/tabbrowser/tabdragindicator.png removed superfluous blank pixels from the edges, so that the image is smaller.
... may or may not affect other
mac themes that use it.
...
mac os x
mac os x themes for firefox 3 should add these two rules to the end of chrome://global/skin/wizard.css: .wizard-buttons-btm { padding:xpx; } .wizard-label-box { display: none; } the numeric value ofx, the number of pixels of padding in .wizard-buttons-btm, should be the same as the value of the margin for .wizard-buttons-box-2.
Windows Media in Netscape - Archive of obsolete content
llustrated in a code snippet: if (window.activexobject && navigator.useragent.indexof('windows') != -1) { // ie for windows object instantiation -- use of activexobject } else if(window.geckoactivexobject) { // netscape 7.1 object instantiation --use of geckoactivexobject } else if(navigator.mimetypes) { // plugin architecture, such as in netscape 4x - 7.02 and opera browsers } since ie for
mac also exposes window.activexobject it is wise to determine if the browser in question is on windows.
...in netscape 7.1, the codebase attribute of the object element cannot be used to initiate a digitally signed download of the windows media control, if it is not present on the
machine.
...detecting successful creation of the control often, usage of activex controls in ie involve the use of the object element along with a codebase attribute that initiates a download of the component if it is missing from the
machine running the web page.
Implementing controls using the Gamepad API - Game development
the most popular gamepads right now are those from the xbox 360, xbox one, ps3 and ps4 — they have been heavily tested and work well with the gamepad api implementation in browsers across windows and
mac os x.
...the code discussed in this article was tested with a few gamepads, but the author's favorite configuration is a wireless xbox 360 controller and the firefox browser on
mac os x.
... the second, hidden "change" implementation is the ability to transform the static fridge into a full-blown moving, shooting and eating
machine.
Gecko FAQ - Gecko Redirect 1
gecko runs today on win32 (windows xp service pack 2, windows vista, windows 7, windows 8, windows 8.1, windows 10),
mac os x 10.5 and later, and linux.
... older versions of gecko supported earlier versions of win32 and
mac os x.
... gecko includes the following components: document parser (handles html and xml) layout engine with content model style system (handles css, etc.) javascript runtime (spidermonkey) image library networking library (necko) platform-specific graphics rendering and widget sets for win32, x, and
mac user preferences library mozilla plug-in api (npapi) to support the navigator plug-in interface open java interface (oji), with sun java 1.2 jvm rdf back end font library security library (nss) original document information author(s): angus other contributors: ekrock, vidur, hidday, drunclear copyright information: portions of this content are © 1998–2006 by individual mozilla.org contributors; content available under a creative commons lic...
Algorithm - MDN Web Docs Glossary: Definitions of Web-related terms
in other words, an algorithm is a means of describing a way to solve a problem so that it can be solved repeatedly, by humans or
machines.
... a sorting algorithm is often used in computer programming to explain a
machine how to sort data.
... there are also
machine learning algorithms such as linear regression, logistic regression, decision tree, random forest, support vector
machine, recurrent neural network (rnn), long short term memory (lstm) neural network, convolutional neural network (cnn), deep convolutional neural network and so on.
What is accessibility? - Learn web development
some are free products, like nvda (windows), chromevox (chrome, windows and
mac os x), and orca (linux).
... some are built into the operating system, like voiceover (
macos, ipados, ios), narrator (microsoft windows), chromevox (on chrome os), and talkback (android).
... different operating systems have different accessibility apis available : windows: msaa/iaccessible, uiaexpress, iaccessible2
mac os x: nsaccessibility linux: at-spi android: accessibility framework ios: uiaccessibility where the native semantic information provided by the html elements in your web apps falls down, you can supplement it with features from the wai-aria specification, which add semantic information to the accessibility tree to improve accessibility.
Supporting older browsers - Learn web development
you can also download and install virtual
machines, and run older versions of browsers in a contained environment on your own computer.
... having access to older versions of internet explorer is particularly useful, and for that purpose, microsoft has made a range of virtual
machines available for free download.
... these are available for
mac, windows and linux operating systems and so are a great way to test in old and modern windows browsers even if you are not using a windows computer.
How do you upload your files to a web server? - Learn web development
our demo covers filezilla, since it's free and available for windows,
macos and linux.
... rsync rsync is a local-to-remote file synchronizing tool, which is generally available on most unix-based systems (like
macos and linux), but windows versions exist too.
...acrosync is one such tool, and it is available for windows and
macos.
How do you set up a local testing server? - Learn web development
this article explains how to set up a simple local testing server on your
machine, and the basics of how to use it.
...if you are using linux or
macos, it should be available on your system already.
... open your command prompt (windows)/ terminal (
macos/ linux).
Advanced text formatting - Learn web development
element.</p> <p>select all the text with <kbd>ctrl</kbd>/<kbd>cmd</kbd> + <kbd>a</kbd>.</p> <pre>$ <kbd>ping mozilla.org</kbd> <samp>ping mozilla.org (63.245.215.20): 56 data bytes 64 bytes from 63.245.215.20: icmp_seq=0 ttl=40 time=158.233 ms</samp></pre> the above code will look like so: marking up times and dates html also provides the <time> element for marking up times and dates in a
machine-readable format.
...the <time> element allows you to attach an unambiguous,
machine-readable time/date for this purpose.
... the basic example above just provides a simple
machine readable date, but there are many other options that are possible, for example: <!-- standard simple date --> <time datetime="2016-01-20">20 january 2016</time> <!-- just year and month --> <time datetime="2016-01">january 2016</time> <!-- just month and day --> <time datetime="01-20">20 january</time> <!-- just time, hours and minutes --> <time datetime="19:30">19:30</time> <!-- you can do seconds and milliseconds too!
Getting started with Svelte - Learn web development
if you're using windows, you will need to install some software to give you parity with unix/
macos terminal in order to use the terminal commands mentioned in this tutorial.
... svelte also provides an online repl, which is a playground for live-coding svelte apps on the web without having to install anything on your
machine.
... it's the easiest way to start playing with svelte from any
machine, without having to install anything.
Package management basics - Learn web development
for example, if your project relied on webpack with a certain configuration, you'd want to ensure that if you installed that project on another
machine or returned to it much later on, the configuration would still work.
...you'll see that npm has added a new field, dependencies: "dependencies": { "parcel-bundler": "^1.12.4" } this is part of the npm magic — if in future you move your codebase to another location, on another
machine, you can recreate the same set up by running the command npm install, and npm will look at the dependencies and install them for you.
...whilst the tooling is on our
machine, we can ask the software to inspect our use of the code and only include the functions that we're actually using in production — a process known as "tree shaking".
Accessible Toolkit Checklist
on
mac os x, ctrl+space is used to bring up the context menu.
...on
mac os x, ctrl+space is used to bring up the context menu.
...
mac os x difference: option+left and option+right should do deep expand/collapse
mac os x difference: user should be able to select multiple rows and expand them with one keystroke.
Adding a new event
all messages are defined by
macro in "messages" section of basicevents.h.
... use ns_event_class
macro for adding it.
... the
macro takes two arguments, aprefix and aname.
Chrome registration
for example, a theme may wish to adopt a different look on
mac os x 10.5 than 10.4: osversion>=10.5 abi if a component is only compatible with a particular abi, it can specify which abi/os by using this directive.
...these packages contain three different sets of files, for windows and os/2,
macintosh, and unix-like platforms.
... to indicate that a package is platform-specific, add the "platform" modifier to the "content" line after the path, for example: content global-platform jar:toolkit.jar!/toolkit/content/global-platform/ platform once that is specified in your manifest you then ensure that under the directory global-platform are subdirectories win (windows/os2),
mac (os9/osx), or unix (everything else).
Command line options
enter the following command: firefox -profilemanager
mac os x go to applications > utilities.
... open terminal and enter the following command: cd /applications/firefox.app/contents/
macos ./firefox -profilemanager if you use firefox nightly, you can enter: cd /applications/firefoxnightly.app/contents/
macos ./firefox -profilemanager linux open terminal and enter the following command: cd thunderbird installation directory ./thunderbird -profilemanager the example above invokes the "-profilemanager" command line option with mozilla's thunderbird mail client.
... note: on
mac os x specifying a relative path is not supported anymore from firefox 4.0 and up due to a regression, see bug 673955.
Debugging
debugging mozilla with gdb gdb is our primary debugger on
mac and linux.
... debugging mozilla with lldb lldb is the new debugger on
mac.
... debugging mozilla with valgrind valgrind is a memory debugger for
mac and linux.
How Mozilla's build system works
for many developers, typing
mach build to build the tree is sufficient to work with the source tree.
... phases when you type
mach build to build the tree, three high-level phases occur within the build system: system detection and validation preparation of the build backend invocation of the build backend phase 1: configure phase 1 centers around the configure script.
...to view the variables and functions available in your checkout of the tree, run the following:
mach mozbuild-reference or, you can view the raw file at /python/mozbuild/mozbuild/frontend/context.py.
ESLint
setting up eslint ./
mach eslint --setup running eslint eslint can be run via: ./
mach lint -l eslint you can limit running it to a specific directory with: ./
mach lint -l eslint browser/components or work directory changes: ./
mach lint -l eslint -w or outgoing commits only: ./
mach lint -l eslint -o see ./
mach eslint --help for more options when running eslint.
... more information: outline details of the rules rule source code common issues and how to solve them my editor says that "mozilla/whatever" is unknown run ./
mach eslint --setup restart your editor if that doesn't work, check that you have your editor pointing to the correct node_modules folder.
... for example: in windows 10, if you have installed node.js on "c:\nodejs", then the command should look like: export path=$path:/c/nodejs enabling eslint for a new directory remove the directory from .eslintignore (in the base directory of the repository) fix errors that occur when running ./
mach eslint path/to/dir, see also the no-undef rules below.
JavaScript OS.Constants
macuserlibdir the path to the user's library directory.
...
maclocalapplicationsdir the path to the local applications directory.
...useful mostly for using js-ctypes to interact with the following platforms:
macos x; android; linux; other variants of unix.
Bootstrapping a new locale
hg allows localizers to work locally on their
machines and then "push" changes to their official mozilla repository.
... installing mercurial depending on your operating system, you will need to install the correct version of hg on your
machine.
...you can choose to use: notepad++ or notepad2 on windows, vim, gedit or kate on gnu/linux, textwrangler on
mac os x.
Localizing with Mozilla Translator
a bit of history on mt mt has been evolving from long ago, when l10n were done always on shipped en-us jars and when mozilla suite had five l10n jars: ab-cd.jar, ab-win.jar, ab-
mac.jar, ab-unix.jar, and cd.jar.
... mt thus referred to ab-cd.jar contents as ''platform neutral'' platform, cd.jar as '''region''' platform (or regional files), and the other three as ''windows platform'', ''
mac platform'' and ''unix platform''.
... if you are using a filesystem with symbolic links support (i.e., linux or
mac), you can create symbolic links in a separate directory so it contains just the locale part.
Localizing with Pontoon
translation helpers as you can see, suggestions from history, translation memory,
machine translation and other locales are also available in the out-of-context translation panel.
...
machinery displays matches from various services: internal translation memory, mozilla transvision, open source translation memory, microsoft terminology and
machine translation.
... search almost like
machinery, but takes provided keyword as input parameter instead of the original string.
Intel Power Gadget
on
mac and linux, tools/power/rapl is probably a better tool to use.
... understanding the power gadget output the following screenshot (from the
mac version) demonstrates the available measurements.
... (an energia dashboard can be seen here; please note that the data has not been updated since early 2014.) version 3.0 (available on
mac and windows, but not on linux) also exposes an api from which the same measurements can be extracted programmatically.
Leak-hunting strategies and tips
(or allocations?) all tier 1 platforms build with --enable-trace-malloc leak tools for simple objects and summary statistics tracemalloc all allocations all tier 1 platforms build with --enable-trace-malloc valgrind all allocations
mac, linux build with --enable-valgrind and some other options lsan all allocations
mac, linux any build apple tools ?
...
mac any build leak tools for debugging memory growth that is cleaned up on shutdown diffbloatdump (part of tracemalloc) all allocations linux only?
...it may just involve setting the xpc_shutdown_heap_dump environment variable to a file name, but i haven't tested that.) post-processing of stack traces on
mac and linux, the stack traces generated by our internal debugging tools don't have very good symbol information (since they just show the results of dladdr).
Profiling with the Firefox Profiler
there are os-specific waiting functions like ntwaitformultipleobjects seen in the example above taken on windows or
mach_msg_trap on
macos.
... install the latest pre-release build in your host
machine's firefox browser that has your phone reachable via adb.
... tagging is done by adding
macros of the form auto_profiler_label("namespace", "name").
Profiling with the Gecko Profiler and Local Symbols on Windows
in the past you had to need to run
mach buildsymbols manually, but this is no longer needed.
...using ./
mach build.
... generate the breakpad symbol files by running ./
mach buildsymbols: https://developer.mozilla.org/en/building_firefox_with_debug_symbols#breakpad_symbol_files this will have created symbols under $objdir/dist/ , named after the binary name, architecture and version, so something like "firefox-40.0a1.en-us-win32.crashreporter-symbols.zip" point talos to this zipfile by passing its path to the --symbolspath flag.
Refcount tracing and balancing
xpcom_mem_alloc_log for platforms that don't have stack-crawl support, xpcom supports logging at the call site to addref/release using the usual cpp __file__ and __line__ number
macro expansion hackery.
...for example: env xpcom_mem_log_classes=nsdocshell xpcom_mem_refcnt_log=./refcounts.log ./
mach run this will log the addref and release calls only for instances of nsdocshell while running the browser using
mach, to a file refcounts.log.
...for example, env xpcom_mem_log_classes=nsdocshell xpcom_mem_log_objects=2 xpcom_mem_refcnt_log=./refcounts.log ./
mach run will log stack traces to refcounts.log for the 2nd nsdocshell object that gets allocated, and nothing else.
TraceMalloc
this example is for
macos; small modifications are needed for other platforms.
...build/dist/minefield.app/contents/
macos/firefox --trace-malloc /dev/null --shutdown-leaks=sdleak.log # convert raw log to text representation of call trees perl source/tools/trace-malloc/diffbloatdump.pl --depth=15 --use-address /dev/null sdleak.log > sdleak.tree.raw # frobulate trees to remove extraneous junk perl source/tools/rb/fix-
macosx-stack.pl sdleak.tree.raw > sdleak.tree you can also use the leakstats program to analyze a log for shutdown leaks.
...(this can be done by examining the unprocessed output of an xpcom_mem_refcnt_log, one of the nstracerefcnt logs.) you should use the --use-address argument to diffbloatdump.pl, and then the diff tree can be run through fix_linux_stack.py or fix_
macosx_stack.py as needed.
Profile Manager
system requirements:
mac: an intel processor, i386 or x86_64 linux: any version capable of running firefox 4.0 windows: xp or later source code you can download the source as well: hg clone http://hg.mozilla.org/automation/profilemanager/ instructions for building can be found in build.txt.
... starting profile manager to start profile manager, just launch profilemanager.exe (on windows) or profilemanager-bin (on linux and
mac).
... profile manager does not track these backups in the ui, but using profile archives is an easy way to move profiles between
machines.
McCoy
mccoy-0.5.en-us.win32.zip (windows) mccoy-0.5.en-us.linux-i686.tar.bz2 (linux) mccoy-0.5.en-us.
mac.dmg (
mac os x universal) there are some known issues with running mccoy on linux.
... backing up data if you need to backup your data or move it from one
machine to another you need to take a copy of the profile folder.
... this is located in: %appdata%\mozilla\mccoy (windows) ~/.mozilla/mccoy (linux) ~/library/application support/mccoy (
mac os x) it is highly recommended that you back up your profile folder and store it in a safe location whenever you create a new key; without a backup, there is no way to recover your private keys if they are lost!
Creating a Cookie Log
run firefox by typing "./firefox" and pressing enter
mac os x open terminal.app, which is located in the /applications/utilities folder (these instructions are for bash, the default shell in
mac os x 10.3 and higher; if you use something else, you probably know how to modify these instructions already).
...type "cd /applications/firefox.app/contents/
macos" and press return.
...it should be in c:\temp on windows, your home directory on linux, or the desktop on
mac os x.
Introduction to NSPR
the current implementation of nspr allows developers to compile a single source code base on
macintosh (ppc), win32 (nt 3.51, nt 4.0, win'95), and over twenty versions of unix.
... nspr naming conventions naming of nspr types, functions, and
macros follows the following conventions: types exported by nspr begin with pr and are followed by intercap-style declarations, like this: print, prfiledesc function definitions begin with pr_ and are followed by intercap-style declarations, like this: pr_read, pr_jointhread preprocessor
macros begin with the letters pr and are followed by all uppercase characters separated with the underscore character (_), like this: pr_bytes_per_short, pr_extern nspr threads nspr provides an execution environment that promotes the use of lightweight threads.
... some operating systems cannot be made preemptable (for example,
mac os and win 16).
Logging
nspr also provides "assert"-style
macros and functions to aid in application debugging.
... conditional compilation and execution log types and variables logging functions and
macros use example conditional compilation and execution nspr's logging facility is conditionally compiled in and enabled for applications using it.
... log types and variables two types supporting nspr logging are exposed in the api: prlogmoduleinfo prlogmodulelevel two environment variables control the behavior of logging at execution time: nspr_log_modules nspr_log_file logging functions and
macros the functions and
macros for logging are: pr_newlogmodule pr_setlogfile pr_setlogbuffering pr_logprint pr_logflush pr_log_test pr_log pr_assert pr_assert pr_static_assert (new in nspr 4.6.6xxx this hasn't been released yet; the number is a logical guess) pr_not_reached use example the following sample code fragment demonstrates use of the logging and debugging aids.
Memory Management Operations
this chapter describes the global functions and
macros you use to perform memory management.
... memory allocation functions memory allocation
macros memory allocation functions nspr has its own heap, and these functions act on that heap.
... memory allocation
macros
macro versions of the memory allocation functions are available, as well as additional
macros that provide programming convenience: pr_malloc pr_new pr_realloc pr_calloc pr_newzap pr_delete pr_freeif ...
NSPR Error Handling
error type error functions error codes for information on naming conventions for nspr types, functions, and
macros, see nspr naming conventions.
... pr_end_of_file_error unexpectedly encountered end of file (
mac os only).
... pr_file_seek_error an unexpected seek error (
mac os only).
PR_LOG
_args); parameters the
macro has these parameters: _module a pointer to a log module structure.
... returns nothing description this
macro formats the specified arguments and writes the output to the log file, if logging is enabled for the specified module and level.
... this
macro compiles to nothing if compile-time options are not specified to enable logging.
PR_NOT_REACHED
syntax #include <prlog.h> void pr_not_reached(const char *_reasonstr); parameters the
macro has this parameter: reasonstr a string that describes why you should not have reached this statement.
... returns nothing description this
macro writes the specified reason string to the log and terminates the application.
... this
macro compiles to nothing if compile-time options are not specified to enable logging.
PR_STATIC_ASSERT
syntax #include <prlog.h> pr_static_assert ( expression ); parameters the
macro has this parameter: expression any valid expression which evaluates at compile-time to true or false.
... returns nothing description this
macro evaluates the specified expression.
... this
macro may only be used in locations where an extern function declaration may be used.
NSS 3.12.4 release notes
bug 470500: firefox 3.1b2 crash report [[@ nssutil3.dll@0x34c0 ] bug 482742: enable building util independently of the rest of nss bug 483653: unable to build certutil.exe for fennec/wince bug 485145: miscellaneous crashes in signtool on windows bug 485155: nss_enable_pkix_verify=1 causes sec_error_unknown_issuer errors bug 485527: rename the _x86_
macro in lib/freebl bug 485658: vfychain -p reports revoked cert bug 485745: modify fipstest.c to support cavs 7.1 drbg testing bug 486304: cert7.db/cert8.db corruption when importing a large certificate (>64k) bug 486405: allocator mismatches in pk12util.c bug 486537: disable execstack in freebl x86_64 builds on linux bug 486698: facilitate the building of major components independently and in a cha...
...bug 495717: unable to compile nss/cmd/certutil/keystuff.c on wince bug 496961: provide truncated h
mac support for testing tool fipstest bug 497002: lab required nspr-free freebl changes.
...[[@isspace - secmod_argisblank - secmod_arghasblanks - secmod_formatpair - secmod_mknewmodulespec] bug 498509: produce debuggable optimized builds for mozilla on
macosx bug 498511: produce debuggable optimized nss builds for mozilla on linux bug 499385: drbg reseed function needs to be tested on post bug 499825: utilrename.h is missing from solaris packages bug 502961: allocator mismatch in pk11mode bug 502965: allocator mismatch in sdrtest bug 502972: another allocator mismatch in sdrtest bug 504398: pkix_pl_aiamgr_gethttpcerts could crash if sec_getregisteredhttpclient fails bug 504405: pkix_pl_crldp_create will fail on alloc success because of a miss...
NSS 3.21 release notes
new types in pkcs11t.h ck_tls12_master_key_derive_params{_ptr} - parameters {or pointer} for ckm_tls12_master_key_derive ck_tls12_key_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
macro...
... 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 size in pkcs11t.h ckm_tls12_master_key_derive - derives tls 1.2 master secret ckm_tls12_key_and_
mac_derive - derives tls 1.2 traffic key and iv ckm_tls12_master_key_derive_dh - derives tls 1.2 master secret for dh (and ecdh) cipher suites ckm_tls12_key_safe_derive and ckm_tls_kdf are identifiers for additional pkcs#12 mechanisms for tls 1.2 that are currently unused in nss.
... ckm_tls_
mac - computes tls finished
mac in secoidt.h nss_use_alg_in_ssl_kx - policy flag indicating that keys are used in tls key exchange in sslerr.h ssl_error_rx_short_dtls_read - error code for failure to include a complete dtls record in a udp packet ssl_error_no_supported_signature_algorithm - error code for when no valid signature and hash algorithm is available ssl_error_unsupported_signature_algorithm - error code for when an unsupported signature and hash algorithm is configured ssl_error_missing_extended_master_secret - error code for when the extended master secret is missing after having been negotiated ssl_error_unexpected_extended_master_secret - error code for receiving an extended master secret when previously not negotiated in ssl...
Hacking Tips
etioncontext()->cx; (gdb) n 4783 linker linker(masm); (gdb) n 4784 ioncode *code = linker.newcode(cx, jsc::ion_code); (gdb) n 4785 if (!code) (gdb) p code->code_ $1 = (uint8_t *) 0xf7fd25a8 "\201", <incomplete sequence \354\200> (gdb) x/2i 0xf7fd25a8 0xf7fd25a8: sub $0x80,%esp 0xf7fd25ae: mov 0x94(%esp),%ecx on arm, the compiled js code will always be arm
machine code, whereas spidermonkey itself is frequently thumb2.
... &((cairo_image_surface_t*)athebescontext->mdt.mrawptr->msurface).data[$y * ((cairo_image_surface_t*)athebescontext->mdt.mrawptr->msurface).stride + $x * ((cairo_image_surface_t*)athebescontext->mdt.mrawptr->msurface).depth / 8] watch *(char*)<address of previous command> (note: if you set a watch on the previous expression gdb will watch the expression and run out of watchpoint) rr with e
macs within e
macs, do m-x gud-gdb and replace the command line with rr replay.
... when gdb comes up, enter set annot 1 to get it to emit file location information so that e
macs will pop up the corresponding source.
64-bit Compatibility
the best way to fix this is to make types explicit, such as: const uintptr_t pointer_tagbits = 3 or by using a cast inside the
macro.
...for example, this code will not load a native integer correctly on a 64-bit
machine: struct object { void *data; }; lir->insload(lir_ld, objins, ins->insimm(offsetof(object, data))); lir_ld is 32-bit.
... on 64-bit
machines you must use lir_ldq.
JSFastNative
vp jsval * the arguments, including the this argument, the return-value slot, and the callee function object are accessible through this pointer using
macros described below.
... description the callback should use the following
macros to access the fields of vp:
macro name description js_callee(cx, vp) returns the function object that was called, as a jsval.
...if the jsfastnative returns js_true, the last value passed to this
macro will be returned to the caller.
SpiderMonkey 1.8.8
spidermonkey 1.8.8 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
... the file must conform to the standard c99 <stdint.h> header interface in all respects, providing all that header's types and
macro definitions.
... (the js_get_class
macro abstracting away this difference has accordingly been removed.) javascript shell changes detail added/removed methods here...
SpiderMonkey 17
spidermonkey 17 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
... the file must conform to the standard c99 <stdint.h> header interface in all respects, providing all that header's types and
macro definitions.
... (the js_get_class
macro abstracting away this difference has accordingly been removed.) garbage collection functions now take runtime argument most garbage collection functions now take a runtime argument instead of a context.
AT APIs Support
on
mac platform camino - web browser for os x xul applications xul applications make full use of the gecko architecture, not only for html content, but also for the entire user interface.
... examples of xul applications: firefox - web-browser thunderbird - email client seamonkey - web-browser, advanced e-mail and newsgroup client, irc chat client, and html editing made simple sunbird - cross-platform calendar application kompozer - a complete web authoring system for linux desktop, microsoft windows and
macintosh users to rival programs like frontpage and dreamweaver.
...
mac platform we currently support only a subset of universal access.
Finishing the Component
at the same time, you can add the
macro ns_decl_nsicontentpolicy to the class declaration that provides all of the methods defined in the interface nsicontentpolicy.
... the updated weblock class looks as follows: class weblock: public nsiobserver, public iweblock, public nsicontentpolicy { public: weblock(); virtual ~weblock(); ns_decl_isupports ns_decl_nsiobserver ns_decl_iweblock ns_decl_nsicontentpolicy private: urlnode* mrooturlnode; prbool mlocked; }; remember to change the nsisupports implementation
macro to include nsicontentpolicy so that other parts of gecko will know weblock supports the nsicontentpolicy interface without modifying this
macro.
... the name of the
machine hosting the resource.
Setting up the Gecko SDK
the sdk is available for windows, linux, and
mac operating systems, and versions for other operating systems are being developed, and can be retrieved from as a single archive from the following platform-specific locations (need correction for last version (now 1.9.2.8).
... there is now separate archive with gecko-sdk, just xul-runner-sdk.): linux: http://ftp.mozilla.org/pub/mozi....8.0.4.tar.bz2 windows: http://ftp.mozilla.org/pub/mozi...vc-1.8.0.4.zip
mac: http://ftp.mozilla.org/pub/mozi...ac-1.8.0.4.zip note that the version number for the archives above is 1.8.
... makefile cc=cl.exe ccparms=/d "xp_win" /d "xp_win32" all: cspecialthing.obj cspecialthingmodule.obj link cspecialthing.obj: $(cc) $(ccparms) /c cspecialthing.cpp cspecialthingmodule.obj: $(cc) $(ccparms) /c cspecialthingmodule.cpp link: link.exe /dll /out:"cspecialthing.dll" /implib:"cspecialthing.lib" /
machine:i386 xpcom.lib xpcomglue_s.lib nspr4.lib "cspecialthing.obj" "cspecialthingmodule.obj" clean: del *.lib *.dll *.obj *.exp please note, this makefile is only for compiling the sample, you will probably have more .lib files if you are linking against winapi functions like kernel32.lib, user32.lib, etc.
nsIDOMSimpleGestureEvent
(xxx not implemented on
mac) mozpresstapgesture - generated when the user executes a press and tap two finger gesture (first finger down, second finger down, second finger up, first finger up) on the input device.
...(xxx not implemented on
mac) default behavior: some operating systems support default behaviors for gesture events when they are not handled by the application.
... note: on
mac os x, the units used for magnification gestures by the underlying operating system api are not documented at this time; typical values appear to be in the range 0.0 to 100.0, but currently you can only rely on the value being either positive or negative.
nsILocaleService
to use this service, use: var localeservice = components.classes["@mozilla.org/intl/nslocaleservice;1"] .getservice(components.interfaces.nsilocaleservice); method overview nsilocale getapplicationlocale(); astring getlocalecomponentforuseragent(); nsilocale getlocalefro
macceptlanguage(in string acceptlanguage); nsilocale getsystemlocale(); nsilocale newlocale(in astring alocale); nsilocale newlocaleobject(in nsilocaledefinition localedefinition); obsolete since gecko 1.9 methods getapplicationlocale() gets the user preference for locale from the operating system.
...getlocalefro
macceptlanguage() gets the most preferred locale from a list of locale preferences.
... nsilocale getlocalefro
macceptlanguage( in string acceptlanguage ); parameters acceptlanguage locale preference in the same format as the accept-language http header.
XPCOM Interface Reference
vernsicontentprefservicensicontentprefservice2nsicontentsecuritypolicynsicontentsniffernsicontentviewnsicontentviewmanagernsicontentviewernsicontrollernsicontrollersnsiconverterinputstreamnsiconverteroutputstreamnsicookiensicookie2nsicookieacceptdialognsicookieconsentnsicookiemanagernsicookiemanager2nsicookiepermissionnsicookiepromptservicensicookieservicensicookiestoragensicrashreporternsicryptoh
macnsicryptohashnsicurrentcharsetlistenernsicyclecollectorlistenernsidbchangelistenernsidbfolderinfonsidnslistenernsidnsrecordnsidnsrequestnsidnsservicensidomcanvasrenderingcontext2dnsidomchromewindownsidomclientrectnsidomdesktopnotificationnsidomdesktopnotificationcenternsidomelementnsidomeventnsidomeventgroupnsidomeventlistenernsidomeventtargetnsidomfilensidomfileerrornsidomfileexceptionnsidomfilel...
...ornsihttpservernsihttpupgradelistenernsiidnservicensiiframeboxobjectnsiiniparsernsiiniparserfactorynsiiniparserwriternsiioservicensiidleservicensiinprocesscontentframemessagemanagernsiinputstreamnsiinputstreamcallbacknsiinstalllocationnsiinterfacerequestornsijscidnsijsidnsijsiidnsijsonnsijetpacknsijetpackservicensijumplistbuildernsijumplistitemnsilivemarkservicensiloadgroupnsilocalfilensilocalfile
macnsilocalensilocaleservicensilogininfonsiloginmanagernsiloginmanagercryptonsiloginmanageriemigrationhelpernsiloginmanagerprompternsiloginmanagerstoragensiloginmetainfonsimimeinputstreamnsi
macdocksupportnsimarkupdocumentviewernsimemorynsimemorymultireporternsimemorymultireportercallbacknsimemoryreporternsimemoryreportermanagernsimenuboxobjectnsimessagebroadcasternsimessagelistenernsimessagelistenerm...
...anagernsimessagesendernsimessagewakeupservicensimessengernsimicrosummarynsimicrosummarygeneratornsimicrosummaryobservernsimicrosummaryservicensimicrosummarysetnsimimeconverternsimimeheadersnsimodulensimsgaccountnsimsgaccountmanagerextensionnsimsgcompfieldsnsimsgcustomcolumnhandlernsimsgdbhdrnsimsgdbviewnsimsgdbviewcommandupdaternsimsgdatabasensimsgfilternsimsgfiltercusto
mactionnsimsgfilterlistnsimsgfoldernsimsgheaderparsernsimsgidentitynsimsgincomingservernsimsgmessageservicensimsgprotocolinfonsimsgruleactionnsimsgsearchcustomtermnsimsgsearchnotifynsimsgsearchscopetermnsimsgsearchsessionnsimsgsearchtermnsimsgsearchvaluensimsgsendlaternsimsgthreadnsimsgwindownsimsgwindowcommandsnsimutablearraynsinavbookmarkobservernsinavbookmarksservicensinavhistorybatchcallbacknsinavhistorycontainerresultnode...
NS_IF_RELEASE
summary
macro decrements the reference count of a pointer by one.
... this
macro also sets the pointer to null.
...this
macro should only be used when the pointer might be null; otherwise, use ns_release.
Weak reference
neither inheritance, nor templates, nor
macros can help automatically forward all the method calls to the real object.
...}; // ...if you used the table
macros to implement |queryinterface|, add an entry ns_interface_map_begin(nsfoo) // ...
...ns_interface_map_end // ...if you used a |ns_imple_queryinterfacen|
macro, move up to the next higher one and add a term ns_impl_queryinterfacen+1( ...,nsisupportsweakreference) // ...if you implemented |queryinterface| by hand, add a clause ns_imethodimp nsfoo::queryinterface( refnsiid aiid, void** ainstanceptr ) { // ...
Xptcall Porting Status
bert's details <font color="white">done</font>
mac ppc roger lawrence <rogerl@netscape.com>, patrick beard <beard@netscape.com>
mac (passing tests and checked in) <font color="white">done</font> solaris sparc roger lawrence <rogerl@netscape.com>, chris mcafee <mcafee@netscape.com> unix this is checked in and working.
...(24-aug-1999) brandon writes: i've finished testing xptcall sparc linux on 12 different sparc
machines and it checks out good.
...it passes testxptcinvoke and testxpc on my
machine which runs kernel 2.2.7, glibc 2.1.1, and egcs 1.1.2.
The libmime module
}; then, in the corresponding .c file, the following structure is used: class definition first we pull in the appropriate include file (which includes all necessary include files for the parent classes) and then we define the class object using the mimedefclass
macro: #include "foobar.h" #define mime_superclass parentlclass mimedefclass(foobar, foobarclass, foobarclass, &mime_superclass); the definition of mime_superclass is just to move most of the knowlege of the exact class hierarchy up to the file's header, instead of it being scattered through the various methods; see below.
... class initialization function the mimedefclass
macro expects us to define a function which will finish up any initialization of the class object that needs to happen before the first time it is instantiated.
... the easiest way to do this is to make use of the mime_superclass
macro that was defined at the top of the file, as shown below.
Memory - Plugins
mac os the
mac os browser frequently fills its memory partition with cached data that is purged only as necessary.
... flushing memory (
mac os only) the npn_memflush method frees a specified amount of memory.
...for communicator 4.0 and later versions, this function is not necessary for the
mac os platform; npn_memalloc now performs memory flushing internally.
Version, UI, and Status Information - Plugins
detecting windowless support on ms windows and
mac os x in this example, the has_windowless method finds out whether the current version of the api supports windowless plug-ins.
... this method for detecting support is only useful on ms windows and
mac os x.
...*/ return false; } else /* plug-in is running in a navigator version */ /* that has windowless support */ return true; } detecting windowless support on other platforms browser implementations on other platforms did not have windowless plug-in support at the time it was added to ms windows and
mac os x, so a different method must be used to detect whether the browser provides support.
Gecko Plugin API Reference - Plugins
efault plug-in using html to display plug-ins plug-in display modes using the object element for plug-in display nesting rules for html elements using the appropriate attributes using the embed element for plug-in display using custom embed attributes plug-in references plug-in development overview writing plug-ins registering plug-ins ms windows unix
mac os x drawing a plug-in instance handling memory sending and receiving streams working with urls getting version and ui information displaying messages on the status line making plug-ins scriptable building plug-ins building, platforms, and compilers building carbonized plug-ins for
mac os x type libraries installing plug-ins native installers xpi plug-ins i...
...nstallations plug-in installation and the windows registry initialization and destruction initialization instance creation instance destruction shutdown initialize and shutdown example drawing and event handling the npwindow structure drawing plug-ins printing the plug-in setting the window getting information windowed plug-ins
mac os windows unix event handling for windowed plug-ins windowless plug-ins specifying that a plug-in is windowless invalidating the drawing area forcing a paint message making a plug-in opaque making a plug-in transparent creating pop-up menus and dialog boxes event handling for windowless plug-ins streams receiving a stream telling the plug-in when a stream is created tel...
...andom-access mode sending the stream in file mode sending a stream creating a stream pushing data into the stream deleting the stream example of sending a stream urls getting urls getting the url and displaying the page posting urls posting data to an http server uploading files to an ftp server sending mail memory allocating and freeing memory
mac os flushing memory (
mac os only) version, ui, and status information displaying a status line message getting agent information getting the current version finding out if a feature exists reloading a plug-in plug-in side plug-in api this chapter describes methods in the plug-in api that are available from the plug-in object.
Search - Firefox Developer Tools
searching for files to search for a particular file, press control + p (or command + p on a
mac) and type the search term.
...you can use the up and down arrows to move through the list, and return to open the file you want: searching within a file to search for a particular substring in the file currently loaded into the source pane, press control + f (or command + f on a
mac) while the source pane is focused.
...press shift + ctrl + f (windows and linux) or shift + cmd + f (
macos) and then enter the string you are trying to find.
Set a breakpoint - Firefox Developer Tools
highlighting the line you want to break at in the source pane and pressing ctrl + b (windows/linux) or cmd + b (
macos).
...you can set a conditional breakpoint using the context menu (see above), or by highlighting the line you want to break at in the source pane and pressing ctrl + shift + b (windows/linux) or cmd + shift + b (
macos).
... highlight the line of code the breakpoint is set on and pressing ctrl + b (windows/linux) or cmd + b (
macos).
Debugger.Memory - Firefox Developer Tools
machine code.
... spidermonkey includes several just-in-time compilers, each of which translates javascript source or bytecode to
machine code.
...
machine code may be dropped in response to memory pressure, and regenerated as needed.
Index - Firefox Developer Tools
96 debugging firefox desktop debugging, guide, tools this guide explains how you can use the firefox developer tools to debug a different instance of desktop firefox running on the same
machine.
...by default, on some
macs, the function key is remapped to use a special feature: for example, to change the screen brightness or the volume.
... 127 search to search for a particular file, press control + p (or command + p on a
mac) and type the search term.
characteristic - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetcharacteristic experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
readValue() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetreadvalue experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
uuid - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetuuid experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
value - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetvalue experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
writeValue() - Web APIs
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetwritevalue experimentalchrome full support 57notes full support 57notes notes
macos only.
... full support 70notes notes windows 10.edge full support ≤79notes full support ≤79notes notes
macos only.
... full support ≤79notes notes windows 10.firefox no support noie no support noopera full support 44notes full support 44notes notes
macos only.
Element: webkitmouseforcewillbegin event - Web APIs
safari for
macos fires the non-standard webkitmouseforcewillbegin event at an element before firing the initial mousedown event.
... to instruct
macos not to engage any default force touch actions if the user apply enough pressure to activate a force touch event, call preventdefault() on the webkitmouseforcewillbegin event object.
...apple has a description at the
mac developer library.
KeyboardEvent.getModifierState() - Web APIs
windows linux (gtk)
mac android 2.3 android 3.0 or latter "alt" either alt key or altgr key pressed alt key pressed ⌥ option key pressed alt key or option key pressed "altgraph" both alt and ctrl keys are pressed, or altgr key is pressed level 3 shift key (or level 5 shift key ) pressed ⌥ option key pressed not supported "capslock" during led f...
...fn key on
mac keyboard doesn't cause this active.
...however, on
mac, pressing ⌘ command key may make it return true.
SubtleCrypto.generateKey() - Web APIs
for h
mac: pass an h
mackeygenparams object.
... let keypair = window.crypto.subtle.generatekey( { name: "ecdsa", namedcurve: "p-384" }, true, ["sign", "verify"] ); h
mac key generation this code generates an h
mac signing key.
... let key = window.crypto.subtle.generatekey( { name: "h
mac", hash: {name: "sha-512"} }, true, ["sign", "verify"] ); aes key generation this code generates an aes-gcm encryption key.
WebGL best practices - Web APIs
don't assume you can use thirty texture samplers per shader just because it works on your
machine!
... always keep vertex attrib 0 array-enabled if you draw with vertex attrib 0 array disabled, you will force the browser to do complicated emulation when running on desktop opengl (such as on
macos).
...mobile devices typically have smaller screens than powerful desktop
machines with large monitors.
Implementing a Microsoft Active Accessibility (MSAA) Server - Accessibility
see windowfro
maccessibleobject quirk explanation below.] dealing with the quirks of msaa msaa has a well deseved reputation for quirkiness.
... windowfro
maccessibleobject depends on client-window relationship problem: unless certain rules are followed, windowfro
maccessibleobject will break, causing the failure of accessibility testing tools like accexplore.exe, and assistive technologies which require knowledge of the window class to know what app-specific configurations to run.
... windowfro
maccessibleobject works by walking up the parent chain until it finds an object of role_window.
Event reference
svg events svgabort svgerror svgload svgresize svgscroll svgunload svgzoom database events abort blocked complete error success upgradeneeded versionchange script events afterscriptexecute beforescriptexecute menu events dommenuite
mactive dommenuiteminactive window events close popup events popuphidden popuphiding popupshowing popupshown tab events visibilitychange battery events chargingchange chargingtimechange dischargingtimechange levelchange call events alerting busy callschanged cfstatechange connecting dialing disconnected disconnecting error held, holding incoming resuming statechange voicechange sensor e...
... do
mactivate uievent dom l3 a button, link, or state changing element is activated (use click instead).
... dommenuite
mactive xul a menu or menuitem has been hovered or highlighted.
Setting up adaptive streaming media sources - Developer guides
hls encoding tools ther are a number of useful tools available for hls encoding for hls live stream encoding adobe provide a media encoder for
mac.
... the stream segmenter — provided by apple for
mac platforms — takes a media stream from a local network and splits media into equally sized media files together with an index file.
... apple also provides a file segmenter for
mac — which takes a suitably encoded file, splits it up and produces a index file, in a similar fashion to the stream segmenter.
<time> - HTML: Hypertext Markup Language
it may include the datetime attribute to translate dates into
machine-readable format, allowing for better search engine results or custom features such as reminders.
... usage notes this element is for presenting dates and times in a
machine readable format.
... the datetime value (the
machine-readable value of the datetime) is the value of the element’s datetime attribute, which must be in the proper format (see below).
An overview of HTTP - HTTP
a server appears as only a single
machine virtually: this is because it may actually be a collection of servers, sharing the load (load balancing) or a complex piece of software interrogating other computers (like cache, a db server, or e-commerce servers), totally or partially generating the document on demand.
... a server is not necessarily a single
machine, but several server software instances can be hosted on the same
machine.
... proxies between the web browser and the server, numerous computers and
machines relay the http messages.
WebAssembly Concepts - WebAssembly
the web platform can be thought of as having two parts: a virtual
machine (vm) that runs the web app’s code, e.g.
...(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.
... module: represents a webassembly binary that has been compiled by the browser into executable
machine code.
core/heritage - Archive of obsolete content
reading or writing such code requires sharp eye and lot's of discipline, mainly due to code fragmentation and lots of
machinery being exposed: // defining a simple class function dog(name) { // classes are for creating instances, calling them without `new` changes // behavior, which in majority cases you need to handle, so you end up // with additional boilerplate.
...this is too much
machinery exposed.
jpmignore - Archive of obsolete content
here is an example: # ignore .ds_store files created by
mac .ds_store # ignore any zip or xpi files *.zip *.xpi # ignore specific directory # you can start patterns with a forward slash (/) to avoid recursivity.
...this one would work for xe
macs: .* * !/data/** !/lib/** !/locale/** !/node_modules/** !/package.json !/icon.png !/icon64.png !/copying !/bootstrap.js !/install.rdf *~ \#* ...
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
on windows vista, it will be located at c:\users\username\appdata\roaming\mozilla\firefox\profiles\random number.default\ ; on windows xp or 2000, it will be c:\documents and settings\username\application data\mozilla\firefox\profiles\random number.default\ ; on linux, it will be ~/.mozilla/firefox/random number.default/ ; on
mac os x, it will be ~/library/application support/firefox/profiles/random number.default/ in the interests of security, delete these lines from prefs.js after finishing these tests.
... manipulating files using xpcom xpcom provides a number of interfaces allowing you to perform file manipulations without concern for whether you are running on windows,
mac os x, or linux.
MCD, Mission Control Desktop, AKA AutoConfig - Archive of obsolete content
choosing mozilla products allow us to use the same apps while running either windows or linux systems (i suspect
mac osx would be fine too).
...://technet.microsoft.com/de-de/library/cc816788(ws.10).aspx // // //put everything in a try/catch try { var userinfo = new object(); // this will hold ldap results userinfo.envuser = getenv("username"); // username userinfo.envhome = getenv("home"); // user home directory var ldaphost = "example.com"; var ldapbase = "dc=company,dc=local"; if( userinfo.envuser ) { var ldapfilter = "sa
maccountname=" + userinfo.envuser; } else { throw("couldn't get uid from the environment"); } // ldap attributes to retrieve from the server var ldapattrs = new array( "cn", "mail", "sa
maccountname" ); // add more attributes here, if needed) // define how to process ldap results before we make the call function processldapvalues(queryresults) { if( queryresults ) { // build the userinfo obj...
Monitoring WiFi access points - Archive of obsolete content
code with universalxpconnect privileges can monitor the list of available wifi access points to obtain information about them including their ssid,
mac address, and signal strength.
...ead> <title>wifi monitor example</title> <script> var count = 0; function test() { } test.prototype = { onchange: function (accesspoints) { netscape.security.privilegemanager.enableprivilege('universalxpconnect'); var d = document.getelementbyid("d"); d.innerhtml = ""; for (var i=0; i<accesspoints.length; i++) { var a = accesspoints[i]; d.innerhtml += "<p>" + a.
mac + " " + a.ssid + " " + a.signal + "</p>"; } var c = document.getelementbyid("c"); c.innerhtml = "<p>" + count++ + "</p>"; }, onerror: function (value) { alert("error: " +value); }, queryinterface: function(iid) { netscape.security.privilegemanager.enableprivilege('universalxpconnect'); if (iid.equals(components.interfaces.nsiwifilistener) || ...
Tinderbox - Archive of obsolete content
it consists of a set of client
machines that continuously build and test mozilla and report their results back to a server that makes those results available via a web page.
...although there are multiple tinderbox clients
machines doing different kinds of builds (f.e.
Creating a Release Tag - Archive of obsolete content
note that there are a couple of extra files for win32 and
macintosh that aren't pulled by the normal script and need to be pulled by hand.
...remember to also check out extra
mac and win32 files that aren't normally checked out on linux or the tag won't build on those platforms.
Creating a Skin for Firefox/Getting Started - Archive of obsolete content
classic.jar locations linux: /usr/lib/mozillafirefox/chrome/classic.jar or /usr/lib/firefox-*.*.*/chrome/classic.jar windows: \program files\mozilla firefox\chrome\classic.jar for
mac os x: go to your applications folder control click application icon(firefox icon), choose show package contents.
... go to contents/
macos/chrome/classic.jar copy classic.jar to another easily accessible folder -- classic is recommended -- extract the contents of that folder, being sure to maintain the directory structure.
Downloading Nightly or Trunk Builds - Archive of obsolete content
for the trunk and the latest two branches, there are
machines at mozilla and maybe elsewhere compiling builds as fast as they can make them for at least all three of firefox, thunderbird and seamonkey on all three of linux-i686,
mac-universalbinary and win32.
...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.
GRE Registration - Archive of obsolete content
windows on windows, gre registration information is kept in the win32 registry under the hkey_local_
machine/software/mozilla.org/gre and hkey_current_user/software/mozilla.org/gre keys.
...
mac on
mac, the only gre is the libxul framework xul.framework.
GRE - Archive of obsolete content
the mozilla suite never supported a gre on
mac.
...xulrunner supports or is planned to support embedding on all three major platforms (windows,
mac, and linux).
Metro browser chrome tests - Archive of obsolete content
running the metro browser chrome tests to run mochitest, first build mozilla with your changes; then run ./
mach mochitest-metro this will launch metro browser chrome tests in the default immersive browser.
...for example, to run a specific test the command would be: ./
mach mochitest-metro browser/metro/base/tests/mochitest/(testfile) writing browser chrome tests metro browser chrome tests make use of a common framework for defining and running tests.
LIR - Archive of obsolete content
in nanojit, lir is the source language for compilation to
machine code.
... call subroutine that returns an int 35 callq quad 64 bit call subroutine that returns a quad 36 calld double call subroutine that returns a double branch 37 j void jump always 38 jt void jump if true 39 jf void jump if false 40 jtbl void jump to address in table 41 label void a jump target (no
machine code is emitted for this) 42 not in use guards 43 x void exit always 44 xt void exit if true 45 xf void exit if false 46 xtbl void exit via indirect jump 47 xbarrier void a lir_xbarrier cause no code to be generated, but it acts like a never-taken guard in that it inhibits certain optimisations, such as ...
Remotely debugging Firefox for Metro - Archive of obsolete content
firefox running in classic "desktop" mode on windows,
mac os x, or linux, either on a separate computer or in a separate profile on the same computer.
... set up firefox for metro go to about:config in firefox for metro, and set the following required preference: devtools.debugger.remote-enabled = true you may also want to set these optional preferences: devtools.debugger.force-local = false (if you want to connect from a different
machine over the network) devtools.debugger.remote-host (to change the tcp hostname where firefox will listen for connections) devtools.debugger.remote-port (to change the tcp port number where firefox will listen for connections) devtools.debugger.prompt-connection = false (allow connections without displaying a confirmation prompt.
Remote debugging - Archive of obsolete content
core dumps on
mac and linux to generate a core dump on
mac, type "ulimit -c unlimited", run firefox from the command line, and make firefox crash.
...when transferring a
mac or linux core dump, you'll also have to transfer the firefox executable (and maybe more).
SpiderMonkey coding conventions - Archive of obsolete content
macros are generally all_caps and underscored, to call out potential side effects, multiple uses of a formal argument, etc.
... linkage dll entry points have their return type expanded within a js_public_api()
macro call, to get the right windows secret type qualifiers in the right places for all build variants.
Tamarin Build System Documentation - Archive of obsolete content
when all of the slave
machines are free they all start the first build phase simultaneously.
... the buildbot scripts are located in the tamarin repository, get a current copy in your test repository cd into the build/buildbot/slaves directory: cd build/buildbot/slaves copy the your platform scripts directory into the scripts directory and cd into the new scripts directory: cp -r
mac-intel-10_5/scripts .
Tamarin - Archive of obsolete content
documentation adobe actionscript virtual
machine 2 (avm2) overview (pdf, 400k) the instructions, architecture, and file format supported by the avm2.
... nanojit lir in nanojit, lir is the source language for compilation to
machine code.
Creating XPI Installer Modules - Archive of obsolete content
chrome/ us/ us.jar chatzilla/ chatzilla.jar chrome.rdf chromelist.txt classic/ classic.jar comm/ comm.jar content-packs/ content-packs.jar embed-sample/ embed-sample.jar en-us/ en-us.jar en-
mac/ en-
mac.jar en-unix/ en-unix.jar en-win/ en-win.jar help/ help.jar inspector/ inspector.jar installed-chrome.txt messenger/ messenger.jar ...
...the resources are installed in the mozilla/bin/chrome/ directory, and the xpi itself can be redistributed for installation on other
machines.
Install Wizards (aka: Stub Installers) - Archive of obsolete content
file (config.ini) and dynamically installs from the net or from local xpi modules found next to the installer binary the code that processes user selections the code that calls the xpinstall engine through xpistub the libxpnet code that is statically linked in the stub installers are written in code native to the platform using native widget toolkits including the windows api for windows, the
mac toolbox for the
mac, and gtk for the unix version.
... 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?
execute - Archive of obsolete content
(ignored on
mac os).
...ee 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.
XPInstall API reference - Archive of obsolete content
l installchrome startsoftwareupdate installversion properties methods compareto init tostring file no properties methods copy dircreate dirgetparent dirremove dirrename diskspaceavailable execute exists isdirectory isfile
macalias moddate moddatechanged move remove rename size windowsgetshortname windowsregisterserver windowsshortcut winprofile no properties methods getstring writestring winreg no properties methods createkey deletekey deletevalue ...
... enumkeys enumvaluenames getvalue getvaluenumber getvaluestring iskeywritable keyexists setrootkey setvalue setvaluenumber setvaluestring valueexists winregvalue constructor other information return codes see complete list examples trigger scripts and install scripts code samples file.
macalias file.windowsshortcut install.adddirectory install.addfile installtrigger.installchrome installtrigger.startsoftwareupdate windows install ...
buttons - Archive of obsolete content
the cancel button might be shown as an additional possibility to close the dialog in this situation (windows and linux) or might be hidden, too (
mac os).
... the default setting of browser.preferences.instantapply currently is true on linux and
mac os and false on windows (which however might or might not change soon, see bug 738797 and bug 1037225).
treecol.type - Archive of obsolete content
cbox-check.gif isn't available in firefox 1, 2, and 3 in
mac os x so you should specify a url to an image in your extension or elsewhere.
...cbox-check.gif isn't available in firefox 1, 2, and 3 in
mac os x, so you should specify a url to an image in your extension or elsewhere.
XUL Events - Archive of obsolete content
this event would be used to update the disabled status of its commands.dommenuite
mactivethe dommenuite
mactive 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>...
... attribute: onunderflow dommenuite
mactive this event is sent when a menu or menuitem is hovered over, or highlighted.
Introduction - Archive of obsolete content
this tutorial will demonstrate creating a simple find file user interface, much like that provided by the
macintosh's sherlock or the find file dialog in windows.
... the first three types all require an installation to be performed on the user's
machine.
Popup Menus - Archive of obsolete content
on the
macintosh for example, the user can either press the control key and click the mouse button, or hold the mouse button down for a moment.
...if you right-click (control-click on the
macintosh) anywhere on the first panel, the popup will appear.
XUL Structure - Archive of obsolete content
when the user downloads the zipped file, the packaged files will be installed onto the user's
machine.
...you can load xul files from your own
machine by opening them in the browser, or by double-clicking the file in your file manager.
content - Archive of obsolete content
cuando use un árbol con los atributos flags ("banderas"), establezca dont-build-content, ("no al
macenar contenido"), use treeitem en su lugar.
... para más infor
mación, se encuentra disponible el tutorial xul.
tree - Archive of obsolete content
cbox-check.gif isn't available in firefox 1, 2, and 3 in
mac os x so you should specify a url to an image in your extension or elsewhere.
...cbox-check-dis.gif isn't available in firefox 1, 2, and 3 in
mac os x, so you should specify a url to an image in your extension or elsewhere.
mozilla.dev.platform FAQ - Archive of obsolete content
faq for questions asked on mozilla.dev.platform xulrunner q: xulrunner on
mac os x a: instead of using /path/to/xulrunner-bin.ini, applications on a
mac must be in an application bundle (foo.app).
... then unpack the xul app into the
mac structure with xulrunner -install-app q: can you build xulrunner with newer (>1.5) features, such as storage?
2006-10-06 - Archive of obsolete content
summary: mozilla.dev.apps.thunderbird - september 30-october 06, 2006 announcements
mac user needed scott
macgregor announced that .
mac support and a dynamically add isp account feature has been added to the thunderbird account manager, however, testing is required before release can be issued.
... hence, they are looking for a
mac user to test out the new features by building a
mac.rdf file with all of the various .
mac account properties mentioned in the document here.
2006-11-03 - Archive of obsolete content
originally posted on november 1st: dale dale has set up a windows
machine in order to perform mozilla builds but has been unsuccessful to do so.
...he also noted that he has had different results (error messages when compiling) on different
machines.
2006-11-17 - Archive of obsolete content
paul reed announced that: there was a power outage at his office and the
machines, which are responsible for running autoconf (configure.in -> configure), located in his office failed to boot up after power was restored.
...paul reed announced that: the
machine in his office are now back up.
2006-09-29 - Archive of obsolete content
instead of using /path/to/xulrunner-bin.ini (which will was doing) applications on a
mac must be in an application bundle (foo.app).
... then use xulrunner -install-app to "unpack" the xul app into the
mac structure.
2006-09-30 - Archive of obsolete content
summary: mozilla.dev.tech.xpcom - sept 30- oct 5, 2006 announcements build a xpcom component on
mac os x benjamin smedberg confirmed that this tutorial http://www.iosart.com/firefox/xpcom/ is misleading as it uses the standalone glue (-dxpcom_glue) for components, which is not recommended.
... 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.
NPN_MemFlush - Archive of obsolete content
« gecko plugin api reference « plug-in side plug-in api summary note: this function is only implemented on
mac os x.
...on the
mac, you can use this method to free memory before calling memory-intensive system calls.
Plugins - Archive of obsolete content
writing a plugin for
mac os x learn how to write a plugin for
mac os x; a template xcode project is provided.
... scripting plugins:
macromedia flash this article explains how javascript can be used to access methods from within the flash plugin, as well as how a feature called fscommands can be used to access javascript functions from within the flash animation.
Syndicating content with RSS - Archive of obsolete content
rss is a tool which helps to syndicate your content by organizing it into a form that's easy for
machines to parse and reuse.
...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.
TCP/IP Security - Archive of obsolete content
the integrity of data can be assured by generating a message authentication code (
mac) value, which is a keyed cryptographic checksum of the data.
... if the data is altered and the
mac is recalculated, the old and new
macs will differ.
Theme changes in Firefox 4 - Archive of obsolete content
arge icons for add-on buttons in the bookmarks toolbar when the related user preference is set: #navigator-toolbox[iconsize="large"] > #personaltoolbar { counter-reset: largeicons; } to use large icons everywhere, including the menu bar, regardless of the user preference: #navigator-toolbox > toolbar, #addon-bar { counter-reset: largeicons; } creating a theme that works for firefox 4 on
mac os x create a new directory (for example, my_theme).
...then copy all of icon.png, install.rdf and preview.png from <firefox-app-bundle>/contents/
macos/extensions/{...} into my_theme.
Browser Detection and Cross Browser Support - Archive of obsolete content
, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up, is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up javascript version number is_js (float indicating full javascript version number: 1, 1.1, 1.2 ...) os platform and version is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k, is_os2, is_
mac, is_
mac68k, is_
macppc, is_unix, is_sun, is_sun4, is_sun5, is_suni86, is_irix, is_irix5, is_irix6, is_hpux, is_hpux9, is_hpux10, is_aix, is_aix1, is_aix2, is_aix3, is_aix4, is_linux, is_sco, is_unixware, is_mpras, is_reliant, is_dec, is_sinix, is_freebsd, is_bsd, is_vms detecting browsers using this level of detail is unworkable, unmaintainable and violates the basic principles of web autho...
... mozilla-based browsers (such as firefox), internet explorer 6 on windows, and internet explorer 5 for
macintosh all support doctype switching.
Implementation Status - Archive of obsolete content
4.4.7 xforms-readwrite supported 4.4.8 xforms-required supported 4.4.9 xforms-optional supported 4.4.10 xforms-enabled supported 4.4.11 xforms-disabled supported 4.4.12 do
mactivate supported 4.4.13 domfocusin supported 4.4.14 domfocusout supported 4.4.15 xforms-select xforms-deselect supported 4.4.16 xforms-in-range supported 4.4.17 xforms-out-of-range...
... 334333; 7.8.3 digest() unsupported 7.8.4 h
mac() unsupported 7.9.1 local-date() supported 7.9.2 local-datetime() supported 7.9.3 now() supported 7.9.4 days-from-date() supported 7.9.5 days-to-date() unsupported ...
XForms Repeat Element - Archive of obsolete content
</my:line> <my:line name="b"> <my:price>32.25</my:price> </my:line> </my:lines> </instance> </model> <repeat id="lineset" nodeset="/my:lines/my:line"> <input ref="my:price"> <label>line item</label> </input> <input ref="@name"> <label>name</label> </input> </repeat> <trigger> <label>insert a new item after the current one</label> <action ev:event="do
mactivate"> <insert nodeset="/my:lines/my:line" at="index('lineset')" position="after"/> <setvalue ref="/my:lines/my:line[index('lineset')]/@name"/> <setvalue ref="/my:lines/my:line[index('lineset')]/price">0.00</setvalue> </action> </trigger> <trigger> <label>remove current item</label> <delete ev:event="do
mactivate" nodeset="/my:lines/my:line" at="index('li...
... <head> <xbl:bindings> <xbl:binding id="grid"> <xbl:content> <xf:repeat xbl:inherits="bind, model, nodeset" anonid="anonidgridrepeat"> <xf:trigger> <xf:label>r</xf:label> <xf:delete ev:event="do
mactivate" at="index('anonidgridrepeat')" xbl:inherits="model, bind, nodeset"/> </xf:trigger> </xf:repeat> </xbl:content> </xbl:binding> </xbl:bindings> <style> div.grid { -moz-binding: url('#grid'); } </style> <xf:model> <xf:instance> <data xmlns=""> <repeat> <item> <input>input1</input>...
The Business Benefits of Web Standards - Archive of obsolete content
while some browsers have quirks that cause different behavior by platform, mozilla-based browsers are designed to behave identically on all supported platforms (
mac, linux, unix, windows...) web content is increasingly being accessed by a growing number of user agents other than browsers, or by browsers on different platforms - for example mobile telephones.
... standards embrace new browsers more and more browsers, other than internet explorer for windows, are used to surf the web: windows: msie, browsers using mozilla's gecko rendering engine, opera
mac: ms-tasman (ie/
mac's rendering engine), gecko-based browsers, safari, opera linux: gecko-based browsers, khtml-based browsers, opera overall, 5 different rendering engines are used to surf the web using dozens of browsers on 3 platforms.
Game distribution - Game development
to do the desktop thing properly you should support all three operating systems: windows,
mac os and linux.
... nw.js — formerly known as node-webkit, this is the first choice when it comes to building a desktop game that works on windows,
mac and linux.
Compile - MDN Web Docs Glossary: Definitions of Web-related terms
usually, a compiler transforms a higher-level language such as c or java, which humans understand, into a
machine language, such as assembly, that the cpu can understand.
...for instance in the browser: firefox' spidermonkey javascript engine has a jit built-in that will compile javascript in a website to
machine code while you're viewing it so it runs faster.
Request header - MDN Web Docs Glossary: Definitions of Web-related terms
a few request headers after a get request: get /home.html http/1.1 host: developer.mozilla.org user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:50.0) gecko/20100101 firefox/50.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip, deflate, br referer: https://developer.mozilla.org/testpage.html connection: keep-alive upgrade-insecure-requests: 1 if-modified-since: mon, 18 jul 2016 02:36:04 gmt if-none-match: "c561c68d0ba92bbeb8b0fff2a...
...9199f722e3a621a" cache-control: max-age=0 strictly speaking, the content-length header in this example is not a request header like the others, but an entity header: post /myform.html http/1.1 host: developer.mozilla.org user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:50.0) gecko/20100101 firefox/50.0 content-length: 128 learn more technical knowledge list of all http headers ...
MDN Web Docs Glossary: Definitions of Web-related terms
oogle chrome gpl gpu graceful degradation grid grid areas grid axis grid cell grid column grid container grid lines grid row grid tracks guard gutters gzip compression h hash head high-level programming language h
mac hoisting host hotlink houdini hpkp hsts html html5 http http header http/2 http/3 https hyperlink hypertext i i18n iana icann ice ide idempotent identifier idl ietf ...
... site map sld sloppy mode slug smoke test smpte (society of motion picture and television engineers) smtp snap positions soap spa (single-page application) specification speculative parsing speed index sql sql injection sri stacking context state
machine statement static method static typing strict mode string stun style origin stylesheet svg svn symbol symmetric-key cryptography synchronous syntax syntax error synthetic monitoring t tag tcp tcp handshake ...
What are browser developer tools? - Learn web development
three ways: keyboard: ctrl + shift + i, except internet explorer and edge: f12
macos: ⌘ + ⌥ + i menu bar: firefox: menu ➤ web developer ➤ toggle tools, or tools ➤ web developer ➤ toggle tools chrome: more tools ➤ developer tools safari: develop ➤ show web inspector.
... opera: developer ➤ developer tools context menu: press-and-hold/right-click an item on a webpage (ctrl-click on the
mac), and choose inspect element from the context menu that appears.
The HTML5 input types - Learn web development
the below screenshots show a non-empty search field in firefox 71, safari 13, and chrome 79 on
macos, and edge 18 and chrome 79 on windows 10.
...the following screenshot taken on firefox for
macos provides an example: and here is a live example for you to try out: the value returned is always a lowercase 6-value hexidecimal color.
Client-side storage - Learn web development
on the user's
machine) and then retrieve it when needed.
... getting started first of all, make local copies of our index.html, style.css, and index-start.js files into a new directory on your local
machine.
Getting started with Ember - Learn web development
first, enter into your todomvc directory in the terminal, for example using cd todomvc in
macos/linux.
... if everything is working correctly, you should see a page like this: note: on windows systems without windows subsystem for linux (wsl), you will experience slower build-times overall compared to
macos, linux, and windows with wsl.
Learn web development
if you prefer to copy the repo in a more flexible way that allows for automatic updates, you can follow the more complex instructions: install git on your
machine.
... open your computer's command prompt (windows) or terminal (linux,
macos).
Browser chrome tests
running the browser chrome tests to run mochitest, first build mozilla with your changes; then run ./
mach mochitest -f browser this will launch your build and open a "browser chrome tests" window, and report the results in the ui and to stdout.
... for example, to run the tests in browser/base/content/test the command would be: ./
mach mochitest -f browser browser/base/content/test/ or without
mach test_path=<path_to_the_tests> make -c <objdir> mochitest-browser-chrome to run tests in debugger the following should work ./
mach mochitest -f browser --debugger gdb browser/base/content/test/ run ./
mach help mochitest-browser for more options.
Building Firefox with Debug Symbols
by default it uses "-g" on linux and
macos.
... breakpad symbol files after the build is complete, run the following command to generate an archive of breakpad symbol files:
mach buildsymbols the tinderbox uses an additional uploadsymbols target to upload symbols to a socorro server.
Makefile - variables
garbage a "clean target"
macro containing a list of files to remove.
... garbage_dirs a "clean target"
macro containing a list of directories to remove.
Getting Started with Chat
the following are some other options available to you: windows
mac linux colloquy ● irssi ● ● ●* xchat ● ○ ● key: ● — binary or executable program available ○ — only available by downloading and compiling source code ●* — binary or executable may be available.
...u want the attention of) nickname: pong respond to a user's ping (nickname is the name of the user who wants your attention) /query nickname opens a private chat with the specified user /quit message disconnects you from the current server displaying the message in all connected channels prior to quitting /reload styles some irc clients, colloquy on
mac in particular, stop displaying your messages in the channel window.
IPDL Tutorial
an ipdl protocol declares how actors communicate: it declares the possible messages that may be sent between actors, as well as a state
machine describing when messages are allowed to be sent.
... when a manager protocol is destroyed, any subprotocols will be notified: no further messages will be accepted deallocpsubprotocol will be called on the manager protocol to deallocate any active subprotocols when the toplevel protocol is destroyed, this is equivalent to shutting down the entire ipdl
machinery for that connection, because no more messages can be sent and all subprotocols are destroyed.
Application Translation with Mercurial
firefox and fx-* denote branches of firefox for desktop, the browser for desktops and notebooks running, windows,
mac os or linux.
...for linux and
mac os) is available on wikipedia.
Index
on
mac and linux, you should be just fine, and on windows, mozillabuild should get you everything you need.
...mercurial allows localizers to work locally (on their
machines) and then push (an hg term) changes to a remote repository, which usually is hosted on the mozilla servers (hg.mozilla.org).
L10n Checks
to do that, you must have python 2.5, 2.6, or 2.7 installed on your
machine.
... once python is installed, the easiest way to install l10n checks (on
mac or linux) is to just run: $ sudo easy_install -u l10n-checks or, if you're on windows: $ easy_install -u l10n-checks installation (development versions) l10n checks needs to be installed, and it requires that you have python and mercurial installed on your
machine.
Localizing with Koala
requirements mercurial, linux, windows or
mac os x.
...c:\mozilla\l10n on windows, /home/user/mozilla/l10n on linux or /users/user/mozilla/l10n on
mac os x).
Localizing without a specialized tool
before we start, did you make sure to install mercurial and confirm that you have set up the proper build environment on your local
machine?
...you can choose to use: notepad++ or notepad2 on windows, vim, gedit or kate on gnu/linux, textwrangler on
mac os x.
Release phase
otherwise, in order to be able to make any changes to the localization files, you will need to clone the repository on your local
machine and work in the local clone.
...'s done: run this command to see recent commits in your local clone: $ hg log -l 3 you should a list of the most recent commits, similar to this one: changeset: 0:7c543e8f3a6a tag: tip user: your name <email@example.com> date: mon nov 23 18:08:25 2009 +0100 summary: added search bar strings now run the hg outgoing command to compare the local repository on your
machine with the remote repository on hg.mozilla.org.
Fonts for Mozilla 2.0's MathML engine
on
mac os x lion (10.7) and higher versions, stix fonts are already installed and can be used for mathml.
...the fonts may be installed by extracting the font files (which have the .otf extension) from the zip archive, then following instructions for microsoft windows, or copying the files to a ~/library/fonts folder on
mac os x, or to a ~/.fonts/ directory (which may need to be created) on unix/linux systems.
MathML Accessibility in Mozilla
mac: mathml support is provided by voiceover.
... mathml windows
mac linux accessfu diagonal of a regular pentagon video video video / x+2 __________ x plus 2 __________ x+2 x plus 2 x + y ab __________ a over b __________ fraction start, a over b, end of fraction fraction start.
Mozilla Development Strategies
find and fix bad xpcom
macro usage.
... here's how to create a branch: from your linux or
mac os x box: # start from your trunk tree on your local disk cd mozilla find .
GC and CC logs
from the commandline tldr: if you just want shutdown gc/cc logs to debug leaks that happen in our automated tests, you probably want something along the lines of: moz_disable_content_sandbox=t moz_cc_log_directory=/full/path/to/log/directory/ moz_cc_log_shutdown=1 moz_cc_all_traces=shutdown ./
mach ...
...by default, they go to a temporary directory which differs per os - it's /tmp/ on linux/bsd, $localappdata\temp\ on windows, and somewhere in /var/folders/ on
mac (whatever the directory service returns for tmpd/ns_os_temp_dir).
TimerFirings logging
first, on
mac the code uses dladdr to get the name immediately, and the output will look like the following.
...(running on
mac or linux is obviously necessary to learn the timer function's name.) this is done by initializing it with initwithnamedfunccallback or initwithnameablefunccallback instead of initwithnamecallback.
accessibility.tabfocus
note: on
mac os x, if this preference is not set, the full keyboard access setting in system preferences > keyboard is honored.
... type:integer default value: 7 (windows and linux); 2 (
mac os x) exists by default: no application support:gecko 1.7 status: active introduction: bugs: bug 140612 values 1 give focus only to text fields (default on
mac osx) 2 give focus to all form elements except text fields.
A guide to searching crash reports
for example, to perform a search for all
mac crash reports that occurred while javascript garbage collection was running, do the following.
... add "
mac os x" to the "platform" field.
NSPR build instructions
build the libraries build the test programs for example, # check out the source tree from mercurial hg clone https://hg.mozilla.org/projects/nspr # create a build directory mkdir target.debug cd target.debug # run the configure script ../nspr/configure [optional configure options] # build the libraries gmake # build the test programs cd pr/tests gmake on
mac os x, use make, which is gnu make.
... on
mac os x, they can be executed with the following: /bin/sh: $ cd pr/tests $ dyld_library_path=../../dist/lib ./accept pass $ $ # to run all the nspr tests...
I/O Functions
nspr converts the slashes in a pathname to the directory separator of the native os--for example, backslash (\) on windows and colon (:) on
mac os--before passing it to the native system calls.
... memory-mapped i/o functions are currently implemented for unix, linux,
mac os x, and win32 only.
Long Long (64-bit) Integers
most of the 64-bit integer operations are implemented as
macros.
... the specific implementation of each
macro depends on whether the compiler for the target platform supports 64-bit integers.
PR_FREEIF
description this
macro returns memory to the heap when _ptr is not null.
... if _ptr is null, the
macro has no effect.
PR_LOG_TEST
syntax #include <prlog.h> prbool pr_log_test ( prlogmoduleinfo *_module, prlogmodulelevel _level); parameters the
macro has these parameters: _module a pointer to a log module structure.
... description this
macro tests whether logging is enabled for the specified module and level.
NSPR API Reference
network addresses network address types and constants network address functions atomic operations pr_atomicincrement pr_atomicdecrement pr_atomicset interval timing interval time type and constants interval functions date and time types and constants time parameter callback functions functions memory management operations memory allocation functions memory allocation
macros string operations pl_strlen pl_strcpy pl_strdup pl_strfree floating point number to string conversion pr_strtod pr_dtoa pr_cnvtf long long (64-bit) integers bitmaps formatted printing linked lists linked list types prclist linked list
macros pr_init_clist pr_init_static_clist pr_append_link pr_insert_link pr_next_link pr_prev_link pr_...
... prprocess prprocessattr process management functions setting the attributes of a new process creating and managing processes multiwait receive system information and environment variables logging conditional compilation and execution log types and variables prlogmoduleinfo prlogmodulelevel nspr_log_modules nspr_log_file logging functions and
macros pr_newlogmodule pr_setlogfile pr_setlogbuffering pr_logprint pr_logflush pr_log_test pr_log pr_assert pr_assert pr_not_reached use example instrumentation counters named shared memory shared memory protocol named shared memory functions anonymous shared memory anonymous memory protocol anonymous shared memory functions ipc semaphores ipc...
NSPR
nspr api reference the reference describes each api public
macro, structure and function in the nspr api.
...
mac: install the
macports nspr package, or the homebrew nspr package.
4.3 Release Notes
release date: 01 april 2009 introduction network security services for java (jss) 4.3 is a minor release with the following new features: sqlite-based shareable certificate and key databases libpkix: an rfc 3280 compliant certificate path validation library pkcs11 needslogin method support h
macsha256, h
macsha384, and h
macsha512 support for all nss 3.12 initialization options jss 4.3 is tri-licensed under mpl 1.1/gpl 2.0/lgpl 2.1.
... libpkix: an rfc 3280 compliant certificate path validation library (see pkixverify) pk11token.needslogin method (see needslogin) support h
macsha256, h
macsha384, and h
macsha512 (see h
mactest.java) support for all nss 3.12 initialization options (see initializationvalues) new ssl error codes (see http://mxr.mozilla.org/security/sour...util/sslerrs.h) ssl_error_unsupported_extension_alert ssl_error_certificate_unobtainable_alert ssl_error_unrecognized_name_alert ssl_error_bad_cert_status_response_alert ssl_error_ba...
NSS 3.14 release notes
s #11 pkcs #11 mechanisms: ckm_aes_cts ckm_aes_ctr ckm_aes_gcm (see warnings against using c_encryptupdate/c_decryptupdate above) ckm_sha224_key_derivation ckm_sha256_key_derivation ckm_sha384_key_derivation ckm_sha512_key_derivation changes in nss 3.14 bug 333601 - performance enhancements for intel
macs when building for intel
macs, nss will now take advantage of optimized assembly code for common operations.
...note that ssl cipher suites with "md5" in their names are not disabled by this change; those cipher suites use h
mac-md5, not plain md5, and are still considered safe.
NSS 3.16.1 release notes
new
macros in secmod.h public_mech_ecc_flag - a public mechanism flag for elliptic curve cryptography (ecc) operations.
...this
macro has the same numeric value as public_mech_ecc_flag.
NSS 3.24 release notes
new elements this section lists and briefly describes the new functions, types, and
macros in nss 3.24.
... new
macros in pkcs11t.h ckm_tls12_
mac in secoidt.h sec_oid_tls_ecdhe_psk - this oid governs the use of the tls_ecdhe_psk_with_aes_128_gcm_sha256 cipher suite, which is used only for session resumption in tls 1.3.
NSS 3.31 release notes
new
macros in pkcs11uri.h several new
macros that start with pk11uri_pattr_ for path attributes defined in rfc7512.
... several new
macros that start with pk11uri_qattr_ for query attributes defined in rfc7512.
NSS 3.44 release notes
implement checkarmsupport for android 1531244 - use __builtin_bswap64 in crypto_primitives.h 1533216 - cert_decodecertpackage() crash with netscape certificate sequences 1533616 - sdb_getattributevaluenolock should make at most one sql query, rather than one for each attribute 1531236 - provide accessor for certcertificate.dercert 1536734 - lib/freebl/crypto_primitives.c assumes a big endian
machine 1532384 - in nss test certificates, use @example.com (not @bogus.com) 1538479 - post-handshake messages after async server authentication break when using record layer separation 1521578 - x25519 support in pk11pars.c 1540205 - freebl build fails with -dnss_disable_chachapoly 1532312 - post-handshake auth doesn't interoperate with openssl 1542741 - certutil -f crashes with segmentation ...
...fault 1546925 - allow preceding text in try comment 1534468 - expose chacha20 primitive 1418944 - quote cc/cxx variables passed to nspr 1543545 - allow to build nss as a static library 1487597 - early data that arrives before the handshake completes can be read afterwards 1548398 - freebl_gtest not building on linux/
mac 1548722 - fix some coverity warnings 1540652 - softoken/sdb.c: logically dead code 1549413 - android log lib is not included in build 1537927 - ipsec usage is too restrictive for existing deployments 1549608 - signature fails with dbm disabled 1549848 - allow building nss for ios using gyp 1549847 - nss's sqlite compilation warnings make the build fail on ios 1550041 - freebl not building on ios simulator 1542950 -
macos cipher test timeouts this bugzilla quer...
NSS 3.51 release notes
bug 1611209 - correct swapped pkcs11 values of ckm_aes_c
mac and ckm_aes_c
mac_general bug 1612259 - complete integration of wycheproof ecdh test cases bug 1614183 - check if ppc __has_include(<sys/auxv.h>) bug 1614786 - fix a compilation error for ‘getfipsenv’ "defined but not used" bug 1615208 - send dtls version numbers in dtls 1.3 supported_versions extension to avoid an incompatibility.
... bug 1538980 - secu_readderfromfile calls strstr on a string that isn't guaranteed to be null-terminated bug 1561337 - correct a warning for comparison of integers of different signs: 'int' and 'unsigned long' in security/nss/lib/freebl/ecl/ecp_25519.c:88 bug 1609751 - add test for mp_int clamping bug 1582169 - don't attempt to read the fips_enabled flag on the
machine unless nss was built with fips enabled bug 1431940 - fix a null pointer dereference in blake2b_update bug 1617387 - fix compiler warning in secsign.c bug 1618400 - fix a openbsd/arm64 compilation error: unused variable 'getauxval' bug 1610687 - fix a crash on unaligned c
maccontext.aes.keyschedule when using aes-ni intrinsics this bugzilla query returns all the bugs fixed in nss 3.51: https://bugzilla.mozilla.org/b...
NSS Config Options
sallow=all allow=sha1:sha256:secp256r1:secp384r1" only the specified hashes and curves will be allowed, and rsa keys of 2048 or more will be accepted, and dh key exchange with 1024-bit primes or more: config="disallow=all allow=sha1:sha256:secp256r1:secp384r1:min-rsa=2048:min-dh=1024" a policy that enables the aes ciphersuites and the secp256/384 curves: config="allow=aes128-cbc:aes128-gcm::h
mac-sha1:sha1:sha256:sha384:rsa:ecdhe-rsa:secp256r1:secp384r1" turn off md5 config="disallow=md5" turn off md5 and sha1 only for ssl config="disallow=md5(ssl):sha1(ssl)" disallow values are parsed first, and then allow values, independent of the order in which they appear.
...191v5 c2pnb208w1 c2tnb239v1 c2tnb239v2 c2tnb239v3 c2onb239v4 c2onb239v5 c2pnb272w1 c2pnb304w1 c2tnb359v1 c2pnb368w1 c2tnb431r1 sect113r1 sect131r1 sect131r1 sect131r2 sect163k1 sect163r1 sect163r2 sect193r1 sect193r2 sect233k1 sect233r1 sect239k1 sect283k1 sect283r1 sect409k1 sect409r1 sect571k1 sect571r1 hashes md2 md4 md5 sha1 sha224 sha256 sha384 sha512
macs h
mac-sha1 h
mac-sha224 h
mac-sha256 h
mac-sha384 h
mac-sha512 h
mac-md5 ciphers aes128-cbc aes192-cbc aes256-cbc aes128-gcm aes192-gcm aes256-gcm camellia128-cbc camellia192-cbc camellia256-cbc seed-cbc des-ede3-cbc des-40-cbc des-cbc null-cipher rc2 rc4 idea ssl key exchanges rsa rsa-export dhe-rsa dhe-dss dh-rsa dh-dss ecdhe-ecdsa ecdhe-rsa ecdh-ecdsa ecdh-rsa re...
NSS Sample Code sample3
sample code 3: hashing,
mac /* * demonstration program for hashing and
macs */ #include <iostream.h> #include "pk11pub.h" #include "nss.h" static void printdigest(unsigned char *digest, unsigned int len) { int i; cout << "length: " << len << endl; for(i = 0;i < len;i++) printf("%02x ", digest[i]); cout << endl; } /* * main */ int main(int argc, const char *argv[]) { int status = 0; pk11slotinfo *slot = 0; pk11symkey *key = 0; pk11context *context = 0; unsigned char data[80]; unsigned char digest[20]; /*is there a way to tell how large the output is?*/ unsigned int len; secstatus s; /* initialize nss * if your application code has already initialized nss, you can skip it * here.
...ne; } s = pk11_digestop(context, data, sizeof data); if (s != secsuccess) { cout << "digestupdate failed" << endl; goto done; } s = pk11_digestfinal(context, digest, &len, sizeof digest); if (s != secsuccess) { cout << "digestfinal failed" << endl; goto done; } /* print digest */ printdigest(digest, len); pk11_destroycontext(context, pr_true); context = 0; /* * part 3 -
mac (with secret key) */ cout << "part 3 --
mac (with secret key)" << endl; /* initialize data */ memset(data, 0xbc, sizeof data); context = pk11_createcontextbysymkey(ckm_md5_h
mac, cka_sign, key, &noparams); if (!context) { cout << "createcontextbysymkey failed" << endl; goto done; } s = pk11_digestbegin(context); if (s != secsuccess) { cout << "digestbegin failed" << endl; goto ...
FIPS mode of operation
fc_digestinit fc_digest fc_digestupdate fc_digestkey fc_digestfinal signature and
mac generation functions these functions support dsa, rsa, ecdsa, and h
mac.
... fc_signinit fc_sign fc_signupdate fc_signfinal fc_signrecoverinit fc_signrecover signature and
mac verification functions these functions support dsa, rsa, ecdsa, and h
mac.
NSS tools : modutil
the jar file uses the nss pkcs #11 jar format to identify all the files to be installed, the module's name, the mechanism flags, and the cipher flags, as well as any files to be installed on the target
machine, including the pkcs #11 module library file and other files such as documentation.
...nspr supports these platforms: o aix (rs6000) o bsdi (x86) o freebsd (x86) o hpux (hppa1.1) o irix (mips) o linux (ppc, alpha, x86) o
macos (powerpc) o ncr (x86) o nec (mips) o os2 (x86) o osf (alpha) o reliantunix (mips) o sco (x86) o solaris (sparc) o sony (mips) o sunos (sparc) o unixware (x86) o win16 (x86) o win95 (x86) o winnt (x86) for example: irix:6.2:mips sunos:5.5.1:sparc linux:2.0.32:x86 win95::x86 the module information is defined independently for each platform in the modulename, modulefile, and fi...
NSS tools : ssltab
for example, assume your development
machine is called intercept.
...if you run the tool on a
machine other than the ssl server to which you are trying to connect, the browser will complain that the host name you are trying to connect to is different from the certificate.
NSS tools : ssltap
for example, assume your development
machine is called intercept.
...if you run the tool on a
machine other than the ssl server to which you are trying to connect, the browser will complain that the host name you are trying to connect to is different from the certificate.
NSS_3.12.3_release_notes.html
new korean seed cipher: new
macros for seed support: in blapit.h: nss_seed nss_seed_cbc seed_block_size seed_key_length in pkcs11t.h: ckk_seed ckm_seed_key_gen ckm_seed_ecb ckm_seed_cbc ckm_seed_
mac ckm_seed_
mac_general ckm_seed_cbc_pad ckm_seed_ecb_encryp...
...backwards compatibility (wildcards) bug 334678: prng_fips1861.c redefines the
macro bsize on hp-ux bug 335016: mpp_pprime (miller-rabin probabilistic primality test) may choose 0 or 1 as the random integer bug 347037: make shlibsign depend on the softoken only bug 371522: auto-update of crls stops after first update bug 380784: pk11mode in non fips mode failed.
NSS Tools modutil
the jar file should also contain any files to be installed on the target
machine, including the pkcs #11 module library file and other files such as documentation.
...the following system names and platforms are currently defined by nspr: aix (rs6000) bsdi (x86) freebsd (x86) hpux (hppa1.1) irix (mips) linux (ppc, alpha, x86)
macos (powerpc) ncr (x86) nec (mips) os2 (x86) osf (alpha) reliantunix (mips) sco (x86) solaris (sparc) sony (mips) sunos (sparc) unixware (x86) win16 (x86) win95 (x86) winnt (x86) here are some examples of valid platform strings: irix:6.2:mipssunos:5.5.1:sparclinux:2.0.32:x86win95::x86.
NSS Tools ssltap
for example, assume your development
machine is called intercept.
... if you run the tool on a
machine other than the ssl server to which you are trying to connect, the browser will complain that the host name you are trying to connect to is different from the certificate.
NSS tools : modutil
the jar file uses the nss pkcs #11 jar format to identify all the files to be installed, the module's name, the mechanism flags, and the cipher flags, as well as any files to be installed on the target
machine, including the pkcs #11 module library file and other files such as documentation.
...nspr supports these platforms: o aix (rs6000) o bsdi (x86) o freebsd (x86) o hpux (hppa1.1) o irix (mips) o linux (ppc, alpha, x86) o
macos (powerpc) o ncr (x86) o nec (mips) o os2 (x86) o osf (alpha) o reliantunix (mips) o sco (x86) o solaris (sparc) o sony (mips) o sunos (sparc) o unixware (x86) o win16 (x86) o win95 (x86) o winnt (x86) for example: irix:6.2:mips sunos:5.5.1:sparc linux:2.0.32:x86 win95::x86 the module information is define...
NSS tools : ssltap
for example, assume your development
machine is called intercept.
... if you run the tool on a
machine other than the ssl server to which you are trying to connect, the browser will complain that the host name you are trying to connect to is different from the certificate.
Installing Pork
build and install mcpp mcpp generates
macro expansion comments that allow pork's elsa to undo
macros, which is necessary in order to get exact position information.
...in particular, -k tells mcpp to add the
macro annotations we use to get exact source positions.
Pork Tool Development
macro expansion this section refers to
macro expansion when using mcpp (see installing pork).
...cppsourceloc wraps sourceloc, providing information about
macro expansion.
JIT Optimization Strategies
the following pseudocode describes the kind of
machine code generated by this optimization: if obj.shape == shape1 then obj.slots[0] elif obj.shape == shape2 then obj.slots[5] elif obj.shape == shape3 then obj.slots[2] ...
...the following pseudocode describes the kind of
machine code generated by this optimization: if obj.shape == shape1 then obj.slots[0] = val elif obj.shape == shape2 then obj.slots[5] = val elif obj.shape == shape3 then obj.slots[2] = val ...
JSFUN_BOUND_METHOD
syntax jsfun_bound_method description this
macro exists only for backward compatibility with existing applications.
...future versions of the javascript engine may not support or recognize this
macro.
JSNative
vp js::value * the arguments, the this argument, the return-value slot, and the callee function object are accessible through this pointer using
macros described below.
... the preferred way to implement a function is to use the js::callargs structure defined there; the
macros providing equivalent functionality are deprecated.
JSVAL_TO_GCTHING
this
macro is exposed in jsapi.h because other jsapi
macros make use of it.
...when possible, it is better to use a more specific
macro, such as jsval_to_object or jsval_to_string.
JS_FS
macros for describing functions, for use with js_defineproperties and js_initclass.
... description use these
macros to define an array of jsfunctionspecs to pass to js_definefunctions or js_initclass.
JS_GET_CLASS
this
macro was removed in spidermonkey 1.8.8 when the signature of js_getclass() was changed to take only an object pointer.
... the js_get_class(cx, obj)
macro abstracted away this detail.
JS_PSGS
this article covers features introduced in spidermonkey 17
macros for describing properties, for use with js_defineproperties and js_initclass.
... description these
macros encapsulate the definition of jsnative-backed jspropertyspecs, by defining the jsnativewrappers for them.
SpiderMonkey 24
spidermonkey 24 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
... the file must conform to the standard c99 <stdint.h> header interface in all respects, providing all that header's types and
macro definitions.
Running Automated JavaScript Tests
basic usage is: jstests.py path_to_js_shell or using
mach: ./
mach jstests note that
mach will generally find the js shell itself; the --shell argument can be used to specify the location manually.
... running jstest in a browser jstests also runs on browser, with the following command: ./
mach jstestbrowser to run specific test, you can use --filter=pattern command-line argument, where pattern is a regexp pattern that is tested against file:///{path_to_obj_dir}/dist/test-stage/jsreftest/tests/jsreftest.html?test={relative_path_to_test_from_js/src/tests} string: ./
mach jstestbrowser --filter=pattern running jstests on treeherder when viewing treeherder after a push to the mozilla...
Thread Sanitizer
threadsanitizer does not work on
mac osx yet.
...in our codebase, this is done using the moz_tsan_blacklist
macro on the function definition.
XPCOM Glue without mozalloc
starting with xulrunner 2.0, the frozen linkage dependent glue (xpcomglue_s.lib on windows, libxpcomglue_s.a on linux and
mac) is dependent on the new infallible memory allocation routines (mozalloc).
...the solution is to link against xpcomglue_s_nomozalloc instead (xpcomglue_s_nomozalloc.lib on windows, libxpcomglue_s_nomozalloc.a on linux and
mac).
How to build an XPCOM component in JavaScript
you can learn how to get
mac, linux, and windows versions of the gecko sdk by reading the article gecko sdk.
... note: the
mac version of the sdk provided for download is powerpc-only.
XPCOM changes in Gecko 2.0
it is possible for a binary component to be compatible with mozilla 1.9.2 and mozilla 2.0 by using the extra
macro ns_impl_mozilla192_nsgetmodule.
...you can use the os and abi chrome registration directives to achieve the same effect: binary-component components/windows/mycomponent.dll abi=winnt_x86-msvc binary-component components/
mac/mycomponent.dylib abi=darwin_x86-gcc3 binary-component components/
mac/mycomponent64.dylib abi=darwin_x86_64-gcc3 binary-component components/linux/mycomponent.so abi=linux_x86-gcc3 this also means that platform-specific preferences are no longer possible.
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.
...they define the module and factory interfaces, and they contain a couple of important
macros as well (see the following chapter for information about using these
macros).
Preface
use c++
macros, special string classes and smart pointers to optimize your code.
... following along with the examples there are a couple of different ways to get xpcom onto your
machine so you can begin to create components.
Creating XPCOM components
de what we'll be working on component registration the regxpcom program registration alternatives overview of the weblock module source digging in: required includes and constants identifiers in xpcom coding for the registration process the registration methods creating an instance of your component weblock1.cpp using xpcom utilities to make things easier xpcom
macros generic xpcom module
macros common implementation
macros declaration
macros weblock2.cpp string classes in xpcom using strings nsembedstring and nsembedcstring smart pointers starting weblock getting called at startup registering for notifications getting access to the category manager providing access to weblock creating the weblock programming inte...
...rface defining the weblock interface in xpidl the xpidl syntax scriptable interfaces subclassing nsisupports the web locking interface implementing weblock declaration
macros representing return values in xpcom xpidl code generation getting the weblock service from a client implementing the iweblock interface the directory service modifying paths with nsifile manipulating files with nsifile using nsilocalfile for reading data processing the white list data iweblock method by method lock and unlock addsite removesite setsites getnext getsites hasmoreelements finishing the component using frozen interfaces copying interfaces into your build environment implementing the nsicontentpolicy interface receiving notifications...
Components.classes
note also that it is possible that a given add-on component with a given contractid will be present on one
machine but not have been installed on another
machine.
... if the given element in the components.classes object is not registered on the
machine then trying to access it will generate a javascript warning in strict mode and the value returned will be the javascript value undefined.
XPCOM glue classes
ns convertasciitoutf16 externalclass declarationns convertutf16toutf8 externalclass declarationns convertutf8toutf16 externalclass declarationns lossyconvertutf16toascii externalclass declarationns_convertasciitoutf16class declarationns_convertutf16toutf8class declarationns_convertutf8toutf16class declarationns_lossyconvertutf16toasciiclass declarationns_overridens_override is a
macro which allows c++ code in mozilla to specify that a method is intended to override a base class method.
... if there is no base class method with the same signature, a compiler with static-checking enabled will fail to compile.ns_postcondition
macrons_precondition
macronsacstringthe nsacstring abstract class represents a character string composed of single-byte storage units.
nsIAccessibleTreeCache
last changed in gecko 1.9.1 (firefox 3.5 / thunderbird 3.0 / seamonkey 2.0) inherits from: nsisupports method overview nsiaccessible getcachedtreeite
maccessible(in long arow, in nsitreecolumn acolumn); void invalidatecache(in long arow, in long acount); void treeviewchanged(); void treeviewinvalidated(in long astartrow, in long aendrow, in long astartcol, in long aendcol); methods getcachedtreeite
maccessible() returns the tree item from the cache for the cell in the specified row and column; the nsiaccessible is created if it doesn't ...
...nsiaccessible getcachedtreeite
maccessible( in long arow, in nsitreecolumn acolumn ); parameters arow the row index.
nsIAppShell
void dispatchnativeevent( in prbool arealevent, in voidptr aevent ); parameters arealevent event is real or a null placeholder (
macintosh).
...void getnativeevent( in prboolref arealevent, in voidptrref aevent ); parameters arealevent event is real or a null placeholder (
macintosh).
nsIBidiKeyboard
(supported on: win32,
mac, gtk2) note: prior to gecko 1.9 this method used a parameter 'out prbool aisrtl' to return the value.
...more info: bug 348724, bug 348724, and gnome bug: 116626
mac only islangrtl is supported on this platform.
nsIHTMLEditor
return value ns_editor_element_not_found if an element is not found (passes ns_succeeded
macro) getfontcolorstate() returns what font face is in the selection.
... return value ns_editor_element_not_found if an element is not found (passes ns_succeeded
macro) getselectioncontainer() returns the deepest container of the selection.
nsIPrintingPrompt
mac: the gfx layer still supports default toolkit behavior for displaying the print dialog.
... defaults for platform service:
mac os x: showprintdialog - displays a native dialog showpagesetup() - displays a native dialog showprogress() - not implemented (provided by os) gtk: there are no native dialogs for gtk.
nsIProcess
note: this function does not work with application bundles on
mac os x, see bug 307463 for details.
... gecko 1.9.1 note prior to gecko 1.9.1 (firefox 3.5), this method did not work on windows or
mac os x.
nsIPromptService
button position flags on linux and
mac, button 2 is on the left of the prompt, while buttons 1 and 0 are on the right.
...on the
mac), or closing the window through the os controls.
nsISound
note: this function is not supported on the
macintosh.
...similarly, if you specify "blow", you can play the
mac os x "blow" system sound, but, similarly, it's played only on the
macintosh.
NS_ADDREF
summary
macro addrefs the argument.
...ns_addref(foo) is equivalent to foo->addref(); this
macro exists mainly for historical reasons, but for consistency and for symmetry with ns_release it should still be used.
NS_ERROR
summary
macro throws a assertion (ns_assertion) with the text "error: (error text)", so writes this text to console (stderr) and to debug logs (nspr logging).
... this
macro is meant for critical errors; like assertions, ns_errors should not be reachable.
NS_IF_ADDREF
summary
macro addrefs the argument, if it is non-null.
...only use this
macro if the pointer might be null; use ns_addref otherwise.
NS_RELEASE
summary
macro decrements the reference count of a pointer by one.
... this
macro also sets the pointer to null.
XPCOM reference
rss feeds are implemented by nslocalmailfolder.ns ensure success
macrons ensure true
macrons_abort_if_falsethis was removed in bug 1127201ns_addref
macrons_assertion
macrons_ensure_arg_pointer
macrons_errorthrows a assertion (ns_assertion) with the text "error: (error text)", so writes this text to console (stderr) and to debug logs (nspr logging).
... this
macro is meant for critical errors; like assertions, ns_errors should not be reachable.ns_if_addref
macrons_if_release
macrons_release
macrons_warning
macronsgetmoduleprocthis function prototype provides the xpcom entry-point into a module.nsiabcard/thunderbird3the nsiabcard interface is used to represent and manipulate cards in the address book.
XPCOM tasks
a first step is moving all qi implementations to the table-like
macros already in place (and some slight modifications to those
macros).
...
macros in "nsisupportsutils.h".
Xptcall Porting Guide
the tree mozilla/xpcom/reflect/xptcall +--public // exported headers +--src // core source | \--md // platform specific parts | +--
mac //
mac ppc | +--unix // all unix | \--win32 // win32 | +--test // simple tests to get started \--tests // full tests via api porters are free to create subdirectories under the base md directory for their given platforms and to integrate into the build system as appropriate for their platform.
...a similar include file (xptcall/public/xptcstubsdef.inc) is expanded using platform specific
macros to define the stub functions.
Test-Info
running test-info locally "test-info" is a
mach command and can be run from any source tree.
... test-info has several sub-commands; the "report" sub-command is used by the test-info tasks mozilla-central$
mach help test-info report to reproduce test-info(all): mozilla-central$
mach test-info report --show-tests --show-summary --show-activedata running test-info on try to run these tasks on try, use something like:
mach try fuzzy -q test-info contact information test-info is maintained by :gbrown.
Index
on window and
mac, the cached compose window is on by default.
...if you are on
mac os x, and on linux do edit > preferences on, select the advanced options panel, click on the general tab, and click on config editor.
Main Windows
osx only:
macmenuoverlay.xul a special overlay for osx that adds a few items to the window menu.
... osx only:
macmenuoverlay.xul a special overlay for osx that adds a few items to the window menu.
Thunderbird Configuration Files
if you are on
mac os x, and on linux do edit > preferences on, select the advanced options panel, click on the general tab, and click on config editor.
... on windows 95/98/me, the path is usually c:\windows\application data\thunderbird\profiles\xxxxxxxx.default\ on linux, the path is usually ~/.thunderbird/xxxxxxxx.default/ on
mac os x, the path is usually ~/library/thunderbird/profiles/xxxxxxxx.default/ %appdata% is a shorthand for the application data path on windows 2000/xp/vista.
WebIDL bindings
you can see an example of what the function declarations should look like by running
mach webidl-example myinterface.
... event handler attributes a lot of interfaces define event handler attributes, like: attribute eventhandler onthingchange; if you need to implement an event handler attribute for an interface, in the definition (header file), you use the handy "impl_event_handler"
macro: impl_event_handler(onthingchange); the "onthingchange" needs to be added to the staticatoms.py file: atom("onthingchange", "onthingchange") the actual implementation (.cpp) for firing the event would then look something like: nsresult myinterface::dispatchthingchangeevent() { ns_named_literal_string(type, "thingchange"); eventinit init; init.mbubbles = false; init.mcancelable ...
Mozilla
mozilla framework based on templates (mfbt) the mozilla framework based on templates ("mfbt") is the central repository for
macros, functions, and data structures used throughout mozilla code, including in the javascript engine.
... signing mozilla apps for
mac os x
mac os x's gatekeeper functionality prevents users from launching applications that haven't been code-signed, in order to help keep their computers secure.
URLs - Plugins
windows and
mac if a file is posted with any protocol other than ftp, the file must be text with unix-style line breaks ('\n' separators only).
...the following code sends a mail message with the default headers from the client
machine.
UI Tour - Firefox Developer Tools
you can search for a file using ctrl + p (cmd + p on a
mac).
... when the source pane is focused you can search for a string in the file using ctrl + f (cmd + f on a
mac).
Deprecated tools - Firefox Developer Tools
the editor mode can be triggered clicking on the icon on the right of the console input, or with ctrl + b (cmd + b on
macos) when in editor mode, the enter key adds a new line in the input, and you can evaluate the expression using ctrl + enter (cmd + enter on
macos).
... starting firefox 72, you can import a javascript file content in the console input with ctrl + o (cmd + o on
macos), as well as saving the console input content to a file using ctrl + s (cmd + s on
macos).
Debugging Firefox Desktop - Firefox Developer Tools
this guide explains how you can use the firefox developer tools to debug a different instance of desktop firefox running on the same
machine.
...if you want to debug a firefox instance from an external
machine, you can change this option, but only do this on a trusted network or set a strong firewall rule to lock down which
machines can access it.
Responsive Design Mode - Firefox Developer Tools
toggling responsive design mode there are three ways to toggle responsive design mode: from the firefox menu: select responsive design mode from the web developer submenu in the firefox menu (or tools menu if you display the menu bar or are on
macos).
... from the developer tools toolbox: press the responsive design mode button in the toolbox's toolbar: from the keyboard: press ctrl + shift + m (or cmd + opt + m on
macos).
Storage Inspector - Firefox Developer Tools
opening the storage inspector you can open the storage inspector by selecting "storage inspector" from the web developer submenu in the firefox menu panel (or tools menu if you display the menu bar or are on
macos), or by pressing its shift + f9 keyboard shortcut.
... you can use ctrl + f (cmd + f on a
mac) to focus the search box.
Toolbox - Firefox Developer Tools
command windows
macos linux cycle through tools left to right ctrl + ] cmd + ] ctrl + ] cycle through tools right to left ctrl + [ cmd + [ ctrl + [ toggle between active tool and settings.
... command windows
macos linux increase font size ctrl + + cmd + + ctrl + + decrease font size ctrl + - cmd + - ctrl + - reset font size ctrl + 0 cmd + 0 ctrl + 0 ...
View Source - Firefox Developer Tools
to activate view source: context-click in the page and select view page source press ctrl + u on windows and linux, or cmd + u on
macos the command opens a new tab with the source for the current page.
... to access go to line from the keyboard, press control + option + l on
macos, or alt + shift + l on windows or linux.
HTMLButtonElement - Web APIs
htmlbuttonelement.for
maction is a domstring reflecting the uri of a resource that processes information submitted by the button.
... the following attributes have been added: autofocus, for
maction, formenctype, formmethod, formnovalidate, formtarget, labels, validity, validationmessage, and willvalidate.
HTMLInputElement - Web APIs
for
maction string: returns / sets the element's for
maction attribute, containing the uri of a program that processes information submitted by the element.
... the following properties have been added: autocomplete, autofocus, dirname, files, for
maction, formenctype, formmethod, formnovalidate, formtarget, height, indeterminate, labels, list, max, min, multiple, pattern, placeholder, required, selectiondirection, selectionend, selectionstart, step, validationmessage, validity, valueasdate, valueasnumber, width, and willvalidate.
enabled - Web APIs
summary indicates whether or not software installation is enabled for this client
machine.
... method of installtrigger object syntax boolean enabled (); parameters none returns true if software installation is enabled for this client
machine; otherwise, false.
InstallTrigger - Web APIs
enabled indicates whether or not software installation is enabled for this client
machine.
... install installs one or more xpi files on the local
machine.
createMediaKeys() - Web APIs
the mediakeysyste
maccess.createmediakeys() method returns a promise that resolves to a new mediakeys object.
... syntax var mediakeys = await mediakeysyste
maccess.createmediakeys(); specifications specification status comment encrypted media extensionsthe definition of 'createmediakeys()' in that specification.
getConfiguration() - Web APIs
the mediakeysyste
maccess.getconfiguration() method returns a mediakeysystemconfiguration object with the supported combination of configuration options.
... syntax var mediakeysystemconfiguration = mediakeysyste
maccess.getconfiguration(); specifications specification status comment encrypted media extensionsthe definition of 'getconfiguration()' in that specification.
keySystem - Web APIs
the mediakeysyste
maccess.keysystem read-only property returns a domstring identifying the key system being used.
... syntax var keysystem = mediakeysyste
maccess.keysystem; specifications specification status comment encrypted media extensionsthe definition of 'keysystem' in that specification.
RTCInboundRtpStreamStats.sliCount - Web APIs
an sli packet is used by a decoder to let the encoder know that it's detected corruption of one or more consecutive
macroblocks (in scan order) in the received media.
... syntax var slicount = rtcinboundrtpstreamstats.slicount; value an unsigned integer indicating the number of sli packets this receiver sent to the remote sender due to lost runs of
macroblocks.
RTCOutboundRtpStreamStats.sliCount - Web APIs
an sli packet is used by a decoder to let the encoder (the sender) know that it's detected corruption of one or more consecutive
macroblocks, in scan order, in the received media.in general, what's usually of interest is that the higher this number is, the more the stream data is becoming corrupted between the sender and the receiver, causing the receiver to request retransmits or to drop frames entirely.
... syntax var slicount = rtcoutboundrtpstreamstats.slicount; value an unsigned integer indicating the number of sli packets the sender received from the receiver due to lost runs of
macroblocks.
RTCRtpStreamStats.sliCount - Web APIs
an sli packet is used by a decoder to let the encoder know that it's detected corruption of one or more consecutive
macroblocks in the received media.
... syntax var slicount = rtcrtpstreamstats.slicount; value an unsigned long integer indicating the number of sli packets the sender received from the receiver due to lost runs of
macroblocks.
SubtleCrypto.deriveKey() - Web APIs
for h
mac: pass an h
mackeygenparams object.
...it derives key material by applying a function such as h
mac to the input password along with some salt, and repeating this process many times.
TextDecoder() - Web APIs
"iso-8859-13", "iso8859-13", "iso885913" 'iso-8859-13' "iso-8859-14", "iso8859-14", "iso885914" 'iso-8859-14' "csisolatin9", "iso-8859-15", "iso8859-15", "iso885915", "l9", "latin9" 'iso-8859-15' "iso-8859-16" 'iso-8859-16' "cskoi8r", "koi", "koi8", "koi8-r", "koi8_r" 'koi8-r' "koi8-u" 'koi8-u' "cs
macintosh", "
mac", "
macintosh", "x-
mac-roman" '
macintosh' "dos-874", "iso-8859-11", "iso8859-11", "iso885911", "tis-620", "windows-874" 'windows-874' "cp1250", "windows-1250", "x-cp1250" 'windows-1250' "cp1251", "windows-1251", "x-cp1251" 'windows-1251' "ansi_x3.4-1968", "ascii", "cp1252", "cp819", "csisolatin1", "ibm819", "iso-8859-1", ...
...9-9", "iso88599", "iso_8859-9", "iso_8859-9:1989", "l5", "latin5", "windows-1254", "x-cp1254" 'windows-1254' "cp1255", "windows-1255", "x-cp1255" 'windows-1255' "cp1256", "windows-1256", "x-cp1256" 'windows-1256' "cp1257", "windows-1257", "x-cp1257" 'windows-1257' "cp1258", "windows-1258", "x-cp1258" 'windows-1258' "x-
mac-cyrillic", "x-
mac-ukrainian" 'x-
mac-cyrillic' "chinese", "csgb2312", "csiso58gb231280", "gb2312", "gb_2312", "gb_2312-80", "gbk", "iso-ir-58", "x-gbk" 'gbk' "gb18030" 'gb18030' "hz-gb-2312" 'hz-gb-2312' "big5", "big5-hkscs", "cn-big5", "csbig5", "x-x-big5" 'big5' "cseucpkdfmtjapanese", "euc-jp", "x-euc-jp" 'euc-jp...
WebGLRenderingContext - Web APIs
the webgl rendering context is an interface, through which you can set and query the state of the graphics
machine, send data to the webgl, and execute draw commands.
... saving the state of the graphics
machine within a single context interface is not unique to webgl.
Clearing with colors - Web APIs
this is why webgl/opengl is often called a state
machine.
... by tweaking those "dials" and "switches" you can modify the internal state of the webgl
machine, which in turn changes how input (in this case, a clear command) translates into output (in this case, all pixels are set to green).
Color masking - Web APIs
this is an important aspect of the webgl state
machine.
... finally, color masking teaches us that webgl is not only a state
machine, it is also a graphics pipeline.
Detect WebGL - Web APIs
the webgl rendering context is an interface, through which you can set and query the state of the graphics
machine, send data to the webgl, and execute draw commands.
... saving the state of the graphics
machine within a single context interface is not unique to webgl.
Window.navigator - Web APIs
o/20100101 firefox/61.0" } else if (susrag.indexof("samsungbrowser") > -1) { sbrowser = "samsung internet"; // "mozilla/5.0 (linux; android 9; samsung sm-g955f build/ppr1.180610.011) applewebkit/537.36 (khtml, like gecko) samsungbrowser/9.4 chrome/67.0.3396.87 mobile safari/537.36 } else if (susrag.indexof("opera") > -1 || susrag.indexof("opr") > -1) { sbrowser = "opera"; // "mozilla/5.0 (
macintosh; intel
mac os x 10_14_0) applewebkit/537.36 (khtml, like gecko) chrome/70.0.3538.102 safari/537.36 opr/57.0.3098.106" } else if (susrag.indexof("trident") > -1) { sbrowser = "microsoft internet explorer"; // "mozilla/5.0 (windows nt 10.0; wow64; trident/7.0; .net4.0c; .net4.0e; zoom 3.6.0; wbx 1.0.0; rv:11.0) like gecko" } else if (susrag.indexof("edge") > -1) { sbrowser = "microsoft ...
...ome/58.0.3029.110 safari/537.36 edge/16.16299" } else if (susrag.indexof("chrome") > -1) { sbrowser = "google chrome or chromium"; // "mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml, like gecko) ubuntu chromium/66.0.3359.181 chrome/66.0.3359.181 safari/537.36" } else if (susrag.indexof("safari") > -1) { sbrowser = "apple safari"; // "mozilla/5.0 (iphone; cpu iphone os 11_4 like
mac os x) applewebkit/605.1.15 (khtml, like gecko) version/11.0 mobile/15e148 safari/604.1 980x1306" } else { sbrowser = "unknown"; } alert("you are using: " + sbrowser); specifications specification status comment html living standardthe definition of 'window: navigator' in that specification.
Privileged features - Web APIs
dependent windows are not implemented on
macos x, this option will be ignored.
...on
mac systems, dialog windows have a different window border and they may get turned into a sheet.
WorkerGlobalScope.navigator - Web APIs
example if you call the following console.log(navigator); inside a worker (which would basically be the equivalent of self.console.log(self.navigator);, as these are being called on the worker scope, which can be referenced with workerglobalscope.self), you will get a workernavigator object written to the console — something like the following: object {online: true, useragent: "mozilla/5.0 (
macintosh; intel
mac os x 10_10_1) ap…ml, like gecko) chrome/40.0.2214.93 safari/537.36", product: "gecko", platform: "
macintel", appversion: "5.0 (
macintosh; intel
mac os x 10_10_1) applewebki…ml, like gecko) chrome/40.0.2214.93 safari/537.36"…} appcodename: "mozilla" appname: "netscape" appversion: "5.0 (
macintosh; intel
mac os x 10_10_1) applewebkit/537.36 (khtml, like gecko) chr...
...ome/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.
Web APIs
mlshadowelement htmlslotelement htmlsourceelement htmlspanelement htmlstyleelement htmltablecaptionelement htmltablecellelement htmltablecolelement htmltableelement htmltablerowelement htmltablesectionelement htmltemplateelement htmltextareaelement htmltimeelement htmltitleelement htmltrackelement htmlulistelement htmlunknownelement htmlvideoelement hashchangeevent headers history hkdfparams h
macimportparams h
mackeygenparams i idbcursor idbcursorsync idbcursorwithvalue idbdatabase idbdatabaseexception idbdatabasesync idbenvironment idbenvironmentsync idbfactory idbfactorysync idbindex idbindexsync idbkeyrange idblocaleawarekeyrange idbmutablefile idbobjectstore idbobjectstoresync idbopendbrequest idbrequest idbtransaction idbtransactionsync idbversionchang...
...ewindowupdate msgestureevent msgraphicstrust msmanipulationevent msrangecollection mssitemodeevent magnetometer mathmlelement mediacapabilities mediacapabilitiesinfo mediaconfiguration mediadecodingconfiguration mediadeviceinfo mediadevices mediaelementaudiosourcenode mediaencodingconfiguration mediaerror mediaimage mediakeymessageevent mediakeysession mediakeystatusmap mediakeysyste
maccess mediakeysystemconfiguration mediakeys medialist mediametadata mediapositionstate mediaquerylist mediaquerylistevent mediaquerylistlistener mediarecorder mediarecordererrorevent mediasession mediasessionactiondetails mediasettingsrange mediasource mediastream mediastreamaudiodestinationnode mediastreamaudiosourcenode mediastreamaudiosourceoptions mediastreamconstraints mediastreamevent med...
:checked - CSS: Cascading Style Sheets
desktopmobilechromeedgefirefoxinternet exploreroperasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internet:checkedchrome full support 1notes full support 1notes notes on
macos, styling <option&rt; elements has no effect.edge full support 12notes full support 12notes notes on
macos, styling <option&rt; elements has no effect.firefox full support 1notes full support 1notes notes from firefo...
...x 56, <option&rt; elements cannot be styled.notes on
macos, styling <option&rt; elements has no effect.ie full support 9opera full support 9notes full support 9notes notes on
macos, styling <option&rt; elements has no effect.safari full support 3.1notes full support 3.1notes notes styling <option&rt; elements has no effect.webview android full support 2chrome android full support 18firefox android full support 4notes ful...
<data> - HTML: Hypertext Markup Language
the html <data> element links a given piece of content with a
machine-readable translation.
... value this attribute specifies the
machine-readable translation of the content of the element.
<input type="range"> - HTML: Hypertext Markup Language
note: the following input attributes do not apply to the input range: accept, alt, checked, dirname, for
maction, formenctype, formmethod, formnovalidate, formtarget, height, maxlength, minlength, multiple, pattern, placeholder, readonly, required, size, src, and width.
... range control mockups since browsers have this flexibility, and to date none support all of the features html defines for range controls, here are some mockups to show you what you might get on
macos in a browser which supports them.
<input>: The Input (Form Input) element - HTML: Hypertext Markup Language
media capture input method in file upload controls checked radio, checkbox whether the command or control is checked dirname text, search name of form field to use for sending the element's directionality in form submission disabled all whether the form control is disabled form all associates the control with a form element for
maction image, submit url to use for form submission formenctype image, submit form data set encoding type to use for form submission formmethod image, submit http method to use for form submission formnovalidate image, submit bypass form control validation for form submission formtarget image, submit browsing context for form submissi...
... for
maction valid for the image and submit input types only.
<select>: The HTML Select element - HTML: Hypertext Markup Language
also note: on
macos, the ctrl + up and ctrl + down shortcuts conflict with the os default shortcuts for mission control and application windows, so you'll have to turn these off before it will work.
...can use on a <select> element: <label>please choose one or more pets: <select name="pets" multiple size="4"> <optgroup label="4-legged pets"> <option value="dog">dog</option> <option value="cat">cat</option> <option value="hamster" disabled>hamster</option> </optgroup> <optgroup label="flying pets"> <option value="parrot">parrot</option> <option value="
macaw">
macaw</option> <option value="albatross">albatross</option> </optgroup> </select> </label> you'll see that: multiple options are selectable because we've included the multiple attribute.
HTML elements reference - HTML: Hypertext Markup Language
<head> the html <head> element contains
machine-readable information (metadata) about the document, like its title, scripts, and style sheets.
... <data> the html <data> element links a given piece of content with a
machine-readable translation.
Choosing between www and non-www URLs - HTTP
a server isn't necessarily a physical
machine: several servers can reside on the same physical
machine.
... or, one server can be handled by several
machines, cooperating to produce the answer or balancing the load of the requests between them.
Evolution of HTTP - HTTP
a typical flow of requests, all through one single connection is now looking like this: get /docs/glossary/simple_header http/1.1 host: developer.mozilla.org user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:50.0) gecko/20100101 firefox/50.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip, deflate, br referer: https://developer.mozilla.org/docs/glossary/simple_header 200 ok connection: keep-alive content-encoding: gzip content-type: text/html; charset=utf-8 date: wed, 20 jul 2016 10:55:30 gmt...
... etag: "547fa7e369ef56031dd3bff2ace9fc0832eb251a" keep-alive: timeout=5, max=1000 last-modified: tue, 19 jul 2016 00:59:33 gmt server: apache transfer-encoding: chunked vary: cookie, accept-encoding (content) get /static/img/header-background.png http/1.1 host: developer.cdn.mozilla.net user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:50.0) gecko/20100101 firefox/50.0 accept: */* accept-language: en-us,en;q=0.5 accept-encoding: gzip, deflate, br referer: https://developer.mozilla.org/docs/glossary/simple_header 200 ok age: 9578461 cache-control: public, max-age=315360000 connection: keep-alive content-length: 3077 content-type: image/png date: thu, 31 mar 2016 13:34:46 gmt last-modified: wed, 21 oct 2015 18:27:50 gmt server: apache (image content of 3077 bytes) http/1.1 was f...
MIME types (IANA media types) - HTTP
localhost:8000/" method="post" enctype="multipart/form-data"> <label>name: <input name="mytextfield" value="test"></label> <label><input type="checkbox" name="mycheckbox"> check</label> <label>upload file: <input type="file" name="myfile" value="test.txt"></label> <button>send the file</button> </form> will send this message: post / http/1.1 host: localhost:8000 user-agent: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:50.0) gecko/20100101 firefox/50.0 accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language: en-us,en;q=0.5 accept-encoding: gzip, deflate connection: keep-alive upgrade-insecure-requests: 1 content-type: multipart/form-data; boundary=---------------------------8721656041911415653955004498 content-length: 465 --------------------------...
...not all operating systems consider these suffixes meaningful (such as linux and
macos), and there is no guarantee they are correct.
Browser detection using the user agent - HTTP
they indicate the os, but also often its version and information on the relying hardware (32 or 64 bits, or intel/ppc for
mac).
... if the device is large enough that it's not marked with “mobi”, you should serve your desktop site (which, as a best practice, should support touch input anyway, as more desktop
machines are appearing with touchscreens).
Proxy Auto-Configuration (PAC) file - HTTP
example convert_addr("104.16.41.2"); // returns the decimal number 1745889538 myipaddress() syntax myipaddress() parameters (none) returns the server ip address of the
machine firefox is running on, as a string in the dot-separated integer format.
... myipaddress() returns the same ip address as the server address returned by nslookup localhost on a linux
machine.
MathML attribute reference - MathML
actiontype <
maction> a string value specifying the action happening for this element.
... selection <
maction> the child element which is addressed by the action.
Authoring MathML - MathML
this gives access to advanced features of latex like
macros.
...this command will generate an xhtml+mathml document foo.xml from a foo.tex latex source: mk4ht mzlatex foo.tex # linux/
mac platforms mzlatex foo.tex # windows platform note that tex4ebook relies on tex4ht to generate epub documents.
MathML element reference - MathML
mathml presentation elements a to z math <math> (top-level element) a <
maction> (binded actions to sub-expressions) <maligngroup> (alignment group) <malignmark> (alignment points) e <menclose> (enclosed contents) <merror> (enclosed syntax error messages) f <mfenced> (parentheses) <mfrac> (fraction) g <mglyph> (displaying non-standard symbols) i <mi> (identifier) l <mlabeledtr> (labeled row in a table or a matrix) <mlongdiv> (long division...
...> <mpadded> <mphantom> <mroot> <mrow> <msqrt> <mstyle> script and limit elements <mmultiscripts> <mover> <mprescripts> <msub> <msubsup> <msup> <munder> <munderover> <none> tabular math <maligngroup> <malignmark> <mlabeledtr> <mtable> <mtd> <mtr> elementary math <mlongdiv> <mscarries> <mscarry> <msgroup> <msline> <msrow> <mstack> uncategorized elements <
maction> semantic annotations <annotation> <annotation-xml> <semantics> ...
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.
... although the browser compiles it to something more efficient, wasm execution is defined in terms of a stack
machine where the basic idea is that every type of instruction pushes and/or pops a certain number of i32/i64/f32/f64 values to/from a stack.
core/promise - Archive of obsolete content
instead of structuring our programs into logical black boxes: function blackbox(a, b) { var c = assemble(a); return combine(b, c); } we're forced into continuation passing style, involving lots of
machinery: function sphagetti(a, b, callback) { assemble(a, function continuewith(error, c) { if (error) callback(error); else combine(b, c, callback); }); } this style also makes doing things in sequence hard: widget.on('click', function onclick() { promptuserfortwitterhandle(function continuewith(error, handle) { if (error) return ui.displayerror(error); twitter.gettweetsfo...
jpm - Archive of obsolete content
here is an example: # ignore .ds_store files created by
mac .ds_store # ignore any zip or xpi files *.zip *.xpi a .jpmignore file with the above contents would ignore all zip files and .ds_store files from the xpi generated by jpm xpi.
Alerts and Notifications - Archive of obsolete content
this works on windows, linux and (if growl is installed)
mac os x: function popup(title, text) { try { components.classes['@mozilla.org/alerts-service;1'] .getservice(components.interfaces.nsialertsservice) .showalertnotification(null, title, text, false, '', null); } catch(e) { // prevents runtime error on platforms that don't implement nsialertsservice } } if you need to display a comparable alert on a platform that doesn't support nsialertsservice, you can do this: function popup(title, msg) { var image = null; var win = components.classes['@mozilla.org/embedc...
Rosetta - Archive of obsolete content
nevertheless, the increasing computational power of modern browsers together with the introduction of typed arrays in ecmascript allow us, in theory, to build full virtual
machines in pure ecmascript.
Code snippets - Archive of obsolete content
nevertheless, the increasing computational power of modern browsers together with the introduction of typed arrays in ecmascript allow us, in theory, to build full virtual
machines in pure ecmascript.
Handling Preferences - Archive of obsolete content
to open the preferences window in firefox, select the following from the main menu: on windows, tools > options on
mac, firefox > preferences on linux, edit > preferences note: keep in mind the usage of the terms "preferences" and "options" in different platforms.
Introduction - Archive of obsolete content
the user agent string for firefox at the time of this writing (in us english,
mac os x) is: mozilla/5.0 (
macintosh; intel
mac os x 10.9; rv:25.0.1) gecko/20100101 firefox/25.0.1 the highlighted section is the gecko version: 25.0.1.
The Box Model - Archive of obsolete content
here's a very simple example of an hbox with 3 child buttons: <hbox> <button label="cat" /> <button label="parrot" /> <button label="porcupine" /> </hbox> this is how it looks on
mac os (the black border was added for illustrative purposes, boxes don't have borders by default): if you use a vbox instead, it looks like this: the orientation of boxes (and most xul elements) can be controlled using the orient attribute or the -moz-box-orient css property.
Firefox addons developer guide - Archive of obsolete content
todo: all fixme notes 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...
List of Former Mozilla-Based Applications - Archive of obsolete content
internet no longer using mozilla technology -- need confirmation and details second life virtual world desktop client switched from embedded mozilla browser to a plugin architecture with a qtwebkit plugin applications that are no longer being developed name description additional information aphrodite browser inactive aol client for
mac internet software no longer available beonex communicator internet software last news item on site from 2004 chameleon theme builder inactive civil netizen p2p file delivery (email attachment replacement) site not updated since 2006 compuserve client internet software no longer available doczilla sgml/xml/html browser ...
Defining Cross-Browser Tooltips - Archive of obsolete content
a quick check of various user agents showed that title attribute contents were displayed as a "tooltip" in: gecko-based browsers (mozilla firefox, netscape 6+, etc.) internet explorer 5.5+/win internet explorer 5.x/
mac safari opera 6.x+ of these, only ie/win treated alt text as a "tooltip"; the other browsers did not reproduce this behavior.
Source Navigator - Archive of obsolete content
let me know if this is wrong..) it can generate a class hierarchy quite easily (unfortunately, not for classnames which are defined by
macro.) installing source navigator in ubuntu execute the following line in a terminal window: sudo apt-get install sourcenav this should install source-navigator.
Automated testing tips and tricks - Archive of obsolete content
todo: check example code in to the tree somewhere how to quit the browser on all platforms window.close() of the last open window does not quit the application on
mac http://people.mozilla.com/~davel/scripts/ - look at quit.js and quit.xul install manifest file in appdir/chrome to map chrome://tests/content to directory containing quit.js and quit.xul example: content tests file:///users/davel/work/tests/ start app with command line flag -chrome chrome://tests/content/quit.xul how to create a new profile from the command line first, use the -createprofile command line flag to add a profile entry to profiles.ini and populate the new profile directory with a prefs.js file firefox-bin -createprofile "testprofile ${prof...
Getting Started - Archive of obsolete content
classic.jar locations linux: folder_with_seamonkey/chrome/classic.jar windows: folder_with_seamonkey\chrome\classic.jar for
mac os x: folder_with_seamonkey/chrome/classic.jar copy classic.jar to another easily accessible folder -- classic is recommended -- extract the contents of that folder, being sure to maintain the directory structure.
Layout System Overview - Archive of obsolete content
this is especially critical when the user is typing into the document: it would be quite unusable if typing a character at the end of a document in the html editor caused the entire document to be reformatted - it would be too slow, at least on low-end
machines.
jspage - Archive of obsolete content
tion";}}}}return typeof a;}function $unlink(c){var b;switch($type(c)){case"object":b={};for(var e in c){b[e]=$unlink(c[e]); }break;case"hash":b=new hash(c);break;case"array":b=[];for(var d=0,a=c.length;d<a;d++){b[d]=$unlink(c[d]);}break;default:return c;}return b;}var browser=$merge({engine:{name:"unknown",version:0},platform:{name:(window.orientation!=undefined)?"ipod":(navigator.platform.match(/
mac|win|linux/i)||["other"])[0].tolowercase()},features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.queryselector)},plugins:{},engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getelementsbyclassname)?950:925)); },trident:function(){return(!window.activexobject)?false:((window.xmlhttprequest)?((document.queryselectorall)?6:5):4)...
Mozilla Application Framework - Archive of obsolete content
mozilla has been ported to more than a dozen platforms including windows (95, 98, nt, 2000, xp, ce),
mac os x, linux, solaris, beos, openvms, os/2, aix, and hp-ux.
BlogPosts - Archive of obsolete content
just browsing: mozilla prism update thanscorner: mozilla prism - webrunner with pazzaz mozilla prism - a revolution in web apps thanscorner: mozilla webrunner 0.7 site specific browsers webrunner using webrunner webrunner + gears = offline desktop reader webrunner 0.5 webrunner 0.5 -
mac support webrunner 0.5 - linux install webrunner, google reader, and google notebook distraction free gtd - 32+ web app files for online todo lists mozilla webrunner: a one-window, tabless browser with no url bar webrunner becomes prism - a mozilla labs project mozilla labs: prism alex faaborg: prism mozilla prism: bringing web apps to the desktop everyone should use site specific browsers mozilla prism portable (spanish) prism, l'avenir des applications web selon mozilla (french) mozilla prism : bundl...
FAQ - Archive of obsolete content
microsoft windows 2000 xp vista
mac os x 10.3.9+ (panther) 10.4 (tiger) 10.5 (leopard) linux kernel 2.2.14+ with glibc 2.3.2, xfree86-3.3.6, gtk+2.0, fontconfig/xft, and libstdc++5 ...
Styling - Archive of obsolete content
the folder names must match the following: windows - winnt
mac os x - darwin linux - linux the folder names are pulled from mozilla and are the same as those used in other mozilla projects, such as extension and xul applications.
Priority Content - Archive of obsolete content
started: scripting plugins:
macromedia flash original: scripting plugins:
macromedia flash wiki location: scripting plugins:
macromedia flash migrators: dependant on (these parts need to be done, put your name down) completed: soap in netscape gecko-based browsers original: soap in netscape gecko-based browsers wiki location: soap in gecko-based browsers migrators: doron rosenberg in progress: css support charts o...
String Quick Reference - Archive of obsolete content
) to grab a segment of a string: // get an 8-character string starting at the 4th position nsautostring leftside; str.left(leftside, 12); nsautostring middle; leftside.right(middle, 8); new way: use substring() to grab a direct reference to those characters: // get an 8-character string starting at the 4th position const nsastring& middle = substring(str, 4, 8); unicode literals what: use
macro tricks to make wide-character literal strings.
Running Tamarin performance tests - Archive of obsolete content
if you've correctly edited and run the android-vars.sh script mentioned on the tamarin build documentation page you should already be pathed to the adb executable in the public sdk/ndk, but if not it exists at /android-public/android-sdk-
mac_86/platform-tools.
Tamarin Roadmap - Archive of obsolete content
tc jan '09 feature links status integrate the tt string class tamarin:string implementation tamarin:strings bug 465506 complete enhanced c++ profiler enhance memory profiler to work in release builds and be more performant in progress enable lir for arm targets bug 460764 complete amd64 nanojit bug 464476 in progress port nanojit to powerpc bug 458077 complete add
mac-x64 and linux-x64 buildbots complete fail build on assertion in acceptance tests complete merge tracking bug bug 469836 in progress tc feb '09 spring backlog tbd.
Treehydra Manual - Archive of obsolete content
de = node.next) { let fn = node.decl; if (decl_struct_function(fn)) { // fn has a body print(fn); let cfg = function_decl_cfg(fn); } } gimple reference for a detailed description of gimple see gcc/tree.def and gcc/cp/operators.def see also treehydra.js, gcc_compat.js, gcc_util.js, and gcc_print.js in the treehydra libs directory, which have many ports of gcc
macros and other functions for conveniently accessing gimple data in javascript.
Using cross commit - Archive of obsolete content
(although it works without specifying -m on the command line if you are using x-enabled e
macs on linux.) also note that if you don't specify any branches to commit on, cross-commit will commit to the trunk and the mozilla_1_8_branch by default.
Mozilla Web Developer Community - Archive of obsolete content
more at http://www.mozilla.org/community/dev...er-forums.html mozillazine forums mozilla news and development help mozilla (testing and development) mozdev.org mozillazine planet mozilla spread firefox standards communities get involved in grass-roots web standards evangelism efforts through these groups: the web standards project, a grassroots coalition fighting for standards
maccaws, making a commercial case for web standards a list apart, for people who make websites mozilla technology evangelism, get involved with mozilla evangelism you may also find helpful information on the w3c mailing lists newsletter there is no newsletter planned at this time.
Popup Guide - Archive of obsolete content
platform specific menu considerations see special per-platform menu considerations for some notes about handling menus on certain platforms, for instance creating the application menu on a
macintosh.
Sorting and filtering a custom tree view - Archive of obsolete content
this way, we don't have to deal with //mapping between the two data.push({name: "leonardo", description: "leader", weapon: "dual katanas"}); data.push({name: "michaelangelo", description: "party dude", weapon: "nunchaku"}); data.push({name: "donatello", description: "does
machines", weapon: "bo"}); data.push({name: "raphael", description: "cool, but rude", weapon: "sai"}); data.push({name: "splinter", description: "rat", weapon: "walking stick"}); data.push({name: "shredder", description: "armored man", weapon: "blades"}); data.push({name: "casey jones", description: "goalie masked man", weapon: "hockey stick"}); data.push({name: "april o'neil", description:...
Tree View Details - Archive of obsolete content
+ 1, 0, [toinsert[i], false]); } this.treebox.rowcountchanged(idx + 1, toinsert.length); } this.treebox.invalidaterow(idx); }, getimagesrc: function(idx, column) {}, getprogressmode : function(idx,column) {}, getcellvalue: function(idx, column) {}, cycleheader: function(col, elem) {}, selectionchanged: function() {}, cyclecell: function(idx, column) {}, perfor
maction: function(action) {}, perfor
mactiononcell: function(action, index, column) {}, getrowproperties: function(idx, prop) {}, getcellproperties: function(idx, column, prop) {}, getcolumnproperties: function(column, element, prop) {}, }; function init() { document.getelementbyid("elementlist").view = treeview; } ]]></script> </window> next, we'll look in more detail at the tree box o...
menu - Archive of obsolete content
a dommenuite
mactive event will be sent to the item when the item is hovered over, and a dommenuiteminactive event will be sent to the item when the selection moves away.
preference - Archive of obsolete content
in pref dialogs with instantapply == true (default on
mac os x) this value is kept in sync with the actual value stored in the preferences (see valuefrompreferences).
XULRunner tips - Archive of obsolete content
on windows: firefox.exe -app path\to\application.ini on linux: firefox -app path/to/application.ini on the
mac: /applications/firefox.app/contents/
macos/firefox-bin -app /path/to/application.ini note that at least on the
mac, you need to use a full path.
What XULRunner Provides - Archive of obsolete content
(uses native os filepicker as appropriate) find toolbar helper app dialog/ui security ui (maintenance of ssl keychains, etc) embedding apis the following embedding apis are provided by xulrunner: cross-platform embedding (xre_initembedding) javaxpcom embedding gtkmozembed (linux only) activex control (windows only) (not yet complete) obsolete since gecko 7.0 nsview-based-widget (
mac os x only) (not yet complete) the "maybe" list the following features have been discussed and may be included if developer time permits and code size is controlled: ldap support spellchecking support (with or without dictionaries provided) see bug 285977 core support for profile roaming (with application-specific extensibility) pyxpcom embedding (not yet complete) - but it does work, if...
XUL Explorer - Archive of obsolete content
installs latest version: install (windows): xulexplorer-1.0a1pre.en-us.win32.exe 6.6mb install (
mac): xulexplorer-1.0a1pre.en-us.
mac.dmg 9.3mb install (linux): xulexplorer-1.0a1pre.en-us.linux-i686.tar.bz2 8.4mb contributing source code in svn bugzilla (for bugs and suggestions) open bugs, enter new bug blog posts xul explorer - updated (1.0a1pre) xul explorer 0.4 xul explorer 0.3 xul explorer 0.2 exploring xul ...
Mozilla.dev.apps.firefox-2006-09-29 - Archive of obsolete content
29, 2006 announcements 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.
2006-09-29 - Archive of obsolete content
29, 2006 announcements 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.
2006-10-13 - Archive of obsolete content
discussions shared training.dat & message filters jon-mikel is looking for suggestions on sharing spam filter data and message filters between
machines easily.
2006-11-10 - Archive of obsolete content
discussions violation of smtp protocol in thunderbird hector reports two bugs: thunderbird ignores the smtp protocol state
machine by ignoring the 501 response codes.
2006-10-06 - Archive of obsolete content
summary: mozilla.dev.builds - september 30th to october 6th 2006 tb mozilla_1_8_branch build problem on
mac os x (10.4.7, universal build) ludwig hügelschäfer stated that he has been encountering an error when he executes a "make export" operation on thunderbird (part of the mozilla_1_8_branch) since september 15th.
NPVariant - Archive of obsolete content
l number npvarianttype_int32 or npvarianttype_double string npvarianttype_string all other types npvarianttype_object functions npn_releasevariantvalue() npn_getstringidentifier() npn_getstringidentifiers() npn_getintidentifier() npn_identifierisstring() npn_utf8fromidentifier() npn_intfromidentifier()
macros plugin developers are not expected to directly manipulate or access the members of the npvariant instance, instead, the function npn_releasevariantvalue(), and the following
macros are provided: npvariant_is_void() evaluates to true if v is of type npvarianttype_void.
Introduction to SSL - Archive of obsolete content
it uses tcp/ip on behalf of the higher-level protocols, and in the process allows an ssl-enabled server to authenticate itself to an ssl-enabled client, allows the client to authenticate itself to the server, and allows both
machines to establish an encrypted connection.
NSPR Release Engineering Guide - Archive of obsolete content
copy /share/builds/components/nspr20/vx.y.z/* to /share/systems/mozilla/pub/nspr/vx.y.z/ original document information author: larryh@netscape.com last updated date: september 20, 2000 1 copying files to /share/builds/components requires that one be logged on to a
machine named "smithers" as user "svbld".
Tamarin Tracing Build Documentation - Archive of obsolete content
for instructions on tamarin central, please see tamarin build documentation supported platforms operating system processor status windows xp x86 supported, acceptance and performance tests automated in buildbot
mac os x 10.4 x86 supported, acceptance and performance tests automated in buildbot linux - ubuntu 8.0.4 x86 supported, acceptance and performance tests automated in buildbot windows mobile (pocket pc 5.0) armv4t supported, acceptance and performance tests automated in buildbot raw image (no os) armv5 supported, acceptance and performance tests not done linux (nokia n810) armv5 supported, acceptance and performance tests not done current build sta...
:-moz-system-metric() - Archive of obsolete content
syntax values -moz-windows-compositormedia: media/visual accepts min/max prefixes: no:-moz-system-metric(images-in-menus)the :-moz-system-metric(images-in-menus) css pseudo-class matches an element if the computer's user interface supports images in menus.:-moz-system-metric(
mac-graphite-theme):-moz-system-metric(
mac-graphite-theme) will match an element if the user has chosen the "graphite" appearance in the "appearance" prefpane of the
mac os x system preferences.:-moz-system-metric(scrollbar-end-backward)the :-moz-system-metric(scrollbar-end-backward) css pseudo-class will match an element if the computer's user interface includes a backward arrow button at the end of...
CSS - Archive of obsolete content
it only works on
mac os x.-ms-acceleratorthe -ms-accelerator css property is a microsoft extension that sets or retrieves a string indicating whether the object represents a keyboard shortcut.-ms-block-progressionthe -ms-block-progression css property is a microsoft extension that specifies the block progression and layout orientation.-ms-content-zoom-chainingthe -ms-content-zoom-chaining css property is a microsoft ...
Standards-Compliant Authoring Tools - Archive of obsolete content
macromedia™ dreamweaver™ cs6 style master and layout master by western civilisation some caveats: it appears that tools currently available from namo generate ie-specific or netscape 4-specific code that may require extra debugging for compatibility with standards-based browsers.
Troubleshooting XForms Forms - Archive of obsolete content
if you are developing on your local
machine using apache tomcat for example then add the following regular expression on a new line: ^http://localhost:8080/.* use the xforms buddy to view instance data the xforms buddy extension allows you to dynamically view model instance data while the xforms is running in the firefox browser.
XForms Switch Module - Archive of obsolete content
example <switch> <case id="in" selected="true"> <input ref="yourname"> <label>please tell me your name</label> <toggle ev:event="do
mactivate" case="out"/> </input> </case> <case id="out" selected="false"> <html:p>hello <output ref="yourname" /> <trigger id="editbutton"> <label>edit</label> <toggle ev:event="do
mactivate" case="in"/> </trigger> </html:p> </case> </switch> ...
XQuery - Archive of obsolete content
xquseme is a working proof-of-concept (so far tested on windows and linux with java installed;
mac does not work) extension which allows one to perform xqueries on external urls, the currently loaded webpage (even if originally from poorly formed html), and/or xml (including well-formed xhtml) documents stored locally.
Archive of obsolete content
mmgc mmgc is the tamarin (née
macromedia) garbage collector, a memory management library that has been built as part of the avm2/tamarin effort.
Index - Game development
in gecko, async compilation allows the javascript engine to compile the asm.js off the main thread when the game is loading and cache the generated
machine code so that the game doesn't need to be compiled on subsequent loads (starting in firefox 28).
Async scripts for asm.js - Game development
in gecko, async compilation allows the javascript engine to compile the asm.js off the main thread when the game is loading and cache the generated
machine code so that the game doesn't need to be compiled on subsequent loads (starting in firefox 28).
Tutorials - Game development
along the way you will learn the basics of using the <canvas> element to implement fundamental game mechanics like rendering and moving images, collision detection, control
machanisms, and winning and losing states.
Cross browser testing - Learn web development
what browsers, devices, and other segments should you make sure are tested), lo-fi testing strategies (get yourself a range of devices and some virtual
machines and do ad-hoc tests when needed), higher tech strategies (automation, using dedicated testing apps), and testing with user groups.
Information for External Developers Dealing with Accessibility
mac keys: keyboard shortcuts quick reference for
mac os x complete reference on keyboard for
mac os x: this document list all functions of specified keys, known keyboard shortcuts, explains how to create keyboard shortcuts, explains appropriate use for the arrow keys, how to move the insertion point with keys, how to extent text selection with keys, functions of function keys, what are rese...
Mozilla Plugin Accessibility
the same solution will be used for bug 140566 (full page plugins) and bug 78414 (partial page plugins), as well as the linux-specific bug 84159 and
mac-specific bug 180426.
Testopia
the good news is that the current code in the git repository already works with bugzilla 5.0, and so if you upgraded to 5.0 already, and if you don't mind having a work-in-progress extension on your
machine, you can decide to pull the code from the git repository.
Debugging Frame Reflow
on
mac this is accomplished with: $ env dyld_library_path="`pwd`/obj-ff-dbg/dist/nightlydebug.app/contents/
macos" \ ./obj-ff-dbg/dist/nightlydebug.app/contents/
macos/firefox-bin > logfile.txt after loading your testcase, the log file will contain the promised information.
Debugging OpenGL
linux64-debug, then find the build link on the right hand side (this would be target.tar.bz2 for linux, target.dmg for
macos, and target.zip for windows).
Makefile - targets
compile firefox, thunderbird, etc check standalone shell unit test invoked directly by make configure launch the configure program to define headers and and attributes for the target build
machine.
Windows SDK versions
(this was certainly the case for 64 bit windows 7 on a late 2008
macbook pro.) warning: due to a bug in windows 7 sdk, if you get "sdksetup encountered an error: expecting path %systemroot% to represent a valid system volume" error you may require to set environmental variable %windir% to something like "c:\windows" instead of "%systemroot%".
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.
Contributing to the Mozilla code base
here are some further resources to help: ask for help in a comment on the bug, or in #introduction:mozilla.org or #developers:mozilla.org check out https://developer.mozilla.org/docs/developer_guide and its parent document, https://developer.mozilla.org/docs/mozilla our reviewer checklist is very useful, if you have a patch near completion, and seek a favorable review utilize our build tool
mach, its linting, static analysis, and other code checking features step 3: get your code reviewed once you fix the bug, you can advance to having your code reviewed.
Working with Mozilla source code
getting a pre-configured mozilla build system virtual
machine this is the easiest way to get started: use a virtualbox virtual
machine which is already configured with a complete build environment for you to use.
Developer guide
mozilla build vm a virtualbox compatible virtual
machine configured with all the software needed to build and work on firefox.
Experimental features in Firefox
editor's note: when adding features to these tables, please try to include a link to the relevant bug or bugs using the bug
macro: {{bug(bug-number)}}.
Firefox
firefox is mozilla's popular web browser, available for multiple platforms including windows,
macos, and linux on the desktop and all android and ios mobile devices.
Chrome-only CSS reference
it only works in chrome code, and only on
mac os x.:-moz-lwthemethe :-moz-lwtheme pseudo-class matches in chrome documents when the root element's lightweightthemes attribute is true and a theme is selected.:-moz-lwtheme-brighttextthe :-moz-lwtheme-brighttext pseudo-class matches in chrome documents when :-moz-lwtheme is true and a lightweight theme with a bright text color is selected.:-moz-lwtheme-darktextthe :-moz-lwtheme-darktext pseudo-...
Hacking with Bonsai
the build team will then pull the 8:00 am tree, and build it on a subset of the platforms, linux, win32 &
macppc.
How Mozilla determines MIME Types
externalhelperappservice (located at uriloader/exthandler/nsexternalhelperappservice.cpp) the file->mime type mapping works like this: on beos, the operating system is asked for the type of the file (not quite yet, bug 217723) on
macos, the type and creator code will be used to lookup the type of the file from the os a hardcoded list of extensions is checked (containing currently 13 entries, nsexternalhelperappservice.cpp line 463 (this is done for speed – it is faster to find data in the hardcoded list than asking the os or looking in preferences) if the extension is not listed there, it becomes interesting.
How to investigate Disconnect failures
we cannot investigate failures via mozmill, because we do not catch the crashes, so the crashes' information is not logged; we have to go to ci
machines and investigate directly.
Integrated Authentication
instead, it leverages system libraries that provide spnego; sspi on microsoft windows, and gss-api on linux,
mac osx, and other unix-like systems.
JavaScript-DOM Prototypes in Mozilla
here is an attempt to modify a host object: (function(){ try { image.prototype.src = 1; } catch(ex){ alert(ex); } })(); this demonstrates that the image constructor, a host object supported in nearly all browsers for
mac and windows, has a prototype property, and that an attempt to modify the prototype's src - property results in an error.
JNI.jsm
if you would like to support versions before that, you can copy and paste the contents of the jsm file int jni stands for java native interface; this library allows calling java code running in java virtual
machines (jvms), etc.
Localization and Plurals
22, 32, 42, 52, 62, 72, 82, 92, 102, 112, 122, 132, 142, 152, 162, 172, 182, 192, 202, 212, 222, 232, 242, 252, 262, 272, 282, 292, … everything else: 0, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 50, 53, 54, 55, 56, 57, 58, 59, 60, 63, … plural rule #15 (2 forms) families: icelandic,
macedonian ends in 1, excluding 11: 1, 21, 31, 41, 51, 61, 71, 81, 91, 101, 121, 131, 141, 151, 161, 171, 181, 191, 201, 221, 231, 241, 251, 261, 271, 281, 291, … everything else: 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, … plural rule #16 (5 form...
Initial setup
a solid, unicode-based, text editor here are some suggestions: windows: notepad++ or notepad2 gnu/linux: vim, gedit or kate
mac os x: textwrangler gnu make make is a tool which controls the generation of executables.
SVN for Localizers
mac os x users can find svn inside the command line tools (available on the apple developer website), or use tools like homebrew or fink.
Creating localizable web applications
good: image file (/img/tignish/firefox/performance-chart.png): html: (in this case, no gettext was used and the localizers worked on pure html files) <div id="performance-chart"> <h4>firefox performance: fast — faster — <em>fastest</em></h4> <p>results of a sunspider test on a windows xp
machine</p> <img src="/img/tignish/firefox/performance-chart.png" alt="firefox 2, firefox 3, firefox 3.5 performance chart" /> <ul> <li>18,148 ms</li> <li>3,669 ms</li> <li>1,524 ms!</li> </ul> </div> in the above example, not only does the text above the clock charts require translation, but so do the milliseconds captions below them.
MathML3Testsuite
this exception also holds for obsolete features (such as
macro, mode etc) or for other undefined behaviors (attribute href for example).
MathML Torture Test
chy="false">(</mo><mi>σ</mi><mo stretchy="false">)</mo></mrow><mrow><munderover><mo>∏</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><msub><mi>a</mi><mrow><mi>i</mi><mo>,</mo><msub><mi>σ</mi><mi>i</mi></msub></mrow></msub></mrow></mrow></math></td> </tr> </table> <br><br> <table dir="rtl"> <tr> <td></td> <th scope="col">maghreb style</th> <th scope="col">
machrek style</th> <th scope="col">persian style</th></tr> <tr> <td>1</td> <td> <math dir="rtl" display="block"> <mrow> <msup> <mi>𞸎</mi> <mn>٢</mn> </msup> <msup> <mi>𞸑</mi> <mn>٢</mn> </msup> </mrow> </math> </td> <td> <math dir="rtl" disp...
Various MathML Tests
testing mathml <merror>, <mtext>: this is a text in mtext this is a text in merror testing <
maction>: click to toggle between expressions, and watch the status line onmouseover/onmouseout: statusline#first expression first expression statusline#second expression second expression statusline#and so on...
Mozilla Web Developer FAQ
please note that
mac ie 5 behaves in the same way as mozilla when it comes to the alt and title attributes.
Mozilla Web Services Security Model
llow type="soapv"/> <allow type="soap"/> </webscriptaccess> good examples (needed.) references new security model for web services, the original proposal for the web-scripts-access.xml file format web services roadmap, documenting when web services features, including the security model, were first supported additional reading documentation of crossdomain.xml, a similar format used by
macromedia flash player ...
Investigating leaks using DMD heap scan mode
the command you need to run firefox will look something like this: xpcom_mem_bloat_log=1 moz_cc_log_shutdown=1 moz_disable_content_sandbox=t moz_cc_log_directory=$logdir moz_cc_log_process=content moz_cc_log_thread=main moz_dmd_shutdown_log=$logdir moz_dmd_log_process=tab ./
mach run --dmd --mode=scan breaking this down: xpcom_mem_bloat_log=1: this reports a list of the counts of every object created and destroyed and tracked by the xpcom leak tracking system.
GPU performance
amd gpu shaderanalyzer - will compile a shader and show the
machine code and give static pipeline estimations.
Memory reporting
and moz_collect_report is a
macro that makes things a bit shorter.
Profiling with Instruments
in the top left, next to the record and pause button, there will be a "[
machine name] > all processes".
about:memory
this is often much higher than any other measurement (particularly on
mac).
Phishing: a short definition
earlier responses by affected banks, and payment providers, was to attempt educating users to not click links in emails, along with requesting to verify email legiti
macy through checking for relevant personal information.
Preferences system
using this system it is possible to create preferences windows that display and operate appropriately on various platforms (windows,
macos x and gnome).
Debugging out-of-memory problems
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.
Leak And Bloat Tests
user_pref("mail.folder.views.version", 1); user_pref("mail.spam.version", 1); user_pref("mailnews.quotingprefs.version", 1); user_pref("mailnews.ui.threadpane.version", 6); changes to leak and bloat tests date and time (pst) description approx effect on numbers pre dec 2008 initial version - 2008/12/07 11:20 bug 463594 disabled os x and outlook address books via the preference settings
mac lk -56.2kb.
Midas editor module security preferences
this functionality is completely removed since 2013-12-14 18:23 pst, see: bugs 38966 and 913734 note: if you've reached this page from a message box in firefox or another mozilla product, try using keyboard shortcuts for the cut, copy, and paste commands: copy: ctrl+c or ctrl+insert (command+c on
mac) paste: ctrl+v or shift+insert (command+v on
mac) cut: ctrl+x or shift+delete (command+x on
mac) the information on the rest of this page is for web developers and advanced users.
About NSPR
the current implementation supports
macintosh (ppc), win-32 (winnt, win9x) and 20 versions of unix and is still expanding.
NSPR Contributor Guide
provide header file descriptions that fully document your public typedefs, enums,
macros and functions.
Date and Time
macros for time unit conversion types and constants time parameter callback functions functions
macros for time unit conversion
macros for converting between seconds, milliseconds, microseconds, and nanoseconds.
PLHashNumber
the
macro pl_hash_bits is the size (in bits) of the plhashnumber data type and has the value of 32.
PRNetAddr
(note that prnetaddr does not have the length field that is present in struct sockaddr_in on some unix platforms.) the
macros pr_af_inet, pr_af_inet6, pr_inaddr_any, pr_inaddr_loopback are defined if prio.h is included.
PR_CreatePipe
pr_createpipe is currently implemented on unix, linux,
mac os x, and win32 only.
PR_CreateThread
if you pass zero in this parameter, pr_createthread chooses the most favorable
machine-specific stack size.
PR_DELETE
description this
macro returns allocated memory to the heap from the specified location and sets _ptr to null.
NSS 3.20 release notes
new types in sslt.h ssldhegrouptype - enumerates the set of dhe parameters embedded in nss that can be used with function ssl_dhegroupprefset new
macros in ssl.h ssl_enable_server_dhe - a socket option user to enable or disable dhe ciphersuites for a server socket notable changes in nss 3.20 the tls library has been extended to support dhe ciphersuites in server applications.
NSS 3.30 release notes
new
macros in ciferfam.h pkcs12_aes_cbc_128, pkcs12_aes_cbc_192, pkcs12_aes_cbc_256 - cipher family identifiers corresponding to the pkcs#5 v2.1 aes based encryption schemes used in the pkcs#12 support in nss in pkcs11n.h cka_nss_mozilla_ca_policy - identifier for a boolean pkcs#11 attribute, that should be set to true, if a ca is present because of it's acceptance according to the ...
NSS 3.36.4 release notes
bugs fixed in nss 3.36.4 bug 1461731 - fix crash on
macos related to authentication tokens, e.g.
NSS 3.38 release notes
new functions in secitem.h secitem_makeitem - allocate and make an item with the requested contents new
macros in ssl.h ssl_record_size_limit - used to control the tls record size limit extension notable changes in nss 3.38 fixed cve-2018-0495 in bug 1464971.
NSS 3.44.2 release notes
bugs fixed in nss 3.44.2 bug 1582343 - soft token
mac verification not constant time bug 1577953 - remove arbitrary hkdf output limit by allocating space as needed this bugzilla query returns all the bugs fixed in nss 3.44.2: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.44.2 compatibility nss 3.44.2 shared libraries are backward compatible with all olde...
NSS 3.46.1 release notes
bugs fixed in nss 3.46.1 bug 1582343 - soft token
mac verification not constant time bug 1577953 - remove arbitrary hkdf output limit by allocating space as needed this bugzilla query returns all the bugs fixed in nss 3.46.1: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.46.1 compatibility nss 3.46.1 shared libraries are backward compatible with all olde...
NSS 3.46 release notes
hangs on windows x64 when building nss since changeset 9162c654d06915f0f15948fbf67d4103a229226f bug 1564875 - improve rebuilding with build.sh bug 1565243 - support tc_owner without email address in nss taskgraph bug 1563778 - increase maxruntime on
mac taskcluster tools, ssl tests bug 1561591 - remove -wmaybe-uninitialized warning in tstclnt.c bug 1561587 - remove -wmaybe-uninitialized warning in lgattr.c bug 1561558 - remove -wmaybe-uninitialized warning in httpserv.c bug 1561556 - remove -wmaybe-uninitialized warning in tls13esni.c bug 1561332 - ec.c:28 warning: comparison of integers of different signs: 'int' and 'unsigned long' bug 15...
NSS 3.48 release notes
.48 bug 1593401 - fix race condition in self-encrypt functions bug 1599545 - fix assertion and add test for early key update bug 1597799 - fix a crash in nssckfwobject_getattributesize bug 1591178 - add entrust root certification authority - g4 certificate to nss bug 1590001 - prevent negotiation of versions lower than 1.3 after helloretryrequest bug 1596450 - added a simplified and unified
mac implementation for h
mac and c
mac behind pkcs#11 bug 1522203 - remove an old pentium pro performance workaround bug 1592557 - fix prng known-answer-test scripts bug 1586176 - encryptupdate should use maxout not block size (cve-2019-11745) bug 1593141 - add `notbefore` or similar "beginning-of-validity-period" parameter to mozilla::pkix::trustdomain::checkrevocation bug 1591363 - fix a pbkdf2 ...
NSS 3.49 release notes
softoken ckm_nss_chacha20_ctr initialization bug 1590001 - additional hrr tests (cve-2019-17023) bug 1600144 - treat clienthello with message_seq of 1 as a second clienthello bug 1603027 - test that esni is regenerated after helloretryrequest bug 1593167 - intermittent mis-reporting potential security risk sec_error_unknown_issuer bug 1535787 - fix automation/release/nss-release-helper.py on
macos bug 1594933 - disable building dbm by default bug 1562548 - improve gcm perfomance on aarch32 this bugzilla query returns all the bugs fixed in nss 3.49: https://bugzilla.mozilla.org/buglist.cgi?resolution=fixed&classification=components&query_format=advanced&product=nss&target_milestone=3.49 compatibility nss 3.49 shared libraries are backward compatible with all older nss 3.x shared li...
NSS 3.50 release notes
lems with neon-specific code in freebl bug 1575843 - detect aarch64 cpu features on freebsd bug 1607099 - remove the buildbot configuration bug 1585429 - add more hkdf test vectors bug 1573911 - add more rsa test vectors bug 1605314 - compare all 8 bytes of an mp_digit when clamping in windows assembly/mp_comba bug 1604596 - update wycheproof vectors and add support for cbc, p256-ecdh, and c
mac tests bug 1608493 - use aes-ni for non-gcm aes ciphers on platforms with no assembly-optimized implementation, such as
macos.
NSS 3.56 release notes
bugs fixed in nss 3.56 bug 1650702 - support sha-1 hw acceleration on armv8 bug 1656981 - use mpi comba and mulq optimizations on x86-64
macos.
NSS Developer Tutorial
variadic
macro arguments are permitted, but their use should be limited to using __va_args__.
NSS Sample Code Utilities_1
ta from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(asc, "-----begin")) != null) { char *trailer = null; asc = body; body = port_strchr(body, '\n'); if (!body) body = port_strchr(asc, '\r'); /* maybe this is a
mac file */ if (body) trailer = strstr(++body, "-----end"); if (trailer != null) { *trailer = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n"); port_free(filedata.data); rv = secfailure; goto cleanup; } } else { b...
Utilities for nss samples
ta from input file\n"); rv = secfailure; goto cleanup; } /* check for headers and trailers and remove them */ if ((body = strstr(asc, "-----begin")) != null) { char *trailer = null; asc = body; body = port_strchr(body, '\n'); if (!body) body = port_strchr(asc, '\r'); /* maybe this is a
mac file */ if (body) trailer = strstr(++body, "-----end"); if (trailer != null) { *trailer = '\0'; } else { pr_fprintf(pr_stderr, "input has header but no trailer\n"); port_free(filedata.data); rv = secfailure; goto cleanup; } } else { b...
NSS Sample Code
sample code 1: key generation and transport between servers sample code 2: symmetric encryption sample code 3: hashing,
mac sample code 4: pki encryption sample code 5: pki encryption with a raw public & private key in der format sample code 6: persistent symmetric keys in nss database these are very old examples in need of replacement.
NSS sources building testing
on
machines that are configured with a hostname that has been registered in your network's dns, this should work automatically.
New NSS Samples
see https://bugzilla.mozilla.org/show_bug.cgi?id=490238 how to download the samples: hg clone https://hg.mozilla.org/projects/nss; cd nss; hg update samples_branch samples list: sample code 1: hashing sample code 2: init nss database sample code 3: encrypt/decrypt and
mac using token sample code 4: encrypt/decrypt and
mac using session objects sample code 5: encrypt/decrypt/
mac output public key as a csr sample code 6: encrypt/decrypt/
mac generating a pkcs#11 csr common code used by these samples: sample code 0: utilities thanks are due to shailendra jain, mozilla community member, who is the principal author of these samples.
Overview of NSS
rsa, dsa, ecdsa, diffie-hellman, ec diffie-hellman, aes, triple des, des, rc2, rc4, sha-1, sha-256, sha-384, sha-512, md2, md5, h
mac: common cryptographic algorithms used in public-key and symmetric-key cryptography.
PKCS11 FAQ
multipart functions, such as bulk encryption, hashing, and
mac functions (for example, c_digest and c_sign) and those that require overlapped operation (c_unwrap, c_decrypt) are handled by creating new sessions.
troubleshoot.html
cd c:/programs/cygnus/bin (or wherever your gnu tools are installed) cp shmsdos.exe shmsdos.bak (backup shmsdos) cp sh.exe shmsdos.exe (substitute alternative shell) making this change will probably break other builds you are making on the same
machine.
sslfnc.html
the
macro ssl_is_ssl2_cipher can be used to determine whether a particular value is an ssl2 or an ssl3 cipher.
TLS Cipher Suite Discovery
sslauthtype authalgorithm; /* key exchange algorithm info */ const char * keatypename; sslkeatype keatype; /* symmetric encryption info */ const char * symciphername; sslcipheralgorithm symcipher; pruint16 symkeybits; pruint16 symkeyspace; pruint16 effectivekeybits; /*
mac info */ const char *
macalgorithmname; ssl
macalgorithm
macalgorithm; pruint16
macbits; pruintn isfips : 1; pruintn isexportable : 1; pruintn nonstandard : 1; pruintn reservedbits :29; } sslciphersuiteinfo; (unfinished, to be completed here) ...
NSS tools : signtool
similarly, if you are a network administrator, you should make sure, before signing any code, that it comes from a reliable source and will run correctly with the software installed on the
machines to which you are distributing it.
Pork
the core of pork is a c++ parser that provides exact character positions for the start and end of every ast node, as well as the set of
macro expansions that contain any location.
Creating JavaScript tests
these tests will also show up as infrequent oranges on our heavily loaded test
machines, lowering the value of our test suite for everyone.
Future directions
parallelism most
machines that run spidermonkey have multiple cores, so parallelism is almost certainly part of our future.
Invariants
(one reason for this is that the object may have watchpoints set; the watchpoint
machinery assumes that all objects with watched properties are native.
JS_TracerInit
this article covers features introduced in spidermonkey 1.8 note: in jsapi 12, the
macro js_tracer_init has been replaced by the function js_tracerinit initialize a jstracer for object graph tracing.
JSDBGAPI
tcallhook js_setobjecthook js_setthrowhook js_setdebugerrorhook js_setnewscripthook js_setdestroyscripthook js_getglobaldebughooks js_setcontextdebughooks memory usage js_getobjecttotalsize js_getfunctiontotalsize js_getscripttotalsize system objects js_issystemobject js_newsystemobject profiling these functions can be used to profile a spidermonkey application using the
mac profiler, shark.
SpiderMonkey 1.8
new
macros js_fs, js_fn, and js_fs_end are recommended for populating jsfunctionspec arrays.
SpiderMonkey 31
spidermonkey 31 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
SpiderMonkey 38
spidermonkey 38 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
SpiderMonkey 45
spidermonkey 45 includes a just-in-time compiler (jit) that compiles javascript to
machine code, for a significant speed increase.
Shell global objects
wasmbinarytotext(bin) translates binary encoding to text format wasmextractcode(module) extracts generated
machine code from webassembly.module.
TPS Tests
_path% additionally, omitting a --testfile parameter will cause it to run all tps tests listed in services/sync/tests/tps/all_tests.json an example on osx, for running just the test_sync.js testfile against a locally built firefox (where the mozconfig set the objdir to obj-ff-artifact): runtps --debug --testfile test_sync.js --binary obj-ff-artifact/dist/nightly.app/contents/
macos/firefox running tps against stage, or dev fxa tps can be configured using the $tps_venv_path/config.json file.
compare-locales
installation compare-locales needs to be installed, and it requires that you have python 2.7 or 3.5+ installed on your
machine.
Mozilla Projects
the core of pork is a c++ parser that provides exact character positions for the start and end of every ast node, as well as the set of
macro expansions that contain any location.
Redis Tips
if you have not, here is a fantastic on-line, interactive redis tutorial: http://try.redis.io/ for reference later on, you'll want the source of all things redis: https://redis.io you'll want to run a redis-server on your
machine, and use the redis-cli at the command-line for hacking.
Exploitable crashes
to get them go to the
mac developer center downloads section -> other downloads -> search for "crashwrangler".
Secure Development Guidelines
be set in windows int main(int argc, char **argv, char **envp) { int fd = open("/etc/shadow", o_rdwr); setreuid(getuid(), getuid()); excve("/bin/sh", argv, envp); } suid root applications file i/o: file descriptors and handles potential overflows when using select fd_set struct, static length, holds a bitmask of fds manipulated with fd_set, fd_isset, fd_clr and fd_zero
macros fd_set’s size depends on the operating system if the os allows opening more fds, then fd_set can hold could overflow fd_set file i/o: file descriptors and handles good solution: dynamically allocate fd_set structs int main(void) { int i, fd; fd_set fdset; for( i = 0; i < 2000; i++) { fd = open("/dev/null", o_rdwr); } fd_set(fd, &fdset); } file i/o: ...
Gecko Roles
role_menubar represents the menu bar (positioned beneath the title bar of a window on most platforms or at the top of the screen on
mac os x) from which menus are selected by the user.
Bundling multiple binary components
this approach uses only one binary for each platform (win/
mac/linux) but creates complexity in the binaries - loading the methods and creating the wrappers.
Fun With XBL and XPConnect
<handlers> <handler type="keypress" keycode="vk_return" value="autocomplete(anonymouscontent[0].value, this.autocompletelistener);"/> </handlers> </implementation> </binding> original document information author(s): scott
macgregor last updated date: april 13, 2000 copyright information: copyright (c) scott
macgregor ...
Component Internals
following this initial, verbose demonstration of the apis, we will introduce a faster more generic way of implementing the module and factory code using
macros, which can make components much easier to create.
Components.results
components.results is a read-only object whose properties are the names listed as the first parameters of the
macros in js/xpconnect/src/xpc.msg (also at table of errors), with the value of each corresponding to that constant's value.
Profiling XPCShell
for example, on linux or
macosx you do: export mozilla_js_profiler_output=/tmp/profile.txt now, run the script using xpcshell.
XPCshell Test Manifest Expressions
os - the operating system on which the test is being run one of: 'win', '
mac', 'linux', 'android' os_version - the version of the operating system on which the test is being run toolkit - the graphics toolkit used by this build one of: 'windows', 'cocoa', 'gtk2', 'android' processor - the cpu which the code is compiled for one of: 'x86', 'x86_64', 'arm' bits - the pointer size of the cpu architecture, in bits one of 32, 64, possibly un...
Language bindings
the scriptable methods on the nsicomponentmanager interface can be called directly on this object.components.resultscomponents.results is a read-only object whose properties are the names listed as the first parameters of the
macros in js/xpconnect/src/xpc.msg (also at table of errors), with the value of each corresponding to that constant's value.components.returncodecomponents.stackcomponents.stack is a read only property of type nsistackframe (idl definition) that represents a snapshot of the current javascript callstack.
NS_NewLocalFile
on windows, passing true causes shortcuts to be automatically resolved, and on
macos, passing true causes finder aliases to be automatically resolved.
NS_NewNativeLocalFile
on windows, passing true causes shortcuts to be automatically resolved, and on
macos, passing true causes finder aliases to be automatically resolved.
NS_OVERRIDE
ns_override is a
macro which allows c++ code in mozilla to specify that a method is intended to override a base class method.
Element: compositionend event - Web APIs
bubbles yes cancelable yes interface compositionevent event handler property none examples const inputelement = document.queryselector('input[type="text"]'); inputelement.addeventlistener('compositionend', (event) => { console.log(`generated characters were: ${event.data}`); }); live example html <div class="control"> <label for="name">on
macos, click in the textbox below,<br> then type <kbd>option</kbd> + <kbd>`</kbd>, then <kbd>a</kbd>:</label> <input type="text" id="example" name="example"> </div> <div class="event-log"> <label>event log:</label> <textarea readonly class="event-log-contents" rows="8" cols="25"></textarea> <button class="clear-log">clear</button> </div> css body { padding: .2rem; display: grid; gri...
Element: compositionstart event - Web APIs
bubbles yes cancelable yes interface compositionevent event handler property none examples const inputelement = document.queryselector('input[type="text"]'); inputelement.addeventlistener('compositionstart', (event) => { console.log(`generated characters were: ${event.data}`); }); live example html <div class="control"> <label for="name">on
macos, click in the textbox below,<br> then type <kbd>option</kbd> + <kbd>`</kbd>, then <kbd>a</kbd>:</label> <input type="text" id="example" name="example"> </div> <div class="event-log"> <label>event log:</label> <textarea readonly class="event-log-contents" rows="8" cols="25"></textarea> <button class="clear-log">clear</button> </div> css body { padding: .2rem; display: grid; gri...
Element: compositionupdate event - Web APIs
bubbles yes cancelable yes interface compositionevent event handler property none examples const inputelement = document.queryselector('input[type="text"]'); inputelement.addeventlistener('compositionupdate', (event) => { console.log(`generated characters were: ${event.data}`); }); live example html <div class="control"> <label for="name">on
macos, click in the textbox below,<br> then type <kbd>option</kbd> + <kbd>`</kbd>, then <kbd>a</kbd>:</label> <input type="text" id="example" name="example"> </div> <div class="event-log"> <label>event log:</label> <textarea readonly class="event-log-contents" rows="8" cols="25"></textarea> <button class="clear-log">clear</button> </div> css body { padding: .2rem; display: grid; gri...
Element: keypress event - Web APIs
interface keyboardevent bubbles yes cancelable yes default action varies: keypress event; launch text composition system; blur and focus events; do
mactivate event; other event examples addeventlistener keypress example this example logs the keyboardevent.code value whenever you press a key after focussing the <input> element.
Element - Web APIs
do
mactivate occurs when an element is activated, for instance, through a mouse click or a keypress.
HTMLDataElement - Web APIs
htmldataelement.value is a domstring reflecting the value html attribute, containing a
machine-readable form of the element's value.
HTMLTimeElement.dateTime - Web APIs
the htmltimeelement.datetime property is a domstring that reflects the datetime html attribute, containing a
machine-readable form of the element's date and time value.
HTMLTimeElement - Web APIs
htmltimeelement.datetime is a domstring that reflects the datetime html attribute, containing a
machine-readable form of the element's date and time value.
Navigator.oscpu - Web APIs
operating system oscpuinfo string format os/2 os/2 warp x (either 3, 4 or 4.5) windows ce windowsce x.y1 windows 64-bit (64-bit build) windows nt x.y; win64; x64 windows 64-bit (32-bit build) windows nt x.y; wow64 windows 32-bit windows nt x.y
mac os x (ppc build) powerpc
mac os x version x.y
mac os x (i386/x64 build) intel
mac os x or
macos version x.y linux 64-bit (32-bit build) output of uname -s plus "i686 on x86_64" linux output of uname -sm x.y refers to the version of the operating system example function osinfo() { alert(window.navigator.oscpu); } osinfo(); // alerts "windows nt...
Navigator - Web APIs
navigator.requestmediakeysyste
maccess() returns a promise for a mediakeysyste
maccess object.
NavigatorID.platform - Web APIs
for example: "
macintel", "win32", "freebsd i386", "webtv os" example console.log(navigator.platform); usage notes most browsers, including chrome, edge, and firefox 63 and later, return "win32" even if running on a 64-bit version of windows.
OVR_multiview2 - Web APIs
availability: support depends on the system's graphics driver (windows+angle and android are supported; windows+gl,
mac, linux are not supported).
RTCInboundRtpStreamStats - Web APIs
slicount an integer indicating the number of times the receiver sent a slice loss indication (sli) frame to the sender to tell it that one or more consecutive (in terms of scan order) video
macroblocks have been lost or corrupted.
RTCOutboundRtpStreamStats - Web APIs
slicount an integer indicating the number of times this sender received a slice loss indication (sli) frame from the remote peer, indicating that one or more consecutive video
macroblocks have been lost or corrupted.
RTCPeerConnection.signalingState - Web APIs
because the signaling process is a state
machine, being able to verify that your code is in the expected state when messages arrive can help avoid unexpected and avoidable failures.
RTCRtpStreamStats - Web APIs
slicount the number of times the receiver notified the sender that one or more consecutive (in scan order) encoded video
macroblocks have been lost or corrupted; this notification is sent by the receiver to the sender using a slice loss indication (sli) packet.
Screen.availHeight - Web APIs
for instance, on a
mac whose dock is located at the bottom of screen (which is the default), the value of availheight is approximately the value of height (the total height of the screen in css pixels) minus the heights of the dock and menu bar, as seen in the diagram below.
Using the Screen Capture API - Web APIs
while display capture is in effect, the
machine which is sharing screen contents will display some form of indicator so the user is aware that sharing is taking place.
SpeechSynthesisVoice.voiceURI - Web APIs
examples for(i = 0; i < voices.length ; i++) { var option = document.createelement('option'); option.textcontent = voices[i].name + ' (' + voices[i].lang + ')'; if(voices[i].default) { option.textcontent += ' -- default'; } console.log(voices[i].voiceuri); // on
mac, this returns urns, for example 'urn:moz-tts:osx:com.apple.speech.synthesis.voice.daniel' option.setattribute('data-lang', voices[i].lang); option.setattribute('data-name', voices[i].name); voiceselect.appendchild(option); } specifications specification status comment web speech apithe definition of 'voiceuri' in that specification.
Stylesheet.href - Web APIs
example // on a local
machine: <html> <head> <link rel="stylesheet" href="example.css" type="text/css" /> <script> function sref() { alert(document.stylesheets[0].href); } </script> </head> <body> <div class="thunder">thunder</div> <button onclick="sref()">ss</button> </body> </html> // returns "file:////c:/windows/desktop/example.css notes if the style sheet is a linked style sheet, the value of its attribute is its location.
SubtleCrypto.digest() - Web APIs
hint: if you are looking here for how to create an keyed-hash message authentication code (h
mac), you need to use the subtlecrypto.sign() instead.
SubtleCrypto - Web APIs
below summarises which algorithms are suitable for which cryptographic operations: sign() verify() encrypt() decrypt() digest() derivebits() derivekey() wrapkey() unwrapkey() rsassa-pkcs1-v1_5 ✓ rsa-pss ✓ ecdsa ✓ h
mac ✓ rsa-oaep ✓ ✓ aes-ctr ✓ ✓ aes-cbc ✓ ✓ aes-gcm ✓ ✓ sha-1 ✓ sha-256 ✓ sha-384 ✓ sha-512 ✓ ecdh ✓ ...
TextDecoder.prototype.encoding - Web APIs
the legacy single-byte encodings: 'ibm866', 'iso-8859-2', 'iso-8859-3', 'iso-8859-4', 'iso-8859-5', 'iso-8859-6', 'iso-8859-7', 'iso-8859-8'', 'iso-8859-8i', 'iso-8859-10', 'iso-8859-13', 'iso-8859-14', 'iso-8859-15', 'iso-8859-16', 'koi8-r', 'koi8-u', '
macintosh', 'windows-874', 'windows-1250', 'windows-1251', 'windows-1252', 'windows-1253', 'windows-1254', 'windows-1255', 'windows-1256', 'windows-1257', 'windows-1258', or 'x-
mac-cyrillic'.
Raining rectangles - Web APIs
it is a preview of a full graphical application that manipulates various phases of the webgl graphics pipeline and state
machine.
Getting started with WebGL - Web APIs
your browser or
machine may not support it."); return; } // set clear color to black, fully opaque gl.clearcolor(0.0, 0.0, 0.0, 1.0); // clear the color buffer with specified clear color gl.clear(gl.color_buffer_bit); } window.onload = main; the first thing we do here is obtain a reference to the canvas, assigning it to a variable named canvas.
A simple RTCDataChannel sample - Web APIs
note: once again, this process is not a real-world implementation; in normal usage, there's two chunks of code running on two
machines, interacting and negotiating the connection.
Geometry and reference spaces in WebXR - Web APIs
for a more detailed look at how to use reference spaces to manage the player's viewpoint, see the article in the case of our game avatar example, it's rare for an avatar (or any other moving creature or
machine) to be a simple blob sliding around the world.
Lighting a WebXR setting - Web APIs
other data is collected using the geolocation api, and then all this data is put through algorithms and
machine learning engines to generate the estimated lighting information.
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.
ARIA live regions - Accessibility
here is a screenshot of voiceover on
mac announcing the update (via subtitles) to the live region: preferring specialized live region roles in the following well-known predefined cases it is better to use a specific provided "live region role": role description compatibility notes log chat, error, game or other type of log to maximize compatibility, add a redundant aria-live="polite" when using thi...
ARIA annotations - Accessibility
aria annotation roles and objects are currently exposed in: firefox from version 75 onwards, on windows and linux (on
macos, we are first waiting for apple to define what safari will expose as apple-dialect attributes to voiceover, and will then follow suit.) chrome from version 81 onwards, currently behind the #enable-accessibility-expose-aria-annotations flag (go to chrome://flags to enable this.) unfortunately, you won’t be able to use any of these yet, as screenreader support is currently not there.
ARIA: timer role - Accessibility
while the value does not necessarily need to be
machine parsable, it should continuously update at regular intervals unless the timer is paused or reaches its end-point.
Accessibility FAQ - Accessibility
assistive technology compatibility - documents assistive technologies for windows, linux, unix,
mac os x and the degree of compatibility with firefox what can i do to make sure my mozilla extensions are accessible?
Web accessibility for seizures and physical reactions - Accessibility
macknik on november 1, 2014 discussions problems with wcag 2.0 flash definition #553 wcag 2.1 understanding 2.3.1 - missing/vague dimension definitions #585 epilepsy and seizures shedding light on photosensitivity, one of epilepsy's most complex conditions epilepsy foundation certain individuals are born with special sensitivity to flashing lights or contrasting visual patterns, such as s...
Web Accessibility: Understanding Colors and Luminance - Accessibility
macknik on november 1, 2014 scientific papers photic- and pattern-induced seizures: expert consensus of the epilepsy foundation of america working group w3c issues and discussions contrast ratio math and related visual issues #695 luminance / luma confusion #236 outdated threshold for srgb companding in the "relative luminance" definition #308 non-srgb color spaces, outdated srgb thresho...
prefers-reduced-data - CSS: Cascading Style Sheets
play: swap; /* latin */ src: local('montserrat regular'), local('montserrat-regular'), url('fonts/montserrat-regular.woff2') format('woff2'); unicode-range: u+0000-00ff, u+0131, u+0152-0153, u+02bb-02bc, u+02c6, u+02da, u+02dc, u+2000-206f, u+2074, u+20ac, u+2122, u+2191, u+2193, u+2212, u+2215, u+feff, u+fffd; } } body { font-family: montserrat, -apple-system, blink
macsystemfont, "segoe ui", roboto, helvetica, arial, "microsoft yahei", sans-serif, "apple color emoji", "segoe ui emoji", "segoe ui symbol"; } result specifications specification status comment media queries level 5the definition of 'reduced-data' in that specification.
CSS Scrollbars - CSS: Cascading Style Sheets
erasafariandroid webviewchrome for androidfirefox for androidopera for androidsafari on iossamsung internetscrollbar-colorchrome no support noedge no support nofirefox full support 64notes full support 64notes notes on
macos, you need to set the general > show scroll bars setting in system preferences to "always" for this property to have any effect.
Cubic Bezier Generator - CSS: Cascading Style Sheets
value; var y2 = document.getelementbyid('y2').value; drawbeziercurve(x1, y1, x2, y2); } const radius = 4; // place needed to draw the rulers const rulers = 30.5; const margin = 10.5; const basic_scale_size = 5; // size of 0.1 tick on the rulers var scaling; //limitation: scaling is computed once: if canvas.height/canvas.width change it won't be recalculated var dragsm = 0; // drag state
machine: 0 = nodrag, others = object being dragged function initcanvas() { // get the canvas element using the dom var canvas = document.getelementbyid('bezier'); // make sure we don't execute when canvas isn't supported if (canvas.getcontext) { // use getcontext to use the canvas for drawing var ctx = canvas.getcontext('2d'); scaling = math.min(canvas.heigh...
<color> - CSS: Cascading Style Sheets
-moz-
mac-accentdarkestshadow -moz-
mac-accentdarkshadow -moz-
mac-accentface -moz-
mac-accentlightesthighlight -moz-
mac-accentlightshadow -moz-
mac-accentregularhighlight -moz-
mac-accentregularshadow -moz-
mac-chrome-active -moz-
mac-chrome-inactive -moz-
mac-focusring -moz-
mac-menuselect -moz-
mac-menushadow -moz-
mac-menutextselect -moz-menuhover background color for hovered menu items.
font-feature-settings - CSS: Cascading Style Sheets
font-feature-settings: "liga" 0; } /* enable tabular (monospaced) figures */ td.tabular { font-feature-settings: "tnum"; } /* enable automatic fractions */ .fractions { font-feature-settings: "frac"; } /* use the second available swash character */ .swash { font-feature-settings: "swsh" 2; } /* enable stylistic set 7 */ .fancystyle { font-family: gabriola; /* available on windows 7, and on
mac os */ font-feature-settings: "ss07"; } specifications specification status comment css fonts module level 3the definition of 'font-feature-settings' in that specification.
font-stretch - CSS: Cascading Style Sheets
e table below demonstrates the effect of supplying various different percentage values of font-stretch on two different fonts: 50% 62.5% 75% 87.5% 100% 112.5% 125% 150% 200% helvetica neue league mono variable helvetica neue, which is installed by default on
macos, has a single condensed face in addition to the normal face.
ime-mode - CSS: Cascading Style Sheets
users may correct the inappropriate behavior of sites that don't follow this recommendation by placing the following css into their user stylesheet: input[type=password] { ime-mode: auto !important; } the
mac version of gecko 1.9 (firefox 3) can't recover the previous state of the ime when a field for which it is disabled loses focus, so
mac users may get grumpy when you use the disabled value.
position - CSS: Cascading Style Sheets
<dd>andrew w.k.</dd> <dd>apparat</dd> <dd>arcade fire</dd> <dd>at the drive-in</dd> <dd>aziz ansari</dd> </div> <div> <dt>c</dt> <dd>chromeo</dd> <dd>common</dd> <dd>converge</dd> <dd>crystal castles</dd> <dd>cursive</dd> </div> <div> <dt>e</dt> <dd>explosions in the sky</dd> </div> <div> <dt>t</dt> <dd>ted leo & the phar
macists</dd> <dd>t-pain</dd> <dd>thrice</dd> <dd>tv on the radio</dd> <dd>two gallants</dd> </div> </dl> css * { box-sizing: border-box; } dl > div { background: #fff; padding: 24px 0 0 0; } dt { background: #b8c1c8; border-bottom: 1px solid #989ea4; border-top: 1px solid #717d85; color: #fff; font: bold 18px/21px helvetica, arial, sans-serif; margin: 0; pad...
transform-box - CSS: Cascading Style Sheets
svg{ width:80vh; border:1px solid #d9d9d9; position:absolute; margin: auto; top: 0; right: 0; bottom: 0; left: 0; } #box{ transform-origin:50% 50%; /*+++++++++++++++++++++++++++*/ /* if i remove this rule the pen won't work properly on chrome for
mac, ff, safari will still work properly on chrome for pc & opera*/ transform-box: fill-box; /*alternatively i can use transform-origin:15px 15px;*/ /*+++++++++++++++++++++++++++*/ animation: rotatebox 3s linear infinite; } @keyframes rotatebox { to { transform: rotate(360deg); } full credit for this example goes to pogany; see this codepen for a live version.
will-change - CSS: Cascading Style Sheets
some of the stronger optimizations that are likely to be tied to will-change end up using a lot of a
machine’s resources, and when overused like this can cause the page to slow down or consume a lot of resources.
<input type="color"> - HTML: Hypertext Markup Language
for example, in safari 10.1, you would see something that looks looks like this: the same content looks like this in firefox 55: in this case, clicking on the color well presents the platform's color picker for you to choose a color from (in this case, the
macos picker): validation a color input's value is considered to be invalid if the user agent is unable to convert the user's input into seven-character lower-case hexadecimal notation.
<main> - HTML: Hypertext Markup Language
example <!-- other content --> <main> <h1>apples</h1> <p>the apple is the po
maceous fruit of the apple tree.</p> <article> <h2>red delicious</h2> <p>these bright red apples are the most common found in many supermarkets.</p> <p>...
<samp>: The Sample Output element - HTML: Hypertext Markup Language
for example, consider this text presenting a transcript of a linux (or
macos) console session: html <pre> <samp><span class="prompt">mike@interwebz:~$</span> <kbd>md5 -s "hello world"</kbd> md5 ("hello world") = 3e25960a79dbc69b674cd4ec67a72c62 <span class="prompt">mike@interwebz:~$</span> <span class="cursor">█</span></samp></pre> note the use of <span> to allow customization of the appearance of specific portions of the sample text such as the shell prompts and ...
accesskey - HTML: Hypertext Markup Language
the way to activate the accesskey depends on the browser and its platform: windows linux
mac firefox alt + shift + key on firefox 57 or newer: control + option + key or control + alt + key on firefox 14 or newer: control + alt + key on firefox 13 or older: control + key internet explorer alt + key alt + shift + key n/a edge n/a control + option + key control + option + shift + key google chrome alt + shift ...
Microdata - HTML: Hypertext Markup Language
microdata is an attempt to provide a simpler way of annotating html elements with
machine-readable tags than the similar approaches of using rdfa and classic microformats.
Using the application cache - HTML: Hypertext Markup Language
in 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).
HTML: Hypertext Markup Language
preloading content with rel="preload" the preload value of the <link> element's rel attribute allows you to write declarative fetch requests in your html <head>, specifying resources that your pages will need very soon after loading, which you therefore want to start preloading early in the lifecycle of a page load, before the browser's main rendering
machinery kicks in.
HTTP authentication - HTTP
bearer see rfc 6750, bearer tokens to access oauth 2.0-protected resources digest see rfc 7616, only md5 hashing is supported in firefox, see bug 472823 for sha encryption support hoba see rfc 7486, section 3, http origin-bound authentication, digital-signature-based mutual see rfc 8120 aws4-h
mac-sha256 see aws docs basic authentication scheme the "basic" http authentication scheme is defined in rfc 7617, which transmits credentials as user id/password pairs, encoded using base64.
Data URLs - HTTP
encoding on a unix system base64 encoding of a file or string on linux and
mac os x systems can be achieved using the command-line base64 (or, as an alternative, the uuencode utility with -m argument).
Authorization - HTTP
other types: iana registry of authentication schemes authentification for aws servers (aws4-h
mac-sha256) <credentials> if the "basic" authentication scheme is used, the credentials are constructed like this: the username and the password are combined with a colon (aladdin:opensesame).
Feature-Policy - HTTP
when this policy is disabled, the promise returned by navigator.requestmediakeysyste
maccess() will reject with a domexception.
From - HTTP
header type request header forbidden header name no syntax from: <email> directives <email> a
machine-usable email address.
Index - HTTP
when this policy is enabled, the promise returned by navigator.requestmediakeysyste
maccess() will reject with a domexception.
HTTP Index - HTTP
when this policy is enabled, the promise returned by navigator.requestmediakeysyste
maccess() will reject with a domexception.
Introduction - JavaScript
to open the web console (ctrl+shift+i on windows and linux or cmd-option-k on
mac), open the tools menu in firefox, and select "developer ▶ web console".
JavaScript modules - JavaScript
for example, we found that
macos was silently adding on .js to the end of .mjs files and then automatically hiding the file extension.
Unicode property escapes - JavaScript
note: as there are many properties and values available, we will not describe them exhaustively here but rather provide various examples rationale before es2018 there was no performance-efficient way to match characters from different sets based on scripts (like
macedonian, greek, georgian etc.) or propertyname (like emoji etc) in javascript.
JavaScript language resources - JavaScript
implementations spidermonkey - the javascript engine used in various mozilla products, including firefox; rhino - the javascript engine is written in java; tamarin - the actionscript virtual
machine (used in the adobe® flash® player); other implementations (wikipedia).
DataView - JavaScript
description endianness multi-byte number formats are represented in memory differently depending on
machine architecture — see endianness for an explanation.
MathML documentation index - MathML
10 <
maction> mathml, mathml reference, mathml:element, mathml:enlivening expressions the following example uses the "toggle" actiontype: 11 <math> mathml, mathml reference, mathml:element the top-level element in mathml is <math>.
Animation performance and frame rate - Web Performance
exactly what you'll see depends a lot on your
machine and system load, but it will be something like this: this is showing three distinct views: (a) an overview of the waterfall, (b) the frame rate, and (c) the timeline details.
SVG 2 support in Mozilla - SVG: Scalable Vector Graphics
inter-events not implemented (bug 945187) load, abort, error, and unload instead of svgload, svgabort, svgerror, and svgunload not implemented (bug 620002) only structurally external elements and outermost <svg> element fire load events implementation status unknown resize and scroll instead of svgresize and svgscroll implementation status unknown do
mactivate removed implementation status unknown focusin and focusout instead of domfocusin and domfocusout implementation status unknown keyboard events implementation status unknown mutation events removed implementation status unknown svgzoomevent removed implementation status unknown <cursor> element deprecated implementation status un...