| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |