| Index: components/view_manager/public/cpp/lib/view_tree_client_impl.cc
|
| diff --git a/components/view_manager/public/cpp/lib/view_manager_client_impl.cc b/components/view_manager/public/cpp/lib/view_tree_client_impl.cc
|
| similarity index 63%
|
| rename from components/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| rename to components/view_manager/public/cpp/lib/view_tree_client_impl.cc
|
| index 90e8d5bdfad8e498b70a58a257d9c8a510dc4feb..12cc183bfb5a8f2ac95d62dbb5305732521e2b48 100644
|
| --- a/components/view_manager/public/cpp/lib/view_manager_client_impl.cc
|
| +++ b/components/view_manager/public/cpp/lib/view_tree_client_impl.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "components/view_manager/public/cpp/lib/view_manager_client_impl.h"
|
| +#include "components/view_manager/public/cpp/lib/view_tree_client_impl.h"
|
|
|
| #include "components/view_manager/public/cpp/lib/view_private.h"
|
| #include "components/view_manager/public/cpp/util.h"
|
| @@ -21,7 +21,7 @@ Id MakeTransportId(ConnectionSpecificId connection_id,
|
| }
|
|
|
| // Helper called to construct a local view object from transport data.
|
| -View* AddViewToViewManager(ViewManagerClientImpl* client,
|
| +View* AddViewToViewManager(ViewTreeClientImpl* client,
|
| View* parent,
|
| const ViewDataPtr& view_data) {
|
| // We don't use the ctor that takes a ViewManager here, since it will call
|
| @@ -43,7 +43,7 @@ View* AddViewToViewManager(ViewManagerClientImpl* client,
|
| return view;
|
| }
|
|
|
| -View* BuildViewTree(ViewManagerClientImpl* client,
|
| +View* BuildViewTree(ViewTreeClientImpl* client,
|
| const Array<ViewDataPtr>& views,
|
| View* initial_parent) {
|
| std::vector<View*> parents;
|
| @@ -69,13 +69,13 @@ View* BuildViewTree(ViewManagerClientImpl* client,
|
|
|
| ViewManager* ViewManager::Create(
|
| ViewManagerDelegate* delegate,
|
| - InterfaceRequest<ViewManagerClient> request) {
|
| - return new ViewManagerClientImpl(delegate, request.Pass());
|
| + InterfaceRequest<ViewTreeClient> request) {
|
| + return new ViewTreeClientImpl(delegate, request.Pass());
|
| }
|
|
|
| -ViewManagerClientImpl::ViewManagerClientImpl(
|
| +ViewTreeClientImpl::ViewTreeClientImpl(
|
| ViewManagerDelegate* delegate,
|
| - InterfaceRequest<ViewManagerClient> request)
|
| + InterfaceRequest<ViewTreeClient> request)
|
| : connection_id_(0),
|
| next_id_(1),
|
| delegate_(delegate),
|
| @@ -88,7 +88,7 @@ ViewManagerClientImpl::ViewManagerClientImpl(
|
| in_destructor_(false) {
|
| }
|
|
|
| -ViewManagerClientImpl::~ViewManagerClientImpl() {
|
| +ViewTreeClientImpl::~ViewTreeClientImpl() {
|
| in_destructor_ = true;
|
|
|
| std::vector<View*> non_owned;
|
| @@ -112,101 +112,101 @@ ViewManagerClientImpl::~ViewManagerClientImpl() {
|
| delegate_->OnViewManagerDestroyed(this);
|
| }
|
|
|
| -void ViewManagerClientImpl::DestroyView(Id view_id) {
|
| - DCHECK(service_);
|
| - service_->DeleteView(view_id, ActionCompletedCallback());
|
| +void ViewTreeClientImpl::DestroyView(Id view_id) {
|
| + DCHECK(tree_);
|
| + tree_->DeleteView(view_id, ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::AddChild(Id child_id, Id parent_id) {
|
| - DCHECK(service_);
|
| - service_->AddView(parent_id, child_id, ActionCompletedCallback());
|
| +void ViewTreeClientImpl::AddChild(Id child_id, Id parent_id) {
|
| + DCHECK(tree_);
|
| + tree_->AddView(parent_id, child_id, ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::RemoveChild(Id child_id, Id parent_id) {
|
| - DCHECK(service_);
|
| - service_->RemoveViewFromParent(child_id, ActionCompletedCallback());
|
| +void ViewTreeClientImpl::RemoveChild(Id child_id, Id parent_id) {
|
| + DCHECK(tree_);
|
| + tree_->RemoveViewFromParent(child_id, ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::Reorder(
|
| +void ViewTreeClientImpl::Reorder(
|
| Id view_id,
|
| Id relative_view_id,
|
| OrderDirection direction) {
|
| - DCHECK(service_);
|
| - service_->ReorderView(view_id, relative_view_id, direction,
|
| - ActionCompletedCallback());
|
| + DCHECK(tree_);
|
| + tree_->ReorderView(view_id, relative_view_id, direction,
|
| + ActionCompletedCallback());
|
| }
|
|
|
| -bool ViewManagerClientImpl::OwnsView(Id id) const {
|
| +bool ViewTreeClientImpl::OwnsView(Id id) const {
|
| return HiWord(id) == connection_id_;
|
| }
|
|
|
| -void ViewManagerClientImpl::SetBounds(Id view_id, const Rect& bounds) {
|
| - DCHECK(service_);
|
| - service_->SetViewBounds(view_id, bounds.Clone(), ActionCompletedCallback());
|
| +void ViewTreeClientImpl::SetBounds(Id view_id, const Rect& bounds) {
|
| + DCHECK(tree_);
|
| + tree_->SetViewBounds(view_id, bounds.Clone(), ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetSurfaceId(Id view_id, SurfaceIdPtr surface_id) {
|
| - DCHECK(service_);
|
| +void ViewTreeClientImpl::SetSurfaceId(Id view_id, SurfaceIdPtr surface_id) {
|
| + DCHECK(tree_);
|
| if (surface_id.is_null())
|
| return;
|
| - service_->SetViewSurfaceId(
|
| + tree_->SetViewSurfaceId(
|
| view_id, surface_id.Pass(), ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetFocus(Id view_id) {
|
| +void ViewTreeClientImpl::SetFocus(Id view_id) {
|
| // In order for us to get here we had to have exposed a view, which implies we
|
| // got a connection.
|
| - DCHECK(service_);
|
| - service_->SetFocus(view_id, ActionCompletedCallback());
|
| + DCHECK(tree_);
|
| + tree_->SetFocus(view_id, ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetVisible(Id view_id, bool visible) {
|
| - DCHECK(service_);
|
| - service_->SetViewVisibility(view_id, visible, ActionCompletedCallback());
|
| +void ViewTreeClientImpl::SetVisible(Id view_id, bool visible) {
|
| + DCHECK(tree_);
|
| + tree_->SetViewVisibility(view_id, visible, ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetProperty(
|
| +void ViewTreeClientImpl::SetProperty(
|
| Id view_id,
|
| const std::string& name,
|
| const std::vector<uint8_t>& data) {
|
| - DCHECK(service_);
|
| - service_->SetViewProperty(view_id,
|
| - String(name),
|
| - Array<uint8_t>::From(data),
|
| - ActionCompletedCallback());
|
| + DCHECK(tree_);
|
| + tree_->SetViewProperty(view_id,
|
| + String(name),
|
| + Array<uint8_t>::From(data),
|
| + ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetViewTextInputState(Id view_id,
|
| - TextInputStatePtr state) {
|
| - DCHECK(service_);
|
| - service_->SetViewTextInputState(view_id, state.Pass());
|
| +void ViewTreeClientImpl::SetViewTextInputState(Id view_id,
|
| + TextInputStatePtr state) {
|
| + DCHECK(tree_);
|
| + tree_->SetViewTextInputState(view_id, state.Pass());
|
| }
|
|
|
| -void ViewManagerClientImpl::SetImeVisibility(Id view_id,
|
| - bool visible,
|
| - TextInputStatePtr state) {
|
| - DCHECK(service_);
|
| - service_->SetImeVisibility(view_id, visible, state.Pass());
|
| +void ViewTreeClientImpl::SetImeVisibility(Id view_id,
|
| + bool visible,
|
| + TextInputStatePtr state) {
|
| + DCHECK(tree_);
|
| + tree_->SetImeVisibility(view_id, visible, state.Pass());
|
| }
|
|
|
| -void ViewManagerClientImpl::Embed(Id view_id, ViewManagerClientPtr client) {
|
| - DCHECK(service_);
|
| - service_->Embed(view_id, client.Pass(), ActionCompletedCallback());
|
| +void ViewTreeClientImpl::Embed(Id view_id, ViewTreeClientPtr client) {
|
| + DCHECK(tree_);
|
| + tree_->Embed(view_id, client.Pass(), ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::EmbedAllowingReembed(mojo::URLRequestPtr request,
|
| - Id view_id) {
|
| - DCHECK(service_);
|
| - service_->EmbedAllowingReembed(view_id, request.Pass(),
|
| - ActionCompletedCallback());
|
| +void ViewTreeClientImpl::EmbedAllowingReembed(mojo::URLRequestPtr request,
|
| + Id view_id) {
|
| + DCHECK(tree_);
|
| + tree_->EmbedAllowingReembed(view_id, request.Pass(),
|
| + ActionCompletedCallback());
|
| }
|
|
|
| -void ViewManagerClientImpl::AddView(View* view) {
|
| +void ViewTreeClientImpl::AddView(View* view) {
|
| DCHECK(views_.find(view->id()) == views_.end());
|
| views_[view->id()] = view;
|
| }
|
|
|
| -void ViewManagerClientImpl::RemoveView(Id view_id) {
|
| +void ViewTreeClientImpl::RemoveView(Id view_id) {
|
| if (focused_view_ && focused_view_->id() == view_id)
|
| OnViewFocused(0);
|
|
|
| @@ -215,7 +215,7 @@ void ViewManagerClientImpl::RemoveView(Id view_id) {
|
| views_.erase(it);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnRootDestroyed(View* root) {
|
| +void ViewTreeClientImpl::OnRootDestroyed(View* root) {
|
| DCHECK_EQ(root, root_);
|
| root_ = nullptr;
|
|
|
| @@ -225,53 +225,53 @@ void ViewManagerClientImpl::OnRootDestroyed(View* root) {
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// ViewManagerClientImpl, ViewManager implementation:
|
| +// ViewTreeClientImpl, ViewManager implementation:
|
|
|
| -Id ViewManagerClientImpl::CreateViewOnServer() {
|
| - DCHECK(service_);
|
| +Id ViewTreeClientImpl::CreateViewOnServer() {
|
| + DCHECK(tree_);
|
| const Id view_id = MakeTransportId(connection_id_, ++next_id_);
|
| - service_->CreateView(view_id, [this](ErrorCode code) {
|
| + tree_->CreateView(view_id, [this](ErrorCode code) {
|
| OnActionCompleted(code == ERROR_CODE_NONE);
|
| });
|
| return view_id;
|
| }
|
|
|
| -View* ViewManagerClientImpl::GetRoot() {
|
| +View* ViewTreeClientImpl::GetRoot() {
|
| return root_;
|
| }
|
|
|
| -View* ViewManagerClientImpl::GetViewById(Id id) {
|
| +View* ViewTreeClientImpl::GetViewById(Id id) {
|
| IdToViewMap::const_iterator it = views_.find(id);
|
| return it != views_.end() ? it->second : NULL;
|
| }
|
|
|
| -View* ViewManagerClientImpl::GetFocusedView() {
|
| +View* ViewTreeClientImpl::GetFocusedView() {
|
| return focused_view_;
|
| }
|
|
|
| -View* ViewManagerClientImpl::CreateView() {
|
| +View* ViewTreeClientImpl::CreateView() {
|
| View* view = new View(this, CreateViewOnServer());
|
| AddView(view);
|
| return view;
|
| }
|
|
|
| -void ViewManagerClientImpl::SetEmbedRoot() {
|
| +void ViewTreeClientImpl::SetEmbedRoot() {
|
| // TODO(sky): this isn't right. The server may ignore the call.
|
| is_embed_root_ = true;
|
| - service_->SetEmbedRoot();
|
| + tree_->SetEmbedRoot();
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// ViewManagerClientImpl, ViewManagerClient implementation:
|
| -
|
| -void ViewManagerClientImpl::OnEmbed(ConnectionSpecificId connection_id,
|
| - ViewDataPtr root_data,
|
| - ViewManagerServicePtr view_manager_service,
|
| - Id focused_view_id) {
|
| - if (view_manager_service) {
|
| - DCHECK(!service_);
|
| - service_ = view_manager_service.Pass();
|
| - service_.set_connection_error_handler([this]() { delete this; });
|
| +// ViewTreeClientImpl, ViewTreeClient implementation:
|
| +
|
| +void ViewTreeClientImpl::OnEmbed(ConnectionSpecificId connection_id,
|
| + ViewDataPtr root_data,
|
| + ViewTreePtr tree,
|
| + Id focused_view_id) {
|
| + if (tree) {
|
| + DCHECK(!tree_);
|
| + tree_ = tree.Pass();
|
| + tree_.set_connection_error_handler([this]() { delete this; });
|
| }
|
| connection_id_ = connection_id;
|
|
|
| @@ -283,18 +283,18 @@ void ViewManagerClientImpl::OnEmbed(ConnectionSpecificId connection_id,
|
| delegate_->OnEmbed(root_);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnEmbedForDescendant(
|
| +void ViewTreeClientImpl::OnEmbedForDescendant(
|
| Id view_id,
|
| mojo::URLRequestPtr request,
|
| const OnEmbedForDescendantCallback& callback) {
|
| View* view = GetViewById(view_id);
|
| - ViewManagerClientPtr client;
|
| + ViewTreeClientPtr client;
|
| if (view)
|
| delegate_->OnEmbedForDescendant(view, request.Pass(), &client);
|
| callback.Run(client.Pass());
|
| }
|
|
|
| -void ViewManagerClientImpl::OnEmbeddedAppDisconnected(Id view_id) {
|
| +void ViewTreeClientImpl::OnEmbeddedAppDisconnected(Id view_id) {
|
| View* view = GetViewById(view_id);
|
| if (view) {
|
| FOR_EACH_OBSERVER(ViewObserver, *ViewPrivate(view).observers(),
|
| @@ -302,15 +302,15 @@ void ViewManagerClientImpl::OnEmbeddedAppDisconnected(Id view_id) {
|
| }
|
| }
|
|
|
| -void ViewManagerClientImpl::OnUnembed() {
|
| +void ViewTreeClientImpl::OnUnembed() {
|
| delegate_->OnUnembed();
|
| // This will send out the various notifications.
|
| delete this;
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewBoundsChanged(Id view_id,
|
| - RectPtr old_bounds,
|
| - RectPtr new_bounds) {
|
| +void ViewTreeClientImpl::OnViewBoundsChanged(Id view_id,
|
| + RectPtr old_bounds,
|
| + RectPtr new_bounds) {
|
| View* view = GetViewById(view_id);
|
| ViewPrivate(view).LocalSetBounds(*old_bounds, *new_bounds);
|
| }
|
| @@ -327,7 +327,7 @@ void SetViewportMetricsOnDecendants(View* root,
|
| }
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewViewportMetricsChanged(
|
| +void ViewTreeClientImpl::OnViewViewportMetricsChanged(
|
| ViewportMetricsPtr old_metrics,
|
| ViewportMetricsPtr new_metrics) {
|
| View* view = GetRoot();
|
| @@ -335,7 +335,7 @@ void ViewManagerClientImpl::OnViewViewportMetricsChanged(
|
| SetViewportMetricsOnDecendants(view, *old_metrics, *new_metrics);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewHierarchyChanged(
|
| +void ViewTreeClientImpl::OnViewHierarchyChanged(
|
| Id view_id,
|
| Id new_parent_id,
|
| Id old_parent_id,
|
| @@ -361,22 +361,22 @@ void ViewManagerClientImpl::OnViewHierarchyChanged(
|
| ViewPrivate(old_parent).LocalRemoveChild(view);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewReordered(Id view_id,
|
| - Id relative_view_id,
|
| - OrderDirection direction) {
|
| +void ViewTreeClientImpl::OnViewReordered(Id view_id,
|
| + Id relative_view_id,
|
| + OrderDirection direction) {
|
| View* view = GetViewById(view_id);
|
| View* relative_view = GetViewById(relative_view_id);
|
| if (view && relative_view)
|
| ViewPrivate(view).LocalReorder(relative_view, direction);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewDeleted(Id view_id) {
|
| +void ViewTreeClientImpl::OnViewDeleted(Id view_id) {
|
| View* view = GetViewById(view_id);
|
| if (view)
|
| ViewPrivate(view).LocalDestroy();
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewVisibilityChanged(Id view_id, bool visible) {
|
| +void ViewTreeClientImpl::OnViewVisibilityChanged(Id view_id, bool visible) {
|
| // TODO(sky): there is a race condition here. If this client and another
|
| // client change the visibility at the same time the wrong value may be set.
|
| // Deal with this some how.
|
| @@ -385,13 +385,13 @@ void ViewManagerClientImpl::OnViewVisibilityChanged(Id view_id, bool visible) {
|
| ViewPrivate(view).LocalSetVisible(visible);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewDrawnStateChanged(Id view_id, bool drawn) {
|
| +void ViewTreeClientImpl::OnViewDrawnStateChanged(Id view_id, bool drawn) {
|
| View* view = GetViewById(view_id);
|
| if (view)
|
| ViewPrivate(view).LocalSetDrawn(drawn);
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewSharedPropertyChanged(
|
| +void ViewTreeClientImpl::OnViewSharedPropertyChanged(
|
| Id view_id,
|
| const String& name,
|
| Array<uint8_t> new_data) {
|
| @@ -408,7 +408,7 @@ void ViewManagerClientImpl::OnViewSharedPropertyChanged(
|
| }
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewInputEvent(
|
| +void ViewTreeClientImpl::OnViewInputEvent(
|
| Id view_id,
|
| EventPtr event,
|
| const Callback<void()>& ack_callback) {
|
| @@ -421,7 +421,7 @@ void ViewManagerClientImpl::OnViewInputEvent(
|
| ack_callback.Run();
|
| }
|
|
|
| -void ViewManagerClientImpl::OnViewFocused(Id focused_view_id) {
|
| +void ViewTreeClientImpl::OnViewFocused(Id focused_view_id) {
|
| View* focused = GetViewById(focused_view_id);
|
| View* blurred = focused_view_;
|
| if (blurred) {
|
| @@ -436,14 +436,14 @@ void ViewManagerClientImpl::OnViewFocused(Id focused_view_id) {
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| -// ViewManagerClientImpl, private:
|
| +// ViewTreeClientImpl, private:
|
|
|
| -void ViewManagerClientImpl::OnActionCompleted(bool success) {
|
| +void ViewTreeClientImpl::OnActionCompleted(bool success) {
|
| if (!change_acked_callback_.is_null())
|
| change_acked_callback_.Run();
|
| }
|
|
|
| -Callback<void(bool)> ViewManagerClientImpl::ActionCompletedCallback() {
|
| +Callback<void(bool)> ViewTreeClientImpl::ActionCompletedCallback() {
|
| return [this](bool success) { OnActionCompleted(success); };
|
| }
|
|
|
|
|