Gecko component of Firefox OS 1.3 is based on Firefox 28 (see Firefox 28 release notes for developers.) This page details the developer features newly implemented in Firefox OS 1.3.
CSS
General Gecko:
- Support for multi-line flexbox has been added (bug 939901).
- Longhand East Asian counter styles have been implemented (bug 934072).
- Support for the background-blend-modeproperty has been added (bug 841601).
- The nonevalue has been added tofont-variant-ligatures(bug 913264).
- Support for the :hoveruser action pseudo-class on pseudo-elements has been implemented (bug 922669).
- The -moz-graband-moz-grabbingkeywords on the CSScursorproperty have been unprefixed tograbandgrabbing(bug 880672).
- Support for the -moz-hsla()and-moz-rgba()functional notations has been dropped. Only the unprefixed versions,hsla()andrgba()are supported from now on (bug 893319).
- The "true" value fortext-alignhas been added (bug 929991).
- Experimental support of position:stickyis now active by default on non-release builds (bug 902992). For releases builds, thelayout.css.sticky.enabledpreference still needs to be set totrue.
- The allshorthand property has been added (bug 920633).
- The unsetglobal value has been added; it allows to reset any CSS property (bug 921731).
- Curly brackets are no longer allowed in HTML styleattributes: doing<div style="{ display: none }">was working in quirk mode, but won't anymore bug 915053.
- The overflowproperty now works on<fieldset>(bug 261037).
HTML
General Gecko:
- The web components <content>element has been implemented (bug 854736).
- WebVTT has been switched on by default (bug 887978).
- <input type=color>has been implemented.
- The allow-popupsdirective is now supported with thesandboxattribute of the<iframe>element (bug 766282).
- Blending of HTML elements using the mix-blend-modeproperty has been implemented. Thelayout.css.mix-blend-mode.enabledpreference must be set totrue(bug 902525).
JavaScript
General Gecko:
EcmaScript 6 (Harmony) implementation continues!
- New Arraymethods have been implemented:Array.prototype.entries()andArray.prototype.keys()(bug 894658).
- The Harmony spread operator is now supported in Function calls (bug 762363).
- The mathematical function Math.hypot()has been implemented (bug 896264).
- The yield*operator is now implemented (bug 666396).
- The MapIterator,SetIteratorandArrayIteratorobjects now match the specification (bug 881226).
- for..of loops now expect the ES6 standard iterator protocol moving away from SpiderMonkey old iterator protocol using StopIteration.
- String.matchand- String.replacenow reset- RegExp.lastIndex(bug 501739).
DOM/API
Firefox OS-specific:
- Multi-SIM support landed in Firefox OS (Dual-SIM-Dual-Standby or DSDS). navigator.mozMobileConnectionbecomes an array of MozMobileConnection instances, i.e.navigator.mozMobileConnections. The privileged subset of this API can be used to detect MCC (country) and MNC (carrier), like in this snippet.
- Contacts API now uses WebIDL (bug 850430), with associated changes:
  - Date properties now handled consistently across the Contacts code.
- mozContacts.removenow accepts a contact ID for removal.
 
- The DataStore API has been enabled by default in B2G for certified apps only (bug 967414), and its permissions have been tweaked bug 871445.
- The WebIccManager API, which allows support for multiple sim cards, has had updates:
  - iccChangeEventhas been added using using event generator (bug 814637)
 
- NFC has had updates:
  - onpeerreadyand- onpeerlostcallbacks added (bug 933136).
- New interface added — checkP2PRegistration— plus the 'ChromeOnly' interfaceseventListenerWasAddedandeventListenerWasRemoved, to support basic PeerToPeer use cases.
- New interfaces added to MozNfcManager DOM notifyUserAcceptedP2PandnotifySendFileStatus(bug 959437).
- sendFileinterface added to MozNFCPeer (bug 933093).
 
