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

Side by Side Diff: services/view_manager/view_manager_service_impl.h

Issue 905083002: Adds Embed() variant to ViewManagerService that takes ViewManagerClient (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: real comments Created 5 years, 10 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 #ifndef SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ 5 #ifndef SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_
6 #define SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ 6 #define SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_
7 7
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 // Invoked when a connection is about to be destroyed. 73 // Invoked when a connection is about to be destroyed.
74 void OnWillDestroyViewManagerServiceImpl(ViewManagerServiceImpl* connection); 74 void OnWillDestroyViewManagerServiceImpl(ViewManagerServiceImpl* connection);
75 75
76 // These functions are synchronous variants of those defined in the mojom. The 76 // These functions are synchronous variants of those defined in the mojom. The
77 // ViewManagerService implementations all call into these. See the mojom for 77 // ViewManagerService implementations all call into these. See the mojom for
78 // details. 78 // details.
79 mojo::ErrorCode CreateView(const ViewId& view_id); 79 mojo::ErrorCode CreateView(const ViewId& view_id);
80 bool AddView(const ViewId& parent_id, const ViewId& child_id); 80 bool AddView(const ViewId& parent_id, const ViewId& child_id);
81 std::vector<const ServerView*> GetViewTree(const ViewId& view_id) const; 81 std::vector<const ServerView*> GetViewTree(const ViewId& view_id) const;
82 bool SetViewVisibility(const ViewId& view_id, bool visible); 82 bool SetViewVisibility(const ViewId& view_id, bool visible);
83 bool Embed(const std::string& url, 83 bool EmbedUrl(const std::string& url,
84 const ViewId& view_id, 84 const ViewId& view_id,
85 mojo::InterfaceRequest<mojo::ServiceProvider> services, 85 mojo::InterfaceRequest<mojo::ServiceProvider> services,
86 mojo::ServiceProviderPtr exposed_services); 86 mojo::ServiceProviderPtr exposed_services);
87 bool Embed(const ViewId& view_id, mojo::ViewManagerClientPtr client);
87 88
88 // The following methods are invoked after the corresponding change has been 89 // The following methods are invoked after the corresponding change has been
89 // processed. They do the appropriate bookkeeping and update the client as 90 // processed. They do the appropriate bookkeeping and update the client as
90 // necessary. 91 // necessary.
91 void ProcessViewBoundsChanged(const ServerView* view, 92 void ProcessViewBoundsChanged(const ServerView* view,
92 const gfx::Rect& old_bounds, 93 const gfx::Rect& old_bounds,
93 const gfx::Rect& new_bounds, 94 const gfx::Rect& new_bounds,
94 bool originated_change); 95 bool originated_change);
95 void ProcessViewportMetricsChanged(const mojo::ViewportMetrics& old_metrics, 96 void ProcessViewportMetricsChanged(const mojo::ViewportMetrics& old_metrics,
96 const mojo::ViewportMetrics& new_metrics, 97 const mojo::ViewportMetrics& new_metrics,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 void GetViewTreeImpl(const ServerView* view, 161 void GetViewTreeImpl(const ServerView* view,
161 std::vector<const ServerView*>* views) const; 162 std::vector<const ServerView*>* views) const;
162 163
163 // Notify the client if the drawn state of any of the roots changes. 164 // Notify the client if the drawn state of any of the roots changes.
164 // |view| is the view that is changing to the drawn state |new_drawn_value|. 165 // |view| is the view that is changing to the drawn state |new_drawn_value|.
165 void NotifyDrawnStateChanged(const ServerView* view, bool new_drawn_value); 166 void NotifyDrawnStateChanged(const ServerView* view, bool new_drawn_value);
166 167
167 // Deletes all Views we own. 168 // Deletes all Views we own.
168 void DestroyViews(); 169 void DestroyViews();
169 170
171 bool PrepareForEmbed(const ViewId& view_id);
172
170 // ViewManagerService: 173 // ViewManagerService:
171 void CreateView( 174 void CreateView(
172 mojo::Id transport_view_id, 175 mojo::Id transport_view_id,
173 const mojo::Callback<void(mojo::ErrorCode)>& callback) override; 176 const mojo::Callback<void(mojo::ErrorCode)>& callback) override;
174 void DeleteView(mojo::Id transport_view_id, 177 void DeleteView(mojo::Id transport_view_id,
175 const mojo::Callback<void(bool)>& callback) override; 178 const mojo::Callback<void(bool)>& callback) override;
176 void AddView(mojo::Id parent_id, 179 void AddView(mojo::Id parent_id,
177 mojo::Id child_id, 180 mojo::Id child_id,
178 const mojo::Callback<void(bool)>& callback) override; 181 const mojo::Callback<void(bool)>& callback) override;
179 void RemoveViewFromParent( 182 void RemoveViewFromParent(
(...skipping 12 matching lines...) Expand all
192 void SetViewBounds(mojo::Id view_id, 195 void SetViewBounds(mojo::Id view_id,
193 mojo::RectPtr bounds, 196 mojo::RectPtr bounds,
194 const mojo::Callback<void(bool)>& callback) override; 197 const mojo::Callback<void(bool)>& callback) override;
195 void SetViewVisibility(mojo::Id view_id, 198 void SetViewVisibility(mojo::Id view_id,
196 bool visible, 199 bool visible,
197 const mojo::Callback<void(bool)>& callback) override; 200 const mojo::Callback<void(bool)>& callback) override;
198 void SetViewProperty(mojo::Id view_id, 201 void SetViewProperty(mojo::Id view_id,
199 const mojo::String& name, 202 const mojo::String& name,
200 mojo::Array<uint8_t> value, 203 mojo::Array<uint8_t> value,
201 const mojo::Callback<void(bool)>& callback) override; 204 const mojo::Callback<void(bool)>& callback) override;
202 void Embed(const mojo::String& url, 205 void EmbedUrl(const mojo::String& url,
203 mojo::Id view_id, 206 mojo::Id transport_view_id,
204 mojo::InterfaceRequest<mojo::ServiceProvider> services, 207 mojo::InterfaceRequest<mojo::ServiceProvider> services,
205 mojo::ServiceProviderPtr exposed_services, 208 mojo::ServiceProviderPtr exposed_services,
209 const mojo::Callback<void(bool)>& callback) override;
210 void Embed(mojo::Id transport_view_id,
211 mojo::ViewManagerClientPtr client,
206 const mojo::Callback<void(bool)>& callback) override; 212 const mojo::Callback<void(bool)>& callback) override;
207 213
208 // AccessPolicyDelegate: 214 // AccessPolicyDelegate:
209 bool IsRootForAccessPolicy(const ViewId& id) const override; 215 bool IsRootForAccessPolicy(const ViewId& id) const override;
210 bool IsViewKnownForAccessPolicy(const ServerView* view) const override; 216 bool IsViewKnownForAccessPolicy(const ServerView* view) const override;
211 bool IsViewRootOfAnotherConnectionForAccessPolicy( 217 bool IsViewRootOfAnotherConnectionForAccessPolicy(
212 const ServerView* view) const override; 218 const ServerView* view) const override;
213 219
214 ConnectionManager* connection_manager_; 220 ConnectionManager* connection_manager_;
215 221
216 // Id of this connection as assigned by ConnectionManager. 222 // Id of this connection as assigned by ConnectionManager.
217 const mojo::ConnectionSpecificId id_; 223 const mojo::ConnectionSpecificId id_;
218 224
219 // URL this connection was created for. 225 // URL this connection was created for.
220 const std::string url_; 226 const std::string url_;
221 227
222 // ID of the connection that created us. If 0 it indicates either we were 228 // ID of the connection that created us. If 0 it indicates either we were
223 // created by the root, or the connection that created us has been destroyed. 229 // created by the root, or the connection that created us has been destroyed.
224 mojo::ConnectionSpecificId creator_id_; 230 mojo::ConnectionSpecificId creator_id_;
225 231
226 // The URL of the app that embedded the app this connection was created for. 232 // The URL of the app that embedded the app this connection was created for.
233 // NOTE: this is empty if the connection was created by way of directly
234 // supplying the ViewManagerClient.
227 const std::string creator_url_; 235 const std::string creator_url_;
228 236
229 mojo::ViewManagerClient* client_; 237 mojo::ViewManagerClient* client_;
230 238
231 scoped_ptr<AccessPolicy> access_policy_; 239 scoped_ptr<AccessPolicy> access_policy_;
232 240
233 // The views created by this connection. This connection owns these objects. 241 // The views created by this connection. This connection owns these objects.
234 ViewMap view_map_; 242 ViewMap view_map_;
235 243
236 // The set of views that has been communicated to the client. 244 // The set of views that has been communicated to the client.
237 ViewIdSet known_views_; 245 ViewIdSet known_views_;
238 246
239 // The root of this connection. This is a scoped_ptr to reinforce the 247 // The root of this connection. This is a scoped_ptr to reinforce the
240 // connection may have no root. A connection has no root if either the root 248 // connection may have no root. A connection has no root if either the root
241 // is destroyed or Embed() is invoked on the root. 249 // is destroyed or Embed() is invoked on the root.
242 scoped_ptr<ViewId> root_; 250 scoped_ptr<ViewId> root_;
243 251
244 DISALLOW_COPY_AND_ASSIGN(ViewManagerServiceImpl); 252 DISALLOW_COPY_AND_ASSIGN(ViewManagerServiceImpl);
245 }; 253 };
246 254
247 } // namespace view_manager 255 } // namespace view_manager
248 256
249 #endif // SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_ 257 #endif // SERVICES_VIEW_MANAGER_VIEW_MANAGER_SERVICE_IMPL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698