Google heeft de release van webbrowser Chrome 147 aangekondigd. Tegelijkertijd is er een stabiele versie van het open-source project Chromium beschikbaar, dat de basis vormt voor Chrome. Chrome verschilt van Chromium door het gebruik van Google-logo's, een systeem voor het verzenden van meldingen bij crashes, modules voor het afspelen van auteursrechtelijk beschermde videoinhoud (DRM), een automatische update-installatiefunctie, voortdurende sandbox-isolatie, toegang tot Google API-sleutels en het verzenden van RLZ-parameters tijdens het zoeken. Voor gebruikers die meer tijd nodig hebben om te updaten, is er een aparte Extended Stable-tak die gedurende acht weken wordt ondersteund. De volgende versie van Chrome 148 staat gepland voor 5 mei.
Belangrijkste wijzigingen in Chrome 147 (1, 2, 3, 4):
- Er is een verticale tabbladweergave toegevoegd die de bovenste horizontale tabbladbalk vervangt door een zijbalk met verticale tabbladen. Verticale tabbladen kunnen worden weergegeven in uitgebreide (pictogram + deel van de beschrijving) en ingeklapte modus (alleen pictogrammen). Wanneer de cursor op een zijtabblad wordt geplaatst, wordt er een miniatuur met de inhoud weergegeven. Het beheer van tabbladgroepen is vereenvoudigd. In het contextmenu dat verschijnt bij een rechter muisklik op de tabbladbalk, is er een optie toegevoegd 'Toon tabbladen verticaal'. Als deze optie niet standaard verschijnt, kan deze worden geactiveerd via de instelling 'chrome://flags/#vertical-tabs'.
- De leesmodus is herzien, waarbij alleen de relevante tekst van de pagina wordt weergegeven, terwijl alle bijbehorende bedieningsonderdelen, banners, menu's, navigatiebalken en andere niet-gerelateerde inhoud worden verborgen. In de nieuwe versie wordt, net als bij Firefox, de belangrijke inhoud in het volledige zichtbare gebied getoond, in plaats van zoals voorheen in een smalle zijbalk naast de oorspronkelijke pagina. Als de nieuwe modus niet standaard is toegepast, kan deze worden geactiveerd via de instelling 'chrome://flags/#read-anything-immersive-reading-mode'.
- Er is een knop toegevoegd in het menu 'Help' om een klacht in te dienen voor opname op de zwarte lijst van webpagina's die zijn gemaakt voor fraude of phishing. De knop verschijnt wanneer de 'Safe Browsing'-modus is ingeschakeld.
- De beveiligingsmiddelen tegen toegang tot het lokale systeem bij interactie met openbare websites zijn uitgebreid. Toegang van websites naar IP-adressen Een lokaal netwerk (intranet of interne adressen) of loopback-interface (127.0.0.0/8) vereist bevestiging van de gebruiker om een handeling uit te voeren. De beveiliging dekt nu niet alleen pogingen om bronnen via HTTP/HTTPS te laden, fetch() verzoeken en iframe-invoegingen, maar ook verbindingen via WebSockets en WebTransport, evenals fetch-verzoeken die zijn geïnitieerd via de methode WindowClient.navigate(). Toegang tot interne bronnen wordt door kwaadwillenden gebruikt voor indirecte identificatie en voor het uitvoeren van CSRF-aanvallen op routers, toegangspunten, printers, bedrijfswebinterfaces en andere apparaten en diensten die verzoeken alleen vanuit het lokale netwerk accepteren.
- De functionaliteit voor het parseren van XML is overgezet van libxml2 naar een nieuwe bibliotheek geschreven in Rust met het oog op beveiliging. Deze wijziging betreft alleen XML; zoals eerder aangekondigd, zal de ondersteuning voor XSLT binnenkort worden stopgezet.
- De mogelijkheid om de methode startViewTransition() toe te passen is gerealiseerd, niet alleen voor de hele pagina, maar ook voor individuele HTML-elementen.
- De CSS-functie contrast-color() is toegevoegd, die de tegenovergestelde variant van een opgegeven kleur retourneert (voor wit retourneert het zwart, en voor zwart retourneert het wit). De functie kan worden gebruikt om de achtergrondkleur voor een bepaalde tekstkleur en vice versa te bepalen.
- Een nieuwe CSS-eigenschap 'border-shape' is toegevoegd, waarmee niet-rechthoekige omrandingen van elementen kunnen worden gemaakt, bijvoorbeeld het gebruiken van randen in ronde of veelhoekige vormen. De CSS-eigenschap 'border-shape' accepteert dezelfde soorten vormen als de eigenschap 'clip-path', maar in tegenstelling tot de laatste, definieert het de omtrek, decodeert deze en snijdt de inhoud die buiten de omtrek valt af.
- De interface CSSPseudoElement is toegevoegd, waarmee gewerkt kan worden met CSS-pseudoelementen vanuit JavaScript.
- In het linkelement is de mogelijkheid om de attribuut 'rel=modulepreload' toe te passen geïmplementeerd voor het vooraf laden van niet alleen scripts, maar ook modules met CSS-stijlen () en JSON-gegevens ().
- Het gedrag bij het berekenen van de breedte van randen en omtrekken in de CSS-eigenschappen border-width, outline-width en column-rule-width is gewijzigd en is nu uniform met Firefox en webbrowsers op de WebKit-engine. Tot nu toe werd de breedte in de genoemde eigenschappen op nul gezet, ongeacht de opgegeven waarden, als de eigenschappen border-style, outline-style of column-rule-style de waarde "none" of "hidden" hadden. Nu stellen de waarden voor border-width, outline-width en column-rule-width altijd de door de ontwikkelaar opgegeven waarden in, ongeacht de inhoud van de "*-style" eigenschappen.
- De methode Math.sumPrecise() is toegevoegd om de som van elementen in arrays en andere opsombare objecten te berekenen met een precisie die hoger is dan de precisie van reguliere sommen in een lus (nauwkeurigheidsverlies bij tussentijdse resultaten wordt uitgesloten).
- De attribuut Request.isReloadNavigation is toegevoegd, waarmee kan worden vastgesteld dat de pagina opnieuw is geladen, bijvoorbeeld na het indrukken van de knop "Vernieuwen" of het aanroepen van de methoden location.reload() en history.go(0).
- Om de nauwkeurigheid van indirecte identificatie te verlagen, is de logica voor het afronden van de geheugen grootte die via de API Device Memory wordt geretourneerd aangepast, waarmee informatie over de grootte van het RAM-geheugen kan worden verkregen. Deze informatie kan nuttig zijn voor het creëren van lichtgewicht versies van webapplicaties die worden geladen voor apparaten met weinig RAM of voor het activeren van geavanceerde functies bij een groot hoeveelheid geheugen. In de builds voor het Android-platform wordt de geheugen grootte nu afgerond op 1, 2, 4 en 8, en voor andere platforms op 2, 4, 8, 16 en 32.
- Voor geïsoleerde webapplicaties (IWA — Isolated Web Apps) is de API Web Printing geïmplementeerd, die methoden biedt voor het bepalen van de aanwezigheid van printers, het verzenden van documenten naar de printer en het beheren van de afdrukwachtrij. De in de API gebruikte attributen en semantiek komen overeen met het IPP-protocol (Internet Printing Protocol).
- In de ‘Origin trials’ modus is de WebNN API geïmplementeerd, waarmee gebruik kan worden gemaakt van de door het besturingssysteem aangeboden services voor machine learning en de bijbehorende hardwarefuncties.
- Verbeteringen zijn aangebracht in de tools voor webontwikkelaars. In de ingebouwde AI-assistent is automatische contextselectie geïmplementeerd. Het panel "Device Mode" is gemoderniseerd, dat wordt gebruikt voor het testen van de werking van de website op verschillende mobiele apparaten. In het Network-paneel is automatische decodering van gecomprimeerde inhoud van verzoeken, verzonden met de header Content-Encoding: gzip of deflate, mogelijk gemaakt. Er is ook de mogelijkheid om reguliere expressies te gebruiken voor het filteren van CSS-stijlen.
Naast de nieuwe functies en bugfixes zijn in de nieuwe versie 60 kwetsbaarheden verholpen. Veel van deze kwetsbaarheden zijn geïdentificeerd met behulp van geautomatiseerde testtools zoals AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer en AFL. Twee problemen (bufferoverloop en gehele getaloverloop in WebML) zijn geclassificeerd als kritiek gevaar, wat betekent dat deze kwetsbaarheden kunnen helpen om alle beveiligingslagen van de browser te omzeilen en code buiten de sandbox-omgeving uit te voeren. In het kader van het beloningsprogramma voor het ontdekken van kwetsbaarheden heeft Google voor deze release 60 beloningen ingesteld en in totaal 118.000 dollar uitgekeerd (twee beloningen van $43.000, twee van $11.000 en één van $4.000, $3.000, $2.000 en $1.000. De grootte van 52 beloningen is nog niet vastgesteld.
Bron: opennet.ru
