summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg <erg@chromium.org>2015-11-18 10:55:05 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-18 18:56:15 +0000
commit4706d070db1dde84a3bd94ce73c4545949439fbe (patch)
tree813ac54115c1ed36a74948e4bc48747e2e5e53c0
parent17ec244eb92d303b49b3f89eace52ac38d3698d5 (diff)
downloadchromium_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}
-rw-r--r--components/html_viewer/BUILD.gn1
-rw-r--r--components/html_viewer/global_state.cc2
-rw-r--r--components/html_viewer/global_state.h3
-rw-r--r--components/html_viewer/stats_collection_controller.cc8
-rw-r--r--components/mus/BUILD.gn1
-rw-r--r--components/mus/mus_app.cc1
-rw-r--r--components/mus/mus_app.h1
-rw-r--r--components/mus/surfaces/BUILD.gn1
-rw-r--r--components/mus/ws/BUILD.gn1
-rw-r--r--components/pdf_viewer/BUILD.gn1
-rw-r--r--components/pdf_viewer/pdf_viewer.cc7
-rw-r--r--mandoline/services/core_services/BUILD.gn1
-rw-r--r--mandoline/services/core_services/core_services_application_delegate.cc2
-rw-r--r--mandoline/services/core_services/core_services_application_delegate.h2
-rw-r--r--mandoline/ui/desktop_ui/BUILD.gn1
-rw-r--r--mandoline/ui/desktop_ui/browser_window.cc4
-rw-r--r--mojo/application/public/cpp/BUILD.gn7
-rw-r--r--mojo/application/public/cpp/application_impl.h3
-rw-r--r--mojo/application/public/cpp/lib/application_impl.cc20
-rw-r--r--mojo/mojo_base.gyp7
-rw-r--r--mojo/mojo_services.gyp21
-rw-r--r--mojo/runner/BUILD.gn1
-rw-r--r--mojo/runner/context.cc13
-rw-r--r--mojo/runner/tracer.h2
-rw-r--r--mojo/services/tracing/public/cpp/BUILD.gn21
-rw-r--r--mojo/services/tracing/public/cpp/switches.cc (renamed from mojo/application/public/cpp/switches.cc)9
-rw-r--r--mojo/services/tracing/public/cpp/switches.h (renamed from mojo/application/public/cpp/switches.h)11
-rw-r--r--mojo/services/tracing/public/cpp/trace_provider_impl.cc (renamed from mojo/application/public/cpp/lib/trace_provider_impl.cc)2
-rw-r--r--mojo/services/tracing/public/cpp/trace_provider_impl.h (renamed from mojo/application/public/cpp/lib/trace_provider_impl.h)6
-rw-r--r--mojo/services/tracing/public/cpp/tracing_impl.cc (renamed from mojo/application/public/cpp/lib/tracing_impl.cc)7
-rw-r--r--mojo/services/tracing/public/cpp/tracing_impl.h (renamed from mojo/application/public/cpp/lib/tracing_impl.h)8
-rw-r--r--mojo/shell/BUILD.gn1
-rw-r--r--mojo/shell/application_manager_unittest.cc13
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),