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 |