[iOS] Create Best Features Best of FRE flag [chromium/src : main]

0 views
Skip to first unread message

Briana McClure (Gerrit)

unread,
Apr 21, 2026, 2:10:30 PM (2 days ago) Apr 21
to Hira Mahmood, Robbie Gibson, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Hira Mahmood

Briana McClure added 1 comment

Patchset-level comments
File-level comment, Patchset 6:
Briana McClure . resolved

Hey Hira, PTAL. cc: Robbie for visibility with the Best of App FRE implementation.

Open in Gerrit

Related details

Attention is currently required from:
  • Hira Mahmood
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: I4512b76ed3ebf92c53013c406d69099f099ad49b
Gerrit-Change-Number: 7779660
Gerrit-PatchSet: 11
Gerrit-Owner: Briana McClure <bmcc...@google.com>
Gerrit-Reviewer: Briana McClure <bmcc...@google.com>
Gerrit-Reviewer: Hira Mahmood <hiram...@google.com>
Gerrit-CC: Robbie Gibson <rkgi...@google.com>
Gerrit-Attention: Hira Mahmood <hiram...@google.com>
Gerrit-Comment-Date: Tue, 21 Apr 2026 18:10:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Hira Mahmood (Gerrit)

unread,
Apr 22, 2026, 2:09:44 PM (yesterday) Apr 22
to Briana McClure, Robbie Gibson, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Briana McClure

Hira Mahmood added 1 comment

File ios/chrome/browser/first_run/public/features.mm
Line 58, Patchset 12 (Latest): if (IsBestOfAppBestFeaturesEnabled()) {
return BestFeaturesScreenVariationType::kGeneralScreenAfterDBPromo;
}
Hira Mahmood . unresolved

I believe the way things are set up right now, it would be possible for the screen to be added twice.

If we return `kGeneralScreenAfterDBPromo` in this function, then this line here (https://source.chromium.org/chromium/chromium/src/+/main:ios/chrome/browser/first_run/coordinator/first_run_screen_provider.mm;l=54) will add the best features screen if kUpdatedFirstRunSequence is disabled (which it is by default, but might be enabled locally for you). And then again we'll add the screen bc of line 119 in `first_run_screen_provider.mm` in this CL.

Open in Gerrit

Related details

Attention is currently required from:
  • Briana McClure
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: I4512b76ed3ebf92c53013c406d69099f099ad49b
    Gerrit-Change-Number: 7779660
    Gerrit-PatchSet: 12
    Gerrit-Owner: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Hira Mahmood <hiram...@google.com>
    Gerrit-CC: Robbie Gibson <rkgi...@google.com>
    Gerrit-Attention: Briana McClure <bmcc...@google.com>
    Gerrit-Comment-Date: Wed, 22 Apr 2026 18:09:39 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Briana McClure (Gerrit)

    unread,
    Apr 22, 2026, 3:20:02 PM (24 hours ago) Apr 22
    to Hira Mahmood, Robbie Gibson, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
    Attention needed from Hira Mahmood

    Briana McClure added 1 comment

    File ios/chrome/browser/first_run/public/features.mm
    Line 58, Patchset 12: if (IsBestOfAppBestFeaturesEnabled()) {
    return BestFeaturesScreenVariationType::kGeneralScreenAfterDBPromo;
    }
    Hira Mahmood . unresolved

    I believe the way things are set up right now, it would be possible for the screen to be added twice.

    If we return `kGeneralScreenAfterDBPromo` in this function, then this line here (https://source.chromium.org/chromium/chromium/src/+/main:ios/chrome/browser/first_run/coordinator/first_run_screen_provider.mm;l=54) will add the best features screen if kUpdatedFirstRunSequence is disabled (which it is by default, but might be enabled locally for you). And then again we'll add the screen bc of line 119 in `first_run_screen_provider.mm` in this CL.

    Briana McClure

    That's a good point! I removed the changes from this helper and instead updated Best Features Mediator and View Controller to handle the case for when IsBestOfAppBestFeaturesEnabled().

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hira Mahmood
    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: I4512b76ed3ebf92c53013c406d69099f099ad49b
    Gerrit-Change-Number: 7779660
    Gerrit-PatchSet: 14
    Gerrit-Owner: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Hira Mahmood <hiram...@google.com>
    Gerrit-CC: Robbie Gibson <rkgi...@google.com>
    Gerrit-Attention: Hira Mahmood <hiram...@google.com>
    Gerrit-Comment-Date: Wed, 22 Apr 2026 19:19:43 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hira Mahmood <hiram...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hira Mahmood (Gerrit)

    unread,
    12:30 PM (3 hours ago) 12:30 PM
    to Briana McClure, Robbie Gibson, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
    Attention needed from Briana McClure

    Hira Mahmood added 1 comment

    File ios/chrome/browser/first_run/public/features.mm
    Line 58, Patchset 12: if (IsBestOfAppBestFeaturesEnabled()) {
    return BestFeaturesScreenVariationType::kGeneralScreenAfterDBPromo;
    }
    Hira Mahmood . unresolved

    I believe the way things are set up right now, it would be possible for the screen to be added twice.

    If we return `kGeneralScreenAfterDBPromo` in this function, then this line here (https://source.chromium.org/chromium/chromium/src/+/main:ios/chrome/browser/first_run/coordinator/first_run_screen_provider.mm;l=54) will add the best features screen if kUpdatedFirstRunSequence is disabled (which it is by default, but might be enabled locally for you). And then again we'll add the screen bc of line 119 in `first_run_screen_provider.mm` in this CL.

    Briana McClure

    That's a good point! I removed the changes from this helper and instead updated Best Features Mediator and View Controller to handle the case for when IsBestOfAppBestFeaturesEnabled().

    Hira Mahmood

    I think it's a bit confusing to have `GetBestFeaturesScreenVariationType()` not return the correct variation in all cases (for example this function could return disabled while IsBestOfAppBestFeaturesEnabled() returns true, and the screen is still shown).

    Wdyt of instead adding a new enum to `BestFeaturesScreenVariationType` called `kBestOfAppVariation` or something similar? And then in `AddDBPromoAndBestFeaturesScreens()` we avoid adding the screen for this new enum case. This would keep the variant flow intact and lets us clean up the `if (IsBestOfAppBestFeaturesEnabled())` conditional checks in the UI layout layers

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Briana McClure
    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: I4512b76ed3ebf92c53013c406d69099f099ad49b
    Gerrit-Change-Number: 7779660
    Gerrit-PatchSet: 14
    Gerrit-Owner: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Briana McClure <bmcc...@google.com>
    Gerrit-Reviewer: Hira Mahmood <hiram...@google.com>
    Gerrit-CC: Robbie Gibson <rkgi...@google.com>
    Gerrit-Attention: Briana McClure <bmcc...@google.com>
    Gerrit-Comment-Date: Thu, 23 Apr 2026 16:30:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Briana McClure <bmcc...@google.com>
    Comment-In-Reply-To: Hira Mahmood <hiram...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages