summaryrefslogtreecommitdiffstats
path: root/content/browser/trace_controller.cc
diff options
context:
space:
mode:
authorgroby@chromium.org <groby@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-23 00:25:18 +0000
committergroby@chromium.org <groby@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-23 00:25:18 +0000
commite28403a126a99d7795e84ce85660dbb515be8e06 (patch)
tree811a5991f4840d7133857a6dd5dee2fa4ee6a258 /content/browser/trace_controller.cc
parent99528bd9ca0fe1c976fdaf0ad4cf8ccbda3e4d90 (diff)
downloadchromium_src-e28403a126a99d7795e84ce85660dbb515be8e06.zip
chromium_src-e28403a126a99d7795e84ce85660dbb515be8e06.tar.gz
chromium_src-e28403a126a99d7795e84ce85660dbb515be8e06.tar.bz2
Revert 123140 - Use SequencedWorkerPool for disk operations in TraceSubscriberStdio.
Reverted since it causes compile failure on Win/Aura. (scoped_refptr of TraceSubscriberStdioImpl which is only forward-declared) This class was hitting a ThreadRestrictions assert because it called OpenFile on the UI thread. To reduce unnecessary copying, I've changed the OnTraceDataCollected argument from std::string to RefCountedString. BUG=None TEST=content_unittests Review URL: http://codereview.chromium.org/9333003 TBR=husky@chromium.org Review URL: https://chromiumcodereview.appspot.com/9447003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/trace_controller.cc')
-rw-r--r--content/browser/trace_controller.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/content/browser/trace_controller.cc b/content/browser/trace_controller.cc
index 41770cd..c7e570d 100644
--- a/content/browser/trace_controller.cc
+++ b/content/browser/trace_controller.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -20,7 +20,7 @@ using content::BrowserThread;
namespace {
-class AutoStopTraceSubscriberStdio : public content::TraceSubscriberStdio {
+class AutoStopTraceSubscriberStdio : public TraceSubscriberStdio {
public:
AutoStopTraceSubscriberStdio(const FilePath& file_path)
: TraceSubscriberStdio(file_path) {}
@@ -86,6 +86,10 @@ void TraceController::InitStartupTracing(const CommandLine& command_line) {
scoped_ptr<AutoStopTraceSubscriberStdio> subscriber(
new AutoStopTraceSubscriberStdio(trace_file));
DCHECK(can_begin_tracing(subscriber.get()));
+ if (!subscriber->IsValid()) {
+ TraceLog::GetInstance()->SetDisabled();
+ return;
+ }
std::string delay_str = command_line.GetSwitchValueASCII(
switches::kTraceStartupDuration);
@@ -310,7 +314,7 @@ void TraceController::OnEndTracingAck(
}
void TraceController::OnTraceDataCollected(
- const scoped_refptr<base::RefCountedString>& events_str_ptr) {
+ const scoped_refptr<TraceLog::RefCountedString>& events_str_ptr) {
// OnTraceDataCollected may be called from any browser thread, either by the
// local event trace system or from child processes via TraceMessageFilter.
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) {
@@ -322,7 +326,7 @@ void TraceController::OnTraceDataCollected(
// Drop trace events if we are just getting categories.
if (subscriber_ && !is_get_categories_)
- subscriber_->OnTraceDataCollected(events_str_ptr);
+ subscriber_->OnTraceDataCollected(events_str_ptr->data);
}
void TraceController::OnTraceBufferFull() {