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

Unified Diff: base/files/file.cc

Issue 1072133006: Add granular file tracing. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@do-initialize
Patch Set: win fixes Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: base/files/file.cc
diff --git a/base/files/file.cc b/base/files/file.cc
index 8030bf13734e8a6b20bfe4f8f45ccc738885e075..f5bd406f3b41fc305100bdcabbd3f6bc6ba016ad 100644
--- a/base/files/file.cc
+++ b/base/files/file.cc
@@ -4,8 +4,8 @@
#include "base/files/file.h"
#include "base/files/file_path.h"
+#include "base/files/file_tracing.h"
#include "base/metrics/histogram.h"
-#include "base/timer/elapsed_timer.h"
namespace base {
@@ -22,14 +22,14 @@ File::File()
: error_details_(FILE_ERROR_FAILED),
created_(false),
async_(false) {
+ FILE_TRACING_BEGIN();
oystein (OOO til 10th of July) 2015/05/01 18:21:05 It could be cleaner to do these BEGIN/END calls in
Dan Beam 2015/05/01 23:29:04 Done.
}
#if !defined(OS_NACL)
-File::File(const FilePath& name, uint32 flags)
- : error_details_(FILE_OK),
- created_(false),
- async_(false) {
- Initialize(name, flags);
+File::File(const FilePath& path, uint32 flags)
+ : error_details_(FILE_OK), created_(false), async_(false) {
+ FILE_TRACING_BEGIN();
+ Initialize(path, flags);
}
#endif
@@ -41,30 +41,36 @@ File::File(PlatformFile platform_file)
#if defined(OS_POSIX)
DCHECK_GE(platform_file, -1);
#endif
+ FILE_TRACING_BEGIN();
}
File::File(Error error_details)
: error_details_(error_details),
created_(false),
async_(false) {
+ FILE_TRACING_BEGIN();
}
File::File(RValue other)
: file_(other.object->TakePlatformFile()),
+ unsafe_path_(other.object->unsafe_path_),
error_details_(other.object->error_details()),
created_(other.object->created()),
async_(other.object->async_) {
+ FILE_TRACING_BEGIN();
}
File::~File() {
// Go through the AssertIOAllowed logic.
Close();
+ FILE_TRACING_END();
}
File& File::operator=(RValue other) {
if (this != other.object) {
Close();
SetPlatformFile(other.object->TakePlatformFile());
+ unsafe_path_ = other.object->unsafe_path_;
error_details_ = other.object->error_details();
created_ = other.object->created();
async_ = other.object->async_;
@@ -73,12 +79,14 @@ File& File::operator=(RValue other) {
}
#if !defined(OS_NACL)
-void File::Initialize(const FilePath& name, uint32 flags) {
- if (name.ReferencesParent()) {
+void File::Initialize(const FilePath& path, uint32 flags) {
+ unsafe_path_ = path;
oystein (OOO til 10th of July) 2015/05/01 18:15:31 What's the reason for setting this here, instead o
Dan Beam 2015/05/01 23:29:04 Done. (originally my rationale was: it'd be weird
+ if (unsafe_path_.ReferencesParent()) {
error_details_ = FILE_ERROR_ACCESS_DENIED;
return;
}
- DoInitialize(name, flags);
+ SCOPED_FILE_TRACE("Initialize");
+ DoInitialize(flags);
}
#endif
@@ -126,11 +134,4 @@ std::string File::ErrorToString(Error error) {
return "";
}
-bool File::Flush() {
- ElapsedTimer timer;
- bool return_value = DoFlush();
- UMA_HISTOGRAM_TIMES("PlatformFile.FlushTime", timer.Elapsed());
- return return_value;
-}
-
} // namespace base
« no previous file with comments | « base/files/file.h ('k') | base/files/file_posix.cc » ('j') | base/files/file_tracing.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698