OLD | NEW |
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 <dlfcn.h> | 5 #include <dlfcn.h> |
6 #include <python2.7/Python.h> | 6 #include <python2.7/Python.h> |
7 | 7 |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
10 #include "base/i18n/icu_util.h" | 10 #include "base/i18n/icu_util.h" |
11 #include "base/strings/string_util.h" | 11 #include "base/strings/string_split.h" |
12 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
13 #include "mojo/application/application_runner_chromium.h" | 13 #include "mojo/application/application_runner_chromium.h" |
14 #include "mojo/application/content_handler_factory.h" | 14 #include "mojo/application/content_handler_factory.h" |
15 #include "mojo/data_pipe_utils/data_pipe_utils.h" | 15 #include "mojo/data_pipe_utils/data_pipe_utils.h" |
16 #include "mojo/public/c/system/main.h" | 16 #include "mojo/public/c/system/main.h" |
17 #include "mojo/public/cpp/application/application_delegate.h" | 17 #include "mojo/public/cpp/application/application_delegate.h" |
18 #include "mojo/public/cpp/application/application_impl.h" | 18 #include "mojo/public/cpp/application/application_impl.h" |
19 #include "mojo/public/cpp/application/interface_factory_impl.h" | 19 #include "mojo/public/cpp/application/interface_factory_impl.h" |
20 #include "mojo/public/python/src/common.h" | 20 #include "mojo/public/python/src/common.h" |
21 #include "third_party/zlib/google/zip_reader.h" | 21 #include "third_party/zlib/google/zip_reader.h" |
(...skipping 195 matching lines...) Loading... |
217 if (IsDebug(connection->GetConnectionURL())) | 217 if (IsDebug(connection->GetConnectionURL())) |
218 connection->AddService(&debug_content_handler_factory_); | 218 connection->AddService(&debug_content_handler_factory_); |
219 else | 219 else |
220 connection->AddService(&content_handler_factory_); | 220 connection->AddService(&content_handler_factory_); |
221 return true; | 221 return true; |
222 } | 222 } |
223 | 223 |
224 bool IsDebug(const std::string& requestedUrl) { | 224 bool IsDebug(const std::string& requestedUrl) { |
225 GURL url(requestedUrl); | 225 GURL url(requestedUrl); |
226 if (url.has_query()) { | 226 if (url.has_query()) { |
227 std::vector<std::string> query_parameters; | 227 std::vector<std::string> query_parameters = base::SplitString( |
228 Tokenize(url.query(), "&", &query_parameters); | 228 url.query(), "&", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
229 return std::find(query_parameters.begin(), query_parameters.end(), | 229 return std::find(query_parameters.begin(), query_parameters.end(), |
230 "debug=true") != query_parameters.end(); | 230 "debug=true") != query_parameters.end(); |
231 } | 231 } |
232 return false; | 232 return false; |
233 } | 233 } |
234 | 234 |
235 PythonContentHandler content_handler_; | 235 PythonContentHandler content_handler_; |
236 PythonContentHandler debug_content_handler_; | 236 PythonContentHandler debug_content_handler_; |
237 ContentHandlerFactory content_handler_factory_; | 237 ContentHandlerFactory content_handler_factory_; |
238 ContentHandlerFactory debug_content_handler_factory_; | 238 ContentHandlerFactory debug_content_handler_factory_; |
239 | 239 |
240 DISALLOW_COPY_AND_ASSIGN(PythonContentHandlerApp); | 240 DISALLOW_COPY_AND_ASSIGN(PythonContentHandlerApp); |
241 }; | 241 }; |
242 | 242 |
243 } // namespace content_handler | 243 } // namespace content_handler |
244 } // namespace python | 244 } // namespace python |
245 } // namespace services | 245 } // namespace services |
246 | 246 |
247 MojoResult MojoMain(MojoHandle application_request) { | 247 MojoResult MojoMain(MojoHandle application_request) { |
248 mojo::ApplicationRunnerChromium runner( | 248 mojo::ApplicationRunnerChromium runner( |
249 new services::python::content_handler::PythonContentHandlerApp()); | 249 new services::python::content_handler::PythonContentHandlerApp()); |
250 return runner.Run(application_request); | 250 return runner.Run(application_request); |
251 } | 251 } |
OLD | NEW |