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

Side by Side Diff: services/shell/service_manager.cc

Issue 2215133002: Change signature of OnConnect (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cleanup
Patch Set: . Created 4 years, 4 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
« no previous file with comments | « services/shell/service_manager.h ('k') | services/shell/tests/connect/connect_test_app.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "services/shell/service_manager.h" 5 #include "services/shell/service_manager.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 return info; 238 return info;
239 } 239 }
240 240
241 const CapabilitySpec& capability_spec() const { 241 const CapabilitySpec& capability_spec() const {
242 return capability_spec_; 242 return capability_spec_;
243 } 243 }
244 const Identity& identity() const { return identity_; } 244 const Identity& identity() const { return identity_; }
245 uint32_t id() const { return id_; } 245 uint32_t id() const { return id_; }
246 246
247 // Service: 247 // Service:
248 bool OnConnect(Connection* connection) override { 248 bool OnConnect(const Identity& remote_identity,
249 connection->AddInterface<mojom::ServiceManager>(this); 249 InterfaceRegistry* registry) override {
250 registry->AddInterface<mojom::ServiceManager>(this);
250 return true; 251 return true;
251 } 252 }
252 253
253 private: 254 private:
254 // mojom::Connector implementation: 255 // mojom::Connector implementation:
255 void Connect(mojom::IdentityPtr target_ptr, 256 void Connect(mojom::IdentityPtr target_ptr,
256 mojom::InterfaceProviderRequest remote_interfaces, 257 mojom::InterfaceProviderRequest remote_interfaces,
257 mojom::ClientProcessConnectionPtr client_process_connection, 258 mojom::ClientProcessConnectionPtr client_process_connection,
258 const ConnectCallback& callback) override { 259 const ConnectCallback& callback) override {
259 Identity target = target_ptr.To<Identity>(); 260 Identity target = target_ptr.To<Identity>();
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 mojom::ServicePtr service; 525 mojom::ServicePtr service;
525 mojom::ServiceRequest request = mojo::GetProxy(&service); 526 mojom::ServiceRequest request = mojo::GetProxy(&service);
526 Connect(std::move(params), std::move(service), nullptr); 527 Connect(std::move(params), std::move(service), nullptr);
527 528
528 return request; 529 return request;
529 } 530 }
530 531
531 //////////////////////////////////////////////////////////////////////////////// 532 ////////////////////////////////////////////////////////////////////////////////
532 // ServiceManager, Service implementation: 533 // ServiceManager, Service implementation:
533 534
534 bool ServiceManager::OnConnect(Connection* connection) { 535 bool ServiceManager::OnConnect(const Identity& remote_identity,
536 InterfaceRegistry* registry) {
535 // The only interface we expose is mojom::ServiceManager, and access to this 537 // The only interface we expose is mojom::ServiceManager, and access to this
536 // interface is brokered by a policy specific to each caller, managed by the 538 // interface is brokered by a policy specific to each caller, managed by the
537 // caller's instance. Here we look to see who's calling, and forward to the 539 // caller's instance. Here we look to see who's calling, and forward to the
538 // caller's instance to continue. 540 // caller's instance to continue.
539 Instance* instance = nullptr; 541 Instance* instance = nullptr;
540 for (const auto& entry : identity_to_instance_) { 542 for (const auto& entry : identity_to_instance_) {
541 if (entry.first == connection->GetRemoteIdentity()) { 543 if (entry.first == remote_identity) {
542 instance = entry.second; 544 instance = entry.second;
543 break; 545 break;
544 } 546 }
545 } 547 }
546 DCHECK(instance); 548 DCHECK(instance);
547 return instance->OnConnect(connection); 549 return instance->OnConnect(remote_identity, registry);
548 } 550 }
549 551
550 //////////////////////////////////////////////////////////////////////////////// 552 ////////////////////////////////////////////////////////////////////////////////
551 // ServiceManager, private: 553 // ServiceManager, private:
552 554
553 void ServiceManager::InitCatalog(mojom::ServicePtr catalog) { 555 void ServiceManager::InitCatalog(mojom::ServicePtr catalog) {
554 // TODO(beng): It'd be great to build this from the manifest, however there's 556 // TODO(beng): It'd be great to build this from the manifest, however there's
555 // a bit of a chicken-and-egg problem. 557 // a bit of a chicken-and-egg problem.
556 CapabilitySpec spec; 558 CapabilitySpec spec;
557 Interfaces interfaces; 559 Interfaces interfaces;
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
801 // Now that the instance has a Service, we can connect to it. 803 // Now that the instance has a Service, we can connect to it.
802 bool connected = instance->ConnectToService(&params); 804 bool connected = instance->ConnectToService(&params);
803 DCHECK(connected); 805 DCHECK(connected);
804 } 806 }
805 807
806 base::WeakPtr<ServiceManager> ServiceManager::GetWeakPtr() { 808 base::WeakPtr<ServiceManager> ServiceManager::GetWeakPtr() {
807 return weak_ptr_factory_.GetWeakPtr(); 809 return weak_ptr_factory_.GetWeakPtr();
808 } 810 }
809 811
810 } // namespace shell 812 } // namespace shell
OLDNEW
« no previous file with comments | « services/shell/service_manager.h ('k') | services/shell/tests/connect/connect_test_app.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698