Partager via


Notes de publication de la plateforme web Microsoft Edge 133 (février 2025)

Voici les nouvelles fonctionnalités et mises à jour de la plateforme web dans Microsoft Edge 133, qui sera publié le 6 février 2025.

Pour rester à jour et obtenir les dernières fonctionnalités de la plateforme web, téléchargez un canal en préversion de Microsoft Edge (bêta, dev ou canary) ; accédez à Devenir un Microsoft Edge Insider.

Contenu détaillé :

Edge DevTools

Consultez Nouveautés de DevTools (Microsoft Edge 133).

WebView2

Consultez 1.0.3065.39 (10 février 2025) dans Notes de publication archivées pour le Kit de développement logiciel (SDK) WebView2.

Fonctionnalités de la plateforme web

Fonctionnalités activées

Animation.overallProgress

Ajoute une overallProgress propriété à la classe JavaScript Animation .

Cette propriété fournit une représentation pratique et cohérente de l’avancée d’une animation dans ses itérations et quelle que soit la nature de son chronologie.

Atomics.pause

Ajoute la Atomics.pause méthode pour indiquer au processeur que le code actuel exécute un verrouillage tournant.

Rapports de hachage CSP pour les scripts

Pour des raisons de sécurité, les applications web complexes doivent souvent conserver un enregistrement des sous-ressources qu’elles téléchargent. En particulier, les normes et bonnes pratiques du secteur à venir (telles que PCI-DSS v4) exigent que les applications web conservent un inventaire de tous les scripts qu’elles téléchargent et exécutent.

Cette fonctionnalité s’appuie sur la stratégie de sécurité du contenu (CSP) et l’API de création de rapports pour signaler les URL et les hachages de toutes les ressources de script chargées par le document.

Pseudo-classe CSS :open

La :open pseudo-classe correspond <dialog> et <details> quand elles sont dans leur état ouvert, et correspond <select> et <input> quand elles sont dans des modes qui ont un sélecteur et le sélecteur s’affiche.

Requêtes de conteneur d’état de défilement CSS

Utilisez des requêtes de conteneur pour appliquer un style aux descendants de conteneurs en fonction de leur état de défilement.

Le conteneur de requête est soit un conteneur de défilement, soit un élément affecté par la position de défilement d’un conteneur de défilement. Les états suivants peuvent être interrogés :

  • stuck: un conteneur collant est collé à l’un des bords de la zone de défilement.
  • snapped: un conteneur aligné par défilement est actuellement aligné horizontalement ou verticalement.
  • scrollable: indique si un conteneur de défilement peut faire l’objet d’un défilement dans une direction interrogée.

Un nouveau container-type: scroll-state permet aux conteneurs d’être interrogés.

Par exemple :

#sticky {
  position: sticky;
  container-type: scroll-state;
}

@container scroll-state(stuck: top) {
  #sticky-child { font-size: 75% }
}
Fonction avancée attr() CSS

Implémentez l’augmentation à attr() qui est spécifiée dans CSS Level 5, qui autorise les <string>types en plus de , et autorise l’utilisation dans toutes les propriétés CSS (en plus du pseudo-élément content).

Exemple :

<style>
  div {
     background-color: attr(data-foo type(<color>), red);
  }
</style>
<div data-foo="blue">test</div>
Propriétés CSS text-box, text-box-trimet text-box-edge

Pour obtenir un équilibre optique du contenu du texte, les text-box-trim propriétés et text-box-edge , ainsi que la text-box propriété abrégée, permettent un contrôle plus précis de l’alignement vertical du texte.

La text-box-trim propriété spécifie les côtés à découper (au-dessus ou en dessous). La text-box-edge propriété spécifie la façon dont le bord doit être coupé.

Ces propriétés vous permettent de contrôler précisément l’espacement vertical à l’aide des métriques de police.

ideographic et ideographic-ink, deux valeurs de la text-box-edge propriété pour les caractères chinois, japonais et coréen (CJK) sont reportées à une version ultérieure.

Déplacement de conservation de l’état DOM

Cette fonctionnalité ajoute une primitive DOM (moveBefore) qui permet de déplacer un élément dans une arborescence DOM, sans réinitialiser l’état de l’élément. Cette fonction est disponible sur ParentNode les nœuds, tels que Element, Documentet DocumentFragment.

Lors du déplacement d’un élément au lieu de supprimer ou d’insérer un élément, l’état suivant est conservé :

  • <iframe> les éléments restent chargés.
  • L’élément actif conserve le focus.
  • Les fenêtres contextuelles et les boîtes de dialogue restent ouvertes.
  • Les transitions et animations CSS continuent de s’exécuter.
Exposer l’attribut attributionsrc sur <area>

Pour les rapports d’attribution, l’attribut attributionsrc a déjà été traité involontairement sur <area> des éléments, en raison du code partagé avec <a>, qui a intentionnellement pris en charge cet attribut.

Pour être complet, l’attribut sur <area> est exposé avec une syntaxe et une sémantique identiques à <a>, et sans modifier le traitement précédent. Lorsqu’une <area> balise avec un attributionsrc attribut est parcourue, la demande de premier plan peut inscrire des sources de navigation et, si l’attribut n’est pas vide, une ou plusieurs demandes en arrière-plan peuvent également inscrire des sources de navigation.

Exposer les origines renderTime croisées grossières dans le minutage des éléments et la plus grande peinture contentful (LCP) quel que soit l’en-tête Timing-Allow-Origin (TAO)

Toutes les entrées de performances de minutage d’élément et LCP ont une valeur différente de zéro renderTime, même si elles sont cross-origin sans en-tête Timing-Allow-Origin . Tous les horodatages de présentation (renderTime, l’heure de début du minutage de la peinture et l’heure de fin de l’événement) sont grossis à un multiple de 4 ms, afin de réduire le risque de lecture des informations d’image cross-origin.

Interface FileSystemObserver

L’interface FileSystemObserver informe les sites web des modifications apportées au système de fichiers. Les sites observent les modifications apportées aux fichiers et répertoires pour lesquels l’utilisateur a déjà accordé l’autorisation, sur l’appareil local de l’utilisateur (comme spécifié dans WICG/file-system-access) ou dans le système de fichiers compartimentés (comme spécifié dans whatwg/fs), et sont avertis des informations de modification de base, telles que le type de modification.

Plusieurs mappages d’importation

Les mappages d’importation doivent actuellement être chargés avant tout module ES, et il ne peut y avoir qu’une seule carte d’importation par document. Cela rend l’importation des cartes fragiles et potentiellement lentes à utiliser dans des scénarios réels : tout module qui se charge avant l’importation de mappages interrompt l’application entière, et dans les applications avec de nombreux modules, les mappages d’importation deviennent une grande ressource bloquante, car la carte entière de tous les modules possibles doit être chargée en premier.

Cette fonctionnalité permet d’importer plusieurs mappages par document, en fusionnant les mappages d’importation de manière cohérente et déterministe.

Améliorations apportées à l’appel de fenêtre contextuelle et au positionnement des ancres

Cette modification correspond à l’ensemble de modifications associé suivant :

  1. Ajoutez un moyen impératif de définir les relations d’appelant entre les fenêtres contextuelles : popover.showPopover({source}).
  2. Les relations d’appelant créent des références d’élément d’ancrage implicites.
Une fenêtre contextuelle imbriquée à l’intérieur d’un appelant ne doit pas la ré-appeler

Cliquer sur une fenêtre contextuelle imbriquée n’appelle pas la même fenêtre contextuelle.

Dans l’exemple suivant, le fait de cliquer sur le bouton active correctement la fenêtre contextuelle. Toutefois, le fait de cliquer sur la fenêtre contextuelle elle-même après cela ne doit pas fermer la fenêtre contextuelle. Auparavant, la fenêtre contextuelle était fermée dans ce cas, car le clic de la fenêtre contextuelle était en bulles jusqu’au <button> et a activé l’appelant, ce qui a fermé la fenêtre contextuelle.

<button popovertarget=foo>Activate
  <div popover id=foo>Clicking me shouldn't close me</div>
</button>
Minutage des ressources : rétablir la responseStart modification et introduire firstResponseHeadersStart

Minutage des ressources :

  • responseStart retourne la première réponse, que ce soit des indicateurs précoces (intermédiaires) ou finals.
  • Le temps des en-têtes de réponse finaux (2xx/4xx/5xx) est exposé sous la forme finalResponseHeadersStart.
