OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "mandoline/ui/aura/surface_binding.h" | 5 #include "mandoline/ui/aura/surface_binding.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 if (view_map->empty()) { | 197 if (view_map->empty()) { |
198 delete view_map; | 198 delete view_map; |
199 view_states.Pointer()->Set(nullptr); | 199 view_states.Pointer()->Set(nullptr); |
200 } | 200 } |
201 } | 201 } |
202 | 202 |
203 void SurfaceBinding::PerViewManagerState::Init() { | 203 void SurfaceBinding::PerViewManagerState::Init() { |
204 DCHECK(!surface_.get()); | 204 DCHECK(!surface_.get()); |
205 | 205 |
206 mojo::ServiceProviderPtr surfaces_service_provider; | 206 mojo::ServiceProviderPtr surfaces_service_provider; |
207 shell_->ConnectToApplication("mojo:surfaces_service", | 207 mojo::URLRequestPtr request(mojo::URLRequest::New()); |
| 208 request->url = mojo::String::From("mojo:surfaces_service"); |
| 209 shell_->ConnectToApplication(request.Pass(), |
208 GetProxy(&surfaces_service_provider), | 210 GetProxy(&surfaces_service_provider), |
209 nullptr); | 211 nullptr); |
210 ConnectToService(surfaces_service_provider.get(), &surface_); | 212 ConnectToService(surfaces_service_provider.get(), &surface_); |
211 surface_->GetIdNamespace( | 213 surface_->GetIdNamespace( |
212 base::Bind(&SurfaceBinding::PerViewManagerState::SetIdNamespace, | 214 base::Bind(&SurfaceBinding::PerViewManagerState::SetIdNamespace, |
213 base::Unretained(this))); | 215 base::Unretained(this))); |
214 // Block until we receive our id namespace. | 216 // Block until we receive our id namespace. |
215 surface_.WaitForIncomingMethodCall(); | 217 surface_.WaitForIncomingMethodCall(); |
216 DCHECK_NE(0u, id_namespace_); | 218 DCHECK_NE(0u, id_namespace_); |
217 | 219 |
218 mojo::ResourceReturnerPtr returner_ptr; | 220 mojo::ResourceReturnerPtr returner_ptr; |
219 returner_binding_.Bind(GetProxy(&returner_ptr)); | 221 returner_binding_.Bind(GetProxy(&returner_ptr)); |
220 surface_->SetResourceReturner(returner_ptr.Pass()); | 222 surface_->SetResourceReturner(returner_ptr.Pass()); |
221 | 223 |
222 mojo::ServiceProviderPtr gpu_service_provider; | 224 mojo::ServiceProviderPtr gpu_service_provider; |
223 // TODO(jamesr): Should be mojo:gpu_service | 225 // TODO(jamesr): Should be mojo:gpu_service |
224 shell_->ConnectToApplication("mojo:native_viewport_service", | 226 mojo::URLRequestPtr request2(mojo::URLRequest::New()); |
| 227 request2->url = mojo::String::From("mojo:native_viewport_service"); |
| 228 shell_->ConnectToApplication(request2.Pass(), |
225 GetProxy(&gpu_service_provider), | 229 GetProxy(&gpu_service_provider), |
226 nullptr); | 230 nullptr); |
227 ConnectToService(gpu_service_provider.get(), &gpu_); | 231 ConnectToService(gpu_service_provider.get(), &gpu_); |
228 } | 232 } |
229 | 233 |
230 void SurfaceBinding::PerViewManagerState::SetIdNamespace( | 234 void SurfaceBinding::PerViewManagerState::SetIdNamespace( |
231 uint32_t id_namespace) { | 235 uint32_t id_namespace) { |
232 id_namespace_ = id_namespace; | 236 id_namespace_ = id_namespace; |
233 } | 237 } |
234 | 238 |
235 void SurfaceBinding::PerViewManagerState::ReturnResources( | 239 void SurfaceBinding::PerViewManagerState::ReturnResources( |
236 mojo::Array<mojo::ReturnedResourcePtr> resources) { | 240 mojo::Array<mojo::ReturnedResourcePtr> resources) { |
237 } | 241 } |
238 | 242 |
239 // SurfaceBinding -------------------------------------------------------------- | 243 // SurfaceBinding -------------------------------------------------------------- |
240 | 244 |
241 SurfaceBinding::SurfaceBinding(mojo::Shell* shell, mojo::View* view) | 245 SurfaceBinding::SurfaceBinding(mojo::Shell* shell, mojo::View* view) |
242 : view_(view), | 246 : view_(view), |
243 state_(PerViewManagerState::Get(shell, view->view_manager())) { | 247 state_(PerViewManagerState::Get(shell, view->view_manager())) { |
244 } | 248 } |
245 | 249 |
246 SurfaceBinding::~SurfaceBinding() { | 250 SurfaceBinding::~SurfaceBinding() { |
247 } | 251 } |
248 | 252 |
249 scoped_ptr<cc::OutputSurface> SurfaceBinding::CreateOutputSurface() { | 253 scoped_ptr<cc::OutputSurface> SurfaceBinding::CreateOutputSurface() { |
250 return state_->CreateOutputSurface(view_); | 254 return state_->CreateOutputSurface(view_); |
251 } | 255 } |
252 | 256 |
253 } // namespace mandoline | 257 } // namespace mandoline |
OLD | NEW |