Bajas y eliminaciones de API en Chrome 57

Joe Medley
Jo Medley

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

Quita el atributo BluetoothDevice.uuids

Se quitará el atributo BluetoothDevice.uuids para que la API de Web Bluetooth cumpla con la especificación actual. Si llamas a device.getPrimaryServices(), puedes recuperar todos los servicios GATT permitidos.

Error de Chromium

Quitar el elemento de generación de claves

A partir de Chrome 49, el comportamiento predeterminado de <keygen> ha sido mostrar la cadena vacía, a menos que se haya otorgado permiso para esta página. IE/Edge no son compatibles con <keygen> y no indicaron indicadores públicos para admitir <keygen>. Firefox ya controla <keygen> detrás de un gesto del usuario, pero confirma que lo quite de forma pública. Safari envía <keygen> y no expresó opiniones públicas con respecto a su compatibilidad continua. Con Chrome 57, este elemento se elimina.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

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

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

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se quitó ServiceWorkerMessageEvent para usar MessageEvent.

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

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Quita los alias globales de IndexedDB con prefijos de webkit-prefix

El punto de entrada de 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 que no se puede llamar, pero tiene métodos estáticos útiles)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (constructores globales que no se pueden llamar)

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

WebAudio: Quita AudioContext con prefijos y offlineAudioContext

Desde mediados de 2011, Chrome admite WebAudio, incluido AudioContext. Se agregó OfflineAudioContext al año siguiente. Debido a la antigüedad de las interfaces estándar y al objetivo a largo plazo de Google de quitar funciones con prefijos, las versiones con prefijos de estas interfaces dejaron de estar disponibles desde finales de 2014 y se están quitando.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Dejó de estar disponible y se quitó webkitCancelRequestAnimationFrame.

El método webkitCancelRequestAnimationFrame() es una API obsoleta específica de proveedores, y el cancelAnimationFrame() estándar es compatible desde hace tiempo con Chromium. Por lo tanto, se quitará la versión de webkit.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se dio de baja la coincidencia que no distingue entre mayúsculas y minúsculas para el atributo usemap

Anteriormente, el atributo usemap se definió como sin mayúsculas y minúsculas. Lamentablemente, la implementación de esto fue tan complicado que ningún navegador la implementó correctamente. Las investigaciones sugieren que un algoritmo tan complicado no es necesario y que la coincidencia de ASCII que no distingue mayúsculas de minúsculas tampoco es necesaria.

En consecuencia, se actualizó la especificación para que se apliquen las coincidencias que distingan mayúsculas de minúsculas. El comportamiento anterior dejó de estar disponible en Chrome 57 y se espera que se quite en Chrome 58.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

FileReaderSync dejó de estar disponible en service workers

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

Actualmente, solo Firefox y Chrome exponen FileReaderSync en los service workers. Hay un acuerdo de Firefox en el discusión de la especificación en que esto debería solucionarse. Se prevé que se quitará en Chrome 59.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

Se dio 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 funcionalidad. En Chrome 57, esta función dejó de estar disponible. Después de la eliminación, como se espera en Chrome 58, las llamadas arrojarán una excepción.

Este cambio hace que Chrome esté alineado con los cambios de especificaciones recientes. El comportamiento heredado no es compatible con Edge ni Safari, y se quitará de Firefox.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium

RTCRtcpMuxPolicy dejó de estar disponible para "negociar"

Chrome usa rtcpMuxPolicy para especificar su política preferida sobre el uso de multiplexación de RTP/RTCP. En Chrome 57, cambiamos el rtcpMuxPolicy predeterminado a "requerir" y dejamos de estar disponible "negociar" por los siguientes motivos:

  • El RTCP no combinado usa recursos de red adicionales.
  • Quitar "negociar" hará que la plataforma de la API sea más simple, ya que un "RtpSender"/"RtpReceiver" tendrá un solo transporte.

En Chrome 57, la opción "negociar" dejó de estar disponible. Creemos que este es un cambio no rotundo, ya que el usuario recibirá un mensaje de baja y aún se puede crear RTCPeerConnection. La eliminación se realiza en Chrome 63.

Intención de dar de baja | Error de Chromium

Dejó de estar disponible la compatibilidad con credenciales incorporadas en las solicitudes de subrecursos

El uso de credenciales hard-coded en las solicitudes de subrecursos es problemático desde una perspectiva de seguridad, ya que antes permitía que los hackers forzaran sus credenciales de manera bruta. Estos peligros se agravan en el caso de las solicitudes de subrecursos con credenciales que llegan a los rangos de IP internos (tus routers, etcétera). Dado el poco uso, cerrar este hueco de seguridad (pequeño) parece bastante razonable.

Los desarrolladores pueden incorporar recursos que no requieren autenticación básica o de resumen, ya que dependen de las cookies y otros mecanismos de administración de sesiones.

Intent de quitar | Seguimiento de Chromestatus | Error de Chromium