Fix visual gutters during mixed resizing [chromium/src : main]

1 view
Skip to first unread message

ben chin (Gerrit)

unread,
Jun 30, 2026, 1:31:16 AMJun 30
to Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
Attention needed from Bo Liu

ben chin voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Bo Liu
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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
Gerrit-Change-Number: 8022202
Gerrit-PatchSet: 4
Gerrit-Owner: ben chin <lu...@chromium.org>
Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
Gerrit-Reviewer: ben chin <lu...@chromium.org>
Gerrit-Attention: Bo Liu <bo...@chromium.org>
Gerrit-Comment-Date: Tue, 30 Jun 2026 05:30:46 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Bo Liu (Gerrit)

unread,
Jul 1, 2026, 11:47:50 AMJul 1
to ben chin, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
Attention needed from ben chin

Bo Liu added 4 comments

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Bo Liu . resolved

this is a lot of complexity and requires justification for landing, and I don't see that justification yet

Commit Message
Line 13, Patchset 4 (Latest):1. Holds the child SurfaceView at the maximum dimensions reached during an active drag gesture. Preventing the surface from shrinking mid-drag eliminates empty background gutters when dragging diagonally or smaller.
Bo Liu . unresolved

this doesn't make sense to me..

what's causing gutter in this case? Is viz being too fast or too slow? If it's too slow, then is it running into the throttling for pure shrink?

Line 15, Patchset 4 (Latest):2. Replaces refresh-rate dependent frame counting with a 200ms elapsed time check (FLUID_RESIZE_TIMEOUT_MS). Once 200ms passes without a layout change and Viz is idle, the surface cleanly resets after the next buffer swap. This aligns 1:1 with AOSP WindowManager's 200ms drag-resizing sync timeout and uses ViewUtils.requestLayout() for jank tracing and presubmit compliance.
Bo Liu . unresolved

what's this?

File chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
Line 275, Patchset 4 (Latest): gfx::Size display_size = screen->GetPrimaryDisplay().GetSizeInPixel();
Bo Liu . unresolved

get display that the window is in, not the primary one

Open in Gerrit

Related details

Attention is currently required from:
  • ben chin
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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
    Gerrit-Change-Number: 8022202
    Gerrit-PatchSet: 4
    Gerrit-Owner: ben chin <lu...@chromium.org>
    Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
    Gerrit-Reviewer: ben chin <lu...@chromium.org>
    Gerrit-Attention: ben chin <lu...@chromium.org>
    Gerrit-Comment-Date: Wed, 01 Jul 2026 15:47:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    ben chin (Gerrit)

    unread,
    Jul 1, 2026, 10:29:49 PMJul 1
    to Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
    Attention needed from Bo Liu

    ben chin voted and added 3 comments

    Votes added by ben chin

    Commit-Queue+1

    3 comments

    Commit Message
    Line 13, Patchset 4 (Latest):1. Holds the child SurfaceView at the maximum dimensions reached during an active drag gesture. Preventing the surface from shrinking mid-drag eliminates empty background gutters when dragging diagonally or smaller.
    Bo Liu . resolved

    this doesn't make sense to me..

    what's causing gutter in this case? Is viz being too fast or too slow? If it's too slow, then is it running into the throttling for pure shrink?

    ben chin

    Viz is too slow during window expansion (W++), so it's not related to pure shrink throttling. The OS window expands faster than clank, exposing a gutter. Extending this SolidColorLayer covers the new area instantly without waiting for layout.

    Line 15, Patchset 4 (Latest):2. Replaces refresh-rate dependent frame counting with a 200ms elapsed time check (FLUID_RESIZE_TIMEOUT_MS). Once 200ms passes without a layout change and Viz is idle, the surface cleanly resets after the next buffer swap. This aligns 1:1 with AOSP WindowManager's 200ms drag-resizing sync timeout and uses ViewUtils.requestLayout() for jank tracing and presubmit compliance.
    Bo Liu . resolved

    what's this?

    ben chin

    My previous solution is waiting for a fixed number of compositor frames to pass before considering the resize 'finished' and resetting the surface. However, counting frames is inconsistent across different device refresh rates (e.g., 5 frames is ~80ms on 60Hz, but only ~40ms on 120Hz) which might show gutter. I replaced that with a strict 200ms timeout, which matches AOSP WindowManager's own drag-resize sync timeout.

    File chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc
    Line 275, Patchset 4 (Latest): gfx::Size display_size = screen->GetPrimaryDisplay().GetSizeInPixel();
    Bo Liu . resolved

    get display that the window is in, not the primary one

    ben chin

    thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Bo Liu
    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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 4
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: Bo Liu <bo...@chromium.org>
      Gerrit-Comment-Date: Thu, 02 Jul 2026 02:29:22 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Bo Liu <bo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      ben chin (Gerrit)

      unread,
      Jul 1, 2026, 11:13:59 PMJul 1
      to Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from Bo Liu

      ben chin voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Bo Liu
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 6
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: Bo Liu <bo...@chromium.org>
      Gerrit-Comment-Date: Thu, 02 Jul 2026 03:13:35 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      ben chin (Gerrit)

      unread,
      Jul 1, 2026, 11:34:45 PMJul 1
      to Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from Bo Liu

      ben chin voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Bo Liu
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 7
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: Bo Liu <bo...@chromium.org>
      Gerrit-Comment-Date: Thu, 02 Jul 2026 03:34:20 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Bo Liu (Gerrit)

      unread,
      Jul 5, 2026, 9:46:17 PMJul 5
      to ben chin, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from ben chin

      Bo Liu added 2 comments

      Commit Message
      Line 13, Patchset 4:1. Holds the child SurfaceView at the maximum dimensions reached during an active drag gesture. Preventing the surface from shrinking mid-drag eliminates empty background gutters when dragging diagonally or smaller.
      Bo Liu . resolved

      this doesn't make sense to me..

      what's causing gutter in this case? Is viz being too fast or too slow? If it's too slow, then is it running into the throttling for pure shrink?

      ben chin

      Viz is too slow during window expansion (W++), so it's not related to pure shrink throttling. The OS window expands faster than clank, exposing a gutter. Extending this SolidColorLayer covers the new area instantly without waiting for layout.

      Bo Liu

      if viz is too slow, then can't you just disable the throttling you added?

      Line 15, Patchset 4:2. Replaces refresh-rate dependent frame counting with a 200ms elapsed time check (FLUID_RESIZE_TIMEOUT_MS). Once 200ms passes without a layout change and Viz is idle, the surface cleanly resets after the next buffer swap. This aligns 1:1 with AOSP WindowManager's 200ms drag-resizing sync timeout and uses ViewUtils.requestLayout() for jank tracing and presubmit compliance.
      Bo Liu . resolved

      what's this?

      ben chin

      My previous solution is waiting for a fixed number of compositor frames to pass before considering the resize 'finished' and resetting the surface. However, counting frames is inconsistent across different device refresh rates (e.g., 5 frames is ~80ms on 60Hz, but only ~40ms on 120Hz) which might show gutter. I replaced that with a strict 200ms timeout, which matches AOSP WindowManager's own drag-resize sync timeout.

      Bo Liu

      previous solution that was never submitted? then mentioning that solution will only add confusion

      this is still an arbitrary timeout though, is framework going to expose that timeout?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • ben chin
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 8
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: ben chin <lu...@chromium.org>
      Gerrit-Comment-Date: Mon, 06 Jul 2026 01:46:07 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: ben chin <lu...@chromium.org>
      Comment-In-Reply-To: Bo Liu <bo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Bo Liu (Gerrit)

      unread,
      Jul 5, 2026, 9:47:53 PMJul 5
      to ben chin, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from ben chin

      Bo Liu added 1 comment

      Commit Message
      Line 13, Patchset 4:1. Holds the child SurfaceView at the maximum dimensions reached during an active drag gesture. Preventing the surface from shrinking mid-drag eliminates empty background gutters when dragging diagonally or smaller.
      Bo Liu . resolved

      this doesn't make sense to me..

      what's causing gutter in this case? Is viz being too fast or too slow? If it's too slow, then is it running into the throttling for pure shrink?

      ben chin

      Viz is too slow during window expansion (W++), so it's not related to pure shrink throttling. The OS window expands faster than clank, exposing a gutter. Extending this SolidColorLayer covers the new area instantly without waiting for layout.

      Bo Liu

      if viz is too slow, then can't you just disable the throttling you added?

      Bo Liu

      also, so me an annotated trace with all the events that's leading up to gutters

      I don't think this vague description of words good enough anymore

      Open in Gerrit

      Related details

      Attention is currently required from:
      • ben chin
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 8
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: ben chin <lu...@chromium.org>
      Gerrit-Comment-Date: Mon, 06 Jul 2026 01:47:38 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      ben chin (Gerrit)

      unread,
      Jul 12, 2026, 11:02:22 PM (11 days ago) Jul 12
      to Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from Bo Liu

      ben chin voted and added 2 comments

      Votes added by ben chin

      Commit-Queue+1

      2 comments

      Commit Message
      Line 13, Patchset 4:1. Holds the child SurfaceView at the maximum dimensions reached during an active drag gesture. Preventing the surface from shrinking mid-drag eliminates empty background gutters when dragging diagonally or smaller.
      Bo Liu . resolved

      this doesn't make sense to me..

      what's causing gutter in this case? Is viz being too fast or too slow? If it's too slow, then is it running into the throttling for pure shrink?

      ben chin

      Viz is too slow during window expansion (W++), so it's not related to pure shrink throttling. The OS window expands faster than clank, exposing a gutter. Extending this SolidColorLayer covers the new area instantly without waiting for layout.

      Bo Liu

      if viz is too slow, then can't you just disable the throttling you added?

      Bo Liu

      also, so me an annotated trace with all the events that's leading up to gutters

      I don't think this vague description of words good enough anymore

      ben chin

      Hi Bo,

      Thank you for the feedback. I have completely removed the `setDrawPaused` pure shrink throttling from `CompositorView.surfaceChanged`.

      To answer your question on whether disabling throttling alone fixes the issue and to provide the annotated trace comparison from [Perfetto SQL](https://ui.perfetto.dev/#!/?s=b35e56c6c1cf84113a7645543359f2978734532c) log [slices](https://screenshot.googleplex.com/4fiJ8npvneP6kGq):

        #### 1. Throttling Removed: Viz Buffer Swap Latency Dropped by ~90%
        • Before (With  setDrawPaused  throttling): Buffer swaps ( CompositorView.didSwapBuffers ) lagged behind UI layout by 226ms to 1,131ms, with up to 12 consecutive  onLayout 
      expansion events queuing up before a single buffer swap returned.
      • After (No throttling, this CL): With throttling removed and layout stabilized, CompositorView.didSwapBuffers now returns cleanly within 5ms to 42ms (~1 to 2 frames).
        #### 2. Why We Still Need Layer & Surface Bounding Even With 5ms–42ms Swaps
        Even at peak unthrottled speed ( ~5ms–42ms  swap latency), when the user actively drags to expand the window ( W++ ):
        1. The 1–2 Frame Multi-Process Gap:  CompositorView.onLayout  expands the OS window synchronously at  t = 0 ms . Clank's multi-process rendering pipeline takes 1–2 vsync frames ( ~15ms–42ms ) to produce and swap the newly sized buffer.
      2. Covering the Gap with Zero Overhead: During those 15ms–42ms before the new buffer swaps, the outgoing buffer ( W_old ) sits inside the wider OS window ( W_new ).
      Line 15, Patchset 4:2. Replaces refresh-rate dependent frame counting with a 200ms elapsed time check (FLUID_RESIZE_TIMEOUT_MS). Once 200ms passes without a layout change and Viz is idle, the surface cleanly resets after the next buffer swap. This aligns 1:1 with AOSP WindowManager's 200ms drag-resizing sync timeout and uses ViewUtils.requestLayout() for jank tracing and presubmit compliance.
      Bo Liu . resolved

      what's this?

      ben chin

      My previous solution is waiting for a fixed number of compositor frames to pass before considering the resize 'finished' and resetting the surface. However, counting frames is inconsistent across different device refresh rates (e.g., 5 frames is ~80ms on 60Hz, but only ~40ms on 120Hz) which might show gutter. I replaced that with a strict 200ms timeout, which matches AOSP WindowManager's own drag-resize sync timeout.

      Bo Liu

      previous solution that was never submitted? then mentioning that solution will only add confusion

      this is still an arbitrary timeout though, is framework going to expose that timeout?

      ben chin

      I have removed the mention of the unsubmitted solution from the commit msg.

      Regarding whether the framework exposes the timeout: Unfortunately, the Android SDK does not expose this via public APIs or provide a drag-end callback. However, inside [AOSP WindowManagerService](https://source.corp.google.com/h/googleplex-android/platform/superproject/main/+/main:frameworks/base/services/core/java/com/android/server/wm/DragResizingSynchronizer.java;l=43), `SYNC_TIMEOUT = 200` is the private constant used internally to synchronize and release window resize barriers. We use `FLUID_RESIZE_TIMEOUT_MS = 200` here to mirror that exact same OS-level timeout.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Bo Liu
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 9
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: Bo Liu <bo...@chromium.org>
      Gerrit-Comment-Date: Mon, 13 Jul 2026 03:01:48 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      ben chin (Gerrit)

      unread,
      Jul 14, 2026, 3:28:06 AM (10 days ago) Jul 14
      to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from Bo Liu and David Trainor

      ben chin voted Commit-Queue+1

      Commit-Queue+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Bo Liu
      • David Trainor
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
      Gerrit-Change-Number: 8022202
      Gerrit-PatchSet: 10
      Gerrit-Owner: ben chin <lu...@chromium.org>
      Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
      Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
      Gerrit-Reviewer: ben chin <lu...@chromium.org>
      Gerrit-Attention: David Trainor <dtra...@chromium.org>
      Gerrit-Attention: Bo Liu <bo...@chromium.org>
      Gerrit-Comment-Date: Tue, 14 Jul 2026 07:27:40 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Bo Liu (Gerrit)

      unread,
      Jul 16, 2026, 10:45:15 PM (7 days ago) Jul 16
      to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
      Attention needed from David Trainor and ben chin

      Bo Liu added 4 comments

      File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
      Line 136, Patchset 11 (Latest): private final Choreographer.FrameCallback mResetResizeStateFrameCallback =
      Bo Liu . unresolved

      why use choreographer? and why busy loop it? a simple delayed task should do?

      Line 307, Patchset 11 (Latest): protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
      Bo Liu . unresolved

      is there a more declarative way to just set the size of the view, instead of hacking onlayout or onmeasure?

      Line 338, Patchset 11 (Latest): int targetWidth = Math.max(w, mMaxResizeWidth);
      Bo Liu . unresolved

      how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

      Line 674, Patchset 11 (Parent): CompositorViewJni.get().setDrawPaused(mNativeCompositorView, false);
      Bo Liu . unresolved

      I think pull out the removing of the pause draw code into a separate CL *ahead* of this change

      and make sure to remove native side of stuff as well

      Open in Gerrit

      Related details

      Attention is currently required from:
      • David Trainor
      • ben chin
      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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
        Gerrit-Change-Number: 8022202
        Gerrit-PatchSet: 11
        Gerrit-Owner: ben chin <lu...@chromium.org>
        Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
        Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
        Gerrit-Reviewer: ben chin <lu...@chromium.org>
        Gerrit-Attention: ben chin <lu...@chromium.org>
        Gerrit-Attention: David Trainor <dtra...@chromium.org>
        Gerrit-Comment-Date: Fri, 17 Jul 2026 02:45:07 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        ben chin (Gerrit)

        unread,
        Jul 17, 2026, 2:29:43 AM (7 days ago) Jul 17
        to chromium...@chromium.org, navigation...@chromium.org, alexmo...@chromium.org, creis...@chromium.org

        ben chin has uploaded the change for review

        Commit message

        Fix visual gutters during mixed resizing

        Mixed resizing Clank (e.g., W++, H--) can cause Clank's rendering engine
        to lag behind the OS window, exposing unrendered background gutters.

        This CL fixes this through two improvements:

        1. Allocates the full display size to the child SurfaceView immediately
        when resizing starts, and uses declarative setTranslationX/Y to keep
        the content visually stationary.

        2. Uses a Handler-based 200ms timeout (FLUID_RESIZE_TIMEOUT_MS) on the
        UI thread to cleanly reset the SurfaceView back to MATCH_PARENT when
        resizing stops.
        Bug: 524084084
        Change-Id: I245362d1f6ae976e70ac28e0ec57e7376de45564

        Change diff


        Change information

        Files:
        • M chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
        Change size: M
        Delta: 1 file changed, 125 insertions(+), 4 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: I245362d1f6ae976e70ac28e0ec57e7376de45564
          Gerrit-Change-Number: 8113588
          Gerrit-PatchSet: 1
          Gerrit-Owner: ben chin <lu...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          ben chin (Gerrit)

          unread,
          Jul 17, 2026, 2:31:39 AM (7 days ago) Jul 17
          to Bo Liu, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org
          Attention needed from Bo Liu

          ben chin voted Commit-Queue+1

          Commit-Queue+1
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Bo Liu
          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: I245362d1f6ae976e70ac28e0ec57e7376de45564
          Gerrit-Change-Number: 8113588
          Gerrit-PatchSet: 1
          Gerrit-Owner: ben chin <lu...@chromium.org>
          Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
          Gerrit-Reviewer: ben chin <lu...@chromium.org>
          Gerrit-Attention: Bo Liu <bo...@chromium.org>
          Gerrit-Comment-Date: Fri, 17 Jul 2026 06:31:16 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          ben chin (Gerrit)

          unread,
          Jul 17, 2026, 2:33:51 AM (7 days ago) Jul 17
          to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
          Attention needed from Bo Liu and David Trainor

          ben chin added 4 comments

          File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
          Line 136, Patchset 11 (Latest): private final Choreographer.FrameCallback mResetResizeStateFrameCallback =
          Bo Liu . resolved

          why use choreographer? and why busy loop it? a simple delayed task should do?

          ben chin

          Yes, replaced Choreographer with a delayed runnable. We now schedule a single 200ms task when resizing starts. If Viz is still busy when it runs, we retry with a 16ms delay.

          Line 307, Patchset 11 (Latest): protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
          Bo Liu . resolved

          is there a more declarative way to just set the size of the view, instead of hacking onlayout or onmeasure?

          ben chin

          update the SurfaceView's LayoutParams to the display size when resize starts

          Line 338, Patchset 11 (Latest): int targetWidth = Math.max(w, mMaxResizeWidth);
          Bo Liu . resolved

          how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

          ben chin

          sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

          Line 674, Patchset 11 (Parent): CompositorViewJni.get().setDrawPaused(mNativeCompositorView, false);
          Bo Liu . unresolved

          I think pull out the removing of the pause draw code into a separate CL *ahead* of this change

          and make sure to remove native side of stuff as well

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Bo Liu
          • David Trainor
          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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 11
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 17 Jul 2026 06:33:17 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Bo Liu <bo...@chromium.org>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 17, 2026, 8:36:31 PM (6 days ago) Jul 17
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Line 338, Patchset 11 (Latest): int targetWidth = Math.max(w, mMaxResizeWidth);
            Bo Liu . unresolved

            how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

            ben chin

            sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

            ben chin

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588. If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine). Therefore, the system stops holding the parent window frame and user will see the gutter.

            Gerrit-Comment-Date: Sat, 18 Jul 2026 00:35:57 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 19, 2026, 11:12:54 PM (4 days ago) Jul 19
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Line 338, Patchset 11 (Latest): int targetWidth = Math.max(w, mMaxResizeWidth);
            Bo Liu . unresolved

            how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

            ben chin

            sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

            ben chin

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588. If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine). Therefore, the system stops holding the parent window frame and user will see the gutter.

            Bo Liu

            Why not keep using this CL? Having two similar ones is very confusing. Plus I can't look at incremental diffs.

            If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine).

            I think it made sense up to here.

            Therefore, the system stops holding the parent window frame and user will see the gutter.

            This I don't follow. What happens that's the problem?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 11
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Mon, 20 Jul 2026 03:12:42 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 20, 2026, 2:22:56 AM (4 days ago) Jul 20
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin voted and added 2 comments

            Votes added by ben chin

            Commit-Queue+1

            2 comments

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Line 338, Patchset 11: int targetWidth = Math.max(w, mMaxResizeWidth);
            Bo Liu . unresolved

            how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

            ben chin

            sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

            ben chin

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588. If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine). Therefore, the system stops holding the parent window frame and user will see the gutter.

            Bo Liu

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588.

            Why not keep using this CL? Having two similar ones is very confusing. Plus I can't look at incremental diffs.

            If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine).

            I think it made sense up to here.

            Therefore, the system stops holding the parent window frame and user will see the gutter.

            This I don't follow. What happens that's the problem?

            ben chin

            I've uploaded the new patchset back here!

            Regarding the technical point: Because the `SurfaceView` dimensions are static, the Android OS removes the synchronization lock (BLAST sync) that usually ties the parent window expansion to the child surface redraw. Without that lock, the parent window border expands instantly with the user's finger, but our Viz compositor rendering is fully asynchronous and always lags behind. The gap between the instantly expanded window border and the lagging asynchronous web content is exposed as the visual gutter.

            Line 674, Patchset 11 (Parent): CompositorViewJni.get().setDrawPaused(mNativeCompositorView, false);
            Bo Liu . resolved

            I think pull out the removing of the pause draw code into a separate CL *ahead* of this change

            and make sure to remove native side of stuff as well

            ben chin

            sure! created
            https://chromium-review.googlesource.com/c/chromium/src/+/8113587
            and a new version for all the suggested solution we discussed at
            https://chromium-review.googlesource.com/c/chromium/src/+/8113588

            ben chin

            discarded https://chromium-review.googlesource.com/c/chromium/src/+/8113588 and will continue on this CL for after removal logic

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Mon, 20 Jul 2026 06:22:25 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 20, 2026, 3:57:57 PM (4 days ago) Jul 20
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Line 338, Patchset 11: int targetWidth = Math.max(w, mMaxResizeWidth);
            Bo Liu . unresolved

            how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

            ben chin

            sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

            ben chin

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588. If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine). Therefore, the system stops holding the parent window frame and user will see the gutter.

            Bo Liu

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588.

            Why not keep using this CL? Having two similar ones is very confusing. Plus I can't look at incremental diffs.

            If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine).

            I think it made sense up to here.

            Therefore, the system stops holding the parent window frame and user will see the gutter.

            This I don't follow. What happens that's the problem?

            ben chin

            I've uploaded the new patchset back here!

            Regarding the technical point: Because the `SurfaceView` dimensions are static, the Android OS removes the synchronization lock (BLAST sync) that usually ties the parent window expansion to the child surface redraw. Without that lock, the parent window border expands instantly with the user's finger, but our Viz compositor rendering is fully asynchronous and always lags behind. The gap between the instantly expanded window border and the lagging asynchronous web content is exposed as the visual gutter.

            Bo Liu

            Two questions wrt to "the synchronization lock"..

            sounds like there is *some* synchronization? what does it synchronize exactly? Waiting for sufaceRedrawNeededAsync?

            second.. there is no way to predict what the user will do after doing a "diagonal" resize. maybe then user does a pure shrink without lifting the touch or mouse button, and you are going to run into the same problem where surface view doesn't resize?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Mon, 20 Jul 2026 19:57:44 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 20, 2026, 9:40:52 PM (3 days ago) Jul 20
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin voted and added 1 comment

            Votes added by ben chin

            Commit-Queue+1

            1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Line 338, Patchset 11: int targetWidth = Math.max(w, mMaxResizeWidth);
            Bo Liu . unresolved

            how about just get the display size and allocate that size immediately? instead of still doing incremental resizing

            ben chin

            sure! grab the max `DisplayMetrics` from the context and lock the bounds to it immediately.

            ben chin

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588. If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine). Therefore, the system stops holding the parent window frame and user will see the gutter.

            Bo Liu

            As I experimented at https://chromium-review.git.corp.google.com/c/chromium/src/+/8113588.

            Why not keep using this CL? Having two similar ones is very confusing. Plus I can't look at incremental diffs.

            If we allocate `mDisplayWidth/mDisplayHeight` upfront on the first drag event, the structural view bounds become static for the rest of the drag. When a SurfaceView's layout dimensions stop changing, Android's `ViewRootImpl` stops triggering its geometry transactions (BLASTSyncEngine).

            I think it made sense up to here.

            Therefore, the system stops holding the parent window frame and user will see the gutter.

            This I don't follow. What happens that's the problem?

            ben chin

            I've uploaded the new patchset back here!

            Regarding the technical point: Because the `SurfaceView` dimensions are static, the Android OS removes the synchronization lock (BLAST sync) that usually ties the parent window expansion to the child surface redraw. Without that lock, the parent window border expands instantly with the user's finger, but our Viz compositor rendering is fully asynchronous and always lags behind. The gap between the instantly expanded window border and the lagging asynchronous web content is exposed as the visual gutter.

            Bo Liu

            Two questions wrt to "the synchronization lock"..

            sounds like there is *some* synchronization? what does it synchronize exactly? Waiting for sufaceRedrawNeededAsync?

            second.. there is no way to predict what the user will do after doing a "diagonal" resize. maybe then user does a pure shrink without lifting the touch or mouse button, and you are going to run into the same problem where surface view doesn't resize?

            ben chin

            Hi Bo,
            To answer your question:
            1. When `SurfaceView` layout bounds change during a resize, Android's `ViewRootImpl` detects the geometry change and registers a `surfaceRedrawNeededAsync` callback via `BLASTSyncEngine`. This holds the OS window transaction until `CompositorView` completes its draw callback. When we lock `SurfaceView` layout bounds upfront to static display dimensions, `ViewRootImpl` sees no layout change on the child `SurfaceView` and skips registering `surfaceRedrawNeededAsync` / `BLASTSyncEngine` barriers. The OS window frame resizes uninhibited while Viz renders asynchronously, exposing the lag as a gutter.

            2. Using this CL will not have the issue you described. I tested this exact scenario and Web content continues rendering and updating frames throughout the gesture.

            https://drive.google.com/file/d/1GvmCP43X0ZAV8wi6BOUZRwepo2fu_85g/view?usp=drive_link&resourcekey=0-6TiiBvgv2ohFPla-qMPdqQ

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Tue, 21 Jul 2026 01:40:19 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 21, 2026, 10:13:22 PM (2 days ago) Jul 21
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            2. Using this CL will not have the issue you described. I tested this exact scenario and Web content continues rendering and updating frames throughout the gesture.

            https://drive.google.com/file/d/1GvmCP43X0ZAV8wi6BOUZRwepo2fu_85g/view?usp=drive_link&resourcekey=0-6TiiBvgv2ohFPla-qMPdqQ

            That amounts to "it looks ok", which is not convincing. The initial diagonal resize puts us in "don't shrink surfaceview" mode, then surfaceview shouldn't resize on shrinking resize, and then we run into the problem you described? How is that avoided?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Wed, 22 Jul 2026 02:13:14 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 21, 2026, 10:50:19 PM (2 days ago) Jul 21
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            Here is the mechanism that avoids frame starvation during mid-drag shrink reversals:
            1. [Removal of SetDrawPaused](https://chromium-review.git.corp.google.com/c/chromium/src/+/8113587): Previously, shrink resizes triggered `SetDrawPaused(true)`, which explicitly paused the cc::slim compositor until SurfaceView received a shrink callback. Because `SetDrawPaused` is gone, CompositorImpl and Viz continue producing and swapping frames
            2. When shrinking, the parent window frame clips the oversized (W_max, H_max) surface. setTranslationX/Y keeps the content anchored while Viz renders at the active window viewport size (W_current, H_current). Once drag stops, the 200ms timer resets SurfaceView back to `MATCH_PARENT`.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Wed, 22 Jul 2026 02:49:48 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 22, 2026, 10:33:59 PM (2 days ago) Jul 22
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            sounds like AI slop..

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Thu, 23 Jul 2026 02:33:44 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 22, 2026, 10:45:52 PM (2 days ago) Jul 22
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            Let me explain in a more concise way ..... In the old code, whenever the window shrank, Clank called `SetDrawPaused(true)` which stops rendering new frames until SurfaceView finishes shrinking. In this CL, we remove `SetDrawPaused` so Viz keeps producing frames even if SurfaceView stays at (W_max, H_max). The shrinking window frame just clips the oversized surface, so there's no freeze and no gutter.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Thu, 23 Jul 2026 02:45:27 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 22, 2026, 11:14:36 PM (2 days ago) Jul 22
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            that's not what I'm asking. I'm asking in this case SurfaceView no longer resizes on window resize, so there is no "synchronization lock", how is that not a problem?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Thu, 23 Jul 2026 03:14:17 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 22, 2026, 11:30:12 PM (2 days ago) Jul 22
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            No, because the surface is already bigger than the window and the bigger part will be croped. The sync lock is needed to hold the window frame expansion until a larger surface buffer is allocated to prevent gutters (eg: the window expands past W_max triggers sync lock)

            When SurfaceView is held at (W_max, H_max), the surface buffer is already larger than the window frame. Expanding or shrinking the window just reveals or crops the already-allocated surface, so there's no unallocated nor need for a sync lock.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Thu, 23 Jul 2026 03:29:47 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 23, 2026, 11:28:54 AM (20 hours ago) Jul 23
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            that sounds like you are saying "synchronization lock" just isn't needed, then why not just do what I suggested before and just start with display-sized surface when drag starts, and don't bother with growing surfaceview on size increase?

            we are going in circles here...

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Thu, 23 Jul 2026 15:28:34 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 23, 2026, 9:34:59 PM (9 hours ago) Jul 23
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            [IIUC](https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/compositor_impl_android.cc;drc=e4680f2108abd2269c3706cacfd46e50af36aff1;l=419), Viz renders GPU buffers matching the active window viewport. If SurfaceView container bounds are set to full display upfront, expanding the window from 1000px to 1200px doesn't trigger layout bounds changes. Android's `ViewRootImpl` skips BLASTSyncEngine sync, expanding the window frame to 1200px instantly while the GPU buffer inside is still 1000px will expose a 200px gutter.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 01:34:36 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 23, 2026, 10:12:01 PM (9 hours ago) Jul 23
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            [IIUC](https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/compositor_impl_android.cc;drc=e4680f2108abd2269c3706cacfd46e50af36aff1;l=419), Viz renders GPU buffers matching the active window viewport. If SurfaceView container bounds are set to full display upfront,

            Assuming 1200px is the display size in this example, then SurfaceView and viz should already be sized to 1200px at this point

            expanding the window from 1000px to 1200px doesn't trigger layout bounds changes. Android's `ViewRootImpl` skips BLASTSyncEngine sync, expanding the window frame to 1200px instantly while the GPU buffer inside is still 1000px

            No, viz should be 1200px already

            will expose a 200px gutter.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 02:11:50 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            Jul 23, 2026, 10:48:34 PM (8 hours ago) Jul 23
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            Viz surface size (SetWindowBounds) [controls](https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_widget_host_view_android.cc;drc=0976730981877ed30e1cb06c63ad7d60c030c7f4;l=3218) Blink's CSS Web Viewport (host_->SetViewportRectAndScale) as well so If we set `SetWindowBounds(1200px)` upfront while the window is 1000px then web content will be cut off. In addition, as the user drags (1000 px → 1050 px → 1200 px), web text fails to reflow dynamically to fit the moving window border.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 02:48:03 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Bo Liu (Gerrit)

            unread,
            Jul 23, 2026, 11:07:32 PM (8 hours ago) Jul 23
            to ben chin, David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from David Trainor and ben chin

            Bo Liu added 1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            Bo Liu

            web content should still resize with the window, I mean that should be obvious, so only the surface is display-sized, and viz can fill in the gutter with whatever color is necessary, and whatever details that needs to be worked out to make all this happen needs to be worked out

            but again, whatever problem are you are describing with going straight to display size will also happen if you do the diagonal resize, then grow, then shrink, then grow, so it's details that needs to be worked out anyway

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Trainor
            • ben chin
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 12
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: ben chin <lu...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 03:07:23 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            ben chin (Gerrit)

            unread,
            5:21 AM (2 hours ago) 5:21 AM
            to David Trainor, Bo Liu, Chromium LUCI CQ, chromium...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, navigation...@chromium.org, peilinwa...@google.com
            Attention needed from Bo Liu and David Trainor

            ben chin voted and added 1 comment

            Votes added by ben chin

            Commit-Queue+1

            1 comment

            File chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorView.java
            ben chin

            updated the patch to adopt your suggestion of using a display-sized SurfaceView upfront.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Bo Liu
            • David Trainor
            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: If722f2b2c82d3f86ba25f594272436ef10fb5a47
            Gerrit-Change-Number: 8022202
            Gerrit-PatchSet: 13
            Gerrit-Owner: ben chin <lu...@chromium.org>
            Gerrit-Reviewer: Bo Liu <bo...@chromium.org>
            Gerrit-Reviewer: David Trainor <dtra...@chromium.org>
            Gerrit-Reviewer: ben chin <lu...@chromium.org>
            Gerrit-Attention: Bo Liu <bo...@chromium.org>
            Gerrit-Attention: David Trainor <dtra...@chromium.org>
            Gerrit-Comment-Date: Fri, 24 Jul 2026 09:20:54 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy
            Reply all
            Reply to author
            Forward
            0 new messages