En-têtes d’accès au stockage

Offre un autre moyen pour les incorporations authentifiées d’opter pour les cookies nonpartitionnés. Ces en-têtes indiquent si les cookies nonpartitionnés sont (ou peuvent être) inclus dans une requête réseau donnée. Ces en-têtes permettent également aux serveurs d’activer storage-access les autorisations qui leur ont déjà été accordées. Le fait de fournir un autre moyen d’activer l’autorisation autorise l’utilisation storage-access par les ressources non iFrame et peut réduire la latence pour les incorporations authentifiées.

Prise en charge de la création d’un ClipboardItem avec Promise<DOMString>

ClipboardItem est l’entrée de la méthode d’écriture du Presse-papiers asynchrone. Le ClipboardItem constructeur accepte désormais des valeurs de chaîne en plus des objets blob. ClipboardItemData peut être un objet BLOB ; une chaîne ; ou une promesse qui se résout en blob ou en chaîne.

API d’authentification web : la getClientCapabilities() méthode de PublicKeyCredential

La getClientCapabilities() méthode permet de déterminer quelles fonctionnalités WebAuthn sont prises en charge par le client de l’utilisateur. Cette méthode retourne une liste des fonctionnalités prises en charge, ce qui vous permet d’adapter les expériences d’authentification et les flux de travail en fonction des fonctionnalités spécifiques du client.

Proposition de mémoire WebAssembly 64

La proposition memory64 ajoute la prise en charge des mémoires WebAssembly linéaires supérieures à 2^32 bits. Cette proposition ne fournit pas de nouvelles instructions, mais étend plutôt les instructions existantes pour autoriser les index 64 bits pour les mémoires et les tables.

WebGPU : formats de vertex à 1 composant (et unorm8x4-bgra)

Ajoute des formats de vertex supplémentaires qui n’étaient pas présents dans la version initiale de WebGPU, en raison d’un manque de prise en charge, ou d’anciennes versions de macOS qui ne sont plus prises en charge par aucun navigateur. Les formats de vertex à 1 composant permettent à l’application de demander uniquement les données nécessaires, alors qu’auparavant, l’application devait demander au moins 2 fois plus de données pour les types de données 8 bits et 16 bits. Le unorm8x4-bgra format facilite légèrement le chargement des couleurs de vertex encodées en BGRA tout en conservant le même nuanceur.

Algorithme X25519 de l’API de chiffrement web

L’algorithme X25519 fournit des outils permettant d’effectuer un contrat de clé à l’aide de la fonction X25519 spécifiée dans RFC7748. L’identificateur X25519 d’algorithme peut être utilisé dans l’interface SubtleCrypto pour accéder aux opérations implémentées : generateKey, importKey, exportKey, deriveKeyet deriveBits.

popover=hint

L’API Popover spécifie le comportement de deux valeurs de l’attribut popover : auto et manual. Cette fonctionnalité décrit une troisième valeur, popover=hint. Les indicateurs, qui sont le plus souvent associés à des comportements de type info-bulle, ont des comportements légèrement différents. La principale différence est qu’un hint est subordonné à autos lors de l’ouverture de piles imbriquées de fenêtres contextuelles. Par conséquent, il est possible d’ouvrir une fenêtre contextuelle non liée hint pendant qu’une pile existante de auto fenêtres contextuelles reste ouverte. L’exemple canonique est qu’un <select> sélecteur est ouvert (popover=auto) et qu’une info-bulle déclenchée par pointage (popover=hint) est affichée. Cette action ne ferme pas le <select> sélecteur.

Fonctionnalités dépréciées ou supprimées

Les fonctionnalités d’API web suivantes ont été déconseillées (toujours prises en charge, mais non recommandées) ou supprimées.

Déprécier la limite WebGPU maxInterStageShaderComponents

