Chrome udgivelse 74

Google fremlagde udgivelse af webbrowser Chrome 74... Samtidigt ledig stabil udgivelse af et gratis projekt Chromium, som fungerer som grundlaget for Chrome. Chrome browser anderledes brugen af ​​Google-logoer, muligheden for at downloade et Flash-modul efter anmodning, tilstedeværelsen af ​​et system til at sende meddelelser i tilfælde af et nedbrud, moduler til afspilning af beskyttet videoindhold, et system til automatisk installation af opdateringer og transmission under søgning RLZ parametre. Den næste udgivelse af Chrome 75 er planlagt til den 4. juni.

The main ændringer в Chrome 74:

  • Når onUnload-hændelsen opstår, som kaldes, når siden lukkes, nu Det er forbudt vise pop op-vinduer (window.open()-kaldet er blokeret), som vil beskytte brugere mod at blive tvunget til at åbne reklamesider efter lukning af tvivlsomme websteder;
  • I JavaScript-motoren implementeret et nyt regime er dukket op JIT-fri (“—jitless” flag), som gør det muligt at eksekvere JavaScript uden at bruge JIT (kun tolken bruges) og uden at allokere eksekverbar hukommelse under afvikling af kode. Deaktivering af JIT kan være nyttigt for at forbedre sikkerheden, når der arbejdes med potentielt farlige webapplikationer, samt for at sikre, at der bygger på platforme, der forbyder brugen af ​​JIT (f.eks. iOS, nogle smart-tv'er og spillekonsoller. Når JIT er deaktiveret, udføres JavaScript. ydeevnen falder med 40 % i Speedometer 2.0-testen og 80 % i Web Tooling Benchmark-testen, men ved simulering af arbejde med YouTube var der kun et fald på 6 % i ydeevnen, mens hukommelsesforbruget faldt en smule, med kun 1.7 %;
  • V8 tilbyder også en stor portion nye optimeringer. For eksempel er udførelsen af ​​funktionskald, hvor antallet af faktisk beståede parametre ikke svarer til det antal argumenter, der er angivet ved definition af funktionen, blevet accelereret med 60 %. Adgang til DOM-egenskaber ved hjælp af get-funktionen er blevet fremskyndet, hvilket har en positiv indvirkning på ydeevnen af ​​Angular-rammen. JavaScript-parsing er blevet accelereret: optimering af UTF-8-dekoderen gjorde det muligt at øge parserens ydeevne i streaming-tilstand (parsing, mens den indlæses) med 8 %, og eliminering af unødvendige deduplikeringsoperationer gav en stigning på yderligere 10.5 %;
  • Der er arbejdet på at reducere JavaScript-motorens hukommelsesforbrug.
    Tilføjet kode for at rydde bytecode-cachen, som fylder cirka 15 % af den samlede heapstørrelse. Der er tilføjet et trin til garbage collectoren for at fjerne sjældent kompileret bytekode fra cachen for funktioner, der bruges eller funktioner, der kun kaldes ved initialisering. Beslutningen om at rydde op er taget baseret på nye tællere, der tager højde for sidste gang, bytekoden blev tilgået. Denne ændring reducerede hukommelsesforbruget med 5-15 % uden at påvirke ydeevnen negativt. Derudover udelukker bytecode-kompileren generering af åbenlyst ubrugt kode, som f.eks. følger retur eller break (hvis der ikke er nogen Jump-overgang til den);

    Chrome udgivelse 74

  • Til WebAssembly implementeret understøttelse af tråde og atomoperationer (API WebAssembly Threads og WebAssembly Atomics);
  • For separat levering af scripts er der tilføjet understøttelse af "#!"-headeren, som bestemmer, hvilken tolk der skal køre. For eksempel, i lighed med andre scriptsprog, kan en JavaScript-fil se sådan ud:

    #!/usr/bin/env node
    console.log(42);

  • En ny medieforespørgsel er blevet tilføjet til CSS "foretrækker-reduceret-bevægelse", hvilket giver webstedet mulighed for at bestemme tilstanden af ​​indstillinger i operativsystemet relateret til deaktivering af animerede effekter. Ved hjælp af den foreslåede anmodning, webstedsejeren kan find ud af, at brugeren har deaktiveret animerede effekter, og deaktiver også forskellige animationsfunktioner på webstedet, fjern for eksempel rysteeffekten af ​​knapper, der bruges til at tiltrække opmærksomhed;
  • Ud over evnen til at definere offentlige felter introduceret i Chrome 72 støtte implementeret Markering af felter som private, hvorefter adgang til deres værdier kun vil være åben inden for klassen. For at markere et felt som privat skal du tilføje et "#"-tegn før feltnavnet. Som med offentlige marker kræver private ejendomme ikke eksplicit brug af en konstruktør.
  • Feature-Policy HTTP-headeren, som giver dig mulighed for at kontrollere adfærden af ​​API'en og aktivere visse funktioner (du kan f.eks. aktivere den synkrone driftstilstand for XMLHttpRequest eller deaktivere Geolocation API'en), er blevet tilføjet JavaScript-API at kontrollere aktiviteten af ​​visse muligheder. For udviklere er der to nye metoder document.featurePolicy og frame.featurePolicy, der tilbyder tre funktioner:
    allowFeatures() for at få en liste over tilladte funktioner for det aktuelle domæne, allowFeature() for selektivt at kontrollere, om specifikke funktioner er aktiveret, og getAllowlistForFeature() for at returnere en liste over domæner, for hvilke en specificeret funktion er tilladt på den aktuelle side;

  • Tilføjet eksperimentel ("chrome://flags#enable-text-fragment-anchor") understøttelse af tilstanden Rul-til-tekst, som giver dig mulighed for at danne links til individuelle ord eller sætninger uden eksplicit at angive etiketter i dokumentet ved hjælp af "et navn"-tag eller "id"-egenskaben. For at sende et link tilbydes en speciel parameter "#targetText=", hvor du kan angive teksten for overgangen. Det er tilladt at specificere en maske, der inkluderer sætninger, der angiver begyndelsen og slutningen af ​​fragmentet ved hjælp af et komma som deres separator (f.eks. "eksempel.dk#targetText=start%20ord, slut%20ord");
  • En mulighed er blevet tilføjet til AudioContext-konstruktøren sampleRate, som giver dig mulighed for at indstille samplinghastigheden for lydoperationer via Web Audio API;
  • Tilføjet klasseunderstøttelse Intl.Locale, som giver metoder til at analysere og behandle sprog-, region- og stilparametre, der er indstillet af lokaliteten, samt til at læse og skrive Unicode-udvidelsestags, der gemmer brugerens lokalitetsindstillinger i et serialiseret format;
  • mekanisme Signerede HTTP-udvekslinger (SXG) udvidet med værktøjer til informere indholdsdistributører om fejl ved download af signeret indhold, såsom problemer med certifikatbekræftelse. Fejlhåndtering foregår via API-udvidelser Netværksfejllogning. Husk at SXG Det gør det muligt ejeren af ​​et websted, ved hjælp af en digital signatur, autoriserer placeringen af ​​visse sider på et andet websted, hvorefter, hvis disse sider tilgås på et andet websted, vil browseren vise brugeren URL'en til det originale websted, på trods af det faktum at siden blev indlæst fra en anden vært;
  • En metode er blevet tilføjet til TextEncoder-klassen encodeInto(), som giver dig mulighed for at skrive en kodet streng direkte ind i en præ-allokeret buffer. EncodeInto()-metoden er et højtydende alternativ til encode()-metoden, som kræver, at der udføres en bufferallokeringsoperation, hver gang den tilgås.
  • I Servicemedarbejder sikret buffering af client.postMessage()-kaldet, indtil dokumentet er klar. Meddelelser sendt via client.postMessage() vil blive tilbageholdt, indtil DOMContentLoaded hændelsen er rejst, onmessage er indstillet, eller startMessages() kaldes;
  • Som krævet af CSS Transitions-specifikationen tilføjet transitionrun, transitioncancel, transitionstart og transitionend hændelser, der genereres, når en CSS-overgang sættes i kø, annulleres, starter eller afsluttes.
  • Når du angiver en forkert tegnkodning via overrideMimeType() eller MIME-type for en XMLHttpRequest, falder den nu tilbage til UTF-8 i stedet for Latin-1;
  • Egenskaben "allow-downloads-without-user-activation", hvorigennem det var muligt at downloade filer automatisk ved behandling af iframes, er blevet forældet og vil blive fjernet i en fremtidig udgivelse. I fremtiden vil det være forbudt at starte fildownloads uden eksplicit brugerhandling, da det er blevet aktivt brugt til misbrug, tvinge downloads og indsættelse af dele af malware på brugerens computer. Et brugerklik på den samme side vil være påkrævet for at starte download. Ejendommen var oprindeligt planlagt til at blive fjernet i Chrome 74, men det blev det udsat op til Chrome 76.
  • Et valgfrit mørkt tema til interfacedesignet tilbydes til Windows-platformen (i den tidligere udgivelse blev et mørkt tema forberedt til macOS). Da det mørke design er næsten identisk med designet i inkognitotilstand, er der tilføjet en speciel indikator i stedet for brugerprofilikonet for at fremhæve den private driftstilstand;
  • Der er tilføjet en mulighed for virksomhedsbrugere Chrome Browser Cloud Management at administrere brugerbrowserindstillinger via Google Administrationskonsol;

    Chrome udgivelse 74

Ud over innovationer og fejlrettelser eliminerer den nye version 39 sårbarheder. Mange af sårbarhederne blev identificeret som et resultat af automatiseret test med værktøjer AddressSanitisizer, Memory Sanitizer, Kontroller flowintegritet, LibFuzzer и AFL. Der er ikke identificeret nogen kritiske problemer, der ville tillade en at omgå alle niveauer af browserbeskyttelse og eksekvere kode på systemet uden for sandkassemiljøet. Som en del af programmet til at betale kontante belønninger for at opdage sårbarheder for den aktuelle udgivelse, udbetalte Google 19 priser til et beløb på $26837 (fire $3000-priser, fire $2000-priser, en $1337-pris, fire $1000-priser, tre $500-priser). Størrelsen af ​​de 4 belønninger er endnu ikke fastlagt.

Kilde: opennet.ru

Tilføj en kommentar