diff options
author | erg <erg@chromium.org> | 2015-11-18 10:55:05 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-11-18 18:56:15 +0000 |
commit | 4706d070db1dde84a3bd94ce73c4545949439fbe (patch) | |
tree | 813ac54115c1ed36a74948e4bc48747e2e5e53c0 | |
parent | 17ec244eb92d303b49b3f89eace52ac38d3698d5 (diff) | |
download | chromium_src-4706d070db1dde84a3bd94ce73c4545949439fbe.zip chromium_src-4706d070db1dde84a3bd94ce73c4545949439fbe.tar.gz chromium_src-4706d070db1dde84a3bd94ce73c4545949439fbe.tar.bz2 |
Revert of mandoline/mojo: Make ApplicaitonImpl connect to tracing during startup. (patchset #9 id:160001 of https://codereview.chromium.org/1440403002/ )
Reason for revert:
Breaks on android due to lifetime issues. This approach isn't going to work.
Original issue's description:
> mandoline/mojo: Make ApplicaitonImpl connect to tracing during startup.
>
> This removes explicit initialization of the tracing system from
> individual mojo apps and moves it to ApplicationImpl, which always
> runs.
>
> BUG=534895
>
> Committed: https://crrev.com/64370e5eaf911e665b991361b0da1f9d5baa95b7
> Cr-Commit-Position: refs/heads/master@{#360174}
TBR=sky@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=534895, 557467
Review URL: https://codereview.chromium.org/1462593002
Cr-Commit-Position: refs/heads/master@{#360377}
33 files changed, 80 insertions, 109 deletions
diff --git a/components/html_viewer/BUILD.gn b/components/html_viewer/BUILD.gn index 85b973c..95d6539 100644 --- a/components/html_viewer/BUILD.gn +++ b/components/html_viewer/BUILD.gn @@ -186,6 +186,7 @@ source_set("lib") { "//mojo/public/cpp/environment:environment", "//mojo/services/network/public/cpp", "//mojo/services/network/public/interfaces", + "//mojo/services/tracing/public/cpp", "//mojo/services/tracing/public/interfaces", "//net", "//skia", diff --git a/components/html_viewer/global_state.cc b/components/html_viewer/global_state.cc index 18077ca..9d7f46b 100644 --- a/components/html_viewer/global_state.cc +++ b/components/html_viewer/global_state.cc @@ -16,6 +16,7 @@ #include "gin/v8_initializer.h" #include "mojo/application/public/cpp/application_impl.h" #include "mojo/logging/init_logging.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "third_party/WebKit/public/web/WebKit.h" #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" #include "ui/base/resource/resource_bundle.h" @@ -78,6 +79,7 @@ GlobalState::GlobalState(mojo::ApplicationImpl* app) discardable_memory_allocator_(kDesiredMaxMemory), compositor_thread_("compositor thread"), blink_settings_(new BlinkSettingsImpl()) { + tracing_.Initialize(app); } GlobalState::~GlobalState() { diff --git a/components/html_viewer/global_state.h b/components/html_viewer/global_state.h index a7c3894..c8c9523 100644 --- a/components/html_viewer/global_state.h +++ b/components/html_viewer/global_state.h @@ -14,6 +14,7 @@ #include "components/mus/gles2/raster_thread_helper.h" #include "components/mus/public/interfaces/gpu.mojom.h" #include "components/resource_provider/public/cpp/resource_loader.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "skia/ext/refptr.h" #include "ui/gfx/geometry/size.h" @@ -117,6 +118,8 @@ class GlobalState { // memory based purging allocator working here. DiscardableMemoryAllocator discardable_memory_allocator_; + mojo::TracingImpl tracing_; + scoped_ptr<scheduler::RendererScheduler> renderer_scheduler_; scoped_ptr<BlinkPlatformImpl> blink_platform_; base::Thread compositor_thread_; diff --git a/components/html_viewer/stats_collection_controller.cc b/components/html_viewer/stats_collection_controller.cc index 2190933..965c317 100644 --- a/components/html_viewer/stats_collection_controller.cc +++ b/components/html_viewer/stats_collection_controller.cc @@ -13,7 +13,7 @@ #include "gin/handle.h" #include "gin/object_template_builder.h" #include "mojo/application/public/cpp/application_impl.h" -#include "mojo/application/public/cpp/switches.h" +#include "mojo/services/tracing/public/cpp/switches.h" #include "third_party/WebKit/public/web/WebKit.h" #include "third_party/WebKit/public/web/WebLocalFrame.h" @@ -67,7 +67,7 @@ tracing::StartupPerformanceDataCollectorPtr StatsCollectionController::Install( // Only make startup tracing available when running in the context of a test. if (!app || !base::CommandLine::ForCurrentProcess()->HasSwitch( - mojo::kEnableStatsCollectionBindings)) { + tracing::kEnableStatsCollectionBindings)) { return nullptr; } @@ -105,7 +105,7 @@ StatsCollectionController::ConnectToDataCollector(mojo::ApplicationImpl* app) { // Only make startup tracing available when running in the context of a test. if (!app || !base::CommandLine::ForCurrentProcess()->HasSwitch( - mojo::kEnableStatsCollectionBindings)) { + tracing::kEnableStatsCollectionBindings)) { return nullptr; } @@ -134,7 +134,7 @@ gin::ObjectTemplateBuilder StatsCollectionController::GetObjectTemplateBuilder( std::string StatsCollectionController::GetHistogram( const std::string& histogram_name) { DCHECK(base::CommandLine::ForCurrentProcess()->HasSwitch( - mojo::kEnableStatsCollectionBindings)); + tracing::kEnableStatsCollectionBindings)); static bool startup_histogram_initialized = false; if (!startup_histogram_initialized) { diff --git a/components/mus/BUILD.gn b/components/mus/BUILD.gn index f75f1c3..e89df7e 100644 --- a/components/mus/BUILD.gn +++ b/components/mus/BUILD.gn @@ -77,6 +77,7 @@ source_set("lib") { "//components/mus/ws:lib", "//mojo/application/public/cpp", "//mojo/common:common_base", + "//mojo/services/tracing/public/cpp", "//ui/events", "//ui/gl:gl", "//ui/platform_window:platform_impls", diff --git a/components/mus/mus_app.cc b/components/mus/mus_app.cc index ac91a9a..f464ba4 100644 --- a/components/mus/mus_app.cc +++ b/components/mus/mus_app.cc @@ -18,6 +18,7 @@ #include "mojo/application/public/cpp/application_impl.h" #include "mojo/application/public/cpp/application_runner.h" #include "mojo/public/c/system/main.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "ui/events/event_switches.h" #include "ui/events/platform/platform_event_source.h" #include "ui/gl/gl_surface.h" diff --git a/components/mus/mus_app.h b/components/mus/mus_app.h index 3750428..069e665 100644 --- a/components/mus/mus_app.h +++ b/components/mus/mus_app.h @@ -17,6 +17,7 @@ #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/interface_factory.h" #include "mojo/common/weak_binding_set.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" namespace mojo { class ApplicationImpl; diff --git a/components/mus/surfaces/BUILD.gn b/components/mus/surfaces/BUILD.gn index 65889ca..8f12ed5 100644 --- a/components/mus/surfaces/BUILD.gn +++ b/components/mus/surfaces/BUILD.gn @@ -31,6 +31,7 @@ source_set("surfaces") { "//mojo/application/public/cpp", "//mojo/converters/geometry", "//mojo/converters/surfaces", + "//mojo/services/tracing/public/cpp", "//ui/gfx", "//ui/gl", "//ui/mojo/geometry:interfaces", diff --git a/components/mus/ws/BUILD.gn b/components/mus/ws/BUILD.gn index 6556d88..e7f9223 100644 --- a/components/mus/ws/BUILD.gn +++ b/components/mus/ws/BUILD.gn @@ -74,6 +74,7 @@ source_set("lib") { "//mojo/converters/input_events", "//mojo/converters/surfaces", "//mojo/public/cpp/bindings:callback", + "//mojo/services/tracing/public/cpp", "//ui/events", "//ui/events/platform", "//ui/gfx", diff --git a/components/pdf_viewer/BUILD.gn b/components/pdf_viewer/BUILD.gn index 51d6df8..984b212 100644 --- a/components/pdf_viewer/BUILD.gn +++ b/components/pdf_viewer/BUILD.gn @@ -27,6 +27,7 @@ mojo_native_application("pdf_viewer") { "//mojo/public/cpp/bindings", "//mojo/services/network/public/cpp", "//mojo/services/network/public/interfaces", + "//mojo/services/tracing/public/cpp", "//mojo/services/tracing/public/interfaces", "//third_party/pdfium", "//ui/gfx/geometry", diff --git a/components/pdf_viewer/pdf_viewer.cc b/components/pdf_viewer/pdf_viewer.cc index 94fae5c..5dc9097 100644 --- a/components/pdf_viewer/pdf_viewer.cc +++ b/components/pdf_viewer/pdf_viewer.cc @@ -28,6 +28,7 @@ #include "mojo/common/data_pipe_utils.h" #include "mojo/public/c/system/main.h" #include "mojo/public/cpp/bindings/binding.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "third_party/pdfium/public/fpdf_ext.h" #include "third_party/pdfium/public/fpdfview.h" #include "ui/gfx/geometry/rect.h" @@ -340,6 +341,10 @@ class PDFViewer : public mojo::ApplicationDelegate, private: // ApplicationDelegate: + void Initialize(mojo::ApplicationImpl* app) override { + tracing_.Initialize(app); + } + bool ConfigureIncomingConnection( mojo::ApplicationConnection* connection) override { connection->AddService(this); @@ -352,6 +357,8 @@ class PDFViewer : public mojo::ApplicationDelegate, new ContentHandlerImpl(request.Pass()); } + mojo::TracingImpl tracing_; + DISALLOW_COPY_AND_ASSIGN(PDFViewer); }; } // namespace diff --git a/mandoline/services/core_services/BUILD.gn b/mandoline/services/core_services/BUILD.gn index 90cfed5..642fe6d 100644 --- a/mandoline/services/core_services/BUILD.gn +++ b/mandoline/services/core_services/BUILD.gn @@ -47,6 +47,7 @@ source_set("sources") { "//mojo/message_pump", "//mojo/public/cpp/bindings", "//mojo/services/tracing:lib", + "//mojo/services/tracing/public/cpp", "//third_party/icu", "//url", ] diff --git a/mandoline/services/core_services/core_services_application_delegate.cc b/mandoline/services/core_services/core_services_application_delegate.cc index 7a22c7b..093beac 100644 --- a/mandoline/services/core_services/core_services_application_delegate.cc +++ b/mandoline/services/core_services/core_services_application_delegate.cc @@ -17,6 +17,7 @@ #include "mojo/application/public/cpp/application_runner.h" #include "mojo/logging/init_logging.h" #include "mojo/message_pump/message_pump_mojo.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "mojo/services/tracing/tracing_app.h" #include "url/gurl.h" @@ -98,6 +99,7 @@ void CoreServicesApplicationDelegate::ApplicationThreadDestroyed( void CoreServicesApplicationDelegate::Initialize(mojo::ApplicationImpl* app) { base::PlatformThread::SetName("CoreServicesDispatcher"); mojo::logging::InitLogging(); + tracing_.Initialize(app); } bool CoreServicesApplicationDelegate::ConfigureIncomingConnection( diff --git a/mandoline/services/core_services/core_services_application_delegate.h b/mandoline/services/core_services/core_services_application_delegate.h index 03ee9d9..168f068 100644 --- a/mandoline/services/core_services/core_services_application_delegate.h +++ b/mandoline/services/core_services/core_services_application_delegate.h @@ -13,6 +13,7 @@ #include "mojo/application/public/cpp/interface_factory_impl.h" #include "mojo/application/public/interfaces/content_handler.mojom.h" #include "mojo/common/weak_binding_set.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" namespace core_services { @@ -51,6 +52,7 @@ class CoreServicesApplicationDelegate mojo::WeakBindingSet<ContentHandler> handler_bindings_; ScopedVector<ApplicationThread> application_threads_; + mojo::TracingImpl tracing_; base::WeakPtrFactory<CoreServicesApplicationDelegate> weak_factory_; diff --git a/mandoline/ui/desktop_ui/BUILD.gn b/mandoline/ui/desktop_ui/BUILD.gn index 12b8b76..e84c565 100644 --- a/mandoline/ui/desktop_ui/BUILD.gn +++ b/mandoline/ui/desktop_ui/BUILD.gn @@ -43,6 +43,7 @@ source_set("lib") { "//mojo/common:common_base", "//mojo/converters/geometry", "//mojo/public/cpp/bindings", + "//mojo/services/tracing/public/cpp", "//mojo/services/tracing/public/interfaces", "//skia", "//ui/gfx", diff --git a/mandoline/ui/desktop_ui/browser_window.cc b/mandoline/ui/desktop_ui/browser_window.cc index 067bfb6..c049cf2 100644 --- a/mandoline/ui/desktop_ui/browser_window.cc +++ b/mandoline/ui/desktop_ui/browser_window.cc @@ -17,9 +17,9 @@ #include "mandoline/ui/desktop_ui/find_bar_view.h" #include "mandoline/ui/desktop_ui/public/interfaces/omnibox.mojom.h" #include "mandoline/ui/desktop_ui/toolbar_view.h" -#include "mojo/application/public/cpp/switches.h" #include "mojo/common/common_type_converters.h" #include "mojo/converters/geometry/geometry_type_converters.h" +#include "mojo/services/tracing/public/cpp/switches.h" #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" #include "ui/gfx/canvas.h" #include "ui/mojo/init/ui_init.h" @@ -241,7 +241,7 @@ void BrowserWindow::OnEmbed(mus::Window* root) { static bool recorded_browser_startup_metrics = false; if (!recorded_browser_startup_metrics && base::CommandLine::ForCurrentProcess()->HasSwitch( - mojo::kEnableStatsCollectionBindings)) { + tracing::kEnableStatsCollectionBindings)) { mojo::URLRequestPtr request(mojo::URLRequest::New()); request->url = mojo::String::From("mojo:tracing"); tracing::StartupPerformanceDataCollectorPtr collector; diff --git a/mojo/application/public/cpp/BUILD.gn b/mojo/application/public/cpp/BUILD.gn index f26cf73..fb34910b 100644 --- a/mojo/application/public/cpp/BUILD.gn +++ b/mojo/application/public/cpp/BUILD.gn @@ -39,14 +39,8 @@ source_set("sources") { "lib/service_provider_impl.cc", "lib/service_registry.cc", "lib/service_registry.h", - "lib/trace_provider_impl.cc", - "lib/trace_provider_impl.h", - "lib/tracing_impl.cc", - "lib/tracing_impl.h", "service_connector.h", "service_provider_impl.h", - "switches.cc", - "switches.h", ] deps = [ @@ -58,7 +52,6 @@ source_set("sources") { "//mojo/message_pump", "//mojo/public/cpp/bindings", "//mojo/public/cpp/system", - "//mojo/services/tracing/public/interfaces", ] } diff --git a/mojo/application/public/cpp/application_impl.h b/mojo/application/public/cpp/application_impl.h index de2aff2..90e7959 100644 --- a/mojo/application/public/cpp/application_impl.h +++ b/mojo/application/public/cpp/application_impl.h @@ -21,8 +21,6 @@ namespace mojo { -class TracingImpl; - // TODO(beng): This comment is hilariously out of date. // Utility class for communicating with the Shell, and providing Services // to clients. @@ -152,7 +150,6 @@ class ApplicationImpl : public Application { ApplicationDelegate* delegate_; Binding<Application> binding_; ShellPtr shell_; - scoped_ptr<TracingImpl> tracing_impl_; std::string url_; Closure termination_closure_; AppLifetimeHelper app_lifetime_helper_; diff --git a/mojo/application/public/cpp/lib/application_impl.cc b/mojo/application/public/cpp/lib/application_impl.cc index 99d2c69..6d2fb46 100644 --- a/mojo/application/public/cpp/lib/application_impl.cc +++ b/mojo/application/public/cpp/lib/application_impl.cc @@ -10,7 +10,6 @@ #include "base/message_loop/message_loop.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/lib/service_registry.h" -#include "mojo/application/public/cpp/lib/tracing_impl.h" #include "mojo/public/cpp/bindings/interface_ptr.h" #include "mojo/public/cpp/environment/logging.h" @@ -18,8 +17,6 @@ namespace mojo { namespace { -bool g_has_tracing_service = false; - void DefaultTerminationClosure() { if (base::MessageLoop::current() && base::MessageLoop::current()->is_running()) @@ -109,23 +106,6 @@ void ApplicationImpl::Initialize(ShellPtr shell, const mojo::String& url) { shell_ = shell.Pass(); shell_.set_connection_error_handler([this]() { OnConnectionError(); }); url_ = url; - - if (!g_has_tracing_service) { - // Each copy of base in our process must have one tracing service, - // otherwise data will be double counted or not counted. When we load a - // mojo application, either in process or creating a child process, the - // copy of base loaded needs to be connected to the tracing service. It's - // the responsibility of the first application to connect to the tracing - // service to establish this connection. - // - // This is safe because if this is a ContentHandler, it will outlive all - // its served Applications. If this is a raw mojo application, it is the - // only Application served. - tracing_impl_.reset(new TracingImpl); - tracing_impl_->Initialize(this); - g_has_tracing_service = true; - } - delegate_->Initialize(this); } diff --git a/mojo/mojo_base.gyp b/mojo/mojo_base.gyp index 9317698..9c308c6 100644 --- a/mojo/mojo_base.gyp +++ b/mojo/mojo_base.gyp @@ -241,14 +241,8 @@ 'application/public/cpp/lib/service_provider_impl.cc', 'application/public/cpp/lib/service_registry.cc', 'application/public/cpp/lib/service_registry.h', - 'application/public/cpp/lib/trace_provider_impl.cc', - 'application/public/cpp/lib/trace_provider_impl.h', - 'application/public/cpp/lib/tracing_impl.cc', - 'application/public/cpp/lib/tracing_impl.h', 'application/public/cpp/service_connector.h', 'application/public/cpp/service_provider_impl.h', - 'application/public/cpp/switches.cc', - 'application/public/cpp/switches.h', ], 'dependencies': [ 'mojo_application_bindings', @@ -262,7 +256,6 @@ 'dependencies': [ 'mojo_application_bindings_mojom', 'mojo_services.gyp:network_service_bindings_lib', - 'mojo_services.gyp:tracing_service_bindings_lib', '../third_party/mojo/mojo_public.gyp:mojo_cpp_bindings', ], 'export_dependent_settings': [ diff --git a/mojo/mojo_services.gyp b/mojo/mojo_services.gyp index 565f7dd..cb6c2fc 100644 --- a/mojo/mojo_services.gyp +++ b/mojo/mojo_services.gyp @@ -50,27 +50,6 @@ ], }, { - 'target_name': 'tracing_service_bindings_mojom', - 'type': 'none', - 'variables': { - 'mojom_files': [ - 'services/tracing/public/interfaces/tracing.mojom', - ], - 'mojom_include_path': '<(DEPTH)/mojo/services', - }, - 'includes': [ - '../third_party/mojo/mojom_bindings_generator_explicit.gypi', - ], - }, - { - # GN version: //mojo/services/tracing/public/interfaces - 'target_name': 'tracing_service_bindings_lib', - 'type': 'static_library', - 'dependencies': [ - 'tracing_service_bindings_mojom', - ], - }, - { 'target_name': 'updater_bindings_mojom', 'type': 'none', 'variables': { diff --git a/mojo/runner/BUILD.gn b/mojo/runner/BUILD.gn index 588e997..49efb46 100644 --- a/mojo/runner/BUILD.gn +++ b/mojo/runner/BUILD.gn @@ -135,6 +135,7 @@ source_set("lib") { "//mojo/runner/child:interfaces", "//mojo/runner/host:lib", "//mojo/services/network/public/interfaces", + "//mojo/services/tracing/public/cpp", "//mojo/services/tracing/public/interfaces", "//mojo/shell", "//mojo/util:filename_util", diff --git a/mojo/runner/context.cc b/mojo/runner/context.cc index 1a9dca6..a21323b 100644 --- a/mojo/runner/context.cc +++ b/mojo/runner/context.cc @@ -27,8 +27,6 @@ #include "mojo/application/public/cpp/application_connection.h" #include "mojo/application/public/cpp/application_delegate.h" #include "mojo/application/public/cpp/application_impl.h" -#include "mojo/application/public/cpp/lib/trace_provider_impl.h" -#include "mojo/application/public/cpp/switches.h" #include "mojo/package_manager/package_manager_impl.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/runner/host/in_process_native_runner.h" @@ -36,6 +34,9 @@ #include "mojo/runner/register_local_aliases.h" #include "mojo/runner/switches.h" #include "mojo/runner/tracer.h" +#include "mojo/services/tracing/public/cpp/switches.h" +#include "mojo/services/tracing/public/cpp/trace_provider_impl.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" #include "mojo/shell/application_loader.h" #include "mojo/shell/connect_to_application_params.h" @@ -192,12 +193,10 @@ bool Context::Init(const base::FilePath& shell_file_root) { bool trace_startup = command_line.HasSwitch(switches::kTraceStartup); if (trace_startup) { - std::string output_name = - command_line.GetSwitchValueASCII(mojo::kTraceStartupOutputName); tracer_.Start( command_line.GetSwitchValueASCII(switches::kTraceStartup), command_line.GetSwitchValueASCII(switches::kTraceStartupDuration), - output_name.empty() ? "mojo_runner.trace" : output_name); + "mojo_runner.trace"); } // ICU data is a thing every part of the system needs. This here warms @@ -250,7 +249,7 @@ bool Context::Init(const base::FilePath& shell_file_root) { params->set_exposed_services(tracing_exposed_services.Pass()); application_manager_->ConnectToApplication(params.Pass()); - if (command_line.HasSwitch(switches::kTraceStartup)) { + if (command_line.HasSwitch(tracing::kTraceStartup)) { tracing::TraceCollectorPtr coordinator; auto coordinator_request = GetProxy(&coordinator); tracing_services->ConnectToService(tracing::TraceCollector::Name_, @@ -260,7 +259,7 @@ bool Context::Init(const base::FilePath& shell_file_root) { // Record the shell startup metrics used for performance testing. if (base::CommandLine::ForCurrentProcess()->HasSwitch( - mojo::kEnableStatsCollectionBindings)) { + tracing::kEnableStatsCollectionBindings)) { tracing::StartupPerformanceDataCollectorPtr collector; tracing_services->ConnectToService( tracing::StartupPerformanceDataCollector::Name_, diff --git a/mojo/runner/tracer.h b/mojo/runner/tracer.h index 56ab7cc..6fd8b1c 100644 --- a/mojo/runner/tracer.h +++ b/mojo/runner/tracer.h @@ -12,8 +12,8 @@ #include "base/callback.h" #include "base/macros.h" #include "base/memory/ref_counted_memory.h" -#include "mojo/application/public/cpp/lib/trace_provider_impl.h" #include "mojo/common/data_pipe_drainer.h" +#include "mojo/services/tracing/public/cpp/trace_provider_impl.h" #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" namespace mojo { diff --git a/mojo/services/tracing/public/cpp/BUILD.gn b/mojo/services/tracing/public/cpp/BUILD.gn new file mode 100644 index 0000000..02eed11 --- /dev/null +++ b/mojo/services/tracing/public/cpp/BUILD.gn @@ -0,0 +1,21 @@ +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("cpp") { + sources = [ + "switches.cc", + "switches.h", + "trace_provider_impl.cc", + "trace_provider_impl.h", + "tracing_impl.cc", + "tracing_impl.h", + ] + + deps = [ + "//base", + "//mojo/application/public/cpp", + "//mojo/public/cpp/bindings", + "//mojo/services/tracing/public/interfaces", + ] +} diff --git a/mojo/application/public/cpp/switches.cc b/mojo/services/tracing/public/cpp/switches.cc index 102bd6f..1b838e6 100644 --- a/mojo/application/public/cpp/switches.cc +++ b/mojo/services/tracing/public/cpp/switches.cc @@ -2,9 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "mojo/application/public/cpp/switches.h" +#include "mojo/services/tracing/public/cpp/switches.h" -namespace mojo { +namespace tracing { // Specifies if the |StatsCollectionController| needs to be bound in html pages. // This binding happens on per-frame basis and hence can potentially be a @@ -15,11 +15,8 @@ const char kEnableStatsCollectionBindings[] = const char kTraceStartup[] = "trace-startup"; -// Sets the name of the output file for startup tracing. -const char kTraceStartupOutputName[] = "trace-startup-output-name"; - #ifdef NDEBUG const char kEarlyTracing[] = "early-tracing"; #endif -} // namespace mojo +} // namespace tracing diff --git a/mojo/application/public/cpp/switches.h b/mojo/services/tracing/public/cpp/switches.h index 0141e9a..8a1e512 100644 --- a/mojo/application/public/cpp/switches.h +++ b/mojo/services/tracing/public/cpp/switches.h @@ -2,17 +2,16 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef MOJO_APPLICATION_PUBLIC_CPP_SWITCHES_H_ -#define MOJO_APPLICATION_PUBLIC_CPP_SWITCHES_H_ +#ifndef MOJO_SERVICES_TRACING_PUBLIC_CPP_SWITCHES_H_ +#define MOJO_SERVICES_TRACING_PUBLIC_CPP_SWITCHES_H_ -namespace mojo { +namespace tracing { // All switches in alphabetical order. The switches should be documented // alongside the definition of their values in the .cc file. extern const char kEnableStatsCollectionBindings[]; extern const char kTraceStartup[]; -extern const char kTraceStartupOutputName[]; #ifdef NDEBUG // In release builds, specifying this flag will force reporting of tracing @@ -20,6 +19,6 @@ extern const char kTraceStartupOutputName[]; extern const char kEarlyTracing[]; #endif -} // namespace mojo +} // namespace tracing -#endif // MOJO_APPLICATION_PUBLIC_CPP_SWITCHES_H_ +#endif // MOJO_SERVICES_TRACING_PUBLIC_CPP_SWITCHES_H_ diff --git a/mojo/application/public/cpp/lib/trace_provider_impl.cc b/mojo/services/tracing/public/cpp/trace_provider_impl.cc index 3a325f5..877ae20 100644 --- a/mojo/application/public/cpp/lib/trace_provider_impl.cc +++ b/mojo/services/tracing/public/cpp/trace_provider_impl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "mojo/application/public/cpp/lib/trace_provider_impl.h" +#include "mojo/services/tracing/public/cpp/trace_provider_impl.h" #include "base/callback.h" #include "base/logging.h" diff --git a/mojo/application/public/cpp/lib/trace_provider_impl.h b/mojo/services/tracing/public/cpp/trace_provider_impl.h index 4b836ca..5774911 100644 --- a/mojo/application/public/cpp/lib/trace_provider_impl.h +++ b/mojo/services/tracing/public/cpp/trace_provider_impl.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACE_PROVIDER_IMPL_H_ -#define MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACE_PROVIDER_IMPL_H_ +#ifndef MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACE_PROVIDER_IMPL_H_ +#define MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACE_PROVIDER_IMPL_H_ #include "base/macros.h" #include "base/memory/ref_counted_memory.h" @@ -48,4 +48,4 @@ class TraceProviderImpl : public tracing::TraceProvider { } // namespace mojo -#endif // MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACE_PROVIDER_IMPL_H_ +#endif // MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACE_PROVIDER_IMPL_H_ diff --git a/mojo/application/public/cpp/lib/tracing_impl.cc b/mojo/services/tracing/public/cpp/tracing_impl.cc index 50b6b36..788cd31 100644 --- a/mojo/application/public/cpp/lib/tracing_impl.cc +++ b/mojo/services/tracing/public/cpp/tracing_impl.cc @@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "mojo/application/public/cpp/lib/tracing_impl.h" +#include "mojo/services/tracing/public/cpp/tracing_impl.h" #include "base/trace_event/trace_event_impl.h" #include "mojo/application/public/cpp/application_impl.h" #ifdef NDEBUG #include "base/command_line.h" -#include "mojo/application/public/cpp/switches.h" +#include "mojo/services/tracing/public/cpp/switches.h" #endif namespace mojo { @@ -27,7 +27,8 @@ void TracingImpl::Initialize(ApplicationImpl* app) { connection_->AddService(this); #ifdef NDEBUG - if (base::CommandLine::ForCurrentProcess()->HasSwitch(kEarlyTracing)) { + if (base::CommandLine::ForCurrentProcess()->HasSwitch( + tracing::kEarlyTracing)) { provider_impl_.ForceEnableTracing(); } #else diff --git a/mojo/application/public/cpp/lib/tracing_impl.h b/mojo/services/tracing/public/cpp/tracing_impl.h index 2bcafa0..648023f 100644 --- a/mojo/application/public/cpp/lib/tracing_impl.h +++ b/mojo/services/tracing/public/cpp/tracing_impl.h @@ -2,12 +2,12 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACING_IMPL_H_ -#define MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACING_IMPL_H_ +#ifndef MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACING_IMPL_H_ +#define MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACING_IMPL_H_ #include "base/macros.h" #include "mojo/application/public/cpp/interface_factory.h" -#include "mojo/application/public/cpp/lib/trace_provider_impl.h" +#include "mojo/services/tracing/public/cpp/trace_provider_impl.h" #include "mojo/services/tracing/public/interfaces/tracing.mojom.h" namespace mojo { @@ -37,4 +37,4 @@ class TracingImpl : public InterfaceFactory<tracing::TraceProvider> { } // namespace mojo -#endif // MOJO_APPLICATION_PUBLIC_CPP_LIB_TRACING_IMPL_H_ +#endif // MOJO_SERVICES_TRACING_PUBLIC_CPP_TRACING_IMPL_H_ diff --git a/mojo/shell/BUILD.gn b/mojo/shell/BUILD.gn index 5892d64b..8478000 100644 --- a/mojo/shell/BUILD.gn +++ b/mojo/shell/BUILD.gn @@ -101,7 +101,6 @@ test("mojo_shell_unittests") { "//mojo/package_manager", "//mojo/public/cpp/system", "//mojo/util:filename_util", - "//mojo/services/tracing:lib", "//third_party/mojo/src/mojo/edk/test:run_all_unittests", "//testing/gtest", "//url", diff --git a/mojo/shell/application_manager_unittest.cc b/mojo/shell/application_manager_unittest.cc index 2cc6b55..e13f616f 100644 --- a/mojo/shell/application_manager_unittest.cc +++ b/mojo/shell/application_manager_unittest.cc @@ -14,7 +14,6 @@ #include "mojo/application/public/cpp/interface_factory.h" #include "mojo/application/public/interfaces/service_provider.mojom.h" #include "mojo/public/cpp/bindings/strong_binding.h" -#include "mojo/services/tracing/tracing_app.h" #include "mojo/shell/application_loader.h" #include "mojo/shell/application_manager.h" #include "mojo/shell/connect_util.h" @@ -138,15 +137,6 @@ class TestApplicationLoader : public ApplicationLoader, DISALLOW_COPY_AND_ASSIGN(TestApplicationLoader); }; -class TracingApplicationLoader : public ApplicationLoader { - private: - // ApplicationLoader implementation. - void Load(const GURL& url, - InterfaceRequest<Application> application_request) override { - new ApplicationImpl(new tracing::TracingApp, application_request.Pass()); - } -}; - class ClosingApplicationLoader : public ApplicationLoader { private: // ApplicationLoader implementation. @@ -413,9 +403,6 @@ class ApplicationManagerTest : public testing::Test { test_loader_->set_context(&context_); application_manager_->set_default_loader( scoped_ptr<ApplicationLoader>(test_loader_)); - application_manager_->SetLoaderForURL( - make_scoped_ptr(new TracingApplicationLoader), - GURL("mojo:tracing")); TestServicePtr service_proxy; ConnectToService(application_manager_.get(), GURL(kTestURLString), |