aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/mozilla/firefox/releases/43/index.html
blob: 81566a6373745c1612d48b26c0759e2ac88f1612 (plain)
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
---
title: Firefox 43 for developers
slug: Mozilla/Firefox/Releases/43
tags:
  - Firefox
translation_of: Mozilla/Firefox/Releases/43
---
<div>{{FirefoxSidebar}}</div><p><a href="https://www.mozilla.org/firefox/developer/" style="float: right; margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">To test the latest developer features of Firefox,<br>
 install Firefox Developer Edition</a> Firefox 43 was released on December 15, 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_Console/Console_messages#Server">Server logging in the Web Console</a></li>
 <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#Overridden_declarations">Quickly find the rule that overrode a CSS declaration</a></li>
 <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML#Element_popup_menu">"Use in Console" context menu item in Inspector</a></li>
 <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#Strict_search">"Strict" option for filtering in the Rules view</a></li>
 <li><a href="/en-US/docs/Tools/Web_Console/Console_messages#Network">Network entries in the Console now link to the Network Monitor</a></li>
 <li><a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_CSS#Setting_hover_active_focus">Markup view shows indicators for pseudo-classes locked for elements</a></li>
 <li><span class="author-g-1scq3ywqbljc5puc">New sidebar UI for WebIDE</span></li>
</ul>

<p><a class="external external-icon" href="https://bugzilla.mozilla.org/buglist.cgi?resolution=FIXED&amp;classification=Client%20Software&amp;chfieldto=2015-09-19&amp;query_format=advanced&amp;chfield=resolution&amp;chfieldfrom=2015-08-10&amp;chfieldvalue=FIXED&amp;bug_status=RESOLVED&amp;bug_status=VERIFIED&amp;component=Developer%20Tools&amp;component=Developer%20Tools%3A%203D%20View&amp;component=Developer%20Tools%3A%20Canvas%20Debugger&amp;component=Developer%20Tools%3A%20Console&amp;component=Developer%20Tools%3A%20Debugger&amp;component=Developer%20Tools%3A%20Framework&amp;component=Developer%20Tools%3A%20Graphic%20Commandline%20and%20Toolbar&amp;component=Developer%20Tools%3A%20Inspector&amp;component=Developer%20Tools%3A%20Memory&amp;component=Developer%20Tools%3A%20Netmonitor&amp;component=Developer%20Tools%3A%20Object%20Inspector&amp;component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&amp;component=Developer%20Tools%3A%20Responsive%20Mode&amp;component=Developer%20Tools%3A%20Scratchpad&amp;component=Developer%20Tools%3A%20Source%20Editor&amp;component=Developer%20Tools%3A%20Storage%20Inspector&amp;component=Developer%20Tools%3A%20Style%20Editor&amp;component=Developer%20Tools%3A%20User%20Stories&amp;component=Developer%20Tools%3A%20Web%20Audio%20Editor&amp;component=Developer%20Tools%3A%20WebGL%20Shader%20Editor&amp;component=Developer%20Tools%3A%20WebIDE&amp;product=Firefox&amp;list_id=12582678">All devtools bugs fixed between Firefox 42 and Firefox 43</a>.</p>

<h3 id="CSS">CSS</h3>

<ul>
 <li>Support for the standard, unprefixed version of {{Cssxref("hyphens")}} has been landed ({{bug(953408)}}).</li>
 <li>The shorthand property {{cssxref("font")}} has been updated to accept {{cssxref("font-stretch")}} values ({{bug(1057680)}}).</li>
 <li>To match a latest evolution of the specification, the {{cssxref(":fullscreen")}} pseudo-class now selects the whole stack of elements in full screen, and not only the top-level one ({{bug(1199522)}}).</li>
 <li>The deprecated SVG values for the {{cssxref("writing-mode")}}, <code>lr</code>, <code>lr-tb</code>, <code>rl</code>, <code>tb</code>, and <code>tb-rl</code>, have been added in CSS as aliases to standard properties ({{bug(1205787)}}).</li>
</ul>

<h3 id="HTML">HTML</h3>

<ul>
 <li>For {{htmlelement("img")}} with ICO image containing multiple frames, the intrinsic dimension of the image is set to the one of the largest frame, and no more of the smallest frame {{bug(1201796)}}.</li>
 <li>The value of the document's viewport (defined with <code>&lt;<a href="/en-US/docs/Web/HTML/Element/meta">meta</a> name="viewport&gt;</code>)can now dynamically be changed via JavaScript ({{bug(976616)}}).</li>
