Chrome-versjon 74

Google presentert nettleserutgivelse Chrome 74... Samtidig tilgjengelig stabil utgivelse av et gratis prosjekt Chromium, som fungerer som grunnlaget for Chrome. Chrome-nettleser annerledes bruken av Google-logoer, muligheten til å laste ned en Flash-modul på forespørsel, tilstedeværelsen av et system for å sende varsler i tilfelle krasj, moduler for å spille av beskyttet videoinnhold, et system for automatisk installasjon av oppdateringer og overføring under søk RLZ-parametere. Den neste utgivelsen av Chrome 75 er planlagt til 4. juni.

Den viktigste endringer в Chrome 74:

  • Når onUnload-hendelsen inntreffer, som kalles når siden lukkes, nå Det er forbudt vise popup-vinduer (window.open()-kallet er blokkert), som vil beskytte brukere mot å bli tvunget til å åpne reklamesider etter å ha stengt tvilsomme nettsteder;
  • I JavaScript-motoren implementert et nytt regime har dukket opp JIT-fri ("—jitless" flagg), som gjør det mulig å kjøre JavaScript uten å bruke JIT (kun tolken brukes) og uten å allokere kjørbart minne under kjøring av kode. Deaktivering av JIT kan være nyttig for å forbedre sikkerheten når du arbeider med potensielt farlige nettapplikasjoner, samt for å sikre bygger på plattformer som forbyr bruk av JIT (for eksempel iOS, noen smarte TV-er og spillkonsoller. Når JIT er deaktivert, JavaScript-kjøring ytelsen reduseres med 40 % i Speedometer 2.0-testen og 80 % i Web Tooling Benchmark-testen, men ved simulering av arbeid med YouTube var det kun en nedgang på 6 % i ytelse, mens minneforbruket sank litt, med bare 1.7 %;
  • V8 tilbyr også en stor del av nye optimaliseringer. For eksempel har utføringen av funksjonskall hvor antallet faktisk beståtte parametere ikke samsvarer med antallet argumenter som er spesifisert ved definering av funksjonen blitt akselerert med 60 %. Tilgang til DOM-egenskaper ved hjelp av get-funksjonen har blitt akselerert, noe som har en positiv innvirkning på ytelsen til Angular-rammeverket. JavaScript-parsing har blitt akselerert: optimalisering av UTF-8-dekoderen gjorde det mulig å øke parser-ytelsen i strømmemodus (parsing mens den laster) med 8 %, og eliminering av unødvendige dedupliseringsoperasjoner ga en økning på ytterligere 10.5 %;
  • Det er jobbet med å redusere minneforbruket til JavaScript-motoren.
    Lagt til kode for å tømme bytekodebufferen, som tar opp omtrent 15 % av den totale haugstørrelsen. Et trinn er lagt til søppelsamleren for å kaste ut sjelden kompilert bytekode fra hurtigbufferen for funksjoner som brukes eller funksjoner som bare kalles ved initialisering. Beslutningen om å rydde opp er tatt basert på nye tellere som tar hensyn til forrige gang bytekoden ble aksessert. Denne endringen reduserte minneforbruket med 5–15 % uten å påvirke ytelsen negativt. I tillegg utelukker bytekode-kompilatoren generering av åpenbart ubrukt kode, for eksempel som følger retur eller break (hvis det ikke er noen Jump-overgang til den);

    Chrome-versjon 74

  • For WebAssembly implementert støtte for tråder og atomoperasjoner (API WebAssembly Threads og WebAssembly Atomics);
  • For separat levering av skript er støtte for "#!"-headeren lagt til, som bestemmer hvilken tolk som skal kjøres. For eksempel, i likhet med andre skriptspråk, kan en JavaScript-fil se omtrent slik ut:

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

  • En ny medieforespørsel er lagt til CSS "foretrekker-redusert-bevegelse", slik at nettstedet kan bestemme tilstanden til innstillingene i operativsystemet knyttet til deaktivering av animerte effekter. Ved å bruke den foreslåtte forespørselen, nettstedets eier kan finne ut at brukeren har deaktivert animerte effekter og deaktiver også ulike animasjonsfunksjoner på nettstedet, for eksempel fjern risteeffekten til knapper som brukes for å tiltrekke oppmerksomhet;
  • I tillegg til muligheten til å definere offentlige felt introdusert i Chrome 72 støtte implementert Merking av felt som private, hvoretter tilgang til verdiene deres vil være åpen kun innenfor klassen. For å merke et felt som privat, legg til et "#"-tegn før feltnavnet. Som med offentlige felt, krever ikke private eiendommer eksplisitt bruk av en konstruktør.
  • Feature-Policy HTTP-headeren, som lar deg kontrollere oppførselen til API og aktivere visse funksjoner (du kan for eksempel aktivere den synkrone driftsmodusen til XMLHttpRequest eller deaktivere Geolocation API), er lagt til JavaScript API å kontrollere aktiviteten til visse muligheter. For utviklere er det to nye metoder document.featurePolicy og frame.featurePolicy, som tilbyr tre funksjoner:
    allowFeatures() for å få en liste over funksjoner som er tillatt for det gjeldende domenet, allowFeature() for å selektivt sjekke om spesifikke funksjoner er aktivert, og getAllowlistForFeature() for å returnere en liste over domener som en spesifisert funksjon er tillatt for på gjeldende side;

  • Lagt til eksperimentell ("chrome://flags#enable-text-fragment-anchor") støtte for modusen Rull-til-tekst, som lar deg lage lenker til individuelle ord eller uttrykk, uten å spesifisere etiketter i dokumentet eksplisitt ved å bruke «et navn»-taggen eller «id»-egenskapen. For å sende en lenke tilbys en spesiell parameter "#targetText=", der du kan spesifisere teksten for overgangen. Det er tillatt å spesifisere en maske som inkluderer fraser som indikerer begynnelsen og slutten av fragmentet ved å bruke komma som skilletegn (for eksempel "example.com#targetText=start%20words, end%20words");
  • Et alternativ er lagt til AudioContext-konstruktøren sampleRate, som lar deg angi samplingsfrekvensen for lydoperasjoner via Web Audio API;
  • Lagt til klassestøtte Intl.Locale, som gir metoder for å analysere og behandle språk-, region- og stilparametere satt av lokaliteten, samt for lesing og skriving av Unicode-utvidelseskoder, og lagrer brukerens lokalitetsinnstillinger i et serialisert format;
  • Механизм Signerte HTTP-utvekslinger (SXG) utvidet med verktøy for informere innholdsdistributører om feil ved nedlasting av signert innhold, for eksempel problemer med sertifikatverifisering. Feilhåndtering gjøres gjennom API-utvidelser Nettverksfeillogging. Husk at SXG den lar eieren av ett nettsted, ved hjelp av en digital signatur, autoriserer plassering av visse sider på et annet nettsted, hvoretter, hvis disse sidene åpnes på et annet nettsted, vil nettleseren vise brukeren URL-en til det opprinnelige nettstedet, til tross for at at siden ble lastet inn fra en annen vert;
  • En metode er lagt til TextEncoder-klassen encodeInto(), som lar deg skrive en kodet streng direkte inn i en forhåndstildelt buffer. EncodeInto()-metoden er et høyytelsesalternativ til encode()-metoden, som krever at en buffertildelingsoperasjon utføres hver gang den åpnes.
  • I Servicearbeider sikret buffering av client.postMessage()-kallet til dokumentet er klart. Meldinger sendt via client.postMessage() vil bli holdt til DOMContentLoaded-hendelsen er hevet, onmessage er satt, eller startMessages() kalles;
  • Som kreves av CSS Transitions-spesifikasjonen la til transitionrun, transitioncancel, transitionstart og transitionend-hendelser som genereres når en CSS-overgang settes i kø, avbrytes, starter eller fullføres.
  • Når du spesifiserer en feil tegnkoding via overrideMimeType() eller MIME-type for en XMLHttpRequest, faller den nå tilbake til UTF-8 i stedet for Latin-1;
  • Egenskapen «allow-downloads-without-user-activation», som det var mulig å automatisk laste ned filer ved behandling av iframes, har blitt avviklet og vil bli fjernet i en fremtidig utgivelse. I fremtiden vil det være forbudt å sette i gang filnedlastinger uten eksplisitt brukerhandling, siden det har blitt aktivt brukt til misbruk, tvinge nedlastinger og sette inn deler av skadelig programvare på brukerens datamaskin. Et brukerklikk på samme side vil være nødvendig for å starte nedlastingen. Eiendommen var opprinnelig planlagt fjernet i Chrome 74, men fjerningen ble det utsatt opp til Chrome 76.
  • Et valgfritt mørkt tema for grensesnittdesignet tilbys for Windows-plattformen (i forrige utgivelse ble et mørkt tema forberedt for macOS). Siden det mørke designet er nesten identisk med designet i inkognitomodus, er det lagt til en spesiell indikator i stedet for brukerprofilikonet for å markere den private driftsmodusen;
  • En mulighet er lagt til for bedriftsbrukere Chrome-nettleser Cloud Management for å administrere brukernettleserinnstillinger gjennom Google administrasjonskonsoll;

    Chrome-versjon 74

I tillegg til innovasjoner og feilrettinger, eliminerer den nye versjonen 39 sårbarheter. Mange av sårbarhetene ble identifisert som et resultat av automatisert testing med verktøy AddressSanitisizer, Memory Sanitizer, Kontroller flytintegritet, LibFuzzer и AFL. Ingen kritiske problemer er identifisert som ville tillate en å omgå alle nivåer av nettleserbeskyttelse og kjøre kode på systemet utenfor sandkassemiljøet. Som en del av programmet for å betale kontantbelønninger for å oppdage sårbarheter for den nåværende utgivelsen, utbetalte Google 19 priser på $26837 3000 (fire $2000-priser, fire $1337-priser, en $1000-pris, fire $500-priser, tre $4-priser). Størrelsen på de XNUMX belønningene er ennå ikke bestemt.

Kilde: opennet.ru

Legg til en kommentar