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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
---
title: Firefox 50 para desarrolladores
slug: Mozilla/Firefox/Releases/50
tags:
- Firefox
- Release Notes
translation_of: Mozilla/Firefox/Releases/50
---
<div>{{FirefoxSidebar}}</div>
<p>Firefox 50 was released on November 15, 2016. 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="Cambios_para_desarrolladores_Web">Cambios para desarrolladores Web</h2>
<ul>
</ul>
<h3 id="HTML">HTML</h3>
<ul>
<li>El estilo por defecto {{HTMLElement("bdo")}} ahora asigna {{cssxref("unicode-bidi")}} con el valor <code>isolate-override</code> ({{bug(1249497)}}).</li>
<li>Asignar el atributo {{htmlattrxref("src", "track")}} del elemento {{HTMLElement("track")}} ahora funciona correctamente ({{bug(1281418)}}).</li>
<li>El atributo <code>referrerpolicy</code> en los elementos {{HTMLElement("area")}}, {{HTMLElement("a")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}} y {{HTMLElement("link")}} ahora está disponible por defecto ({{bug(1223838)}}, {{bug(1264165)}}).</li>
</ul>
<h3 id="CSS">CSS</h3>
<ul>
<li>Esquinas con estilos punteados y rayados (<code>dashed, dotted</code>) Border-radiused ahora son mostradas con el estilo especificado en lugar de estilo sólido ({{bug(382721)}}).</li>
<li>El selector pseudo-clase no estándar {{cssxref(":-moz-full-screen-ancestor")}} fue removido ({{bug(1199529)}}).</li>
<li>{{cssxref("box-sizing")}}<code>: padding-box</code> fue removido, dado que ya no forma parte de la especificación y Firefox era el unico entre los principales navegadores que lo implementaba ({{bug(1166728)}}).</li>
<li>Se removió el prefijo de los tres valores <code>isolate</code>, <code>isolate-override</code>, y <code>plaintext</code> de la propiedad {{cssxref("unicode-bidi")}} ({{bug(1141895)}}).</li>
<li>En modo de compatibilidad, la etiqueta de un elemento de lista ahora hereda el tamaño de la lista, como en el modo estandar ({{bug(648331)}}).</li>
<li>Las pseudo-clases {{cssxref(":in-range")}} y {{cssxref(":out-of-range")}} cambiaron su comportamiento para no coincidir elementos input deshabilitados o de solo lectura ({{bug(1264157)}}).</li>
<li>Se removió el prefijo de la pseudo-clase {{cssxref(":any-link")}}({{bug(843579)}}).</li>
<li>El valor <code>space</code> para {{cssxref("border-image-repeat")}} fue implementado ({{bug(720531)}}).</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
<li>La propiedad del ES2015 {{jsxref("Symbol.hasInstance")}} ha sido implementada ({{bug(1054906)}}).</li>
<li>El método de ES2017 {{jsxref("Object.getOwnPropertyDescriptors()")}} ha sido implementado ({{bug(1245024)}}).</li>
<li>El comportamiento de \W in {{jsxref("RegExp")}} con los flags unicode e ignoreCase cambió para estar de acuerdo con el borrador mas reciente de la especificación. Ahora no coincide con K, S, k, s, and KELVIN SIGN (U+212A), y LATIN SMALL LETTER LONG S (U+017F) ({{bug(1281739)}}).</li>
</ul>
<h3 id="Herramientas_de_desarrollador">Herramientas de desarrollador</h3>
<ul>
<li><a href="https://developer.mozilla.org/es/docs/Tools/Web_Console/Console_messages#Source_maps">La consola Web ahora entiende los source maps.</a></li>
<li><a href="https://developer.mozilla.org/es/docs/Tools/Storage_Inspector#IndexedDB">El inspector de almacenamiento ahora permite borrar elementos individuales desde los objetos de almacenamiento de IndexedDB.</a></li>
<li><a href="https://developer.mozilla.org/es/docs/Tools/Memory">La herramienta de memoria está habilitada por defecto.</a></li>
<li><a href="https://developer.mozilla.org/es/docs/Tools/Page_Inspector/UI_Tour#Computed_view">La panel de "Modelo de caja" fue movido al panel lateral Computado.</a></li>
<li><a href="https://developer.mozilla.org/es/docs/Tools/Web_Console/Console_messages#Viewing_network_request_details">La consola Web ahora muestra las trazas de pila para las peticiones de red XHR o Fetch().</a></li>
<li>
<p><a class="external external-icon" href="https://bugzilla.mozilla.org/buglist.cgi?list_id=13263766&chfield=resolution&chfieldfrom=2016-06-06&chfieldvalue=FIXED&resolution=FIXED&classification=Client%20Software&chfieldto=2016-08-01&query_format=advanced&bug_status=RESOLVED&bug_status=VERIFIED&component=Developer%20Tools&component=Developer%20Tools%3A%20about%3Adebugging&component=Developer%20Tools%3A%20Animation%20Inspector&component=Developer%20Tools%3A%20Canvas%20Debugger&component=Developer%20Tools%3A%20Computed%20Styles%20Inspector&component=Developer%20Tools%3A%20Console&component=Developer%20Tools%3A%20CSS%20Rules%20Inspector&component=Developer%20Tools%3A%20Debugger&component=Developer%20Tools%3A%20DOM&component=Developer%20Tools%3A%20Font%20Inspector&component=Developer%20Tools%3A%20Framework&component=Developer%20Tools%3A%20Graphic%20Commandline%20and%20Toolbar&component=Developer%20Tools%3A%20Inspector&component=Developer%20Tools%3A%20JSON%20Viewer&component=Developer%20Tools%3A%20Memory&component=Developer%20Tools%3A%20Netmonitor&component=Developer%20Tools%3A%20Object%20Inspector&component=Developer%20Tools%3A%20Performance%20Tools%20%28Profiler%2FTimeline%29&component=Developer%20Tools%3A%20Responsive%20Design%20Mode&component=Developer%20Tools%3A%20Scratchpad&component=Developer%20Tools%3A%20Shared%20Components&component=Developer%20Tools%3A%20Source%20Editor&component=Developer%20Tools%3A%20Storage%20Inspector&component=Developer%20Tools%3A%20Style%20Editor&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">Todos los bugs corregidos entre Firefox 49 y Firefox 50</a>.</p>
</li>
</ul>
<h3 id="HTTP">HTTP</h3>
<ul>
<li>El protocolo experimental (y obsoleto) <a href="https://es.wikipedia.org/wiki/SPDY">SPDY</a> 3.1 ahora está deshabilitado por defecto {{bug(1287132)}}.</li>
<li>Se añadió soporte para {{HTTPHeader("X-Content-Type-Options")}} ({{bug(471020)}}).</li>
<li>Los prefijos de cookies <strong><code>__Host-</code></strong> and <strong><code>__Secure-</code></strong> han sido implementados. Ver {{HTTPHeader("Set-Cookie")}} y {{bug(1283368)}}.</li>
<li>El encabezado {{HTTPHeader("Referrer-Policy")}} ha sido implementado {{bug(1264164)}}.</li>
</ul>
<h3 id="Seguridad">Seguridad</h3>
<ul>
<li>El atributo {{htmlattrxref("ping", "a")}} del elemento {{htmlelement("a")}} ahora se apega al <code><a href="https://developer.mozilla.org/es/docs/Web/Security/CSP/CSP_policy_directives#connect-src">connect-src</a></code> <a href="https://developer.mozilla.org/es/docs/Web/Security/CSP/CSP_policy_directives">CSP 1.1 policy directive</a> ({{bug(1100181)}}).</li>
<li>Agregado soporte para la directiva <code><a href="https://developer.mozilla.org/es/docs/Web/Security/CSP/CSP_policy_directives#sandbox">sandbox</a></code> <a href="/en-US/docs/Web/Security/CSP">CSP</a> ({{bug(671389)}}).</li>
<li>Ahora es posible indicar una política <a href="/es/docs/Web/API/Web_Workers_API/Using_web_workers#Content_security_policy">content security policy for workers</a> ({{bug (959388)}}).</li>
<li>El método {{domxref("Navigator.sendBeacon()")}} ya no lanza una excepción si los datos de la baliza (Beacon Data) no pudieron ser enviados devido a una política de restricción consentimiento method <a href="/es/docs/Web/Security/CSP">Content Security Policy</a>; en su lugar, retorna <code>false</code> como es esperado ({{bug(1234813)}}).</li>
</ul>
<h3 id="Redes">Redes</h3>
<ul>
<li>Cuando un error es encontrado durante una {{domxref("XMLHttpRequest")}} asíncrona, el método {{domxref("XMLHttpRequest.getAllResponseHeaders()")}} ahora retorna un string vacio ({{bug(1286744)}}).</li>
<li>En lugar de retornar un <code>NetworkError</code>, ahora el asynchronous {{domxref("XMLHttpRequest")}} asíncrono que falla por CORS u otras restricciones de red, ahora lanza un {{event("error")}} que puede ser capturado como cualquier otro error ({{bug(709991)}}).</li>
<li>{{domxref("XMLHttpRequest.getResponseHeader()")}} y {{domxref("XMLHttpRequest.getAllResponseHeaders()")}} ahora también retornan encabezados vacíos por defecto. Esto puede ser controlado mediante la preferencia <code>network.http.keep_empty_response_headers_as_empty_string</code> ({{bug(918721)}}).</li>
<li>La opción <code>only-if-cached</code> fue agregada a <code><a href="https://developer.mozilla.org/es/docs/Web/API/Request/cache">Request.cache</a></code> ({{bug(1272436)}}).</li>
</ul>
<h3 id="DOM">DOM</h3>
<ul>
<li>Ahora la opción <code>once</code> para {{domxref("EventTarget.addEventListener()")}} es soportada ({{bug(1287706)}}).</li>
<li>La interfaz {{domxref("NodeList")}} are now iterable and the methods {{domxref("NodeList.forEach()", "forEach()")}}, {{domxref("NodeList.values()", "values()")}}, {{domxref("NodeList.entries()")}} and {{domxref("NodeList.keys()")}} are now available ({{bug(1290636)}}).</li>
<li>The interface {{domxref("DOMTokenList")}} are now iterable and the methods {{domxref("DOMTokenList.forEach()", "forEach()")}}, {{domxref("DOMTokenList.values()", "values()")}}, {{domxref("DOMTokenList.entries()")}} and {{domxref("DOMTokenList.keys()")}} are now available ({{bug(1290636)}}).</li>
<li>The methods {{domxref("Document.createElement()")}} and {{domxref("Document.createElementNS()")}} now have an optional <code>options</code> parameter for creating <a href="/en-US/docs/Web/Web_Components/Custom_Elements">custom elements</a> ({{bug(1276579)}}).</li>
</ul>
<h3 id="SVG">SVG</h3>
<ul>
<li>The <code>allowReorder</code> attribute has been dropped and the behavior it was setting is now the default for SVG {{SVGElement("switch")}} elements ({{bug(1279690)}}).</li>
<li>The <code>defer</code> keyword for the {{SVGAttr("preserveAspectRatio")}} attribute on SVG {{SVGElement("image")}} elements has been removed to follow the latest SVG2 specification ({{bug(1280425)}}).</li>
</ul>
<h3 id="Drag_and_Drop_API">Drag and Drop API</h3>
<ul>
<li>The {{domxref("DataTransfer.items")}} property has been implemented, allowing access to multiple items being dragged and dropped using the HTML Drag and Drop API. To allow this, the {{domxref("DataTransferItem")}} and {{domxref("DataTransferItemList")}} interfaces are now supported as well ({{bug(906420)}}). This is enabled by default.</li>
<li>The old, obsolete Firefox specific drag and drop API events <code>dragdrop</code> and <code>draggesture</code> are no longer supported. Be sure to update any code still using them to use the <a href="/en-US/docs/Web/API/HTML_Drag_and_Drop_API">HTML drag and drop API</a> ({{bug(1162050)}}.</li>
</ul>
<h3 id="Pointer_Lock_API">Pointer Lock API</h3>
<ul>
<li>The <a href="/en-US/docs/Web/API/Pointer_Lock_API">Pointer Lock API</a> is now unprefixed ({{bug(991899)}}).</li>
<li>Before Firefox 50, <code><a href="/en-US/docs/Web/API/Element/requestPointerLock">requestPointerLock()</a></code> asked for permission using a doorhanger, and pointer lock would not be enabled until the user granted permission. From Firefox 50, pointer lock is like the <a href="/en-US/docs/Web/API/Fullscreen_API">fullscreen API</a>: it's granted immediately, but a notification is displayed explaining to the user how to exit ({{bug(1273351)}}).</li>
</ul>
<h3 id="IndexedDB">IndexedDB</h3>
<ul>
<li>Ahora se envía un evento {{event("close")}} al objeto {{domxref("IDBDatabase")}} cuando la base de datos respectiva es cerrada de forma inesperada ({{bug(1151017)}}).</li>
</ul>
<h3 id="Service_Workers">Service Workers</h3>
<ul>
<li>The {{domxref("WindowClient.navigate()")}} method has been implemented. This method lets you open a specified URL into a client window which is being controlled by the service worker ({{bug(1218148)}}).</li>
</ul>
<h3 id="WebGL">WebGL</h3>
<ul>
<li>The {{domxref("EXT_shader_texture_lod")}} WebGL extension has been implemented ({{bug(1111689)}}).</li>
<li>The texImage methods have been updated for <a href="/en-US/docs/Web/API/WebGL2RenderingContext">WebGL 2</a> to implement PBOs (<code>PIXEL_UNPACK_BUFFER</code>) ({{bug(1280499)}}).</li>
</ul>
<h3 id="WebRTC">WebRTC</h3>
<ul>
<li>Adding a track to a {{domxref("MediaStream")}} now generates the {{event("addtrack")}} event as described in the specification. The event is of type {{domxref("MediaStreamTrackEvent")}} and is fired on the stream to which the track was added. You can use either {{domxref("EventTarget.addEventListener", "MediaStream.addEventListener('addtrack', ...)")}} or the {{domxref("MediaStream.onaddtrack")}} property to handle <code>"addtrack"</code> events.</li>
<li>The {{domxref("MediaStreamTrack")}} interface now supports the {{event("ended")}} event and the {{domxref("MediaStreamTrack.onended")}} event handler.</li>
<li>Firefox now supports the {{domxref("MediaStreamTrack.readyState")}} property, which indicates whether the track is live or permanently ended.</li>
<li>The {{domxref("MediaStreamTrack")}} methods {{domxref("MediaStreamTrack.getConstraints", "getConstraints()")}} and {{domxref("MediaStreamTrack.getSettings", "getSettings()")}} have been implemented; these let you get the most recently applied set of customized property constraints and the actual values of all of the track's constrainable properties, respectively. The accompanying data types have been documented as well.</li>
<li>The {{domxref("RTCDataChannel.stream")}} property has been removed. This was replaced with {{domxref("RTCDataChannel.id")}} in <a href="/en-US/docs/Mozilla/Firefox/Releases/24">Firefox 24</a>, but was supported for backward compatibility. Please be sure to update your code to use the <code>id</code> property if you haven't done so yet.</li>
</ul>
<h3 id="Web_Audio_API">Web Audio API</h3>
<ul>
<li>The {{domxref("PannerNode")}} interface now supports the 3D Cartesian space properties for the position ({{domxref("PannerNode.positionX")}}, {{domxref("PannerNode.positionY")}}, and {{domxref("PannerNode.positionZ")}}) and directionality ({{domxref("PannerNode.orientationX")}}, {{domxref("PannerNode.orientationY")}}, {{domxref("PannerNode.orientationZ")}}) of an audio source.</li>
<li>The interface {{domxref("IIRFilterNode")}}, which implements a general {{interwiki("wikipedia", "infinite impulse response")}} (IIR) filter, has been implemented.</li>
<li>Throttling in background tabs of timers created by {{domxref("WindowTimers.setInterval", "Window.setInterval()")}} and {{domxref("WindowTimers.setTimeout", "Window.setTimeout()")}} no longer occurs if a <a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a> {{domxref("AudioContext")}} is actively playing sound. This should help prevent issues with timing-sensitive audio playback (such as music players generating individual notes using timers) in the background ({{bug(1181073)}}).</li>
</ul>
<h3 id="AudioVideo">Audio/Video</h3>
<ul>
<li>The <code>AlignSetting</code> enum (representing possible values for {{domxref("VTTCue.align")}}) incorrectly previously included the value <code>"middle"</code> instead of <code>"center"</code>. This has been corrected ({{bug(1276130)}}).</li>
<li>The non-standard and experimental method {{domxref("HTMLMediaElement.seekToNextFrame()")}} now seeks to the next frame in the media asynchronously, rather than synchronously, and returns a {{jsxref("Promise")}} which resolves once the seek is complete.</li>
<li>The implementation of {{domxref("HTMLTrackElement")}} has been corrected to allow {{HTMLElement("track")}} elements to load resources even if not in a document ({{bug(871747)}}).</li>
</ul>
<h3 id="API_de_batería">API de batería</h3>
<ul>
<li>The {{domxref("navigator.battery")}} property, which has been deprecated since Firefox 43, is now obsolete and has been removed. Use the {{domxref("navigator.getBattery()")}} method instead to get a battery {{jsxref("Promise")}}, which will resolve when the {{domxref("BatteryManager")}} is available for use; the {{domxref("BatteryManager")}} is passed into the fulfillment handler for the promise ({{bug(12593355)}}).</li>
</ul>
<h3 id="Archivos_y_directorios">Archivos y directorios</h3>
<ul>
<li>A subset of the <a href="/en-US/docs/Web/API/File_and_Directory_Entries_API">File and Directory Entries API</a> has been implemented, to improve compatibility with sites that were previously only compatible with Google Chrome ({{bug(1265767)}}).
<ul>
<li>The asynchronous API interfaces have been implemented, with the caveat that only reading of files is supported; for example, the {{domxref("FileSystemFileEntry.createWriter()")}} method is a no-op.</li>
<li>These interfaces have been implemented:
<ul>
<li>{{domxref("FileSystem")}}</li>
<li>{{domxref("FileSystemEntry")}} (properties only; the methods have not been implemented)</li>
<li>{{domxref("FileSystemFileEntry")}} (except for {{domxref("FileSystemFileEntry.createWriter", "createWriter()")}})</li>
<li>{{domxref("FileSystemDirectoryEntry")}} (except for {{domxref("FileSystemDirectoryEntry.removeRecursively", "removeRecursively()")}})</li>
<li>{{domxref("FileSystemDirectoryReader")}}</li>
</ul>
</li>
<li>{{domxref("HTMLInputElement.webkitdirectory")}} as well as the {{HTMLattrxref("webkitdirectory", "input")}} attribute of the {{HTMLElement("input")}} element have been implemented; this lets you configure a file input to accept directories instead of files ({{bug(1258489)}}).</li>
<li>{{domxref("HTMLInputElement.webkitEntries")}} has been implemented; this returns an array of {{domxref("FileSystemEntry")}}-based objects representing the selected items.</li>
<li>{{domxref("File.webkitRelativePath")}} has been implemented; this contains the path of the file relative to the root of the containing {{domxref("FileSystemDirectoryEntry")}} that was among the items in the list returned by {{domxref("HTMLInputElement.webkitGetEntries()")}}.</li>
<li>See <a href="/en-US/docs/Web/API/File_and_Directory_Entries_API/Firefox_support">File and Directory Entries API support in Firefox</a> for details about what we do and do not support in this API.</li>
<li>These APIs are now enabled by default; some were previously available but only behind a preference ({{bug(1288683)}}).</li>
</ul>
</li>
<li>We've implemented {{domxref("DataTransferItem.webkitGetAsEntry()")}} as part of the <a href="/en-US/docs/Web/API/File_and_Directory_Entries_API">File and Directory Entries API</a>; this lets you obtain a {{domxref("FileSystemEntry")}} representing a dropped file ({{bug(1289255)}}). This is enabled by default.</li>
<li>The <code>HTMLInputElement.directory</code> property, part of the <a href="https://wicg.github.io/directory-upload/proposal.html">Directory Upload API</a> proposal, has been renamed to <code>allowdirs</code> ({{bug(1288681)}}). This property is hidden behind a preference.</li>
</ul>
<h2 id="Ver_también">Ver también</h2>
<ul>
<li><a href="https://www.fxsitecompat.com/en-US/versions/50">Compatibilidad de sitios para Firefox 50</a></li>
</ul>
<h2 id="Versiones_anteriores">Versiones anteriores</h2>
<p>{{Firefox_for_developers(49)}}</p>
|