| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/standalone/context.h" | 5 #include "services/shell/standalone/context.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 Setup() { mojo::edk::Init(); } | 56 Setup() { mojo::edk::Init(); } |
| 57 | 57 |
| 58 ~Setup() {} | 58 ~Setup() {} |
| 59 | 59 |
| 60 private: | 60 private: |
| 61 DISALLOW_COPY_AND_ASSIGN(Setup); | 61 DISALLOW_COPY_AND_ASSIGN(Setup); |
| 62 }; | 62 }; |
| 63 | 63 |
| 64 class TracingInterfaceProvider : public mojom::InterfaceProvider { | 64 class TracingInterfaceProvider : public mojom::InterfaceProvider { |
| 65 public: | 65 public: |
| 66 TracingInterfaceProvider(Tracer* tracer, | 66 explicit TracingInterfaceProvider(Tracer* tracer) : tracer_(tracer) {} |
| 67 mojom::InterfaceProviderRequest request) | |
| 68 : tracer_(tracer), binding_(this, std::move(request)) {} | |
| 69 ~TracingInterfaceProvider() override {} | 67 ~TracingInterfaceProvider() override {} |
| 70 | 68 |
| 71 // mojom::InterfaceProvider: | 69 // mojom::InterfaceProvider: |
| 72 void GetInterface(const std::string& interface_name, | 70 void GetInterface(const std::string& interface_name, |
| 73 mojo::ScopedMessagePipeHandle client_handle) override { | 71 mojo::ScopedMessagePipeHandle client_handle) override { |
| 74 if (tracer_ && interface_name == tracing::mojom::Provider::Name_) { | 72 if (tracer_ && interface_name == tracing::mojom::Provider::Name_) { |
| 75 tracer_->ConnectToProvider( | 73 tracer_->ConnectToProvider( |
| 76 mojo::MakeRequest<tracing::mojom::Provider>( | 74 mojo::MakeRequest<tracing::mojom::Provider>( |
| 77 std::move(client_handle))); | 75 std::move(client_handle))); |
| 78 } | 76 } |
| 79 } | 77 } |
| 80 | 78 |
| 81 private: | 79 private: |
| 82 Tracer* tracer_; | 80 Tracer* tracer_; |
| 83 mojo::StrongBinding<mojom::InterfaceProvider> binding_; | |
| 84 | 81 |
| 85 DISALLOW_COPY_AND_ASSIGN(TracingInterfaceProvider); | 82 DISALLOW_COPY_AND_ASSIGN(TracingInterfaceProvider); |
| 86 }; | 83 }; |
| 87 | 84 |
| 88 const size_t kMaxBlockingPoolThreads = 3; | 85 const size_t kMaxBlockingPoolThreads = 3; |
| 89 | 86 |
| 90 std::unique_ptr<base::Thread> CreateIOThread(const char* name) { | 87 std::unique_ptr<base::Thread> CreateIOThread(const char* name) { |
| 91 std::unique_ptr<base::Thread> thread(new base::Thread(name)); | 88 std::unique_ptr<base::Thread> thread(new base::Thread(name)); |
| 92 base::Thread::Options options; | 89 base::Thread::Options options; |
| 93 options.message_loop_type = base::MessageLoop::TYPE_IO; | 90 options.message_loop_type = base::MessageLoop::TYPE_IO; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 std::unique_ptr<catalog::Store> store; | 164 std::unique_ptr<catalog::Store> store; |
| 168 if (init_params) | 165 if (init_params) |
| 169 store = std::move(init_params->catalog_store); | 166 store = std::move(init_params->catalog_store); |
| 170 catalog_.reset( | 167 catalog_.reset( |
| 171 new catalog::Catalog(blocking_pool_.get(), std::move(store), nullptr)); | 168 new catalog::Catalog(blocking_pool_.get(), std::move(store), nullptr)); |
| 172 service_manager_.reset(new ServiceManager(std::move(runner_factory), | 169 service_manager_.reset(new ServiceManager(std::move(runner_factory), |
| 173 catalog_->TakeService())); | 170 catalog_->TakeService())); |
| 174 | 171 |
| 175 mojom::InterfaceProviderPtr tracing_remote_interfaces; | 172 mojom::InterfaceProviderPtr tracing_remote_interfaces; |
| 176 mojom::InterfaceProviderPtr tracing_local_interfaces; | 173 mojom::InterfaceProviderPtr tracing_local_interfaces; |
| 177 new TracingInterfaceProvider(&tracer_, GetProxy(&tracing_local_interfaces)); | 174 mojo::MakeStrongBinding(base::MakeUnique<TracingInterfaceProvider>(&tracer_), |
| 175 mojo::GetProxy(&tracing_local_interfaces)); |
| 178 | 176 |
| 179 std::unique_ptr<ConnectParams> params(new ConnectParams); | 177 std::unique_ptr<ConnectParams> params(new ConnectParams); |
| 180 params->set_source(CreateServiceManagerIdentity()); | 178 params->set_source(CreateServiceManagerIdentity()); |
| 181 params->set_target(Identity("mojo:tracing", mojom::kRootUserID)); | 179 params->set_target(Identity("mojo:tracing", mojom::kRootUserID)); |
| 182 params->set_remote_interfaces(mojo::GetProxy(&tracing_remote_interfaces)); | 180 params->set_remote_interfaces(mojo::GetProxy(&tracing_remote_interfaces)); |
| 183 service_manager_->Connect(std::move(params)); | 181 service_manager_->Connect(std::move(params)); |
| 184 | 182 |
| 185 if (command_line.HasSwitch(tracing::kTraceStartup)) { | 183 if (command_line.HasSwitch(tracing::kTraceStartup)) { |
| 186 tracing::mojom::CollectorPtr coordinator; | 184 tracing::mojom::CollectorPtr coordinator; |
| 187 auto coordinator_request = GetProxy(&coordinator); | 185 auto coordinator_request = GetProxy(&coordinator); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 mojom::InterfaceProviderPtr local_interfaces; | 253 mojom::InterfaceProviderPtr local_interfaces; |
| 256 | 254 |
| 257 std::unique_ptr<ConnectParams> params(new ConnectParams); | 255 std::unique_ptr<ConnectParams> params(new ConnectParams); |
| 258 params->set_source(CreateServiceManagerIdentity()); | 256 params->set_source(CreateServiceManagerIdentity()); |
| 259 params->set_target(Identity(name, mojom::kRootUserID)); | 257 params->set_target(Identity(name, mojom::kRootUserID)); |
| 260 params->set_remote_interfaces(mojo::GetProxy(&remote_interfaces)); | 258 params->set_remote_interfaces(mojo::GetProxy(&remote_interfaces)); |
| 261 service_manager_->Connect(std::move(params)); | 259 service_manager_->Connect(std::move(params)); |
| 262 } | 260 } |
| 263 | 261 |
| 264 } // namespace shell | 262 } // namespace shell |
| OLD | NEW |