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

Unified Diff: mojo/services/public/interfaces/view_manager/view_manager.mojom

Issue 433513005: Pass ServiceProvider thru ViewManagerService::Embed() allowing embedder & embeddee to expose servic… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/services/public/interfaces/view_manager/view_manager.mojom
diff --git a/mojo/services/public/interfaces/view_manager/view_manager.mojom b/mojo/services/public/interfaces/view_manager/view_manager.mojom
index 81bb028efb1d571ea15f5ee236ec480e8b1f7b8e..3d6233c7d06e88c7211b41ea484917f9eedf05d5 100644
--- a/mojo/services/public/interfaces/view_manager/view_manager.mojom
+++ b/mojo/services/public/interfaces/view_manager/view_manager.mojom
@@ -2,6 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+import "mojo/public/interfaces/application/service_provider.mojom"
import "mojo/services/public/interfaces/geometry/geometry.mojom"
import "mojo/services/public/interfaces/input_events/input_events.mojom"
import "mojo/services/public/interfaces/view_manager/view_manager_constants.mojom"
@@ -33,7 +34,8 @@ interface ViewManagerInitService {
// application embedded at the service root Node. This application is
// typically referred to as the "window manager", and will have a specific
// definition of where within its Node hierarchy to embed an unparented URL.
- Embed(string url) => (bool success);
+ // See ViewManagerService below for more details about |service_provider|.
+ Embed(string url, ServiceProvider service_provider) => (bool success);
};
// Nodes and Views are identified by a uint32. The upper 16 bits are the
@@ -142,7 +144,16 @@ interface ViewManagerService {
// If |node_id| is 0, the View Manager delegates determination of what node to
// embed |url| at to the app embedded at the service root node (i.e. the
// window manager).
- Embed(string url, uint32 node_id) => (bool success);
+ //
+ // |service_provider| encapsulates services offered by the embedder to the
+ // embedded app alongside this Embed() call. It also provides a means for
+ // the embedder to connect to services symmetrically exposed by the embedded
+ // app. Note that if a different app is subsequently embedded at |node_id|
+ // the |service_provider|'s connection to its client in the embedded app and
+ // any services it provided are not broken and continue to be valid.
+ Embed(string url,
+ uint32 node_id,
+ ServiceProvider service_provider) => (bool success);
// TODO(sky): move these to a separate interface when FIFO works.
@@ -156,7 +167,11 @@ interface ViewManagerService {
[Client=ViewManagerService]
interface ViewManagerClient {
// Invoked when the client application has been embedded at |root|.
- OnEmbed(uint16 connection_id, string embedder_url, NodeData root);
+ // See Embed() on ViewManagerService for more details.
+ OnEmbed(uint16 connection_id,
+ string embedder_url,
+ NodeData root,
+ ServiceProvider& service_provider);
// Invoked when a node's bounds have changed.
OnNodeBoundsChanged(uint32 node, mojo.Rect old_bounds, mojo.Rect new_bounds);
@@ -206,7 +221,7 @@ interface ViewManagerClient {
// once support for derived FIFOs is landed.
// Requests the window manager create a "top level" node embedding |url|.
- Embed(string url);
+ Embed(string url, ServiceProvider& service_provider);
// Requests the view manager dispatch the event targeted at |view|.
DispatchOnViewInputEvent(uint32 view, mojo.Event event);
« no previous file with comments | « mojo/services/public/cpp/view_manager/window_manager_delegate.h ('k') | mojo/services/view_manager/root_node_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698