- The SpeakerManager API has been implemented, to allow usage such as FM Radio outputting to phone speakers (bug 854753).
- Notification.get()added to Notification API to provide a way to get current notification objects (bug 899574).
General Gecko:
- The navigator.onLineandconsoleobjects have been implemented in Web Workers (bug 925437 and bug 620935).
- The web components ShadowRoot stylesheet behaviour has been implemented (bug 929885).
- JavaScript Pointer Events have been implemented (bug 822898).
- The vtt.jsWebVTT JavaScript parser has been added into Gecko (bug 895091). On a related note, TextTrack now dispatches TrackEvents (bug 893309).
- getUserMedianow has the ability to share a tab/screen/window as a video stream (bug 742832).
- Shared workers are implemented (see bug 643325), but disabled by default in Gecko 28 (set the dom.workers.sharedWorkers.enabledtotrueto enable.) They are enabled by default in Gecko 29 (see bug 924089).
- WebIDL enumadded for forAudioChannelinHTMLMediaElement(see bug 925594.)
- HTMLVideoElement.canPlayType('video/webm')now reports- maybe. (bug 884275).
- The DocumentFragment.getElementById()method has been implemented. E.g.document.createDocumentFragment().getElementById()(bug 933193).
- The KeyboardEvent.repeatattribute has been implemented (bug 600117).
- The Fileconstructor, e.g.new File(["foo"], "foo.txt")has been implemented. (bug 819900).
- The navigator.pluginsis no more enumerable, for privacy reasons (bug 757726).
- The two attributes Window.screenXandWindow.screenYnow return CSS pixels (and no more device pixels) (bug 943668).
- The two methods CanvasRenderingContext2D.drawSystemFocusRing()andCanvasRenderingContext2D.drawCustomFocusRing()have been implemented. The preferencecanvas.focusring.enabledmust be set totrueto activate both (bug 540456).
- The following attributes have been added to NavigatorID:appCodeNameandproduct(bug 925847).
- Support for the two setRange()methods on theHTMLInputElementinterface has been added (bug 850364).
- Support for the two setRange()methods on theHTMLTextAreaElementinterface has been added (bug 918940).
- The method getAllKeys()andopenKeyCursor()have been added toIDBObjectStore(bug 920633 and bug 920800).
- The HTMLFormControlsCollectioninterface has been implemented (bug 913920).
- The CanvasRenderingContext2Dinterface supports now the two methodsgetLineDash()andsetLineDash()(bug 768067).
- The typeMustMatchattribute has been implemented on theHTMLObjectElementinterface (bug 827160).
- The copyFromChannel()andcopyToChannel()methods have been added toAudioBuffer(bug 915524).
- Event.isTrusted()is now unforgeable (bug 637248).
- The Navigator.vibrate()method has been adapted to match the final specification: It now returnsfalsewhen the list is too long or has too large entries, instead of throwing (bug 884935).
- As part of the ongoing effort to standardize global objects, the non-standard stylesheet change event interfaces, including StyleRuleChangeEvent,StyleSheetApplicableStateChangeEventandStyleSheetChangeEvent, are no longer available from Web content. TheCSSGroupRuleRuleListinterface, the implementation detail ofCSSRuleList, has also been removed (bug 872934 and bug 916871).
- atobnow ignores whitespaces (bug 711180).
- WebGL: MOZ_prefixed extension strings are deprecated. Support for them will be removed in the future. Use unprefixed extension string only. To get draft extensions, set thewebgl.enable-draft-extensionspreferences (bug 924176).
SVG
General Gecko:
- Blending of SVG elements using the mix-blend-modeproperty has been implemented. Thelayout.css.mix-blend-mode.enabledpreference must be set totrue(bug 902525).
Audio/Video
- Opus in WebM is now supported (bug 887978).
- The VP9 video decoder is now supported (bug 833023).
See also
Older versions
Share this article: http://mzl.la/1fVuFWR
Document Tags and Contributors
    
    Tags: 
    
  
                    
                       Contributors to this page: 
        chrisdavidmills, 
        FunTomas, 
        eldhose104, 
        mathew.jithin, 
        trevorh, 
        digitarald
                    
                    
                       Last updated by:
                      chrisdavidmills,