media: Implement VideoVisibility static tracking [chromium/src : main]

0 views
Skip to first unread message

Vikram Pasupathy (Gerrit)

unread,
Dec 8, 2025, 12:05:13 PM12/8/25
to Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Sangbaek Park

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Sangbaek Park
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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
Gerrit-Change-Number: 7204907
Gerrit-PatchSet: 12
Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Sangbaek Park <sangba...@chromium.org>
Gerrit-Comment-Date: Mon, 08 Dec 2025 17:05:01 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Sangbaek Park (Gerrit)

unread,
Dec 17, 2025, 12:55:18 PM12/17/25
to Vikram Pasupathy, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
Attention needed from Vikram Pasupathy

Sangbaek Park added 12 comments

File chrome/browser/media/encrypted_media_browsertest.cc
Line 1941, Patchset 14 (Latest): // Builders sometime do not display the whole window viewport, so verify some
// of the viewport is detected as visible.
EXPECT_GT(playback_start_it->second, 50);
Sangbaek Park . unresolved

50 sounds still flaky in the future. `EXPECT_GT(playback_start_it->second, 0);` might be better? WDYT?

Line 1945, Patchset 14 (Latest):
Sangbaek Park . unresolved

If you take a param name (hidden, occluded, partial_occluded) to be "true" and the expected ratio param into each test, you can remove duplicate codes.

Line 1991, Patchset 14 (Latest): query_params.emplace_back("occluded", "true");
Sangbaek Park . unresolved

I don't see the test for `partial_occluded`?

File media/test/data/eme_player.html
Line 229, Patchset 14 (Latest): if (urlParams.get('opacity') === '0') { // New block
Sangbaek Park . unresolved

What does this mean?

File third_party/blink/renderer/core/html/media/html_video_element.cc
Line 518, Patchset 14 (Parent): // Ensure that the |visibility_tracker_| is detached when |this| is moved to
// a new document. Calling |ElementDidMoveToNewDocument| on the tracker at
// this point prevents having the tracker attached to an old document. The
// subsequent call to |UpdateVideoVisibilityTracker| will re-attach
// the tracker to the new document if needed.
Sangbaek Park . unresolved

Why did this get removed?

Line 537, Patchset 14 (Latest): }
Sangbaek Park . unresolved

nit: Unnecessary change

File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.h
Line 129, Patchset 14 (Latest): ListBasedHitTestBehavior ComputeOcclusion(const ClientIdsSet& client_ids_set,
Sangbaek Park . unresolved

Why did you move this method? Just regrouping? Or unnecessary change.

File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
Line 327, Patchset 14 (Parent): DCHECK(report_visibility_cb_);
Sangbaek Park . unresolved

Removed this because now `report_visibility_cb_` can be null? Because no continous report is needed?

Line 464, Patchset 14 (Latest): if (request_visibility_ratio_callback_) {
std::move(request_visibility_ratio_callback_).Run(0.0);
}
Sangbaek Park . unresolved

Why do you call the callback with 0.0 here unnecessarily? If you intended to dispose it. `request_visibility_ratio_callback_ = nullptr;` should be enough?

Line 690, Patchset 14 (Latest): auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
Sangbaek Park . unresolved

Is this always zero rect since you did `occlusion_state_ = {};`?

Line 690, Patchset 14 (Latest): auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
Sangbaek Park . unresolved

Can you please clarify what `intersection_area` represents? Occlusion area is obvious to me but intersection area is not (intersection with what?).

Line 820, Patchset 14 (Latest): // Detach if no continuous reporting is needed.
Sangbaek Park . unresolved

This behavior is different from the previous behavior. Is this intentional? Because this MediaVideoVisibilityTracker has been there but the change will affect the existing behaviors.

You're changing the existing behavior not adding one more observer to report once for encrypted video visibility check.

Open in Gerrit

Related details

Attention is currently required from:
  • Vikram Pasupathy
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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
    Gerrit-Change-Number: 7204907
    Gerrit-PatchSet: 14
    Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Comment-Date: Wed, 17 Dec 2025 17:55:07 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Vikram Pasupathy (Gerrit)

    unread,
    Dec 29, 2025, 2:34:34 PM12/29/25
    to Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Sangbaek Park

    Vikram Pasupathy added 12 comments

    File chrome/browser/media/encrypted_media_browsertest.cc
    Line 1941, Patchset 14: // Builders sometime do not display the whole window viewport, so verify some

    // of the viewport is detected as visible.
    EXPECT_GT(playback_start_it->second, 50);
    Sangbaek Park . resolved

    50 sounds still flaky in the future. `EXPECT_GT(playback_start_it->second, 0);` might be better? WDYT?

    Vikram Pasupathy

    Makes sense. Updated.

    Line 1945, Patchset 14:
    Sangbaek Park . resolved

    If you take a param name (hidden, occluded, partial_occluded) to be "true" and the expected ratio param into each test, you can remove duplicate codes.

    Vikram Pasupathy

    Done

    Line 1991, Patchset 14: query_params.emplace_back("occluded", "true");
    Sangbaek Park . resolved

    I don't see the test for `partial_occluded`?

    Vikram Pasupathy

    Done

    File media/test/data/eme_player.html
    Line 229, Patchset 14: if (urlParams.get('opacity') === '0') { // New block
    Sangbaek Park . resolved

    What does this mean?

    Vikram Pasupathy

    Removed.

    File third_party/blink/renderer/core/html/media/html_video_element.cc
    Line 518, Patchset 14 (Parent): // Ensure that the |visibility_tracker_| is detached when |this| is moved to
    // a new document. Calling |ElementDidMoveToNewDocument| on the tracker at
    // this point prevents having the tracker attached to an old document. The
    // subsequent call to |UpdateVideoVisibilityTracker| will re-attach
    // the tracker to the new document if needed.
    Sangbaek Park . resolved

    Why did this get removed?

    Vikram Pasupathy

    Done

    Line 537, Patchset 14: }
    Sangbaek Park . resolved

    nit: Unnecessary change

    Vikram Pasupathy

    Its the result of git cl format

    File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.h
    Line 129, Patchset 14: ListBasedHitTestBehavior ComputeOcclusion(const ClientIdsSet& client_ids_set,
    Sangbaek Park . resolved

    Why did you move this method? Just regrouping? Or unnecessary change.

    Vikram Pasupathy

    Unnecessary, moved back down.

    File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
    Line 327, Patchset 14 (Parent): DCHECK(report_visibility_cb_);
    Sangbaek Park . resolved

    Removed this because now `report_visibility_cb_` can be null? Because no continous report is needed?

    Vikram Pasupathy

    Yeah, it can be null because in `HTMLVideoElement::CreateVisibilityTrackerIfNeeded`, we sometimes don't pass a callback because continuous report is not needed.

    Line 464, Patchset 14: if (request_visibility_ratio_callback_) {
    std::move(request_visibility_ratio_callback_).Run(0.0);
    }
    Sangbaek Park . resolved

    Why do you call the callback with 0.0 here unnecessarily? If you intended to dispose it. `request_visibility_ratio_callback_ = nullptr;` should be enough?

    Vikram Pasupathy

    I will just drop the old callback and replace it with the new one.

    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . unresolved

    Is this always zero rect since you did `occlusion_state_ = {};`?

    Vikram Pasupathy

    `ComputeAreaOccludedByViewport` assigns values to `total_area` and `intersection_area`

    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . unresolved

    Can you please clarify what `intersection_area` represents? Occlusion area is obvious to me but intersection area is not (intersection with what?).

    Vikram Pasupathy

    Replaced with `total_area` and `intersection_area`, and added comments below in `ComputeAreaOccludedByViewport` for what they represent.

    Line 820, Patchset 14: // Detach if no continuous reporting is needed.
    Sangbaek Park . unresolved

    This behavior is different from the previous behavior. Is this intentional? Because this MediaVideoVisibilityTracker has been there but the change will affect the existing behaviors.

    You're changing the existing behavior not adding one more observer to report once for encrypted video visibility check.

    Vikram Pasupathy

    Refactored to keep most of it similar, and then added a comment on why we do the `base::TimeTicks::Now() - last_hit_test_timestamp_ >= hit_test_interval_` check.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sangbaek Park
    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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
    Gerrit-Change-Number: 7204907
    Gerrit-PatchSet: 15
    Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Comment-Date: Mon, 29 Dec 2025 19:34:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Sangbaek Park <sangba...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sangbaek Park (Gerrit)

    unread,
    Jan 5, 2026, 11:51:06 AM (7 days ago) Jan 5
    to Vikram Pasupathy, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Vikram Pasupathy

    Sangbaek Park added 3 comments

    File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . unresolved

    Is this always zero rect since you did `occlusion_state_ = {};`?

    Vikram Pasupathy

    `ComputeAreaOccludedByViewport` assigns values to `total_area` and `intersection_area`

    Sangbaek Park

    I see but this is so confusing since you reset `occlusion_state_` and `ComputeAreaOccludedByViewport()` updates the `occlusion_state_` internally.

    Why don't you move `occlusion_state_ = {};` into `ComputeVisibility()`?

    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . resolved

    Can you please clarify what `intersection_area` represents? Occlusion area is obvious to me but intersection area is not (intersection with what?).

    Vikram Pasupathy

    Replaced with `total_area` and `intersection_area`, and added comments below in `ComputeAreaOccludedByViewport` for what they represent.

    Sangbaek Park

    Acknowledged

    Line 828, Patchset 15 (Latest): return;
    Sangbaek Park . unresolved

    Now the line #837-838 are not being hit due to this `return;`. Is it intended?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Vikram Pasupathy
    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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
    Gerrit-Change-Number: 7204907
    Gerrit-PatchSet: 15
    Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Comment-Date: Mon, 05 Jan 2026 16:50:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Sangbaek Park <sangba...@chromium.org>
    Comment-In-Reply-To: Vikram Pasupathy <vpasu...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Vikram Pasupathy (Gerrit)

    unread,
    Jan 8, 2026, 1:47:43 PM (4 days ago) Jan 8
    to Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Sangbaek Park

    Vikram Pasupathy added 3 comments

    File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . unresolved

    Is this always zero rect since you did `occlusion_state_ = {};`?

    Vikram Pasupathy

    `ComputeAreaOccludedByViewport` assigns values to `total_area` and `intersection_area`

    Sangbaek Park

    I see but this is so confusing since you reset `occlusion_state_` and `ComputeAreaOccludedByViewport()` updates the `occlusion_state_` internally.

    Why don't you move `occlusion_state_ = {};` into `ComputeVisibility()`?

    Vikram Pasupathy

    Both use ComputeAreaOccludedByViewport, so moved it there.

    Line 820, Patchset 14: // Detach if no continuous reporting is needed.
    Sangbaek Park . resolved

    This behavior is different from the previous behavior. Is this intentional? Because this MediaVideoVisibilityTracker has been there but the change will affect the existing behaviors.

    You're changing the existing behavior not adding one more observer to report once for encrypted video visibility check.

    Vikram Pasupathy

    Refactored to keep most of it similar, and then added a comment on why we do the `base::TimeTicks::Now() - last_hit_test_timestamp_ >= hit_test_interval_` check.

    Vikram Pasupathy

    Done

    Line 828, Patchset 15: return;
    Sangbaek Park . resolved

    Now the line #837-838 are not being hit due to this `return;`. Is it intended?

    Vikram Pasupathy

    Added the &&. Thanks

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Sangbaek Park
    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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
    Gerrit-Change-Number: 7204907
    Gerrit-PatchSet: 16
    Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Sangbaek Park <sangba...@chromium.org>
    Gerrit-Comment-Date: Thu, 08 Jan 2026 18:47:32 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sangbaek Park (Gerrit)

    unread,
    Jan 8, 2026, 1:51:08 PM (4 days ago) Jan 8
    to Vikram Pasupathy, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
    Attention needed from Vikram Pasupathy

    Sangbaek Park voted and added 2 comments

    Votes added by Sangbaek Park

    Code-Review+1

    2 comments

    Patchset-level comments
    File-level comment, Patchset 16 (Latest):
    Sangbaek Park . resolved

    lgtm

    File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
    Line 690, Patchset 14: auto intersection_area = ComputeArea(occlusion_state_.intersection_rect);
    Sangbaek Park . resolved

    Is this always zero rect since you did `occlusion_state_ = {};`?

    Vikram Pasupathy

    `ComputeAreaOccludedByViewport` assigns values to `total_area` and `intersection_area`

    Sangbaek Park

    I see but this is so confusing since you reset `occlusion_state_` and `ComputeAreaOccludedByViewport()` updates the `occlusion_state_` internally.

    Why don't you move `occlusion_state_ = {};` into `ComputeVisibility()`?

    Vikram Pasupathy

    Both use ComputeAreaOccludedByViewport, so moved it there.

    Sangbaek Park

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Vikram Pasupathy
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
      Gerrit-Change-Number: 7204907
      Gerrit-PatchSet: 16
      Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
      Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
      Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
      Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-Comment-Date: Thu, 08 Jan 2026 18:50:51 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Vikram Pasupathy (Gerrit)

      unread,
      Jan 8, 2026, 1:55:20 PM (4 days ago) Jan 8
      to Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
      Attention needed from Dale Curtis

      Vikram Pasupathy added 1 comment

      Patchset-level comments
      Vikram Pasupathy . resolved

      Hi Dale, ptal.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dale Curtis
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
      Gerrit-Change-Number: 7204907
      Gerrit-PatchSet: 16
      Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
      Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
      Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
      Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
      Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
      Gerrit-Comment-Date: Thu, 08 Jan 2026 18:55:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dale Curtis (Gerrit)

      unread,
      Jan 8, 2026, 4:27:57 PM (4 days ago) Jan 8
      to Vikram Pasupathy, Benjamin Keen, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
      Attention needed from Benjamin Keen and Vikram Pasupathy

      Dale Curtis added 1 comment

      Patchset-level comments
      Dale Curtis . resolved

      =>bkeen to do a pass first since he wrote a lot of this code.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benjamin Keen
      • Vikram Pasupathy
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
      Gerrit-Change-Number: 7204907
      Gerrit-PatchSet: 16
      Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-Reviewer: Benjamin Keen <bk...@google.com>
      Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
      Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
      Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
      Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
      Gerrit-Attention: Benjamin Keen <bk...@google.com>
      Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
      Gerrit-Comment-Date: Thu, 08 Jan 2026 21:27:43 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dale Curtis (Gerrit)

      unread,
      Jan 8, 2026, 4:33:30 PM (4 days ago) Jan 8
      to Vikram Pasupathy, Benjamin Keen, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
      Attention needed from Benjamin Keen and Vikram Pasupathy

      Dale Curtis added 1 comment

      Patchset-level comments
      Dale Curtis . unresolved

      FWIW, in the future I'd recommend splitting up a change like this. E.g., the visibility tracker changes seem like they'd more easily reviewed in a smaller more scoped change w/ tests.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benjamin Keen
      • Vikram Pasupathy
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
        Gerrit-Change-Number: 7204907
        Gerrit-PatchSet: 16
        Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Reviewer: Benjamin Keen <bk...@google.com>
        Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
        Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
        Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
        Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
        Gerrit-Attention: Benjamin Keen <bk...@google.com>
        Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Comment-Date: Thu, 08 Jan 2026 21:33:11 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Benjamin Keen (Gerrit)

        unread,
        Jan 9, 2026, 12:06:47 AM (4 days ago) Jan 9
        to Vikram Pasupathy, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Vikram Pasupathy

        Benjamin Keen added 2 comments

        File third_party/blink/renderer/core/html/media/html_video_element.cc
        Line 331, Patchset 16 (Latest):void HTMLVideoElement::CreateVisibilityTrackerIfNeeded(bool force_create) {
        Benjamin Keen . unresolved

        I think this could be confusing, specially since what you really want is to configure based on the features. How about something like:

        ```
        const bool autopip_video_heuristics_enabled =
        RuntimeEnabledFeatures::AutoPictureInPictureVideoHeuristicsEnabled();
        const bool encryption_media_occlussion_tracking_enabled =
        base::FeatureList::IsEnabled(media::kEncryptedMediaOcclusionTracking);
        // Exit if neither feature needs the tracker.
        if (!autopip_video_heuristics_enabled && !encryption_media_occlussion_tracking_enabled) {
        return;
        }
        if (autopip_video_heuristics_enabled) {
        ...
        }
        ```
        File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
        Line 819, Patchset 16 (Latest): last_visibility_ratio_ = ComputeVisibilityRatio();
        Benjamin Keen . unresolved

        Here you are missing some important checks that happen in `MaybeComputeVisibility`. For example: If the tracker is attached, checking we are in the outer main frame, etc.

        Additionally, we shouldn't access the paint artifact (`GetPaintArtifact`) if the document is not in the paint clean [state](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/local_frame_view.cc;l=4180;drc=6b7247341b28f7d52babcbbde257523c43b019e5).

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Vikram Pasupathy
        Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Comment-Date: Fri, 09 Jan 2026 05:06:33 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Vikram Pasupathy (Gerrit)

        unread,
        Jan 9, 2026, 3:12:38 PM (3 days ago) Jan 9
        to Benjamin Keen, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Benjamin Keen

        Vikram Pasupathy added 2 comments

        File third_party/blink/renderer/core/html/media/html_video_element.cc
        Line 331, Patchset 16:void HTMLVideoElement::CreateVisibilityTrackerIfNeeded(bool force_create) {
        Benjamin Keen . resolved

        I think this could be confusing, specially since what you really want is to configure based on the features. How about something like:

        ```
        const bool autopip_video_heuristics_enabled =
        RuntimeEnabledFeatures::AutoPictureInPictureVideoHeuristicsEnabled();
        const bool encryption_media_occlussion_tracking_enabled =
        base::FeatureList::IsEnabled(media::kEncryptedMediaOcclusionTracking);
        // Exit if neither feature needs the tracker.
        if (!autopip_video_heuristics_enabled && !encryption_media_occlussion_tracking_enabled) {
        return;
        }
        if (autopip_video_heuristics_enabled) {
        ...
        }
        ```
        Vikram Pasupathy

        Thanks. Done!

        File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
        Line 819, Patchset 16: last_visibility_ratio_ = ComputeVisibilityRatio();
        Benjamin Keen . unresolved

        Here you are missing some important checks that happen in `MaybeComputeVisibility`. For example: If the tracker is attached, checking we are in the outer main frame, etc.

        Additionally, we shouldn't access the paint artifact (`GetPaintArtifact`) if the document is not in the paint clean [state](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/local_frame_view.cc;l=4180;drc=6b7247341b28f7d52babcbbde257523c43b019e5).

        Vikram Pasupathy

        The `HasValidFrameAndLayout() && IsPaintClean()` may also go above in line 810, but I don't think that makes sense, because the `HasValidFrameAndLayout() && IsPaintClean()` checks are only for `ComputeVisibility()`.

        Just commenting this, to make sure that it is the intended behavior, and for you to keep me honest. Thanks!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benjamin Keen
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
        Gerrit-Change-Number: 7204907
        Gerrit-PatchSet: 17
        Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Reviewer: Benjamin Keen <bk...@google.com>
        Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
        Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
        Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
        Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
        Gerrit-Attention: Benjamin Keen <bk...@google.com>
        Gerrit-Comment-Date: Fri, 09 Jan 2026 20:12:26 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Benjamin Keen <bk...@google.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Benjamin Keen (Gerrit)

        unread,
        Jan 9, 2026, 4:44:07 PM (3 days ago) Jan 9
        to Vikram Pasupathy, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Vikram Pasupathy

        Benjamin Keen added 3 comments

        File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
        Line 462, Patchset 17 (Latest):void MediaVideoVisibilityTracker::RequestVisibilityRatio(
        Benjamin Keen . unresolved

        I'm not familiar with the encryption code path. But, can you get multiple requests for the visibility ratio, and if so, would that be a problem? You'd only get the notification for the latest request.

        Line 814, Patchset 17 (Latest): if (ratio_requested_ && HasValidFrameAndLayout() && IsPaintClean()) {
        Benjamin Keen . unresolved

        Optional: Please move this (lines 814-827) into a dedicated method (`MaybeComputeVisibilityRatio`?). And for the header comment mention that this will detach the tracker.

        Line 819, Patchset 16: last_visibility_ratio_ = ComputeVisibilityRatio();
        Benjamin Keen . resolved

        Here you are missing some important checks that happen in `MaybeComputeVisibility`. For example: If the tracker is attached, checking we are in the outer main frame, etc.

        Additionally, we shouldn't access the paint artifact (`GetPaintArtifact`) if the document is not in the paint clean [state](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/local_frame_view.cc;l=4180;drc=6b7247341b28f7d52babcbbde257523c43b019e5).

        Vikram Pasupathy

        The `HasValidFrameAndLayout() && IsPaintClean()` may also go above in line 810, but I don't think that makes sense, because the `HasValidFrameAndLayout() && IsPaintClean()` checks are only for `ComputeVisibility()`.

        Just commenting this, to make sure that it is the intended behavior, and for you to keep me honest. Thanks!

        Benjamin Keen

        This looks good, thanks!

        Yeah, moving the check to line 810 wouldn't make sense, since it would mean we could drop pending visibility requests.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Vikram Pasupathy
        Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Comment-Date: Fri, 09 Jan 2026 21:43:55 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Benjamin Keen <bk...@google.com>
        Comment-In-Reply-To: Vikram Pasupathy <vpasu...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Benjamin Keen (Gerrit)

        unread,
        Jan 9, 2026, 4:44:13 PM (3 days ago) Jan 9
        to Vikram Pasupathy, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Vikram Pasupathy

        Benjamin Keen voted Code-Review+1

        Code-Review+1
        Gerrit-Comment-Date: Fri, 09 Jan 2026 21:44:03 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Dale Curtis (Gerrit)

        unread,
        Jan 9, 2026, 5:01:51 PM (3 days ago) Jan 9
        to Vikram Pasupathy, Benjamin Keen, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Vikram Pasupathy

        Dale Curtis added 2 comments

        Patchset-level comments
        File-level comment, Patchset 17 (Latest):
        Dale Curtis . unresolved

        Did you already get UKM approval for this change? Should be trivial, but is required IIRC.

        File third_party/blink/renderer/core/html/media/html_video_element.h
        Line 174, Patchset 17 (Latest): void EncryptedMediaInitDataEncountered() final;
        Dale Curtis . unresolved

        `OnEncryptedMediaInitData()` naming would be more consistent?

        Gerrit-Comment-Date: Fri, 09 Jan 2026 22:01:40 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Vikram Pasupathy (Gerrit)

        unread,
        Jan 9, 2026, 6:19:57 PM (3 days ago) Jan 9
        to Benjamin Keen, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Benjamin Keen and Dale Curtis

        Vikram Pasupathy added 5 comments

        Patchset-level comments
        File-level comment, Patchset 16:
        Dale Curtis . resolved

        FWIW, in the future I'd recommend splitting up a change like this. E.g., the visibility tracker changes seem like they'd more easily reviewed in a smaller more scoped change w/ tests.

        Vikram Pasupathy

        Acknowledged

        File-level comment, Patchset 17:
        Dale Curtis . resolved

        Did you already get UKM approval for this change? Should be trivial, but is required IIRC.

        Vikram Pasupathy

        Added corresponding UKM approval bug.

        File third_party/blink/renderer/core/html/media/html_video_element.h
        Line 174, Patchset 17: void EncryptedMediaInitDataEncountered() final;
        Dale Curtis . resolved

        `OnEncryptedMediaInitData()` naming would be more consistent?

        Vikram Pasupathy

        Done

        File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
        Line 462, Patchset 17:void MediaVideoVisibilityTracker::RequestVisibilityRatio(
        Benjamin Keen . unresolved

        I'm not familiar with the encryption code path. But, can you get multiple requests for the visibility ratio, and if so, would that be a problem? You'd only get the notification for the latest request.

        Vikram Pasupathy

        Currently, we are only requesting once, at playback start. But I was requesting it multiple times with this previously, and it was working as expected. What would be the issue with this?

        Line 814, Patchset 17: if (ratio_requested_ && HasValidFrameAndLayout() && IsPaintClean()) {
        Benjamin Keen . resolved

        Optional: Please move this (lines 814-827) into a dedicated method (`MaybeComputeVisibilityRatio`?). And for the header comment mention that this will detach the tracker.

        Vikram Pasupathy

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Benjamin Keen
        • Dale Curtis
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
        Gerrit-Change-Number: 7204907
        Gerrit-PatchSet: 20
        Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-Reviewer: Benjamin Keen <bk...@google.com>
        Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
        Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
        Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
        Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
        Gerrit-Attention: Benjamin Keen <bk...@google.com>
        Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
        Gerrit-Comment-Date: Fri, 09 Jan 2026 23:19:43 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Benjamin Keen <bk...@google.com>
        Comment-In-Reply-To: Dale Curtis <dalec...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Benjamin Keen (Gerrit)

        unread,
        Jan 9, 2026, 8:01:50 PM (3 days ago) Jan 9
        to Vikram Pasupathy, Dale Curtis, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
        Attention needed from Dale Curtis and Vikram Pasupathy

        Benjamin Keen voted and added 1 comment

        Votes added by Benjamin Keen

        Code-Review+1

        1 comment

        File third_party/blink/renderer/core/html/media/media_video_visibility_tracker.cc
        Line 462, Patchset 17:void MediaVideoVisibilityTracker::RequestVisibilityRatio(
        Benjamin Keen . resolved

        I'm not familiar with the encryption code path. But, can you get multiple requests for the visibility ratio, and if so, would that be a problem? You'd only get the notification for the latest request.

        Vikram Pasupathy

        Currently, we are only requesting once, at playback start. But I was requesting it multiple times with this previously, and it was working as expected. What would be the issue with this?

        Benjamin Keen

        No issues at all, as long as you only need the latest visibility ratio.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dale Curtis
        • Vikram Pasupathy
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • 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: Iec32924082a130e9fd27fa4c6da18686d3494f5b
          Gerrit-Change-Number: 7204907
          Gerrit-PatchSet: 20
          Gerrit-Owner: Vikram Pasupathy <vpasu...@chromium.org>
          Gerrit-Reviewer: Benjamin Keen <bk...@google.com>
          Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
          Gerrit-Reviewer: Sangbaek Park <sangba...@chromium.org>
          Gerrit-Reviewer: Vikram Pasupathy <vpasu...@chromium.org>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
          Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
          Gerrit-Attention: Vikram Pasupathy <vpasu...@chromium.org>
          Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
          Gerrit-Comment-Date: Sat, 10 Jan 2026 01:01:39 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          Comment-In-Reply-To: Benjamin Keen <bk...@google.com>
          Comment-In-Reply-To: Vikram Pasupathy <vpasu...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Dale Curtis (Gerrit)

          unread,
          12:55 PM (8 hours ago) 12:55 PM
          to Vikram Pasupathy, Benjamin Keen, Sangbaek Park, Chromium LUCI CQ, AyeAye, Chromium Metrics Reviews, chromium...@chromium.org, Rijubrata Bhaumik, srirama chandra sekhar, asvitkine...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, chfreme...@chromium.org, eme-r...@chromium.org, eric.c...@apple.com, erickun...@chromium.org, feature-me...@chromium.org, ipc-securi...@chromium.org, jophba...@chromium.org, kinuko...@chromium.org, mfoltz+wa...@chromium.org
          Attention needed from Vikram Pasupathy

          Dale Curtis voted Code-Review+1

          Code-Review+1
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Vikram Pasupathy
          Gerrit-Comment-Date: Mon, 12 Jan 2026 17:55:14 +0000
          Gerrit-HasComments: No
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy
          Reply all
          Reply to author
          Forward
          0 new messages