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

Side by Side Diff: components/view_manager/public/interfaces/view_manager.mojom

Issue 1166123005: Removes ServiceProviders from ViewManager::Embed (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: use is_headless rather than check for browser. Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 module mojo; 5 module mojo;
6 6
7 import "components/view_manager/public/interfaces/surface_id.mojom"; 7 import "components/view_manager/public/interfaces/surface_id.mojom";
8 import "components/view_manager/public/interfaces/view_manager_constants.mojom"; 8 import "components/view_manager/public/interfaces/view_manager_constants.mojom";
9 import "mojo/application/public/interfaces/service_provider.mojom"; 9 import "mojo/application/public/interfaces/service_provider.mojom";
10 import "network/public/interfaces/url_loader.mojom"; 10 import "network/public/interfaces/url_loader.mojom";
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 // Returns the views comprising the tree starting at |view_id|. |view_id| is 105 // Returns the views comprising the tree starting at |view_id|. |view_id| is
106 // the first result in the return value, unless |view_id| is invalid, in which 106 // the first result in the return value, unless |view_id| is invalid, in which
107 // case an empty vector is returned. The views are visited using a depth first 107 // case an empty vector is returned. The views are visited using a depth first
108 // search (pre-order). 108 // search (pre-order).
109 GetViewTree(uint32 view_id) => (array<ViewData> views); 109 GetViewTree(uint32 view_id) => (array<ViewData> views);
110 110
111 // Shows the surface in the specified view. 111 // Shows the surface in the specified view.
112 SetViewSurfaceId(uint32 view_id, SurfaceId surface_id) => (bool success); 112 SetViewSurfaceId(uint32 view_id, SurfaceId surface_id) => (bool success);
113 113
114 // Tells the ViewManagerService that the ViewManagerClient wants to get 114 // Tells the ViewManagerService that the ViewManagerClient wants to get
115 // OnWillEmbed() when Embed() is invoked on any descendant Views created by 115 // OnEmbedForDescendant() when EmbedAllowingReembed() is invoked on any
116 // other ViewManagerClients. 116 // descendant Views.
117 // 117 //
118 // See Embed() docs for more details. 118 // See Embed() docs for more details.
119 // 119 //
120 // TODO(sky): this needs to be restricted in some way. Maybe the root can 120 // TODO(sky): this needs to be restricted in some way. Maybe the root can
121 // grant this ability? 121 // grant this ability?
122 SetEmbedRoot(); 122 SetEmbedRoot();
123 123
124 // A connection may grant access to a view from another connection by way of 124 // A connection may grant access to a view from another connection by way of
125 // the embed functions. The following variants exist: 125 // the embed functions. The following variants exist:
126 // 126 //
127 // . EmbedRequest: the ViewManager connects to the app at the supplied request 127 // . Embed: the client supplies the ViewManagerClient to embed.
128 // and asks it for a ViewManagerClient. 128 // . EmbedAllowingReembed: walks the view tree for the first embed root
129 // . Embed: the client supplies the ViewManagerClient to use. 129 // ancestor and asks it to perform the embed (OnEmbedForDescendant()).
130 // . EmbedAllowingReembed: similar to EmbedRequest(), but no 130 // The embed root ancestor may allow or disallow the request. If there is no
131 // ServiceProviders are supplied. Additionally this version allows an 131 // embed root ancestor ViewManager connects to the application and requests
132 // EmbedRoot ancestor to call Embed() in this view at a later date. 132 // a ViewManagerClient from it.
133 // 133 //
134 // In all cases the new ViewManagerClient is configured with a root of 134 // In all cases the new ViewManagerClient is configured with a root of
135 // |view_id|. 135 // |view_id|.
136 // 136 //
137 // The caller must have created |view_id|. If not the request fails and the 137 // The caller must have created |view_id|. If not the request fails and the
138 // response is false. 138 // response is false.
139 // 139 //
140 // A view may only be a root of one connection at a time. Subsequent calls to 140 // A view may only have one embedding in it at a time. Subsequent calls to
141 // Embed() for the same view result in the view being removed from the 141 // Embed() for the same view result in the currently embedded
142 // currently embedded app. The embedded app is told this by way of 142 // ViewManagerClient being removed. The embedded app is told this by way of
143 // OnViewDeleted(). 143 // OnViewDeleted().
144 // 144 //
145 // The embedder can detect when the embedded app disconnects by way of 145 // The embedder can detect when the embedded app disconnects by way of
146 // OnEmbeddedAppDisconnected(). 146 // OnEmbeddedAppDisconnected().
147 // 147 //
148 // When a connection embeds an app the connection no longer has priviledges 148 // When a connection embeds an app the connection no longer has priviledges
149 // to access or see any of the children of the view. If the view had existing 149 // to access or see any of the children of the view. If the view had existing
150 // children the children are removed. The one exception is the root 150 // children the children are removed. The one exception is the root
151 // connection and any embed roots. Embed roots always see the full tree. 151 // connection and any embed roots. The root always see the full tree, and
152 // 152 // embed roots see the complete tree at their embed point.
153 // The embed functions call OnWillEmbed() on the first ancestor that has
154 // been set as an embed root.
155 //
156 // |services| encapsulates services offered by the embedder to the embedded
157 // app alongside this Embed() call. |exposed_services| provides a means for
158 // the embedder to connect to services exposed by the embedded app. Note that
159 // if a different app is subsequently embedded at |view_id| the
160 // ServiceProvider connections to its client in the embedded app and any
161 // services it provided are not broken and continue to be valid.
162 EmbedRequest(URLRequest request,
163 uint32 view_id,
164 ServiceProvider&? services,
165 ServiceProvider? exposed_services) => (bool success);
166 Embed(uint32 view_id, ViewManagerClient client) => (bool success); 153 Embed(uint32 view_id, ViewManagerClient client) => (bool success);
167 EmbedAllowingReembed(URLRequest request, uint32 view_id) => (bool success); 154 EmbedAllowingReembed(uint32 view_id, URLRequest request) => (bool success);
168 155
169 SetFocus(uint32 view_id) => (bool success); 156 SetFocus(uint32 view_id) => (bool success);
170 }; 157 };
171 158
172 // Changes to views are not sent to the connection that originated the 159 // Changes to views are not sent to the connection that originated the
173 // change. For example, if connection 1 changes the bounds of a view by calling 160 // change. For example, if connection 1 changes the bounds of a view by calling
174 // SetBounds(), connection 1 does not receive OnViewBoundsChanged(). 161 // SetBounds(), connection 1 does not receive OnViewBoundsChanged().
175 interface ViewManagerClient { 162 interface ViewManagerClient {
176 // Invoked when the client application has been embedded at |root|. 163 // Invoked when the client application has been embedded at |root|.
177 // See Embed() on ViewManagerService for more details. |view_manager_service| 164 // See Embed() on ViewManagerService for more details. |view_manager_service|
178 // will be a handle back to the view manager service, unless the connection is 165 // will be a handle back to the view manager service, unless the connection is
179 // to the WindowManager in which case it will be null. 166 // to the WindowManager in which case it will be null.
180 OnEmbed(uint16 connection_id, 167 OnEmbed(uint16 connection_id,
181 string embedder_url,
182 ViewData root, 168 ViewData root,
183 ViewManagerService? view_manager_service, 169 ViewManagerService? view_manager_service,
184 ServiceProvider&? services,
185 ServiceProvider? exposed_services,
186 uint32 focused_view); 170 uint32 focused_view);
187 171
188 // Notifies a ViewManagerClient that an embed is about to happen. The 172 // Asks the ViewManagerClient that was marked as an embed root for the
189 // ViewManagerClient can decide not to allow the embed as well as changing 173 // ViewManagerClient to embed in |view|. The embed can be disallowed by
190 // the ServiceProviders that are exposed as a result of the embed. This is 174 // calling the callback with nullptr.
191 // only invoked once per embed, and is invoked on the first ancestor that has 175 OnEmbedForDescendant(uint32 view, URLRequest request) =>
192 // invoked SetEmbedRoot(). 176 (ViewManagerClient? client);
193 OnWillEmbed(uint32 view,
194 ServiceProvider&? services,
195 ServiceProvider? exposed_services) =>
196 (bool proceed_with_embed,
197 ServiceProvider&? services,
198 ServiceProvider? exposed_services);
199 177
200 // Invoked when the application embedded at |view| is disconnected. 178 // Invoked when the application embedded at |view| is disconnected.
201 OnEmbeddedAppDisconnected(uint32 view); 179 OnEmbeddedAppDisconnected(uint32 view);
202 180
203 // Invoked when a view's bounds have changed. 181 // Invoked when a view's bounds have changed.
204 OnViewBoundsChanged(uint32 view, 182 OnViewBoundsChanged(uint32 view,
205 mojo.Rect old_bounds, 183 mojo.Rect old_bounds,
206 mojo.Rect new_bounds); 184 mojo.Rect new_bounds);
207 185
208 // Invoked when the viewport metrics for the view have changed. 186 // Invoked when the viewport metrics for the view have changed.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 224
247 // Invoked when a view property is changed. If this change is a removal, 225 // Invoked when a view property is changed. If this change is a removal,
248 // |new_data| is null. 226 // |new_data| is null.
249 OnViewSharedPropertyChanged(uint32 view, string name, array<uint8>? new_data); 227 OnViewSharedPropertyChanged(uint32 view, string name, array<uint8>? new_data);
250 228
251 // Invoked when an event is targeted at the specified view. 229 // Invoked when an event is targeted at the specified view.
252 OnViewInputEvent(uint32 view, mojo.Event event) => (); 230 OnViewInputEvent(uint32 view, mojo.Event event) => ();
253 231
254 OnViewFocused(uint32 focused_view_id); 232 OnViewFocused(uint32 focused_view_id);
255 }; 233 };
OLDNEW
« no previous file with comments | « components/view_manager/public/cpp/view_manager_delegate.h ('k') | components/view_manager/test_change_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698