[CSS Modules] synchronously process blob URLs [chromium/src : main]

0 views
Skip to first unread message

Kurt Catti-Schmidt (Gerrit)

unread,
Oct 29, 2025, 7:19:31 PM (8 days ago) Oct 29
to AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org, loading-rev...@chromium.org

Kurt Catti-Schmidt abandoned this change

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: abandon
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ic104ead5d3ed49b5d6d45f161eeb4c0420084c35
Gerrit-Change-Number: 7088606
Gerrit-PatchSet: 1
Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mason Freed (Gerrit)

unread,
Oct 30, 2025, 6:41:42 PM (7 days ago) Oct 30
to Kurt Catti-Schmidt, Kouhei Ueno, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
Attention needed from Kouhei Ueno and Kurt Catti-Schmidt

Mason Freed voted and added 1 comment

Votes added by Mason Freed

Code-Review+1

1 comment

Patchset-level comments
File-level comment, Patchset 11 (Latest):
Mason Freed . resolved

This seems ok to me (if a little worrying) so I'll mark it +1. But it'd be good to wait for Kouhei to also +1 it.

Open in Gerrit

Related details

Attention is currently required from:
  • Kouhei Ueno
  • Kurt Catti-Schmidt
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If50701981f7eaa138fff7d9ca799431c3303fa72
Gerrit-Change-Number: 7093679
Gerrit-PatchSet: 11
Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
Gerrit-Reviewer: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-Attention: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Oct 2025 22:41:32 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Kurt Catti-Schmidt (Gerrit)

unread,
Oct 30, 2025, 6:55:49 PM (7 days ago) Oct 30
to Mason Freed, Kouhei Ueno, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
Attention needed from Kouhei Ueno

Kurt Catti-Schmidt added 1 comment

Patchset-level comments
Mason Freed . resolved

This seems ok to me (if a little worrying) so I'll mark it +1. But it'd be good to wait for Kouhei to also +1 it.

Kurt Catti-Schmidt

Thanks - yeah this is not great long-term, but it's basically broken right now so I appreciate the un-blocking.

FYI I initially had a different approach that used a FileReader and manually inserted the entry into the module map (instead of a sync fetch), but went with this because it's much simpler - see iteration 2: https://chromium-review.googlesource.com/c/chromium/src/+/7093679/2

I'll definitely wait for @kou...@chromium.org's input before landing, and I'm open to any better ways to accomplish this!

Open in Gerrit

Related details

Attention is currently required from:
  • Kouhei Ueno
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If50701981f7eaa138fff7d9ca799431c3303fa72
Gerrit-Change-Number: 7093679
Gerrit-PatchSet: 11
Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
Gerrit-Reviewer: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Oct 2025 22:55:36 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mason Freed <mas...@chromium.org>
satisfied_requirement
open
diffy

Blink W3C Test Autoroller (Gerrit)

unread,
Oct 30, 2025, 7:01:53 PM (7 days ago) Oct 30
to Kurt Catti-Schmidt, Mason Freed, Kouhei Ueno, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
Attention needed from Kouhei Ueno

Message from Blink W3C Test Autoroller

Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/55779.

When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

WPT Export docs:
https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

Open in Gerrit

Related details

Attention is currently required from:
  • Kouhei Ueno
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: If50701981f7eaa138fff7d9ca799431c3303fa72
Gerrit-Change-Number: 7093679
Gerrit-PatchSet: 11
Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
Gerrit-Reviewer: Kurt Catti-Schmidt <ksc...@microsoft.com>
Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Oct 2025 23:01:44 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
open
diffy

Kouhei Ueno (Gerrit)

unread,
Oct 30, 2025, 11:46:40 PM (6 days ago) Oct 30
to Kurt Catti-Schmidt, Blink W3C Test Autoroller, Mason Freed, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
Attention needed from Kurt Catti-Schmidt

Kouhei Ueno added 3 comments

Patchset-level comments
Mason Freed . resolved

This seems ok to me (if a little worrying) so I'll mark it +1. But it'd be good to wait for Kouhei to also +1 it.

Kurt Catti-Schmidt

Thanks - yeah this is not great long-term, but it's basically broken right now so I appreciate the un-blocking.

FYI I initially had a different approach that used a FileReader and manually inserted the entry into the module map (instead of a sync fetch), but went with this because it's much simpler - see iteration 2: https://chromium-review.googlesource.com/c/chromium/src/+/7093679/2

I'll definitely wait for @kou...@chromium.org's input before landing, and I'm open to any better ways to accomplish this!

Kouhei Ueno

Thanks for cc-ing. I'd say using data/blob url for this is very high overhead, so I wouldn't recommend this design in the long run. I'm ok with landing as long as this is well documented + made exceptional only for this use-case.

File third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
Line 220, Patchset 11 (Latest): if (module_request.Options().GetSync()) {
Kouhei Ueno . unresolved

Would it be possible to centralize all the change here? I don't follow why plumbing through ScriptFetchOptions are necessary.

can we peek at ModuleScriptFetchRequest and see if that's a CSS module that we are loading from blob/data url to trigger this?

Line 224, Patchset 11 (Latest): // Declarative CSS Modules perform a one-time synchronous fetch for
Kouhei Ueno . unresolved

Would you add more context why we need to perform a synchronous fetch?

Open in Gerrit

Related details

Attention is currently required from:
  • Kurt Catti-Schmidt
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: If50701981f7eaa138fff7d9ca799431c3303fa72
    Gerrit-Change-Number: 7093679
    Gerrit-PatchSet: 11
    Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Kurt Catti-Schmidt <ksc...@microsoft.com>
    Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
    Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Attention: Kurt Catti-Schmidt <ksc...@microsoft.com>
    Gerrit-Comment-Date: Fri, 31 Oct 2025 03:46:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Mason Freed <mas...@chromium.org>
    Comment-In-Reply-To: Kurt Catti-Schmidt <ksc...@microsoft.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Kurt Catti-Schmidt (Gerrit)

    unread,
    Oct 31, 2025, 1:18:17 PM (6 days ago) Oct 31
    to Blink W3C Test Autoroller, Mason Freed, Kouhei Ueno, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
    Attention needed from Kouhei Ueno

    Kurt Catti-Schmidt voted and added 2 comments

    Votes added by Kurt Catti-Schmidt

    Commit-Queue+1

    2 comments

    File third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
    Line 220, Patchset 11: if (module_request.Options().GetSync()) {
    Kouhei Ueno . unresolved

    Would it be possible to centralize all the change here? I don't follow why plumbing through ScriptFetchOptions are necessary.

    can we peek at ModuleScriptFetchRequest and see if that's a CSS module that we are loading from blob/data url to trigger this?

    Kurt Catti-Schmidt

    I added the `SetSync` and `GetSync` because it's possible to create an imperative CSS module today and use a blob URL or dataURI, and I only want to change the behavior for the new declarative version.

    e.g. https://codepen.io/Kurt-Catti-Schmidt/pen/vELVLoE for Blob and https://codepen.io/Kurt-Catti-Schmidt/pen/KwVGVJX for dataURI.

    An alternative is to add a declarative/imperative flag, and change behaviors here based on that, but I think sync terminology makes the intent clearer, and I don't intend to add more differences between the imperative and declarative versions. Or I can change the behavior of the existing imperative version, but that doesn't feel like a safe change to make. What do you think?

    Line 224, Patchset 11: // Declarative CSS Modules perform a one-time synchronous fetch for
    Kouhei Ueno . resolved

    Would you add more context why we need to perform a synchronous fetch?

    Kurt Catti-Schmidt

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Kouhei Ueno
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: If50701981f7eaa138fff7d9ca799431c3303fa72
      Gerrit-Change-Number: 7093679
      Gerrit-PatchSet: 12
      Gerrit-Owner: Kurt Catti-Schmidt <ksc...@microsoft.com>
      Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
      Gerrit-Reviewer: Kurt Catti-Schmidt <ksc...@microsoft.com>
      Gerrit-Reviewer: Mason Freed <mas...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Nate Chapin <jap...@chromium.org>
      Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
      Gerrit-Comment-Date: Fri, 31 Oct 2025 17:18:06 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Kouhei Ueno <kou...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kurt Catti-Schmidt (Gerrit)

      unread,
      Nov 3, 2025, 12:43:28 PM (3 days ago) Nov 3
      to Blink W3C Test Autoroller, Mason Freed, Kouhei Ueno, Nate Chapin, Chromium LUCI CQ, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-revie...@chromium.org, gavinp...@chromium.org, loading...@chromium.org, hiroshig...@chromium.org, kinuko...@chromium.org, kouhei...@chromium.org, dom+...@chromium.org, loading-re...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, kinuko+...@chromium.org
      Attention needed from Kouhei Ueno

      Kurt Catti-Schmidt added 1 comment

      File third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
      Line 220, Patchset 11: if (module_request.Options().GetSync()) {
      Kouhei Ueno . unresolved

      Would it be possible to centralize all the change here? I don't follow why plumbing through ScriptFetchOptions are necessary.

      can we peek at ModuleScriptFetchRequest and see if that's a CSS module that we are loading from blob/data url to trigger this?

      Kurt Catti-Schmidt

      I added the `SetSync` and `GetSync` because it's possible to create an imperative CSS module today and use a blob URL or dataURI, and I only want to change the behavior for the new declarative version.

      e.g. https://codepen.io/Kurt-Catti-Schmidt/pen/vELVLoE for Blob and https://codepen.io/Kurt-Catti-Schmidt/pen/KwVGVJX for dataURI.

      An alternative is to add a declarative/imperative flag, and change behaviors here based on that, but I think sync terminology makes the intent clearer, and I don't intend to add more differences between the imperative and declarative versions. Or I can change the behavior of the existing imperative version, but that doesn't feel like a safe change to make. What do you think?

      Kurt Catti-Schmidt

      Also, what do you think of this earlier version that kept a map of Blob URL's and then used a FileReader instead? https://chromium-review.googlesource.com/c/chromium/src/+/7093679/2

      Gerrit-Comment-Date: Mon, 03 Nov 2025 17:43:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Kurt Catti-Schmidt <ksc...@microsoft.com>
      Comment-In-Reply-To: Kouhei Ueno <kou...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages