Firefox OS 1.2 for developers

Firefox OS 1.2 is at a pre-release stage right now. Its Gecko component is based on Firefox 26 (encompassing all Gecko additions between Firefox 19 and Firefox 26; see Firefox 26 release notes for developers for the latest.) This page details the developer features newly implemented in Firefox OS 1.2.

Developer Tools

HTML

General Gecko:

  • The srcdoc attribute of <iframe>, allowing the inline specification of the content of an <iframe>, is now supported (bug 802895).
  • When used with a "image/jpeg" type, the method HTMLCanvasElement.toBlob now accepts a third attribute defining the quality of the image (bug 891884).
  • The <track> element has been implemented behind the media.webvtt.enabled property (bug 833385).
  • The <blink> element support is now completely dropped. The <blink> tag now implements the HTMLUnknownElement interface (bug 857820).
  • The range state of the <input> element (<input type="range">) has been switched on by default (bug 841950).
  • The HTML5 <data> element has been implemented (bug 839371).
  • The HTML5 <time> element has been implemented (bug 629801).
  • The range state of the <input> element (<input type="range">) has been implemented, behind the preference dom.experimental_forms_range, only enabled by default on Nightly and Aurora channel (bug 841948).
  • The support for the <template> element, part of the Web component specification has been implemented (bug 818976).
  • The scoped attribute has been added to the <style> element. It allows to include styles that are isolated from the rest of the document. Such styles can be selected using the :scope CSS pseudo-element introduced in Firefox 20. (bug 508725).
  • The new HTML <main> element has been implemented (bug 820508).
  • Support for the download attribute on the <a> and <area> element has been added (bug 676619).
  • The value auto for the global attribute dir has been implemented (bug 548206).

CSS

General Gecko:

JavaScript

General Gecko:

EcmaScript 6 (Harmony) implementation continues!

  • New mathematical methods have been implemented on Math: Math.fround() (bug 900125).
  • The method Array.of() is now implemented on Array (bug 866849).
  • The methods Number.parseInt() and Number.parseFloat() have been implemented (bug 886949)
  • The methods Map.prototype.forEach() and Set.prototype.forEach() are now implemented (bug 866847)
  • New mathematical methods have been implemented on Math: Math.log10(), Math.log2(), Math.log1p(), Math.expm1(), Math.cosh(), Math.sinh(), Math.tanh(), Math.acosh(), Math.asinh(), Math.atanh(), Math.trunc(), Math.sign() and Math.cbrt() (bug 717379).
  • Support for binary and octal integer literals has been added: 0b10101010, 0B1010, 0o777, 0O237 are now valid (bug 894026).
  • The machine epsilon constant, that is the smallest representible number that added to 1 will not be 1, is now available as Number.EPSILON (bug 885798).
  • Arrow functions are no longer automatically in strict mode unless explicitly requested with "use strict" (bug 852762)).
  • The String.prototype.repeat JS method has been implemented (bug 815431).
  • The Object.defineProperty method can now be used to redefine the length property of an Array object.
  • The option to disable JavaScript, including the options to allow moving windows/replace context menu, have been removed. You may still disable JavaScript by double clicking the "javascript.enabled" option in about:config.
  • Asm.js optimizations are enabled, making it possible to compile C/C++ applications to a subset of Javascript for better performance.
  • ES6 Arrow Function syntax has been implemented (bug 846406).
  • The new Object.is function has been added (bug 839979).
  • E4X, an ancient JavaScript extension, has been removed. Implemented only in Gecko, it never got significant traction (bug 788293).
  • parseInt no longer treats strings with leading "0" as octal (bug 786135).
  • Support for the Weakmap.prototype.clear() method, recently added to the Harmony (EcmaScript 6) draft proposal has been added (bug 814562).
  • Support for the Math.imul() method, a C-style 32-bit multiplication function. Though proposed for Harmony (EcmaScript 6) it has not yet accepted and still is non-standard (bug 808148).
  • Web apps using draggable text with Kinetic 3.x are working, even when using the Cairo canvas backend (bug 835064).
  • The for each…in statement has been deprecated and should not be used. Consider using the new for…of statement (bug 804834).
  • Support for the Map.prototype.keys, Map.prototype.values, and Map.prototype.entries has been added (bug 817368).
  • Map and Set objects have changed from having a size() method to a size property (bug 807001).
  • Map and Set objects also have a clear() method now. (bug 805003).

