|
Make browser process a singleton service
Changes the primordial browser process service manager connection
to identify as a singleton service named content_packaged_services.
This is used to package any existing global services previously
associated with the global root content_browser connection.
The root content_browser connection still exists in order to serve
as a client process host for non-renderer child processes.
One result of this change is that no services other than content_*
are allowed to connect directly to content_browser, in order to avoid
racing with the (now asynchronous) content_browser instance creation
by ServiceManagerContext. As such, code which previously connected to
content_browser has also been fixed to do something less weird. To wit:
- An "ash" service is now embedded in the browser process when not
running in mash mode - this allows simplification of ash client code
as there is no longer a need to switch the target service name at
runtime when connecting to ash interfaces
- A new "chrome" service is packaged in content_packaged_services by
within Chrome. This hosts a mash::mojom::Launchable interface, allowing
Chrome to be launched within mash by connecting to "chrome"
- ChromeInterfaceFactory is deleted
Somewhat unrelated but because this CL exposed a timing issue between packaged
service connection and main thread browser initialization, this also removes the
unnecessary blocking of startup on service manager connection (see change in
chrome_browser_main_extra_parts_views.cc.)
BUG= 649407, 594852
TEST=chrome --mash functions normally, standalone mash runner functions normally with chrome, chrome non-mash functions normally, browser_tests work with and without --run-in-mash
TBR=tsepez@chromium.org
Review-Url: https://codereview.chromium.org/2695803004
Cr-Commit-Position: refs/heads/master@{#450750}
Committed: https://chromium.googlesource.com/chromium/src/+/73b9848f38e00bf1b9f48cfa2da7f8cda7c41599
Total comments: 9
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+374 lines, -328 lines) |
Patch |
|
M |
ash/mus/manifest.json
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
chrome/app/BUILD.gn
|
View
|
1
2
3
4
|
4 chunks |
+62 lines, -11 lines |
0 comments
|
Download
|
|
A |
chrome/app/chrome_manifest.json
|
View
|
1
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/app/mash/BUILD.gn
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
chrome/app/mash/mash_runner.cc
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
chrome/browser/DEPS
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
chrome/browser/browser_resources.grd
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
chrome/browser/chrome_content_browser_client.cc
|
View
|
1
2
3
4
|
6 chunks |
+94 lines, -3 lines |
0 comments
|
Download
|
|
M |
chrome/browser/chrome_content_browser_manifest_overlay.json
|
View
|
1
|
1 chunk |
+1 line, -23 lines |
0 comments
|
Download
|
|
A |
chrome/browser/chrome_content_packaged_services_manifest_overlay.json
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/browser/chromeos/BUILD.gn
|
View
|
1
2
|
1 chunk |
+0 lines, -2 lines |
0 comments
|
Download
|
|
D |
chrome/browser/chromeos/chrome_interface_factory.h
|
View
|
1
|
1 chunk |
+0 lines, -35 lines |
0 comments
|
Download
|
|
M |
chrome/browser/chromeos/chrome_interface_factory.cc
|
View
|
1
|
1 chunk |
+0 lines, -154 lines |
0 comments
|
Download
|
|
M |
chrome/browser/prefs/preferences_connection_manager.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+9 lines, -7 lines |
0 comments
|
Download
|
|
M |
chrome/browser/ui/ash/ash_util.h
|
View
|
|
2 chunks |
+14 lines, -0 lines |
0 comments
|
Download
|
|
M |
chrome/browser/ui/ash/ash_util.cc
|
View
|
1
|
1 chunk |
+41 lines, -5 lines |
0 comments
|
Download
|
|
M |
chrome/browser/ui/views/chrome_browser_main_extra_parts_views.cc
|
View
|
1
|
2 chunks |
+1 line, -7 lines |
0 comments
|
Download
|
|
M |
chrome/test/BUILD.gn
|
View
|
1
2
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
chrome/test/base/mojo_test_connector.cc
|
View
|
|
4 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
content/BUILD.gn
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
content/browser/service_manager/service_manager_context.h
|
View
|
|
2 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/browser/service_manager/service_manager_context.cc
|
View
|
1
|
9 chunks |
+58 lines, -52 lines |
0 comments
|
Download
|
|
M |
content/common/service_manager/service_manager_connection_impl.h
|
View
|
1
|
2 chunks |
+0 lines, -2 lines |
0 comments
|
Download
|
|
M |
content/common/service_manager/service_manager_connection_impl.cc
|
View
|
1
|
2 chunks |
+0 lines, -8 lines |
0 comments
|
Download
|
|
M |
content/content_resources.grd
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
content/public/app/BUILD.gn
|
View
|
|
1 chunk |
+9 lines, -4 lines |
0 comments
|
Download
|
|
A |
content/public/app/mojo/content_packaged_services_manifest.json
|
View
|
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
|
M |
content/public/common/service_manager_connection.h
|
View
|
1
|
1 chunk |
+0 lines, -4 lines |
0 comments
|
Download
|
|
M |
content/public/common/service_names.mojom
|
View
|
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
mash/BUILD.gn
|
View
|
1
2
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
mash/session/session.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
services/service_manager/public/cpp/interface_registry.h
|
View
|
1
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
services/service_manager/public/cpp/lib/interface_registry.cc
|
View
|
1
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
Total messages: 42 (31 generated)
|