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

Side by Side Diff: shell/context.cc

Issue 791493006: De-client tracing.TraceController interface (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: hook mojo shell up again Created 6 years 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 | « shell/context.h ('k') | sky/viewer/viewer.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 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 "shell/context.h" 5 #include "shell/context.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 const GURL to(pair.second); 107 const GURL to(pair.second);
108 if (!from.is_valid() || !to.is_valid()) 108 if (!from.is_valid() || !to.is_valid())
109 return false; 109 return false;
110 resolver->AddCustomMapping(from, to); 110 resolver->AddCustomMapping(from, to);
111 } 111 }
112 return true; 112 return true;
113 } 113 }
114 114
115 } // namespace 115 } // namespace
116 116
117 class Context::TracingServiceProvider : public ServiceProvider {
118 public:
119 explicit TracingServiceProvider(ScopedMessagePipeHandle handle)
120 : binding_(this, handle.Pass()) {}
121 ~TracingServiceProvider() override {}
122
123 void ConnectToService(const mojo::String& service_name,
124 ScopedMessagePipeHandle client_handle) override {
125 if (service_name != tracing::TraceController::Name_) {
126 client_handle.reset();
127 return;
128 }
129 trace_controller_.Bind(client_handle.Pass());
130 }
131
132 private:
133 TraceControllerImpl trace_controller_;
134 StrongBinding<ServiceProvider> binding_;
qsr 2014/12/19 09:47:14 I might be missing something, but if I understand
jamesr 2014/12/29 18:57:58 You are correct. I'll get rid of the scoped_ptr (
135 };
136
117 Context::Context() : application_manager_(this) { 137 Context::Context() : application_manager_(this) {
118 DCHECK(!base::MessageLoop::current()); 138 DCHECK(!base::MessageLoop::current());
119 } 139 }
120 140
121 Context::~Context() { 141 Context::~Context() {
122 DCHECK(!base::MessageLoop::current()); 142 DCHECK(!base::MessageLoop::current());
123 } 143 }
124 144
125 void Context::EnsureEmbedderIsInitialized() { 145 void Context::EnsureEmbedderIsInitialized() {
126 setup.Get(); 146 setup.Get();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 195
176 if (command_line->HasSwitch(switches::kSpy)) { 196 if (command_line->HasSwitch(switches::kSpy)) {
177 spy_.reset( 197 spy_.reset(
178 new mojo::Spy(&application_manager_, 198 new mojo::Spy(&application_manager_,
179 command_line->GetSwitchValueASCII(switches::kSpy))); 199 command_line->GetSwitchValueASCII(switches::kSpy)));
180 // TODO(cpu): the spy can snoop, but can't tell anybody until 200 // TODO(cpu): the spy can snoop, but can't tell anybody until
181 // the Spy::WebSocketDelegate is implemented. In the original repo this 201 // the Spy::WebSocketDelegate is implemented. In the original repo this
182 // was implemented by src\mojo\spy\websocket_server.h and .cc. 202 // was implemented by src\mojo\spy\websocket_server.h and .cc.
183 } 203 }
184 204
185 tracing::TraceDataCollectorPtr trace_data_collector_ptr; 205 MessagePipe pipe;
186 application_manager_.ConnectToService(GURL("mojo:tracing"), 206 ServiceProviderPtr spp;
187 &trace_data_collector_ptr); 207 tracing_sp_.reset(new Context::TracingServiceProvider(pipe.handle0.Pass()));
188 TracingImpl::Create(trace_data_collector_ptr.Pass()); 208 spp.Bind(pipe.handle1.Pass());
qsr 2014/12/19 09:47:14 Did we lose the ability to bury the pipes with the
jamesr 2014/12/29 18:57:58 I think hiding these makes this code a lot harder
qsr 2015/01/05 13:38:31 Hum... Ok, I have a tendency to think the opposite
209 application_manager_.ConnectToApplication(GURL("mojo:tracing"), GURL(""),
210 spp.Pass());
189 211
190 if (listener_) 212 if (listener_)
191 listener_->WaitForListening(); 213 listener_->WaitForListening();
192 214
193 return true; 215 return true;
194 } 216 }
195 217
196 void Context::OnApplicationError(const GURL& url) { 218 void Context::OnApplicationError(const GURL& url) {
197 if (app_urls_.find(url) != app_urls_.end()) { 219 if (app_urls_.find(url) != app_urls_.end()) {
198 app_urls_.erase(url); 220 app_urls_.erase(url);
(...skipping 18 matching lines...) Expand all
217 ScopedMessagePipeHandle Context::ConnectToServiceByName( 239 ScopedMessagePipeHandle Context::ConnectToServiceByName(
218 const GURL& application_url, 240 const GURL& application_url,
219 const std::string& service_name) { 241 const std::string& service_name) {
220 app_urls_.insert(application_url); 242 app_urls_.insert(application_url);
221 return application_manager_.ConnectToServiceByName(application_url, 243 return application_manager_.ConnectToServiceByName(application_url,
222 service_name).Pass(); 244 service_name).Pass();
223 } 245 }
224 246
225 } // namespace shell 247 } // namespace shell
226 } // namespace mojo 248 } // namespace mojo
OLDNEW
« no previous file with comments | « shell/context.h ('k') | sky/viewer/viewer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698