New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 654986 link

Starred by 10 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task

Blocked on:
issue 662177
issue 716416

Blocking:
issue 598069



Sign in to add a comment

Content Modularization Project: Extract process launching from content/ to Service Manager

Project Member Reported by ben@chromium.org, Oct 12 2016

Issue description

The Service Manager should be able to launch variously sandboxed processes on all platforms. It should not know about specific process types. Configuration should be expressed in service manifests.
 

Comment 1 by ben@chromium.org, Oct 12 2016

Blocking: 598069
Blockedon: 662177
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b92eed3a5cd6cde768bd32a74487c45094bccbdf

commit b92eed3a5cd6cde768bd32a74487c45094bccbdf
Author: rockot <rockot@chromium.org>
Date: Sat Nov 05 02:44:54 2016

Service Manager: Rework Service and ServiceContext lifetime

Changes ServiceContext to always own a Service instance.

Changes Service::OnStart() to only take a ServiceContext* which
is guaranteed to outlive the Service.

Updates all the code affected by this change, including content's
EmbeddedServiceRunner which will now always create a new Service
instance per incoming ServiceRequest.

Also fixes a bunch of IWYU violations.

BUG=654986

Review-Url: https://codereview.chromium.org/2476063002
Cr-Commit-Position: refs/heads/master@{#430131}

[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/autoclick/mus/autoclick_application.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/autoclick/mus/autoclick_application.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/mus/window_manager_application.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/mus/window_manager_application.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/touch_hud/mus/touch_hud_application.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ash/touch_hud/mus/touch_hud_application.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/chrome/app/mash/mash_runner.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/chrome/app/mash/mash_runner.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/filesystem/file_system_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/filesystem/file_system_app.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/font_service/font_service_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/font_service/font_service_app.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/leveldb/leveldb_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/components/leveldb/leveldb_app.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/common/service_manager/embedded_service_runner.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/common/service_manager/embedded_service_runner.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/public/common/service_info.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/public/test/test_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/content/renderer/mus/render_widget_window_tree_client_factory.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/browser/browser.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/browser/browser.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/catalog_viewer/catalog_viewer.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/catalog_viewer/catalog_viewer.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/example/views_examples/views_examples.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/example/window_type_launcher/window_type_launcher.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/example/window_type_launcher/window_type_launcher.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/init/init.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/init/init.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/login/login.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/package/mash_packaged_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/package/mash_packaged_service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/quick_launch/quick_launch.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/quick_launch/quick_launch.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/screenlock/screenlock.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/screenlock/screenlock.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/session/session.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/session/session.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/task_viewer/task_viewer.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/task_viewer/task_viewer.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/webtest/webtest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/mash/webtest/webtest.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/media/mojo/services/media_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/media/mojo/services/media_service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/catalog/catalog.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/catalog/catalog.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/device/device_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/device/device_service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/file/file_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/file/file_service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/navigation/navigation.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/navigation/navigation_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/navigation/view_impl.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/background/tests/background_service_manager_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/interface_registry.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/lib/interface_registry.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/lib/service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/lib/service_runner.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/lib/service_test.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/service_context.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/service_runner.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/public/cpp/service_test.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/runner/child/test_native_main.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/runner/child/test_native_main.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/service_manager.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/service_manager.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_test_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_test_class_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_test_driver.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_test_exe.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/connect/connect_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/app_client.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/lifecycle_exe.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/lifecycle_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/package.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/lifecycle/parent.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/service_manager/driver.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/service_manager/embedder.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/service_manager/service_manager_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/service_manager/target.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/service_manager/tests/shutdown/shutdown_client_app.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/demo/mus_demo.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/demo/mus_demo.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/ime/test_ime_driver/test_ime_application.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/ime/test_ime_driver/test_ime_application.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/public/cpp/tests/window_server_test_base.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/test_wm/test_wm.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/video_capture/video_capture_service.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/services/video_capture/video_capture_service.h
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ui/views/mus/views_aura_mus_test_suite.cc
[modify] https://crrev.com/b92eed3a5cd6cde768bd32a74487c45094bccbdf/ui/views/mus/views_mus_test_suite.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5b9cb3df6c06015d79aeb688c2b8905016086b9e

commit 5b9cb3df6c06015d79aeb688c2b8905016086b9e
Author: rockot <rockot@chromium.org>
Date: Mon Nov 07 23:27:21 2016

Service Manager: Implement graceful service termination

Adds a new ServiceControl client interface associated with
a service's Service interface. This allows a service to notify
the Service Manager that it's ready to be terminated by calling
RequestQuit().

Adds an ack reply to Service.OnConnect. The Service Manager will
ignore any RequestQuit() issued while an OnConnect is still
pending acknowledgement.

Fixes a race in existing service_manager_unittests which was
causing
some tests to hang fairly regularly, using RequestQuit()
to avoid races between service shutdown and incoming connections.

Also fixes incorrect base::SimpleThread usage in some tests.

BUG=654986, 662177 

Review-Url: https://codereview.chromium.org/2480603004
Cr-Commit-Position: refs/heads/master@{#430414}

[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/chrome/test/base/mojo_test_connector.cc
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/public/cpp/service_context.h
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/public/interfaces/BUILD.gn
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/public/interfaces/service.mojom
[add] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/public/interfaces/service_control.mojom
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/service_manager.cc
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e/services/service_manager/tests/lifecycle/app_client.h

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e34d2ea2d89e340de75c2670c5e84eb4000b5c43

commit e34d2ea2d89e340de75c2670c5e84eb4000b5c43
Author: rockot <rockot@chromium.org>
Date: Tue Nov 08 01:39:10 2016

Eliminate quit closure argument to embedded service factories

Services now have safe, direct access to their ServiceContext and
may therefore explicitly call RequestQuit() on it. This obviates
the need for a quit closure argument.

BUG=654986

Review-Url: https://codereview.chromium.org/2484953002
Cr-Commit-Position: refs/heads/master@{#430470}

[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/chromecast/browser/cast_content_browser_client.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/content/common/service_manager/embedded_service_runner.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/content/public/common/service_info.h
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/content/shell/utility/shell_content_utility_client.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/media/mojo/services/main.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/media/mojo/services/media_service.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/media/mojo/services/media_service.h
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/media/mojo/services/media_service_factory.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/media/mojo/services/media_service_factory.h
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/services/device/device_service.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/services/device/device_service.h
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/services/file/file_service.cc
[modify] https://crrev.com/e34d2ea2d89e340de75c2670c5e84eb4000b5c43/services/file/file_service.h

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a665b53fe46aba0c80416b9b354760fc1ccf749

commit 1a665b53fe46aba0c80416b9b354760fc1ccf749
Author: benwells <benwells@chromium.org>
Date: Wed Nov 09 05:04:42 2016

Revert of Service Manager: Implement graceful service termination (patchset #1 id:1 of https://codereview.chromium.org/2480603004/ )

Reason for revert:
Seems to be the cause of lock order inversions on TSan bots.

See  https://crbug.com/663557  for details.

BUG= 663557 

Original issue's description:
> Service Manager: Implement graceful service termination
>
> Adds a new ServiceControl client interface associated with
> a service's Service interface. This allows a service to notify
> the Service Manager that it's ready to be terminated by calling
> RequestQuit().
>
> Adds an ack reply to Service.OnConnect. The Service Manager will
> ignore any RequestQuit() issued while an OnConnect is still
> pending acknowledgement.
>
> Fixes a race in existing service_manager_unittests which was
> causing
> some tests to hang fairly regularly, using RequestQuit()
> to avoid races between service shutdown and incoming connections.
>
> Also fixes incorrect base::SimpleThread usage in some tests.
>
> BUG=654986, 662177 
>
> Committed: https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e
> Cr-Commit-Position: refs/heads/master@{#430414}

TBR=ben@chromium.org,tsepez@chromium.org,blundell@chromium.org,rockot@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=654986, 662177 

Review-Url: https://codereview.chromium.org/2486073003
Cr-Commit-Position: refs/heads/master@{#430868}

[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/chrome/test/base/mojo_test_connector.cc
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/public/cpp/service_context.h
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/public/interfaces/BUILD.gn
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/public/interfaces/service.mojom
[delete] https://crrev.com/3f4b9da10b124cf841a5691abd4ede58f768be42/services/service_manager/public/interfaces/service_control.mojom
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/service_manager.cc
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/1a665b53fe46aba0c80416b9b354760fc1ccf749/services/service_manager/tests/lifecycle/app_client.h

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46

commit 66ee2e33ec55e317dfbf11209b9a4c08ecac4c46
Author: rockot <rockot@chromium.org>
Date: Thu Nov 10 21:16:11 2016

Service Manager: Implement graceful service termination

Adds a new ServiceControl client interface associated with
a service's Service interface. This allows a service to notify
the Service Manager that it's ready to be terminated by calling
RequestQuit().

Adds an ack reply to Service.OnConnect. The Service Manager will
ignore any RequestQuit() issued while an OnConnect is still
pending acknowledgement.

Fixes a race in existing service_manager_unittests which was
causing
some tests to hang fairly regularly, using RequestQuit()
to avoid races between service shutdown and incoming connections.

Also fixes incorrect base::SimpleThread usage in some tests.

BUG=654986, 662177 

Committed: https://crrev.com/5b9cb3df6c06015d79aeb688c2b8905016086b9e
Review-Url: https://codereview.chromium.org/2480603004
Cr-Original-Commit-Position: refs/heads/master@{#430414}
Cr-Commit-Position: refs/heads/master@{#431354}

[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/chrome/test/base/mojo_test_connector.cc
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/public/cpp/service_context.h
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/public/interfaces/BUILD.gn
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/public/interfaces/service.mojom
[add] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/public/interfaces/service_control.mojom
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/service_manager.cc
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/66ee2e33ec55e317dfbf11209b9a4c08ecac4c46/services/service_manager/tests/lifecycle/app_client.h

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb

commit 2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb
Author: rockot <rockot@chromium.org>
Date: Fri Nov 11 18:44:19 2016

Introduce the image_decoder service

Moves OOP image decoding from a one-off utility process IPC
to its own service_manager service. This is then hooked up
by Chrome to be launched by content's utility-process-based
sandboxed service launcher.

This serves as a precursor to extracing process launch
code from content, as it defines a service which is used
in production across all platforms that support multiprocess.

The ImageDecoder helper defined in src/chrome is substantially
simplified here, as it's reduced to a thin wrapper around the
image_decoder client library.

In order to support Chrome content_browser packaging the
service, this also adds support for packaging services within
manifest overlays by introducing a new service_manifest_overlay
GN template.

Finally this also introduces a new service_unittests binary
as a default home for service implementations to stash their
unittest sources. Follow-up work will add this test suite to
bot configurations.

BUG=654986

Review-Url: https://codereview.chromium.org/2475543003
Cr-Commit-Position: refs/heads/master@{#431605}

[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/BUILD.gn
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/app/BUILD.gn
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/BUILD.gn
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/DEPS
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/android/download/ui/thumbnail_provider.h
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/browser_resources.grd
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/image_decoder.cc
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/image_decoder.h
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/browser/search/suggestions/image_decoder_impl.cc
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/common/BUILD.gn
[delete] https://crrev.com/8d968d89bd70b82af787d1a04dd915a006e59dbf/chrome/common/image_decoder.mojom
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/test/BUILD.gn
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/utility/BUILD.gn
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/utility/DEPS
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/utility/chrome_content_utility_client.cc
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/chrome/utility/chrome_content_utility_client.h
[delete] https://crrev.com/8d968d89bd70b82af787d1a04dd915a006e59dbf/chrome/utility/image_decoder_impl.cc
[delete] https://crrev.com/8d968d89bd70b82af787d1a04dd915a006e59dbf/chrome/utility/image_decoder_impl.h
[delete] https://crrev.com/8d968d89bd70b82af787d1a04dd915a006e59dbf/chrome/utility/image_decoder_impl_unittest.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/BUILD.gn
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/OWNERS
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/BUILD.gn
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/DEPS
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/README.md
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/image_decoder_impl.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/image_decoder_impl.h
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/image_decoder_impl_unittest.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/image_decoder_service.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/image_decoder_service.h
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/manifest.json
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/cpp/BUILD.gn
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/cpp/constants.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/cpp/constants.h
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/cpp/decode.cc
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/cpp/decode.h
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/interfaces/BUILD.gn
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/interfaces/OWNERS
[add] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/image_decoder/public/interfaces/image_decoder.mojom
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/service_manager/public/cpp/connector.h
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/service_manager/public/cpp/lib/connector_impl.cc
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/service_manager/public/cpp/lib/connector_impl.h
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/service_manager/public/service_manifest.gni
[modify] https://crrev.com/2a0f4fb3b0b4c88c4c955bf3a4860cec673dc1eb/services/service_manager/public/tools/manifest/manifest_collator.py

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e

commit 6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e
Author: rockot <rockot@chromium.org>
Date: Sat Nov 12 02:34:58 2016

Service Manager: Remove ServiceContext* arg from Service::OnStart()

This restores the context() accessor to Service, but now
guarantees that ServiceContext always sets the context
before invoking OnStart().

This means that all Service implementations are free to safely
access context() any time after OnStart() regardless of what
service-running mechanism was used to create their
ServiceContext.

BUG=654986

Review-Url: https://codereview.chromium.org/2487573002
Cr-Commit-Position: refs/heads/master@{#431752}

[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/autoclick/mus/autoclick_application.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/autoclick/mus/autoclick_application.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/mus/window_manager_application.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/mus/window_manager_application.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/touch_hud/mus/touch_hud_application.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/ash/touch_hud/mus/touch_hud_application.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/filesystem/file_system_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/filesystem/file_system_app.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/font_service/font_service_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/font_service/font_service_app.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/leveldb/leveldb_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/components/leveldb/leveldb_app.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/browser/browser.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/browser/browser.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/catalog_viewer/catalog_viewer.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/catalog_viewer/catalog_viewer.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/example/views_examples/views_examples.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/example/window_type_launcher/window_type_launcher.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/example/window_type_launcher/window_type_launcher.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/init/init.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/init/init.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/login/login.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/quick_launch/quick_launch.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/quick_launch/quick_launch.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/screenlock/screenlock.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/screenlock/screenlock.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/session/session.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/session/session.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/task_viewer/task_viewer.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/task_viewer/task_viewer.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/webtest/webtest.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/mash/webtest/webtest.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/media/mojo/services/media_service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/media/mojo/services/media_service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/device/device_service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/device/device_service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/file/file_service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/file/file_service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/image_decoder/image_decoder_service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/image_decoder/image_decoder_service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/public/cpp/lib/service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/public/cpp/lib/service_test.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/public/cpp/service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/public/cpp/service_test.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/connect/connect_test_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/connect/connect_test_class_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/connect/connect_test_exe.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/lifecycle/app_client.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/lifecycle/package.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/lifecycle/parent.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/service_manager/target.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/service_manager/tests/shutdown/shutdown_client_app.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/demo/mus_demo.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/demo/mus_demo.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/ime/test_ime_driver/test_ime_application.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/ime/test_ime_driver/test_ime_application.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/service.cc
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/service.h
[modify] https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e/services/ui/test_wm/test_wm.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/13d2c57f10e29de32f916e28ba2eda880f29775c

commit 13d2c57f10e29de32f916e28ba2eda880f29775c
Author: rockot <rockot@chromium.org>
Date: Sat Nov 12 02:58:17 2016

Revert of Service Manager: Remove ServiceContext* arg from Service::OnStart() (patchset #7 id:120001 of https://codereview.chromium.org/2487573002/ )

Reason for revert:
Compile failure, conflicting with another CL

Original issue's description:
> Service Manager: Remove ServiceContext* arg from Service::OnStart()
>
> This restores the context() accessor to Service, but now
> guarantees that ServiceContext always sets the context
> before invoking OnStart().
>
> This means that all Service implementations are free to safely
> access context() any time after OnStart() regardless of what
> service-running mechanism was used to create their
> ServiceContext.
>
> BUG=654986
>
> Committed: https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e
> Cr-Commit-Position: refs/heads/master@{#431752}

TBR=ben@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=654986

Review-Url: https://codereview.chromium.org/2494303002
Cr-Commit-Position: refs/heads/master@{#431754}

[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/autoclick/mus/autoclick_application.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/autoclick/mus/autoclick_application.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/mus/window_manager_application.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/mus/window_manager_application.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/touch_hud/mus/touch_hud_application.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/ash/touch_hud/mus/touch_hud_application.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/filesystem/file_system_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/filesystem/file_system_app.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/font_service/font_service_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/font_service/font_service_app.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/leveldb/leveldb_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/components/leveldb/leveldb_app.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/browser/browser.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/browser/browser.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/catalog_viewer/catalog_viewer.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/catalog_viewer/catalog_viewer.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/example/views_examples/views_examples.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/example/window_type_launcher/window_type_launcher.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/example/window_type_launcher/window_type_launcher.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/init/init.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/init/init.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/login/login.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/quick_launch/quick_launch.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/quick_launch/quick_launch.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/screenlock/screenlock.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/screenlock/screenlock.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/session/session.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/session/session.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/task_viewer/task_viewer.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/task_viewer/task_viewer.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/webtest/webtest.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/mash/webtest/webtest.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/media/mojo/services/media_service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/media/mojo/services/media_service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/device/device_service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/device/device_service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/file/file_service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/file/file_service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/image_decoder/image_decoder_service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/image_decoder/image_decoder_service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/public/cpp/lib/service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/public/cpp/lib/service_test.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/public/cpp/service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/public/cpp/service_test.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/connect/connect_test_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/connect/connect_test_class_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/connect/connect_test_exe.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/lifecycle/app_client.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/lifecycle/package.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/lifecycle/parent.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/service_manager/target.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/service_manager/tests/shutdown/shutdown_client_app.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/demo/mus_demo.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/demo/mus_demo.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/ime/test_ime_driver/test_ime_application.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/ime/test_ime_driver/test_ime_application.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/service.cc
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/service.h
[modify] https://crrev.com/13d2c57f10e29de32f916e28ba2eda880f29775c/services/ui/test_wm/test_wm.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4b5e64d3c7aadaffe9131291fe503a46ea0809d3

commit 4b5e64d3c7aadaffe9131291fe503a46ea0809d3
Author: rockot <rockot@chromium.org>
Date: Sat Nov 12 07:47:59 2016

Service Manager: Remove ServiceContext* arg from Service::OnStart()

This restores the context() accessor to Service, but now
guarantees that ServiceContext always sets the context
before invoking OnStart().

This means that all Service implementations are free to safely
access context() any time after OnStart() regardless of what
service-running mechanism was used to create their
ServiceContext.

BUG=654986

Committed: https://crrev.com/6d9b6cd9869d3f8385a42b3272edd7f5b3a6ac5e
Review-Url: https://codereview.chromium.org/2487573002
Cr-Original-Commit-Position: refs/heads/master@{#431752}
Cr-Commit-Position: refs/heads/master@{#431778}

[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/autoclick/mus/autoclick_application.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/autoclick/mus/autoclick_application.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/mus/window_manager_application.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/mus/window_manager_application.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/touch_hud/mus/touch_hud_application.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/ash/touch_hud/mus/touch_hud_application.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/filesystem/file_system_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/filesystem/file_system_app.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/font_service/font_service_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/font_service/font_service_app.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/leveldb/leveldb_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/components/leveldb/leveldb_app.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/browser/browser.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/browser/browser.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/catalog_viewer/catalog_viewer.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/catalog_viewer/catalog_viewer.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/example/views_examples/views_examples.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/example/window_type_launcher/window_type_launcher.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/example/window_type_launcher/window_type_launcher.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/init/init.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/init/init.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/login/login.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/quick_launch/quick_launch.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/quick_launch/quick_launch.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/screenlock/screenlock.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/screenlock/screenlock.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/session/session.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/session/session.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/task_viewer/task_viewer.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/task_viewer/task_viewer.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/webtest/webtest.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/mash/webtest/webtest.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/media/mojo/services/media_service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/media/mojo/services/media_service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/device/device_service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/device/device_service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/file/file_service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/file/file_service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/image_decoder/image_decoder_service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/image_decoder/image_decoder_service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/navigation/navigation.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/navigation/navigation.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/public/cpp/lib/service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/public/cpp/lib/service_context.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/public/cpp/lib/service_test.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/public/cpp/service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/public/cpp/service_test.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/connect/connect_test_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/connect/connect_test_class_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/connect/connect_test_exe.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/connect/connect_test_package.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/lifecycle/app_client.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/lifecycle/app_client.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/lifecycle/package.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/lifecycle/parent.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/service_manager/target.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/service_manager/tests/shutdown/shutdown_client_app.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/demo/mus_demo.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/demo/mus_demo.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/ime/test_ime_driver/test_ime_application.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/ime/test_ime_driver/test_ime_application.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/service.cc
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/service.h
[modify] https://crrev.com/4b5e64d3c7aadaffe9131291fe503a46ea0809d3/services/ui/test_wm/test_wm.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c6026704ff452d402924ce2d88b0168baf227b1e

commit c6026704ff452d402924ce2d88b0168baf227b1e
Author: rockot <rockot@chromium.org>
Date: Tue Mar 21 00:29:35 2017

Move some basic early process init into Service Manager

Introduces the beginnings of an embedder API for the Service Manager,
consisting of a single entry point (service_manager::Main) which in
turn delegates to its embedder for arbitrary initialization and
process execution logic.

This is the first of several incremental steps to remove content from
the generic process startup flow. Future patches will rework various
main entry points to go through service_manager::Main directly, rather
than going ContentMain -> service_manager::Main.

This will also allow us to introduce new process types which run the
Service Manager or arbitrary services directly without touching any
part of content.

BUG=654986

Review-Url: https://codereview.chromium.org/2613653003
Cr-Commit-Position: refs/heads/master@{#458252}

[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/build/sanitizers/lsan_suppressions.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/DEPS
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/BUILD.gn
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/DEPS
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/android/child_process_service_impl.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/android/content_main.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/content_main.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/content_main_runner.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/content_service_manager_main_delegate.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/app/content_service_manager_main_delegate.h
[delete] https://crrev.com/28865543d686d93a737842b56b623f019af8ddac/content/app/mac/mac_init.h
[delete] https://crrev.com/28865543d686d93a737842b56b623f019af8ddac/content/app/mac/mac_init.mm
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/browser/BUILD.gn
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/browser/renderer_host/sandbox_ipc_linux.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/common/BUILD.gn
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/public/app/content_main.h
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/public/common/content_switches.cc
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/public/common/content_switches.h
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/content/zygote/zygote_linux.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/BUILD.gn
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/DEPS
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/README.md
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/mac_init.h
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/mac_init.mm
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/main.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/main.h
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/main_delegate.h
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/service_manager_embedder_export.h
[rename] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/set_process_title.cc
[rename] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/set_process_title.h
[rename] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/set_process_title_linux.cc
[rename] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/set_process_title_linux.h
[rename] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/shared_file_util.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/shared_file_util.h
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/switches.cc
[add] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/embedder/switches.h
[modify] https://crrev.com/c6026704ff452d402924ce2d88b0168baf227b1e/services/service_manager/public/cpp/BUILD.gn
[delete] https://crrev.com/28865543d686d93a737842b56b623f019af8ddac/services/service_manager/public/cpp/shared_file_util.h

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c92dd551abe4a1581981b945076719dff7b4422

commit 1c92dd551abe4a1581981b945076719dff7b4422
Author: horo <horo@chromium.org>
Date: Tue Mar 21 02:11:12 2017

Revert of Move some basic early process init into Service Manager (patchset #5 id:220001 of https://codereview.chromium.org/2613653003/ )

Reason for revert:
Introduced crashes of webkit_tests on Mac.

BUG= 703465 

Original issue's description:
> Move some basic early process init into Service Manager
>
> Introduces the beginnings of an embedder API for the Service Manager,
> consisting of a single entry point (service_manager::Main) which in
> turn delegates to its embedder for arbitrary initialization and
> process execution logic.
>
> This is the first of several incremental steps to remove content from
> the generic process startup flow. Future patches will rework various
> main entry points to go through service_manager::Main directly, rather
> than going ContentMain -> service_manager::Main.
>
> This will also allow us to introduce new process types which run the
> Service Manager or arbitrary services directly without touching any
> part of content.
>
> BUG=654986
>
> Review-Url: https://codereview.chromium.org/2613653003
> Cr-Commit-Position: refs/heads/master@{#458252}
> Committed: https://chromium.googlesource.com/chromium/src/+/c6026704ff452d402924ce2d88b0168baf227b1e

TBR=jam@chromium.org,rockot@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=654986

Review-Url: https://codereview.chromium.org/2763883002
Cr-Commit-Position: refs/heads/master@{#458278}

[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/build/sanitizers/lsan_suppressions.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/DEPS
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/BUILD.gn
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/DEPS
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/android/child_process_service_impl.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/android/content_main.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/content_main.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/content_main_runner.cc
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/content/app/content_service_manager_main_delegate.cc
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/content/app/content_service_manager_main_delegate.h
[add] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/mac/mac_init.h
[add] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/app/mac/mac_init.mm
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/browser/BUILD.gn
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/browser/renderer_host/sandbox_ipc_linux.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/BUILD.gn
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
[rename] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/set_process_title.cc
[rename] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/set_process_title.h
[rename] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/set_process_title_linux.cc
[rename] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/common/set_process_title_linux.h
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/public/app/content_main.h
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/public/common/content_switches.cc
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/public/common/content_switches.h
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/content/zygote/zygote_linux.cc
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/BUILD.gn
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/DEPS
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/README.md
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/mac_init.h
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/mac_init.mm
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/main.cc
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/main.h
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/main_delegate.h
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/service_manager_embedder_export.h
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/shared_file_util.h
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/switches.cc
[delete] https://crrev.com/b3a64fe5febbf538bb12d356728c3d5dba119ca7/services/service_manager/embedder/switches.h
[modify] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/services/service_manager/public/cpp/BUILD.gn
[rename] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/services/service_manager/public/cpp/lib/shared_file_util.cc
[add] https://crrev.com/1c92dd551abe4a1581981b945076719dff7b4422/services/service_manager/public/cpp/shared_file_util.h

Project Member

Comment 15 by bugdroid1@chromium.org, Mar 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3

commit 60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3
Author: rockot <rockot@chromium.org>
Date: Tue Mar 21 06:44:43 2017

Move some basic early process init into Service Manager

Introduces the beginnings of an embedder API for the Service Manager,
consisting of a single entry point (service_manager::Main) which in
turn delegates to its embedder for arbitrary initialization and
process execution logic.

This is the first of several incremental steps to remove content from
the generic process startup flow. Future patches will rework various
main entry points to go through service_manager::Main directly, rather
than going ContentMain -> service_manager::Main.

This will also allow us to introduce new process types which run the
Service Manager or arbitrary services directly without touching any
part of content.

BUG=654986

Review-Url: https://codereview.chromium.org/2613653003
Cr-Original-Commit-Position: refs/heads/master@{#458252}
Committed: https://chromium.googlesource.com/chromium/src/+/c6026704ff452d402924ce2d88b0168baf227b1e
Review-Url: https://codereview.chromium.org/2613653003
Cr-Commit-Position: refs/heads/master@{#458331}

[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/build/sanitizers/lsan_suppressions.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/DEPS
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/BUILD.gn
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/DEPS
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/android/child_process_service_impl.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/android/content_main.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/content_main.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/content_main_runner.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/content_service_manager_main_delegate.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/app/content_service_manager_main_delegate.h
[delete] https://crrev.com/afa8fb380609d492b233088453c6a601f4c14762/content/app/mac/mac_init.h
[delete] https://crrev.com/afa8fb380609d492b233088453c6a601f4c14762/content/app/mac/mac_init.mm
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/browser/BUILD.gn
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/browser/renderer_host/sandbox_ipc_linux.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/common/BUILD.gn
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/common/sandbox_linux/bpf_gpu_policy_linux.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/public/app/content_main.h
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/public/common/content_switches.cc
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/public/common/content_switches.h
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/content/zygote/zygote_linux.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/BUILD.gn
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/DEPS
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/README.md
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/mac_init.h
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/mac_init.mm
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/main.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/main.h
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/main_delegate.h
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/service_manager_embedder_export.h
[rename] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/set_process_title.cc
[rename] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/set_process_title.h
[rename] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/set_process_title_linux.cc
[rename] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/set_process_title_linux.h
[rename] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/shared_file_util.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/shared_file_util.h
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/switches.cc
[add] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/embedder/switches.h
[modify] https://crrev.com/60d92c2f3ff60c2fcc0b3cddd05738403fb1f0c3/services/service_manager/public/cpp/BUILD.gn
[delete] https://crrev.com/afa8fb380609d492b233088453c6a601f4c14762/services/service_manager/public/cpp/shared_file_util.h

Project Member

Comment 16 by bugdroid1@chromium.org, Mar 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866

commit ad57bdd5ac229a7e0fb9b191413cc3057c6b6866
Author: rockot <rockot@chromium.org>
Date: Fri Mar 24 18:28:46 2017

Cloud Print process type: service -> cloud-print-service

Renames the "service" process type (used only for Cloud Print) to
"cloud-print-service", because it's such a good name for service processes,
and nobody else is going to use the old service process type for anything
new.

BUG=654986, 690553 

Review-Url: https://codereview.chromium.org/2769023004
Cr-Commit-Position: refs/heads/master@{#459483}

[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/app/chrome_main_delegate.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/app/main_dll_loader_win.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/common/chrome_paths_win.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/common/chrome_switches.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/common/chrome_switches.h
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/common/service_process_util.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/common/service_process_util_unittest.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/chrome/service/service_main.cc
[modify] https://crrev.com/ad57bdd5ac229a7e0fb9b191413cc3057c6b6866/components/crash/content/app/breakpad_win.cc

@rockot:

With Chromium Embedded Framework we currently call the ContentMainRunner Initialize, Run and Shutdown methods separately [1]. This is for the following reasons:

1. Initialize() initializes the global CommandLine object. CEF references the global CommandLine object for some CEF-specific initialization between Initialize() and Run().

2. CEF optionally supports integration into an existing application message loop instead of using Chromium's default message loop. This requires the embedder to call Shutdown() separately at a later time.

This can also work with the new service_manager model if service_manager::Main() is split into Initialize, Run and Shutdown components. The Main() method then becomes:

int Main(MainParams& params) {
  int exit_code = MainInitialize(params);
  if (exit_code >= 0)
    return exit_code;
  exit_code = MainRun(params);
  MainShutdown(params);
  return exit_code;
}

I've prototyped this change locally and the only somewhat unpleasant requirement is moving the ScopedNSAutoreleasePool to MainParams so that it can be referenced from MainInitialize() and MainShutdown().

If these changes sound reasonable I can submit a CR.

Thanks,
Marshall

[1] https://bitbucket.org/chromiumembedded/cef/src/2f6475c0d89c8b94458b6f7a1146724dbccde09f/libcef/browser/context.cc?at=master&fileviewer=file-view-default#context.cc-309
service_manager::MainDelegate has Initialize, Run, and Shutdown already. I
don't see why it would make sense to introduce MainInitialize, MainRun, and
MainShutdown in addition. You just implement the delegate methods and run
Main().

If you need more control over when/how Run and/or Shutdown are called, we
can discuss those details and find a way to make the delegate API
sufficient for that purpose.


I would discourage any such changes.

Note that there is work in progress here already anyway. For example I'm
changing MainDelegate to look something like:

https://chromium-review.googlesource.com/c/477393/1/services/service_manager/embedder/main_delegate.h

(so you'd implement RunEmbedderProcess and ShutDownEmbedderProcess instead)
@rockot: The problem is that you've moved startup logic from ContentMainRunner to service_manager::Main(). I cannot properly initialize Chromium for use with CEF without either duplicating or splitting the functionality in service_manager::Main(). This is why I originally refactored [1] ContentMainRunner into the form that you found it. Lets please discuss how to improve this situation without requiring code duplication.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=112507
I've moved code around but otherwise have not changed the way content
embedders see startup in any way. You till implement ContentMainDelegate
yes? I don't understand how this could have an effect on CEF?
@rocket: Not all content embedders call ContentMain(). CEF calls the ContentMainRunner Initialize, Run and Shutdown methods separately as linked in comment #17. Consequently when you move code out of ContentMainRunner and into service_manager::Main() that code is no longer executed when (for example) ContentMainRunner::Initialize() is called directly by CEF.
I see. My assumption was that all content embedders called ContentMain.

I don't like the idea of introducing a MainInitialize, MainRun, and
MainShutdown, so let's find a better solution.
@rockot: Keeping all functionality in a delegate class instead of a single runtime function would likely resolve the issue. For example, if service_manager::Main() can be implemented as follows using your proposed MainDelegate class:

int Main(MainDelegate* delegate, ...) {
  int exit_code = delegate->Initialize(...);
  if (exit_code >= 0)
    return exit_code;
  exit_code = delegate->Run(...);
  delegate->Shutdown(...);
  return exit_code;
}

All of the functionality that currently exists in service_manager::Main() would then be moved to a MainDelegate base class or similar where it can be shared by embedders that are calling the MainDelegate methods directly instead of using service_manager::Main().
Project Member

Comment 24 by bugdroid1@chromium.org, Apr 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/74946c37525c8b29f9b7b117c2d092a31b467b4d

commit 74946c37525c8b29f9b7b117c2d092a31b467b4d
Author: Ken Rockot <rockot@chromium.org>
Date: Wed Apr 26 04:04:15 2017

Migrate Mash to use embedded services

Extends the Service Manager embedder API to allow embedders to run
a standalone Service Manager process as well as standalone service
processes for embedded services.

Eliminates MashRunner and all Mash-related service packaging, instead
treating Mash services as embedded services. Chrome (via content)
provides the implementation details necessary to mirror the existing
MashRunner behavior on top of the Service Manager embedder API.

BUG=654986

Change-Id: I79d8eb66e0b98746fd5b5b7f7ea8e8f6b217b6fd
Reviewed-on: https://chromium-review.googlesource.com/477393
Reviewed-by: Ben Goodger <ben@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Oystein Eftevaag <oysteine@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#467230}
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/DEPS
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/chrome_main.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/chrome_main_delegate.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/chrome_main_delegate.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/mash/BUILD.gn
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/chrome/app/mash/chrome_mash_manifest.json
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/chrome/app/mash/chrome_mus_manifest.json
[add] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/mash/embedded_services.cc
[add] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/app/mash/embedded_services.h
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/chrome/app/mash/mash_runner.cc
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/chrome/app/mash/mash_runner.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/browser/about_flags.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/DEPS
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/base/mash_browser_tests_main.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/base/mash_browser_tests_manifest.json
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/base/mojo_test_connector.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/base/mojo_test_connector.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/chrome/test/base/mus_browser_tests_manifest.json
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/app/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/app/android/child_process_service_impl.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/app/content_main_runner.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/app/content_service_manager_main_delegate.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/app/content_service_manager_main_delegate.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/browser/child_process_launcher_helper_posix.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/common/service_manager/child_connection.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/common/service_manager/service_manager_connection_impl.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/public/app/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/public/app/DEPS
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/public/app/content_main_delegate.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/content/public/app/content_main_delegate.h
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/mash/package/BUILD.gn
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/mash/package/DEPS
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/mash/package/mash_packaged_service.cc
[delete] https://crrev.com/368d0cd01a9c13281b2526feb9dc083b27f2af91/mash/package/mash_packaged_service.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/catalog/catalog.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/background/background_service_manager.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/background/background_service_manager.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/BUILD.gn
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/DEPS
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/main.cc
[add] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/main_delegate.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/main_delegate.h
[add] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/process_type.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/switches.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/embedder/switches.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/public/cpp/identity.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/public/cpp/lib/identity.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/runner/common/client_util.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/runner/common/switches.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/runner/common/switches.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/runner/host/service_process_launcher.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/runner/init.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/service_manager.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/service_manager.h
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/services/service_manager/tests/util.cc
[modify] https://crrev.com/74946c37525c8b29f9b7b117c2d092a31b467b4d/testing/buildbot/gn_isolate_map.pyl

Project Member

Comment 25 by bugdroid1@chromium.org, Apr 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ff354462a0bd48001bc59aef6910447b3b7af7a

commit 9ff354462a0bd48001bc59aef6910447b3b7af7a
Author: Ken Rockot <rockot@chromium.org>
Date: Thu Apr 27 19:23:59 2017

Add jcivelli@ and rockot@ to app OWNERS

Logic in chrome/app, content/app, and content/public/app is
primarily  concerned with basic process initialization and
lifecycle.

This adds some appropriate OWNERS to cover the ongoing effort to
refactor that stuff into services/service_manager.

BUG=654986
R=jam@chromium.org

Change-Id: Idd4ca1ae43e2e14110a82f3cd0e6d5dc04e13b7c
Reviewed-on: https://chromium-review.googlesource.com/488103
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Ken Rockot <rockot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#467751}
[modify] https://crrev.com/9ff354462a0bd48001bc59aef6910447b3b7af7a/chrome/app/OWNERS
[add] https://crrev.com/9ff354462a0bd48001bc59aef6910447b3b7af7a/content/app/OWNERS
[add] https://crrev.com/9ff354462a0bd48001bc59aef6910447b3b7af7a/content/public/app/OWNERS

Comment 26 by dgn@chromium.org, Apr 28 2017

Blockedon: 716416

Comment 27 by jsba...@gmail.com, Apr 28 2017

I was re-directed from the CEF website to this issue regarding my comments on the implementation of InitializeMac in mac_init.mm.
Setting NSApplicationCrashOnExceptions to YES is very problematic and should be removed.
In Photoshop's use of Cef we have seen crashes caused by this when interacting with the IME. If you select all in an edit field that contains composite characters and then type a character, then sometimes we see a crash because Apple's IME handler throws an obj-c exception. In normal circumstances Apple's internal (carbon) event dispatcher catches and ignores this exception, but with NSApplicationCrashOnExceptions set to YES the host process is terminated.
We discussed this with Apple, and their input is that NSApplicationCrashOnExceptions=YES should only be used during development and not in release products. For development we do not need to set this from code, but you can instead set this using the normal defaults write mechanism.
I (strongly) advocate that Chromium removes this override.

Comment 28 by msi...@igalia.com, May 1 2017

Hi!

Is Ozone ChromeOS broken now? I cannot start it.
This bug exists to track refactoring of existing code.

Re comment #27: The change to set NSApplicationCrashOnExceptions=YES was made 10 months ago in r403545. If you think that's a bug, please file a new bug for it instead of posting about it here.

Re comment #28: If you believe Ozone Chrome OS, please file a new bug for it instead of posting about it here.
Components: Internals>Services
Labels: Type-Task
Appending component Internals>Services to S13N projects and changing the Type (for tracking sake) to Type=Task.
Owner: rockot@google.com

Sign in to add a comment