Telephony-specific additions (mostly API-related)

  • Fuzzy matcher API for phone numbers (bug 883923)
  • CDMA
    • Registration info (bug 882984)
      • (bug 882984)
      • multiple new CDMA specific attributes in MozMobileCellInfo
      • dom/network/interfaces/nsIDOMMobileConnection.idl
    • Emergency callback mode support (bug 887690)
      • new method exitEmergencyCbMode and new event emergencycbmodechange in MozMobileConnection
      • dom/network/interfaces/nsIDOMMozEmergencyCbModeEvent.idl
    • OTASP (bug 882983)
      • new event otastatuschange in MozMobileConnection
      • dom/network/interfaces/nsIDOMMozOtaStatusEvent.idl
    • MDN/MIN (bug 869778)
      • new interface MozGsmIccInfo & MozCdmaIccInfo
      • new attribute iccType in MozIccInfo
      • dom/icc/interfaces/nsIDOMIccInfo.idl
    • Preferred voice mode (bug 869769)
      • new methods setVoicePrivacyMode and getVoicePrivacyMode in MozMobileConnection
      • dom/network/interfaces/nsIDOMMobileConnection.idl
    • Roaming preference (bug 869768)
      • new methods setRoamingPreference and getRoamingPreference in MozMobileConnection
      • dom/network/interfaces/nsIDOMMobileConnection.idl
    • Call Waiting (bug 822210)
      • new attribute secondNumber in TelephonyCall
      • dom/webidl/TelephonyCall.webidl
  • Support Change Call Barring Password (bug 905479)
    • new method changeCallBarringPassword in MozMobileConnection
    • dom/network/interfaces/nsIDOMMobileConnection.idl
  • Move ICC functions out from MobileConnection (bug 875721, bug 874744, bug 860585, bug 859220)
    • MozIccInfo
      • navigator.mozIccManager.iccInfo
      • new interface
      • dom/icc/interfaces/nsIDOMIccInfo.idl
    • MozIccManager
      • navigator.mozIccManager
      • new attributes, methods, and events
      • dom/icc/interfaces/nsIDOMIccManager.idl
    • MozMobileConnection
      • navigator.mozMobileConnection
      • numerous attributes, methods and events removed
      • dom/network/interfaces/nsIDOMMobileConnection.idl
    • nsIDOMMozMobileICCInfo
      • navigator.mozMobileConnection.iccInfo
      • interface removed
  • ICC card lock improvements
    • Rename ICCCardLockErrorEvent to IccCardLockErrorEvent
      • dom/webidl/IccCardLockErrorEvent.webidl
    • Retry count (bug 886239, bug 875710)
      • attribute retryCount removed from MozMobileConnection
      • new method getCardLockRetryCount in MozIccManager
      • dom/network/interfaces/nsIDOMMobileConnection.idl
      • dom/icc/interfaces/nsIDOMIccManager.idl
  • Import/export SIM Contacts (bug 847741, bug 847820)
    • new methods readContacts, updateContact in MozIccManager
    • dom/icc/interfaces/nsIDOMIccManager.idl
  • ICC Secure Elements (bug 840780)
    • new methods iccOpenChannel, iccExchangeAPDU, iccCloseChannel in MozIccManager
    • dom/icc/interfaces/nsIDOMIccManager.idl
  • STK improvements
    • 'duration' for Display Text, Setup Call commands (bug 831630)
      • new attribute duration in both MozStkTextMessage and MozStkSetUpCall
      • dom/icc/interfaces/SimToolKit.idl
    • support "Language Selection Event" (bug 831627)
      • new dictionary MozStkLanguageSelectionEvent
      • dom/icc/interfaces/SimToolKit.idl
    • support "Idle Screen Available Event" (bug 831628)
      • new dictionary MozStkGeneralEvent
      • dom/icc/interfaces/SimToolKit.idl
  • MobileMessage
    • Turn getSegmentInfoForText into an async call (bug 903403)
      • dom/mobilemessage/interfaces/nsIDOMMobileMessageManager.idl
    • Remove navigator.mozSms (bug 891235)
  • Telephony
    • support "Conference Call" (certified only) (bug 772765)
      • navigator.mozTelephony.conferenceGroup
      • new interface

DOM/API

Firefox OS-specific:

  • Device Storage API: When getting a cursor callback from navigator.getDeviceStorage("sdcard").enumerate, this.done was undefined in Firefox <1.2 (see bug 902565). This is now fixed. The referenced bug discusses possible compatibility checks/workarounds for this issue.
  • The RTCPeerConnection Interface from WebRTC is implemented, but currently disabled by default in B2G, as it is not yet functional on Firefox OS devices (see bug 942343.)
  • Web notifications are supported in Firefox 1.2, therefore the Notification object should be used in preference to the old deprecated mozNotification object (see bug 899574 .)
  • mozInputMethod has been added to allow for people to write 3rd party keyboards. See the test application in gaia/test_apps for a reference implementation.
  • The Media Recording API has been implemented (see bug 803414, bug 889720)
  • KeyboardEvent.repeat now supported (bug 600117)
  • 3rd party keyboards now supported (bug 816869)
New WebGL 1 extensions supported in Firefox OS 1.2:
Note: availability of these extensions depends on device capabilities; not all extensions will be available on all devices.

General Gecko:

SVG

General Gecko:

MathML

General Gecko:

  • The dir attribute for controlling directionality of formulas on e.g. <math> or <mrow> elements is now equivalent to using the direction CSS property.
  • The equal sign ("=") is now stretchable.
  • The "updiagonalarrow" value for the notation attribute on <menclose> elements has been added.
  • Negative widths for the <mspace> element has been implemented (bug 717546).
  • The <semantics> element now determines the visible child as described in the MathML3 specification.
  • To help MathML authors debugging "invalid-markup" errors in their documents, MathML parsing errors (such as having too many / too few child elements) and warnings about deprecated attributes or wrong attribute values are now reported to the Error Console.
  • The scriptminsize attribute now accepts unitless values and percent values. They are interpreted as multiples of the default value ("8pt").
  • Unitless values are now also allowed for the mathsize and fontsize attributes; they multiply the default value.

Network

General Gecko:

  • We continue to update our CSP implementation to match the CSP 1.0 spec, which reached Candidate Recommendation:
    • Support for the spec-compliant Content-Security-Policy HTTP header (in addition to the experimental X-Content-Security-Policy) has been added (bug 783049). Note: the patch for this new header landed in Firefox 21, it is disabled on builds (bug 842657).

Worker

General Gecko:

Security

General Gecko:

  • Mixed content blocking. Firefox will no longer load non-secure (http) resources on secure (https) pages (bug 834836).
  • The standard syntax of CSP 1.0 policies are now implemented and enforced by default.

XForms

General Gecko:

Support for XForms has been removed in Firefox 19.

See also

Older versions

 

Share this article: http://mzl.la/1av9ZRr

Document Tags and Contributors

 Last updated by: chrisdavidmills,