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

Side by Side Diff: chrome/browser/feedback/tracing_manager.cc

Issue 23926004: Fix the output of chrome://slow so that is valid json (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 months 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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 "chrome/browser/feedback/tracing_manager.h" 5 #include "chrome/browser/feedback/tracing_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/prefs/pref_service.h" 8 #include "base/prefs/pref_service.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/feedback/feedback_util.h" 10 #include "chrome/browser/feedback/feedback_util.h"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 void TracingManager::StartTracing() { 86 void TracingManager::StartTracing() {
87 content::TraceController::GetInstance()->BeginTracing( 87 content::TraceController::GetInstance()->BeginTracing(
88 this, "-test_*", 88 this, "-test_*",
89 base::debug::TraceLog::RECORD_CONTINUOUSLY); 89 base::debug::TraceLog::RECORD_CONTINUOUSLY);
90 } 90 }
91 91
92 void TracingManager::OnEndTracingComplete() { 92 void TracingManager::OnEndTracingComplete() {
93 if (!current_trace_id_) 93 if (!current_trace_id_)
94 return; 94 return;
95 95
96 data_ = std::string("[") + data_ + "]";
97
96 std::string output_val; 98 std::string output_val;
97 feedback_util::ZipString(data_, &output_val); 99 feedback_util::ZipString(data_, &output_val);
98 100
99 scoped_refptr<base::RefCountedString> output( 101 scoped_refptr<base::RefCountedString> output(
100 base::RefCountedString::TakeString(&output_val)); 102 base::RefCountedString::TakeString(&output_val));
101 103
102 trace_data_[current_trace_id_] = output; 104 trace_data_[current_trace_id_] = output;
103 105
104 if (!trace_callback_.is_null()) { 106 if (!trace_callback_.is_null()) {
105 trace_callback_.Run(output); 107 trace_callback_.Run(output);
106 trace_callback_.Reset(); 108 trace_callback_.Reset();
107 } 109 }
108 110
109 current_trace_id_ = 0; 111 current_trace_id_ = 0;
110 data_ = ""; 112 data_ = "";
111 113
112 // Tracing has to be restarted asynchronous, so the TracingController can 114 // Tracing has to be restarted asynchronous, so the TracingController can
113 // clean up. 115 // clean up.
114 base::MessageLoopProxy::current()->PostTask( 116 base::MessageLoopProxy::current()->PostTask(
115 FROM_HERE, 117 FROM_HERE,
116 base::Bind(&TracingManager::StartTracing, 118 base::Bind(&TracingManager::StartTracing,
117 weak_ptr_factory_.GetWeakPtr())); 119 weak_ptr_factory_.GetWeakPtr()));
118 } 120 }
119 121
120 void TracingManager::OnTraceDataCollected( 122 void TracingManager::OnTraceDataCollected(
121 const scoped_refptr<base::RefCountedString>& trace_fragment) { 123 const scoped_refptr<base::RefCountedString>& trace_fragment) {
122 if (current_trace_id_) 124 if (current_trace_id_) {
125 if (!data_.empty())
126 data_ += ",";
123 data_ += trace_fragment->data(); 127 data_ += trace_fragment->data();
128 }
124 } 129 }
125 130
126 // static 131 // static
127 scoped_ptr<TracingManager> TracingManager::Create() { 132 scoped_ptr<TracingManager> TracingManager::Create() {
128 if (g_tracing_manager) 133 if (g_tracing_manager)
129 return scoped_ptr<TracingManager>(); 134 return scoped_ptr<TracingManager>();
130 return scoped_ptr<TracingManager>(new TracingManager()); 135 return scoped_ptr<TracingManager>(new TracingManager());
131 } 136 }
132 137
133 TracingManager* TracingManager::Get() { 138 TracingManager* TracingManager::Get() {
134 return g_tracing_manager; 139 return g_tracing_manager;
135 } 140 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698