From f8e5bf77287b6d8712b054e6651472b7babeeb38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 9 Jun 2026 17:22:16 +0200 Subject: [PATCH 1/3] Define privacy-preserving rendering --- source | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/source b/source index 640465da59f..79ff011c402 100644 --- a/source +++ b/source @@ -151602,6 +151602,9 @@ legend[align=right i] { video element, as defined by the relevant rendering rules; for WebVTT, those are the rules for updating the display of WebVTT text tracks. WEBVTT

+

In privacy-preserving rendering, subtitles and captions are expected + to be rendered with default appearance that ignores any user preferences.

+

When the user agent starts exposing a user interface for a video element, the user agent should run the rules for updating the text track rendering of each of the text @@ -153312,6 +153315,10 @@ select { elements in their user interface, as discussed previously.

+

In privacy-preserving rendering, user agents are expected to act as + if the :visited pseudo-class does not + match.

+ @@ -153550,6 +153557,35 @@ if (s = prompt('What is your name?')) { +

Privacy-preserving rendering

+ +

In privacy-preserving rendering, any security- or privacy-sensitive + information that isn't otherwise observable to author code are omitted or replaced with safe + defaults. The detailed requirements are in the relevant sections above.

+ +

In privacy-preserving rendering, the user agent is expected to:

+ +

Summary

+ + + +

The following table summarizes how privacy-preserving rendering affects various + elements and features when they are rendered:

+ + + + + + + +
Category + Expected behavior +
a and area elements + The :visited pseudo-class never matches. +
Media elements + Subtitles and captionss use default appearance, ignoring any user preferences. +
+

Obsolete features

From 9b2ed380f15401fd3a1b268e7595c3b28c872430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 16 Jun 2026 13:41:01 +0000 Subject: [PATCH 2/3] Rename privacy-preserving rendering to read-back-allowed rendering And s/in/during/ --- source | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source b/source index 79ff011c402..4b1bd04eafb 100644 --- a/source +++ b/source @@ -151602,8 +151602,9 @@ legend[align=right i] { video element, as defined by the relevant rendering rules; for WebVTT, those are the rules for updating the display of WebVTT text tracks. WEBVTT

-

In privacy-preserving rendering, subtitles and captions are expected - to be rendered with default appearance that ignores any user preferences.

+

During read-back-allowed rendering, subtitles and captions are + expected to be rendered with default appearance that ignores any user + preferences.

When the user agent starts exposing a user interface for a video element, the user agent should run the rules for @@ -153315,8 +153316,8 @@ select { elements in their user interface, as discussed previously.

-

In privacy-preserving rendering, user agents are expected to act as - if the :visited pseudo-class does not +

During read-back-allowed rendering, user agents are expected to act + as if the :visited pseudo-class does not match.

@@ -153557,19 +153558,17 @@ if (s = prompt('What is your name?')) { -

Privacy-preserving rendering

+

Read-back-allowed rendering

-

In privacy-preserving rendering, any security- or privacy-sensitive +

During read-back-allowed rendering, any security- or privacy-sensitive information that isn't otherwise observable to author code are omitted or replaced with safe defaults. The detailed requirements are in the relevant sections above.

-

In privacy-preserving rendering, the user agent is expected to:

-

Summary

-

The following table summarizes how privacy-preserving rendering affects various +

The following table summarizes how read-back-allowed rendering affects various elements and features when they are rendered:

From f22bc53e7ad1aff5a82bfc6c8184bd9709e9322e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20J=C3=A4genstedt?= Date: Tue, 16 Jun 2026 14:17:33 +0000 Subject: [PATCH 3/3] Move list over from HTML-in-Canvas PR --- source | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/source b/source index 4b1bd04eafb..33f70eadb11 100644 --- a/source +++ b/source @@ -4210,6 +4210,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
  • <length>
  • +
  • <url>
  • The 'em' unit
  • The 'ex' unit
  • The 'vw' unit
  • @@ -153564,6 +153565,50 @@ if (s = prompt('What is your name?')) { information that isn't otherwise observable to author code are omitted or replaced with safe defaults. The detailed requirements are in the relevant sections above.

    + +

    The following must not be exposed during read-back-allowed rendering:

    + +
    +
    All content +
    CORS-cross-origin content, including in embedded content (e.g., + iframe, img), canvas elements whose bitmap's origin-clean flag is set to false, CSS + <url> references (e.g., 'background-image', + 'border-image-source'), and SVG elements (e.g., use, pattern, feImage). +
    Non-default colors, themes, and preferences. +
    Non-default selection and find-in-page highlights. +
    Spelling and grammar markers. +
    Subpixel text rendering and antialiasing. + +
    Form-associated elements +
    Platform-specific appearance. +
    Pending autofill suggestions. + +
    Media elements +
    User preferences for caption and subtitle selection and appearance. + +
    a and area elements +
    Visited link information. +
    + +

    The above cases should all be merged into the appropriate part of the rendering + section.

    + +

    The following explicitly may be exposed during read-back-allowed rendering:

    + +
    +
    All content +
    Matching text from find-in-page. + +
    Form-associated elements +
    Default appearance that is the same on all platforms. + +
    iframe and frame elements +
    CORS-same-origin frames are not sensitive information, but + CORS-cross-origin content within them is.
    +
    +

    Summary