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

Unified Diff: components/view_manager/view_manager_service_impl.cc

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/view_manager_service_impl.cc
diff --git a/components/view_manager/view_manager_service_impl.cc b/components/view_manager/view_manager_service_impl.cc
index 96c34f6e107c4811778106c64784d506b83f3f0b..21b72efeb34f24e58c88efb71307fccae9944222 100644
--- a/components/view_manager/view_manager_service_impl.cc
+++ b/components/view_manager/view_manager_service_impl.cc
@@ -35,7 +35,6 @@ struct ViewManagerServiceImpl::PendingEmbed
PendingEmbed() : embed_root(nullptr) {}
ViewManagerServiceImpl* embed_root;
- mojo::URLRequestPtr url_request;
ViewId view_id;
mojo::Callback<void(bool)> callback;
@@ -48,14 +47,10 @@ struct ViewManagerServiceImpl::PendingEmbed
ViewManagerServiceImpl::ViewManagerServiceImpl(
ConnectionManager* connection_manager,
mojo::ConnectionSpecificId creator_id,
- const std::string& creator_url,
- const std::string& url,
const ViewId& root_id)
: connection_manager_(connection_manager),
id_(connection_manager_->GetAndAdvanceNextConnectionId()),
- url_(url),
creator_id_(creator_id),
- creator_url_(creator_url),
client_(nullptr),
is_embed_root_(false) {
CHECK(GetView(root_id));
@@ -71,9 +66,7 @@ ViewManagerServiceImpl::~ViewManagerServiceImpl() {
}
void ViewManagerServiceImpl::Init(mojo::ViewManagerClient* client,
- mojo::ViewManagerServicePtr service_ptr,
- InterfaceRequest<ServiceProvider> services,
- ServiceProviderPtr exposed_services) {
+ mojo::ViewManagerServicePtr service_ptr) {
DCHECK(!client_);
client_ = client;
std::vector<const ServerView*> to_send;
@@ -86,8 +79,7 @@ void ViewManagerServiceImpl::Init(mojo::ViewManagerClient* client,
const mojo::Id focused_view_transport_id(
ViewIdToTransportId(focused_view ? focused_view->id() : ViewId()));
- client->OnEmbed(id_, creator_url_, ViewToViewData(to_send.front()),
- service_ptr.Pass(), services.Pass(), exposed_services.Pass(),
+ client->OnEmbed(id_, ViewToViewData(to_send.front()), service_ptr.Pass(),
focused_view_transport_id);
}
@@ -161,16 +153,10 @@ bool ViewManagerServiceImpl::SetViewVisibility(const ViewId& view_id,
return true;
}
-void ViewManagerServiceImpl::SetEmbedRoot() {
- is_embed_root_ = true;
-}
-
-void ViewManagerServiceImpl::Embed(mojo::URLRequestPtr request,
- const ViewId& view_id,
- EmbedType type,
- InterfaceRequest<ServiceProvider> services,
- ServiceProviderPtr exposed_services,
- const mojo::Callback<void(bool)>& callback) {
+void ViewManagerServiceImpl::EmbedAllowingReembed(
+ const ViewId& view_id,
+ mojo::URLRequestPtr request,
+ const mojo::Callback<void(bool)>& callback) {
if (!CanEmbed(view_id)) {
callback.Run(false);
return;
@@ -178,11 +164,10 @@ void ViewManagerServiceImpl::Embed(mojo::URLRequestPtr request,
ViewManagerServiceImpl* embed_root = nullptr;
- // Only the creator is allowed to reset reembed.
ServerView* view = GetView(view_id);
DCHECK(view); // CanEmbed() returns true only if |view_id| is valid.
if (view->id().connection_id == id_) {
- view->set_allows_reembed(type == EmbedType::ALLOW_REEMBED);
+ view->set_allows_reembed(true);
// Only consult the embed root if the creator is doing the embed. If someone
// other than the creator is doing the embed they were granted embed access.
@@ -191,8 +176,7 @@ void ViewManagerServiceImpl::Embed(mojo::URLRequestPtr request,
if (!embed_root) {
PrepareForEmbed(view_id);
- connection_manager_->EmbedAtView(id_, request.Pass(), view_id,
- services.Pass(), exposed_services.Pass());
+ connection_manager_->EmbedAtView(id_, view_id, request.Pass());
callback.Run(true);
return;
}
@@ -202,18 +186,16 @@ void ViewManagerServiceImpl::Embed(mojo::URLRequestPtr request,
pending_embeds_.insert(pending_embed);
pending_embed->embed_root = embed_root;
pending_embed->view_id = view_id;
- pending_embed->url_request = request.Pass();
pending_embed->callback = callback;
pending_embeds_.insert(pending_embed);
- embed_root->client()->OnWillEmbed(
- ViewIdToTransportId(view_id), services.Pass(), exposed_services.Pass(),
- base::Bind(&ViewManagerServiceImpl::OnWillEmbedDone,
+ embed_root->client()->OnEmbedForDescendant(
+ ViewIdToTransportId(view_id), request.Pass(),
+ base::Bind(&ViewManagerServiceImpl::OnEmbedForDescendantDone,
base::Unretained(this), pending_embed));
}
bool ViewManagerServiceImpl::Embed(const ViewId& view_id,
mojo::ViewManagerClientPtr client) {
- // TODO(sky): wire up embed root.
if (!client.get() || !CanEmbed(view_id))
return false;
PrepareForEmbed(view_id);
@@ -567,20 +549,17 @@ void ViewManagerServiceImpl::RemoveChildrenAsPartOfEmbed(
view->Remove(children[i]);
}
-void ViewManagerServiceImpl::OnWillEmbedDone(
+void ViewManagerServiceImpl::OnEmbedForDescendantDone(
scoped_refptr<PendingEmbed> pending_embed,
- bool allow_embed,
- mojo::InterfaceRequest<mojo::ServiceProvider> services,
- mojo::ServiceProviderPtr exposed_services) {
+ mojo::ViewManagerClientPtr client) {
if (!pending_embeds_.count(pending_embed.get()))
return;
- allow_embed = allow_embed && CanEmbed(pending_embed->view_id);
+ const bool allow_embed = client.get() && CanEmbed(pending_embed->view_id);
if (allow_embed) {
PrepareForEmbed(pending_embed->view_id);
- connection_manager_->EmbedAtView(id_, pending_embed->url_request.Pass(),
- pending_embed->view_id, services.Pass(),
- exposed_services.Pass());
+ connection_manager_->EmbedAtView(id_, pending_embed->view_id,
+ client.Pass());
}
RemovePendingEmbedAndNotifyCallback(pending_embed.get(), allow_embed);
}
@@ -733,23 +712,8 @@ void ViewManagerServiceImpl::SetViewProperty(
callback.Run(success);
}
-void ViewManagerServiceImpl::EmbedRequest(
- mojo::URLRequestPtr request,
- Id transport_view_id,
- InterfaceRequest<ServiceProvider> services,
- ServiceProviderPtr exposed_services,
- const Callback<void(bool)>& callback) {
- Embed(request.Pass(), ViewIdFromTransportId(transport_view_id),
- EmbedType::NO_REEMBED, services.Pass(), exposed_services.Pass(),
- callback);
-}
-
-void ViewManagerServiceImpl::EmbedAllowingReembed(
- mojo::URLRequestPtr request,
- mojo::Id transport_view_id,
- const mojo::Callback<void(bool)>& callback) {
- Embed(request.Pass(), ViewIdFromTransportId(transport_view_id),
- EmbedType::ALLOW_REEMBED, nullptr, nullptr, callback);
+void ViewManagerServiceImpl::SetEmbedRoot() {
+ is_embed_root_ = true;
}
void ViewManagerServiceImpl::Embed(mojo::Id transport_view_id,
@@ -758,6 +722,14 @@ void ViewManagerServiceImpl::Embed(mojo::Id transport_view_id,
callback.Run(Embed(ViewIdFromTransportId(transport_view_id), client.Pass()));
}
+void ViewManagerServiceImpl::EmbedAllowingReembed(
+ mojo::Id transport_view_id,
+ mojo::URLRequestPtr request,
+ const mojo::Callback<void(bool)>& callback) {
+ EmbedAllowingReembed(ViewIdFromTransportId(transport_view_id), request.Pass(),
+ callback);
+}
+
void ViewManagerServiceImpl::SetFocus(uint32_t view_id,
const SetFocusCallback& callback) {
ServerView* view = GetView(ViewIdFromTransportId(view_id));
« no previous file with comments | « components/view_manager/view_manager_service_impl.h ('k') | components/view_manager/view_manager_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698