Bajas y eliminaciones de API en Chrome 57

Joe Medley
Joe Medley

En casi todas las versiones de Chrome, vemos una cantidad significativa de actualizaciones y mejoras en el producto, su rendimiento y también en las capacidades de la plataforma web. En este artículo, se describen las baja y las eliminaciones de Chrome 57, que está en versión beta desde principios de febrero. Esta lista está sujeta a cambios en cualquier momento.

Se quitó el atributo BluetoothDevice.uuids

Se quitará el atributo BluetoothDevice.uuids para que la API de Web Bluetooth esté en línea con la especificación actual. Para recuperar todos los servicios GATT permitidos, llama a device.getPrimaryServices().

Error de Chromium

Quita el elemento de generación de claves

A partir de Chrome 49, el comportamiento predeterminado de <keygen> es mostrar una cadena vacía, a menos que se haya otorgado un permiso a esta página. IE/Edge no son compatibles con <keygen> y no han indicado indicadores públicos para admitir <keygen>. Firefox ya bloquea <keygen> detrás de un gesto del usuario, pero es públicamente favorable a quitarlo. Safari envía <keygen> y no ha expresado opiniones públicas sobre su compatibilidad continua. Con Chrome 57, se quita este elemento.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se quitó la API de administración de búfer de sincronización de recursos con prefijo

Dos métodos y un controlador de eventos, webkitClearResourceTimings(), webkitSetResourceTimingBufferSize() y onwebkitresourcetimingbufferfull, son obsoletos y específicos del proveedor. Las versiones estándar de estas APIs son compatibles desde Chrome 46, y las funciones con prefijo también dejaron de estar disponibles en esa versión. Estas funciones se implementaron originalmente en WebKit, pero Safari no las habilitó. Firefox, IE 10 y versiones posteriores, y Edge solo tienen la versión sin prefijo de la API. Por lo tanto, se quitarán las versiones de WebKit.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se quitó ServiceWorkerMessageEvent y se usa MessageEvent

La especificación HTML extendió MessageEvent para permitir ServiceWorker como un tipo para el atributo source. Se cambiaron client.postMessage() y la creación de eventos de mensajes personalizados para usar MessageEvent en lugar de ServiceWorkerMessageEvent. Se quitó ServiceWorkerMessageEvent.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se quitaron los alias globales de IndexedDB con prefijo webkit

El punto de entrada IndexedDB y los constructores globales se expusieron con prefijos webkit en algún lugar alrededor de Chrome 11. Las versiones sin prefijo se agregaron en Chrome 24 y las versiones con prefijo dejaron de estar disponibles en Chrome 38. Las siguientes interfaces se ven afectadas:

  • webkitIndexedDB (punto de entrada principal)
  • webkitIDBKeyRange (constructor global no invocable, pero tiene métodos estáticos útiles)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (constructores globales no invocables)

Intento de eliminación | Chromestatus Tracker | Error de Chromium

WebAudio: Se quitaron AudioContext y OfflineAudioContext con prefijo

Chrome es compatible con WebAudio desde mediados de 2011, incluido AudioContext. OfflineAudioContext se agregó al año siguiente. Dado el tiempo que se admiten las interfaces estándar y el objetivo a largo plazo de Google de quitar las funciones con prefijos, las versiones con prefijos de estas interfaces dejaron de estar disponibles a fines de 2014 y ahora se quitarán.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Baja y quita webkitCancelRequestAnimationFrame

El método webkitCancelRequestAnimationFrame() es una API obsoleta y específica del proveedor, y el cancelAnimationFrame() estándar se admite desde hace mucho tiempo en Chromium. Por lo tanto, se quitará la versión de WebKit.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se da de baja la coincidencia sin distinción entre mayúsculas y minúsculas para el atributo usemap

Anteriormente, el atributo usemap se definía como sin distinción de mayúsculas y minúsculas. Lamentablemente, implementar esto era lo suficientemente complicado como para que ningún navegador lo implementara correctamente. La investigación sugirió que no es necesario un algoritmo tan complicado, y ni siquiera la coincidencia ASCII sin distinción de mayúsculas y minúsculas es necesaria.

Por lo tanto, se actualizó la especificación para que se aplique la coincidencia de mayúsculas y minúsculas. El comportamiento anterior dejó de estar disponible en Chrome 57 y se espera que se quite en Chrome 58.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se da de baja FileReaderSync en los service workers

La especificación del trabajador de servicio siempre tuvo la nota (no normativa) que indica que "no se debe iniciar ningún tipo de solicitud síncrona dentro de un trabajador de servicio" para evitar bloquearlo. Si bloqueas el trabajador de servicio, se bloquearán todas las solicitudes de red de las páginas controladas. Lamentablemente, la API de FileReaderSync ya está disponible desde hace mucho tiempo en los service workers.

Actualmente, solo Firefox y Chrome exponen FileReaderSync en los trabajadores del servicio. Firefox está de acuerdo en la discusión de especificaciones que esto se debe corregir. Se prevé que la eliminación se realice en Chrome 59.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se da de baja el llamador heredado para HTMLEmbedElement y HTMLObjectElement.

Que una interfaz tenga un llamador heredado significa que se puede llamar a una instancia como una función. Actualmente, HTMLEmbedElement y HTMLObjectElement admiten esta función. En Chrome 57, esta función dejó de estar disponible. Después de la eliminación, que se espera en Chrome 58, las llamadas arrojarán una excepción.

Este cambio permite adaptar Chrome a los cambios recientes en las especificaciones. El comportamiento heredado no es compatible con Edge ni Safari, y se quitará de Firefox.

Intento de eliminación | Chromestatus Tracker | Error de Chromium

Se da de baja RTCRtcpMuxPolicy de "negotiate".

Chrome usa rtcpMuxPolicy para especificar su política preferida con respecto al uso del multiplexado RTP/RTCP. En Chrome 57, cambiamos el valor predeterminado de rtcpMuxPolicy a "require" y dejamos obsoleto "negotiate" por los siguientes motivos:

  • El RTCP no multiplexado usa recursos de red adicionales.
  • Si quitas “negociar”, la plataforma de la API será más simple, ya que un “RtpSender” o “RtpReceiver” solo tendrá un transporte.

En Chrome 57, "negotiate" dejó de estar disponible. Creemos que este es un cambio sin interrupciones, ya que el usuario recibirá un mensaje de baja y aún se puede crear RTCPeerConnection. La eliminación se realizó en Chrome 63.

Intención de dar de baja | Error de Chromium

Se da de baja la compatibilidad con las credenciales incorporadas en las solicitudes de subrecursos

La codificación de credenciales en solicitudes de subrecursos es problemática desde una perspectiva de seguridad, ya que permitió que los hackers usaran la fuerza bruta para obtener credenciales en el pasado. Estos peligros se agravan en el caso de las solicitudes de subrecursos con credenciales que llegan a rangos de IP internos (tus routers, etcétera). Dado el bajo uso, cerrar este (pequeño) problema de seguridad parece bastante razonable.

Los desarrolladores pueden incorporar recursos que no requieren autenticación básica o de resumen, y depender, en su lugar, de cookies y otros mecanismos de administración de sesiones.

Intento de eliminación | Chromestatus Tracker | Error de Chromium