Google har præsenteret udgivelsen af webbrowseren Chrome 89. Samtidig er den stabile version af det frie projekt Chromium, som danner grundlag for Chrome, tilgængelig. Chrome-browseren er kendetegnet ved brugen af Googles logoer, en meddelelssystem ved nedbrud, moduler til afspilning af beskyttet videoinhold (DRM), et automatisk opdateringssystem og overførsel af RLZ-parametre under søgning. Den næste udgivelse af Chrome 90 er planlagt til den 13. april.
Hovedændringer i Chrome 89:
- Den version af Chrome til Android kan nu kun køre på enheder, der er certificeret i Play Protect. I virtuelle maskiner og Chrome-emulatorer til Android kan kun bruges, hvis enheden er en gyldig enhed, eller emulatoren er udviklet af Google. Man kan kontrollere, om enheden er certificeret eller ej, i Google Play-appen under indstillinger (i bunden af indstillingssiden vises status 'Play Protect certification'). For ikke-certificerede enheder, for eksempel ved brug af tilpassede firmware, bliver brugerne bedt om at registrere deres enheder for at kunne køre Chrome.
- For en lille procentdel af brugerne er åbning af hjemmesider som standard via HTTPS aktiveret, når værtens navn indtastes i adresselinjen. For eksempel, når man indtaster værten example.com, vil websitet som standard blive åbnet som https://example.com, og hvis der opstår problemer ved åbningen, vil der blive rullet tilbage til http://example.com. For at styre brugen af 'https://' som standard er der tilbudt en indstilling 'chrome://flags#omnibox-default-typed-navigations-to-https'.
- Funktionalitet til profiler er aktiveret, hvilket giver forskellige brugere mulighed for at dele deres konti, mens de arbejder via én browser. For eksempel kan profiler bruges til at organisere adgang for familie medlemmer eller adskille sessioner til arbejde og personlige interesser. En bruger kan oprette en ny Chrome-profil og indstille den til at aktivere ved tilslutning til en bestemt Google-konto, hvilket gør det muligt for forskellige brugere at dele bogmærker, indstillinger og besøgs historie. Når der forsøges at logge ind på en konto knyttet til en anden profil, vil brugeren blive bedt om at skifte til denne profil. Hvis brugeren har knyttet sig til flere profiler, vil der være mulighed for at vælge den ønskede profil. Det er muligt at knytte forskellige farveskemaer til hver profil for visuel adskillelse af brugerne.

- Visning af indholdser billeder ved at holde musen over faner i den øverste bjælke er aktiveret. Tidligere var forhåndsvisning af indholdet af fanerne som standard deaktiveret og krævede ændring af indstillingen "chrome://flags/#tab-hover-cards".

- For nogle brugere er funktionen 'Læseliste' (Reading List, "chrome://flags#read-later") aktiveret, hvilket gør det muligt at tilføje til listen ved at klikke på stjernen i adressefeltet, hvor der udover knappen 'Tilføj bogmærke' også vises en anden knap 'Tilføj til læseliste'. I højre hjørne af bogmærke bjælken vises en 'Læseliste'-menu, der indeholder alle tidligere tilføjede sider. Når en side åbnes fra listen, markeres den som læst. Sider i listen kan også mærkes som læst eller ulæst manuelt eller fjernes fra listen.

- Brugere, der er logget ind på en Google-konto uden aktivering af Chrome Sync, får adgang til betalingsmetoder og adgangskoder gemt i Google-kontoen. Denne mulighed er aktiveret for nogle brugere og vil gradvist blive tilgængelig for de øvrige.
- Understøttelse af hurtig fanesøgning er aktiveret, hvilket tidligere krævede aktivering via flaget "chrome://flags/#enable-tab-search". Brugeren kan se en liste over alle åbne faner og hurtigt filtrere den ønskede fane uanset om den befinder sig i det aktuelle eller et andet vindue.

- For all users, the processing of single word inputs in the address bar as attempts to access internal sites has been discontinued. Previously, when entering a single word in the address bar, the browser initially tried to determine if there was a host with that name via DNS, assuming the user was trying to access a subdomain, and then redirected the request to the search engine. This way, the owner of the DNS server specified in the user's settings received information about single-word search queries, which was considered a privacy violation. For businesses using internet hosts without a subdomain (for example, "https://helpdesk/"), an option has been provided to return to the old behavior.
- The ability to pin a version of an extension or application has been provided. For example, to use only verified extensions in an enterprise, the administrator can configure Chrome to use their own URL for downloading updates instead of the URL specified in the extension's manifest using the new ExtensionSettings policy.
- On x86 systems, processor support for SSE3 instruction sets is now mandatory for browser operation, which has been supported by Intel processors since 2003 and by AMD since 2005.
- Additional APIs have been added, aimed at providing functionality that can replace third-party cookies used for tracking user movements across sites in advertising networks, social media widgets, and web analytics systems. The following APIs have been proposed for testing:
- Trust Token for segmenting users without using cross-site identifiers.
- First party sets — allows related domains to declare themselves as primary so that the browser can consider this relationship in cross-site requests.
- Schemeful Same-Site for extending the concept of same-site across different URL schemes, i.e., http://website.example and https://website.example will be treated as one site in cross-site requests.
- Floc for determining user interest categories without individual identification and without tying to the history of visits to specific sites.
- Conversion Measurement for evaluating user activity after transitioning to the advertisement.
- User-Agent Client Hints til at erstatte User-Agent og selektivt give oplysninger om specifikke parametre for browseren og systemet (version, platform osv.).
- API'et Serial er blevet tilføjet, hvilket giver websteder mulighed for at læse og skrive data via en seriel port. Årsagen til dette API er, at det muliggør oprettelse af webapplikationer til direkte kontrol af enheder som mikrokontrollere og 3D-printere. For at få adgang til den perifere enhed kræves der eksplicit bekræftelse af brugerens tilladelser.
- API'et WebHID er blevet tilføjet for lavniveau adgange til HID-enheder (Human Interface Device, tastaturer, mus, gamepads, touchpads), hvilket muliggør implementering af logik til arbejdet med HID-enheder i JavaScript, så man kan arbejde med sjældne HID-enheder uden specifikke drivere i systemet. Dette nye API sigter primært mod at give støtte til gamepads.
- API'et Web NFC er blevet tilføjet, hvilket giver webapplikationer mulighed for at læse og skrive NFC-tags. Eksempler på anvendelse af det nye API i webapplikationer inkluderer levering af information om museumsgenstande, udførelse af inventar og indhentning af oplysninger fra konference badges mv. Sendelse og scanning af tags udføres ved hjælp af NDEFWriter og NDEFReader objekterne.
- API Web Share (objektet navigator.share) er blevet udvidet til desktop-brugere og er nu tilgængeligt for brugere af desktop-browserne (indtil videre kun for Windows og Chrome OS). API Web Share tilbyder værktøjer til at dele information på sociale medier og gør det muligt at generere en ensartet knap til publicering på de sociale medier, som brugeren benytter, eller organisere dataoverførsel til andre applikationer.
- I Android-versionerne og WebView-komponenten er der tilføjet støtte til dekodning af billedformatet AVIF (AV1 Image Format), som anvender teknologi til intra-frame kompression fra videoenkodningen AV1 (støtten til AVIF i desktop-versionerne blev tilføjet allerede i Chrome 85). Containeren til distribution af komprimerede data i AVIF er fuldstændig analog med HEIF. AVIF understøtter både billeder i HDR (High Dynamic Range) og gammakurver med bred farveskala samt i standard dynamisk område (SDR).
- En ny Reporting API er tilføjet til at indhente oplysninger om overtrædelse af reglerne for sikker brug på siden med privilegerede operationer, angivet via COOP (Cross-Origin-Opener-Policy) headeren, der også gør det muligt at sætte COOP i en fejlsøgningstilstand, der fungerer uden at blokere overtrædelser af reglerne.
- Funktionen performance.measureUserAgentSpecificMemory() er tilføjet, som bestemmer mængden af det hukommelse, der er brugt til at behandle siden.
- For at overholde webstandardernes krav behandles alle URL'er med «data:» nu som potentielt pålidelige, dvs. de er en del af en sikker kontekst.
- I Streams API er støtte til Byte Streams tilføjet, som er specielt optimeret til effektiv transmission af vilkårlige datasæt og minimerer antallet af kopieringsoperationer med data. Uddata fra strømmen kan skrives til primitiv typer som strenge eller ArrayBuffer.
- I SVG-elementer er fuld syntaks for «filter» egenskaben implementeret, hvilket gør det muligt at anvende filtreringsfunktioner som blur(), sepia() og grayscale() samtidig på både SVG og ikke-SVG elementer.
- I CSS er pseudo-elementet «::target-text» implementeret, som kan bruges til at fremhæve det afsnit, som er blevet navigeret til ved hjælp af tekst (scroll-to-text) med en anden stil end den, der bruges af browseren til at markere fundet.
- CSS-egenskaber er tilføjet til at styre afrundingen af hjørnerne: border-start-start-radius, border-start-end-radius, border-end-start-radius, border-end-end-radius.
- CSS-egenskaben forced-colors er tilføjet for at bestemme, om browseren anvender en brugerdefineret begrænset farvepalette på siden.
- CSS-egenskabet forced-color-adjust er blevet tilføjet for at deaktivere den tvungne farvebegrænsning for enkelte elementer, hvilket efterlader mulighed for fuld farvestyring via CSS.
- I JavaScript er brugen af nøgleordet await tilladt på øverste niveau i moduler, hvilket muliggør en blødere integration af asynkrone opkald i modulindlæsningsprocessen uden behov for at pakke det ind i en «async function». For eksempel kan man nu skrive await Promise.resolve(console.log('test')); i stedet for (async function() { await Promise.resolve(console.log('test')); }());
- I JavaScript-motoren V8 er funktionen til opkald hurtigere, når antallet af overførte argumenter ikke svarer til de parametre, der er defineret i funktionen. Ved afvigelse i antallet af argumenter i ikke-JIT-tilstand er ydelsen steget med 11,2%, og ved brug af JIT TurboFan er den steget med 40%.
- Der er foretaget en betydelig mængde små forbedringer i værktøjerne til webudviklere.
Udover nye funktioner og fejlrettelser er der i den nye version rettet 47 sårbarheder. Mange af sårbarhederne blev identificeret gennem automatiseret testning med værktøjer som AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer og AFL. Der er ikke fundet kritiske problemer, der giver mulighed for at omgå alle beskyttelseslag i browseren og udføre kode i systemet uden for sandkassemiljøet. Det bemærkes dog, at en af de rettede sårbarheder (CVE-2021-21166), relateret til objektlivscyklussen i lydsystemet, har karakter af en 0-dages problemstilling og blev brugt i et af udnyttelsesværktøjerne før rettelsen. Som en del af programmet for belønning for opdagelse af sårbarheder har Google udbetalt 33 belønninger til en samlet værdi af 61000 USD (to belønninger på $10000, to på $7500, tre på $5000, to på $3000, fire på $1000 og to på $500). Størrelsen på 18 belønninger er endnu ikke bestemt.
Kilde: opennet.ru




