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

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, 5 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..92767403fb64bc56f32898616931d21230b17883 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,7 @@ 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);
+ Embed(string url, ServiceProvider service_provider) => (bool success);
sky 2014/07/31 21:14:11 Add comment about see below Embed() below for deta
};
// Nodes and Views are identified by a uint32. The upper 16 bits are the
@@ -142,7 +143,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 +166,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 +220,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);

Powered by Google App Engine
This is Rietveld 408576698