diff options
author | groby@chromium.org <groby@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-23 00:25:18 +0000 |
---|---|---|
committer | groby@chromium.org <groby@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-23 00:25:18 +0000 |
commit | e28403a126a99d7795e84ce85660dbb515be8e06 (patch) | |
tree | 811a5991f4840d7133857a6dd5dee2fa4ee6a258 /content/browser/trace_controller.cc | |
parent | 99528bd9ca0fe1c976fdaf0ad4cf8ccbda3e4d90 (diff) | |
download | chromium_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.cc | 12 |
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() { |