Firefox 27 was released on February 4, 2014. 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.
Want to help document Firefox 27? See the list of bugs that need to be written about and pitch in!
Changes for Web developers
Developer Tools
- .
- Javascript in the debugger panel can be unminified, using the { } button.
- The inspector now has edit-element-html feature, without needing an addon.
- Background-urls and colors have preview in inspector. Even hovering over canvas elements will give a popup with an image preview.
- Reflow logging has been added.
- Styles of SVG elements are now inspectable ({{Bug(921191)}}).
- Failure to find the image when clicking url link in CSS inspector has been fixed ({{Bug(921686)}}).
More details in this post.
CSS
- The
-moz-grab
and-moz-grabbing
keywords on the CSS {{cssxref("cursor")}} 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 for {{cssxref("text-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 {{cssxref("all")}} shorthand property has been added ({{bug(920633)}}).
- The {{cssxref("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 {{cssxref("overflow")}} property now works on {{HTMLElement("fieldset")}} ({{bug(261037)}}).
HTML
- The
color
value of the {{HTMLElement("input")}} {{htmlattrxref("type", "input")}} attribute has been implemented on desktop platforms. It was already available on mobile ones. - The
allow-popups
directive is now supported with the {{htmlattrxref("sandbox", "iframe")}} attribute of the {{HTMLElement("iframe")}} element ({{bug(766282)}}). - Blending of HTML elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The
layout.css.mix-blend-mode.enabled
preference must be set totrue
({{bug(902525)}}).
JavaScript
EcmaScript 6 (Harmony) implementation continues!
- The Harmony spread operator is now supported in Function calls ({{bug("762363")}}).
- The mathematical function {{jsxref("Global_Objects/Math/hypot", "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
. - {{jsxref("String.match")}} and {{jsxref("String.replace")}} now reset {{jsxref("RegExp.lastIndex")}} ({{bug(501739)}}).
Interfaces/APIs/DOM
- Support for the two
setRange()
methods on the {{domxref("HTMLInputElement")}} interface has been added ({{bug(850364)}}). - Support for the two
setRange()
methods on the {{domxref("HTMLTextAreaElement")}} interface has been added ({{bug(918940)}}). - The method
getAllKeys()
andopenKeyCursor()
have been added to {{domxref("IDBObjectStore")}} ({{bug(920633)}} and {{bug(920800)}}). - The {{domxref("HTMLFormControlsCollection")}} interface has been implemented ({{bug(913920)}}).
- The {{domxref("CanvasRenderingContext2D")}} interface supports now the two methods
getLineDash()
andsetLineDash()
({{bug(768067)}}). - The
typeMustMatch
attribute has been implemented on the {{domxref("HTMLObjectElement")}} interface ({{bug(827160)}}). - The
copyFromChannel()
andcopyToChannel()
methods have been added to {{domxref("AudioBuffer")}} ({{bug(915524)}}). Event.isTrusted()
is now unforgeable ({{bug(637248)}}).- The {{domxref("Navigator.vibrate()")}} method has been adapted to match the final specification: It now returns
false
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 of {{domxref("CSSRuleList")}}, 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)}}).
MathML
No change.
SVG
- Blending of SVG elements using the {{cssxref("mix-blend-mode")}} property has been implemented. The
layout.css.mix-blend-mode.enabled
preference must be set totrue
({{bug(902525)}}).
Changes for addon and Mozilla developers
- The
downloads-indicator
button has gone away. You should now use thedownloads-button
element. If you need to check that it has loaded its overlay, check for theindicator
attribute on that button. - The
chrome://browser/skin/downloads/indicator.css
stylesheet is no longer referenced in Firefox.
Security
- TLS 1.2 has been implemented for improved security ({{Bug(861266)}}).
See also
- Site Compatibility for Firefox 27
- List of changes in Marionette for Firefox 27.
Older versions
{{Firefox_for_developers('26')}}