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

Unified Diff: components/view_manager/connection_manager.h

Issue 1344573002: Mandoline: Rename components/view_manager to components/mus (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/view_manager/client_connection.cc ('k') | components/view_manager/connection_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/view_manager/connection_manager.h
diff --git a/components/view_manager/connection_manager.h b/components/view_manager/connection_manager.h
deleted file mode 100644
index 2b4d6a4608bf612be115f2591cef601b7cdc7a1d..0000000000000000000000000000000000000000
--- a/components/view_manager/connection_manager.h
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef COMPONENTS_VIEW_MANAGER_CONNECTION_MANAGER_H_
-#define COMPONENTS_VIEW_MANAGER_CONNECTION_MANAGER_H_
-
-#include <map>
-#include <set>
-
-#include "base/basictypes.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/timer/timer.h"
-#include "components/view_manager/focus_controller_delegate.h"
-#include "components/view_manager/ids.h"
-#include "components/view_manager/public/interfaces/view_tree.mojom.h"
-#include "components/view_manager/public/interfaces/view_tree_host.mojom.h"
-#include "components/view_manager/server_view_delegate.h"
-#include "components/view_manager/server_view_observer.h"
-#include "components/view_manager/surfaces/surfaces_state.h"
-#include "components/view_manager/view_tree_host_impl.h"
-#include "mojo/converters/surfaces/custom_surface_converter.h"
-#include "third_party/mojo/src/mojo/public/cpp/bindings/array.h"
-#include "third_party/mojo/src/mojo/public/cpp/bindings/binding.h"
-
-namespace view_manager {
-
-class ClientConnection;
-class ConnectionManagerDelegate;
-class ServerView;
-class ViewTreeHostConnection;
-class ViewTreeImpl;
-
-// ConnectionManager manages the set of connections to the ViewManager (all the
-// ViewTreeImpl) as well as providing the root of the hierarchy.
-class ConnectionManager : public ServerViewDelegate,
- public ServerViewObserver,
- public mojo::CustomSurfaceConverter {
- public:
- // Create when a ViewTreeImpl is about to make a change. Ensures clients are
- // notified correctly.
- class ScopedChange {
- public:
- ScopedChange(ViewTreeImpl* connection,
- ConnectionManager* connection_manager,
- bool is_delete_view);
- ~ScopedChange();
-
- mojo::ConnectionSpecificId connection_id() const { return connection_id_; }
- bool is_delete_view() const { return is_delete_view_; }
-
- // Marks the connection with the specified id as having seen a message.
- void MarkConnectionAsMessaged(mojo::ConnectionSpecificId connection_id) {
- message_ids_.insert(connection_id);
- }
-
- // Returns true if MarkConnectionAsMessaged(connection_id) was invoked.
- bool DidMessageConnection(mojo::ConnectionSpecificId connection_id) const {
- return message_ids_.count(connection_id) > 0;
- }
-
- private:
- ConnectionManager* connection_manager_;
- const mojo::ConnectionSpecificId connection_id_;
- const bool is_delete_view_;
-
- // See description of MarkConnectionAsMessaged/DidMessageConnection.
- std::set<mojo::ConnectionSpecificId> message_ids_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedChange);
- };
-
- ConnectionManager(
- ConnectionManagerDelegate* delegate,
- const scoped_refptr<surfaces::SurfacesState>& surfaces_state);
- ~ConnectionManager() override;
-
- // Adds a ViewTreeHost.
- void AddHost(ViewTreeHostConnection* connection);
-
- // Creates a new ServerView. The return value is owned by the caller, but must
- // be destroyed before ConnectionManager.
- ServerView* CreateServerView(const ViewId& id);
-
- // Returns the id for the next ViewTreeImpl.
- mojo::ConnectionSpecificId GetAndAdvanceNextConnectionId();
-
- // Returns the id for the next ViewTreeHostImpl.
- uint16_t GetAndAdvanceNextHostId();
-
- // Invoked when a ViewTreeImpl's connection encounters an error.
- void OnConnectionError(ClientConnection* connection);
-
- // Invoked when a ViewTreeHostBindingOwnerBase's connection encounters an
- // error or the associated Display window is closed.
- void OnHostConnectionClosed(ViewTreeHostConnection* connection);
-
- // See description of ViewTree::Embed() for details. This assumes
- // |transport_view_id| is valid.
- void EmbedAtView(mojo::ConnectionSpecificId creator_id,
- const ViewId& view_id,
- mojo::URLRequestPtr request);
- ViewTreeImpl* EmbedAtView(mojo::ConnectionSpecificId creator_id,
- const ViewId& view_id,
- mojo::ViewTreeClientPtr client);
-
- // Returns the connection by id.
- ViewTreeImpl* GetConnection(
- mojo::ConnectionSpecificId connection_id);
-
- // Returns the View identified by |id|.
- ServerView* GetView(const ViewId& id);
-
- // Returns whether |view| is a descendant of some root view but not itself a
- // root view.
- bool IsViewAttachedToRoot(const ServerView* view) const;
-
- // Schedules a paint for the specified region in the coordinates of |view|.
- void SchedulePaint(const ServerView* view, const gfx::Rect& bounds);
-
- bool IsProcessingChange() const { return current_change_ != NULL; }
-
- bool is_processing_delete_view() const {
- return current_change_ && current_change_->is_delete_view();
- }
-
- // Invoked when the ViewTreeHostImpl's display is closed.
- void OnDisplayClosed();
-
- // Invoked when a connection messages a client about the change. This is used
- // to avoid sending ServerChangeIdAdvanced() unnecessarily.
- void OnConnectionMessagedClient(mojo::ConnectionSpecificId id);
-
- // Returns true if OnConnectionMessagedClient() was invoked for id.
- bool DidConnectionMessageClient(mojo::ConnectionSpecificId id) const;
-
- // Returns the metrics of the viewport where the provided |view| is displayed.
- mojo::ViewportMetricsPtr GetViewportMetricsForView(const ServerView* view);
-
- // Returns the ViewTreeImpl that has |id| as a root.
- ViewTreeImpl* GetConnectionWithRoot(const ViewId& id) {
- return const_cast<ViewTreeImpl*>(
- const_cast<const ConnectionManager*>(this)->GetConnectionWithRoot(id));
- }
- const ViewTreeImpl* GetConnectionWithRoot(const ViewId& id) const;
-
- ViewTreeHostImpl* GetViewTreeHostByView(const ServerView* view);
- const ViewTreeHostImpl* GetViewTreeHostByView(const ServerView* view) const;
-
- // Returns the first ancestor of |service| that is marked as an embed root.
- ViewTreeImpl* GetEmbedRoot(ViewTreeImpl* service);
-
- // ViewTreeHost implementation helper; see mojom for details.
- bool CloneAndAnimate(const ViewId& view_id);
-
- // Dispatches |event| directly to the appropriate connection for |view|.
- void DispatchInputEventToView(const ServerView* view, mojo::EventPtr event);
-
- // These functions trivially delegate to all ViewTreeImpls, which in
- // term notify their clients.
- void ProcessViewDestroyed(ServerView* view);
- void ProcessViewBoundsChanged(const ServerView* view,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds);
- void ProcessViewportMetricsChanged(const mojo::ViewportMetrics& old_metrics,
- const mojo::ViewportMetrics& new_metrics);
- void ProcessWillChangeViewHierarchy(const ServerView* view,
- const ServerView* new_parent,
- const ServerView* old_parent);
- void ProcessViewHierarchyChanged(const ServerView* view,
- const ServerView* new_parent,
- const ServerView* old_parent);
- void ProcessViewReorder(const ServerView* view,
- const ServerView* relative_view,
- const mojo::OrderDirection direction);
- void ProcessViewDeleted(const ViewId& view);
-
- private:
- using ConnectionMap = std::map<mojo::ConnectionSpecificId, ClientConnection*>;
- using HostConnectionMap =
- std::map<ViewTreeHostImpl*, ViewTreeHostConnection*>;
-
- // Invoked when a connection is about to make a change. Subsequently followed
- // by FinishChange() once the change is done.
- //
- // Changes should never nest, meaning each PrepareForChange() must be
- // balanced with a call to FinishChange() with no PrepareForChange()
- // in between.
- void PrepareForChange(ScopedChange* change);
-
- // Balances a call to PrepareForChange().
- void FinishChange();
-
- // Returns true if the specified connection originated the current change.
- bool IsChangeSource(mojo::ConnectionSpecificId connection_id) const {
- return current_change_ && current_change_->connection_id() == connection_id;
- }
-
- // Adds |connection| to internal maps.
- void AddConnection(ClientConnection* connection);
-
- // Overridden from ServerViewDelegate:
- scoped_ptr<cc::CompositorFrame> UpdateViewTreeFromCompositorFrame(
- const mojo::CompositorFramePtr& input) override;
- surfaces::SurfacesState* GetSurfacesState() override;
- void OnScheduleViewPaint(const ServerView* view) override;
- const ServerView* GetRootView(const ServerView* view) const override;
-
- // Overridden from ServerViewObserver:
- void OnViewDestroyed(ServerView* view) override;
- void OnWillChangeViewHierarchy(ServerView* view,
- ServerView* new_parent,
- ServerView* old_parent) override;
- void OnViewHierarchyChanged(ServerView* view,
- ServerView* new_parent,
- ServerView* old_parent) override;
- void OnViewBoundsChanged(ServerView* view,
- const gfx::Rect& old_bounds,
- const gfx::Rect& new_bounds) override;
- void OnViewReordered(ServerView* view,
- ServerView* relative,
- mojo::OrderDirection direction) override;
- void OnWillChangeViewVisibility(ServerView* view) override;
- void OnViewSharedPropertyChanged(
- ServerView* view,
- const std::string& name,
- const std::vector<uint8_t>* new_data) override;
- void OnViewTextInputStateChanged(ServerView* view,
- const ui::TextInputState& state) override;
-
- // Overriden from CustomSurfaceConverter:
- bool ConvertSurfaceDrawQuad(const mojo::QuadPtr& input,
- const mojo::CompositorFrameMetadataPtr& metadata,
- cc::SharedQuadState* sqs,
- cc::RenderPass* render_pass) override;
-
- ConnectionManagerDelegate* delegate_;
-
- // State for rendering into a Surface.
- scoped_refptr<surfaces::SurfacesState> surfaces_state_;
-
- // ID to use for next ViewTreeImpl.
- mojo::ConnectionSpecificId next_connection_id_;
-
- // ID to use for next ViewTreeHostImpl.
- uint16_t next_host_id_;
-
- // Set of ViewTreeImpls.
- ConnectionMap connection_map_;
-
- // Set of ViewTreeHostImpls.
- HostConnectionMap host_connection_map_;
-
- // If non-null we're processing a change. The ScopedChange is not owned by us
- // (it's created on the stack by ViewTreeImpl).
- ScopedChange* current_change_;
-
- bool in_destructor_;
-
- DISALLOW_COPY_AND_ASSIGN(ConnectionManager);
-};
-
-} // namespace view_manager
-
-#endif // COMPONENTS_VIEW_MANAGER_CONNECTION_MANAGER_H_
« no previous file with comments | « components/view_manager/client_connection.cc ('k') | components/view_manager/connection_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698