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-mode
property has been added (bug 841601). - The
none
value has been added tofont-variant-ligatures
(bug 913264). - Support for the
:hover
user action pseudo-class on pseudo-elements has been implemented (bug 922669). - The
-moz-grab
and-moz-grabbing
keywords on the CSScursor
property have been unprefixed tograb
andgrabbing
(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-align
has been added (bug 929991). - Experimental support of
position:sticky
is now active by default on non-release builds (bug 902992). For releases builds, thelayout.css.sticky.enabled
preference still needs to be set totrue.
- The
all
shorthand property has been added (bug 920633). - The
unset
global value has been added; it allows to reset any CSS property (bug 921731). - Curly brackets are no longer allowed in HTML
style
attributes: doing<div style="{ display: none }">
was working in quirk mode, but won't anymore bug 915053. - The
overflow
property 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-popups
directive is now supported with thesandbox
attribute of the<iframe>
element (bug 766282). - Blending of HTML elements using the
mix-blend-mode
property has been implemented. Thelayout.css.mix-blend-mode.enabled
preference must be set totrue
(bug 902525).
JavaScript
General Gecko:
EcmaScript 6 (Harmony) implementation continues!
- New
Array
methods 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
,SetIterator
andArrayIterator
objects 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.match
andString.replace
now resetRegExp.lastIndex
(bug 501739).
DOM/API
Firefox OS-specific:
- Multi-SIM support landed in Firefox OS (Dual-SIM-Dual-Standby or DSDS).
navigator.mozMobileConnection
becomes 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.remove
now 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:
iccChangeEvent
has been added using using event generator (bug 814637)
- NFC has had updates:
onpeerready
andonpeerlost
callbacks added (bug 933136).- New interface added —
checkP2PRegistration
— plus the 'ChromeOnly' interfaceseventListenerWasAdded
andeventListenerWasRemoved
, to support basic PeerToPeer use cases. - New interfaces added to MozNfcManager DOM
notifyUserAcceptedP2P
andnotifySendFileStatus
(bug 959437). sendFile
interface 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.onLine
andconsole
objects 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.js
WebVTT JavaScript parser has been added into Gecko (bug 895091). On a related note, TextTrack now dispatches TrackEvents (bug 893309). getUserMedia
now 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.enabled
totrue
to enable.) They are enabled by default in Gecko 29 (see bug 924089). - WebIDL
enum
added for forAudioChannel
inHTMLMediaElement
(see bug 925594.) HTMLVideoElement.canPlayType('video/webm')
now reportsmaybe
. (bug 884275).- The
DocumentFragment.getElementById()
method has been implemented. E.g.document.createDocumentFragment().getElementById()
(bug 933193). - The
KeyboardEvent.repeat
attribute has been implemented (bug 600117). - The
File
constructor, e.g.new File(["foo"], "foo.txt")
has been implemented. (bug 819900). - The
navigator.plugins
is no more enumerable, for privacy reasons (bug 757726). - The two attributes
Window.screenX
andWindow.screenY
now return CSS pixels (and no more device pixels) (bug 943668). - The two methods
CanvasRenderingContext2D.drawSystemFocusRing()
andCanvasRenderingContext2D.drawCustomFocusRing()
have been implemented. The preferencecanvas.focusring.enabled
must be set totrue
to activate both (bug 540456). - The following attributes have been added to
NavigatorID
:appCodeName
andproduct
(bug 925847). - Support for the two
setRange()
methods on theHTMLInputElement
interface has been added (bug 850364). - Support for the two
setRange()
methods on theHTMLTextAreaElement
interface has been added (bug 918940). - The method
getAllKeys()
andopenKeyCursor()
have been added toIDBObjectStore
(bug 920633 and bug 920800). - The
HTMLFormControlsCollection
interface has been implemented (bug 913920). - The
CanvasRenderingContext2D
interface supports now the two methodsgetLineDash()
andsetLineDash()
(bug 768067). - The
typeMustMatch
attribute has been implemented on theHTMLObjectElement
interface (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 returnsfalse
when 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
,StyleSheetApplicableStateChangeEvent
andStyleSheetChangeEvent
, are no longer available from Web content. TheCSSGroupRuleRuleList
interface, the implementation detail ofCSSRuleList
, has also been removed (bug 872934 and bug 916871). atob
now 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-extensions
preferences (bug 924176).
SVG
General Gecko:
- Blending of SVG elements using the
mix-blend-mode
property has been implemented. Thelayout.css.mix-blend-mode.enabled
preference 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: https://mzl.la/1fVuFWR
Document Tags and Contributors
Tags:
Contributors to this page:
chrisdavidmills,
FunTomas,
eldhose104,
mathew.jithin,
trevorh,
digitarald
Last updated by:
chrisdavidmills,