La maxInterStageShaderComponents limite est supprimée en raison d’une combinaison de facteurs :

  • Redondance avec maxInterStageShaderVariables: cette limite a déjà un objectif similaire : contrôler la quantité de données passées entre les étapes du nuanceur.

  • Différences mineures : il existe de légères différences dans la façon dont les deux limites sont calculées, mais ces différences sont mineures et peuvent être gérées efficacement dans la maxInterStageShaderVariables limite.

  • Simplification : la suppression maxInterStageShaderComponents simplifie l’interface du nuanceur et réduit la complexité pour les développeurs. Au lieu de gérer deux limites distinctes (qui s’appliquent simultanément, mais avec des différences subtiles), vous pouvez vous concentrer sur maxInterStageShaderVariables, qui est plus correctement nommé et complet.

Auparavant, lorsqu’une ressource était prérécupérée à l’aide <link rel=prefetch>de , sa sémantique de cache (en particulier, max-age et no-cache) était ignorée pour la première utilisation dans les 5 minutes, afin d’éviter le refetching. À présent, ce cas spécial a été supprimé et la sémantique normale du cache HTTP est utilisée.

Cela signifie que pour tirer parti de <link rel=prefetch>, vous devez inclure les en-têtes de mise en cache appropriés (autrement dit, Cache-Control ou Expires).

Cela affecte également le non standard <link rel=prerender>.

Cela corrige un bogue avec la prérécupération des règles de spéculation, où les réponses non-2xx ont été mises en cache. Cela ne nécessite pas de mise en cache des en-têtes pour la prérécupération des règles de spéculation, car ces en-têtes sont destinés à la prérécupération de navigation et ont donc des besoins de mise en cache différents de ceux du cache HTTP normal.

Essais d’origine

Vous trouverez ci-dessous de nouvelles API expérimentales que vous pouvez essayer sur votre propre site web en direct pendant une durée limitée. Pour en savoir plus sur les essais d’origine, consultez Tester les API expérimentales et les fonctionnalités à l’aide d’essais d’origine.

Pour obtenir la liste complète des essais d’origine disponibles, consultez Microsoft Edge Origin Trials.

Versions d’évaluation d’origine de Microsoft Edge uniquement

API de biens numériques

Expire le 31 mars 2025.

L’API Digital Goods permet à une application web d’obtenir des informations sur ses produits numériques et les achats de l’utilisateur gérés par un magasin numérique. L’agent utilisateur extrait les connexions au magasin, et l’API demande de paiement est utilisée pour effectuer des achats.

Accès aux applications LocalFolder web

Expire le 31 mars 2025.

Permet aux Web Apps progressives (PWA) installées sur le Microsoft Store d’accéder au contenu du fichier précédemment stocké dans le dossier WinRT ApplicationData.LocalFolder par une version UWP antérieure de l’application.

Attribut d’écriture manuscrite HTML+IDL

Expire le 14 juin 2025.

L’attribut handwriting fournit un moyen par document et par élément de contrôler où l’entrée d’écriture manuscrite, par exemple lors de l’utilisation d’un stylet, est autorisée.

API d’informations d’acquisition

Expire le 30 juin 2025.

Prend en charge l’attribution d’acquisition 3P pour les Web Apps progressives (PWA) acquises via un App Store ou directement à partir du navigateur.

Nouveaux essais Chromium d’origine

Cible de référence pour ARIA inter-racine

Expire le 10/06/2025.

L’API cible de référence permet aux références basées sur l’ID, en particulier à partir d’éléments

DisableThirdPartyStoragePartitioning3

Expire le 16/09/2025.

Il s’agit d’un essai de dépréciation à usage général qui permet à un site de niveau supérieur d’opter pour le stockage non partitionné, les workers de service et les API de communication pour les contextes tiers incorporés dans son site. Cela donne aux sites plus de temps pour les tests et la migration vers des solutions qui ne nécessitent pas de stockage partitionné.

Figer la page d’arrière-plan Opt-Out

Expire le 16/09/2025.

Cette version d’évaluation permet à une page de refuser le blocage de la page d’arrière-plan. Dans Chromium 133, un onglet qui a été mis en arrière-plan pendant plus de 5 minutes peut être figé s’il est gourmand en ressources processeur et si l’économiseur d’énergie est actif, sauf s’il est désactivé. Un opt-out d’essai d’origine est fourni pendant le développement de nouvelles API web, afin de refuser les pages pour des cas d’usage spécifiques.

Remarque

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Chromium.org et utilisées selon les termes décrits dans la licence internationale Creative Commons Attribution 4.0.