Software-update: Google Chrome 105.0.5195.54

Google Chrome logo (79 pix) Google heeft versie 105 van zijn webbrowser Chrome uitgebracht. Google Chrome is beschikbaar voor Windows, Linux en macOS. Er zijn ook versies voor Android en iOS, maar die volgen een iets ander releaseschema. In versie 105 is onder meer picture-in-picture nu ook mogelijk in de Android-versie en zijn de mogelijkheden voor Windows Controls in progressive web apps verbeterd. Meer informatie over de veranderingen die in deze uitgave zijn aangebracht, naast de gebruikelijke bug- en security fixes, kan op deze pagina en hieronder worden gevonden.

Custom Highlight API

The Custom Highlight API extends the concept of highlighting pseudo-elements by providing a way to style the text of arbitrary ranges, rather than being limited to the user agent-defined ::selection, ::inactive-selection, ::spelling-error, and ::grammar-error. This is useful in a variety of scenarios, including editing frameworks that wish to implement their own selection, find-in-page over virtualized documents, multiple selection to represent online collaboration, or spell checking frameworks. Without this feature, web developers and framework authors are forced to modify the underlying structure of the DOM tree to achieve the rendering they desire. This is complicated in cases where the desired highlight spans across multiple subtrees, and it also requires DOM updates to adjust highlights as they change. The custom highlight API provides a programmatic way of adding and removing highlights that does not affect the underlying DOM structure, but instead applies styles to text based on range objects.

In 105, only the color and background-color pseudo elements are supported. Support for other items will be added later.

Container Queries

Container queries allow authors to style elements according to the size of a container element. This capability means that a component owns its responsive styling logic. This makes the component much more resilient, as the styling logic is attached to it, no matter where it appears on the page.

Container queries are similar to media queries, but evaluate against the size of a container rather than the size of the viewport. A known issue is that container queries do not work when an author combines it with table layout in a multicolumn layout. We expect to fix this in 106. For more information, see @container and :has(): two powerful new responsive APIs. For other CSS features in this release, see below.

:has() Pseudo Class

The :has() pseudo class specifies an element having at least one element that matches the relative selector passed as an argument. Unlike other selectors, the :has() pseudo class applies, for a specified element, a style rule to preceding elements, specifically, siblings, ancestors, and preceding siblings of ancestors. For example, the following rule matches only anchor tags that have an image tag as a child.

a:has(> img)

For more information, see @container and :has(): two powerful new responsive APIs. For other CSS features in this release, see below.

Fetch Upload Streaming

Fetch upload streaming lets web developers make a fetch with a ReadableStream body. Previously, you could only start a request once you had the whole body ready to go. But now, you can start sending data while you're still generating the content, improving performance and memory usage.

For example, an online form could initiate a fetch as soon as a user focuses a text input field. By the time the user clicks enter, fetch() headers would already have been sent. This feature also allows you to send content as it's generated on the client, such as audio and video. For more information, see Streaming requests with the fetch API.

Window Controls Overlay for Installed Desktop Web Apps

Window controls overlay extends an app's client area to cover the entire window, including the title bar, and the window control buttons (close, maximize/restore, minimize). The web app developer is responsible for drawing and input handling for the entire window except for the window controls overlay. Developers can use this feature to make their installed desktop web apps look like operating system apps. For more information, see Customize the window controls overlay of your PWA's title bar.

Origin Trials

No origin trials are beginning in this version of Chrome. However there are a number of ongoing origin trials which you can find on the Chrome Origin Trials dashboard. Origin trials allow you to try new features and give feedback on usability, practicality, and effectiveness to the web standards community. To learn more about origin trials in Chrome, visit the Origin Trials Guide for Web Developers. Microsoft Edge runs its own origin trials separate from Chrome. To learn more, see the Microsoft Edge Origin Trials Developer Console.

Completed Origin Trials

The following features, previously in a Chrome origin trial, are now enabled by default.

Media Source Extensions in Workers

The Media Source Extensions (MSE) API is now available from DedicatedWorker contexts to enable improved performance of buffering media for playback by an HTMLMediaElement on the main Window context. By creating a MediaSource object in a DedicatedWorker, an application may then obtain a MediaSourceHandle from it and call postMessage() to transfer it to the main thread for attaching to an HTMLMediaElement. The context that created the MediaSource object may then use it to buffer media.

Viewport-height Client Hint

Chrome supports the new Sec-CH-Viewport-Height client hint. This is a counterpart to the Sec-CH-Viewport-Width previously introduced in Chrome. Together they provide information about a viewport's size to an origin. To use these hints, pass Sec-CH-Viewport-Height or Sec-CH-Viewport-Width to the Accept-CH header.

Accurate Screen Labels for Multi-Screen Window Placement

This release enhances the screen label strings provided by the Multi-Screen Window Placement API. Specifically, it refines ScreenDetailed.label property by replacing the previous placeholders with information from the device's Extended Display Identification Data (EDID) or from a higher-level operating system API. For example, instead of returning "External Display 1", the label property will now return something like "HP z27n" or "Built-in Retina Display". These more accurate labels match those shown by operating systems in display settings dialog boxes. The labels are only exposed to sites that have been granted the "window-placement" permission by the user.

CSS: Preventing Overscroll Effects for Fixed Elements

Setting an element's position CSS property to fixed (unless the element's containing block is not the root) will now prevent it from performing the effects specified by overscroll-behavior. In particular, fixed-position elements will not move during overscroll effects.

DisplayMediaStreamConstraints.systemAudio

A new constraint is being added to MediaDevices.getDisplayMedia() to indicate whether system audio should be offered to the user. User agents sometimes offer audio for capturing alongside video. But not all audio is created alike. Consider video-conferencing applications. Tab audio is often useful, and can be shared with remote participants. But system audio includes participants' own audio, and may not be appropriate to share back. To use the new constraint, pass systemAudio as a constraint. For example:

const stream = await navigator.mediaDevices.getDisplayMedia({
  video: true,
  audio: true,
  systemAudio: "exclude"  // or "include"
});

This feature is only supported on desktop.

Expose TransformStreamDefaultController

To conform with spec the TransformStreamDefaultController class is now available on the global scope. This class already exists and can be accessed using code such as let TransformStreamDefaultController; new TransformStream({ start(c) { TransformStreamDefaultController = c.constructor; } }); This change makes such code unnecessary since TransformStreamDefaultController is now on the global scope. Possible uses for this class include monkey patching properties onto TransformStreamDefaultController.prototype, or feature-testing existing properties of it more easily. Note that the class is not constructible. In other words, this throws an error:

new TransformStreamDefaultController()

HTML Sanitizer API

The HTML Sanitizer API is an easy to use and safe way to remove executable code from arbitrary, user-supplied content. The goal of the API is to make it easier to build web applications that are free of cross-site scripting vulnerabilities and ship part of the maintenance burden for such apps to the platform.

In this release, only basic functionality is supported, specifically Element.setHTML(). The Sanitize interface will be added at a later stage. Namespaced content (SVG + MathML) is not yet supported, only HTML. For more information on the API, see HTML Sanitizer API - Web APIs.

import.meta.resolve()

The import.meta.resolve() method returns the URL to which the passed specifier would resolve in the context of the current script. That is, it returns the URL that would be imported if you called import(). A specifier is a URL beginning with a valid scheme or one of /, ./, or ../. See the HTML spec for examples.

This method makes it easier to write scripts which are not sensitive to their exact location, or to the web application's module setup. Some of its capabilities are doable today, in a longer form, by combining new URL() and the existing import.meta.url() method. But the integration with import maps allows resolving URLs that are affected by import maps.

Improvements to the Navigation API

Chrome 105 introduces two new methods on the NavigateEvent of the Navigation API (introduced in 102) to improve on methods that have proved problematic in practice. intercept(), which let's developers control the state following the navigation, replaces transitionWhile(), which proved difficult to use. The scroll() method, which scrolls to an anchor specified in the URL, replaces restoreScroll() which does not work for all types of navigation. For explanations of the problems with the existing methods and examples of using the new, see Changes to NavigateEvent.

The transitionWhile() and restoreScroll() methods are also deprecated in this release. We expect to remove them in 108. See below for other deprecations and removals in this release.

onbeforeinput Global Event Handler Content Attribute

The nbeforeinput global content attribute is now supported in Chrome. The beforeinput form was already available via addEventListener(). Chrome now also allows feature detection by testing against document.documentElement.onbeforeinput

Opaque Response Blocking v0.1

Opaque Response Blocking (ORB) is a replacement for Cross-Origin Read Blocking (CORB). CORB and ORB are both heuristics that attempt to prevent cross-origin disclosure of "no-cors" subresources.

Picture-in-Picture API Comes to Android

The Picture-in-Picture API allows websites to create a floating video window that is always on top of other windows so that users may continue consuming media while they interact with other sites or applications on their device. This feature has been available on desktop since Chrome 70. It's now available for Chrome running on Android 11 or later. This change only applies to <video> elements. For information on using the Picture-in-Picture API, see Watch video using Picture-in-Picture.

Response.json()

The Response() constructor allows for creating the body of the response from many types; however the existing response.json() instance method does not let you directly create a JSON object. The Response.json() static method fills this gap.

Response.json() returns a new Response object and takes two arguments. The first argument takes a string to convert to JSON. The second is an optional initialization object.

Syntax Changes to Markup Based Client Hints Delegation

The syntax for the delegation of client hints to third-party content that requires client information lost by user agent reduction, which shipped in Chrome 100, is changing.

Previous syntax: <meta name="accept-ch" value="sec-ch-dpr=(https://foo.bar https://baz.qux), sec-ch-width=(https://foo.bar)">
New syntax: <meta http-equiv="delegate-ch" value="sec-ch-dpr https://foo.bar https://baz.qux; sec-ch-width https://foo.bar">

Writable Directory Prompts for the File System Access API

Chromium now allows returning a directory with both read and write permissions in a single prompt for the File System Access API. Previously, Window.showDirectoryPicker() returned a read-only directory (after showing a read access prompt), requiring a second prompt to get write access. This double prompt is a poor user experience and contributes to confusion and permission fatigue among users.

Deprecations, and Removals

This version of Chrome introduces the deprecations and removals listed below. Visit ChromeStatus.com for lists of planned deprecations, current deprecations and previous removals.

Remove WebSQL in Non-secure Contexts

WebSQL in non-secure contexts is now removed. The Web SQL Database standard was first proposed in April 2009 and abandoned in November 2010. Gecko never implemented this feature and WebKit deprecated it in 2019. The W3C encourages Web Storage and Indexed Database for those needing alternatives.

Developers should expect that WebSQL itself will be deprecated and removed when usage is low enough.

CSS Default Keyword is Disallowed in Custom Identifiers

The CSS keyword 'default' is no longer allowed within CSS custom identifiers, which are used for many types of user-defined names in CSS (for example, names created by @keyframes rules, counters, @container names, custom layout or paint names). This adds 'default' to the list of names that are restricted from use in custom identifiers, specifically 'inherit', 'initial', 'unset', 'revert', and 'revert-layer'.

Deprecations in the Navigation API

The transitionWhile() and restoreScroll() methods are also deprecated in this release, and we expect to remove them in 108. Developers who need this functionality should use the new intercept() and scroll() methods. For explanations of the problems with the existing methods and examples of using the new, see Changes to NavigateEvent .

Deprecate Non-ASCII Characters in Cookie Domain Attributes

To align with the latest spec (RFC 6265bis), Chromium will soon reject cookies with a Domain attribute that contains a non-ASCII character (for example, Domain=éxample.com). Support for IDN domain attributes in cookies has been long unspecified, with Chromium, Safari, and Firefox all behaving differently. This change standardizes Firefox's behavior of rejecting cookies with non-ASCII domain attributes. Since Chromium has previously accepted non-ASCII characters and tried to convert them to normalized punycode for storage, we will now apply stricter rules and require valid ASCII (punycode if applicable) domain attributes.

A warning is printed to the console starting in 105. Removal is expected in 106.

Remove Gesture Scroll DOM Events

The gesture scroll DOM events have been removed from Chrome, specifically, gesturescrollstart, gesturescrollupdate and gesturescrollend. These were non-standard APIs that were added to Blink for use in plugins, but had also been exposed to the web.

Google Chrome

Versienummer 105.0.5195.54
Releasestatus Final
Besturingssystemen Windows 7, Linux, macOS, Windows Server 2008, Windows Server 2012, Windows 8, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11
Website Google
Download https://www.google.com/chrome/
Licentietype Freeware

Door Bart van Klaveren

Downloads en Best Buy Guide

31-08-2022 • 06:23

12

Submitter: danmark_ori

Bron: Google

Reacties (12)

12
12
10
1
0
1
Wijzig sortering
de volgende Chrome feature flags die wellicht ook nog niet bij iedereen bekend zijn:

Support for HTTPS records in DNS
chrome://flags/#dns-https-svcb
Chrome may query for HTTPS records in DNS and upgrade the URL to HTTPS or enable Encrypted ClientHello

Encrypted ClientHello
chrome://flags/#encrypted-client-hello
This will encrypt TLS ClientHello

De ECH (Encrypted ClientHello) setting is vanaf v105 te beheren met group-policy.
As early as Chrome 106, Chrome will start rolling out support for ECH on sites that opt-in
If your organization’s infrastructure relies on the ability to inspect SNI, for example, filtering, logging, and so on, you should test it with Chrome 106. If you encounter any incompatibilities, you will be able to use the EncryptedClientHelloEnabled enterprise policy to disable support for ECH.

De volledige Internet-draft is hier te vinden TLS Encrypted Client Hello
klein stukje tekst uit de introcutie van deze draft:
This document specifies a new TLS extension, called Encrypted Client Hello (ECH), that allows clients to encrypt their ClientHello
The plaintext Server Name Indication (SNI) extension in ClientHello messages, which leaks the target domain for a given connection, is perhaps the most sensitive, unencrypted information in TLS 1.3.

[Reactie gewijzigd door mikeoke op 23 juli 2024 08:23]

Leuk en aardig maar heb nu op Tweakers en op meerdere andere website overal flink storende witte randen om/rond/onder tekstvakken regels etcetera als ik via de flags welke dark mode dan ook actief heb. Werkte de dark mode (Selective inversion of non-image elements werkte het beste voor mij) eerst voor 90% van de website's goed is dat getal nu omgedraaid.
Dat hebben we opzettelijk aangepast - er waren flink wat gevallen, met name bij inlogformulieren, waarbij de randen van elementen voorheen helemaal verdwenen. Randen zijn nu een stuk duidelijker; uit (beknopt) onderzoek bleek dat vrijwel iedereen hier na een paar dagen geen last meer van had.
Ok duidelijk. Moet zeggen dat ik er tot nu toe nog niet echt aan kan (en wil ;) ) wennen. Is er een flag om dit weer uit te zetten of komt die er?
@Peter (no offense) en z'n collega's drukken er wel vaker dingen door waar niemand op zit te wachten. Neem bijvoorbeeld de "Mute Tab" functie, ineens was het verdwenen en kwam er de "Mute Site" functie voor terug want Google had besloten dat een complete site (in alle tabjes) muten veel beter was.
Dat is destijds onder andere de reden geweest om te switchen van browser, want alle andere browsers hebben namelijk nog wel de functie om het huidige tabblad te muten.

Met andere woorden, het is eraan wennen of een andere browser zoeken.
Op basis waarvan maak je de claim dat niemand op die verandering zat te wachten? Voor vrijwel elke zichtbare verandering die we doorvoeren in de browser doen we gebruikersonderzoek, en het uitrollen van nieuwe functionaliteit kost minimaal ~weken omdat alle metriek geanalyseerd moet worden, juist om te bevestigen dat het de bedoelde impact heeft. Bevestigingsvooroordelen zijn hier gevaarlijk in: actieve Twitter of Reddit threads kunnen een misleidende indruk geven gezien zeer specifieke groepen gebruikers daarin meedoen. Dat gaat niet op voor producten met 3+ miljard gebruikers.

Dat neemt zeker niet weg dat "Mute Tab" vs. "Mute Site" controversieel is, en beide (verschillende) voor- en nadelen hebben. Het was gemakkelijk voor websites om "Mute Tab" beperkingen te omzeilen, wat een flink aantal websites met minder positieve intenties graag aangreep⁠—wat de consequentie heeft dat de functionaliteit niet werkt op de websites waar deze juist belangrijk is. Er zijn zeker andere oplossingen, maar die hebben allemaal grotere nadelen.

Tenslotte, dit is precies waarom Chrome extensies ondersteunt :). Er zijn verschillende extensies beschikbaar in de Chrome Web Store waarmee je dit zelf weer toe kan voegen aan je browser.
Die conclusie heb ik gemaakt omdat ik destijds heb gezocht waarom het verwijderd was, en toen al topics en bugmeldingen tegenkwam met heel veel reacties. Na en snelle zoekopdracht kom ik in ieder geval deze topics tegen: https://support.google.com/chrome/thread/53126568?hl=en en https://support.google.com/chrome/thread/2181302?hl=en
Het was toen een tijdje nog in te schakelen middels een Flag, maar uiteindelijk is het gewoon verwijderd. Ik vraag me dan af, waarom de gebruiker niet gewoon een keuze geven in de Settings?

De reacties in die topics geven precies aan waarom het niet handig was/is. Soms wil je 1 tab muten van dezelfde site, en niet de complete site. Daarnaast was het voorheen slecht 1 klik op het luidspreker icoontje in het tabblad. Nu is het "Rechtermuisknop op het tabblad en een klik op "Mute Site" geworden.

En ik heb nog nooit een site gehad die de beperking kon omzeilen. Dan zijn dan wellicht de minder legale sites. In Firefox werkt het al sinds dag 1 prima namelijk.

En de raar uitziende third party Extensies zijn naar mijn mening niet een vervanger voor het subtiele icoontje in het tabblad.
Dat neemt zeker niet weg dat "Mute Tab" vs. "Mute Site" controversieel is.

Tenslotte, dit is precies waarom Chrome extensies ondersteunt :). Er zijn verschillende extensies beschikbaar in de Chrome Web Store waarmee je dit zelf weer toe kan voegen aan je browser.
breaking changes zijn in experimental feature flags. De highlight API.
Dat gaat niet op voor producten met 3+ miljard gebruikers.
Ik snap sowieso niet wat je betoog met een Chrome Update te maken heeft.
Ik snap sowieso niet wat je betoog met een Chrome Update te maken heeft.
Ik in eerste instantie ook niet, maar hij blijkt een Chrome-ontwikkelaar te zijn: https://gathering.tweaker...message/72616114#72616114
Dat was mijn eerste gevoel ook ;) Er is geen flag om deze verandering aan te passen, en we zijn ook niet van plan deze toe te voegen. Het gebruik van de experimentele auto dark mode is veel te laag om de extra permutatie in alle tests toe te voegen, en zonder tests hebben we deze discussie bij de volgende release weer.

Overigens, er komen nog een aantal andere veranderingen aan: een beter statistisch model voor het donker maken van plaatjes waardoor bijvoorbeeld vlaggetjes er goed uit zullen zien, en op de iets langere termijn het juist aanpakken van achtergrondplaatjes.
Je kan niet echt klagen dat er breaking changes zijn in experimental feature flags.
True, maar desalniettemin vind ik het wel ietwat vervelend. ;)

Op dit item kan niet meer gereageerd worden.