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

Side by Side Diff: components/view_manager/public/cpp/lib/view_tree_client_impl.cc

Issue 1317713006: Changes around how embed roots are set (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge to trunk Created 5 years, 3 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 #include "components/view_manager/public/cpp/lib/view_tree_client_impl.h" 5 #include "components/view_manager/public/cpp/lib/view_tree_client_impl.h"
6 6
7 #include "components/view_manager/public/cpp/lib/view_private.h" 7 #include "components/view_manager/public/cpp/lib/view_private.h"
8 #include "components/view_manager/public/cpp/util.h" 8 #include "components/view_manager/public/cpp/util.h"
9 #include "components/view_manager/public/cpp/view_observer.h" 9 #include "components/view_manager/public/cpp/view_observer.h"
10 #include "components/view_manager/public/cpp/view_tree_connection.h" 10 #include "components/view_manager/public/cpp/view_tree_connection.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 tree_->SetViewTextInputState(view_id, state.Pass()); 175 tree_->SetViewTextInputState(view_id, state.Pass());
176 } 176 }
177 177
178 void ViewTreeClientImpl::SetImeVisibility(Id view_id, 178 void ViewTreeClientImpl::SetImeVisibility(Id view_id,
179 bool visible, 179 bool visible,
180 TextInputStatePtr state) { 180 TextInputStatePtr state) {
181 DCHECK(tree_); 181 DCHECK(tree_);
182 tree_->SetImeVisibility(view_id, visible, state.Pass()); 182 tree_->SetImeVisibility(view_id, visible, state.Pass());
183 } 183 }
184 184
185 void ViewTreeClientImpl::SetAccessPolicy(Id view_id, uint32_t access_policy) {
186 DCHECK(tree_);
187 tree_->SetAccessPolicy(view_id, access_policy);
188 }
189
185 void ViewTreeClientImpl::Embed(Id view_id, ViewTreeClientPtr client) { 190 void ViewTreeClientImpl::Embed(Id view_id, ViewTreeClientPtr client) {
186 DCHECK(tree_); 191 DCHECK(tree_);
187 tree_->Embed(view_id, client.Pass(), ActionCompletedCallback()); 192 tree_->Embed(view_id, client.Pass(), ActionCompletedCallback());
188 } 193 }
189 194
190 void ViewTreeClientImpl::RequestSurface(Id view_id, 195 void ViewTreeClientImpl::RequestSurface(Id view_id,
191 InterfaceRequest<Surface> surface, 196 InterfaceRequest<Surface> surface,
192 SurfaceClientPtr client) { 197 SurfaceClientPtr client) {
193 DCHECK(tree_); 198 DCHECK(tree_);
194 tree_->RequestSurface(view_id, surface.Pass(), client.Pass()); 199 tree_->RequestSurface(view_id, surface.Pass(), client.Pass());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 View* ViewTreeClientImpl::GetFocusedView() { 246 View* ViewTreeClientImpl::GetFocusedView() {
242 return focused_view_; 247 return focused_view_;
243 } 248 }
244 249
245 View* ViewTreeClientImpl::CreateView() { 250 View* ViewTreeClientImpl::CreateView() {
246 View* view = new View(this, CreateViewOnServer()); 251 View* view = new View(this, CreateViewOnServer());
247 AddView(view); 252 AddView(view);
248 return view; 253 return view;
249 } 254 }
250 255
251 void ViewTreeClientImpl::SetEmbedRoot() { 256 bool ViewTreeClientImpl::IsEmbedRoot() {
252 // TODO(sky): this isn't right. The server may ignore the call. 257 return is_embed_root_;
253 is_embed_root_ = true;
254 tree_->SetEmbedRoot();
255 } 258 }
256 259
257 //////////////////////////////////////////////////////////////////////////////// 260 ////////////////////////////////////////////////////////////////////////////////
258 // ViewTreeClientImpl, ViewTreeClient implementation: 261 // ViewTreeClientImpl, ViewTreeClient implementation:
259 262
260 void ViewTreeClientImpl::OnEmbed(ConnectionSpecificId connection_id, 263 void ViewTreeClientImpl::OnEmbed(ConnectionSpecificId connection_id,
261 ViewDataPtr root_data, 264 ViewDataPtr root_data,
262 ViewTreePtr tree, 265 ViewTreePtr tree,
263 Id focused_view_id) { 266 Id focused_view_id,
267 uint32 access_policy) {
264 if (tree) { 268 if (tree) {
265 DCHECK(!tree_); 269 DCHECK(!tree_);
266 tree_ = tree.Pass(); 270 tree_ = tree.Pass();
267 tree_.set_connection_error_handler([this]() { delete this; }); 271 tree_.set_connection_error_handler([this]() { delete this; });
268 } 272 }
269 connection_id_ = connection_id; 273 connection_id_ = connection_id;
274 is_embed_root_ =
275 (access_policy & mojo::ViewTree::ACCESS_POLICY_EMBED_ROOT) != 0;
270 276
271 DCHECK(!root_); 277 DCHECK(!root_);
272 root_ = AddViewToConnection(this, nullptr, root_data); 278 root_ = AddViewToConnection(this, nullptr, root_data);
273 279
274 focused_view_ = GetViewById(focused_view_id); 280 focused_view_ = GetViewById(focused_view_id);
275 281
276 delegate_->OnEmbed(root_); 282 delegate_->OnEmbed(root_);
277 } 283 }
278 284
279 void ViewTreeClientImpl::OnEmbeddedAppDisconnected(Id view_id) { 285 void ViewTreeClientImpl::OnEmbeddedAppDisconnected(Id view_id) {
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 void ViewTreeClientImpl::OnActionCompleted(bool success) { 429 void ViewTreeClientImpl::OnActionCompleted(bool success) {
424 if (!change_acked_callback_.is_null()) 430 if (!change_acked_callback_.is_null())
425 change_acked_callback_.Run(); 431 change_acked_callback_.Run();
426 } 432 }
427 433
428 Callback<void(bool)> ViewTreeClientImpl::ActionCompletedCallback() { 434 Callback<void(bool)> ViewTreeClientImpl::ActionCompletedCallback() {
429 return [this](bool success) { OnActionCompleted(success); }; 435 return [this](bool success) { OnActionCompleted(success); };
430 } 436 }
431 437
432 } // namespace mojo 438 } // namespace mojo
OLDNEW
« no previous file with comments | « components/view_manager/public/cpp/lib/view_tree_client_impl.h ('k') | components/view_manager/public/cpp/view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698