ios/chrome/browser/intelligence/bwg/ui/README.md
Last updated: May 2026
This directory contains the user interface (UI) components for the Gemini (BWG) onboarding and First Run Experience (FRE) flows on Chrome for iOS.
Following iOS UI development guidelines and branded asset requirements, the controllers are designed for elegant sheet presentation, micro-animations, responsive dynamic layouts, and full localization (including South Korea compliance overrides).
Depending on the kGeminiFRERefactor feature flag, GeminiFirstRunCoordinator launches either the new step-based page container or the legacy wrapper:
kGeminiFRERefactor is Enabled (Refactored Flow)graph TD
Container[GeminiFirstRunPageViewController]
Container -->|Presents Step 0| Promo[GeminiPromoViewController]
Container -->|Presents Step 1| Consent[GeminiConsentViewController]
kGeminiFRERefactor is Disabled (Legacy Flow)graph TD
Wrapper[GeminiFirstRunWrapperViewController]
Wrapper -->|Presents Initial Info| Promo[GeminiPromoViewController]
Wrapper -->|Transitions to Consent/Live| Consent[GeminiConsentViewController]
UIViewController utilizing sheets presentation. It paginates an array of onboarding steps (UIViewController<GeminiFirstRunStep>*) and handles adaptive height transitions.UIViewController utilizing sheets presentation. It orchestrates transitions between the Promotional intro page (GeminiPromoViewController) and the main Consent/Permissions page (GeminiConsentViewController).GeminiFirstRunStep protocol, step identifiers, and height delegate interface used by the refactored page container.UITextViewDelegate to safely open privacy links in new tabs without launching context menus.resources/:
Contains brand-compliant assets, custom logos, and color definitions used across Gemini screens.gemini_promo_view_controller_unittest.mmgemini_consent_view_controller_unittest.mmgemini_first_run_page_view_controller_unittest.mmgemini_fre_wrapper_view_controller_unittest.mmgemini_ui_utils_unittest.mm