Chrome 80-versie

Google gepresenteerd release van de webbrowser Chrome 80. Tegelijkertijd is beschikbaar stabiele release van een gratis project Chromium, dat dient als basis van Chrome. Chrome-browser verschillend het gebruik van Google-logo's, de aanwezigheid van een systeem voor het verzenden van meldingen bij een crash, de mogelijkheid om op verzoek een Flash-module te downloaden, modules voor het afspelen van beschermde video-inhoud (DRM), een systeem voor het automatisch installeren van updates en verzending tijdens het zoeken RLZ-parameters. De volgende release van Chrome 81 staat gepland voor 17 maart.

De belangrijkste veranderingen в Chrome 80:

  • Voor een klein percentage van de gebruikers wordt een functie voor het groeperen van tabbladen aangeboden, waarmee u verschillende tabbladen met vergelijkbare doeleinden kunt combineren in visueel gescheiden groepen. Elke groep kan een eigen kleur en naam krijgen. Gebruikers die niet zijn opgenomen in de eerste activeringsgolf kunnen groeperingsondersteuning inschakelen via de optie “chrome://flags/#tab-groups”.

    Chrome 80-versie

  • Ondersteuning voor deze functie toegevoegd Scroll-naar-tekst, waarmee u koppelingen naar afzonderlijke woorden of woordgroepen kunt maken zonder expliciet labels in het document op te geven met behulp van de tag 'a name' of de eigenschap 'id'. Het is de bedoeling dat de syntaxis van dergelijke links wordt goedgekeurd als webstandaard, wat zich nog in de fase bevindt voorlopige versie. Het overgangsmasker (in wezen een scrollende zoekopdracht) wordt gescheiden van het reguliere anker door het attribuut “:~:”. Wanneer u bijvoorbeeld de link “https://opennet.ru/52312/#:~:text=Chrome” opent, gaat de pagina naar de positie met de eerste vermelding van het woord “Chrome” en wordt dit woord gemarkeerd .
  • Toegepast Een strengere beperking op de overdracht van cookies tussen sites, voor niet-HTTPS-verzoeken, waarbij de verwerking van cookies van derden wordt verboden die zijn ingesteld bij toegang tot andere sites dan het domein van de huidige pagina. Dergelijke cookies worden gebruikt om gebruikersbewegingen tussen sites te volgen in de code van advertentienetwerken, sociale netwerkwidgets en webanalysesystemen. Bedenk dat om de overdracht van cookies te controleren, het SameSite-attribuut wordt gebruikt dat is gespecificeerd in de Set-Cookie-header, dat nu standaard is ingesteld op de waarde “SameSite=Lax”, waardoor het verzenden van cookies voor cross-site subverzoeken wordt beperkt , zoals een afbeeldingsverzoek of het laden van inhoud via een iframe vanaf een andere site. Sites kunnen het standaardgedrag van SameSite overschrijven door de Cookie-instelling expliciet in te stellen op SameSite=None. De waarde SameSite=None voor Cookie kan echter alleen worden ingesteld in de beveiligde modus (geldig voor verbindingen via HTTPS). De verandering zal in fasen beginnen toepassen 17 februari, aanvankelijk voor een klein percentage van de gebruikers, en daarna geleidelijk de dekking uitbreiden.
  • Toegevoegd bescherming tegen vervelende meldingen met betrekking tot de bevestiging van inloggegevens. Omdat activiteiten zoals het spammen van pushmeldingsverzoeken de gebruikerservaring onderbreken en de aandacht afleiden van bevestigingsdialogen, kan in Chrome 80 nu in plaats van een afzonderlijk dialoogvenster een informatieve tooltip in de adresbalk worden weergegeven waarin wordt gewaarschuwd dat het toestemmingsverzoek is geblokkeerd. het stort in tot een indicator met de afbeelding van een doorgestreepte bel. Door op de indicator te klikken, kunt u op elk gewenst moment de gevraagde toestemming activeren of weigeren. Automatisch wordt de nieuwe modus selectief ingeschakeld voor gebruikers die voorheen dergelijke verzoeken meestal blokkeerden, evenals voor sites die een groot percentage afgewezen verzoeken registreren. Om de nieuwe modus voor alle verzoeken in te schakelen, is er een speciale optie toegevoegd aan de instellingen (chrome://flags/#quiet-notification-prompts).

    Chrome 80-versie

  • Verboden het weergeven van pop-upvensters (aanroepen van de methode window.open()) en het verzenden van synchrone XMLHttpRequests in gebeurtenishandlers voor het sluiten of verbergen van pagina's (unload, beforeunload, pagehide en zichtbaarheidsverandering);
  • Voorgestelde initiaal bescherming tegen het laden van gemengde multimedia-inhoud (wanneer bronnen worden geladen op een HTTPS-pagina via het http://-protocol). Op pagina's die via HTTPS worden geopend, worden 'http://'-links nu automatisch vervangen door 'https://' in blokken die zijn gekoppeld aan het afspelen van audio- en videobestanden. Als een audio- of videobron niet beschikbaar is via https, wordt het downloaden ervan geblokkeerd (u kunt de blokkering handmatig markeren via het menu dat toegankelijk is via het hangslotsymbool in de adresbalk).

    Afbeeldingen blijven ongewijzigd laden (autocorrectie wordt toegepast in Chrome 81), maar om ze te vervangen door https of afbeeldingen te blokkeren, krijgen site-ontwikkelaars de CSP-eigenschappen upgrade-insecure-requests en block-all-mixed-content. Voor scripts en iframes is het blokkeren van gemengde inhoud al eerder geïmplementeerd.

  • Een geleidelijke afsluiten FTP-ondersteuning. Standaard is FTP-ondersteuning nog steeds beschikbaar, maar dat zal ook zo blijven gehouden een experiment waarbij FTP-ondersteuning voor een bepaald percentage gebruikers wordt uitgeschakeld (om terug te keren moet je de browser starten met de optie “-enable-ftp”). Laten we niet vergeten dat in eerdere releases de weergave in het browservenster van de inhoud van bronnen gedownload via het “ftp://”-protocol al was uitgeschakeld (de weergave van HTML-documenten en README-bestanden was bijvoorbeeld gestopt), het gebruik van FTP was verboden bij het downloaden van subbronnen uit documenten, en proxy-ondersteuning voor FTP is stopgezet. Het was echter nog steeds mogelijk om via directe links bestanden te downloaden en de inhoud van mappen weer te geven.
  • Toegevoegd
    de mogelijkheid om vector-SVG-afbeeldingen te gebruiken als sitepictogram (favicon).

  • De mogelijkheid om selectief bepaalde soorten gegevens uit te schakelen die worden overgedragen tijdens synchronisatie tussen browsers is aan de instellingen toegevoegd.
  • Er is een regel toegevoegd voor centraal beheerde zakelijke gebruikers BlokExterne Extensies, waarmee u de installatie van externe add-ons op het apparaat kunt voorkomen.
  • Geïmplementeerd kans een eenmalige controle van de gehele keten van eigenschappen of aanroepen van JavaScript. Bij het openen van bijvoorbeeld “db.user.name.length” was het voorheen nodig om de definitie van alle componenten stap voor stap te controleren, bijvoorbeeld via “if (db && db.user && db.user.name)”. Gebruik nu de bewerking “?.” u kunt zonder voorafgaande controles toegang krijgen tot de waarde “db?.user?.name?.length” en dergelijke toegang zal niet tot een fout leiden. In geval van problemen (als een element als nul of ongedefinieerd wordt verwerkt) zal de uitvoer “ongedefinieerd” zijn.
  • JavaScript introduceert een nieuwe logische concatenatie-operator "??", die de rechter operand retourneert als de linker operand NULL of ongedefinieerd is, en omgekeerd. Bijvoorbeeld: "const foo = bar ?? 'default string'" als bar nul is, zal anders de waarde van bar retourneren, ook als bar 0 en ' ' is, in tegenstelling tot de operator "||".
  • In de Origin Trials-modus (experimentele functies waarvoor aparte activering) voorgestelde Content Indexing API. Origin Trial impliceert de mogelijkheid om met de gespecificeerde API te werken vanuit applicaties gedownload van localhost of 127.0.0.1, of na registratie en ontvangst van een speciaal token dat een beperkte tijd geldig is voor een specifieke site. API Inhoud indexeren, biedt metagegevens over inhoud die eerder in de cache werd opgeslagen door webapplicaties die in Progressive Web Apps (PWS)-modus draaiden. De applicatie kan verschillende gegevens aan de browserzijde opslaan, inclusief afbeeldingen, video's en artikelen, en wanneer de netwerkverbinding verloren gaat, deze gebruiken met behulp van de Cache Storage en IndexedDB API's. Content Indexing API maakt het mogelijk om dergelijke bronnen toe te voegen, te vinden en te verwijderen. In de browser wordt deze API al gebruikt om een ​​lijst met pagina's en multimediagegevens weer te geven die beschikbaar zijn voor offline weergave.

    Chrome 80-versie

  • Gestabiliseerd en nu gedistribueerd buiten de Origin Trials API Neem contact op met Picker, waardoor de gebruiker vermeldingen uit het adresboek kan selecteren en bepaalde details daarover naar de site kan verzenden. De aanvraag specificeert een lijst met eigenschappen die moeten worden opgehaald. Deze eigenschappen worden expliciet weergegeven aan de gebruiker, die beslist of hij deze eigenschappen wel of niet doorgeeft. De API kan bijvoorbeeld worden gebruikt in een webmailclient om ontvangers voor een verzonden brief te selecteren, in een webapplicatie met de VoIP-functie om een ​​oproep naar een specifiek nummer te initiëren of in een sociaal netwerk om reeds geregistreerde vrienden te zoeken. . Tegelijkertijd worden, als onderdeel van de Origin Trials, enkele nieuwe Contact Picker-eigenschappen aangeboden: naast de eerder beschikbare volledige naam, e-mailadres en telefoonnummer is de mogelijkheid toegevoegd om een ​​e-mailadres en afbeelding over te dragen.
  • In Webwerkers voorgesteld een nieuwe manier om ECMAScript-modules te laden, waardoor u het gebruik van de functie importScripts() kunt vermijden, die de werker blokkeert tijdens het verwerken van het geïmporteerde script en het in de globale context uitvoert. De nieuwe methode omvat het maken van speciale modules voor Web Workers die standaard JavaScript-importmechanismen ondersteunen en dynamisch kunnen worden geladen zonder de uitvoering van de werker te blokkeren. Om modules te laden, biedt de Worker-constructor een nieuw resourcetype - 'module':

    const werknemer = nieuwe werknemer('werker.js', {
    type: 'module'
    });

  • Geïmplementeerd De ingebouwde mogelijkheid van JavaScript om gecomprimeerde streams te verwerken zonder het gebruik van externe bibliotheken. Er zijn API's toegevoegd voor compressie en decompressie CompressionStream en DecompressionStream. Compressie met behulp van gzip- en deflate-algoritmen wordt ondersteund.

    const compressieReadableStream
    = inputReadableStream.pipeThrough(nieuwe CompressionStream('gzip'));

  • CSS-eigenschap toegevoegd "regeleinde: overal", waarmee pauzes op het niveau van elk typografisch teken mogelijk zijn, inclusief pauzes in de buurt van leestekens die vooraf zijn gedefinieerd door spaties ( ) en midden in woorden. Ook CSS-eigenschap toegevoegd "overloop-wrap: overal» stelt u in staat ononderbroken reeksen karakters overal af te breken als er geen geschikte positie voor de afbreking in de regel kan worden gevonden.
  • Voor mediacontext die in gecodeerde vorm wordt verwerkt, is ondersteuning voor de methode geïmplementeerd MediaCapabilities.decodingInfo(), dat informatie biedt over de mogelijkheden van de browser voor het decoderen van beschermde inhoud (deze methode kan bijvoorbeeld worden gebruikt om hoogwaardige of energiezuinige decoderingsscenario's te selecteren op basis van de beschikbare bandbreedte en schermgrootte).
  • Methode toegevoegd HTMLVideoElement.getVideoPlaybackQuality(), waarmee u informatie kunt krijgen over de afspeelprestaties van video's om de bitsnelheid, resolutie en andere videoparameters aan te passen.
  • In API Betalingsverwerker, wat de integratie met bestaande betalingssystemen vereenvoudigt, heeft de mogelijkheid toegevoegd delegatie verwerking van adres- en contactgegevens aan een externe verwerker van het betalingssysteem (de betalingssysteemapplicatie beschikt mogelijk over nauwkeurigere informatie dan de browser).
  • Ondersteuning voor HTTP-headers toegevoegd Sec-Ophalen-Best, waarmee u aanvullende metagegevens kunt verzenden over het type inhoud dat aan het verzoek is gekoppeld (voor een verzoek via de img-tag is het type bijvoorbeeld “image”, voor lettertypen – “font”, voor scripts – “script”, voor stijlen - "stijl", enz.). Op basis van het opgegeven type kan de server maatregelen nemen om zich te beschermen tegen bepaalde soorten aanvallen (het is bijvoorbeeld onwaarschijnlijk dat een link naar een handler voor een geldoverdracht wordt gespecificeerd via een img-tag, dus dergelijke verzoeken hoeven niet te worden opgegeven). verwerkt worden).
  • In JavaScript-engine V8 optimalisatie doorgevoerd pointers op de heap opslaan. In plaats van de volledige 64-bits waarde op te slaan, worden alleen de unieke lagere bits van de pointer opgeslagen. Deze optimalisatie maakte het mogelijk om het heapgeheugenverbruik met 40% te verminderen, ten koste van een prestatieverlies van 3-8%.
    Chrome 80-versie

    Chrome 80-versie

  • Veranderingen in tools voor webontwikkelaars:
    • De webconsole heeft nu de mogelijkheid om let- en klasse-expressies opnieuw te definiëren.

      Chrome 80-versie

    • Verbeterde foutopsporingstools voor WebAssembly. Ondersteuning toegevoegd DWARF voor stapsgewijze foutopsporing, het specificeren van breekpunten en het analyseren van stacktraces in de broncode waarin een WebAssembly-applicatie is geschreven.

      Chrome 80-versie

    • Verbeterd paneel voor het analyseren van netwerkactiviteit. De mogelijkheid toegevoegd om de keten van aanroepen van scripts te bekijken die zijn gekoppeld aan het initiëren van verzoeken.

      Chrome 80-versie

      Nieuwe pad- en URL-kolommen toegevoegd die het absolute pad en de volledige URL voor elke netwerkbron tonen. Zorgt ervoor dat de geselecteerde query wordt gemarkeerd in het overzichtsdiagram.

      Chrome 80-versie

    • Op het tabblad Netwerkvoorwaarden is een optie toegevoegd om de parameter User-Agent te wijzigen.

      Chrome 80-versie

    • Er is een nieuwe interface voorgesteld voor het configureren van het auditpanel.
      Chrome 80-versie

    • Op het tabblad Dekking bood de keuze om dekkingsgegevens te verzamelen voor elke functie of voor elk codeblok (meer gedetailleerde statistieken, maar vereist meer bronnen).

      Chrome 80-versie

  • AppCache manifestactie (technologie voor het organiseren van de werking van een webapplicatie in offline modus) beperkt de huidige map van de site (als het manifest is gedownload van www.example.com/foo/bar/, dan werkt de mogelijkheid om de URL te overschrijven alleen binnen /foo/bar/). Het is de bedoeling dat AppCache-ondersteuning volledig wordt verwijderd in Chrome 82. De genoemde reden is de wens om zich te ontdoen van een van de vectoren voor cross-site scripting-aanvallen. Het wordt aanbevolen om API te gebruiken in plaats van AppCache cache.
  • Stopgezet ondersteuning voor de oudere WebVR 1.1 API, die kan worden vervangen door de API WebXR-apparaat, waarmee u toegang krijgt tot componenten voor het creëren van virtuele en augmented reality en het verenigen van werk met verschillende klassen apparaten, van stationaire virtual reality-helmen tot oplossingen op basis van mobiele apparaten.
  • Protocolhandlers die zijn verbonden via de methoden registerProtocolHandler() en unregisterProtocolHandler() kunnen nu alleen werken in een beveiligde context (bij toegang via HTTPS).

Naast innovaties en bugfixes elimineert de nieuwe versie 56 kwetsbaarheden. Veel van de kwetsbaarheden zijn geïdentificeerd als resultaat van geautomatiseerd testen met tools AdresSanitizer, Geheugenontsmettingsmiddel, Integriteit van controlestroom, LibFuzzer и AFL. Er zijn geen kritieke problemen geïdentificeerd die het mogelijk zouden maken om alle niveaus van browserbeveiliging te omzeilen en code op het systeem uit te voeren buiten de sandbox-omgeving. Als onderdeel van het programma om contante beloningen te betalen voor het ontdekken van kwetsbaarheden voor de huidige release, betaalde Google 37 beloningen ter waarde van $48 (één beloning van $10000, drie beloningen van $5000, drie beloningen van $3000, vier beloningen van $2000, drie beloningen van $1000 en zes beloningen van $500). De omvang van 17 beloningen is nog niet bepaald.

Bron: opennet.ru

Voeg een reactie