[Extensions] Move chrome_settings_overrides handler into //extensions/ [chromium/src : main]

0 views
Skip to first unread message

Anton Bershanskyi (Gerrit)

unread,
Jan 10, 2026, 1:35:26 PMJan 10
to Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
Attention needed from Devlin Cronin

Anton Bershanskyi added 9 comments

Patchset-level comments
File-level comment, Patchset 14 (Latest):
Anton Bershanskyi . resolved

Hi Devlin,
this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

File chrome/common/extensions/api/_manifest_features.json
Line 22, Patchset 14 (Latest): },
Anton Bershanskyi . resolved

Moved verbatim to `extensions/common/api/_manifest_features.json`.

File chrome/common/extensions/api/manifest_types.json
Line 15, Patchset 14 (Latest): {
Anton Bershanskyi . resolved

Moved verbatim to `extensions/common/api/extensions_manifest_types.json`.

File chrome/common/extensions/permissions/chrome_api_permissions.cc
Line 220, Patchset 14 (Latest): APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning},
Anton Bershanskyi . resolved

Moved verbatim to `extensions/common/permissions/extensions_api_permissions.cc`.

File extensions/common/api/_manifest_features.json
Line 117, Patchset 14 (Latest): }],
Anton Bershanskyi . resolved

Moved verbatim from `chrome/common/extensions/api/_manifest_features.json`.

File extensions/common/api/extensions_manifest_types.json
Line 30, Patchset 14 (Latest): {
Anton Bershanskyi . resolved

Moved verbatim from `chrome/common/extensions/api/manifest_types.json`.

File extensions/common/manifest_handlers/settings_overrides_handler.h
Line 25, Patchset 14 (Latest): ~SettingsOverrides() override;
Anton Bershanskyi . resolved

I updated signature of `SettingsOverrides::Get()` to accept a const-reference `const&` instead of const-pointer `const*` because the code never calls it with null pointers and function assumes parameter to be non-null and dereferences it without checking.

File extensions/common/manifest_handlers/settings_overrides_unittest.cc
Line 1, Patchset 14 (Latest):// Copyright 2013 The Chromium Authors
Anton Bershanskyi . resolved

I just moved/renamed this file, formatted it, and updated `manifest_version` from `2` to `3`.

File extensions/common/permissions/extensions_api_permissions.cc
Line 179, Patchset 14 (Latest): {APIPermissionID::kWmDesksPrivate, "wmDesksPrivate"},
Anton Bershanskyi . resolved

Moved verbatim from `chrome/common/extensions/permissions/chrome_api_permissions.cc`.

Open in Gerrit

Related details

Attention is currently required from:
  • Devlin Cronin
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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
Gerrit-Change-Number: 6687206
Gerrit-PatchSet: 14
Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Comment-Date: Sat, 10 Jan 2026 18:35:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Anton Bershanskyi (Gerrit)

unread,
Jan 17, 2026, 3:15:54 AMJan 17
to Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
Attention needed from Devlin Cronin

Anton Bershanskyi added 1 comment

Anton Bershanskyi . resolved

Hi Devlin,
this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

Related details

Attention is currently required from:
  • Devlin Cronin
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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
Gerrit-Change-Number: 6687206
Gerrit-PatchSet: 16
Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
Gerrit-Comment-Date: Sat, 17 Jan 2026 08:15:34 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Devlin Cronin (Gerrit)

unread,
Jan 20, 2026, 2:09:11 PMJan 20
to Anton Bershanskyi, Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
Attention needed from Anton Bershanskyi

Devlin Cronin added 1 comment

Patchset-level comments
Anton Bershanskyi . unresolved

Hi Devlin,
this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

Devlin Cronin

Thanks, Anton! But I think this one might be one that we keep at the chrome layer. Changing chrome settings is pretty linked to the chrome browser, IMO, and doesn't have much value for a generic extensions runtime. And, I don't think this is something that other components in //extensions are likely to rely on.

In general, it's okay to have APIs (/ manifest keys) at either //chrome or //extensions; we'll likely always have a split. We should be moving the ones to //extensions when they are more independent of the browser and browser concepts, and we should be consistent for individual APIs when possible (i.e., the manifest keys, API schemas, feature declarations, API implementations, etc, should all live at the same layer).

Is this needed for any particular work, or is this one that it'd make sense to leave at //chrome? I'm not dead-set on keeping it there if there's compelling reason to bring it up to //extensions, but for now, I think I'd lean towards it being in the //chrome layer.

(I'm also happy to run through future ones with you, if you want to discuss them before moving them around!)

Open in Gerrit

Related details

Attention is currently required from:
  • Anton Bershanskyi
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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
    Gerrit-Change-Number: 6687206
    Gerrit-PatchSet: 16
    Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Comment-Date: Tue, 20 Jan 2026 19:09:02 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Anton Bershanskyi <bersh...@gmail.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Anton Bershanskyi (Gerrit)

    unread,
    Jan 24, 2026, 12:16:30 PMJan 24
    to Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
    Attention needed from Devlin Cronin

    Anton Bershanskyi added 1 comment

    Patchset-level comments
    Anton Bershanskyi . unresolved

    Hi Devlin,
    this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
    Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

    Devlin Cronin

    Thanks, Anton! But I think this one might be one that we keep at the chrome layer. Changing chrome settings is pretty linked to the chrome browser, IMO, and doesn't have much value for a generic extensions runtime. And, I don't think this is something that other components in //extensions are likely to rely on.

    In general, it's okay to have APIs (/ manifest keys) at either //chrome or //extensions; we'll likely always have a split. We should be moving the ones to //extensions when they are more independent of the browser and browser concepts, and we should be consistent for individual APIs when possible (i.e., the manifest keys, API schemas, feature declarations, API implementations, etc, should all live at the same layer).

    Is this needed for any particular work, or is this one that it'd make sense to leave at //chrome? I'm not dead-set on keeping it there if there's compelling reason to bring it up to //extensions, but for now, I think I'd lean towards it being in the //chrome layer.

    (I'm also happy to run through future ones with you, if you want to discuss them before moving them around!)

    Anton Bershanskyi

    I think this one might be one that we keep at the chrome layer.

    OK, let's leave it in `//chrome`.

    Is this needed for any particular work

    No, I don't need to move this manifest key handler in particular. I just would like to move all manifest key handlers to their final place before some refactoring. In particular, I want to make `ManifestHandlerRegistry` more static (e.g., avoid handler priority sorting during execution, add more guarantees of handler for a particular key, etc.). For this, I would prefer to move handlers to their long-term locations in `//extensions` and `//chrome`.

    I'm also happy to run through future ones with you, if you want to discuss them before moving them around!

    That would be awesome, thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
    Gerrit-Change-Number: 6687206
    Gerrit-PatchSet: 16
    Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Comment-Date: Sat, 24 Jan 2026 17:16:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
    Comment-In-Reply-To: Anton Bershanskyi <bersh...@gmail.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Devlin Cronin (Gerrit)

    unread,
    Jan 26, 2026, 4:30:26 PMJan 26
    to Anton Bershanskyi, Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
    Attention needed from Anton Bershanskyi

    Devlin Cronin added 1 comment

    Patchset-level comments
    Anton Bershanskyi . unresolved

    Hi Devlin,
    this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
    Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

    Devlin Cronin

    Thanks, Anton! But I think this one might be one that we keep at the chrome layer. Changing chrome settings is pretty linked to the chrome browser, IMO, and doesn't have much value for a generic extensions runtime. And, I don't think this is something that other components in //extensions are likely to rely on.

    In general, it's okay to have APIs (/ manifest keys) at either //chrome or //extensions; we'll likely always have a split. We should be moving the ones to //extensions when they are more independent of the browser and browser concepts, and we should be consistent for individual APIs when possible (i.e., the manifest keys, API schemas, feature declarations, API implementations, etc, should all live at the same layer).

    Is this needed for any particular work, or is this one that it'd make sense to leave at //chrome? I'm not dead-set on keeping it there if there's compelling reason to bring it up to //extensions, but for now, I think I'd lean towards it being in the //chrome layer.

    (I'm also happy to run through future ones with you, if you want to discuss them before moving them around!)

    Anton Bershanskyi

    I think this one might be one that we keep at the chrome layer.

    OK, let's leave it in `//chrome`.

    Is this needed for any particular work

    No, I don't need to move this manifest key handler in particular. I just would like to move all manifest key handlers to their final place before some refactoring. In particular, I want to make `ManifestHandlerRegistry` more static (e.g., avoid handler priority sorting during execution, add more guarantees of handler for a particular key, etc.). For this, I would prefer to move handlers to their long-term locations in `//extensions` and `//chrome`.

    I'm also happy to run through future ones with you, if you want to discuss them before moving them around!

    That would be awesome, thanks!

    Devlin Cronin

    Sounds good! I'm fully on board with this work, but we'll have some that remain in //chrome.

    Do you want to drop the ones you're looking at or think should be moved into a shared doc, and I can comment there on any that seem like they belong more at the //chrome layer?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Anton Bershanskyi
    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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
    Gerrit-Change-Number: 6687206
    Gerrit-PatchSet: 16
    Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Comment-Date: Mon, 26 Jan 2026 21:30:12 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Anton Bershanskyi (Gerrit)

    unread,
    Feb 6, 2026, 8:59:10 PMFeb 6
    to Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
    Attention needed from Devlin Cronin

    Anton Bershanskyi added 1 comment

    Patchset-level comments
    Anton Bershanskyi . unresolved

    Hi Devlin,
    this is a minor refactor with no functional changes, it just moves some extension manifest code from //chrome into //extensions. I left explanations in inline resolved comments explaining most changes.
    Would you be interested in reviewing this change? I'll add the second reviewer after your review. Thanks!

    Devlin Cronin

    Thanks, Anton! But I think this one might be one that we keep at the chrome layer. Changing chrome settings is pretty linked to the chrome browser, IMO, and doesn't have much value for a generic extensions runtime. And, I don't think this is something that other components in //extensions are likely to rely on.

    In general, it's okay to have APIs (/ manifest keys) at either //chrome or //extensions; we'll likely always have a split. We should be moving the ones to //extensions when they are more independent of the browser and browser concepts, and we should be consistent for individual APIs when possible (i.e., the manifest keys, API schemas, feature declarations, API implementations, etc, should all live at the same layer).

    Is this needed for any particular work, or is this one that it'd make sense to leave at //chrome? I'm not dead-set on keeping it there if there's compelling reason to bring it up to //extensions, but for now, I think I'd lean towards it being in the //chrome layer.

    (I'm also happy to run through future ones with you, if you want to discuss them before moving them around!)

    Anton Bershanskyi

    I think this one might be one that we keep at the chrome layer.

    OK, let's leave it in `//chrome`.

    Is this needed for any particular work

    No, I don't need to move this manifest key handler in particular. I just would like to move all manifest key handlers to their final place before some refactoring. In particular, I want to make `ManifestHandlerRegistry` more static (e.g., avoid handler priority sorting during execution, add more guarantees of handler for a particular key, etc.). For this, I would prefer to move handlers to their long-term locations in `//extensions` and `//chrome`.

    I'm also happy to run through future ones with you, if you want to discuss them before moving them around!

    That would be awesome, thanks!

    Devlin Cronin

    Sounds good! I'm fully on board with this work, but we'll have some that remain in //chrome.

    Do you want to drop the ones you're looking at or think should be moved into a shared doc, and I can comment there on any that seem like they belong more at the //chrome layer?

    Anton Bershanskyi
    I already moved all manifest handlers which I really wanted to move, I believe that the rest should stay in `//chrome/` as they are. The only two handlers I'm ambivalent about are:
    - `StorageSchemaManifestHandler` - this could benefit from being agnostic from browser UI ("the browser chrome"). On the other hand, the schema distribution mechanism is very Enterprise-y and not Web-y at all.
    - `UrlHandlersParser` - since `"url_handlers"` is literally just a URL pattern matching registry for launching an app, it's pretty distant from "the browser chrome" too. But this handler is a part of deprecated platform apps feature and I'm not sure if it's worth touching. It'll probably go away on its own after October 2028, if the current timeline is maintained.
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Devlin Cronin
    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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
    Gerrit-Change-Number: 6687206
    Gerrit-PatchSet: 16
    Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Comment-Date: Sat, 07 Feb 2026 01:58:53 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Devlin Cronin (Gerrit)

    unread,
    Feb 9, 2026, 4:37:45 PMFeb 9
    to Anton Bershanskyi, Devlin Cronin, Chromium LUCI CQ, chromium...@chromium.org, chromium-a...@chromium.org, extension...@chromium.org, devtools...@chromium.org
    Attention needed from Anton Bershanskyi

    Devlin Cronin added 1 comment

    Patchset-level comments
    Devlin Cronin

    I'm okay with both of those staying put in //chrome (along with all the others that are there, too). I could see an argument to pull StorageSchemaManifestHandler up, especially since most of the storage API is in //extensions, but the _managed_ aspect of the storage API is actually still in //chrome -- so I think it makes sense to keep those together.

    So, I think at this point, we can call it good : )

    Thank you for all your work here! : )

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Anton Bershanskyi
    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: I2b75ca6cc66afa1a9425eaf7d4c489f728492c6e
    Gerrit-Change-Number: 6687206
    Gerrit-PatchSet: 16
    Gerrit-Owner: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
    Gerrit-Attention: Anton Bershanskyi <bersh...@gmail.com>
    Gerrit-Comment-Date: Mon, 09 Feb 2026 21:37:35 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages