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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: components/view_manager/public/interfaces/view_manager.mojom
diff --git a/components/view_manager/public/interfaces/view_manager.mojom b/components/view_manager/public/interfaces/view_manager.mojom
index 70afc08f2c29d0ec29e30dfdc777b2426f7b3ab4..80d636011c0859b1443a1bc18b84b2a7ab3f675f 100644
--- a/components/view_manager/public/interfaces/view_manager.mojom
+++ b/components/view_manager/public/interfaces/view_manager.mojom
@@ -112,8 +112,8 @@ interface ViewManagerService {
SetViewSurfaceId(uint32 view_id, SurfaceId surface_id) => (bool success);
// Tells the ViewManagerService that the ViewManagerClient wants to get
- // OnWillEmbed() when Embed() is invoked on any descendant Views created by
- // other ViewManagerClients.
+ // OnEmbedForDescendant() when EmbedAllowingReembed() is invoked on any
+ // descendant Views.
//
// See Embed() docs for more details.
//
@@ -124,12 +124,12 @@ interface ViewManagerService {
// A connection may grant access to a view from another connection by way of
// the embed functions. The following variants exist:
//
- // . EmbedRequest: the ViewManager connects to the app at the supplied request
- // and asks it for a ViewManagerClient.
- // . Embed: the client supplies the ViewManagerClient to use.
- // . EmbedAllowingReembed: similar to EmbedRequest(), but no
- // ServiceProviders are supplied. Additionally this version allows an
- // EmbedRoot ancestor to call Embed() in this view at a later date.
+ // . Embed: the client supplies the ViewManagerClient to embed.
+ // . EmbedAllowingReembed: walks the view tree for the first embed root
+ // ancestor and asks it to perform the embed (OnEmbedForDescendant()).
+ // The embed root ancestor may allow or disallow the request. If there is no
+ // embed root ancestor ViewManager connects to the application and requests
+ // a ViewManagerClient from it.
//
// In all cases the new ViewManagerClient is configured with a root of
// |view_id|.
@@ -137,9 +137,9 @@ interface ViewManagerService {
// The caller must have created |view_id|. If not the request fails and the
// response is false.
//
- // A view may only be a root of one connection at a time. Subsequent calls to
- // Embed() for the same view result in the view being removed from the
- // currently embedded app. The embedded app is told this by way of
+ // A view may only have one embedding in it at a time. Subsequent calls to
+ // Embed() for the same view result in the currently embedded
+ // ViewManagerClient being removed. The embedded app is told this by way of
// OnViewDeleted().
//
// The embedder can detect when the embedded app disconnects by way of
@@ -148,23 +148,10 @@ interface ViewManagerService {
// When a connection embeds an app the connection no longer has priviledges
// to access or see any of the children of the view. If the view had existing
// children the children are removed. The one exception is the root
- // connection and any embed roots. Embed roots always see the full tree.
- //
- // The embed functions call OnWillEmbed() on the first ancestor that has
- // been set as an embed root.
- //
- // |services| encapsulates services offered by the embedder to the embedded
- // app alongside this Embed() call. |exposed_services| provides a means for
- // the embedder to connect to services exposed by the embedded app. Note that
- // if a different app is subsequently embedded at |view_id| the
- // ServiceProvider connections to its client in the embedded app and any
- // services it provided are not broken and continue to be valid.
- EmbedRequest(URLRequest request,
- uint32 view_id,
- ServiceProvider&? services,
- ServiceProvider? exposed_services) => (bool success);
+ // connection and any embed roots. The root always see the full tree, and
+ // embed roots see the complete tree at their embed point.
Embed(uint32 view_id, ViewManagerClient client) => (bool success);
- EmbedAllowingReembed(URLRequest request, uint32 view_id) => (bool success);
+ EmbedAllowingReembed(uint32 view_id, URLRequest request) => (bool success);
SetFocus(uint32 view_id) => (bool success);
};
@@ -178,24 +165,15 @@ interface ViewManagerClient {
// will be a handle back to the view manager service, unless the connection is
// to the WindowManager in which case it will be null.
OnEmbed(uint16 connection_id,
- string embedder_url,
ViewData root,
ViewManagerService? view_manager_service,
- ServiceProvider&? services,
- ServiceProvider? exposed_services,
uint32 focused_view);
- // Notifies a ViewManagerClient that an embed is about to happen. The
- // ViewManagerClient can decide not to allow the embed as well as changing
- // the ServiceProviders that are exposed as a result of the embed. This is
- // only invoked once per embed, and is invoked on the first ancestor that has
- // invoked SetEmbedRoot().
- OnWillEmbed(uint32 view,
- ServiceProvider&? services,
- ServiceProvider? exposed_services) =>
- (bool proceed_with_embed,
- ServiceProvider&? services,
- ServiceProvider? exposed_services);
+ // Asks the ViewManagerClient that was marked as an embed root for the
+ // ViewManagerClient to embed in |view|. The embed can be disallowed by
+ // calling the callback with nullptr.
+ OnEmbedForDescendant(uint32 view, URLRequest request) =>
+ (ViewManagerClient? client);
// Invoked when the application embedded at |view| is disconnected.
OnEmbeddedAppDisconnected(uint32 view);
« 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