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

Side by Side Diff: services/tracing/tracing_app.cc

Issue 1882423004: Move shell service to toplevel shell namespace (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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/tracing/tracing_app.h ('k') | services/user/user_service.h » ('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 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 "services/tracing/tracing_app.h" 5 #include "services/tracing/tracing_app.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>
11 11
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
15 15
16 namespace tracing { 16 namespace tracing {
17 17
18 TracingApp::TracingApp() : collector_binding_(this), tracing_active_(false) { 18 TracingApp::TracingApp() : collector_binding_(this), tracing_active_(false) {
19 } 19 }
20 20
21 TracingApp::~TracingApp() { 21 TracingApp::~TracingApp() {
22 } 22 }
23 23
24 bool TracingApp::AcceptConnection(mojo::Connection* connection) { 24 bool TracingApp::AcceptConnection(shell::Connection* connection) {
25 connection->AddInterface<TraceCollector>(this); 25 connection->AddInterface<TraceCollector>(this);
26 connection->AddInterface<StartupPerformanceDataCollector>(this); 26 connection->AddInterface<StartupPerformanceDataCollector>(this);
27 27
28 // If someone connects to us they may want to use the TraceCollector 28 // If someone connects to us they may want to use the TraceCollector
29 // interface and/or they may want to expose themselves to be traced. Attempt 29 // interface and/or they may want to expose themselves to be traced. Attempt
30 // to connect to the TraceProvider interface to see if the application 30 // to connect to the TraceProvider interface to see if the application
31 // connecting to us wants to be traced. They can refuse the connection or 31 // connecting to us wants to be traced. They can refuse the connection or
32 // close the pipe if not. 32 // close the pipe if not.
33 TraceProviderPtr provider_ptr; 33 TraceProviderPtr provider_ptr;
34 connection->GetInterface(&provider_ptr); 34 connection->GetInterface(&provider_ptr);
35 if (tracing_active_) { 35 if (tracing_active_) {
36 TraceRecorderPtr recorder_ptr; 36 TraceRecorderPtr recorder_ptr;
37 recorder_impls_.push_back( 37 recorder_impls_.push_back(
38 new TraceRecorderImpl(GetProxy(&recorder_ptr), sink_.get())); 38 new TraceRecorderImpl(GetProxy(&recorder_ptr), sink_.get()));
39 provider_ptr->StartTracing(tracing_categories_, std::move(recorder_ptr)); 39 provider_ptr->StartTracing(tracing_categories_, std::move(recorder_ptr));
40 } 40 }
41 provider_ptrs_.AddPtr(std::move(provider_ptr)); 41 provider_ptrs_.AddPtr(std::move(provider_ptr));
42 return true; 42 return true;
43 } 43 }
44 44
45 bool TracingApp::ShellConnectionLost() { 45 bool TracingApp::ShellConnectionLost() {
46 // TODO(beng): This is only required because TracingApp isn't run by 46 // TODO(beng): This is only required because TracingApp isn't run by
47 // ApplicationRunner - instead it's launched automatically by the standalone 47 // ApplicationRunner - instead it's launched automatically by the standalone
48 // shell. It shouldn't be. 48 // shell. It shouldn't be.
49 base::MessageLoop::current()->QuitWhenIdle(); 49 base::MessageLoop::current()->QuitWhenIdle();
50 return false; 50 return false;
51 } 51 }
52 52
53 void TracingApp::Create(mojo::Connection* connection, 53 void TracingApp::Create(shell::Connection* connection,
54 mojo::InterfaceRequest<TraceCollector> request) { 54 mojo::InterfaceRequest<TraceCollector> request) {
55 collector_binding_.Bind(std::move(request)); 55 collector_binding_.Bind(std::move(request));
56 } 56 }
57 57
58 void TracingApp::Create( 58 void TracingApp::Create(
59 mojo::Connection* connection, 59 shell::Connection* connection,
60 mojo::InterfaceRequest<StartupPerformanceDataCollector> request) { 60 mojo::InterfaceRequest<StartupPerformanceDataCollector> request) {
61 startup_performance_data_collector_bindings_.AddBinding(this, 61 startup_performance_data_collector_bindings_.AddBinding(this,
62 std::move(request)); 62 std::move(request));
63 } 63 }
64 64
65 void TracingApp::Start(mojo::ScopedDataPipeProducerHandle stream, 65 void TracingApp::Start(mojo::ScopedDataPipeProducerHandle stream,
66 const mojo::String& categories) { 66 const mojo::String& categories) {
67 tracing_categories_ = categories; 67 tracing_categories_ = categories;
68 sink_.reset(new TraceDataSink(std::move(stream))); 68 sink_.reset(new TraceDataSink(std::move(stream)));
69 provider_ptrs_.ForAllPtrs([categories, this](TraceProvider* controller) { 69 provider_ptrs_.ForAllPtrs([categories, this](TraceProvider* controller) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 const GetStartupPerformanceTimesCallback& callback) { 177 const GetStartupPerformanceTimesCallback& callback) {
178 callback.Run(startup_performance_times_.Clone()); 178 callback.Run(startup_performance_times_.Clone());
179 } 179 }
180 180
181 void TracingApp::AllDataCollected() { 181 void TracingApp::AllDataCollected() {
182 recorder_impls_.clear(); 182 recorder_impls_.clear();
183 sink_.reset(); 183 sink_.reset();
184 } 184 }
185 185
186 } // namespace tracing 186 } // namespace tracing
OLDNEW
« no previous file with comments | « services/tracing/tracing_app.h ('k') | services/user/user_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698