Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1058)

Issue 893183003: De-client the ViewManager interfaces (Closed)

Created:
5 years, 10 months ago by jamesr
Modified:
5 years, 10 months ago
Reviewers:
sky
CC:
mojo-reviews_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, darin (slow to review), ben+mojo_chromium.org
Base URL:
git@github.com:domokit/mojo.git@master
Target Ref:
refs/heads/master
Project:
mojo
Visibility:
Public.

Description

De-client the ViewManager interfaces The ViewManager interface is composed of a ViewManagerService and ViewManagerClient interface. The ViewManagerClient interface is implemented by the view manager client library in //mojo/public/view_manager/public/cpp/* for most use cases and the ViewManagerService interface is implemented by //services/view_manager/view_manager_service_impl. The normal startup flow is that an application will ask the view manager service to embed another application that includes the view manager client library. When the embedded application starts up, it will register its ViewManagerClient implementation on its ApplicationConnection. The view manager service implementation will use this to establish a connection to the ViewManagerClient interface implemented by the client lib. Then the view manager service will pass a handle to itself via the ViewManagerClient.OnEmbed() call. The window manager startup sequence is a inverted from this flow. The window manager implements the ViewManagerClient interface as well but it initiates the connection to the view manager service. The view manager service provides an implementation of the ViewManagerService implementation when the window manager connects and connects back to the window manager using the WindowManagerInternal interface. Then, the view manager service allocates a message pipe and passes a ViewManagerClient request along the WindowManagerInternal interface for the window manager to bind to its implementation of ViewManagerClient. The view manager apptests have both kinds of connections. The initial view manager service connection goes through the window manager flow and later connections go through the view manager client lib flow. The handle types for window manager message pipes in the view manager interfaces and vis versa are expressed in the mojom as handle<message_pipe> instead of the typed values to avoid creating a dependency between the interface definitions in the mojoms. R=sky@chromium.org BUG=451319 Committed: https://chromium.googlesource.com/external/mojo/+/2297c63c842f6dc70d16f46dd074847a2a110982

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+152 lines, -85 lines) Patch
M mojo/services/view_manager/public/cpp/lib/view_manager_client_factory.cc View 2 chunks +5 lines, -4 lines 0 comments Download
M mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.h View 5 chunks +6 lines, -4 lines 0 comments Download
M mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc View 10 chunks +28 lines, -20 lines 0 comments Download
M mojo/services/view_manager/public/cpp/view_manager_client_factory.h View 1 chunk +2 lines, -1 line 0 comments Download
M mojo/services/view_manager/public/interfaces/view_manager.mojom View 3 chunks +1 line, -2 lines 0 comments Download
M mojo/services/window_manager/public/interfaces/window_manager_internal.mojom View 1 chunk +2 lines, -0 lines 0 comments Download
M services/view_manager/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
M services/view_manager/client_connection.h View 4 chunks +8 lines, -7 lines 0 comments Download
M services/view_manager/client_connection.cc View 2 chunks +8 lines, -6 lines 0 comments Download
M services/view_manager/connection_manager.cc View 2 chunks +5 lines, -3 lines 0 comments Download
M services/view_manager/connection_manager_delegate.h View 2 chunks +2 lines, -0 lines 0 comments Download
M services/view_manager/view_manager_app.h View 3 chunks +3 lines, -0 lines 0 comments Download
M services/view_manager/view_manager_app.cc View 3 chunks +11 lines, -8 lines 0 comments Download
M services/view_manager/view_manager_service_apptest.cc View 11 chunks +49 lines, -16 lines 0 comments Download
M services/view_manager/view_manager_service_impl.h View 1 chunk +1 line, -0 lines 0 comments Download
M services/view_manager/view_manager_service_impl.cc View 2 chunks +2 lines, -1 line 0 comments Download
M services/view_manager/view_manager_service_unittest.cc View 4 chunks +4 lines, -3 lines 0 comments Download
M services/window_manager/window_manager_app.h View 2 chunks +3 lines, -0 lines 0 comments Download
M services/window_manager/window_manager_app.cc View 2 chunks +11 lines, -10 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
jamesr
5 years, 10 months ago (2015-02-06 18:43:28 UTC) #1
sky
Nice. Just document when the ViewManagerService can be null to OnEmbed and LGTM
5 years, 10 months ago (2015-02-06 18:59:20 UTC) #2
jamesr
5 years, 10 months ago (2015-02-06 19:06:39 UTC) #3
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
2297c63c842f6dc70d16f46dd074847a2a110982 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698