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

Side by Side Diff: mojo/services/view_manager/public/cpp/lib/view_manager_client_impl.cc

Issue 858103002: Remove [Client=] annotation from ServiceProvider (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: rebase for trybots (no code changes from ps2) Created 5 years, 11 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 #include "view_manager/public/cpp/lib/view_manager_client_impl.h" 5 #include "view_manager/public/cpp/lib/view_manager_client_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 #include "mojo/public/cpp/application/application_impl.h" 10 #include "mojo/public/cpp/application/application_impl.h"
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 const std::string& name, 188 const std::string& name,
189 const std::vector<uint8_t>& data) { 189 const std::vector<uint8_t>& data) {
190 DCHECK(connected_); 190 DCHECK(connected_);
191 service_->SetViewProperty(view_id, 191 service_->SetViewProperty(view_id,
192 String(name), 192 String(name),
193 Array<uint8_t>::From(data), 193 Array<uint8_t>::From(data),
194 ActionCompletedCallback()); 194 ActionCompletedCallback());
195 } 195 }
196 196
197 void ViewManagerClientImpl::Embed(const String& url, Id view_id) { 197 void ViewManagerClientImpl::Embed(const String& url, Id view_id) {
198 MessagePipe pipe; 198 Embed(url, view_id, nullptr, nullptr);
199 InterfaceRequest<ServiceProvider> request;
200 request.Bind(pipe.handle0.Pass());
201 Embed(url, view_id, request.Pass());
202 } 199 }
203 200
204 void ViewManagerClientImpl::Embed( 201 void ViewManagerClientImpl::Embed(const String& url,
205 const String& url, 202 Id view_id,
206 Id view_id, 203 InterfaceRequest<ServiceProvider> services,
207 InterfaceRequest<ServiceProvider> service_provider) { 204 ServiceProviderPtr exposed_services) {
208 DCHECK(connected_); 205 DCHECK(connected_);
209 service_->Embed(url, view_id, service_provider.Pass(), 206 service_->Embed(url, view_id, services.Pass(), exposed_services.Pass(),
210 ActionCompletedCallback()); 207 ActionCompletedCallback());
211 } 208 }
212 209
213 void ViewManagerClientImpl::AddView(View* view) { 210 void ViewManagerClientImpl::AddView(View* view) {
214 DCHECK(views_.find(view->id()) == views_.end()); 211 DCHECK(views_.find(view->id()) == views_.end());
215 views_[view->id()] = view; 212 views_[view->id()] = view;
216 } 213 }
217 214
218 void ViewManagerClientImpl::RemoveView(Id view_id) { 215 void ViewManagerClientImpl::RemoveView(Id view_id) {
219 IdToViewMap::iterator it = views_.find(view_id); 216 IdToViewMap::iterator it = views_.find(view_id);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 return view; 251 return view;
255 } 252 }
256 253
257 //////////////////////////////////////////////////////////////////////////////// 254 ////////////////////////////////////////////////////////////////////////////////
258 // ViewManagerClientImpl, ViewManagerClient implementation: 255 // ViewManagerClientImpl, ViewManagerClient implementation:
259 256
260 void ViewManagerClientImpl::OnEmbed( 257 void ViewManagerClientImpl::OnEmbed(
261 ConnectionSpecificId connection_id, 258 ConnectionSpecificId connection_id,
262 const String& creator_url, 259 const String& creator_url,
263 ViewDataPtr root_data, 260 ViewDataPtr root_data,
264 InterfaceRequest<ServiceProvider> parent_services, 261 InterfaceRequest<ServiceProvider> services,
262 ServiceProviderPtr exposed_services,
265 ScopedMessagePipeHandle window_manager_pipe) { 263 ScopedMessagePipeHandle window_manager_pipe) {
266 DCHECK(!connected_); 264 DCHECK(!connected_);
267 connected_ = true; 265 connected_ = true;
268 connection_id_ = connection_id; 266 connection_id_ = connection_id;
269 creator_url_ = String::From(creator_url); 267 creator_url_ = String::From(creator_url);
270 268
271 DCHECK(!root_); 269 DCHECK(!root_);
272 root_ = AddViewToViewManager(this, nullptr, root_data); 270 root_ = AddViewToViewManager(this, nullptr, root_data);
273 root_->AddObserver(new RootObserver(root_)); 271 root_->AddObserver(new RootObserver(root_));
274 272
275 ServiceProviderImpl* exported_services = nullptr;
276 scoped_ptr<ServiceProvider> remote;
277
278 // BindToRequest() binds the lifetime of |exported_services| to the pipe.
279 exported_services = new ServiceProviderImpl;
280 BindToRequest(exported_services, &parent_services);
281 remote.reset(exported_services->CreateRemoteServiceProvider());
282
283 window_manager_.Bind(window_manager_pipe.Pass()); 273 window_manager_.Bind(window_manager_pipe.Pass());
284 window_manager_.set_client(this); 274 window_manager_.set_client(this);
285 // base::Unretained() is safe here as |window_manager_| is bound to our 275 // base::Unretained() is safe here as |window_manager_| is bound to our
286 // lifetime. 276 // lifetime.
287 window_manager_->GetFocusedAndActiveViews( 277 window_manager_->GetFocusedAndActiveViews(
288 base::Bind(&ViewManagerClientImpl::OnGotFocusedAndActiveViews, 278 base::Bind(&ViewManagerClientImpl::OnGotFocusedAndActiveViews,
289 base::Unretained(this))); 279 base::Unretained(this)));
290 delegate_->OnEmbed(root_, exported_services, remote.Pass()); 280
281 delegate_->OnEmbed(root_, services.Pass(), exposed_services.Pass());
291 } 282 }
292 283
293 void ViewManagerClientImpl::OnEmbeddedAppDisconnected(Id view_id) { 284 void ViewManagerClientImpl::OnEmbeddedAppDisconnected(Id view_id) {
294 View* view = GetViewById(view_id); 285 View* view = GetViewById(view_id);
295 if (view) { 286 if (view) {
296 FOR_EACH_OBSERVER(ViewObserver, *ViewPrivate(view).observers(), 287 FOR_EACH_OBSERVER(ViewObserver, *ViewPrivate(view).observers(),
297 OnViewEmbeddedAppDisconnected(view)); 288 OnViewEmbeddedAppDisconnected(view));
298 } 289 }
299 } 290 }
300 291
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 uint32 active_view_id) { 468 uint32 active_view_id) {
478 if (GetViewById(focused_view_id) != focused_view_) 469 if (GetViewById(focused_view_id) != focused_view_)
479 OnFocusChanged(focused_view_ ? focused_view_->id() : 0, focused_view_id); 470 OnFocusChanged(focused_view_ ? focused_view_->id() : 0, focused_view_id);
480 if (GetViewById(active_view_id) != activated_view_) { 471 if (GetViewById(active_view_id) != activated_view_) {
481 OnActiveWindowChanged(activated_view_ ? activated_view_->id() : 0, 472 OnActiveWindowChanged(activated_view_ ? activated_view_->id() : 0,
482 active_view_id); 473 active_view_id);
483 } 474 }
484 } 475 }
485 476
486 } // namespace mojo 477 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698