[Summarizer API] Remove SummarizerAPI feature flag. [chromium/src : main]

0 views
Skip to first unread message

Mike Wasserman (Gerrit)

unread,
Dec 12, 2025, 7:00:58 PM (7 days ago) Dec 12
to Isaac Ahouma, AyeAye, Chromium LUCI CQ, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Isaac Ahouma

Mike Wasserman added 10 comments

File chrome/browser/ai/ai_on_device_interactive_uitest.cc
Line 116, Patchset 5 (Parent):
// Returns whether the API is enabled by default.
bool IsAPIEnabledByDefault(std::string_view name) {
return name == "Summarizer";
}
Mike Wasserman . unresolved

I'd just keep this and optionally rename it to IsAPIStable or similar?

Line 133, Patchset 5: EXPECT_TRUE(content::ExecJs(tab, base::StringPrintf(kScript, token.data())));
Mike Wasserman . unresolved

was this broken?

Line 150, Patchset 5:
if (!kill_switch_active) {
// Handle standard feature enablement
if (IsAPIFlagEnabled(GetParam())) {
Mike Wasserman . unresolved

The test somewhat intended to capture a config closer to production where users might enable flags while the kill switch is triggered. That's no longer happening with this conditional nesting.

Line 154, Patchset 5: enable_blink_features.push_back("AIPromptAPI");
Mike Wasserman . unresolved

optional nit: consider GetAPIFlags and GetAPIWorkerFlags to parallel GetAPINames?

Line 181, Patchset 5: // Note: "AISummarizationAPI" is not added to kDisableBlinkFeatures
// because it's marked as "stable" and cannot be disabled this way.
Mike Wasserman . unresolved

My understanding is that even APIs with runtime enabled feature entries can still be disabled by a finch killswitch config on their autogenerated base::Feature. Can you help resolve a conclusive answer here?

Line 204, Patchset 5: command_line->AppendSwitchASCII(
switches::kDisableBlinkFeatures,
base::JoinString(disable_blink_features, ","));
Mike Wasserman . unresolved

The featurelist disablement without injecting a commandline flag was meant to match production finch killswitch behavior. Can we retain that pattern, or align even better with an actual finch disablement pattern?

Line 233, Patchset 5: // Stable feature, always exposed to window.
Mike Wasserman . unresolved

As above, I believe a kill switch should take precedence over this.

Line 259, Patchset 5: if (!ExpectExposedToWindow(name)) {
Mike Wasserman . unresolved

I think this should apply to summarizer too? If the feature is disabled, workers also shouldn't have access. This might have been incorrectly changed by removing the `RuntimeEnabled=AISummarizationAPI` idl guard

File services/network/public/cpp/permissions_policy/permissions_policy_features.json5
Line 559, Patchset 5 (Parent): depends_on: ["AISummarizationAPI"],
Mike Wasserman . unresolved

I hope an embedder granting this permissions policy feature to an iframe wouldn't actually enable the API if the blink::Feature::kAISummarizationAPI killswitch were triggered. Maybe we should leave this here? (and restore the one for Language Detector?). We're essentially just trying to remove the chrome://flag entry in these CLs.

File third_party/blink/renderer/modules/ai/summarizer.idl
Line 34, Patchset 5 (Parent): RuntimeEnabled=AISummarizationAPI,
Mike Wasserman . unresolved

As with languagedetection, i think we can keep this so long as the runtime enabled feature entry remains, as a base::Feature killswitch

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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 5
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Sat, 13 Dec 2025 00:00:46 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 16, 2025, 12:21:29 PM (4 days ago) Dec 16
to Mike Wasserman, AyeAye, Chromium LUCI CQ, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Mike Wasserman

Isaac Ahouma added 10 comments

File chrome/browser/ai/ai_on_device_interactive_uitest.cc
Line 116, Patchset 5 (Parent):
// Returns whether the API is enabled by default.
bool IsAPIEnabledByDefault(std::string_view name) {
return name == "Summarizer";
}
Mike Wasserman . resolved

I'd just keep this and optionally rename it to IsAPIStable or similar?

Isaac Ahouma

Done

Line 133, Patchset 5: EXPECT_TRUE(content::ExecJs(tab, base::StringPrintf(kScript, token.data())));
Mike Wasserman . resolved

was this broken?

Isaac Ahouma

No. Reverted this

Line 150, Patchset 5:
if (!kill_switch_active) {
// Handle standard feature enablement
if (IsAPIFlagEnabled(GetParam())) {
Mike Wasserman . resolved

The test somewhat intended to capture a config closer to production where users might enable flags while the kill switch is triggered. That's no longer happening with this conditional nesting.

Isaac Ahouma

Done. I have updated the CL try retaining the original structure as much as possible.

Line 154, Patchset 5: enable_blink_features.push_back("AIPromptAPI");
Mike Wasserman . resolved

optional nit: consider GetAPIFlags and GetAPIWorkerFlags to parallel GetAPINames?

Isaac Ahouma

Done

Line 181, Patchset 5: // Note: "AISummarizationAPI" is not added to kDisableBlinkFeatures
// because it's marked as "stable" and cannot be disabled this way.
Mike Wasserman . unresolved

My understanding is that even APIs with runtime enabled feature entries can still be disabled by a finch killswitch config on their autogenerated base::Feature. Can you help resolve a conclusive answer here?

Isaac Ahouma

Yes, you are correct that runtime enabled features can be [disabled by a Finch killswitch](https://chromium.googlesource.com/chromium/src/third_party/+/HEAD/blink/renderer/platform/RuntimeEnabledFeatures.md).
However, flags that have graduated to stable can not be disabled using a killswitch, which is what I was trying to highlight here. I have also followed up on this in a separate reply to check my understanding on runtime features and feature flags.

Line 204, Patchset 5: command_line->AppendSwitchASCII(
switches::kDisableBlinkFeatures,
base::JoinString(disable_blink_features, ","));
Mike Wasserman . resolved

The featurelist disablement without injecting a commandline flag was meant to match production finch killswitch behavior. Can we retain that pattern, or align even better with an actual finch disablement pattern?

Isaac Ahouma

Removed this.

Line 233, Patchset 5: // Stable feature, always exposed to window.
Mike Wasserman . resolved

As above, I believe a kill switch should take precedence over this.

Isaac Ahouma

I tried moving the kill switch check above this, but [tests failed](https://ci.chromium.org/ui/p/chromium/builders/try/win-rel/1285655/test-results).

It looks like the summarizer API is always ON and can not be disabled via the kill switch. It also seems that there's "an algorithm" that controls the API status in this testing context.

Line 259, Patchset 5: if (!ExpectExposedToWindow(name)) {
Mike Wasserman . resolved

I think this should apply to summarizer too? If the feature is disabled, workers also shouldn't have access. This might have been incorrectly changed by removing the `RuntimeEnabled=AISummarizationAPI` idl guard

Isaac Ahouma

Thanks, you are correct.

File services/network/public/cpp/permissions_policy/permissions_policy_features.json5
Line 559, Patchset 5 (Parent): depends_on: ["AISummarizationAPI"],
Mike Wasserman . unresolved

I hope an embedder granting this permissions policy feature to an iframe wouldn't actually enable the API if the blink::Feature::kAISummarizationAPI killswitch were triggered. Maybe we should leave this here? (and restore the one for Language Detector?). We're essentially just trying to remove the chrome://flag entry in these CLs.

Isaac Ahouma

I am a little confused by this comment. Since I am removing blink::Feature::kAISummarizationAPI in this CL (in chrome/browser/about_flags.cc0, doesn't that mean that the kill switch will not be able to disable that feature as it will always be ON?

File third_party/blink/renderer/modules/ai/summarizer.idl
Line 34, Patchset 5 (Parent): RuntimeEnabled=AISummarizationAPI,
Mike Wasserman . resolved

As with languagedetection, i think we can keep this so long as the runtime enabled feature entry remains, as a base::Feature killswitch

Isaac Ahouma

Done

Open in Gerrit

Related details

Attention is currently required from:
  • 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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 15
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Comment-Date: Tue, 16 Dec 2025 17:21:15 +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 17, 2025, 4:06:55 PM (3 days ago) Dec 17
to Mike Wasserman, AyeAye, Chromium LUCI CQ, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Mike Wasserman

Isaac Ahouma added 1 comment

File services/network/public/cpp/permissions_policy/permissions_policy_features.json5
Line 559, Patchset 5 (Parent): depends_on: ["AISummarizationAPI"],
Mike Wasserman . unresolved

I hope an embedder granting this permissions policy feature to an iframe wouldn't actually enable the API if the blink::Feature::kAISummarizationAPI killswitch were triggered. Maybe we should leave this here? (and restore the one for Language Detector?). We're essentially just trying to remove the chrome://flag entry in these CLs.

Isaac Ahouma

I am a little confused by this comment. Since I am removing blink::Feature::kAISummarizationAPI in this CL (in chrome/browser/about_flags.cc0, doesn't that mean that the kill switch will not be able to disable that feature as it will always be ON?

Isaac Ahouma

I think I got it now. The Blink feature is not the same as a Base feature. We can remove the Blink feature (which is the purpose of this CL)(https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md). However, the base feature is autogenerated at runtime using https://source.corp.google.com/h/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=448-45.
Having the base feature is [required](https://g3doc.corp.google.com/analysis/uma/g3doc/finch/feature-api.md?cl=head) for using the [killswitch](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md#prefer-waterfall-rollout-for-platform-changes). Is my understanding correct?

Open in Gerrit

Related details

Attention is currently required from:
  • 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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 16
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Comment-Date: Wed, 17 Dec 2025 21:06:39 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 17, 2025, 4:26:00 PM (3 days ago) Dec 17
to Isaac Ahouma, AyeAye, Chromium LUCI CQ, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Isaac Ahouma

Mike Wasserman added 1 comment

File chrome/browser/ai/ai_on_device_interactive_uitest.cc
Line 181, Patchset 5: // Note: "AISummarizationAPI" is not added to kDisableBlinkFeatures
// because it's marked as "stable" and cannot be disabled this way.
Mike Wasserman . unresolved

My understanding is that even APIs with runtime enabled feature entries can still be disabled by a finch killswitch config on their autogenerated base::Feature. Can you help resolve a conclusive answer here?

Isaac Ahouma

Yes, you are correct that runtime enabled features can be [disabled by a Finch killswitch](https://chromium.googlesource.com/chromium/src/third_party/+/HEAD/blink/renderer/platform/RuntimeEnabledFeatures.md).
However, flags that have graduated to stable can not be disabled using a killswitch, which is what I was trying to highlight here. I have also followed up on this in a separate reply to check my understanding on runtime features and feature flags.

Mike Wasserman

Thanks for continuing to look into this WRT the runtime enabled feature entry missing the base feature override. I'll wait to hear what you find.

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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 16
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Wed, 17 Dec 2025 21:25:50 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 17, 2025, 4:47:13 PM (3 days ago) Dec 17
to Isaac Ahouma, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Isaac Ahouma

Mike Wasserman added 1 comment

File services/network/public/cpp/permissions_policy/permissions_policy_features.json5
Line 559, Patchset 5 (Parent): depends_on: ["AISummarizationAPI"],
Mike Wasserman . unresolved

I hope an embedder granting this permissions policy feature to an iframe wouldn't actually enable the API if the blink::Feature::kAISummarizationAPI killswitch were triggered. Maybe we should leave this here? (and restore the one for Language Detector?). We're essentially just trying to remove the chrome://flag entry in these CLs.

Isaac Ahouma

I am a little confused by this comment. Since I am removing blink::Feature::kAISummarizationAPI in this CL (in chrome/browser/about_flags.cc0, doesn't that mean that the kill switch will not be able to disable that feature as it will always be ON?

Isaac Ahouma

I think I got it now. The Blink feature is not the same as a Base feature. We can remove the Blink feature (which is the purpose of this CL)(https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md). However, the base feature is autogenerated at runtime using https://source.corp.google.com/h/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=448-45.
Having the base feature is [required](https://g3doc.corp.google.com/analysis/uma/g3doc/finch/feature-api.md?cl=head) for using the [killswitch](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md#prefer-waterfall-rollout-for-platform-changes). Is my understanding correct?

Mike Wasserman

Sorry for the complexity here, my hope is that we're just removing the chrome://flags entry in this CL. We can keep the blink::Feature::kAISummarizationAPI flag autogenerated from the AISummarizationAPI entry in runtime_enabled_features.json5. We should also add the missing `copied_from_base_feature_if: "overridden"` line(s) there to hopefully fix apparent kill switch breakage in this CL (or separately if needed). We can remove the runtime_enabled_features entry sometime in the near future.

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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 17
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Wed, 17 Dec 2025 21:46:58 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 17, 2025, 7:27:50 PM (2 days ago) Dec 17
to Isaac Ahouma, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Isaac Ahouma

Mike Wasserman added 4 comments

File chrome/browser/ai/ai_on_device_interactive_uitest.cc
Line 248, Patchset 21 (Latest): // Stable features, if not enabled via command line, are controlled
// by the kill switch.
if (IsAPIStable(name)) {
return !IsAPIKillSwitchTriggered(GetParam());
}

// Non-stable features, not command-line enabled:
// Kill switch is effective.
if (IsAPIKillSwitchTriggered(GetParam())) {
return false;
}
Mike Wasserman . unresolved

I think this would be clearer as:

```suggestion
// Kill switches can disable any runtime enabled features.
if (IsAPIKillSwitchTriggered(GetParam())) {
return false;
}
  // Stable features are available by default.
if (IsAPIStable(name)) {
return true;
}
```
Line 281, Patchset 21 (Latest): if (IsAPIKillSwitchTriggered(GetParam())) {
Mike Wasserman . unresolved

Perhaps this should take precedence over the two checks above

Line 285, Patchset 21 (Latest): // Default to false other APIs not explicitly enabled for workers
// via command line and not killed by the kill switch.
Mike Wasserman . unresolved
nit:
```suggestion
// APIs are generally not enabled for web workers.
```
File third_party/blink/renderer/platform/runtime_enabled_features.json5
Line 457, Patchset 21 (Latest): base_feature_status: "enabled",
Mike Wasserman . resolved

Thanks for adding these back to restore kill switch support!

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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 21
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Thu, 18 Dec 2025 00:27:39 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Mike Wasserman (Gerrit)

unread,
Dec 17, 2025, 7:38:17 PM (2 days ago) Dec 17
to Isaac Ahouma, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Isaac Ahouma

Mike Wasserman added 1 comment

File chrome/browser/ai/ai_summarizer.cc
Line 111, Patchset 21 (Parent): const base::FeatureParam<std::string> kAISummarizationAPILanguagesEnabled{
Mike Wasserman . unresolved

Let's keep this for now; we might continue using this to develop and test further language expansions.

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: I0377058b6437df74919682870441fbd989d172f8
Gerrit-Change-Number: 7253717
Gerrit-PatchSet: 21
Gerrit-Owner: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Isaac Ahouma <iah...@google.com>
Gerrit-Comment-Date: Thu, 18 Dec 2025 00:38:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Isaac Ahouma (Gerrit)

unread,
Dec 17, 2025, 8:43:48 PM (2 days ago) Dec 17
to Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
Attention needed from Mike Wasserman

Isaac Ahouma added 6 comments

File chrome/browser/ai/ai_on_device_interactive_uitest.cc
Line 181, Patchset 5: // Note: "AISummarizationAPI" is not added to kDisableBlinkFeatures
// because it's marked as "stable" and cannot be disabled this way.
Mike Wasserman . resolved

My understanding is that even APIs with runtime enabled feature entries can still be disabled by a finch killswitch config on their autogenerated base::Feature. Can you help resolve a conclusive answer here?

Isaac Ahouma

Yes, you are correct that runtime enabled features can be [disabled by a Finch killswitch](https://chromium.googlesource.com/chromium/src/third_party/+/HEAD/blink/renderer/platform/RuntimeEnabledFeatures.md).
However, flags that have graduated to stable can not be disabled using a killswitch, which is what I was trying to highlight here. I have also followed up on this in a separate reply to check my understanding on runtime features and feature flags.

Mike Wasserman

Thanks for continuing to look into this WRT the runtime enabled feature entry missing the base feature override. I'll wait to hear what you find.

Isaac Ahouma

Done

Line 248, Patchset 21: // Stable features, if not enabled via command line, are controlled

// by the kill switch.
if (IsAPIStable(name)) {
return !IsAPIKillSwitchTriggered(GetParam());
}

// Non-stable features, not command-line enabled:
// Kill switch is effective.
if (IsAPIKillSwitchTriggered(GetParam())) {
return false;
}
Mike Wasserman . resolved

I think this would be clearer as:

```suggestion
// Kill switches can disable any runtime enabled features.
if (IsAPIKillSwitchTriggered(GetParam())) {
return false;
}
  // Stable features are available by default.
if (IsAPIStable(name)) {
return true;
}
```
Isaac Ahouma

Discussed offline, and this is actually obsolete now. Thanks

Line 281, Patchset 21: if (IsAPIKillSwitchTriggered(GetParam())) {
Mike Wasserman . resolved

Perhaps this should take precedence over the two checks above

Isaac Ahouma

obsolete

Line 285, Patchset 21: // Default to false other APIs not explicitly enabled for workers

// via command line and not killed by the kill switch.
Mike Wasserman . resolved
nit:
```suggestion
// APIs are generally not enabled for web workers.
```
Isaac Ahouma

obsolete

File chrome/browser/ai/ai_summarizer.cc
Line 111, Patchset 21 (Parent): const base::FeatureParam<std::string> kAISummarizationAPILanguagesEnabled{
Mike Wasserman . resolved

Let's keep this for now; we might continue using this to develop and test further language expansions.

Isaac Ahouma

Done

File services/network/public/cpp/permissions_policy/permissions_policy_features.json5
Line 559, Patchset 5 (Parent): depends_on: ["AISummarizationAPI"],
Mike Wasserman . resolved

I hope an embedder granting this permissions policy feature to an iframe wouldn't actually enable the API if the blink::Feature::kAISummarizationAPI killswitch were triggered. Maybe we should leave this here? (and restore the one for Language Detector?). We're essentially just trying to remove the chrome://flag entry in these CLs.

Isaac Ahouma

I am a little confused by this comment. Since I am removing blink::Feature::kAISummarizationAPI in this CL (in chrome/browser/about_flags.cc0, doesn't that mean that the kill switch will not be able to disable that feature as it will always be ON?

Isaac Ahouma

I think I got it now. The Blink feature is not the same as a Base feature. We can remove the Blink feature (which is the purpose of this CL)(https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md). However, the base feature is autogenerated at runtime using https://source.corp.google.com/h/chromium/chromium/src/+/main:third_party/blink/renderer/platform/runtime_enabled_features.json5;l=448-45.
Having the base feature is [required](https://g3doc.corp.google.com/analysis/uma/g3doc/finch/feature-api.md?cl=head) for using the [killswitch](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/flag_guarding_guidelines.md#prefer-waterfall-rollout-for-platform-changes). Is my understanding correct?

Mike Wasserman

Sorry for the complexity here, my hope is that we're just removing the chrome://flags entry in this CL. We can keep the blink::Feature::kAISummarizationAPI flag autogenerated from the AISummarizationAPI entry in runtime_enabled_features.json5. We should also add the missing `copied_from_base_feature_if: "overridden"` line(s) there to hopefully fix apparent kill switch breakage in this CL (or separately if needed). We can remove the runtime_enabled_features entry sometime in the near future.

Isaac Ahouma

Thanks to you!

Open in Gerrit

Related details

Attention is currently required from:
  • Mike Wasserman
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: I0377058b6437df74919682870441fbd989d172f8
    Gerrit-Change-Number: 7253717
    Gerrit-PatchSet: 23
    Gerrit-Owner: Isaac Ahouma <iah...@google.com>
    Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
    Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
    Gerrit-Attention: Mike Wasserman <m...@chromium.org>
    Gerrit-Comment-Date: Thu, 18 Dec 2025 01:43:29 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
    Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Mike Wasserman (Gerrit)

    unread,
    Dec 18, 2025, 2:24:28 PM (2 days ago) Dec 18
    to Isaac Ahouma, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
    Attention needed from Isaac Ahouma

    Mike Wasserman voted and added 1 comment

    Votes added by Mike Wasserman

    Code-Review+1

    1 comment

    Patchset-level comments
    File-level comment, Patchset 23 (Latest):
    Mike Wasserman . resolved

    lgtm, ty!

    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 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: I0377058b6437df74919682870441fbd989d172f8
      Gerrit-Change-Number: 7253717
      Gerrit-PatchSet: 23
      Gerrit-Owner: Isaac Ahouma <iah...@google.com>
      Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-Attention: Isaac Ahouma <iah...@google.com>
      Gerrit-Comment-Date: Thu, 18 Dec 2025 19:24:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Nico Weber (Gerrit)

      unread,
      Dec 18, 2025, 6:38:47 PM (2 days ago) Dec 18
      to Isaac Ahouma, Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
      Attention needed from Isaac Ahouma and Kent Tamura

      Nico Weber added 1 comment

      Patchset-level comments
      Nico Weber . resolved

      Adding tkent from third_party/blink/API_OWNERS for runtime_enabled_features.json5.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Isaac Ahouma
      • Kent Tamura
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not 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: I0377058b6437df74919682870441fbd989d172f8
      Gerrit-Change-Number: 7253717
      Gerrit-PatchSet: 23
      Gerrit-Owner: Isaac Ahouma <iah...@google.com>
      Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-CC: Nico Weber <tha...@chromium.org>
      Gerrit-Attention: Isaac Ahouma <iah...@google.com>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Comment-Date: Thu, 18 Dec 2025 23:38:40 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kent Tamura (Gerrit)

      unread,
      Dec 18, 2025, 7:08:12 PM (2 days ago) Dec 18
      to Isaac Ahouma, Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
      Attention needed from Isaac Ahouma

      Kent Tamura added 1 comment

      File third_party/blink/renderer/platform/runtime_enabled_features.json5
      Line 457, Patchset 23 (Latest): base_feature_status: "enabled",
      copied_from_base_feature_if: "overridden",
      },
      Kent Tamura . unresolved

      What's the intention of this change?

      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 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: I0377058b6437df74919682870441fbd989d172f8
        Gerrit-Change-Number: 7253717
        Gerrit-PatchSet: 23
        Gerrit-Owner: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-CC: Nico Weber <tha...@chromium.org>
        Gerrit-Attention: Isaac Ahouma <iah...@google.com>
        Gerrit-Comment-Date: Fri, 19 Dec 2025 00:07:39 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Isaac Ahouma (Gerrit)

        unread,
        Dec 18, 2025, 7:45:49 PM (2 days ago) Dec 18
        to Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
        Attention needed from Kent Tamura

        Isaac Ahouma added 1 comment

        File third_party/blink/renderer/platform/runtime_enabled_features.json5
        Line 457, Patchset 23: base_feature_status: "enabled",
        copied_from_base_feature_if: "overridden",
        },
        Kent Tamura . unresolved

        What's the intention of this change?

        Isaac Ahouma

        Chrome has some API feature flags that are expiring in M145 as the corresponding APIs have graduated to stable. We are removing references to these flags in a series of CL. The intent of this particular CL is to remove references to the feature flag guarding the Summarization API

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Kent Tamura
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not 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: I0377058b6437df74919682870441fbd989d172f8
        Gerrit-Change-Number: 7253717
        Gerrit-PatchSet: 24
        Gerrit-Owner: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-CC: Nico Weber <tha...@chromium.org>
        Gerrit-Attention: Kent Tamura <tk...@chromium.org>
        Gerrit-Comment-Date: Fri, 19 Dec 2025 00:45:35 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Kent Tamura <tk...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Isaac Ahouma (Gerrit)

        unread,
        Dec 18, 2025, 7:51:22 PM (2 days ago) Dec 18
        to Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
        Attention needed from Kent Tamura

        Isaac Ahouma added 1 comment

        File third_party/blink/renderer/platform/runtime_enabled_features.json5
        Line 457, Patchset 23: base_feature_status: "enabled",
        copied_from_base_feature_if: "overridden",
        },
        Kent Tamura . unresolved

        What's the intention of this change?

        Isaac Ahouma

        Chrome has some API feature flags that are expiring in M145 as the corresponding APIs have graduated to stable. We are removing references to these flags in a series of CL. The intent of this particular CL is to remove references to the feature flag guarding the Summarization API

        Isaac Ahouma

        Regarding the change to third_party/blink/renderer/platform/runtime_enabled_features.json5, we are adding the options to the API to enable Finch override for the runtime enabled feature. This is to allow for allowing the feature to have a killswitch. We think this aligns with the overall CL, but let us know if you prefer if we do this in a separate CL.

        Gerrit-Comment-Date: Fri, 19 Dec 2025 00:51:04 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Isaac Ahouma <iah...@google.com>
        Comment-In-Reply-To: Kent Tamura <tk...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Kent Tamura (Gerrit)

        unread,
        Dec 18, 2025, 8:06:18 PM (2 days ago) Dec 18
        to Isaac Ahouma, Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
        Attention needed from Isaac Ahouma

        Kent Tamura added 1 comment

        File third_party/blink/renderer/platform/runtime_enabled_features.json5
        Line 457, Patchset 23: base_feature_status: "enabled",
        copied_from_base_feature_if: "overridden",
        },
        Kent Tamura . unresolved

        What's the intention of this change?

        Isaac Ahouma

        Chrome has some API feature flags that are expiring in M145 as the corresponding APIs have graduated to stable. We are removing references to these flags in a series of CL. The intent of this particular CL is to remove references to the feature flag guarding the Summarization API

        Isaac Ahouma

        Regarding the change to third_party/blink/renderer/platform/runtime_enabled_features.json5, we are adding the options to the API to enable Finch override for the runtime enabled feature. This is to allow for allowing the feature to have a killswitch. We think this aligns with the overall CL, but let us know if you prefer if we do this in a separate CL.

        Kent Tamura

        The killswitch for this flag should work by default. `base_feature_status` and `copied_from_base_feature_if` look unnecessary.

        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 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: I0377058b6437df74919682870441fbd989d172f8
        Gerrit-Change-Number: 7253717
        Gerrit-PatchSet: 25
        Gerrit-Owner: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-CC: Nico Weber <tha...@chromium.org>
        Gerrit-Attention: Isaac Ahouma <iah...@google.com>
        Gerrit-Comment-Date: Fri, 19 Dec 2025 01:05:44 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Isaac Ahouma (Gerrit)

        unread,
        Dec 19, 2025, 3:57:23 AM (yesterday) Dec 19
        to Kent Tamura, Nico Weber, Mike Wasserman, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
        Attention needed from Kent Tamura and Mike Wasserman

        Isaac Ahouma added 1 comment

        File third_party/blink/renderer/platform/runtime_enabled_features.json5
        Line 457, Patchset 23: base_feature_status: "enabled",
        copied_from_base_feature_if: "overridden",
        },
        Kent Tamura . resolved

        What's the intention of this change?

        Isaac Ahouma

        Chrome has some API feature flags that are expiring in M145 as the corresponding APIs have graduated to stable. We are removing references to these flags in a series of CL. The intent of this particular CL is to remove references to the feature flag guarding the Summarization API

        Isaac Ahouma

        Regarding the change to third_party/blink/renderer/platform/runtime_enabled_features.json5, we are adding the options to the API to enable Finch override for the runtime enabled feature. This is to allow for allowing the feature to have a killswitch. We think this aligns with the overall CL, but let us know if you prefer if we do this in a separate CL.

        Kent Tamura

        The killswitch for this flag should work by default. `base_feature_status` and `copied_from_base_feature_if` look unnecessary.

        Isaac Ahouma

        You are right. Looks to be working without it.
        Is this the default for every runtime enabled feature? It seemed like some can not be kill switched unless you explicitly added these options.
        Thanks!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Kent Tamura
        • Mike Wasserman
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement 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: I0377058b6437df74919682870441fbd989d172f8
        Gerrit-Change-Number: 7253717
        Gerrit-PatchSet: 26
        Gerrit-Owner: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-CC: Nico Weber <tha...@chromium.org>
        Gerrit-Attention: Mike Wasserman <m...@chromium.org>
        Gerrit-Attention: Kent Tamura <tk...@chromium.org>
        Gerrit-Comment-Date: Fri, 19 Dec 2025 08:57:08 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Mike Wasserman (Gerrit)

        unread,
        Dec 19, 2025, 1:58:11 PM (15 hours ago) Dec 19
        to Isaac Ahouma, Kent Tamura, Nico Weber, AyeAye, Chromium LUCI CQ, kinuko...@chromium.org, jmedle...@chromium.org, blink-...@chromium.org, network-ser...@chromium.org, asvitki...@chromium.org
        Attention needed from Isaac Ahouma and Kent Tamura

        Mike Wasserman voted Code-Review+1

        Code-Review+1
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Isaac Ahouma
        • Kent Tamura
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement is not 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: I0377058b6437df74919682870441fbd989d172f8
          Gerrit-Change-Number: 7253717
          Gerrit-PatchSet: 26
          Gerrit-Owner: Isaac Ahouma <iah...@google.com>
          Gerrit-Reviewer: Isaac Ahouma <iah...@google.com>
          Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
          Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
          Gerrit-CC: Nico Weber <tha...@chromium.org>
          Gerrit-Attention: Isaac Ahouma <iah...@google.com>
          Gerrit-Attention: Kent Tamura <tk...@chromium.org>
          Gerrit-Comment-Date: Fri, 19 Dec 2025 18:58:00 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy
          Reply all
          Reply to author
          Forward
          0 new messages