[WebCrypto] Add WebCryptoAPI WPT for CryptoKey serialization [chromium/src : main]

0 views
Skip to first unread message

David Benjamin (Gerrit)

unread,
May 13, 2026, 11:07:32 PM (5 days ago) May 13
to Hubert Chao, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Hubert Chao

David Benjamin added 12 comments

Commit Message
Line 15, Patchset 2 (Latest):Posting messages was simpler.)
David Benjamin . unresolved

localStorage? Seems you could do...

```
let key = await ...;
// Save the key in localStorage.
localStorage.key = key;
// Get it back out of localStorage.
let key2 = localStorage.key;
// Check that key and key2 are the same.
...
```

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/resources/post-page.html
Line 9, Patchset 2 (Latest): opener.postMessage("loaded");
David Benjamin . unresolved

Nit: Extra indent here

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
Line 1, Patchset 2 (Latest):function run_test(algorithmNames, slowTest) {
David Benjamin . unresolved

Unused parameter?

Line 171, Patchset 2 (Latest): function testCryptoKeySerialization(
David Benjamin . unresolved

Is this really a serialization test, or a `postMessage` test? I mean Chrome uses the same machinery for both anyway.

Line 182, Patchset 2 (Latest): const promise =
David Benjamin . unresolved

Similar comments as below regarding a mix of `await` and `then`.

Line 185, Patchset 2 (Latest): window.addEventListener('message', resolve, {once: true});
David Benjamin . unresolved

Do you actually need the popup to send you a `postMessage`? Does it work to just wait for the 'load' event on the popup?

Line 218, Patchset 2 (Latest): const promise =
David Benjamin . unresolved

Instead of a mix of `await` and `then`, why not just write this as:

```
function waitForEvent(obj, ev) {
return new Promise((resolve) => {
obj.addEventListener(ev, resolve, {once: true});
});
}
```

And then...

```
// Wait for the popup to load.
await waitForEvent(window, 'message');
// Pass keys through the popup and back.
popup.postMessage(...);
let evt = await waitForEvent(window, 'message');
const newPublicKeyExported = await crypto.subtle.exportKey(
publicExportFormat, evt.data.publicKey);
...
```

(Don't even need the helper function. You could just write `await new Promise(...)`, but since this is happening a few times here...)

Line 220, Patchset 2 (Latest): // Wait for window to load
David Benjamin . unresolved

(Ditto.)

Line 242, Patchset 2 (Latest): t.done();
David Benjamin . unresolved

(Ditto)

Line 249, Patchset 2 (Latest): if (algorithmNames && !Array.isArray(algorithmNames)) {
David Benjamin . unresolved

Is this ever called with all algorithms? It seems you've split each one into its own test anyway.

Given that, just to reduce the number of files that have to be touched when we add a new algorith, why not just make `run_test` take `testVectors` as input and then, e.g., the ML-DSA-specific bits can live in the ML-DSA file.

(Or is this the pattern that WebCrypto prefers? It's a somewhat confusing pattern.)

Line 260, Patchset 2 (Latest): var generateKeyAlgorithm = allAlgorithmSpecifiersFor(vector.name)[0];
David Benjamin . unresolved

Is it worth iterating over these? Maybe we have a bug that only applies to some key sizes and not others.

Open in Gerrit

Related details

Attention is currently required from:
  • Hubert Chao
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not 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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
Gerrit-Change-Number: 7842729
Gerrit-PatchSet: 2
Gerrit-Owner: Hubert Chao <hc...@chromium.org>
Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
Gerrit-Attention: Hubert Chao <hc...@chromium.org>
Gerrit-Comment-Date: Thu, 14 May 2026 03:07:23 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Hubert Chao (Gerrit)

unread,
May 14, 2026, 2:41:57 PM (5 days ago) May 14
to Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, David Benjamin, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from David Benjamin

Hubert Chao added 12 comments

Commit Message
Line 15, Patchset 2:Posting messages was simpler.)
David Benjamin . resolved

localStorage? Seems you could do...

```
let key = await ...;
// Save the key in localStorage.
localStorage.key = key;
// Get it back out of localStorage.
let key2 = localStorage.key;
// Check that key and key2 are the same.
...
```

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/resources/post-page.html
Line 9, Patchset 2: opener.postMessage("loaded");
David Benjamin . resolved

Nit: Extra indent here

Hubert Chao

fixed.

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
Line 1, Patchset 2:function run_test(algorithmNames, slowTest) {
David Benjamin . resolved

Unused parameter?

Hubert Chao

oops, removed.

Line 171, Patchset 2: function testCryptoKeySerialization(
David Benjamin . unresolved

Is this really a serialization test, or a `postMessage` test? I mean Chrome uses the same machinery for both anyway.

Hubert Chao

Its a test of serialization but using `postMessage` as that's the easiest way I know of to test serialization. Is there a more direct way of testing this that is also simpler?

Line 182, Patchset 2: const promise =
David Benjamin . resolved

Similar comments as below regarding a mix of `await` and `then`.

Hubert Chao

Acknowledged

Line 185, Patchset 2: window.addEventListener('message', resolve, {once: true});
David Benjamin . unresolved

Do you actually need the popup to send you a `postMessage`? Does it work to just wait for the 'load' event on the popup?

Hubert Chao

I tried this without waiting for an event from the popup, race conditions failed me.

What do you mean by `load` event on the popup? Isn't that equivalent to saying

```
window.addEventListener('load', () => opener.postMessage("loaded"), {once: true});
```

in the popup window? is there another way to detect from this side whether the popup has loaded?

Line 198, Patchset 2: t.done();
David Benjamin . resolved
Hubert Chao

removed.

Line 218, Patchset 2: const promise =
David Benjamin . unresolved

Instead of a mix of `await` and `then`, why not just write this as:

```
function waitForEvent(obj, ev) {
return new Promise((resolve) => {
obj.addEventListener(ev, resolve, {once: true});
});
}
```

And then...

```
// Wait for the popup to load.
await waitForEvent(window, 'message');
// Pass keys through the popup and back.
popup.postMessage(...);
let evt = await waitForEvent(window, 'message');
const newPublicKeyExported = await crypto.subtle.exportKey(
publicExportFormat, evt.data.publicKey);
...
```

(Don't even need the helper function. You could just write `await new Promise(...)`, but since this is happening a few times here...)

Hubert Chao

done.

though I'm not sure I understand why these tests work now without returning a promise? (I think this needs to stay a promise test because `test()` would mean synchronous (which doesn't work with `await`) and we don't want `async_test` because of the event listeners on the window.

(i still don't fully grok promises in JS)

Line 220, Patchset 2: // Wait for window to load
David Benjamin . resolved

(Ditto.)

Hubert Chao

Acknowledged

Line 242, Patchset 2: t.done();
David Benjamin . resolved

(Ditto)

Hubert Chao

Acknowledged

Line 249, Patchset 2: if (algorithmNames && !Array.isArray(algorithmNames)) {
David Benjamin . unresolved

Is this ever called with all algorithms? It seems you've split each one into its own test anyway.

Given that, just to reduce the number of files that have to be touched when we add a new algorith, why not just make `run_test` take `testVectors` as input and then, e.g., the ML-DSA-specific bits can live in the ML-DSA file.

(Or is this the pattern that WebCrypto prefers? It's a somewhat confusing pattern.)

Hubert Chao

I see this in a few places in WebCryptoAPI WPTs:

https://github.com/web-platform-tests/wpt/blob/master/WebCryptoAPI/generateKey/successes.js

https://github.com/web-platform-tests/wpt/blob/master/WebCryptoAPI/import_export/symmetric_importKey.js

but I also see examples where tests in other files have the vectors in a different file, and have test files grouped by algorithm family (see https://github.com/web-platform-tests/wpt/tree/master/WebCryptoAPI/encrypt_decrypt as an example)

moved to the latter; having the extra vector files seemed a bit overkill though so didn't do that part. lemme know what you think?

Line 260, Patchset 2: var generateKeyAlgorithm = allAlgorithmSpecifiersFor(vector.name)[0];
David Benjamin . unresolved

Is it worth iterating over these? Maybe we have a bug that only applies to some key sizes and not others.

Hubert Chao

how likely is that to happen? I figured it wasn't that likely and was just creating extra busy work so just grabbed the first one; if you think this is worth testing I can iterate over all of them easily enough.

Open in Gerrit

Related details

Attention is currently required from:
  • David Benjamin
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not 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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
Gerrit-Change-Number: 7842729
Gerrit-PatchSet: 4
Gerrit-Owner: Hubert Chao <hc...@chromium.org>
Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
Gerrit-Attention: David Benjamin <davi...@chromium.org>
Gerrit-Comment-Date: Thu, 14 May 2026 18:41:48 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: David Benjamin <davi...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

David Benjamin (Gerrit)

unread,
May 14, 2026, 2:52:06 PM (5 days ago) May 14
to Hubert Chao, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Hubert Chao

David Benjamin added 7 comments

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mlkem.tentative.https.window.js
Line 5, Patchset 4 (Latest):
David Benjamin . unresolved

Nit: stray blank line?

Line 33, Patchset 4 (Latest):
David Benjamin . unresolved

Ditto

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
Line 60, Patchset 4 (Latest): vectors.forEach(async function(vector) {
David Benjamin . unresolved

This function isn't `async`, is it?

Line 171, Patchset 2: function testCryptoKeySerialization(
David Benjamin . resolved

Is this really a serialization test, or a `postMessage` test? I mean Chrome uses the same machinery for both anyway.

Hubert Chao

Its a test of serialization but using `postMessage` as that's the easiest way I know of to test serialization. Is there a more direct way of testing this that is also simpler?

David Benjamin

I thought there was with localStorage, but apparently not so ignore me. 😊

Line 185, Patchset 2: window.addEventListener('message', resolve, {once: true});
David Benjamin . unresolved

Do you actually need the popup to send you a `postMessage`? Does it work to just wait for the 'load' event on the popup?

Hubert Chao

I tried this without waiting for an event from the popup, race conditions failed me.

What do you mean by `load` event on the popup? Isn't that equivalent to saying

```
window.addEventListener('load', () => opener.postMessage("loaded"), {once: true});
```

in the popup window? is there another way to detect from this side whether the popup has loaded?

David Benjamin

I meant that, even without the popup calling `opener.postMessage("loaded")`, the `popup` object already signals the `load` event when it has loaded. Or at least I think it does?

If that's right, you should be able to delete `opener.postMessage("loaded")` and then replace the first `await waitForEvent(window, 'message')` with `await waitForEvent(popup, "load")`.

Line 249, Patchset 2: if (algorithmNames && !Array.isArray(algorithmNames)) {
David Benjamin . resolved

Is this ever called with all algorithms? It seems you've split each one into its own test anyway.

Given that, just to reduce the number of files that have to be touched when we add a new algorith, why not just make `run_test` take `testVectors` as input and then, e.g., the ML-DSA-specific bits can live in the ML-DSA file.

(Or is this the pattern that WebCrypto prefers? It's a somewhat confusing pattern.)

Hubert Chao

I see this in a few places in WebCryptoAPI WPTs:

https://github.com/web-platform-tests/wpt/blob/master/WebCryptoAPI/generateKey/successes.js

https://github.com/web-platform-tests/wpt/blob/master/WebCryptoAPI/import_export/symmetric_importKey.js

but I also see examples where tests in other files have the vectors in a different file, and have test files grouped by algorithm family (see https://github.com/web-platform-tests/wpt/tree/master/WebCryptoAPI/encrypt_decrypt as an example)

moved to the latter; having the extra vector files seemed a bit overkill though so didn't do that part. lemme know what you think?

David Benjamin

Agreed the separate files seems unnecessary.

Line 260, Patchset 2: var generateKeyAlgorithm = allAlgorithmSpecifiersFor(vector.name)[0];
David Benjamin . unresolved

Is it worth iterating over these? Maybe we have a bug that only applies to some key sizes and not others.

Hubert Chao

how likely is that to happen? I figured it wasn't that likely and was just creating extra busy work so just grabbed the first one; if you think this is worth testing I can iterate over all of them easily enough.

David Benjamin

I mean, it costs us nothing and seems prudent? That also avoids us accidentally losing test coverage if, say, the first option on the list is a curve we happen not to implement.

Open in Gerrit

Related details

Attention is currently required from:
  • Hubert Chao
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not 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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
Gerrit-Change-Number: 7842729
Gerrit-PatchSet: 4
Gerrit-Owner: Hubert Chao <hc...@chromium.org>
Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
Gerrit-Attention: Hubert Chao <hc...@chromium.org>
Gerrit-Comment-Date: Thu, 14 May 2026 18:52:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Hubert Chao <hc...@chromium.org>
Comment-In-Reply-To: David Benjamin <davi...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Hubert Chao (Gerrit)

unread,
May 15, 2026, 9:59:27 AM (4 days ago) May 15
to Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, David Benjamin, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from David Benjamin

Hubert Chao added 6 comments

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mlkem.tentative.https.window.js
Line 5, Patchset 4:
David Benjamin . resolved

Nit: stray blank line?

Hubert Chao

Done

Line 33, Patchset 4:
David Benjamin . resolved

Ditto

Hubert Chao

Done

File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
Line 60, Patchset 4: vectors.forEach(async function(vector) {
David Benjamin . resolved

This function isn't `async`, is it?

Hubert Chao

oops leftover from when generateKey was outside of testSerialization

Line 185, Patchset 2: window.addEventListener('message', resolve, {once: true});
David Benjamin . resolved

Do you actually need the popup to send you a `postMessage`? Does it work to just wait for the 'load' event on the popup?

Hubert Chao

I tried this without waiting for an event from the popup, race conditions failed me.

What do you mean by `load` event on the popup? Isn't that equivalent to saying

```
window.addEventListener('load', () => opener.postMessage("loaded"), {once: true});
```

in the popup window? is there another way to detect from this side whether the popup has loaded?

David Benjamin

I meant that, even without the popup calling `opener.postMessage("loaded")`, the `popup` object already signals the `load` event when it has loaded. Or at least I think it does?

If that's right, you should be able to delete `opener.postMessage("loaded")` and then replace the first `await waitForEvent(window, 'message')` with `await waitForEvent(popup, "load")`.

Hubert Chao

oh i didn't think to register the listener from the main window.

yep that works.

Line 218, Patchset 2: const promise =
David Benjamin . resolved

Instead of a mix of `await` and `then`, why not just write this as:

```
function waitForEvent(obj, ev) {
return new Promise((resolve) => {
obj.addEventListener(ev, resolve, {once: true});
});
}
```

And then...

```
// Wait for the popup to load.
await waitForEvent(window, 'message');
// Pass keys through the popup and back.
popup.postMessage(...);
let evt = await waitForEvent(window, 'message');
const newPublicKeyExported = await crypto.subtle.exportKey(
publicExportFormat, evt.data.publicKey);
...
```

(Don't even need the helper function. You could just write `await new Promise(...)`, but since this is happening a few times here...)

Hubert Chao

done.

though I'm not sure I understand why these tests work now without returning a promise? (I think this needs to stay a promise test because `test()` would mean synchronous (which doesn't work with `await`) and we don't want `async_test` because of the event listeners on the window.

(i still don't fully grok promises in JS)

Hubert Chao

Acknowledged

Line 260, Patchset 2: var generateKeyAlgorithm = allAlgorithmSpecifiersFor(vector.name)[0];
David Benjamin . resolved

Is it worth iterating over these? Maybe we have a bug that only applies to some key sizes and not others.

Hubert Chao

how likely is that to happen? I figured it wasn't that likely and was just creating extra busy work so just grabbed the first one; if you think this is worth testing I can iterate over all of them easily enough.

David Benjamin

I mean, it costs us nothing and seems prudent? That also avoids us accidentally losing test coverage if, say, the first option on the list is a curve we happen not to implement.

Hubert Chao
 That also avoids us accidentally losing test coverage if, say, the first option on the list is a curve we happen not to implement.

That's a fair point. Done.

Open in Gerrit

Related details

Attention is currently required from:
  • David Benjamin
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • 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: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
    Gerrit-Change-Number: 7842729
    Gerrit-PatchSet: 6
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: David Benjamin <davi...@chromium.org>
    Gerrit-Comment-Date: Fri, 15 May 2026 13:59:16 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: David Benjamin <davi...@chromium.org>
    Comment-In-Reply-To: Hubert Chao <hc...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    May 15, 2026, 10:01:24 AM (4 days ago) May 15
    to Daniel Cheng, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, David Benjamin, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
    Attention needed from David Benjamin

    Hubert Chao added 1 comment

    Patchset-level comments
    File-level comment, Patchset 6 (Latest):
    Hubert Chao . resolved

    @dch...@chromium.org for third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc

    (note, change in that file only prevents the `DCHECK` from crashing chrome when we try to serialize ML-KEM/ML-DSA keys. actual fix to make the serialization work is in crrev.com/c/7846315)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Benjamin
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • 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: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
    Gerrit-Change-Number: 7842729
    Gerrit-PatchSet: 6
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-Attention: David Benjamin <davi...@chromium.org>
    Gerrit-Comment-Date: Fri, 15 May 2026 14:01:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Benjamin (Gerrit)

    unread,
    May 15, 2026, 3:36:11 PM (4 days ago) May 15
    to Hubert Chao, Daniel Cheng, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
    Attention needed from Hubert Chao

    David Benjamin voted and added 1 comment

    Votes added by David Benjamin

    Code-Review+1

    1 comment

    File third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
    Line 218, Patchset 2: const promise =
    David Benjamin . resolved

    Instead of a mix of `await` and `then`, why not just write this as:

    ```
    function waitForEvent(obj, ev) {
    return new Promise((resolve) => {
    obj.addEventListener(ev, resolve, {once: true});
    });
    }
    ```

    And then...

    ```
    // Wait for the popup to load.
    await waitForEvent(window, 'message');
    // Pass keys through the popup and back.
    popup.postMessage(...);
    let evt = await waitForEvent(window, 'message');
    const newPublicKeyExported = await crypto.subtle.exportKey(
    publicExportFormat, evt.data.publicKey);
    ...
    ```

    (Don't even need the helper function. You could just write `await new Promise(...)`, but since this is happening a few times here...)

    Hubert Chao

    done.

    though I'm not sure I understand why these tests work now without returning a promise? (I think this needs to stay a promise test because `test()` would mean synchronous (which doesn't work with `await`) and we don't want `async_test` because of the event listeners on the window.

    (i still don't fully grok promises in JS)

    Hubert Chao

    Acknowledged

    David Benjamin

    though I'm not sure I understand why these tests work now without returning a promise?

    Every `async function` returns a promise. `async function` is a (very very involved) syntax sugar for promises, with `await` returning into a `then` call on the promise and all subsequent parts of the function going into the `then` call.

    https://web.dev/articles/async-functions

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hubert Chao
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not 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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 6
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Comment-Date: Fri, 15 May 2026 19:36:02 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      David Benjamin (Gerrit)

      unread,
      May 15, 2026, 4:20:23 PM (4 days ago) May 15
      to Hubert Chao, Daniel Cheng, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Daniel Cheng and Hubert Chao

      David Benjamin added 1 comment

      File third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc
      Line 578, Patchset 6 (Latest): WebCryptoAlgorithm::IsMlKem(algorithm.Id()) ||
      David Benjamin . resolved

      Copying this comment from @hc...@chromium.org from another thread, so it's more visible.

      (note, change in that file only prevents the DCHECK from crashing chrome when we try to serialize ML-KEM/ML-DSA keys. actual fix to make the serialization work is in crrev.com/c/7846315)

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Hubert Chao
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not 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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 6
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Comment-Date: Fri, 15 May 2026 20:20:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Daniel Cheng (Gerrit)

      unread,
      May 16, 2026, 12:02:05 AM (3 days ago) May 16
      to Hubert Chao, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Hubert Chao

      Daniel Cheng voted and added 1 comment

      Votes added by Daniel Cheng

      Code-Review+1

      1 comment

      Patchset-level comments
      Daniel Cheng . resolved

      LGTM

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Hubert Chao
      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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 6
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Comment-Date: Sat, 16 May 2026 04:01:54 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Blink W3C Test Autoroller (Gerrit)

      unread,
      May 16, 2026, 12:11:09 AM (3 days ago) May 16
      to Hubert Chao, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Hubert Chao

      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/59924.

      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:
      • Hubert Chao
      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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 6
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Comment-Date: Sat, 16 May 2026 04:10:57 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Omar khattab (Al khattab) (Gerrit)

      unread,
      May 16, 2026, 12:55:01 AM (3 days ago) May 16
      to Hubert Chao, Blink W3C Test Autoroller, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Hubert Chao

      Omar khattab (Al khattab) added 1 comment

      Patchset-level comments
      Omar khattab (Al khattab) . resolved

      nice

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Hubert Chao
      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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 6
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Omar khattab (Al khattab) <alkhattabo...@gmail.com>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Comment-Date: Sat, 16 May 2026 04:54:25 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      May 16, 2026, 7:34:28 PM (2 days ago) May 16
      to Hubert Chao, Omar khattab (Al khattab), Blink W3C Test Autoroller, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

      Chromium LUCI CQ submitted the change

      Change information

      Commit message:
      [WebCrypto] Add WebCryptoAPI WPT for CryptoKey serialization

      We added ML-DSA and ML-KEM with broken CryptoKey serialization, but
      this wasn't exposed because there was no WPT test for it. Add a WPT test
      for serialization by roundtripping a message with a CryptoKey and
      comparing the exportKey results.

      (The other main way to do CryptoKey serialization is to use an IndexedDB.
      Posting messages was simpler.)
      Bug: 512509718
      Change-Id: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Reviewed-by: Daniel Cheng <dch...@chromium.org>
      Reviewed-by: David Benjamin <davi...@chromium.org>
      Commit-Queue: Hubert Chao <hc...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#1631811}
      Files:
      • M third_party/blink/renderer/bindings/modules/v8/serialization/v8_script_value_serializer_for_modules.cc
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-cbc.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-cbc.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-ctr.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-ctr.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-gcm.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-gcm.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-kw.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-kw.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-ocb.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/aes-ocb.tentative.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/chacha20-poly1305.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/chacha20-poly1305.tentative.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/ecdh.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/ecdsa.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/ed25519.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/ed448.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/ed448.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/hmac.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/kmac.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/kmac.tentative.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mldsa.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mldsa.tentative.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mlkem.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/mlkem.tentative.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/resources/post-page.html
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/rsa-oaep.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/rsa-pss.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/rsassa-pkcs1-v1_5.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/serialization.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/x25519.https.window.js
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/x448.https.window-expected.txt
      • A third_party/blink/web_tests/external/wpt/WebCryptoAPI/serialization/x448.https.window.js
      • A third_party/blink/web_tests/virtual/webcrypto-pqc/external/wpt/WebCryptoAPI/serialization/chacha20-poly1305.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/virtual/webcrypto-pqc/external/wpt/WebCryptoAPI/serialization/mldsa.tentative.https.window-expected.txt
      • A third_party/blink/web_tests/virtual/webcrypto-pqc/external/wpt/WebCryptoAPI/serialization/mlkem.tentative.https.window-expected.txt
      Change size: L
      Delta: 36 files changed, 478 insertions(+), 0 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Daniel Cheng, +1 by David Benjamin
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 7
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      open
      diffy
      satisfied_requirement

      Omar khattab (Al khattab) (Gerrit)

      unread,
      May 16, 2026, 7:43:24 PM (2 days ago) May 16
      to Chromium LUCI CQ, Hubert Chao, Omar khattab (Al khattab), Blink W3C Test Autoroller, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Daniel Cheng, David Benjamin, Hubert Chao, Kentaro Hara, Omar khattab (Al khattab) and Raphael Kubo da Costa

      Omar khattab (Al khattab) added 1 comment

      Omar khattab (Al khattab) . resolved

      ت

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • David Benjamin
      • Hubert Chao
      • Kentaro Hara
      • Omar khattab (Al khattab)
      • Raphael Kubo da Costa
      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: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 7
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Omar khattab (Al khattab) <alkhattabo...@gmail.com>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Omar khattab (Al khattab) <alkhattabo...@gmail.com>
      Gerrit-Attention: David Benjamin <davi...@chromium.org>
      Gerrit-Attention: Hubert Chao <hc...@chromium.org>
      Gerrit-Attention: Kentaro Hara <har...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Comment-Date: Sat, 16 May 2026 23:42:46 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Blink W3C Test Autoroller (Gerrit)

      unread,
      May 16, 2026, 10:52:30 PM (2 days ago) May 16
      to Chromium LUCI CQ, Hubert Chao, Omar khattab (Al khattab), Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Daniel Cheng, David Benjamin, Hubert Chao, Kentaro Hara, Omar khattab (Al khattab) and Raphael Kubo da Costa

      Message from Blink W3C Test Autoroller

      The WPT PR for this CL has been merged upstream! https://github.com/web-platform-tests/wpt/pull/59924

      Gerrit-Comment-Date: Sun, 17 May 2026 02:52:20 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Hubert Chao (Gerrit)

      unread,
      May 18, 2026, 10:58:51 AM (18 hours ago) May 18
      to Chromium LUCI CQ, Blink W3C Test Autoroller, Daniel Cheng, David Benjamin, Raphael Kubo da Costa, Kentaro Hara, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, blink-revie...@chromium.org, jbroma...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Daniel Cheng, David Benjamin, Hubert Chao, Kentaro Hara and Raphael Kubo da Costa

      Hubert Chao removed Omar khattab (Al khattab) from this change

      Deleted Reviewers:
      • Omar khattab (Al khattab)
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • David Benjamin
      • Hubert Chao
      • Kentaro Hara
      • Raphael Kubo da Costa
      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: deleteReviewer
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I7499ec3a05b6b9e72f22c00e0815f4f847027fe3
      Gerrit-Change-Number: 7842729
      Gerrit-PatchSet: 7
      Gerrit-Owner: Hubert Chao <hc...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Benjamin <davi...@chromium.org>
      Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
      Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-Attention: Raphael Kubo da Costa <ku...@igalia.com>
      satisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages