Add feature flag check for split show password setting [chromium/src : main]

0 views
Skip to first unread message

Md Shahadat Hossain Shahin (Gerrit)

unread,
Jan 8, 2026, 10:01:56 AM (4 days ago) Jan 8
to chromium...@chromium.org

Md Shahadat Hossain Shahin has uploaded the change for review

Commit message

Add feature flag check for split show password setting
Bug: 466343369
Change-Id: I98be6b37884730d7c35c50a545d717bf1c3b71f6

Change diff

diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
index 505d914..1c5bdec 100644
--- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
+++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
@@ -7,7 +7,9 @@
import android.content.ContentResolver;
import android.database.ContentObserver;
import android.net.Uri;
+import android.os.Build;
import android.os.Handler;
+import android.os.flagging.AconfigPackage;
import android.provider.Settings;

import androidx.annotation.VisibleForTesting;
@@ -73,8 +75,15 @@
return sSplitEnabledForTesting;
}

- // TODO(crbug.com/466343369): Implement the logic to check if the split setting feature is
- // enabled on the platform side.
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) {
+ try {
+ return AconfigPackage.load("com.android.text.flags")
+ .getBooleanFlagValue("split_show_passwords_to_touch_and_physical", false);
+ } catch (Exception e) {
+ // Default to checking the legacy settings if we error checking the flag value.
+ return false;
+ }
+ }
return false;
}

Change information

Files:
  • M components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
Change size: S
Delta: 1 file changed, 11 insertions(+), 2 deletions(-)
Open in Gerrit

Related details

Attention set is empty
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: newchange
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I98be6b37884730d7c35c50a545d717bf1c3b71f6
Gerrit-Change-Number: 7415202
Gerrit-PatchSet: 1
Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Md Shahadat Hossain Shahin (Gerrit)

unread,
Jan 8, 2026, 10:04:04 AM (4 days ago) Jan 8
to Peter Conn, chromium...@chromium.org
Attention needed from Peter Conn

Md Shahadat Hossain Shahin added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Md Shahadat Hossain Shahin . resolved

Hi Peter, could you please review before I send it to the owners?

Open in Gerrit

Related details

Attention is currently required from:
  • Peter Conn
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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
Gerrit-Change-Number: 7415202
Gerrit-PatchSet: 1
Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
Gerrit-Attention: Peter Conn <pec...@chromium.org>
Gerrit-Comment-Date: Thu, 08 Jan 2026 15:03:38 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Peter Conn (Gerrit)

unread,
Jan 9, 2026, 4:46:18 AM (4 days ago) Jan 9
to Md Shahadat Hossain Shahin, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Md Shahadat Hossain Shahin

Peter Conn added 1 comment

File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
Peter Conn . unresolved

This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

Open in Gerrit

Related details

Attention is currently required from:
  • Md Shahadat Hossain Shahin
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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Attention: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 09:46:05 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Md Shahadat Hossain Shahin (Gerrit)

    unread,
    Jan 9, 2026, 8:25:47 AM (4 days ago) Jan 9
    to Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
    Attention needed from Richard (Torne) Coles

    Md Shahadat Hossain Shahin added 2 comments

    Patchset-level comments
    Md Shahadat Hossain Shahin . resolved

    Hi Richard, could you please take a look if this a valid way to check aconfig flag value from Chrome code? Thanks!

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . unresolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Richard (Torne) Coles
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Attention: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 13:25:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Peter Conn <pec...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Richard (Torne) Coles (Gerrit)

    unread,
    Jan 9, 2026, 11:40:05 AM (3 days ago) Jan 9
    to Md Shahadat Hossain Shahin, Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
    Attention needed from Md Shahadat Hossain Shahin

    Richard (Torne) Coles added 1 comment

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . unresolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Richard (Torne) Coles

    We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

    See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

    You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Md Shahadat Hossain Shahin
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Attention: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 16:39:59 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Peter Conn <pec...@chromium.org>
    Comment-In-Reply-To: Md Shahadat Hossain Shahin <shah...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Md Shahadat Hossain Shahin (Gerrit)

    unread,
    Jan 9, 2026, 1:01:45 PM (3 days ago) Jan 9
    to Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
    Attention needed from Richard (Torne) Coles

    Md Shahadat Hossain Shahin added 2 comments

    Patchset-level comments
    Md Shahadat Hossain Shahin . resolved

    Thanks for taking a look. I have added few follow up questions. Please take another look.

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . unresolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Richard (Torne) Coles

    We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

    See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

    You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

    Md Shahadat Hossain Shahin

    Thanks for the pointers!

    Few follow up questions:

    The CL that exported the aconfig flag was merged yesterday. Do you know how long it might take for the flag to be available in the unreleased sdk in downstream?

    To add the flag check like the way you mentioned, we need to write two CLs, one in the public chromium and one in the interal //clank. If we want to make the feature available by M145, is it a must to land both CLs by the M145 branch date or only merging the public CL by the branch date is sufficient? I am asking as I am not sure how long it might take for the flag to be available in downstream.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Richard (Torne) Coles
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Attention: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 18:01:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Richard (Torne) Coles <to...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Richard (Torne) Coles (Gerrit)

    unread,
    Jan 9, 2026, 1:58:53 PM (3 days ago) Jan 9
    to Md Shahadat Hossain Shahin, Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
    Attention needed from Md Shahadat Hossain Shahin

    Richard (Torne) Coles added 1 comment

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . unresolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Richard (Torne) Coles

    We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

    See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

    You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

    Md Shahadat Hossain Shahin

    Thanks for the pointers!

    Few follow up questions:

    The CL that exported the aconfig flag was merged yesterday. Do you know how long it might take for the flag to be available in the unreleased sdk in downstream?

    To add the flag check like the way you mentioned, we need to write two CLs, one in the public chromium and one in the interal //clank. If we want to make the feature available by M145, is it a must to land both CLs by the M145 branch date or only merging the public CL by the branch date is sufficient? I am asking as I am not sure how long it might take for the flag to be available in downstream.

    Richard (Torne) Coles

    The SDK is autorolled weekly but the bots can be triggered manually any time - I just triggered the first step of the process and we should be able to roll to a new enough version in a couple of hours.

    Both CLs would need to land before the M145 branch point, or be cherrypicked.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Md Shahadat Hossain Shahin
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Attention: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 18:58:48 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Richard (Torne) Coles (Gerrit)

    unread,
    Jan 9, 2026, 2:28:26 PM (3 days ago) Jan 9
    to Md Shahadat Hossain Shahin, Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org

    Richard (Torne) Coles added 1 comment

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . unresolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Richard (Torne) Coles

    We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

    See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

    You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

    Md Shahadat Hossain Shahin

    Thanks for the pointers!

    Few follow up questions:

    The CL that exported the aconfig flag was merged yesterday. Do you know how long it might take for the flag to be available in the unreleased sdk in downstream?

    To add the flag check like the way you mentioned, we need to write two CLs, one in the public chromium and one in the interal //clank. If we want to make the feature available by M145, is it a must to land both CLs by the M145 branch date or only merging the public CL by the branch date is sufficient? I am asking as I am not sure how long it might take for the flag to be available in downstream.

    Richard (Torne) Coles

    The SDK is autorolled weekly but the bots can be triggered manually any time - I just triggered the first step of the process and we should be able to roll to a new enough version in a couple of hours.

    Both CLs would need to land before the M145 branch point, or be cherrypicked.

    Richard (Torne) Coles

    SDK version 14689923 which should contain all the changes related to this API is currently going through the autoroller: https://chrome-internal-review.googlesource.com/c/clank/internal/apps/+/8913355

    So once that gets through the CQ you should be able to implement this using the real API downstream.

    Open in Gerrit

    Related details

    Attention set is empty
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
    Gerrit-Change-Number: 7415202
    Gerrit-PatchSet: 1
    Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
    Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
    Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
    Gerrit-Comment-Date: Fri, 09 Jan 2026 19:28:18 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Md Shahadat Hossain Shahin (Gerrit)

    unread,
    Jan 9, 2026, 2:28:41 PM (3 days ago) Jan 9
    to Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org

    Md Shahadat Hossain Shahin added 1 comment

    File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
    Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
    Peter Conn . resolved

    This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

    Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

    Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

    Md Shahadat Hossain Shahin

    Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

    Richard (Torne) Coles

    We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

    See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

    You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

    Md Shahadat Hossain Shahin

    Thanks for the pointers!

    Few follow up questions:

    The CL that exported the aconfig flag was merged yesterday. Do you know how long it might take for the flag to be available in the unreleased sdk in downstream?

    To add the flag check like the way you mentioned, we need to write two CLs, one in the public chromium and one in the interal //clank. If we want to make the feature available by M145, is it a must to land both CLs by the M145 branch date or only merging the public CL by the branch date is sufficient? I am asking as I am not sure how long it might take for the flag to be available in downstream.

    Richard (Torne) Coles

    The SDK is autorolled weekly but the bots can be triggered manually any time - I just triggered the first step of the process and we should be able to roll to a new enough version in a couple of hours.

    Both CLs would need to land before the M145 branch point, or be cherrypicked.

    Md Shahadat Hossain Shahin

    That's super helpful. Thanks! I will abandon this change and start working on the new ones.

    Open in Gerrit

    Related details

    Attention set is empty
    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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
      Gerrit-Change-Number: 7415202
      Gerrit-PatchSet: 1
      Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
      Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
      Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
      Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
      Gerrit-Comment-Date: Fri, 09 Jan 2026 19:28:08 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Md Shahadat Hossain Shahin (Gerrit)

      unread,
      10:47 AM (10 hours ago) 10:47 AM
      to Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
      Attention needed from Richard (Torne) Coles

      Md Shahadat Hossain Shahin added 1 comment

      File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
      Line 80, Patchset 1 (Latest): return AconfigPackage.load("com.android.text.flags")
      Peter Conn . unresolved

      This is the only usage of AconfigPackage in Chromium, and the [docs](https://developer.android.com/reference/android/os/flagging/AconfigPackage) mention:

      Note: this is intended only to be used by generated code. To determine if a given flag is enabled in app code, the generated android flags should be used.

      Are you sure this is the right way to do this? (I have no idea myself.) Potentially it's worth mailing Chromium / Chrome on Android development lists?

      Md Shahadat Hossain Shahin

      Thanks for taking a look. I am also unsure about this. We previously had a discussion with torne@ about checking aconfig flag value from Chrome. Looping him in for comments.

      Richard (Torne) Coles

      We have the unreleased Android SDK including the generated flags library referred to by the docs here available in the downstream //clank repository, and we have a mechanism set up to allow this to be used from upstream via an abstraction that is a no-op in public builds, and that's what you should be using here.

      See https://source.chromium.org/chromium/chromium/src/+/main:base/android/java/src/org/chromium/base/AconfigFlaggedApiDelegate.java for the public interface defined upstream, and see the `AconfigFlaggedApiDelegateImpl` class in `//clank` for the actual implementations which check flags and call new APIs.

      You shouldn't *just* be checking the flag here - you should also be using the actual framework APIs/constants to access the setting values you need, instead of copying their definitions into Chromium. i.e. you should just use the `android.text.ShowSecretsSetting` APIs in the implementation downstream.

      Md Shahadat Hossain Shahin

      Thanks for the pointers!

      Few follow up questions:

      The CL that exported the aconfig flag was merged yesterday. Do you know how long it might take for the flag to be available in the unreleased sdk in downstream?

      To add the flag check like the way you mentioned, we need to write two CLs, one in the public chromium and one in the interal //clank. If we want to make the feature available by M145, is it a must to land both CLs by the M145 branch date or only merging the public CL by the branch date is sufficient? I am asking as I am not sure how long it might take for the flag to be available in downstream.

      Richard (Torne) Coles

      The SDK is autorolled weekly but the bots can be triggered manually any time - I just triggered the first step of the process and we should be able to roll to a new enough version in a couple of hours.

      Both CLs would need to land before the M145 branch point, or be cherrypicked.

      Richard (Torne) Coles

      SDK version 14689923 which should contain all the changes related to this API is currently going through the autoroller: https://chrome-internal-review.googlesource.com/c/clank/internal/apps/+/8913355

      So once that gets through the CQ you should be able to implement this using the real API downstream.

      Md Shahadat Hossain Shahin

      The CL for updating the sdk failed the CQ and was abandoned. I am not familiar with the failure or the next steps. Could you please take a look?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Richard (Torne) Coles
      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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
        Gerrit-Change-Number: 7415202
        Gerrit-PatchSet: 1
        Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
        Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
        Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
        Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
        Gerrit-Attention: Richard (Torne) Coles <to...@chromium.org>
        Gerrit-Comment-Date: Mon, 12 Jan 2026 15:47:36 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard (Torne) Coles (Gerrit)

        unread,
        11:03 AM (9 hours ago) 11:03 AM
        to Md Shahadat Hossain Shahin, Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
        Attention needed from Md Shahadat Hossain Shahin

        Richard (Torne) Coles added 1 comment

        File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java
        Richard (Torne) Coles

        Yeah I'll see what we can do.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Md Shahadat Hossain Shahin
        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: I98be6b37884730d7c35c50a545d717bf1c3b71f6
        Gerrit-Change-Number: 7415202
        Gerrit-PatchSet: 1
        Gerrit-Owner: Md Shahadat Hossain Shahin <shah...@google.com>
        Gerrit-Reviewer: Md Shahadat Hossain Shahin <shah...@google.com>
        Gerrit-Reviewer: Peter Conn <pec...@chromium.org>
        Gerrit-Reviewer: Richard (Torne) Coles <to...@chromium.org>
        Gerrit-Attention: Md Shahadat Hossain Shahin <shah...@google.com>
        Gerrit-Comment-Date: Mon, 12 Jan 2026 16:02:36 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Richard (Torne) Coles (Gerrit)

        unread,
        4:50 PM (4 hours ago) 4:50 PM
        to Md Shahadat Hossain Shahin, Richard (Torne) Coles, Chromium LUCI CQ, Peter Conn, chromium...@chromium.org
        File components/embedder_support/android/java/src/org/chromium/components/embedder_support/util/PasswordEchoSettingState.java

        The SDK has now rolled; there was a bug in one of the AndroidX libraries we consume that conflicted with a change in the SDK, which is fixed now.

        Gerrit-Comment-Date: Mon, 12 Jan 2026 21:49:55 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages