summaryrefslogtreecommitdiffstats
path: root/content/browser/trace_subscriber_stdio.cc
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 04:47:40 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 04:47:40 +0000
commit3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2 (patch)
tree1d4bf98014910289bd964f47fdc41bbd70aa8e88 /content/browser/trace_subscriber_stdio.cc
parentd92620b4d1aca5ba1afb217c313239ddfd8a0f69 (diff)
downloadchromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.zip
chromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.tar.gz
chromium_src-3a85b1f23e82eff120d6f7d28e94fbd85a3c7dc2.tar.bz2
Move tracing code in content\browser to content\browser\tracing now that there's a separate directory.
BUG=169170 Review URL: https://codereview.chromium.org/12149003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180071 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/trace_subscriber_stdio.cc')
-rw-r--r--content/browser/trace_subscriber_stdio.cc104
1 files changed, 0 insertions, 104 deletions
diff --git a/content/browser/trace_subscriber_stdio.cc b/content/browser/trace_subscriber_stdio.cc
deleted file mode 100644
index 05ebaba..0000000
--- a/content/browser/trace_subscriber_stdio.cc
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "content/browser/trace_subscriber_stdio.h"
-
-#include "base/bind.h"
-#include "base/debug/trace_event.h"
-#include "base/logging.h"
-#include "base/threading/sequenced_worker_pool.h"
-#include "content/public/browser/browser_thread.h"
-
-namespace content {
-
-// All method calls on this class are done on a SequencedWorkerPool thread.
-class TraceSubscriberStdioImpl
- : public base::RefCountedThreadSafe<TraceSubscriberStdioImpl> {
- public:
- explicit TraceSubscriberStdioImpl(const FilePath& path)
- : path_(path),
- file_(0) {}
-
- void OnStart() {
- DCHECK(!file_);
- trace_buffer_.SetOutputCallback(
- base::Bind(&TraceSubscriberStdioImpl::Write, this));
- file_ = file_util::OpenFile(path_, "w+");
- if (IsValid()) {
- LOG(INFO) << "Logging performance trace to file: " << path_.value();
- trace_buffer_.Start();
- } else {
- LOG(ERROR) << "Failed to open performance trace file: " << path_.value();
- }
- }
-
- void OnData(const scoped_refptr<base::RefCountedString>& data_ptr) {
- trace_buffer_.AddFragment(data_ptr->data());
- }
-
- void OnEnd() {
- trace_buffer_.Finish();
- CloseFile();
- }
-
- private:
- friend class base::RefCountedThreadSafe<TraceSubscriberStdioImpl>;
-
- ~TraceSubscriberStdioImpl() {
- CloseFile();
- }
-
- bool IsValid() const {
- return file_ && (0 == ferror(file_));
- }
-
- void CloseFile() {
- if (file_) {
- fclose(file_);
- file_ = 0;
- }
- // This is important, as it breaks a reference cycle.
- trace_buffer_.SetOutputCallback(
- base::debug::TraceResultBuffer::OutputCallback());
- }
-
- void Write(const std::string& output_str) {
- if (IsValid()) {
- size_t written = fwrite(output_str.data(), 1, output_str.size(), file_);
- if (written != output_str.size()) {
- LOG(ERROR) << "Error " << ferror(file_) << " in fwrite() to trace file";
- CloseFile();
- }
- }
- }
-
- FilePath path_;
- FILE* file_;
- base::debug::TraceResultBuffer trace_buffer_;
-};
-
-TraceSubscriberStdio::TraceSubscriberStdio(const FilePath& path)
- : impl_(new TraceSubscriberStdioImpl(path)) {
- BrowserThread::PostBlockingPoolSequencedTask(
- __FILE__, FROM_HERE,
- base::Bind(&TraceSubscriberStdioImpl::OnStart, impl_));
-}
-
-TraceSubscriberStdio::~TraceSubscriberStdio() {
-}
-
-void TraceSubscriberStdio::OnEndTracingComplete() {
- BrowserThread::PostBlockingPoolSequencedTask(
- __FILE__, FROM_HERE,
- base::Bind(&TraceSubscriberStdioImpl::OnEnd, impl_));
-}
-
-void TraceSubscriberStdio::OnTraceDataCollected(
- const scoped_refptr<base::RefCountedString>& data_ptr) {
- BrowserThread::PostBlockingPoolSequencedTask(
- __FILE__, FROM_HERE,
- base::Bind(&TraceSubscriberStdioImpl::OnData, impl_, data_ptr));
-}
-
-} // namespace content