OLD | NEW |
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 "content/browser/browser_shutdown_profile_dumper.h" | 5 #include "content/browser/browser_shutdown_profile_dumper.h" |
6 | 6 |
7 #include "base/base_switches.h" | 7 #include "base/base_switches.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/debug/trace_event_impl.h" | 10 #include "base/debug/trace_event_impl.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 void BrowserShutdownProfileDumper::WriteTracesToDisc( | 30 void BrowserShutdownProfileDumper::WriteTracesToDisc( |
31 const base::FilePath& file_name) { | 31 const base::FilePath& file_name) { |
32 // Note: I have seen a usage of 0.000xx% when dumping - which fits easily. | 32 // Note: I have seen a usage of 0.000xx% when dumping - which fits easily. |
33 // Since the tracer stops when the trace buffer is filled, we'd rather save | 33 // Since the tracer stops when the trace buffer is filled, we'd rather save |
34 // what we have than nothing since we might see from the amount of events | 34 // what we have than nothing since we might see from the amount of events |
35 // that caused the problem. | 35 // that caused the problem. |
36 DVLOG(1) << "Flushing shutdown traces to disc. The buffer is %" << | 36 DVLOG(1) << "Flushing shutdown traces to disc. The buffer is %" << |
37 base::debug::TraceLog::GetInstance()->GetBufferPercentFull() << | 37 base::debug::TraceLog::GetInstance()->GetBufferPercentFull() << |
38 " full."; | 38 " full."; |
39 DCHECK(!dump_file_); | 39 DCHECK(!dump_file_); |
40 dump_file_ = base::OpenFile(file_name, "w+"); | 40 dump_file_ = file_util::OpenFile(file_name, "w+"); |
41 if (!IsFileValid()) { | 41 if (!IsFileValid()) { |
42 LOG(ERROR) << "Failed to open performance trace file: " << | 42 LOG(ERROR) << "Failed to open performance trace file: " << |
43 file_name.value(); | 43 file_name.value(); |
44 return; | 44 return; |
45 } | 45 } |
46 WriteString("{\"traceEvents\":"); | 46 WriteString("{\"traceEvents\":"); |
47 WriteString("["); | 47 WriteString("["); |
48 | 48 |
49 // TraceLog::Flush() requires the calling thread to have a message loop. | 49 // TraceLog::Flush() requires the calling thread to have a message loop. |
50 // As the message loop of the current thread may have quit, start another | 50 // As the message loop of the current thread may have quit, start another |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
124 if (written != size) { | 124 if (written != size) { |
125 LOG(ERROR) << "Error " << ferror(dump_file_) << | 125 LOG(ERROR) << "Error " << ferror(dump_file_) << |
126 " in fwrite() to trace file"; | 126 " in fwrite() to trace file"; |
127 CloseFile(); | 127 CloseFile(); |
128 } | 128 } |
129 } | 129 } |
130 | 130 |
131 void BrowserShutdownProfileDumper::CloseFile() { | 131 void BrowserShutdownProfileDumper::CloseFile() { |
132 if (!dump_file_) | 132 if (!dump_file_) |
133 return; | 133 return; |
134 base::CloseFile(dump_file_); | 134 file_util::CloseFile(dump_file_); |
135 dump_file_ = NULL; | 135 dump_file_ = NULL; |
136 } | 136 } |
137 | 137 |
138 } // namespace content | 138 } // namespace content |
OLD | NEW |