summaryrefslogtreecommitdiffstats
path: root/content/browser/browser_main_runner.cc
diff options
context:
space:
mode:
authorzhenw <zhenw@chromium.org>2015-08-28 11:27:27 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-28 18:28:03 +0000
commita556ab616a3817468a9bd2163383dafe24ffdc96 (patch)
treeea722d7b11444d8c55670b0f4050b5b119a1d2a0 /content/browser/browser_main_runner.cc
parentbf26ad06a881447f15340a19c4e311b83268ab38 (diff)
downloadchromium_src-a556ab616a3817468a9bd2163383dafe24ffdc96.zip
chromium_src-a556ab616a3817468a9bd2163383dafe24ffdc96.tar.gz
chromium_src-a556ab616a3817468a9bd2163383dafe24ffdc96.tar.bz2
Reland [Startup Tracing] Add --trace-config-file flag
Original CL: https://codereview.chromium.org/1315463002/ This CL adds --trace-config-file flag. Please see trace_config_file.h for details. Design doc: https://docs.google.com/document/d/1PgdXUOJF3WtEmYWUyGRbC2Fz2ICCZKO9jPvpLPRSHH8/edit?usp=sharing BUG=317481, 482098 TBR=dsinclair@chromium.org,blundell@chromium.org,sievers@chromium.org,sky@chromium.org,msw@chromium.org Review URL: https://codereview.chromium.org/1317333002 Cr-Commit-Position: refs/heads/master@{#346189}
Diffstat (limited to 'content/browser/browser_main_runner.cc')
-rw-r--r--content/browser/browser_main_runner.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/content/browser/browser_main_runner.cc b/content/browser/browser_main_runner.cc
index d7575f6..5b2f7f5 100644
--- a/content/browser/browser_main_runner.cc
+++ b/content/browser/browser_main_runner.cc
@@ -14,14 +14,20 @@
#include "base/profiler/scoped_tracker.h"
#include "base/trace_event/trace_event.h"
#include "base/tracked_objects.h"
+#include "components/tracing/trace_config_file.h"
#include "components/tracing/tracing_switches.h"
#include "content/browser/browser_main_loop.h"
#include "content/browser/browser_shutdown_profile_dumper.h"
#include "content/browser/notification_service_impl.h"
+#include "content/public/browser/tracing_controller.h"
#include "content/public/common/content_switches.h"
#include "content/public/common/main_function_params.h"
#include "ui/base/ime/input_method_initializer.h"
+#if defined(OS_ANDROID)
+#include "content/browser/android/tracing_controller_android.h"
+#endif
+
#if defined(OS_WIN)
#include "base/win/win_util.h"
#include "base/win/windows_version.h"
@@ -229,14 +235,26 @@ class BrowserMainRunnerImpl : public BrowserMainRunner {
// If startup tracing has not been finished yet, replace it's dumper
// with special version, which would save trace file on exit (i.e.
// startup tracing becomes a version of shutdown tracing).
+ // There are two cases:
+ // 1. Startup duration is not reached.
+ // 2. Or startup duration is not specified for --trace-config-file flag.
scoped_ptr<BrowserShutdownProfileDumper> startup_profiler;
- if (main_loop_->is_tracing_startup()) {
+ if (main_loop_->is_tracing_startup_for_duration()) {
main_loop_->StopStartupTracingTimer();
if (main_loop_->startup_trace_file() !=
base::FilePath().AppendASCII("none")) {
startup_profiler.reset(
new BrowserShutdownProfileDumper(main_loop_->startup_trace_file()));
}
+ } else if (tracing::TraceConfigFile::GetInstance()->IsEnabled() &&
+ TracingController::GetInstance()->IsRecording()) {
+ base::FilePath result_file;
+#if defined(OS_ANDROID)
+ TracingControllerAndroid::GenerateTracingFilePath(&result_file);
+#else
+ result_file = tracing::TraceConfigFile::GetInstance()->GetResultFile();
+#endif
+ startup_profiler.reset(new BrowserShutdownProfileDumper(result_file));
}
// The shutdown tracing got enabled in AttemptUserExit earlier, but someone