</ul>

<h3 id="JavaScript">JavaScript</h3>

<h4 id="New_APIs">New APIs</h4>

<ul>
 <li>The new ES2016 methods {{jsxref("Array.prototype.includes()")}} and {{jsxref("TypedArray.prototype.includes()")}} are now enabled by default ({{bug(1070767)}}).</li>
</ul>

<h4 id="Changes_regarding_the_arguments_object">Changes regarding the <code>arguments</code> object</h4>

<ul>
 <li>To match the ES2015 specification, <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions">arrow functions</a> no longer have their own <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a></code> object. The <code>arguments</code> object is now lexically bound (inherited from the outer function). In most cases, <a href="/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a> are a good alternative <code>(...args) =&gt; args[i]</code>, see {{bug(889158)}}.</li>
 <li>The <a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a> object is now allowed in conjunction with <a href="/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a> ({{bug(1133298)}}).</li>
 <li>From now on, a mapped <code><a href="/en-US/docs/Web/JavaScript/Reference/Functions/arguments">arguments</a></code> object in non-strict functions is only provided if the function does <strong>not</strong> contain any <a href="/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters">rest parameters</a>, any <a href="/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters">default parameters</a> or any <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment">destructured parameters</a> ({{bug(1175394)}}).</li>
</ul>

<h4 id="Other_changes">Other changes</h4>

<ul>
 <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*">Generators</a> and <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Method_definitions">generator methods</a> are no longer constructable as per ES2016 ({{bug(1191486)}}).</li>
</ul>

<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>

<h4 id="DOM_HTML_DOM">DOM &amp; HTML DOM</h4>

<p><em>No change.</em></p>

<h4 id="IndexedDB">IndexedDB</h4>

<ul>
 <li>A new feature called <a href="/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB#Locale-aware_sorting">locale-aware sorting</a> has been added allowing for the creation of indexes with a locale specified, which can then then be used to sort data according to the rules of that locale ({{bug(871846)}}). This is a non-standard Firefox-specific feature.</li>
</ul>

<h4 id="Service_Workers">Service Workers</h4>

<ul>
 <li>As per the specification, if {{domxref("ExtendableEvent.waitUntil()")}} is called outside of the {{domxref("ExtendableEvent")}} handler, Firefox will now throw an <code>InvalidStateError</code>; in addition, multiple calls to {{domxref("ExtendableEvent.waitUntil","waitUntil()")}} will now stack up, and the resulting promises will be added to the list of <a href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#dfn-extend-lifetime-promises">extend lifetime promises</a> ({{bug(1180274)}}).</li>
 <li>{{domxref("PushMessageData")}} methods have been implemented ({{bug(1149195)}}).</li>
</ul>

<h4 id="WebRTC">WebRTC</h4>

<ul>
 <li>The {{domxref("HTMLCanvasElement.captureStream()")}} method has been activated by default ({{bug(1177276)}}).</li>
 <li>The non-standard constraint style option list for {{domxref("RTCOfferOptions")}} has been deprecated and will be removed entirely in Firefox 44; see <a href="https://www.fxsitecompat.com/en-USdocs/2015/constraint-like-rtcofferoptions-are-no-longer-supported/">this post on the site compatibility blog</a> for details.</li>
</ul>

<h4 id="Miscellaneous">Miscellaneous</h4>

<ul>
 <li>The <a href="/en-US/docs/Web/API/Battery_Status_API">Battery Status API</a> now uses the new promise syntax for {{domxref("Navigator.getBattery()")}}, as specified in the recent evolution of the specificiation ({{bug(1050749)}}).</li>
 <li>The <code>User-Agent</code> header is no longer in the list of {{Glossary("Forbidden_header_name", "forbidden header names", 1)}} so it can now be set in a <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> {{domxref("Headers")}} object, via XHR {{domxref("XMLHttpRequest.setRequestHeader()")}},… ({{bug(1188932)}}).</li>
 <li>The {{domxref("MediaRecorder.MediaRecorder()")}} constructor can now accept an options dictionary as a parameter, which allows you to set custom bitrates for the audio/video to be recorded ({{bug("1161276")}}).</li>
 <li>The {{domxref("PerformanceObserver")}} interface, belonging to the <a href="/en-US/docs/Web/API/Performance_Timeline_API">Performance Timeline API</a> has been implemented ({{bug(1165796)}}).</li>
 <li>The <a href="/en-US/docs/Web/API/Frame Timing API">Frame Timing API</a> has been added: the {{domxref("PerformanceRenderTiming")}} and {{domxref("PerformanceCompositeTiming")}} interfaces are now availble ({{bug(1191178)}}).</li>
 <li>The modern <a href="/en-US/docs/Web/API/Screen_Orientation_API">Screen Orientation API</a> has been implemented: unprefixed {{domxref("Screen.orientation")}} and the {{domxref("ScreenOrientation")}} interface are now available ({{bug("1131470")}}). The non-standard {{domxref("Screen.mozOrientation")}}, {{domxref("Screen.onmozorientationchange")}}, {{domxref("Screen.mozLockOrientation()")}}, and {{domxref("Screen.mozUnlockOrientation()")}} will be removed in the future.</li>
 <li>Under Linux, like under Windows, {{domxref("Event.timeStamp")}} now returns a {{domxref("DOMHighResTimeStamp")}} ({{bug(1026803)}}).</li>
 <li>Experimental support for {{domxref("Selection")}} events {{event("selectionchange")}} and {{event("selectstart")}}, as well as the {{domxref("Document.onselectionchange")}} and {{domxref("GlobalEventHandlers.onselectstart")}} event handlers property has been added ({{bug(571294)}}). This feature is controlled by the <code>dom.select_events.enabled</code> preference, that defaults to <code>false</code>.</li>
 <li>Support for {{domxref("MouseEvent.offsetX")}} and {{domxref("MouseEvent.offsetY")}} have been activated on Firefox for Android and Firefox OS ({{bug(1204841)}}).</li>
 <li>The {{domxref("HTMLCanvasElement.mozFetchAsStream()")}} method has been removed ({{bug(1206030)}}).</li>
 <li>The constructor {{domxref("Request.Request", "Request()")}} as well as {{domxref("Window.fetch", "fetch()")}} will now raise a {{exception("TypeError")}} exception when used with a URL containing a username and password ({{bug(1195820)}}).</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="HTTP">HTTP</h2>

<p><em>No change.</em></p>

<h2 id="Networking">Networking</h2>

<p><em>No change.</em></p>

<h2 id="Security">Security</h2>

<ul>
 <li>Access to Web Storage (i.e. <code>localStorage</code> and <code>sessionStorage</code>) from third-party IFrames is now denied if the user has <a href="https://support.mozilla.org/en-US/kb/disable-third-party-cookies">disabled third-party cookies</a> ({{bug("536509")}}).</li>
 <li>This whitelist has even been removed in Nightly and Aurora/Dev Edition of the browser ({{bug(1201023)}}). It is currently scheduled that this removal will also happen for Beta and Release versions for the next version (Firefox 44).</li>
 <li>Subresource integrity has been implemented for {{htmlelement("script")}} and {{htmlelement("link")}} that doesn't link to stylesheets ({{bug("992096")}}).</li>
</ul>

<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>

<h3 id="Interfaces">Interfaces</h3>

<p><em>No change</em></p>

<h3 id="XUL">XUL</h3>

<p><em>No change.</em></p>

<h3 id="JavaScript_code_modules">JavaScript code modules</h3>

<p><em>No change.</em></p>

<h3 id="XPCOM">XPCOM</h3>

<p><em>No change.</em></p>

<h3 id="Plugins">Plugins</h3>

<ul>
 <li>In preparation for future releases to switch over to multi-process content, <a href="https://developer.mozilla.org/en-US/Add-ons/Plugins">NPAPI</a>plugins can no longer be run in the same process as the page content. The preferences starting with <code>dom.ipc.plugins</code> are no longer used.</li>
</ul>

<h3 id="Other">Other</h3>

<p><em>No change.</em></p>

<h2 id="See_also">See also</h2>

<ul>
 <li><a href="https://www.fxsitecompat.com/en-US/versions/43/">Site Compatibility for Firefox 43</a></li>
</ul>

<h2 id="Older_versions">Older versions</h2>

<p>{{Firefox_for_developers('42')}}</p>