[iOS] Moves Tab Strip in BVCContainerViewController [chromium/src : main]

0 views
Skip to first unread message

Ewann Pellé (Gerrit)

unread,
Jan 12, 2026, 11:44:14 AM (9 days ago) Jan 12
to chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org

Ewann Pellé added 2 comments

File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
Line 106, Patchset 10:- (UIViewController*)currentBVC {
return [self.childViewControllers firstObject];
}
Ewann Pellé . unresolved

Should this be updated ?

Line 260, Patchset 13 (Latest): CGFloat progress = 1.0;
if (_bvcContainerContent && _bvcContainerContent.fullscreenController) {
progress = _bvcContainerContent.fullscreenController->GetProgress();
}
CGFloat offset =
AlignValueToPixel((1.0 - progress) * _fullscreenViewportInsetRange);

_tabStripTopConstraint = [_tabStripViewController.view.topAnchor
constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor
constant:-offset];
Ewann Pellé . unresolved

Will probably be merged with fullscreen APIs.

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: I61961806768ab2c9a7326b2e87a215336e01832d
Gerrit-Change-Number: 7415789
Gerrit-PatchSet: 13
Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
Gerrit-Comment-Date: Mon, 12 Jan 2026 16:43:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Ewann Pellé (Gerrit)

unread,
Jan 13, 2026, 4:01:57 AM (8 days ago) Jan 13
to chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org

Ewann Pellé voted and added 2 comments

Votes added by Ewann Pellé

Commit-Queue+1

2 comments

File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
Line 106, Patchset 10:- (UIViewController*)currentBVC {
return [self.childViewControllers firstObject];
}
Ewann Pellé . resolved

Should this be updated ?

Ewann Pellé

Done

Line 260, Patchset 13: CGFloat progress = 1.0;

if (_bvcContainerContent && _bvcContainerContent.fullscreenController) {
progress = _bvcContainerContent.fullscreenController->GetProgress();
}
CGFloat offset =
AlignValueToPixel((1.0 - progress) * _fullscreenViewportInsetRange);

_tabStripTopConstraint = [_tabStripViewController.view.topAnchor
constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor
constant:-offset];
Ewann Pellé . resolved

Will probably be merged with fullscreen APIs.

Ewann Pellé

Done

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: I61961806768ab2c9a7326b2e87a215336e01832d
    Gerrit-Change-Number: 7415789
    Gerrit-PatchSet: 15
    Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
    Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
    Gerrit-Comment-Date: Tue, 13 Jan 2026 09:01:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ewann Pellé (Gerrit)

    unread,
    Jan 13, 2026, 5:34:54 AM (8 days ago) Jan 13
    to Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
    Attention needed from Mark Cogan

    Ewann Pellé voted Commit-Queue+1

    Commit-Queue+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Mark Cogan
    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: I61961806768ab2c9a7326b2e87a215336e01832d
    Gerrit-Change-Number: 7415789
    Gerrit-PatchSet: 17
    Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
    Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
    Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
    Gerrit-Attention: Mark Cogan <ma...@chromium.org>
    Gerrit-Comment-Date: Tue, 13 Jan 2026 10:34:37 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Gauthier Ambard (Gerrit)

    unread,
    Jan 13, 2026, 7:29:48 AM (8 days ago) Jan 13
    to Ewann Pellé, Aliona Dangla, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
    Attention needed from Aliona Dangla, Ewann Pellé and Mark Cogan

    Gauthier Ambard added 6 comments

    Commit Message
    Line 10, Patchset 18 (Latest):BrowserViewController to BVCContainerViewController.
    Gauthier Ambard . unresolved

    This feels like a good first step, but I wonder if it is the "right" approach.
    In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
    How do you plan to do it?

    Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
    I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

    In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

    File ios/chrome/browser/browser_view/ui_bundled/browser_view_controller.mm
    Line 613, Patchset 18 (Latest): CanShowTabStrip(self) ? TabStripCollectionViewConstants.height : 0.0;
    Gauthier Ambard . unresolved

    Oooooh, interesting. You are completely replacing the use of the TabStrip in the headerViews property by this constant?

    Line 1823, Patchset 18 (Parent): [self addConstraintsToPrimaryToolbar];
    Gauthier Ambard . unresolved

    Why is this no longer necessary?
    Where are you re-updating the constraints for the toolbar?

    File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
    Line 24, Patchset 18 (Latest):@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
    Gauthier Ambard . unresolved

    Do you still need it inside the BVC?
    What is it used for?

    Line 21, Patchset 18 (Latest): FullscreenController* fullscreenController;
    Gauthier Ambard . unresolved

    You can get it from the Browser, I don't think you need it here?
    Consider passing it in init.

    File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
    Line 164, Patchset 18 (Latest): maxViewportInsets:(UIEdgeInsets)maxViewportInsets {
    Gauthier Ambard . unresolved

    @aliona...@chromium.org what is this method used for?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Aliona Dangla
    • Ewann Pellé
    • Mark Cogan
    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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 18
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Attention: Aliona Dangla <aliona...@chromium.org>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 12:29:41 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 13, 2026, 8:27:11 AM (8 days ago) Jan 13
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Aliona Dangla, Gauthier Ambard and Mark Cogan

      Ewann Pellé voted and added 5 comments

      Votes added by Ewann Pellé

      Commit-Queue+1

      5 comments

      File ios/chrome/browser/browser_view/ui_bundled/browser_view_controller.mm
      Line 613, Patchset 18 (Latest): CanShowTabStrip(self) ? TabStripCollectionViewConstants.height : 0.0;
      Gauthier Ambard . unresolved

      Oooooh, interesting. You are completely replacing the use of the TabStrip in the headerViews property by this constant?

      Ewann Pellé

      Yes, or by using `primaryToolbarTopPadding`

      Line 1823, Patchset 18 (Parent): [self addConstraintsToPrimaryToolbar];
      Gauthier Ambard . unresolved

      Why is this no longer necessary?
      Where are you re-updating the constraints for the toolbar?

      Ewann Pellé

      TabStrip is removed from the view hierarchy when not visible. PTAL at `setTabStripViewController:` impl.

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 24, Patchset 18 (Latest):@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
      Gauthier Ambard . unresolved

      Do you still need it inside the BVC?
      What is it used for?

      Ewann Pellé

      No but.. BrowserViewControllerDependencies hands it to BrowserViewController.
      That's why this protocol is a "temporary" solution.

      Line 21, Patchset 18 (Latest): FullscreenController* fullscreenController;
      Gauthier Ambard . unresolved

      You can get it from the Browser, I don't think you need it here?
      Consider passing it in init.

      Ewann Pellé

      Currently, the BrowserCoordinator sets up a massive struct (BrowserViewControllerDependencies) and hands it to BrowserViewController.

      I think, to inject these directly into BVCContainerViewController during init, we would need to refactor BrowserCoordinator's init sequence to untangle the them before the BVC is created.

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 164, Patchset 18 (Latest): maxViewportInsets:(UIEdgeInsets)maxViewportInsets {
      Gauthier Ambard . unresolved

      @aliona...@chromium.org what is this method used for?

      Ewann Pellé

      To calculate the total vertical distance the top UI needs to travel to disappear off the top of the screen. See its usage in `updateForFullscreenProgress`.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Aliona Dangla
      • Gauthier Ambard
      • Mark Cogan
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 18
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Aliona Dangla <aliona...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 13:26:57 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Aliona Dangla (Gerrit)

      unread,
      Jan 13, 2026, 8:31:00 AM (8 days ago) Jan 13
      to Ewann Pellé, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Aliona Dangla added 1 comment

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 164, Patchset 18 (Latest): maxViewportInsets:(UIEdgeInsets)maxViewportInsets {
      Gauthier Ambard . unresolved

      @aliona...@chromium.org what is this method used for?

      Aliona Dangla

      `min` and `max` are used to compute `lvh` and `svh` css values correctly, it is currently implemented only when smooth scrolling is enabled

      To test it ->
      https://docs.google.com/document/d/1-4X1Y49KsD-ktuvjNKfkAERUNwA6-NmutcG9PDBqwt4/edit?usp=sharing&resourcekey=0-ShbGbftqEm9hwNd5rtHvNQ

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Gauthier Ambard
      • Mark Cogan
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 18
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 13:30:47 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 13, 2026, 8:52:44 AM (8 days ago) Jan 13
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Ewann Pellé added 1 comment

      Commit Message
      Line 10, Patchset 18 (Latest):BrowserViewController to BVCContainerViewController.
      Gauthier Ambard . unresolved

      This feels like a good first step, but I wonder if it is the "right" approach.
      In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
      How do you plan to do it?

      Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
      I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

      In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

      Ewann Pellé

      I think deleting tab strip refs from BVC should indeed be done.

      Do you know if the tab strip VC will be impacted with fullscreen animations when the assistant sheet will be displayed ?

      We can also have an "hybrid" approach, the BVCContainerViewController should observe the tab strip height (might be static when assistant sheet is visible) and push updates to the BVC. This data will contain the size of the strip + additional insets. This will create a one way data flow.

      Gerrit-Comment-Date: Tue, 13 Jan 2026 13:52:28 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 13, 2026, 9:54:57 AM (8 days ago) Jan 13
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Ewann Pellé added 1 comment

      Commit Message
      Line 10, Patchset 18 (Latest):BrowserViewController to BVCContainerViewController.
      Gauthier Ambard . unresolved

      This feels like a good first step, but I wonder if it is the "right" approach.
      In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
      How do you plan to do it?

      Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
      I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

      In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

      Ewann Pellé

      I think deleting tab strip refs from BVC should indeed be done.

      Do you know if the tab strip VC will be impacted with fullscreen animations when the assistant sheet will be displayed ?

      We can also have an "hybrid" approach, the BVCContainerViewController should observe the tab strip height (might be static when assistant sheet is visible) and push updates to the BVC. This data will contain the size of the strip + additional insets. This will create a one way data flow.

      Ewann Pellé

      To make it clearer it will be an inset as suggested, but the BVCCVC will still manage tab strip logic.

      Gerrit-Comment-Date: Tue, 13 Jan 2026 14:54:45 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 14, 2026, 4:48:46 AM (7 days ago) Jan 14
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Ewann Pellé added 1 comment

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 195, Patchset 19 (Latest):- (void)updateStatusBarBackgroundViews {
      Ewann Pellé . unresolved

      staticStatusBarView and fadingStatusBarView don't need to be anchored to the tab strip, the bottom anchor could be `self.safeArea.top` instead. staticStatusBarView should always be visible, fadingStatusBarView should be visible only if tab strip is visible. Will update this flow.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Gauthier Ambard
      • Mark Cogan
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 19
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Wed, 14 Jan 2026 09:48:29 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 14, 2026, 7:24:58 AM (7 days ago) Jan 14
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Ewann Pellé added 1 comment

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 195, Patchset 19 (Latest):- (void)updateStatusBarBackgroundViews {
      Ewann Pellé . resolved

      staticStatusBarView and fadingStatusBarView don't need to be anchored to the tab strip, the bottom anchor could be `self.safeArea.top` instead. staticStatusBarView should always be visible, fadingStatusBarView should be visible only if tab strip is visible. Will update this flow.

      Ewann Pellé

      Done

      Gerrit-Comment-Date: Wed, 14 Jan 2026 12:24:39 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mark Cogan (Gerrit)

      unread,
      Jan 15, 2026, 7:38:46 AM (6 days ago) Jan 15
      to Ewann Pellé, Aliona Dangla, Gauthier Ambard, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Ewann Pellé and Gauthier Ambard

      Mark Cogan added 5 comments

      Commit Message
      Line 10, Patchset 18:BrowserViewController to BVCContainerViewController.
      Gauthier Ambard . unresolved

      This feels like a good first step, but I wonder if it is the "right" approach.
      In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
      How do you plan to do it?

      Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
      I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

      In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

      Ewann Pellé

      I think deleting tab strip refs from BVC should indeed be done.

      Do you know if the tab strip VC will be impacted with fullscreen animations when the assistant sheet will be displayed ?

      We can also have an "hybrid" approach, the BVCContainerViewController should observe the tab strip height (might be static when assistant sheet is visible) and push updates to the BVC. This data will contain the size of the strip + additional insets. This will create a one way data flow.

      Ewann Pellé

      To make it clearer it will be an inset as suggested, but the BVCCVC will still manage tab strip logic.

      Mark Cogan

      +1 to making BVC aware of less things.

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 17, Patchset 20 (Latest):@protocol BVCContainerContent <NSObject>
      Mark Cogan . unresolved

      I can maybe tolerate this name as it's temporary, but I really don't like directly referencing the (abbreviated) name of a view controller in other APIs. I guess here it's connected to BVCCVC, whose name I also don't like.

      For protocols that temporarily expose details that will soon be refactored, we've used the name "Plumbing" in the past. BVCContainerPlumbing?

      Line 24, Patchset 18:@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
      Gauthier Ambard . unresolved

      Do you still need it inside the BVC?
      What is it used for?

      Ewann Pellé

      No but.. BrowserViewControllerDependencies hands it to BrowserViewController.
      That's why this protocol is a "temporary" solution.

      Mark Cogan

      Obviously nothing in the UI layer should be depending on it.

      Line 21, Patchset 18: FullscreenController* fullscreenController;
      Gauthier Ambard . unresolved

      You can get it from the Browser, I don't think you need it here?
      Consider passing it in init.

      Ewann Pellé

      Currently, the BrowserCoordinator sets up a massive struct (BrowserViewControllerDependencies) and hands it to BrowserViewController.

      I think, to inject these directly into BVCContainerViewController during init, we would need to refactor BrowserCoordinator's init sequence to untangle the them before the BVC is created.

      Mark Cogan

      Not that the intent is that ongoing refactoring removes dependencies from BrowserViewControllerDependencies.

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 24, Patchset 20 (Latest):@interface BVCContainerViewController () <FullscreenUIElement>
      Mark Cogan . unresolved

      Consider finding a better name for this class.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ewann Pellé
      • Gauthier Ambard
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 20
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Thu, 15 Jan 2026 12:38:29 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      Jan 15, 2026, 10:25:38 AM (6 days ago) Jan 15
      to Aliona Dangla, Gauthier Ambard, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard and Mark Cogan

      Ewann Pellé added 4 comments

      Commit Message
      Line 10, Patchset 18:BrowserViewController to BVCContainerViewController.
      Gauthier Ambard . unresolved

      This feels like a good first step, but I wonder if it is the "right" approach.
      In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
      How do you plan to do it?

      Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
      I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

      In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

      Ewann Pellé

      I think deleting tab strip refs from BVC should indeed be done.

      Do you know if the tab strip VC will be impacted with fullscreen animations when the assistant sheet will be displayed ?

      We can also have an "hybrid" approach, the BVCContainerViewController should observe the tab strip height (might be static when assistant sheet is visible) and push updates to the BVC. This data will contain the size of the strip + additional insets. This will create a one way data flow.

      Ewann Pellé

      To make it clearer it will be an inset as suggested, but the BVCCVC will still manage tab strip logic.

      Mark Cogan

      +1 to making BVC aware of less things.

      Ewann Pellé

      Would it be fine if it's done in the following CL ?

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 17, Patchset 20 (Latest):@protocol BVCContainerContent <NSObject>
      Mark Cogan . unresolved

      I can maybe tolerate this name as it's temporary, but I really don't like directly referencing the (abbreviated) name of a view controller in other APIs. I guess here it's connected to BVCCVC, whose name I also don't like.

      For protocols that temporarily expose details that will soon be refactored, we've used the name "Plumbing" in the past. BVCContainerPlumbing?

      Ewann Pellé

      I'm fine renaming it to BVCContainerPlumbing, it will be removed in the following CL.

      Line 24, Patchset 18:@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
      Gauthier Ambard . unresolved

      Do you still need it inside the BVC?
      What is it used for?

      Ewann Pellé

      No but.. BrowserViewControllerDependencies hands it to BrowserViewController.
      That's why this protocol is a "temporary" solution.

      Mark Cogan

      Obviously nothing in the UI layer should be depending on it.

      Ewann Pellé

      This protocol will be cleaned in the following CL.

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 24, Patchset 20 (Latest):@interface BVCContainerViewController () <FullscreenUIElement>
      Mark Cogan . unresolved

      Consider finding a better name for this class.

      Ewann Pellé

      Will be renamed to BrowserLayoutViewController in a follow up.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Gauthier Ambard
      • Mark Cogan
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 20
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Thu, 15 Jan 2026 15:25:25 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Mark Cogan <ma...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Gauthier Ambard (Gerrit)

      unread,
      Jan 15, 2026, 1:20:07 PM (6 days ago) Jan 15
      to Ewann Pellé, Aliona Dangla, Mark Cogan, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Ewann Pellé and Mark Cogan

      Gauthier Ambard added 3 comments

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 24, Patchset 18:@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
      Gauthier Ambard . unresolved

      Do you still need it inside the BVC?
      What is it used for?

      Ewann Pellé

      No but.. BrowserViewControllerDependencies hands it to BrowserViewController.
      That's why this protocol is a "temporary" solution.

      Mark Cogan

      Obviously nothing in the UI layer should be depending on it.

      Ewann Pellé

      This protocol will be cleaned in the following CL.

      Gauthier Ambard

      Can't you just remove it from the dependencies?
      My question is: what is it used for? Is it necessary to have it in the dependencies?

      Line 21, Patchset 18: FullscreenController* fullscreenController;
      Gauthier Ambard . unresolved

      You can get it from the Browser, I don't think you need it here?
      Consider passing it in init.

      Ewann Pellé

      Currently, the BrowserCoordinator sets up a massive struct (BrowserViewControllerDependencies) and hands it to BrowserViewController.

      I think, to inject these directly into BVCContainerViewController during init, we would need to refactor BrowserCoordinator's init sequence to untangle the them before the BVC is created.

      Mark Cogan

      Not that the intent is that ongoing refactoring removes dependencies from BrowserViewControllerDependencies.

      Gauthier Ambard

      I think we can pass it to the constructor. I know that the BVCdependency is there, but you want to remove this protocol long term, so why not doing it now?

      File ios/chrome/browser/main/ui_bundled/bvc_container_view_controller.mm
      Line 164, Patchset 18: maxViewportInsets:(UIEdgeInsets)maxViewportInsets {
      Gauthier Ambard . unresolved

      @aliona...@chromium.org what is this method used for?

      Aliona Dangla

      `min` and `max` are used to compute `lvh` and `svh` css values correctly, it is currently implemented only when smooth scrolling is enabled

      To test it ->
      https://docs.google.com/document/d/1-4X1Y49KsD-ktuvjNKfkAERUNwA6-NmutcG9PDBqwt4/edit?usp=sharing&resourcekey=0-ShbGbftqEm9hwNd5rtHvNQ

      Gauthier Ambard

      So do we need to update the `_fullscreenViewportInsetRange` here?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ewann Pellé
      • Mark Cogan
      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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 20
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Mark Cogan <ma...@chromium.org>
      Gerrit-Attention: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Comment-Date: Thu, 15 Jan 2026 18:19:59 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Mark Cogan <ma...@chromium.org>
      Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
      Comment-In-Reply-To: Aliona Dangla <aliona...@chromium.org>
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mark Cogan (Gerrit)

      unread,
      Jan 16, 2026, 5:41:41 AM (5 days ago) Jan 16
      to Ewann Pellé, Aliona Dangla, Gauthier Ambard, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Ewann Pellé

      Mark Cogan voted and added 3 comments

      Votes added by Mark Cogan

      Code-Review+1

      3 comments

      Patchset-level comments
      Commit Message
      Line 10, Patchset 18:BrowserViewController to BVCContainerViewController.
      Gauthier Ambard . unresolved

      This feels like a good first step, but I wonder if it is the "right" approach.
      In particular, in case we want to contain it, the primary toolbar isn't touching the TabStrip. There is some kind of containment of the BVC.
      How do you plan to do it?

      Should the BVC be inset by the BVCCVC and thus not be displayed below the TabStrip?
      I don't think this is a good idea as I think it wouldn't work very well with fullscreen for the sites. But I am interested in our reasoning here.

      In particular, I was more thinking along the lines of the BVCCVC adding an "inset" to the BVC, rather than the BVC being aware of the condition to display the TabStrip. That would remove all TabStrip-related logic out of BVC and provide a better encapsulation of the responsibility.

      Ewann Pellé

      I think deleting tab strip refs from BVC should indeed be done.

      Do you know if the tab strip VC will be impacted with fullscreen animations when the assistant sheet will be displayed ?

      We can also have an "hybrid" approach, the BVCContainerViewController should observe the tab strip height (might be static when assistant sheet is visible) and push updates to the BVC. This data will contain the size of the strip + additional insets. This will create a one way data flow.

      Ewann Pellé

      To make it clearer it will be an inset as suggested, but the BVCCVC will still manage tab strip logic.

      Mark Cogan

      +1 to making BVC aware of less things.

      Ewann Pellé

      Would it be fine if it's done in the following CL ?

      Mark Cogan

      Yes, I'd expect a big refactor like this to be incremental.

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 17, Patchset 20 (Latest):@protocol BVCContainerContent <NSObject>
      Mark Cogan . unresolved

      I can maybe tolerate this name as it's temporary, but I really don't like directly referencing the (abbreviated) name of a view controller in other APIs. I guess here it's connected to BVCCVC, whose name I also don't like.

      For protocols that temporarily expose details that will soon be refactored, we've used the name "Plumbing" in the past. BVCContainerPlumbing?

      Ewann Pellé

      I'm fine renaming it to BVCContainerPlumbing, it will be removed in the following CL.

      Mark Cogan

      No need to rename if it's that temporary.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ewann Pellé
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement 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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 20
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Comment-Date: Fri, 16 Jan 2026 10:41:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Mark Cogan <ma...@chromium.org>
      Comment-In-Reply-To: Ewann Pellé <ewa...@chromium.org>
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ewann Pellé (Gerrit)

      unread,
      7:32 AM (5 hours ago) 7:32 AM
      to Mark Cogan, Aliona Dangla, Gauthier Ambard, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Gauthier Ambard

      Ewann Pellé added 2 comments

      File ios/chrome/browser/browser_view/ui_bundled/bvc_container_content.h
      Line 24, Patchset 18:@property(nonatomic, strong, readonly) TabStripCoordinator* tabStripCoordinator;
      Gauthier Ambard . unresolved

      Do you still need it inside the BVC?
      What is it used for?

      Ewann Pellé

      No but.. BrowserViewControllerDependencies hands it to BrowserViewController.
      That's why this protocol is a "temporary" solution.

      Mark Cogan

      Obviously nothing in the UI layer should be depending on it.

      Ewann Pellé

      This protocol will be cleaned in the following CL.

      Gauthier Ambard

      Can't you just remove it from the dependencies?
      My question is: what is it used for? Is it necessary to have it in the dependencies?

      Ewann Pellé

      Will be improved in the following CL.

      Line 21, Patchset 18: FullscreenController* fullscreenController;
      Gauthier Ambard . unresolved

      You can get it from the Browser, I don't think you need it here?
      Consider passing it in init.

      Ewann Pellé

      Currently, the BrowserCoordinator sets up a massive struct (BrowserViewControllerDependencies) and hands it to BrowserViewController.

      I think, to inject these directly into BVCContainerViewController during init, we would need to refactor BrowserCoordinator's init sequence to untangle the them before the BVC is created.

      Mark Cogan

      Not that the intent is that ongoing refactoring removes dependencies from BrowserViewControllerDependencies.

      Gauthier Ambard

      I think we can pass it to the constructor. I know that the BVCdependency is there, but you want to remove this protocol long term, so why not doing it now?

      Ewann Pellé

      Will be updated in the following CL.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Gauthier Ambard
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement 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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 23
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-CC: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Wed, 21 Jan 2026 12:32:24 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Gauthier Ambard (Gerrit)

      unread,
      11:13 AM (2 hours ago) 11:13 AM
      to Ewann Pellé, Mark Cogan, Aliona Dangla, Chromium LUCI CQ, chromium...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
      Attention needed from Ewann Pellé

      Gauthier Ambard voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Ewann Pellé
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement 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: I61961806768ab2c9a7326b2e87a215336e01832d
      Gerrit-Change-Number: 7415789
      Gerrit-PatchSet: 23
      Gerrit-Owner: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Reviewer: Mark Cogan <ma...@chromium.org>
      Gerrit-CC: Aliona Dangla <aliona...@chromium.org>
      Gerrit-Attention: Ewann Pellé <ewa...@chromium.org>
      Gerrit-Comment-Date: Wed, 21 Jan 2026 16:13:00 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages