API-beëindigingen en verwijderingen in Chrome 57

Joe Medley
Joe Medley

In bijna elke versie van Chrome zien we een aanzienlijk aantal updates en verbeteringen aan het product, de prestaties ervan en ook de mogelijkheden van het webplatform. In dit artikel worden de beëindigingen en verwijderingen beschreven van Chrome 57, dat begin februari in bèta is. Deze lijst kan op elk moment worden gewijzigd.

Verwijder het BluetoothDevice.uuids-kenmerk

Het kenmerk BluetoothDevice.uuids wordt verwijderd om de Web Bluetooth API in overeenstemming te brengen met de huidige specificatie. U kunt alle toegestane GATT-services ophalen door device.getPrimaryServices() aan te roepen.

Chroombug

Verwijder het sleutelgeneratie-element

Sinds Chrome 49 is het standaardgedrag van <keygen> het retourneren van de lege tekenreeks, tenzij er toestemming is verleend voor deze pagina. IE/Edge ondersteunt <keygen> niet en heeft geen publieke signalen aangegeven om <keygen> te ondersteunen. Firefox sluit <keygen> al achter een gebruikersgebaar aan, maar steunt publiekelijk het verwijderen ervan. Safari verzendt <keygen> en heeft geen publieke opinie geuit over de voortdurende steun ervan. Bij Chrome 57 wordt dit element verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder de vooraf ingestelde API voor het beheer van de resourcetimingbuffer

Twee methoden en een gebeurtenishandler, webkitClearResourceTimings() , webkitSetResourceTimingBufferSize() en onwebkitresourcetimingbufferfull zijn verouderd en leverancierspecifiek. De standaardversies van deze API's worden sinds Chrome 46 ondersteund en de vooraf ingestelde functies zijn in die versie ook verouderd. Deze functies zijn oorspronkelijk geïmplementeerd in WebKit, maar Safari heeft ze niet ingeschakeld. Firefox, IE 10+ en Edge hebben alleen een niet-voorgefixeerde versie van de API. Daarom worden de webkitversies verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder ServiceWorkerMessageEvent ten gunste van het gebruik van MessageEvent

De HTML-specificatie breidde MessageEvent uit om ServiceWorker toe te staan ​​als type voor het source . client.postMessage() en het maken van aangepaste berichtgebeurtenissen zijn gewijzigd om MessageEvent te gebruiken in plaats van ServiceWorkerMessageEvent . ServiceWorkerMessageEvent is verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder de globale aliassen IndexedDB met het voorvoegsel webkit

Het IndexedDB toegangspunt en de globale constructors werden ergens rond Chrome 11 weergegeven met webkit voorvoegsels. De versies zonder voorvoegsel zijn toegevoegd in Chrome 24 en de versies met voorvoegsel zijn verouderd in Chrome 38. De volgende interfaces worden beïnvloed:

  • webkitIndexedDB (hoofdingangspunt)
  • webkitIDBKeyRange (niet-oproepbare globale constructor, maar heeft nuttige statische methoden)
  • webkitIDBCursor
  • webkitIDBDatabase
  • webkitIDBFactory
  • webkitIDBIndex
  • webkitIDBObjectStore
  • webkitIDBRequest
  • webkitIDBTransaction (niet-oproepbare globale constructors)

Intentie om te verwijderen | Chromestatustracker | Chroombug

WebAudio: Verwijder het voorvoegsel AudioContext en OfflineAudioContext

Chrome ondersteunt WebAudio sinds medio 2011, inclusief AudioContext . OfflineAudioContext werd het jaar daarop toegevoegd. Gezien hoe lang de standaardinterfaces worden ondersteund en het langetermijndoel van Google om vooraf ingestelde functies te verwijderen, zijn de vooraf ingestelde versies van deze interfaces sinds eind 2014 verouderd en worden ze nu verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig en verwijder webkitCancelRequestAnimationFrame

De webkitCancelRequestAnimationFrame() -methode is een verouderde, leverancierspecifieke API en de standaard cancelAnimationFrame() wordt al lang ondersteund in Chromium. Daarom wordt de webkitversie verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig hoofdletterongevoelige overeenkomsten voor het usemap-kenmerk

Het usemap attribuut werd voorheen gedefinieerd als caseless. Helaas was de implementatie hiervan zo ingewikkeld dat geen enkele browser het correct implementeerde. Onderzoek suggereerde dat een dergelijk ingewikkeld algoritme niet nodig is, en zelfs hoofdletterongevoelige ASCII-matching is niet nodig.

Daarom is de specificatie bijgewerkt zodat hoofdlettergevoelige matching wordt toegepast. Het oude gedrag is verouderd in Chrome 57 en verwijdering wordt verwacht in Chrome 58.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig FileReaderSync in servicewerknemers

De Service Worker-specificatie heeft altijd de (niet-normatieve) opmerking gehad dat "elk type synchrone aanvraag niet mag worden geïnitieerd binnen een servicewerker", om te voorkomen dat de servicewerker wordt geblokkeerd. Als u de servicemedewerker blokkeert, worden alle netwerkverzoeken van gecontroleerde pagina's geblokkeerd. Helaas is de FileReaderSync API al lang beschikbaar voor servicemedewerkers.

Momenteel stellen alleen Firefox en Chrome FileReaderSync beschikbaar in servicewerknemers. Er is overeenstemming vanuit Firefox in de spec-discussie dat dit opgelost moet worden. Verwijdering wordt verwacht in Chrome 59.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig de verouderde aanroeper voor HTMLEmbedElement en HTMLObjectElement

Dat een interface een oudere aanroeper heeft, betekent dat een instantie als een functie kan worden aangeroepen. Momenteel ondersteunen HTMLEmbedElement en HTMLObjectElement deze functionaliteit. In Chrome 57 is deze mogelijkheid verouderd. Na verwijdering, wat wordt verwacht in Chrome 58, zal bellen een uitzondering opleveren.

Deze wijziging brengt Chrome in lijn met recente specificatiewijzigingen. Het verouderde gedrag wordt niet ondersteund in Edge of Safari en wordt uit Firefox verwijderd .

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig RTCRtcpMuxBeleid van "onderhandelen"

De rtcpMuxPolicy wordt door Chrome gebruikt om het voorkeursbeleid met betrekking tot het gebruik van RTP/RTCP-multiplexing te specificeren. In Chrome 57 hebben we de standaard rtcpMuxPolicy gewijzigd in 'vereisen' en hebben we 'onderhandelen' beëindigd om de volgende redenen:

  • Niet-muxed RTCP gebruikt extra netwerkbronnen.
  • Het verwijderen van "negotiate" zal het API-oppervlak eenvoudiger maken, aangezien een "RtpSender"/"RtpReceiver" dan slechts één transport zal hebben.

In Chrome 57 is 'onderhandelen' verouderd. Wij zijn van mening dat dit een blijvende wijziging is, aangezien de gebruiker een beëindigingsbericht ontvangt en RTCPeerConnection nog steeds kan worden gemaakt. Verwijdering vindt plaats in Chrome 63.

Intentie om af te schaffen | Chroombug

Beëindig de ondersteuning voor ingebedde referenties in subresourceaanvragen

Het hard coderen van inloggegevens in verzoeken om subresources is vanuit veiligheidsperspectief problematisch, omdat hackers in het verleden inloggegevens bruut konden forceren. Deze gevaren worden nog groter bij verzoeken om gelegitimeerde subresources die interne IP-bereiken bereiken (uw routers, enz.). Gezien het lage gebruik lijkt het dichten van dit (kleine) beveiligingslek redelijk.

Ontwikkelaars kunnen bronnen insluiten waarvoor geen basis-/digest-authenticatie vereist is, maar vertrouwen in plaats daarvan op cookies en andere mechanismen voor sessiebeheer.

Intentie om te verwijderen | Chromestatustracker | Chroombug