Beëindigingen en verwijderingen in Chrome 58

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 58, dat vanaf 16 maart in bèta is. Deze lijst kan op elk moment worden gewijzigd.

Muis op Android stopt met het activeren van TouchEvents

Tot Chrome 57 volgden Android-muisgebeurtenissen op laag niveau in Chrome voornamelijk een gebeurtenispad dat was ontworpen voor aanraakinteracties. Als u bijvoorbeeld met de muis sleept terwijl een muisknop wordt ingedrukt, worden er MotionEvents gegenereerd, geleverd via View.onTouchEvent .

Maar omdat aanraakgebeurtenissen het zweven niet kunnen ondersteunen, volgden muisbewegingen een apart pad. Het ontwerp had veel bijwerkingen, waaronder muisinteracties waarbij TouchEvents werd geactiveerd, alle muisknoppen verschenen als linkermuisknoppen en MouseEvents werden onderdrukt door TouchEvents .

Vanaf Chrome 58 kan een muis op Android M of hoger:

  • Activeer TouchEvents niet langer.
  • Activeer een consistente reeks MouseEvents met de juiste knoppen en andere eigenschappen.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder 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 is nu verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder door inhoud geïnitieerde topframenavigaties naar gegevens-URL's

Omdat ze onbekend zijn bij niet-technische browsergebruikers, zien we steeds vaker dat deze data: worden gebruikt bij spoofing- en phishing-aanvallen. Om dit te voorkomen, blokkeren we het laden van data: URL's in het bovenste frame. Dit geldt voor <a> tags, window.open , window.location en soortgelijke mechanismen. Het data: -schema werkt nog steeds voor bronnen die hieronder door een pagina worden geladen.

Deze functie wordt verwijderd in Chrome 60.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder verouderde namen voor bewegingspadeigenschappen

Bewegingspad Met CSS-eigenschappen kunnen auteurs elk grafisch object langs een door de auteur opgegeven pad animeren. In overeenstemming met de specificaties zijn verschillende eigenschappen geïmplementeerd in Chrome 45 . De namen van deze eigenschappen zijn medio 2016 in de specificatie gewijzigd. Chrome heeft de nieuwe namen geïmplementeerd in Chrome 55 en Chrome 56 . Er zijn ook waarschuwingen voor de beëindiging van de console geïmplementeerd.

In Chrome 58 worden de oude eigenschapsnamen verwijderd. De betrokken eigendommen en hun nieuwe namen worden hieronder weergegeven.

Eigendom verwijderd Huidige naam
bewegingspad offset-pad
beweging-offset offset-afstand
beweging-rotatie offset-roteren
beweging gecompenseerd

Intentie om te verwijderen

Verwijder EME uit niet-beveiligde contexten

Sommige toepassingen van Encrypted Media Extensions (EME) brengen implementaties van digitaal rechtenbeheer aan het licht die niet open source zijn, toegang tot persistente unieke identificatiegegevens omvatten en/of zonder sandbox of met geprivilegieerde toegang worden uitgevoerd. De beveiligingsrisico's zijn groter voor sites die via niet-beveiligde HTTP worden blootgesteld, omdat ze door iedereen op het kanaal kunnen worden aangevallen. Bovendien kan, wanneer toestemming van de gebruiker vereist is, de acceptatie van een niet-beveiligde HTTP-site door een dergelijke aanvaller worden misbruikt.

Ondersteuning voor niet-beveiligde contexten is verwijderd uit de EME versie 1-specificatie en wordt niet ondersteund in de voorgestelde aanbeveling , noch verwacht in de daaropvolgende finale. zal niet voorkomen in het komende voorgestelde advies of het daaropvolgende definitieve advies. De API geeft sinds Chrome 44 (mei 2015) een beëindigingsbericht weer op niet-beveiligde bronnen. In Chrome 58 is het nu verwijderd. Deze wijziging maakt deel uit van onze bredere inspanningen om krachtige functies van een onbeveiligde oorsprong te verwijderen .

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder 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. Vanaf Chrome 58 genereert bellen een uitzondering.

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

Verwijder pre-standaard ChaCha20-Poly1305-cijfers

In 2013 implementeerde Chrome 31 nieuwe TLS-coderingssuites gebaseerd op de ChaCha20- en Poly1305-algoritmen van prof. Dan Bernstein. Deze werden later, met kleine aanpassingen, bij de IETF gestandaardiseerd als RFC 7539 en RFC 7905 . Begin 2016 hebben we de gestandaardiseerde variant met Chrome 49 geleverd. We verwijderen nu de pre-standaard varianten.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder de ondersteuning voor commonName-overeenkomsten in certificaten

RFC 2818 beschrijft twee methoden om een ​​domeinnaam te matchen met een certificaat: het gebruik van de beschikbare namen binnen de extensie subjectAlternativeName , of, bij gebrek aan een SAN-extensie, terugvallen op de commonName . De terugval op de commonName is verouderd in RFC 2818 (gepubliceerd in 2000), maar de ondersteuning blijft bestaan ​​in een aantal TLS-clients, vaak ten onrechte.

Het gebruik van de velden subjectAlternativeName laat het ondubbelzinnig of een certificaat een binding aan een IP-adres of een domeinnaam uitdrukt, en wordt volledig gedefinieerd in termen van de interactie met naambeperkingen. De commonName is echter dubbelzinnig en daarom is de ondersteuning ervan een bron van beveiligingsbugs in Chrome, de bibliotheken die het gebruikt en binnen het TLS-ecosysteem in het algemeen.

Het compatibiliteitsrisico voor het verwijderen van commonName is laag. RFC 2818 heeft dit al bijna twintig jaar achterhaald, en de basisvereisten (waar alle publiekelijk vertrouwde certificeringsinstanties zich aan moeten houden) vereisen sinds 2012 de aanwezigheid van een subjectAltName . Firefox vereist de subjectAltName al voor alle nieuw uitgegeven publiekelijk vertrouwde certificaten sinds Firefox 48. .

Intentie om te verwijderen | Chromestatustracker | Chroombug

De interface-elementen regions , addRegion() en removeRegion() , zijn verwijderd uit de WebVTT-specificatie en worden verwijderd in Chrome 58 om te voldoen aan de nieuwste specificatie . We verwachten weinig impact van deze verwijdering, omdat de functie nooit standaard is ingeschakeld (wat betekent dat deze zich achter een vlag bevond). Degenen die een alternatief nodig hebben, kunnen de eigenschap VTTCue.region gebruiken die wordt toegevoegd in Chrome 58.

Chromestatustracker | Chroombug

WebAudio: verwijder de AudioSourceNode-interface

De AudioSourceNode interface maakt geen deel uit van de Web Audio-specificatie , is niet bouwbaar en heeft geen attributen, dus het heeft in principe geen functionaliteit die toegankelijk is voor ontwikkelaars. Daarom wordt het verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Verwijder het globale attribuut webkitdropzone

Het globale attribuut dropzone werd geïntroduceerd door de HTML5 drag-and-drop-specificatie als een declaratieve methode voor het specificeren van de bereidheid van een HTML-element om het doelwit te zijn van een drag-and-drop-bewerking, de inhoudstypen die op het element kunnen worden neergezet, en de drag-and-drop-bewerking. -en-drop-bewerking (kopiëren/verplaatsen/link).

Het kenmerk kreeg geen grip onder browserleveranciers. Blink en WebKit implementeren alleen een vooraf ingestelde vorm van het attribuut, webkitdropzone . Omdat het dropzone kenmerk begin maart 2017 uit de specificatie is verwijderd, wordt de vooraf ingestelde versie uit Chrome verwijderd.

Intentie om te verwijderen | Chromestatustracker | Chroombug

Schaf onveilig gebruik van meldingen af

Meldingen zijn een krachtige functie omdat ze websites in staat stellen een systeem-UI aan te roepen om privé-informatie zelf te verzenden of een signaal te geven dat privé-informatie is gewijzigd. Aanvallers kunnen informatie opsnuiven of stelen die via een melding via een onveilige verbinding wordt verzonden. Webpush vereist een veilige oorsprong, dus deze wijziging zal niet-pushmeldingen op één lijn brengen met pushmeldingen. Deze wijziging maakt deel uit van onze bredere inspanningen om krachtige functies van een onbeveiligde oorsprong te verwijderen .

Intentie om te verwijderen | Chromestatustracker | Chroombug

Beëindig het gebruik van meldingen van onveilige iframes

Toestemmingsverzoeken van iframes kunnen gebruikers in verwarring brengen, omdat het moeilijk is om onderscheid te maken tussen de oorsprong van de pagina die de pagina bevat en de oorsprong van het iframe dat het verzoek doet. Wanneer de reikwijdte van het verzoek onduidelijk is, is het voor gebruikers moeilijk om te beoordelen of ze toestemming moeten verlenen of weigeren.

Als u meldingen in iframes niet toestaat, worden de vereisten voor toestemming voor meldingen ook op één lijn gebracht met die voor pushmeldingen, waardoor de wrijving voor ontwikkelaars wordt verminderd.

Ontwikkelaars die deze functionaliteit nodig hebben, kunnen een nieuw venster openen om toestemming voor meldingen aan te vragen.

Verwijdering vindt plaats in Chrome 62.

Intentie om te verwijderen | Chromestatustracker | Chroombug

IndexedDB.webkitGetDatabaseNames() verwijderen

We hebben deze functie toegevoegd toen geïndexeerde database relatief nieuw was in Chrome en voorvoegsels een rage waren. De API retourneert asynchroon een lijst met bestaande databasenamen in een oorsprong, wat verstandig genoeg leek.

Helaas is het ontwerp gebrekkig, in die zin dat de resultaten verouderd kunnen zijn zodra ze worden geretourneerd, zodat het eigenlijk alleen kan worden gebruikt voor loggen, en niet voor serieuze applicatielogica. Het github-probleem volgt/linkt naar eerdere discussies over alternatieven, die een andere aanpak zouden vereisen. Hoewel er af en toe interesse was bij ontwikkelaars, is het probleem, gezien het gebrek aan cross-browser vooruitgang, door bibliotheekauteurs opgelost.

Ontwikkelaars die deze functionaliteit nodig hebben, moeten hun eigen oplossing ontwikkelen. Bibliotheken zoals Dexie.js gebruiken bijvoorbeeld een globale tabel die zelf een andere database is om de namen van databases bij te houden.

Deze functie is verwijderd in Chrome 60.

Intentie om af te schaffen | Chromestatustracker | Chroombug