Firefox 26 was released on December 10, 2013. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.
Changes for Web developers
CSS
- The {{cssxref("text-decoration-line")}} property, still prefixed, now considers
'blink'
as a valid value, though it doesn't blink the content at all ({{bug("812995")}}). - The non-standard
- Support for the {{cssxref("image-orientation")}} property, in its CSS Images & Values Level 4 version, that is with the
from-image
keyword and EXIF support, has been added ({{bug(825771)}}). - Experimental support for
position: sticky
has been implemented and can be enabled by preflayout.css.sticky.enabled
({{bug(886646)}}). - The {{cssxref("text-align")}} property now applies to the {{cssxref("::-moz-placeholder")}} pseudo-element ({{bug(915551)}}).
HTML
- The
HTMLSelectElement.selectedOptions
property has been implemented ({{bug("596681")}}). - In the {{HTMLElement("input")}} element of type
email
, values with domain labels longer than 63 chars are no more considered valid ({{bug("884332")}}). - The
HTMLInputElement.width
andheight
properties now return0
when thetype
is notimage
({{bug("905240")}}). - A {{HTMLElement("fieldset")}} element is now invalid, and can be styled using the {{cssxref(":invalid")}} pseudo-class, when one of the elements it contains is invalid ({{bug("717181")}}).
JavaScript
EcmaScript 6 (Harmony) implementation continues!
- The ECMAScript 6 compliant syntax for Generators (yield) has been implemented ({{bug("666399")}}).
- Generator/Iterator results are now boxed like
{ value: foo, done: bool }
({{bug(907744)}}). - New mathematical methods have been implemented on
Math
:Math.fround()
({{bug("900125")}}). - The reserved words cannot be used for function names:such a usage now throws a
SyntaxError
({{bug("907958")}}). - The default parameter syntax has been updated to allow parameters without defaults after default parameters, such as
function f(x=1, y)
. See {{bug(777060)}}. - {{jsxref("Global_Objects/GeneratorFunction", "GeneratorFunction")}} is implemented ({{bug(904701)}}).
Interfaces/APIs/DOM
- Make the last argument (doctype) to {{domxref("DOMImplementation.createDocument")}} optional ({{bug(909859)}}).
- Implement the new {{domxref("element.classList")}} specification which permits adding/removing several classes with one call ({{bug(814014)}}).
- The {{domxref("URL.URL", "URL()")}} constructor have been implemented on the {{domxref("URL")}} interface ({{bug("887364")}}).
- The properties {{domxref("URLUtils.origin")}}, {{domxref("URLUtils.password")}}, and {{domxref("URLUtils.username")}} are now available to all interfaces implementing {{domxref("URLUtils")}}: {{domxref("URL")}}, {{domxref("Location")}}, {{domxref("HTMLAnchorElement")}}, and {{domxref("HTMLAreaElement")}} ({{bug("887364")}}).
- The {{domxref("URL")}} interface is now accessible from Web Workers ({{bug("887364")}}).
- IndexedDB can now be used as a "optimistic" storage area so it doesn't require any prompts and data is stored in a pool with LRU eviction policy, in short temporary storage ({{bug("785884")}}).
- Support for {{domxref("WaveShaperNode.oversample")}} has been added ({{bug(875277)}}).
- Path of the persistent storage has been changed from
<profile>/indexedDB
to<profile>/storage/persistent
(on b2g from/data/local/indexedDB
to/data/local/storage/persistent
). - The {{domxref("Screen.orientation")}} property and {{domxref("Screen.lockOrientation()")}} method now support the
default
value, mapping toportrait-primary
orlandscape-primary
, depending of the device ({{bug(908058)}}) This works only for Firefox OS and Firefox for Android. Firefox Desktop is not supported. - {{domxref("Event")}} constructors can be used in Web workers ({{bug(910910)}}).
- Trying to set the {{domxref("Document.domain")}} property on a page embedded in an {{HTMLElement("iframe")}} with the
sandbox
attribute now throws a security error ({{bug(907892)}}). - The {{domxref("MessageEvent")}} interface has been updated to comply with the latest spec. The
initMessageEvent
method has been removed while the interface has now a constructor ({{bug(848294)}}). - The HTML5
MessageChannel
API has been implemented, behind thedom.messageChannel.enabled
preference ({{bug("677638")}}). - Support for
VTTCue
, behind themedia.webvtt.enabled
preference, like for all WebVTT-related implementations, has been added ({{bug("868509")}}).
MathML
- Inconsistent renderings of {{MathMLElement("mmultiscripts")}}, {{MathMLElement("msub")}}, {{MathMLElement("msup")}} and {{MathMLElement("msubsup")}} have been unified and the error handling of these elements has been improved ({{bug("827713")}}).
SVG
- The inclusion of SVG glyphs inside OpenType, SVG-in-OpenType, has been updated to match the current version of the specification ({{bug("906521")}}).
- The
SVGElement.ownerSVGElement()
method doesn't throw anymore ({{bug("835048")}}).
Development tools
- The Inspector is now remotable ({{bug(805526)}}).
- The web console text can be selected, {{cssxref("::before")}} and {{cssxref("::after")}} now inspectable, debugger and responsive design features are planned for this release. (https://hacks.mozilla.org/2013/09/new-features-in-the-firefox-developer-tools-episode-26/)
See also
Older versions
{{Firefox_for_developers('25')}}