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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
---
title: Firefox 38 for developers
slug: Mozilla/Firefox/Releases/38
tags:
- Firefox
- NeedsTranslation
- Release
- TopicStub
translation_of: Mozilla/Firefox/Releases/38
---
<div>{{FirefoxSidebar}}</div><p>Firefox 38 was released on May 12th, 2015. 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>
<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="/en-US/docs/Tools/Web_Audio_Editor#Bypassing_nodes">Bypass audio nodes in Web Audio Editor</a></li>
<li><a href="/en-US/docs/Tools/Web_Console#Helper_commands">"copy" command in Web Console</a></li>
<li><a href="/en-US/docs/Tools/Web_Console#XHR">Highlight and filter XmlHttpRequests in Web Console</a></li>
<li><a href="/en-US/docs/Tools/Debugger/How_to/Examine,_modify,_and_watch_variables">See optimized-out variables in the Debugger</a></li>
<li><a href="/en-US/docs/Tools/Network_Monitor#Security">See security warnings in the Network Monitor</a></li>
<li><a href="/en-US/docs/Tools/Network_Monitor#Network_request_fields">See transferred sizes in the Network Monitor</a></li>
<li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Work_with_animations#Animations_view">Play/pause all animations in the page</a></li>
</ul>
<p><a class="external external-icon" href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&classification=Client%20Software&chfieldto=2015-02-23&query_format=advanced&chfield=resolution&chfieldfrom=2015-01-12&chfieldvalue=FIXED&bug_status=RESOLVED&bug_status=VERIFIED&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&product=Firefox&list_id=12076303">All devtools bugs fixed between Firefox 37 and Firefox 38</a>.</p>
<h3 id="CSS">CSS</h3>
<ul>
<li>Support for {{cssxref("ruby-position")}} and {{cssxref("ruby-align")}} have been added and is available by default ({{bug(1055676)}} {{bug(1123917)}} and {{bug(1039006)}}).</li>
<li>The {{cssxref(":unresolved")}} pseudo-class has been implemented for custom elements ({{bug(1111633)}}).</li>
<li>The predefined style {{cssxref("list-style-type", "ethiopic-numeric")}} now uses a space, instead of a dot, as the suffix to match a recent change to the spec ({{bug(1120721)}}).</li>
<li>CSS transitions on generated content (with {{cssxref("::before")}} and {{cssxref("::after")}}) on both an inline and the block that splits them now start as expected by the specification ({{bug(1110277)}}).</li>
<li>The implementation of CSS Logical Properties made big progress. The following properties are available behind the {{pref("layout.css.vertical-text.enabled")}} flag (<code>false</code> by default):
<ul>
<li>Direction-independent equivalents of {{cssxref("width")}} and {{cssxref("height")}}: {{cssxref("block-size")}} and {{cssxref("inline-size")}} ({{bug(1117983)}}).</li>
<li>Direction-independent equivalents of {{cssxref("min-width")}} and {{cssxref("min-height")}}: {{cssxref("min-block-size")}} and {{cssxref("min-inline-size")}} ({{bug(1117983)}}).</li>
<li>Direction-independent equivalents of {{cssxref("max-width")}} and {{cssxref("max-height")}}: {{cssxref("max-block-size")}} and {{cssxref("max-block-size")}} ({{bug(1117983)}}).</li>
<li>Direction-independent equivalents of {{cssxref("margin-top")}}, {{cssxref("margin-right")}}, {{cssxref("margin-bottom")}} and {{cssxref("margin-left")}}: {{cssxref("margin-block-start")}}, {{cssxref("margin-block-end")}}, {{cssxref("margin-inline-start")}} and {{cssxref("margin-inline-end")}} ({{bug(649142)}}).</li>
<li>Direction-independent equivalents of {{cssxref("padding-top")}}, {{cssxref("padding-right")}}, {{cssxref("padding-bottom")}} and {{cssxref("padding-left")}}: {{cssxref("padding-block-start")}}, {{cssxref("padding-block-end")}}, {{cssxref("padding-inline-start")}} and {{cssxref("padding-inline-end")}} ({{bug(649142)}}).</li>
<li>Direction-independent equivalents of {{cssxref("border-top")}}, {{cssxref("border-right")}}, {{cssxref("border-bottom")}} and {{cssxref("border-left")}} and their longhands for width, style and color: {{cssxref("border-block-start")}}, {{cssxref("border-block-start-width")}}, {{cssxref("border-block-start-style")}}, {{cssxref("border-block-start-color")}}, {{cssxref("border-block-end")}}, {{cssxref("border-block-end-width")}}, {{cssxref("border-block-end-style")}}, {{cssxref("border-block-end-color")}}, {{cssxref("border-inline-start")}}, {{cssxref("border-inline-start-width")}}, {{cssxref("border-inline-start-style")}}, {{cssxref("border-inline-start-color")}}, {{cssxref("border-inline-end")}}, {{cssxref("border-inline-end-width")}}, {{cssxref("border-inline-end-style")}} and {{cssxref("border-inline-end-color")}} ({{bug(649142)}}).</li>
<li>Direction-independent equivalents of {{cssxref("top")}}, {{cssxref("right")}}, {{cssxref("bottom")}} and {{cssxref("left")}}: {{cssxref("offset-block-start")}}, {{cssxref("offset-block-end")}}, {{cssxref("offset-inline-start")}} and {{cssxref("offset-inline-end")}} ({{bug(1120283)}}).</li>
</ul>
</li>
<li>How <a href="/en-US/docs/Web/Guide/CSS/Using_CSS_transitions">CSS transitions</a> start has been modified to match a recent change of the specifications, aiming at having an interoperable behavior between browsers ({{bug(960465)}}).</li>
</ul>
<h3 id="HTML">HTML</h3>
<ul>
<li>The {{HTMLElement("label")}} element no longer dispatches events to the label target element if interactive content is found between the event target and the label ({{bug(229925)}}).</li>
<li>The {{HTMLElement("picture")}} element has been activated by default ({{bug(1017875)}}).</li>
<li>The <code><meta name="referrer"></code> is supported for navigations from the context menu or via a middle-click ({{bug(1113431)}}).</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
<li>{{jsxref("Generator/return", "Generator.prototype.return()")}} is implemented ({{bug(1115868)}}).</li>
<li>{{jsxref("Functions/set", "Setter")}} with a {{jsxref("Functions/rest_parameters", "rest parameter", "", 1)}} is now a {{jsxref("SyntaxError")}} ({{bug(1089632)}}).</li>
<li>The {{jsxref("Function/name", "name")}} property of functions is configurable now ({{bug(1084019)}}).</li>
<li>Several {{jsxref("Array")}} methods have been implemented for <a href="/en-US/docs/Web/JavaScript/Typed_arrays">typed arrays</a> as well:
<ul>
<li>The {{jsxref("TypedArray.of", "of()")}} and {{jsxref("TypedArray.from", "from()")}} methods ({{bug(896608)}}).</li>
<li>The {{jsxref("TypedArray.forEach", "forEach()")}} method ({{bug(1107645)}}).</li>
<li>The {{jsxref("TypedArray.filter", "filter()")}} and {{jsxref("TypedArray.map", "map()")}} methods ({{bug(1121936)}}).</li>
<li>The {{jsxref("TypedArray.slice", "slice()")}} method ({{bug(1121935)}}).</li>
</ul>
</li>
<li>Duplicated parameter name is no longer allowed when rest-parameter is present ({{bug(1096376)}}).</li>
<li>Duplicated parameter name is no longer allowed in arrow functions ({{bug(1096377)}}).</li>
<li>Duplicated parameter name is no longer allowed in concise method definitions ({{bug(1096378)}}).</li>
<li>Warning is shown when {{jsxref("Map")}}/{{jsxref("Set")}}/{{jsxref("WeakMap")}} constructor is called without {{jsxref("Operators/new", "new")}} ({{bug(1108930)}}).</li>
<li>The {{jsxref("WeakMap.get", "get")}}, {{jsxref("WeakMap.has", "has")}}, and {{jsxref("WeakMap.delete", "delete")}} methods of {{jsxref("WeakMap")}} objects no longer throw when the <code>key</code> parameter is not an object ({{bug(1127827)}}).</li>
<li>The optional and non-standard second <code>fallback</code> parameter for {{jsxref("WeakMap.prototype.get()")}} has been removed ({{bug(1127827)}}).</li>
<li>When defining a <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions">generator method</a>, "<code>set</code>" and "<code>get</code>" are no longer invalid names ({{bug(1073809)}}).</li>
<li>{{jsxref("RegExp.prototype.source")}} now returns "(?:)" instead of an empty string for empty regular expressions ({{bug(1130798)}}).</li>
<li>{{jsxref("RegExp.prototype.source")}} and {{jsxref("RegExp.prototype.toString()")}} now escape regular expression patterns properly (e.g. line terminators, "\n") ({{bug(1130860)}}).</li>
<li>The {{jsxref("Regexp")}} {{jsxref("Regexp.global", "global")}}, {{jsxref("Regexp.ignoreCase", "ignoreCase")}}, {{jsxref("Regexp.multiline", "multiline")}}, and {{jsxref("Regexp.sticky", "sticky")}} properties are now prototype accessor properties rather than own data properties of <code>RegExp</code> instances ({{bug(1120169)}}).</li>
<li>The {{jsxref("RegExp.prototype.source")}} property is now prototype accessor property rather than own data property of <code>RegExp</code> instances ({{bug(1120169)}}). Available only in non-Release version, due to {{bug(1150297)}}.</li>
<li>{{jsxref("Function.prototype.toString()")}} now throws for {{jsxref("Proxy")}} objects ({{bug(1100936)}}).</li>
</ul>
<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>
<ul>
<li>The Fetch API {{domxref("fetch()")}} method has been implemented ({{bug(1039846)}}).</li>
<li>{{domxref("BroadcastChannel")}} API has been implemented and is available in <a href="/en-US/docs/Web/API/Web_Workers_API">Web Workers</a> ({{bug(966439)}} and {{bug(1121420)}}).</li>
<li>The Console API is now available in <a href="/en-US/docs/Web/API/Web_Workers_API">Web Workers</a>.</li>
<li>{{domxref("CanvasRenderingContext2D.clearHitRegions()")}} has been implemented ({{bug(1119527)}}).</li>
<li>Constants of {{domxref("KeyboardEvent.location")}}, <code>DOM_KEY_LOCATION_MOBILE</code> and DOM_KEY_LOCATION_JOYSTICK, have been removed, since they were removed from the DOM Level 3 Spec ({{bug(936313)}}.</li>
<li>{{domxref("KeyboardEvent.code")}} is now available; previously it was only available in prerelease builds. ({{bug(1126673)}})</li>
<li>{{domxref("KeyboardEvent.code")}} now supports special keys on Sun keyboards on Linux, Android, and Firefox OS. ({{bug(1020139)}})</li>
<li>The {{domxref("TextEncoder.TextEncoder", "TextEncoder()")}} constructor has been changed to match the spec: when an invalid parameter is passed, the {{exception("RangeError")}} exception is now raised, rather than the erroneous {{exception("TypeError")}} ({{bug(1125766)}}).</li>
<li>The User Timing API, adding {{domxref("Performance.mark()")}}, {{domxref("Performance.clearMarks()")}}, {{domxref("Performance.measure()")}}, and {{domxref("Performance.clearMeasures()")}} has been implemented ({{bug(782751)}}).</li>
<li>The prefixed version of {{domxref("Window.indexedDB", "indexedDB")}}, <code>mozIndexedDB</code> has been removed ({{bug(975699)}}).</li>
<li>The {{event("DOMContentLoaded")}} event is no longer cancelable ({{bug(1134559)}}).</li>
<li>You can now use <a href="/en-US/docs/WebSockets">WebSockets</a> in <a href="/en-US/docs/Web/API/Web_Workers_API">Workers</a> ({{bug(504553)}}).</li>
<li>The {{domxref("XMLHttpRequest.responseType")}} and {{domxref("XMLHttpRequest.withCredentials")}} properties can now be set before calling {{domxref("XMLHttpRequest.open()")}} ({{bug(707484)}}).</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="Networking">Networking</h2>
<p><em>No change.</em></p>
<h2 id="Security">Security</h2>
<ul>
<li>In Firefox, the {{htmlattrxref("autocomplete", "input")}}<code>=false</code> attribute is now ignored when dealing with a login form ({{bug(1025703)}}). This is intended to encourage the use of more secure passwords by allowing password manager tools to work more reliably.</li>
<li>RC4 is now disabled when using TLS, except for a few specifically whitelisted Web sites. This whitelist is an interim measure until those sites are fixed ({{bug(1124039)}}). This fallback is controlled by the <code>security.tls.unrestricted_rc4_fallback</code> preference, <code>true</code> by default for the moment ({{bug(1138882)}}).</li>
<li>Web sites needing to fall back to an insecure version of TLS in order to work are now in a hardcoded whitelist which will shrink over time ({{bug(1114816)}}). The whitelist can be disabled by setting {{pref("security.tls.insecure_fallback_hosts.use_static_list")}} to <code>false</code>.</li>
</ul>
<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>
<h3 id="Add-on_SDK">Add-on SDK</h3>
<h4 id="Highlights">Highlights</h4>
<ul>
<li><code>sdk/context-menu@2</code> was implemented ({{bug(1070952)}}).</li>
<li><code>sdk/addon/bootstrap</code> was implemented ({{bug(1075541)}}).</li>
<li><code>sdk/windows/loader</code> was removed ({{bug(970135)}}).</li>
<li>Fix for default language detection on Linux ({{bug(1114712)}}).</li>
<li><code>toolkit/loader</code> now has opt-in module compatibility checking, which is enabled for all jpm add-ons ({{bug(1037235)}}).</li>
</ul>
<h4 id="Electrolysis_(E10s)_updates">Electrolysis (E10s) updates</h4>
<ul>
<li><code>sdk/page-worker</code> e10s updates ({{bug(1116004)}}).</li>
<li><code>sdk/content/worker</code> e10s updates ({{bug(1116544)}}).</li>
<li><code>sdk/tabs</code> e10s updates ({{bug(1033838)}}).</li>
</ul>
<h4 id="Details">Details</h4>
<ul>
<li><a href="https://github.com/mozilla/addon-sdk/compare/firefox36...firefox38">Github commits made between Firefox 37 and Firefox 38</a>.</li>
</ul>
<h3 id="XUL">XUL</h3>
<p><em>No change.</em></p>
<h3 id="JavaScript_code_modules">JavaScript code modules</h3>
<h4 id="Downloads.jsm">Downloads.jsm</h4>
<ul>
<li><code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget">DownloadTarget</a></code> objects now have <code>exists</code> and <code>size</code> properties, allowing you to determine the existence of and the size of the download's target file on disk, as well as a new <code><a href="/en-US/docs/Mozilla/JavaScript_code_modules/Downloads.jsm/DownloadTarget#refresh()">refresh()</a></code> method, which asks that these values be updated.</li>
</ul>
<h3 id="XPCOM">XPCOM</h3>
<ul>
<li><code>"@mozilla.org/network/atomic-file-output-stream;1"</code> and <code>"@mozilla.org/network/safe-file-output-stream;1"</code> now throw an exception if <code>PR_APPEND</code> is passed without <code>PR_TRUNCATE</code> ({{bug(1117580)}}).</li>
<li>{{ interface("nsICompositionStringSynthesizer") }} and {{ifmethod("nsIDOMWindowUtils", "sendCompositionEvent")}} have been removed. Instead, use {{ interface("nsITextInputProcessor") }}. ({{bug(917322)}})</li>
<li><code><a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIDOMWindowUtils#sendKeyEvent%28%29">nsIDOMWindowUtils.sendKeyEvent()</a></code> is now deprecated. Instead, use {{ interface("nsITextInputProcessor") }} ({{bug(1119609)}}).</li>
</ul>
<h2 id="See_also">See also</h2>
<ul>
<li><a href="https://www.fxsitecompat.com/en-US/versions/38/">Site Compatibility for Firefox 38</a></li>
</ul>
<h2 id="Older_versions">Older versions</h2>
<p>{{Firefox_for_developers('37')}}</p>
|