Add switch to use only virtual video capture devices [chromium/src : main]

0 views
Skip to first unread message

Minju Kim (Gerrit)

unread,
Jul 31, 2026, 12:31:26 AM (5 days ago) Jul 31
to Ilya Nikolaevskiy, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
Attention needed from Ilya Nikolaevskiy

Minju Kim voted and added 1 comment

Votes added by Minju Kim

Commit-Queue+1

1 comment

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Minju Kim . resolved

Hi @il...@chromium.org,

I created a new CL following your suggestion to use a command-line switch.
Could you please take a look? Thanks again for the guidance.

Open in Gerrit

Related details

Attention is currently required from:
  • Ilya Nikolaevskiy
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: I2cf6098902f0997d72c816e499a0a24603976ac3
Gerrit-Change-Number: 8181527
Gerrit-PatchSet: 2
Gerrit-Owner: Minju Kim <mk...@igalia.com>
Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
Gerrit-Attention: Ilya Nikolaevskiy <il...@chromium.org>
Gerrit-Comment-Date: Fri, 31 Jul 2026 04:30:54 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Ilya Nikolaevskiy (Gerrit)

unread,
Jul 31, 2026, 5:18:24 AM (5 days ago) Jul 31
to Minju Kim, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
Attention needed from Minju Kim

Ilya Nikolaevskiy voted and added 1 comment

Votes added by Ilya Nikolaevskiy

Code-Review+1

1 comment

Patchset-level comments
Ilya Nikolaevskiy . resolved

Thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Minju Kim
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: I2cf6098902f0997d72c816e499a0a24603976ac3
Gerrit-Change-Number: 8181527
Gerrit-PatchSet: 2
Gerrit-Owner: Minju Kim <mk...@igalia.com>
Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
Gerrit-Attention: Minju Kim <mk...@igalia.com>
Gerrit-Comment-Date: Fri, 31 Jul 2026 09:18:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Minju Kim (Gerrit)

unread,
Aug 3, 2026, 8:38:06 PM (2 days ago) Aug 3
to Daniel Cheng, Ilya Nikolaevskiy, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
Attention needed from Daniel Cheng

Minju Kim added 1 comment

Patchset-level comments
Minju Kim . resolved

Hi @dch...@chromium.org, PTAL. Thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
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: I2cf6098902f0997d72c816e499a0a24603976ac3
Gerrit-Change-Number: 8181527
Gerrit-PatchSet: 2
Gerrit-Owner: Minju Kim <mk...@igalia.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
Gerrit-Comment-Date: Tue, 04 Aug 2026 00:37:29 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Daniel Cheng (Gerrit)

unread,
Aug 3, 2026, 11:23:33 PM (2 days ago) Aug 3
to Minju Kim, Daniel Cheng, Ilya Nikolaevskiy, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
Attention needed from Minju Kim

Daniel Cheng added 1 comment

File services/video_capture/virtual_device_enabled_device_factory.cc
Line 168, Patchset 2 (Latest): OnGetDeviceInfos(std::move(callback), {});
Daniel Cheng . unresolved

I guess this is fine but I find the design a bit confusing. I don't get why we don't just check the command-line once and pass either a wrapper DeviceFactory to the constructor or a device factory that really only returns virtual devices otherwise. Then we don't have to check in ever single method?

Open in Gerrit

Related details

Attention is currently required from:
  • Minju Kim
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: I2cf6098902f0997d72c816e499a0a24603976ac3
    Gerrit-Change-Number: 8181527
    Gerrit-PatchSet: 2
    Gerrit-Owner: Minju Kim <mk...@igalia.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
    Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-Attention: Minju Kim <mk...@igalia.com>
    Gerrit-Comment-Date: Tue, 04 Aug 2026 03:23:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ilya Nikolaevskiy (Gerrit)

    unread,
    Aug 4, 2026, 6:56:41 AM (yesterday) Aug 4
    to Minju Kim, Daniel Cheng, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
    Attention needed from Minju Kim

    Ilya Nikolaevskiy added 2 comments

    File services/video_capture/video_capture_service_impl.cc
    Line 477, Patchset 4 (Latest): std::make_unique<media::FakeVideoCaptureDeviceFactory>();
    Ilya Nikolaevskiy . unresolved

    FakeVideoCaptureDeviceFactory is a different thing. It always has some fake devices, which will be visible in your tests. I think this isn't what you want. Don't use it.

    You should make `media_factory` nullptr here. Then make sure that VirtualEnabledDeviceFactory can handle null device_factory_. You will have to restore most of the checks in PS#2 to do so, but now they won't check for cmd line switch, only for nullptr.

    File services/video_capture/virtual_device_enabled_device_factory.cc
    Line 168, Patchset 2: OnGetDeviceInfos(std::move(callback), {});
    Daniel Cheng . unresolved

    I guess this is fine but I find the design a bit confusing. I don't get why we don't just check the command-line once and pass either a wrapper DeviceFactory to the constructor or a device factory that really only returns virtual devices otherwise. Then we don't have to check in ever single method?

    Ilya Nikolaevskiy

    The suggested approch is a little unnatural, because the virtual enabled factory is a wrapper around the real factory. But the command line switch is to disable the inner real factory, not the wrapper on top of it.

    It's natural to choose between core and wrapper around it. It's easy to disable the wrapper with OOP. But the other way around is trickier. We will have to make a wrapper around null.

    But this will introduce the checks for not-null here too.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Minju Kim
    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: I2cf6098902f0997d72c816e499a0a24603976ac3
    Gerrit-Change-Number: 8181527
    Gerrit-PatchSet: 4
    Gerrit-Owner: Minju Kim <mk...@igalia.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
    Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
    Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
    Gerrit-Attention: Minju Kim <mk...@igalia.com>
    Gerrit-Comment-Date: Tue, 04 Aug 2026 10:56:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Minju Kim (Gerrit)

    unread,
    Aug 4, 2026, 11:52:14 PM (8 hours ago) Aug 4
    to Daniel Cheng, Ilya Nikolaevskiy, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
    Attention needed from Daniel Cheng and Ilya Nikolaevskiy

    Minju Kim added 3 comments

    Patchset-level comments
    File-level comment, Patchset 4:
    Minju Kim . resolved

    Thanks for the feedback.
    Please take another look.

    File services/video_capture/video_capture_service_impl.cc
    Line 477, Patchset 4: std::make_unique<media::FakeVideoCaptureDeviceFactory>();
    Ilya Nikolaevskiy . resolved

    FakeVideoCaptureDeviceFactory is a different thing. It always has some fake devices, which will be visible in your tests. I think this isn't what you want. Don't use it.

    You should make `media_factory` nullptr here. Then make sure that VirtualEnabledDeviceFactory can handle null device_factory_. You will have to restore most of the checks in PS#2 to do so, but now they won't check for cmd line switch, only for nullptr.

    Minju Kim

    Thanks for the feedback. I updated the CL to check the command-line switch once
    in VideoCaptureServiceImpl::LazyInitializeDeviceFactory().

    When the switch is enabled, VirtualDeviceEnabledDeviceFactory is constructed
    without a wrapped DeviceFactory. I updated it to handle the missing wrapped
    factory only at the points where it would normally delegate to it.

    PTAL.

    File services/video_capture/virtual_device_enabled_device_factory.cc
    Line 168, Patchset 2: OnGetDeviceInfos(std::move(callback), {});
    Daniel Cheng . resolved

    I guess this is fine but I find the design a bit confusing. I don't get why we don't just check the command-line once and pass either a wrapper DeviceFactory to the constructor or a device factory that really only returns virtual devices otherwise. Then we don't have to check in ever single method?

    Ilya Nikolaevskiy

    The suggested approch is a little unnatural, because the virtual enabled factory is a wrapper around the real factory. But the command line switch is to disable the inner real factory, not the wrapper on top of it.

    It's natural to choose between core and wrapper around it. It's easy to disable the wrapper with OOP. But the other way around is trickier. We will have to make a wrapper around null.

    But this will introduce the checks for not-null here too.

    Minju Kim

    Thanks for the feedback. I updated the CL to check the command-line switch once
    in VideoCaptureServiceImpl::LazyInitializeDeviceFactory().

    PTAL.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Daniel Cheng
    • Ilya Nikolaevskiy
    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: I2cf6098902f0997d72c816e499a0a24603976ac3
      Gerrit-Change-Number: 8181527
      Gerrit-PatchSet: 7
      Gerrit-Owner: Minju Kim <mk...@igalia.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
      Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
      Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
      Gerrit-Attention: Ilya Nikolaevskiy <il...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Comment-Date: Wed, 05 Aug 2026 03:51:48 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Ilya Nikolaevskiy <il...@chromium.org>
      Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ilya Nikolaevskiy (Gerrit)

      unread,
      4:17 AM (3 hours ago) 4:17 AM
      to Minju Kim, Daniel Cheng, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
      Attention needed from Daniel Cheng and Minju Kim

      Ilya Nikolaevskiy voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Minju Kim
      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: I2cf6098902f0997d72c816e499a0a24603976ac3
      Gerrit-Change-Number: 8181527
      Gerrit-PatchSet: 7
      Gerrit-Owner: Minju Kim <mk...@igalia.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Ilya Nikolaevskiy <il...@chromium.org>
      Gerrit-Reviewer: Minju Kim <mk...@igalia.com>
      Gerrit-CC: Rijubrata Bhaumik <rijubrat...@intel.com>
      Gerrit-Attention: Minju Kim <mk...@igalia.com>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Comment-Date: Wed, 05 Aug 2026 08:17:01 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ilya Nikolaevskiy (Gerrit)

      unread,
      4:17 AM (3 hours ago) 4:17 AM
      to Minju Kim, Daniel Cheng, Chromium LUCI CQ, chromium...@chromium.org, Rijubrata Bhaumik, chfreme...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz+wa...@chromium.org, rrsilva+wat...@google.com, tbarzi...@chromium.org
      Attention needed from Daniel Cheng and Minju Kim

      Ilya Nikolaevskiy added 1 comment

      Patchset-level comments
      File-level comment, Patchset 7 (Latest):
      Ilya Nikolaevskiy . resolved

      Thanks! It looks great now.

      Gerrit-Comment-Date: Wed, 05 Aug 2026 08:17:16 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages