[Ash] Separate VideoConferenceManagerAsh from CrosapiAsh [chromium/src : main]

0 views
Skip to first unread message

Di Wu (Gerrit)

unread,
Feb 2, 2025, 9:23:24 PM2/2/25
to Hidehiko Abe, Georg Neis, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Georg Neis, Hidehiko Abe and Kyle Horimoto

Di Wu added 2 comments

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1053, Patchset 2: video_conference_manager_ash_ =
Di Wu . unresolved

@hide...@chromium.org @ne...@chromium.org @khor...@chromium.org The timing of initializing this globally accessed `video_conference_manager_ash_` is a bit tricky as I came to realize.

As it turns out, there are at least four *clients* that rely upon the successful initialization of `video_conference_manager_ash_` for themselves to properly function. They are:
1.`video_conference_manager_client_`
2.`vc_app_service_client_`
3.`vc_ash_feature_client_`
4.`chrome_capture_mode_delegate`

Please note that the construction of clients 1, 2, 3 mentioned above are in the same file that we are looking at right now, i.e., `//c/b/a/main_parts/chrome_browser_main_parts_ash`. So naturally if we can initialize `video_conference_manager_ash_` at the same time when clients 1, 2, 3 are initialized, that would be good. And we may even go one step further, using depedency injection (passing pointer of `video_conference_manager_ash_` to the said clients' ctors) instead of accessing through singletons.

This would require we push the initializing timing from `PreProfileInit()` to `PostBrowserStart()`.

Sadly if we push it here, the timing would be too late for the fourth client, i.e., `chrome_capture_mode_delegate` to access `video_conference_manager_ash_`, which results in immediate crash for tens of browser tests. And here's one more thing that makes matters worse, `chrome_capture_mode_delegate` is initialized in a separate context, in ash's `Shell::Init()`. So coordinating the initialization timing of these four clients is practically very difficult if not impossible.

To sum up, the proposed initialization timing for `video_conference_manager_ash_`, as is shown in this CL, in `PreProfileInit()` right after the initialization of the original `crosapi_manager_`, seems for now the only feasible option.

File chrome/browser/ash/video_conference/video_conference_manager_ash.h
Line 35, Patchset 3 (Latest):class VideoConferenceManagerAsh : public VideoConferenceManagerBase {
Di Wu . unresolved

@hide...@chromium.org @ne...@chromium.org @khor...@chromium.org

Quote from commit message:

This CL also doesn't try to remove the now redundant
`VideoConferenceManagerBase` interface class. Yes this class is made
redundant due to Lacros sunset. Sadly this interface class also bears
the burden of preventing
`//ash/system/video_conference/video_conference_tray_controller.cc` from
having to depend on
`//chrome/browser/ash/video_conference/video_conference_manager_ash.h`.

If, there's another way to make this happen, that is, deleting `VideoConferenceManagerBase` and related code without making the current depedency structure worse, I'm all ears.

Open in Gerrit

Related details

Attention is currently required from:
  • Georg Neis
  • Hidehiko Abe
  • Kyle Horimoto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 3
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Georg Neis <ne...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Attention: Kyle Horimoto <khor...@chromium.org>
Gerrit-Comment-Date: Mon, 03 Feb 2025 02:23:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Georg Neis (Gerrit)

unread,
Feb 2, 2025, 10:42:20 PM2/2/25
to Di Wu, Hidehiko Abe, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Di Wu, Hidehiko Abe and Kyle Horimoto

Georg Neis added 2 comments

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1052, Patchset 3 (Latest): if (features::IsVideoConferenceEnabled()) {
Georg Neis . unresolved

Are you sure this change (making the construction conditional) is safe? I'd leave it out of the CL. If it's safe then there is other related cleanup possible (see the check inside the constructor and several TODOs), so a separate CL would make sense.

Line 1733, Patchset 3 (Latest): video_conference_manager_ash_.reset();
Georg Neis . unresolved

In principle this should happen before browser_manager_.reset() (reverse order of construction). Also looks like we forgot to reset magic_boost_controller_ash_.

Open in Gerrit

Related details

Attention is currently required from:
  • Di Wu
  • Hidehiko Abe
  • Kyle Horimoto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 3
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Di Wu <di...@google.com>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Attention: Kyle Horimoto <khor...@chromium.org>
Gerrit-Comment-Date: Mon, 03 Feb 2025 03:42:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Di Wu (Gerrit)

unread,
Feb 2, 2025, 11:12:47 PM2/2/25
to Hidehiko Abe, Georg Neis, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Georg Neis, Hidehiko Abe and Kyle Horimoto

Di Wu added 2 comments

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1052, Patchset 3: if (features::IsVideoConferenceEnabled()) {
Georg Neis . resolved

Are you sure this change (making the construction conditional) is safe? I'd leave it out of the CL. If it's safe then there is other related cleanup possible (see the check inside the constructor and several TODOs), so a separate CL would make sense.

Di Wu

Good call. While I'm getting surer that this change is safe as this patch got through CQ. I also agree this flag check needs to be handled in a speparate CL. After all as ash refactorers our work is supposed to be transparent (invisible) when it comes to product logic. So I dropped this flag check for the sake of this CL.

Line 1733, Patchset 3: video_conference_manager_ash_.reset();
Georg Neis . resolved

In principle this should happen before browser_manager_.reset() (reverse order of construction). Also looks like we forgot to reset magic_boost_controller_ash_.

Di Wu

Agreed and agreed. In the latest patch you will find the `reset()` here moved to earlier, right before `browser_manager_.reset()`. Also, in a sperate CL let me add back the reset for `magic_boost_controller_ash_`.

Open in Gerrit

Related details

Attention is currently required from:
  • Georg Neis
  • Hidehiko Abe
  • Kyle Horimoto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 4
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Georg Neis <ne...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Attention: Kyle Horimoto <khor...@chromium.org>
Gerrit-Comment-Date: Mon, 03 Feb 2025 04:12:37 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Georg Neis <ne...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Georg Neis (Gerrit)

unread,
Feb 2, 2025, 11:17:26 PM2/2/25
to Di Wu, Hidehiko Abe, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Di Wu, Hidehiko Abe and Kyle Horimoto

Georg Neis voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Di Wu
  • Hidehiko Abe
  • Kyle Horimoto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 4
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Di Wu <di...@google.com>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Attention: Kyle Horimoto <khor...@chromium.org>
Gerrit-Comment-Date: Mon, 03 Feb 2025 04:17:14 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Hidehiko Abe (Gerrit)

unread,
Feb 3, 2025, 4:07:35 AM2/3/25
to Di Wu, AyeAye, Georg Neis, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, dcheng+c...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Di Wu and Kyle Horimoto

Hidehiko Abe added 1 comment

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1053, Patchset 2: video_conference_manager_ash_ =
Di Wu . unresolved

@hide...@chromium.org @ne...@chromium.org @khor...@chromium.org The timing of initializing this globally accessed `video_conference_manager_ash_` is a bit tricky as I came to realize.

As it turns out, there are at least four *clients* that rely upon the successful initialization of `video_conference_manager_ash_` for themselves to properly function. They are:
1.`video_conference_manager_client_`
2.`vc_app_service_client_`
3.`vc_ash_feature_client_`
4.`chrome_capture_mode_delegate`

Please note that the construction of clients 1, 2, 3 mentioned above are in the same file that we are looking at right now, i.e., `//c/b/a/main_parts/chrome_browser_main_parts_ash`. So naturally if we can initialize `video_conference_manager_ash_` at the same time when clients 1, 2, 3 are initialized, that would be good. And we may even go one step further, using depedency injection (passing pointer of `video_conference_manager_ash_` to the said clients' ctors) instead of accessing through singletons.

This would require we push the initializing timing from `PreProfileInit()` to `PostBrowserStart()`.

Sadly if we push it here, the timing would be too late for the fourth client, i.e., `chrome_capture_mode_delegate` to access `video_conference_manager_ash_`, which results in immediate crash for tens of browser tests. And here's one more thing that makes matters worse, `chrome_capture_mode_delegate` is initialized in a separate context, in ash's `Shell::Init()`. So coordinating the initialization timing of these four clients is practically very difficult if not impossible.

To sum up, the proposed initialization timing for `video_conference_manager_ash_`, as is shown in this CL, in `PreProfileInit()` right after the initialization of the original `crosapi_manager_`, seems for now the only feasible option.

Hidehiko Abe

Thank you for investigation. I wasn't aware ChromeCaptureModeDelegate.

Then, could you pass the ptr of VideoConferenceManagerAsh's ptr to each initialization?
For 1.-3., you can access video_conference_manager_ash_ directly on construction, because both are in the same instance.
For 4., you can pass the ptr to ChromeShellDelegate via
chrome/browser/ui/ash/main_extra_parts/chrome_browser_main_extra_parts_ash.cc

Also, I'm wondering if the 1.-3. and video_conference_manager_ash_ can be moved to ChromeBrowserMainExtraPartsAsh, so the initialization can be much simplified.

Open in Gerrit

Related details

Attention is currently required from:
  • Di Wu
  • Kyle Horimoto
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 5
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Di Wu <di...@google.com>
Gerrit-Attention: Kyle Horimoto <khor...@chromium.org>
Gerrit-Comment-Date: Mon, 03 Feb 2025 09:07:20 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Di Wu <di...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Di Wu (Gerrit)

unread,
Feb 5, 2025, 9:36:52 AM2/5/25
to AyeAye, Georg Neis, Hidehiko Abe, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, dcheng+c...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Hidehiko Abe

Di Wu added 1 comment

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1053, Patchset 2: video_conference_manager_ash_ =
Di Wu . unresolved

@hide...@chromium.org @ne...@chromium.org @khor...@chromium.org The timing of initializing this globally accessed `video_conference_manager_ash_` is a bit tricky as I came to realize.

As it turns out, there are at least four *clients* that rely upon the successful initialization of `video_conference_manager_ash_` for themselves to properly function. They are:
1.`video_conference_manager_client_`
2.`vc_app_service_client_`
3.`vc_ash_feature_client_`
4.`chrome_capture_mode_delegate`

Please note that the construction of clients 1, 2, 3 mentioned above are in the same file that we are looking at right now, i.e., `//c/b/a/main_parts/chrome_browser_main_parts_ash`. So naturally if we can initialize `video_conference_manager_ash_` at the same time when clients 1, 2, 3 are initialized, that would be good. And we may even go one step further, using depedency injection (passing pointer of `video_conference_manager_ash_` to the said clients' ctors) instead of accessing through singletons.

This would require we push the initializing timing from `PreProfileInit()` to `PostBrowserStart()`.

Sadly if we push it here, the timing would be too late for the fourth client, i.e., `chrome_capture_mode_delegate` to access `video_conference_manager_ash_`, which results in immediate crash for tens of browser tests. And here's one more thing that makes matters worse, `chrome_capture_mode_delegate` is initialized in a separate context, in ash's `Shell::Init()`. So coordinating the initialization timing of these four clients is practically very difficult if not impossible.

To sum up, the proposed initialization timing for `video_conference_manager_ash_`, as is shown in this CL, in `PreProfileInit()` right after the initialization of the original `crosapi_manager_`, seems for now the only feasible option.

Hidehiko Abe

Thank you for investigation. I wasn't aware ChromeCaptureModeDelegate.

Then, could you pass the ptr of VideoConferenceManagerAsh's ptr to each initialization?
For 1.-3., you can access video_conference_manager_ash_ directly on construction, because both are in the same instance.
For 4., you can pass the ptr to ChromeShellDelegate via
chrome/browser/ui/ash/main_extra_parts/chrome_browser_main_extra_parts_ash.cc

Also, I'm wondering if the 1.-3. and video_conference_manager_ash_ can be moved to ChromeBrowserMainExtraPartsAsh, so the initialization can be much simplified.

Di Wu

@hide...@chromium.org Thanks for the wonderful guidance. Agreed on every bit of it.

For 1-3 (and maybe for 4 too), right now I am thinking about utilizing a `weak_ptr` as the storage within each client. And I drafted a [demo CL] to showcase my plan. Can you take a look and let me know what you think? A second plan would be using `shared_ptr` to manage a reference counted object.

[demo CL]:https://chromium-review.googlesource.com/c/chromium/src/+/6235246

Open in Gerrit

Related details

Attention is currently required from:
  • Hidehiko Abe
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 5
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Comment-Date: Wed, 05 Feb 2025 14:36:38 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Di Wu <di...@google.com>
Comment-In-Reply-To: Hidehiko Abe <hide...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Hidehiko Abe (Gerrit)

unread,
Feb 5, 2025, 12:30:07 PM2/5/25
to Di Wu, AyeAye, Georg Neis, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, dcheng+c...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Di Wu

Hidehiko Abe added 1 comment

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Line 1053, Patchset 2: video_conference_manager_ash_ =
Di Wu . unresolved

@hide...@chromium.org @ne...@chromium.org @khor...@chromium.org The timing of initializing this globally accessed `video_conference_manager_ash_` is a bit tricky as I came to realize.

As it turns out, there are at least four *clients* that rely upon the successful initialization of `video_conference_manager_ash_` for themselves to properly function. They are:
1.`video_conference_manager_client_`
2.`vc_app_service_client_`
3.`vc_ash_feature_client_`
4.`chrome_capture_mode_delegate`

Please note that the construction of clients 1, 2, 3 mentioned above are in the same file that we are looking at right now, i.e., `//c/b/a/main_parts/chrome_browser_main_parts_ash`. So naturally if we can initialize `video_conference_manager_ash_` at the same time when clients 1, 2, 3 are initialized, that would be good. And we may even go one step further, using depedency injection (passing pointer of `video_conference_manager_ash_` to the said clients' ctors) instead of accessing through singletons.

This would require we push the initializing timing from `PreProfileInit()` to `PostBrowserStart()`.

Sadly if we push it here, the timing would be too late for the fourth client, i.e., `chrome_capture_mode_delegate` to access `video_conference_manager_ash_`, which results in immediate crash for tens of browser tests. And here's one more thing that makes matters worse, `chrome_capture_mode_delegate` is initialized in a separate context, in ash's `Shell::Init()`. So coordinating the initialization timing of these four clients is practically very difficult if not impossible.

To sum up, the proposed initialization timing for `video_conference_manager_ash_`, as is shown in this CL, in `PreProfileInit()` right after the initialization of the original `crosapi_manager_`, seems for now the only feasible option.

Hidehiko Abe

Thank you for investigation. I wasn't aware ChromeCaptureModeDelegate.

Then, could you pass the ptr of VideoConferenceManagerAsh's ptr to each initialization?
For 1.-3., you can access video_conference_manager_ash_ directly on construction, because both are in the same instance.
For 4., you can pass the ptr to ChromeShellDelegate via
chrome/browser/ui/ash/main_extra_parts/chrome_browser_main_extra_parts_ash.cc

Also, I'm wondering if the 1.-3. and video_conference_manager_ash_ can be moved to ChromeBrowserMainExtraPartsAsh, so the initialization can be much simplified.

Di Wu

@hide...@chromium.org Thanks for the wonderful guidance. Agreed on every bit of it.

For 1-3 (and maybe for 4 too), right now I am thinking about utilizing a `weak_ptr` as the storage within each client. And I drafted a [demo CL] to showcase my plan. Can you take a look and let me know what you think? A second plan would be using `shared_ptr` to manage a reference counted object.

[demo CL]:https://chromium-review.googlesource.com/c/chromium/src/+/6235246

Hidehiko Abe

Because we should know the lifetime of global objects, I think we should use raw_ptr, rather than weak_ptr or shared_ptr.

Open in Gerrit

Related details

Attention is currently required from:
  • Di Wu
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 5
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Di Wu <di...@google.com>
Gerrit-Comment-Date: Wed, 05 Feb 2025 17:29:51 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Di Wu (Gerrit)

unread,
Feb 12, 2025, 3:07:43 AM2/12/25
to AyeAye, Georg Neis, Hidehiko Abe, Kyle Horimoto, Chromium LUCI CQ, chromium...@chromium.org, dcheng+c...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org
Attention needed from Hidehiko Abe

Di Wu added 1 comment

File chrome/browser/ash/main_parts/chrome_browser_main_parts_ash.cc
Di Wu

Following your very insightful advice in this thread, I drafted a follow-up CL that tried to specifically get rid of the current singleton design and to replace it with dependency injection either through ctor or through a dedicated setter if ctor is not possible. Please take a look and let me know if you have any questions. Many thanks.

https://chromium-review.googlesource.com/c/chromium/src/+/6256260/1

Open in Gerrit

Related details

Attention is currently required from:
  • Hidehiko Abe
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
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: Ie62eb5fc653d880d5016497c22effe980dc9b772
Gerrit-Change-Number: 6218261
Gerrit-PatchSet: 8
Gerrit-Owner: Di Wu <di...@google.com>
Gerrit-Reviewer: Di Wu <di...@google.com>
Gerrit-Reviewer: Georg Neis <ne...@chromium.org>
Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
Gerrit-Reviewer: Kyle Horimoto <khor...@chromium.org>
Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
Gerrit-Comment-Date: Wed, 12 Feb 2025 08:07:34 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Di Wu (Gerrit)

unread,
12:06 AM (10 hours ago) 12:06 AM
to Code Review Nudger, AyeAye, Hidehiko Abe, Chromium LUCI CQ, chromium...@chromium.org, dcheng+c...@chromium.org, feature-me...@chromium.org, ffred...@chromium.org, oshima...@chromium.org, tluk+...@chromium.org

Di Wu abandoned this change

Related details

Attention set is empty
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • 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: abandon
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie62eb5fc653d880d5016497c22effe980dc9b772
    Gerrit-Change-Number: 6218261
    Gerrit-PatchSet: 8
    Gerrit-Owner: Di Wu <di...@google.com>
    Gerrit-Reviewer: Di Wu <di...@google.com>
    Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages