1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
---
title: Firefox 34 for developers
slug: Mozilla/Firefox/Releases/34
tags:
- Firefox
- NeedsTranslation
- Releases
- TopicStub
translation_of: Mozilla/Firefox/Releases/34
---
<div>{{FirefoxSidebar}}</div><div>
<p>Firefox 34 was released on December 1st, 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.</p>
</div>
<h2 id="Changes_for_Web_developers">Changes for Web developers</h2>
<h3 id="Developer_Tools">Developer Tools</h3>
<p>Highlights:</p>
<ul>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector">Storage Inspector: a new tool enabling you to view data stored by web pages</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Performance">Performance tool: revamped Profiler UI and frame rate timeline</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/tools/Working_with_iframes">Frame switching: point the developer tools at a specific iframe in the page</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/API/Console.table">console.table support</a></li>
<li><a href="https://developer.mozilla.org/en-US/docs/Tools/Page_Inspector#Examining_event_listeners">jQuery events are visible in the Page Inspector</a></li>
</ul>
<p><a class="external-icon external" href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&chfieldto=2014-09-02&chfield=resolution&query_format=advanced&chfieldfrom=2014-07-21&chfieldvalue=FIXED&component=Developer%20Tools&component=Developer%20Tools%3A%203D%20View&component=Developer%20Tools%3A%20Canvas%20Debugger&component=Developer%20Tools%3A%20Console&component=Developer%20Tools%3A%20Debugger&component=Developer%20Tools%3A%20Framework&component=Developer%20Tools%3A%20Graphic%20Commandline%20and%20Toolbar&component=Developer%20Tools%3A%20Inspector&component=Developer%20Tools%3A%20Memory&component=Developer%20Tools%3A%20Netmonitor&component=Developer%20Tools%3A%20Object%20Inspector&component=Developer%20Tools%3A%20Profiler&component=Developer%20Tools%3A%20Responsive%20Mode&component=Developer%20Tools%3A%20Scratchpad&component=Developer%20Tools%3A%20Source%20Editor&component=Developer%20Tools%3A%20Storage%20Inspector&component=Developer%20Tools%3A%20Style%20Editor&component=Developer%20Tools%3A%20Timeline&component=Developer%20Tools%3A%20User%20Stories&component=Developer%20Tools%3A%20Web%20Audio%20Editor&component=Developer%20Tools%3A%20WebGL%20Shader%20Editor&component=Developer%20Tools%3A%20WebIDE&component=Simulator&product=Firefox&product=Firefox%20OS&list_id=11184176">All devtools bugs fixed between Firefox 33 and Firefox 34</a>.</p>
<h3 id="CSS">CSS</h3>
<ul>
<li>Our experimental implementation of CSS Fonts Level 3 progresses. Newly implemented features are:
<ul>
<li>the fallback algorithm of {{cssxref("font-variant-position")}}, creating synthetic alternates for missing glyphs, based on the subscript and superscript metrics supplied by the font ({{bug(1024804)}}).</li>
<li>The <code>layout.css.font-features.enabled</code> preference has been removed, meaning the following properties have been activated by default:
<ul>
<li>The CSS Font Level 3 version of {{cssxref("font-variant")}} which is now a shorthand property.</li>
<li>The longhand properties {{cssxref("font-variant-caps")}}, {{cssxref("font-variant-numeric")}}, {{cssxref("font-variant-position")}}, {{cssxref("font-variant-east-asian")}}, {{cssxref("font-variant-ligatures")}}, and {{cssxref("font-variant-alternates")}}.</li>
<li>The properties {{cssxref("font-kerning")}} and {{cssxref("font-synthesis")}}</li>
<li>The properties {{cssxref("font-feature-settings")}} and {{cssxref("font-language-override")}} are unprefixed. The prefixed version are still available for some time to ease transition.</li>
</ul>
</li>
</ul>
</li>
<li>The value <code>auto</code> has been added to {{cssxref("min-width")}} and {{cssxref("min-height")}} with a different behavior than the last time ({{bug(984711)}} and {{bug(1015474)}}).</li>
<li>An experimental implementation, disabled by default, of the filter functional values of the {{cssxref("filter")}} property have been implemented. It is controlled by the <code>layout.css.filters.enabled</code> pref ({{bug(948265)}}).</li>
<li>Fixed starting of CSS transitions that start together with changes to {{cssxref("display")}}, {{cssxref("position")}}, {{cssxref("overflow")}}, and similar properties ({{bug(625289)}})</li>
</ul>
<h3 id="HTML">HTML</h3>
<p><em>No change.</em></p>
<h3 id="JavaScript">JavaScript</h3>
<ul>
<li>The ES6 syntax for <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names">computed property names on object literals</a> has been implemented ({{bug(924688)}}).
<ul>
<li>This includes <a href="/en-US/docs/Web/JavaScript/Reference/Functions/get">getter</a> and <a href="/en-US/docs/Web/JavaScript/Reference/Functions/set">setter</a> method names as well ({{bug(1048384)}}) and can also be used with <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Computed_object_property_names_and_destructuring">destructuring</a>.</li>
</ul>
</li>
<li>The ES6<a href="/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions"> shorthand syntax for defining methods</a> on objects has been implemented ({{bug(924672)}}).</li>
<li>The ES6 <code>Object</code> method {{jsxref("Object.assign", "Object.assign()")}} has been implemented ({{bug(937855)}}).</li>
<li>ES6 <a href="/en-US/docs/Web/JavaScript/Reference/template_strings">template strings</a> and the {{jsxref("String.raw()")}} method are now supported ({{bug(1038259)}}, {{bug(1039774)}}).</li>
<li>A new ES6 object {{jsxref("WeakSet")}} has been added ({{bug(792439)}}).</li>
<li>ES6 <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol">Symbols</a> (only available in the Nightly channel) have been updated to conform with recent specification changes ({{bug(1042602)}}):
<ul>
<li>When trying to convert a symbol to a number, a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypeError" title="The TypeError object represents an error when a value is not of the expected type."><code>TypeError</code></a> will be thrown now.</li>
<li>When using loose equality, <code>Object(sym) == sym</code> returns <code>true</code> now.</li>
</ul>
</li>
<li>The experimental {{jsxref("TypedArray.prototype.move()")}} method (only available in former Nightly and Aurora channels) has been replaced with the now implemented standard ES6 {{jsxref("TypedArray.prototype.copyWithin()")}} method ({{bug(1021379)}}).</li>
<li>In <a href="/en-US/docs/Web/JavaScript/Reference/Strict_mode">strict mode</a>, setting a <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Duplicate_property_names">duplicate property name in object literals</a> will no longer throw a <code>SyntaxError</code> as per ES6 specification ({{bug(1041128)}}).</li>
<li>In regular expressions (including <code>String.replace</code>), the matched text for a capturing group is now <code>undefined</code> instead of the empty string when that capturing group didn't get consulted because quantifiers prevented its exercise (see {{bug(369778)}} and <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Gecko_specific_notes">this example code</a>). Note that due to web compatibility, RegExp.$N will still return an empty string ({{bug(1053944)}}).</li>
<li>The ES6 <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator">spread operator</a> is now supported in <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">destructuring</a> ({{bug(933276)}}).</li>
<li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">Destructuring</a> now uses iterator protocol instead of array-like protocol ({{bug(933276)}}).</li>
<li><span class="message"><span class="content">{{jsxref("Proxy.revocable()")}} has been implemented</span></span> ({{bug(978279)}}).</li>
</ul>
<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>
<ul>
<li>The {{domxref("Element.matches()")}} method has been added; it does what the non-standard <code>mozMatchesSelector()</code> was doing ({{bug(886308)}}).</li>
<li>The {{domxref("Performance.now()")}} method is now available to Web workers ({{bug(908390)}}).</li>
<li>The non-standard interface <code>MozNamedAttrMap</code> has been renamed to the standard {{domxref("NamedNodeMap")}} and {{domxref("Element.attributes")}} has been adapted to use it ({{bug(1055467)}}).</li>
<li>The {{domxref("Path2D.addPath()")}} method has been added ({{bug(985801)}}).</li>
<li>The non-standard <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage API</a> is now also enabled for privileged apps installed on Android ({{bug(886627)}}).</li>
<li>Web Crypto API has been enabled by default ({{bug(1074001)}}).</li>
<li>The {{domxref("MediaStreamTrack.stop()")}} method has been added ({{bug(1057955)}}).</li>
<li>Our experimental implementation of EME continues. The {{domxref("MediaKeySession.getUsableKeyIds()")}} method has been added ({{bug(1057171)}}).</li>
<li>Regarding <a href="/en-US/docs/Web/Guide/API/WebRTC">WebRTC</a>:
<ul>
<li>an experiment implementation of {{domxref("RTPSender")}} and {{domxref("RTPReceiver")}} working with {{domxref("RTCPeerConnection")}} has landed ({{bug(1032835)}}).</li>
<li>application window sharing has been added to {{domxref("Navigation.getUserMedia()")}} ({{bug(1036653)}}) and {{domxref("MediaTrackConstraintSet")}} now supports <code>browserWindow</code> and <code>scrollWithPage</code> allowing to chose the tab of a window that has to be shared without showing the tab chooser dialog ({{bug(1041700)}}).</li>
<li><code>"browser"</code> is now an accepted value of MediaSourceEnum, used to define constraints ({{bug(1041493)}}).</li>
</ul>
</li>
<li>For Web Components, event retargeting is now implemented ({{bug(887541)}}).</li>
<li>The {{domxref("Headers")}} interface has been implemented ({{bug(1029620)}}). It is controlled by the <code>dom.fetch.enabled</code> preference which is set to <code>false</code> by default.</li>
<li>Regarding our experimental implementation of Web Animations, the {{domxref("AnimationEffect")}} interface has been added, with the single {{domxref("AnimationEffect.name")}} property ({{bug(1045993)}}). Web Animations is not activated by default and is controlled by the <code>dom.animations-api.core.enabled</code> preference.</li>
<li>CSSOM View smooth scrolling methods have been added: {{domxref("Window.scroll()")}}, {{domxref("Window.scrollTo()")}}, and {{domxref("Window.scrollBy()")}} ({{bug(1022818)}}).</li>
<li>The non-standard <code>MozSmsSegmentInfo</code> is no more visible on the global object {{bug(916607)}}.</li>
</ul>
<h3 id="MathML">MathML</h3>
<p><em>No change.</em></p>
<h3 id="SVG">SVG</h3>
<p><em>No change.</em></p>
<h3 id="AudioVideo">Audio/Video</h3>
<p><em>No change.</em></p>
<h2 id="Security_and_Networking">Security and Networking</h2>
<ul>
<li>SSLv3 is now disabled by default ({{bug(1030963)}}).</li>
<li>A warning is sent to the console when a Web site use the CSS <code>reflected-xss</code> directive ({{bug(1045902)}}).</li>
</ul>
<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>
<ul>
<li>localstore.rdf has been removed ({{bug(559505)}}).</li>
</ul>
<h3 id="Add-on_SDK">Add-on SDK</h3>
<h4 id="Highlights">Highlights</h4>
<ul>
<li>New API: <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/dev_panel">dev/panel</a> enables you to extend the Firefox Developer Tools.</li>
<li><a href="https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm">jpm</a> beta released.</li>
<li><code>"./my-file"</code> introduced everywhere as an alias for <code>require("sdk/self").data.url("my-file")</code></li>
<li>Added the ability to <a href="https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/tabs#Attaching_stylesheets">attach stylesheets to individual tabs</a>.</li>
</ul>
<h4 id="Details">Details</h4>
<p><a class="external external-icon" href="https://github.com/mozilla/addon-sdk/compare/firefox33...firefox34">GitHub commits made between Firefox 33 and Firefox 34</a>. This will not include any uplifts made after this release entered Aurora.</p>
<p><a class="external external-icon" href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&chfieldto=2014-09-02&chfield=resolution&query_format=advanced&chfieldfrom=2014-07-21&chfieldvalue=FIXED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&product=Add-on%20SDK&list_id=11562840">Bugs fixed between Firefox 33 and Firefox 34</a>. This will not include any uplifts made after this release entered Aurora.</p>
<h2 id="See_also">See also</h2>
<ul>
<li><a href="https://www.fxsitecompat.com/en-US/versions/34/">Site Compatibility for Firefox 34</a></li>
</ul>
<h2 id="Older_versions">Older versions</h2>
<p>{{Firefox_for_developers('33')}}</p>
|