Udviklingen af Chrome 74

Google præsenterede udgivelsen af webbrowseren Chrome 74. Samtidig tilgængelig stabil udgivelse af et frit projekt Chromium, som danner grundlaget for Chrome. Browseren Chrome adskiller sig ved hjælp af Google-logoer, muligheden for at uploade Flash-moduler efter anmodning, et system til at sende meddelelser i tilfælde af nedbrud, moduler til afspilning af beskyttet videoinhold, et system til automatisk installation af opdateringer og en funktion til transmission under søgning RLZ-parametre. Den næste udgivelse af Chrome 75 er planlagt til den 4. juni.

Vigtige Optimeringer i Chrome 74:

  • Ved oprettelse af onUnload-begivenheden, der aktiveres ved lukning af siden, nu forbydes viser pop-op-vinduer (kaldet window.open() blokkeres), hvilket beskytter brugerne mod tvungen åbning af reklamesider efter lukning af tvivlsomme websteder;
  • I JavaScript-motoren er implementeret er der tilføjet en ny tilstand JIT-less (flaget «—jitless»), der gør det muligt at udføre JavaScript uden at bruge JIT (kun fortolkeren anvendes) og uden at allokere eksekveringshukommelse under kørsel af koden. Deaktivering af JIT kan være nyttig for at øge sikkerheden ved håndtering af potentielt farlige webapplikationer og for at muliggøre bygning på platforme, der forbød brugen af JIT (f.eks. i iOS, på visse Smart TV og spilkonsoller). Ved deaktivering af JIT falder JavaScript-ydeevnen med 40% i Speedometer 2.0-testen og med 80% i Web Tooling Benchmark-testen, men i simuleringen af YouTube-arbejde blev der kun observeret et fald i ydeevnen på 6%. Hukommelsesforbruget falder kun lidt, kun 1,7%;
  • I V8 er der også foreslået en stor mængde nye optimeringer. For eksempel er udførelsen af funktionskald, hvor antallet af faktisk overførte parametre ikke svarer til det angivne antal argumenter, blevet accelereret med 60%. Adgang til DOM-egenskaber er blevet accelereret ved hjælp af funktionen get, hvilket har haft en positiv indvirkning på ydeevnen for Angular-rammen. Parsing af JavaScript er blevet hurtigere: optimering af UTF-8-dekoderen har øget parserens ydeevne i streaming-tilstand (tolkning mens der indlæses) med 8%, og udelukkelse af unødvendige deduplikeringsoperationer har givet et yderligere løft på 10,5%;
  • Der er blevet arbejdet på at reducere hukommelsesforbruget af JavaScript-motoren.
    Der er tilføjet kode til at rydde op i bytecode-cachen, som fylder cirka 15 % af den samlede heap-størrelse. Der er tilføjet et trin i affaldsindsamleren til at fjerne sjældent kompilering bytecode fra cachen, til brugte funktioner eller funktioner, der kun kaldes ved initialisering. Beslutningen om oprydning træffes på grundlag af nye tællere, der tager hensyn til den seneste adgangstid til bytecode. Ændringen har resulteret i et fald i hukommelsesforbruget med 5–15 % uden negativ indflydelse på ydeevnen. Derudover er genereringen af åbenlyst ubrugelig kode, som f.eks. den, der følger efter return eller break (hvis der ikke er nogen Jump-overgang), blevet udelukket fra bytecode-kompilatoren.

    Udviklingen af Chrome 74
  • Til WebAssembly er implementeret er der tilføjet support for tråde og atomare operationer (WebAssembly Threads API og WebAssembly Atomics);
  • For separat levering af scripts er der tilføjet støtte til headeren "#!", der angiver fortolken til at køre. For eksempel kan en JavaScript-fil se således ud:

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

  • I CSS er der tilføjet en ny media-spørgsmål "prefers-reduced-motion", som gør det muligt for websitet at identificere tilstanden i operativsystemets indstillinger, der vedrører deaktivering af animerede effekter. Ved hjælp af den foreslåede forespørgsel kan ejeren af websitet kan finde ud af, at brugeren har slukket for animerede effekter, og også deaktivere forskellige animationsmuligheder på websitet, f.eks. fjerne rysteeffekten på knapper, der bruges til at tiltrække opmærksomhed;
  • Ud over den mulighed, der blev tilføjet i Chrome 72 for at bestemme offentlige felter, er der blevet implementeret støtte til at markere felter som private, hvorefter adgangen til deres værdier kun vil være åben inden for klassen. For at markere et felt som privat skal der angives tegnet "#" foran feltets navn. Ligesom med offentlige felter kræver private egenskaber ikke en eksplicit brug af konstruktøren.
  • HTTP-headeren Feature-Policy, som tillader styring af API'ets adfærd og aktivering af bestemte funktioner (for eksempel kan man aktivere synkrone anmodninger i XMLHttpRequest eller deaktivere Geolocation API), er blevet udvidet med JavaScript API til at kontrollere aktiviteten af bestemte funktioner. For udviklere er der blevet foreslået to nye metoder, document.featurePolicy og frame.featurePolicy, der tilbyder tre funktioner:
    allowedFeatures() for obtaining the list of allowed functions for the current domain, allowsFeature() for selectively checking the inclusion of specific capabilities, and getAllowlistForFeature() for outputting the list of domains for which the specified capability is allowed on the current page;
  • Added experimental support for the mode ("chrome://flags#enable-text-fragment-anchor") Scroll-To-Text, som gør det muligt at danne links til enkelte ord eller sætninger uden tydelig angivelse i dokumentet ved hjælp af tagget «a name» eller egenskaben «id». For at overføre linket foreslås en særlig parameter «#targetText=», hvor du kan angive teksten til overgangen. Det er tilladt at angive en maske, der inkluderer sætninger, der angiver begyndelsen og slutningen af fragmentet ved at bruge komma som separator (f.eks. «example.com#targetText=startwords, endwords»);
  • An option has been added to the AudioContext constructor sampleRate, allowing you to set the sample rate for audio operations via the Web Audio API;
  • Understøttelse af klassen HTMLFormElement, providing methods for parsing and processing language, region, and script parameters set by the locale, as well as for reading and writing Unicode extension tags, saving user locale preferences in serialized format;
  • Mekanisme Signed HTTP Exchanges (SXG) extended with tools for underrette content distributors about errors in loading signed content, such as certificate verification issues. Error handling is carried out through the API extension Network Error Logging. Recall that SXG det muligt allows the owner of one site to authorize the placement of certain pages on another site using a digital signature, after which, when accessing these pages on the second site, the browser will show the user the URL of the original site, even though the page is loaded from another host;
  • A method has been added to the TextEncoder class encodeInto(), which allows writing the encoded string directly into a pre-allocated buffer. The encodeInto() method is a high-performance alternative to the encode() method, which requires performing buffer allocation on each call.
  • In the Service worker sikret buffering of the client.postMessage() call until the document is ready. Messages sent via client.postMessage() will be held until the DOMContentLoaded event generation stage, setting onmessage, or calling startMessages();
  • I overensstemmelse med kravene i CSS Transitions-specifikationen er tilføjet transitionrun, transitioncancel, transitionstart og transitionend-begivenheder, der genereres, når CSS-overgangen sættes i kø, annulleres, starter eller afsluttes.
  • Når der angives en forkert MIME-type eller en karakterkodning gennem overrideMimeType() for XMLHttpRequest, falder der nu tilbage til UTF-8 i stedet for Latin-1;
  • Ejendommene «allow-downloads-without-user-activation» er blevet deprecieret og vil blive fjernet i en af de kommende versioner, hvorved det var muligt at organisere automatiske fil-downloads ved behandling af iframes. I fremtiden vil igangsættelse af fil-downloads uden en klar brugerhandling blive forbudt, da det ofte blev misbrugt til at tvinge downloads og indsat dele af skadelig software på brugerens computer. For at starte en download vil der nu være brug for et klik fra brugeren på den samme side. Oprindeligt var det planlagt at fjerne denne egenskab i Chrome 74, men fjernelsen blev udskudt udskudt til Chrome 76.
  • Der er foreslået et valgfrit mørkt tema til brugergrænsefladen på Windows-platformen (det mørke tema blev forberedt til macOS i den tidligere version). Da det mørke tema næsten er identisk med udseendet i inkognito-tilstand, er der tilføjet en særlig indikator i stedet for brugerprofilikonet for at fremhæve privat tilstand;
  • Muligheden for virksomhedsanvendere er blevet tilføjet Chrome Browser Cloud Management til at administrere browserindstillinger for brugere via Google Admin-konsollen;

    Udviklingen af Chrome 74

Udover nye funktioner og fejlrettelser er der i den nye version løst 39 sårbarheder. Mange af sårbarhederne blev opdaget ved hjælp af automatiserede testværktøjer AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke identificeret kritiske problemer, der gør det muligt at omgå alle niveauer af browsersikkerhed og udføre kode på systemet uden for sandbox-miljøet. I forbindelse med programmet for belønninger for opdagelse af sårbarheder har Google i denne version udbetalt 19 præmier til en samlet værdi af 26837 USD (fire præmier på $3000, fire præmier på $2000, en præmie på $1337, fire præmier på $1000, tre præmier på $500). Størrelsen af de 4 belønninger er endnu ikke fastlagt.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster