[Built-In AI APIs] Enable AI Origin Trial APIs in DevTools. [chromium/src : main]

0 views
Skip to first unread message

Isaac Ahouma (Gerrit)

unread,
Dec 10, 2025, 11:16:11 AM (10 days ago) Dec 10
to Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Mike Wasserman

Isaac Ahouma added 1 comment

File chrome/browser/devtools/features.cc
Line 223, Patchset 19:BASE_FEATURE(kDevToolsAiOriginTrialsApis, base::FEATURE_DISABLED_BY_DEFAULT);
Etienne Noël . unresolved

Why is the `kDevToolsAiOriginTrialsApis` here in devtools required? (For our end state, we don't want the developers to have to go to devtools, turn on a flag to enable this behaviour). Is it just because we are flag guarding this? If yes, should we make it true?

Isaac Ahouma

There are a couple of reasons why I think the flag is required:
1. To control when the OT APIs are enabled. From what I understood, we only want to enable them for some origins but not all.
2. Testability. Using a base::Feature flag allows us to easily control the enablement state in browser tests (devtools_browsertest.cc) using base::test::ScopedFeatureList. This enables us to write tests that verify if APIs are present in the DevTools JavaScript context when the flag is on and absent when it's off.
3. IIUC third_party/blink/renderer/core/exported/web_view_impl.cc is used by all renderer processes,not just the DevTools renderer. So if the web preference is not guarder by a flag, then our change in web_view_impl.cc would enable the OT APIs in all renderers, not just DevTools (since in chrome/browser/chrome_content_browser_client.cc we would always set the preference to true).

```Is it just because we are flag guarding this? If yes, should we make it true?```

This relate to 3. above, if we make this true by default then I think the OT APIs will be enabled for all renderers by default. (If my understanding of web_view_impl.cc and chrome_content_browser_client.cc is correct)

Etienne Noël

Thank you for the thorough investigation. So our goal, is for a Chrome Extension that creates a DevTools Panel (or any DevTools features), to have the OT enabled for them automatically. It was my understanding that the check on `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {` was ensuring that only renderers in DevTools would return `true` to this. Am I misunderstanding this?

Having developers to manually enable a flag in DevTools defeats the purpose of this CL since devs can already turn on the Chrome Feature Flag. The goal is to avoid having them do that. Not sure if the purpose or intent is clear, let me know.

Isaac Ahouma

Yes, you are right regarding your understanding of `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {`. I didn't understand that we wanted to make the APIs available in all devtools schemes by default, hence why the flight was required.

I have removed the flag and updated the tests accordingly. I have tested locally but need for online tryjobs to finish to confirm everything is working.

One caveat with this approach is that we are unable to add browser tests to verify when the APIs should be disabled.

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Mike Wasserman
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 22
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 16:15:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Etienne Noël <etien...@chromium.org>
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Etienne Noël (Gerrit)

unread,
Dec 10, 2025, 11:20:42 AM (10 days ago) Dec 10
to Isaac Ahouma, Mike Wasserman, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Isaac Ahouma and Mike Wasserman

Etienne Noël added 1 comment

File chrome/browser/devtools/features.cc
Line 223, Patchset 19:BASE_FEATURE(kDevToolsAiOriginTrialsApis, base::FEATURE_DISABLED_BY_DEFAULT);
Etienne Noël . unresolved

Why is the `kDevToolsAiOriginTrialsApis` here in devtools required? (For our end state, we don't want the developers to have to go to devtools, turn on a flag to enable this behaviour). Is it just because we are flag guarding this? If yes, should we make it true?

Isaac Ahouma

There are a couple of reasons why I think the flag is required:
1. To control when the OT APIs are enabled. From what I understood, we only want to enable them for some origins but not all.
2. Testability. Using a base::Feature flag allows us to easily control the enablement state in browser tests (devtools_browsertest.cc) using base::test::ScopedFeatureList. This enables us to write tests that verify if APIs are present in the DevTools JavaScript context when the flag is on and absent when it's off.
3. IIUC third_party/blink/renderer/core/exported/web_view_impl.cc is used by all renderer processes,not just the DevTools renderer. So if the web preference is not guarder by a flag, then our change in web_view_impl.cc would enable the OT APIs in all renderers, not just DevTools (since in chrome/browser/chrome_content_browser_client.cc we would always set the preference to true).

```Is it just because we are flag guarding this? If yes, should we make it true?```

This relate to 3. above, if we make this true by default then I think the OT APIs will be enabled for all renderers by default. (If my understanding of web_view_impl.cc and chrome_content_browser_client.cc is correct)

Etienne Noël

Thank you for the thorough investigation. So our goal, is for a Chrome Extension that creates a DevTools Panel (or any DevTools features), to have the OT enabled for them automatically. It was my understanding that the check on `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {` was ensuring that only renderers in DevTools would return `true` to this. Am I misunderstanding this?

Having developers to manually enable a flag in DevTools defeats the purpose of this CL since devs can already turn on the Chrome Feature Flag. The goal is to avoid having them do that. Not sure if the purpose or intent is clear, let me know.

Isaac Ahouma

Yes, you are right regarding your understanding of `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {`. I didn't understand that we wanted to make the APIs available in all devtools schemes by default, hence why the flight was required.

I have removed the flag and updated the tests accordingly. I have tested locally but need for online tryjobs to finish to confirm everything is working.

One caveat with this approach is that we are unable to add browser tests to verify when the APIs should be disabled.

Etienne Noël

Ok thank you. I think this looks good but need people with better understanding of the code to review.

Why can't we add browser test to check that the API is disabled? Do you mean we can test that it's disabled inside `devtools` schemes?

Do we already ahve a test that checks that without an OT token, the APIs are disabled (in non `devtools` schemes)?

Open in Gerrit

Related details

Attention is currently required from:
  • Isaac Ahouma
  • Mike Wasserman
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 22
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 16:20:31 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
Comment-In-Reply-To: Etienne Noël <etien...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 10, 2025, 12:10:32 PM (10 days ago) Dec 10
to Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Mike Wasserman

Isaac Ahouma added 1 comment

File chrome/browser/devtools/features.cc
Line 223, Patchset 19:BASE_FEATURE(kDevToolsAiOriginTrialsApis, base::FEATURE_DISABLED_BY_DEFAULT);
Etienne Noël . unresolved

Why is the `kDevToolsAiOriginTrialsApis` here in devtools required? (For our end state, we don't want the developers to have to go to devtools, turn on a flag to enable this behaviour). Is it just because we are flag guarding this? If yes, should we make it true?

Isaac Ahouma

There are a couple of reasons why I think the flag is required:
1. To control when the OT APIs are enabled. From what I understood, we only want to enable them for some origins but not all.
2. Testability. Using a base::Feature flag allows us to easily control the enablement state in browser tests (devtools_browsertest.cc) using base::test::ScopedFeatureList. This enables us to write tests that verify if APIs are present in the DevTools JavaScript context when the flag is on and absent when it's off.
3. IIUC third_party/blink/renderer/core/exported/web_view_impl.cc is used by all renderer processes,not just the DevTools renderer. So if the web preference is not guarder by a flag, then our change in web_view_impl.cc would enable the OT APIs in all renderers, not just DevTools (since in chrome/browser/chrome_content_browser_client.cc we would always set the preference to true).

```Is it just because we are flag guarding this? If yes, should we make it true?```

This relate to 3. above, if we make this true by default then I think the OT APIs will be enabled for all renderers by default. (If my understanding of web_view_impl.cc and chrome_content_browser_client.cc is correct)

Etienne Noël

Thank you for the thorough investigation. So our goal, is for a Chrome Extension that creates a DevTools Panel (or any DevTools features), to have the OT enabled for them automatically. It was my understanding that the check on `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {` was ensuring that only renderers in DevTools would return `true` to this. Am I misunderstanding this?

Having developers to manually enable a flag in DevTools defeats the purpose of this CL since devs can already turn on the Chrome Feature Flag. The goal is to avoid having them do that. Not sure if the purpose or intent is clear, let me know.

Isaac Ahouma

Yes, you are right regarding your understanding of `if (web_contents->GetVisibleURL().SchemeIs(content::kChromeDevToolsScheme)) {`. I didn't understand that we wanted to make the APIs available in all devtools schemes by default, hence why the flight was required.

I have removed the flag and updated the tests accordingly. I have tested locally but need for online tryjobs to finish to confirm everything is working.

One caveat with this approach is that we are unable to add browser tests to verify when the APIs should be disabled.

Etienne Noël

Ok thank you. I think this looks good but need people with better understanding of the code to review.

Why can't we add browser test to check that the API is disabled? Do you mean we can test that it's disabled inside `devtools` schemes?

Do we already ahve a test that checks that without an OT token, the APIs are disabled (in non `devtools` schemes)?

Isaac Ahouma

Yes, I meant that with this approach its impossible to test that the APIs are disabled inside `devtools` and that's actually not necessary, since they should never be disabled. Our current test validates that the APIs are always enabled within `devtools`. (I was just reflecting on other tests as I usually like to cover all possible cases for testing, but this is really not relevant here and I shouldn't have mentioned that in my previous comment).

I would think we have tests for non-devtools. I know of our web platform tests and some of them should cover this, but I don't know enough to confirm. @m...@chromium.org Do you agree?

FWIW, this cl does not change the behavior of OT APIs in non-devtools renderers, so that behavior shouldn't be tested in this CL if it's not already done.

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Mike Wasserman
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 22
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 17:10:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 10, 2025, 3:51:56 PM (10 days ago) Dec 10
to Isaac Ahouma, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Isaac Ahouma

Mike Wasserman added 9 comments

Commit Message
Line 11, Patchset 22 (Latest):several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

File chrome/browser/chrome_content_browser_client.cc
Line 4757, Patchset 22 (Latest): if (base::FeatureList::IsEnabled(::features::kDevToolsAiPromptApi)) {
web_prefs->ai_prompt_api_enabled = true;
}
web_prefs->ai_ot_apis_enabled = true;
Mike Wasserman . unresolved
If devtools folks are okay with the overall plan, I'd suggest:
- Remove ai_prompt_api_enabled and its flag, since the new pref is a superset
- Add an enabled-by-default feature flag for the new pref (as a killswitch)
File chrome/browser/chrome_content_browser_client_unittest.cc
Line 1974, Patchset 22 (Latest): ASSERT_TRUE(site_instance);
Mike Wasserman . unresolved

nit: no need to assert before deref in tests

Line 1983, Patchset 22 (Latest):// Verifies that all AI OT APIs are enabled in DevTools when
// kDevToolsAiPromptApi is enabled.
Mike Wasserman . unresolved

nit: Verifies the web preference is...

Line 2003, Patchset 22 (Latest):// Verifies that the AI OT APIs are enabled in DevTools by default.
Mike Wasserman . unresolved

nit: Verifies the web preference is set true...

Line 2022, Patchset 22 (Latest):// Verifies that the OT APIs are not enabled for non-DevTools schemes.
Mike Wasserman . unresolved

nit: Verifies the web preference is set false...

File chrome/browser/devtools/devtools_browsertest.cc
Line 4461, Patchset 22 (Latest):#include "third_party/blink/public/common/features.h"
Mike Wasserman . unresolved

Move include to top of file

Line 4463, Patchset 22 (Latest):class DevToolsOriginTrialsApisEnabledBrowserTest : public InProcessBrowserTest {
Mike Wasserman . unresolved

nit: replace subclass with `using DevToolsAIBrowserTest = InProcessBrowserTest` and just inline the ScopedFeatureList into the test fixture below.

File third_party/blink/public/mojom/webpreferences/web_preferences.mojom
Line 519, Patchset 22 (Latest): // Enables the origin trial Built-in AI APIs, for use within DevTools.
Mike Wasserman . unresolved

nit: add something about how this also pertains to devtools extension panels (even without OT tokens?).

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Isaac Ahouma
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 22
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 20:51:44 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Etienne Noël (Gerrit)

unread,
Dec 10, 2025, 4:03:22 PM (10 days ago) Dec 10
to Isaac Ahouma, Mike Wasserman, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Isaac Ahouma

Etienne Noël added 1 comment

Commit Message
Line 11, Patchset 22 (Latest):several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Open in Gerrit

Related details

Attention is currently required from:
  • Isaac Ahouma
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 22
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Wed, 10 Dec 2025 21:03:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 10, 2025, 8:27:41 PM (9 days ago) Dec 10
to Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Mike Wasserman

Isaac Ahouma added 9 comments

File chrome/browser/chrome_content_browser_client.cc
Line 4757, Patchset 22: if (base::FeatureList::IsEnabled(::features::kDevToolsAiPromptApi)) {

web_prefs->ai_prompt_api_enabled = true;
}
web_prefs->ai_ot_apis_enabled = true;
Mike Wasserman . unresolved
If devtools folks are okay with the overall plan, I'd suggest:
- Remove ai_prompt_api_enabled and its flag, since the new pref is a superset
- Add an enabled-by-default feature flag for the new pref (as a killswitch)
Isaac Ahouma

I applied the changes you suggested. Once I do get your approval, I will send the cl to the DevTools team so that we can get their opinion.

File chrome/browser/chrome_content_browser_client_unittest.cc
Line 1974, Patchset 22: ASSERT_TRUE(site_instance);
Mike Wasserman . resolved

nit: no need to assert before deref in tests

Isaac Ahouma

Removed.

Line 1983, Patchset 22:// Verifies that all AI OT APIs are enabled in DevTools when
// kDevToolsAiPromptApi is enabled.
Mike Wasserman . resolved

nit: Verifies the web preference is...

Isaac Ahouma

Done

Line 2003, Patchset 22:// Verifies that the AI OT APIs are enabled in DevTools by default.
Mike Wasserman . resolved

nit: Verifies the web preference is set true...

Isaac Ahouma

Done

Line 2022, Patchset 22:// Verifies that the OT APIs are not enabled for non-DevTools schemes.
Mike Wasserman . resolved

nit: Verifies the web preference is set false...

Isaac Ahouma

Done

File chrome/browser/devtools/devtools_browsertest.cc
Line 4461, Patchset 22:#include "third_party/blink/public/common/features.h"
Mike Wasserman . resolved

Move include to top of file

Isaac Ahouma

Done

Line 4463, Patchset 22:class DevToolsOriginTrialsApisEnabledBrowserTest : public InProcessBrowserTest {
Mike Wasserman . resolved

nit: replace subclass with `using DevToolsAIBrowserTest = InProcessBrowserTest` and just inline the ScopedFeatureList into the test fixture below.

Isaac Ahouma

The test crashes because the scoped feature list must be initialized in a fixture's constructor, hence why we need the class.

This is the error log:
```
[616102:616102:1209/182503.868134:FATAL:base/feature_list.cc:141] DCHECK failed: feature_overrides_allowed. FeatureList overrides must happen in the test constructor, before BrowserTestBase::SetUp() has run.
```
https://paste.googleplex.com/6166479475179520

File chrome/browser/devtools/features.cc
Isaac Ahouma

@m...@chromium.org Can you confirm so that I can resolve this thread?

File third_party/blink/public/mojom/webpreferences/web_preferences.mojom
Line 519, Patchset 22: // Enables the origin trial Built-in AI APIs, for use within DevTools.
Mike Wasserman . resolved

nit: add something about how this also pertains to devtools extension panels (even without OT tokens?).

Isaac Ahouma

Done. Although as per Etienne, this doesn't apply to extentions without OT tokens, right?

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Mike Wasserman
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 24
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Comment-Date: Thu, 11 Dec 2025 01:27:28 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 12, 2025, 1:55:02 PM (8 days ago) Dec 12
to Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Mike Wasserman

Isaac Ahouma added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making

APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Gerrit-Comment-Date: Fri, 12 Dec 2025 18:54:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Etienne Noël <etien...@chromium.org>
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 17, 2025, 6:12:09 PM (2 days ago) Dec 17
to Isaac Ahouma, Code Review Nudger, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël and Isaac Ahouma

Mike Wasserman added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Isaac Ahouma
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 24
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Comment-Date: Wed, 17 Dec 2025 23:11:59 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Etienne Noël (Gerrit)

unread,
Dec 17, 2025, 6:26:57 PM (2 days ago) Dec 17
to Isaac Ahouma, Code Review Nudger, Mike Wasserman, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Isaac Ahouma

Etienne Noël added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Mike Wasserman

I think this might be moot given https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7232915

Etienne Noël

No it's necessary on top of. Else we can never activate OT because we never activate OT for devtools scheme, therefore it cannot pass the permission policy. The CL allows Summarizer and other to work since they are GA

Open in Gerrit

Related details

Attention is currently required from:
  • Isaac Ahouma
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 24
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Wed, 17 Dec 2025 23:26:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 18, 2025, 7:59:08 PM (2 days ago) Dec 18
to Danil Somsikov, Code Review Nudger, Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Danil Somsikov, Etienne Noël and Mike Wasserman

Isaac Ahouma added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Mike Wasserman

I think this might be moot given https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7232915

Etienne Noël

No it's necessary on top of. Else we can never activate OT because we never activate OT for devtools scheme, therefore it cannot pass the permission policy. The CL allows Summarizer and other to work since they are GA

Isaac Ahouma

Hi @d...@chromium.org, Elizabeth(esweeney@) mentioned that you might be a good POC on this issue. Can you please advise if this CL would work (or refer us to someone on the Devtools team)? Thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Danil Somsikov
  • Etienne Noël
  • Mike Wasserman
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 24
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Danil Somsikov <d...@chromium.org>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Danil Somsikov <d...@chromium.org>
Gerrit-Comment-Date: Fri, 19 Dec 2025 00:58:49 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Etienne Noël <etien...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Danil Somsikov (Gerrit)

unread,
Dec 19, 2025, 5:09:14 AM (24 hours ago) Dec 19
to Isaac Ahouma, Wolfgang Beyer, Code Review Nudger, Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Etienne Noël, Isaac Ahouma, Mike Wasserman and Wolfgang Beyer

Danil Somsikov added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Mike Wasserman

I think this might be moot given https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7232915

Etienne Noël

No it's necessary on top of. Else we can never activate OT because we never activate OT for devtools scheme, therefore it cannot pass the permission policy. The CL allows Summarizer and other to work since they are GA

Isaac Ahouma

Hi @d...@chromium.org, Elizabeth(esweeney@) mentioned that you might be a good POC on this issue. Can you please advise if this CL would work (or refer us to someone on the Devtools team)? Thanks!

Danil Somsikov

I'd like Wolfgang to take a look when he's back unless this is very urgent.

Open in Gerrit

Related details

Attention is currently required from:
  • Etienne Noël
  • Isaac Ahouma
  • Mike Wasserman
  • Wolfgang Beyer
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: Id21fe76dfafba4e3916c1b7a4479305bf2302d6c
Gerrit-Change-Number: 7238674
Gerrit-PatchSet: 24
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Danil Somsikov <d...@chromium.org>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Reviewer: Wolfgang Beyer <wo...@chromium.org>
Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
Gerrit-CC: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Wolfgang Beyer <wo...@chromium.org>
Gerrit-Comment-Date: Fri, 19 Dec 2025 10:09:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 19, 2025, 6:39:26 AM (22 hours ago) Dec 19
to Wolfgang Beyer, Danil Somsikov, Code Review Nudger, Mike Wasserman, Etienne Noël, AyeAye, Chromium LUCI CQ, devtools...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org
Attention needed from Danil Somsikov, Etienne Noël, Mike Wasserman and Wolfgang Beyer

Isaac Ahouma added 1 comment

Commit Message
Line 11, Patchset 22:several AI-related RuntimeEnabledFeatures are enabled in Blink, making
APIs like Proofreader, Writer, Rewriter, and LanguageModel available
within the DevTools frontend. The existing `ai_prompt_api_enabled`
Mike Wasserman . unresolved

IIUC, this permits extension devtools panels to use the APIs even without an OT token? I would prefer if we could somehow still require OT tokens for extension panels. Otherwise, we're "shipping" these OT APIs to extensions, even though they might change shape or never ship.

Etienne Noël

I can test but I think we still need an OT since the scheme for extension isn't `devtools://`. I think this only enables it for the top level `devtools://` frame who can then propagate the permission policy to the children iframes. I might be wrong though.

Isaac Ahouma

@etien...@chromium.org Were you able to confirm this change wouldn't change anything wrt OTs?

Mike Wasserman

I think this might be moot given https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7232915

Etienne Noël

No it's necessary on top of. Else we can never activate OT because we never activate OT for devtools scheme, therefore it cannot pass the permission policy. The CL allows Summarizer and other to work since they are GA

Isaac Ahouma

Hi @d...@chromium.org, Elizabeth(esweeney@) mentioned that you might be a good POC on this issue. Can you please advise if this CL would work (or refer us to someone on the Devtools team)? Thanks!

Danil Somsikov

I'd like Wolfgang to take a look when he's back unless this is very urgent.

Isaac Ahouma

Ack. Thanks Danil. I think we should be able to wait until @wo...@chromium.org is back from OOO.

Open in Gerrit

Related details

Attention is currently required from:
  • Danil Somsikov
  • Etienne Noël
  • Mike Wasserman
  • Wolfgang Beyer
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Etienne Noël <etien...@chromium.org>
Gerrit-Attention: Wolfgang Beyer <wo...@chromium.org>
Gerrit-Attention: Danil Somsikov <d...@chromium.org>
Gerrit-Comment-Date: Fri, 19 Dec 2025 11:39:06 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
Comment-In-Reply-To: Etienne Noël <etien...@chromium.org>
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
Comment-In-Reply-To: Danil Somsikov <d...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages