| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Thanks, Simon! Is there someone with context on the code/effort here who can do a technical review first? This looks like a non-trivial change, and I'm not familiar enough with the context to be the "main" reviewer.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Thanks, Simon! Is there someone with context on the code/effort here who can do a technical review first? This looks like a non-trivial change, and I'm not familiar enough with the context to be the "main" reviewer.
thanks colin. adding eladalon@ to the review.
eladalon@ PTAL (see [here](https://chromium-review.googlesource.com/c/chromium/src/+/6172344/comments/847c20b6_b17dd937) for context).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
public:Should these four methods be marked pure virtual?
class ASH_EXPORT MultiCaptureService {This class appears to wrap `ObserverList<Observer>` so tightly that it is not immediately evident to me what the add value of wrapper is. Could you please clarify?
std::unique_ptr<MultiCaptureService> multi_capture_service_;Would it make sense for this to be `base::ObserverList<MultiCaptureServiceObserver> observers_;`? That is, get rid of the wrapper around the ObserverList and have the observer class as unnested.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
eladalon@, i implemented your suggestions. PTAL.
colinblundell@, are you willing to review the ash part, or should i include another reviewer?
Should these four methods be marked pure virtual?
Done
This class appears to wrap `ObserverList<Observer>` so tightly that it is not immediately evident to me what the add value of wrapper is. Could you please clarify?
removed the wrapper class as you suggested.
std::unique_ptr<MultiCaptureService> multi_capture_service_;Would it make sense for this to be `base::ObserverList<MultiCaptureServiceObserver> observers_;`? That is, get rid of the wrapper around the ObserverList and have the observer class as unnested.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
The multi capture service is moved to `chrome/browser/ash/` in lineWe should not add/move code in chrome/browser/ash unless there is a good reason to do so. (see Desired state section: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/chromeos/code.md#desired-state)
}+hidehiko@ for his input
This pattern is a bit odd. Given that
1) ash code has to be moved out from chrome/browser
2) crosai iml can be in //ash
Can you move the service impl in ash, add delegate for IsXxxAllowed methods, then inject?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
sorry, looks like I didn't add hidehiko@ when I submitted my comments. +hidehiko@
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
I'll take a look whole code tomorrow my working hour. Just quick reply to the comment to move forward.
I'll take a look whole code tomorrow my working hour. Just quick reply to the comment to move forward the discussion.
+hidehiko@ for his input
This pattern is a bit odd. Given that
1) ash code has to be moved out from chrome/browser
2) crosai iml can be in //ashCan you move the service impl in ash, add delegate for IsXxxAllowed methods, then inject?
chrome/browser/ash/policy/multi_screen_capture/multi_screen_capture_policy_service.cc
does not look like depending on //chrome actually. Can whole code move out from //chrome, then?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
oshima@, hidehiko@ PTAL (see also the note below about what exactly I changed).
Hidehiko Abe+hidehiko@ for his input
This pattern is a bit odd. Given that
1) ash code has to be moved out from chrome/browser
2) crosai iml can be in //ashCan you move the service impl in ash, add delegate for IsXxxAllowed methods, then inject?
chrome/browser/ash/policy/multi_screen_capture/multi_screen_capture_policy_service.cc
does not look like depending on //chrome actually. Can whole code move out from //chrome, then?
Following up on our quick conversation I had with Hidehiko in chat, I implemented your suggestion by:
Todos I inted to implement in follow-up CLs:
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
LGTM with some comments and defer to other reviewers.
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"no longer needed.
for (Observer& observer : observers_) {
observer.MultiCaptureServiceDestroyed();
}nit/style/optional:
`observers_.Notify(&Observer::MultiCaptureServiceDestroyed);`
Ditto for all below cases.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +1 |
The multi capture service is moved to `chrome/browser/ash/` in lineWe should not add/move code in chrome/browser/ash unless there is a good reason to do so. (see Desired state section: https://chromium.googlesource.com/chromium/src/+/HEAD/docs/chromeos/code.md#desired-state)
Done
Do you have a bug #?
If none, thne Bug: None
Done
#include "mojo/public/cpp/bindings/receiver.h"
#include "mojo/public/cpp/bindings/remote.h"Simon Hanglno longer needed.
Done
for (Observer& observer : observers_) {
observer.MultiCaptureServiceDestroyed();
}nit/style/optional:
`observers_.Notify(&Observer::MultiCaptureServiceDestroyed);`
Ditto for all below cases.
Done
nit: `} // namespace base` for consistency.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
lg but one request before submitting this.
// Copyright 2025 The Chromium Authorscan you first create a small CL that just rename this file so that git can preserve the history?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
oshima@, hidehiko@, i implemented [this request](https://chromium-review.googlesource.com/c/chromium/src/+/6172344/comment/566eb968_3fbf8f00/), uploaded the [CL that renames the multi_capture_service_client](https://chromium-review.googlesource.com/c/chromium/src/+/6286046) and rebased on top of that. PTAL.
eladalon@, based on hidehiko's feedback i brought back the `MultiCaptureService` (in a next step, the policy specific ash code will move there) and from `ChromeContentBrowserClient` i call directly into `ash::Shell` instead of redirecting it via `chrome/browser/ash`. no other changes compared to your last approval. PTAL.
can you first create a small CL that just rename this file so that git can preserve the history?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
explicit MultiCaptureService();nit: you do not need explicit, as you removed the param (sorry, overlooked in the prev iter).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
dear reviewers, PTAL at
nit: you do not need explicit, as you removed the param (sorry, overlooked in the prev iter).
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
Thanks! Kinuko needs to review services/video_capture/public/mojom/multi_capture_service.mojom
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
Simon HanglPlease ensure a reviewer familiar with Ash.
blundell@, FYI.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
This pattern is a bit odd. Given that
1) ash code has to be moved out from chrome/browser
2) crosai iml can be in //ashCan you move the service impl in ash, add delegate for IsXxxAllowed methods, then inject?
Simon Hanglchrome/browser/ash/policy/multi_screen_capture/multi_screen_capture_policy_service.cc
does not look like depending on //chrome actually. Can whole code move out from //chrome, then?
Following up on our quick conversation I had with Hidehiko in chat, I implemented your suggestion by:
- keeping `MultiCaptureServiceClient` but renaming it to `MultiCaptureService` and rename the notify functions to `NotifyMultiCapture*`.
- calling into the `ash::Shell` directly from `ChromeContentBrowserClient`.
- deleting the mojom parts.
Todos I inted to implement in follow-up CLs:
- remove the crosapi implementation (I kept it for now as I think some tests might be affected).
- move the `IsMultiCaptureAllowed*` oracles to the multi capture service.
Done
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Remove `services/video_capture/multi_capture_service.mojom`
This CL refactors the notification stack for the `getAllScreensMedia`
API and removes unnecessary indirection by deleting the
`services/video_capture/multi_capture_service.mojom` interface. This
will also help to simplify removing the Lacros implementation of this
service. We do this by calling into `ash::Shell` from `ChromeContentBrowserClient`. The alternative of moving the code to `chrome/browser/ash` was not chosen due to the desired state described here [1].
Bug: 392852729
[1] https://chromium.googlesource.com/chromium/src/+/HEAD/docs/chromeos/code.md#desired-state
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |