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

Unified Diff: components/browser_watcher/stability_report_user_stream_data_source.cc

Issue 2910003002: Stability instrumentation: metrics for collection on crash (Closed)
Patch Set: address rkaplow comments Created 3 years, 7 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
« no previous file with comments | « components/browser_watcher/stability_paths.cc ('k') | tools/metrics/histograms/enums.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/browser_watcher/stability_report_user_stream_data_source.cc
diff --git a/components/browser_watcher/stability_report_user_stream_data_source.cc b/components/browser_watcher/stability_report_user_stream_data_source.cc
index 62fdf2235edd63531b4c6d53b8985b846af9632d..5dab22a842cd4694646a4450b79849b8490c05b3 100644
--- a/components/browser_watcher/stability_report_user_stream_data_source.cc
+++ b/components/browser_watcher/stability_report_user_stream_data_source.cc
@@ -14,6 +14,7 @@
#include "base/strings/string16.h"
#include "base/time/time.h"
#include "components/browser_watcher/minidump_user_streams.h"
+#include "components/browser_watcher/stability_metrics.h"
#include "components/browser_watcher/stability_paths.h"
#include "components/browser_watcher/stability_report_extractor.h"
#include "third_party/crashpad/crashpad/minidump/minidump_user_extension_stream_data_source.h"
@@ -73,6 +74,8 @@ bool BufferExtensionStreamDataSource::ReadStreamData(Delegate* delegate) {
data_.size() ? data_.data() : nullptr, data_.size());
}
+// TODO(manzagop): Collection should factor in whether this is a true crash or
+// dump without crashing.
std::unique_ptr<BufferExtensionStreamDataSource> CollectReport(
const base::FilePath& path) {
StabilityReport report;
@@ -81,20 +84,17 @@ std::unique_ptr<BufferExtensionStreamDataSource> CollectReport(
COLLECTION_STATUS_MAX);
if (status != SUCCESS)
return nullptr;
+ LogCollectOnCrashEvent(CollectOnCrashEvent::kReportExtractionSuccess);
- // Open (with delete) and then immediately close the file by going out of
- // scope. This should cause the stability debugging file to be deleted prior
- // to the next execution.
- // TODO(manzagop): set the persistent allocator file's state to deleted in
- // case the file can't be deleted.
- base::File file(path, base::File::FLAG_OPEN | base::File::FLAG_READ |
- base::File::FLAG_DELETE_ON_CLOSE);
- UMA_HISTOGRAM_BOOLEAN("ActivityTracker.CollectCrash.OpenForDeleteSuccess",
- file.IsValid());
+ MarkStabilityFileDeletedOnCrash(path);
std::unique_ptr<BufferExtensionStreamDataSource> source(
new BufferExtensionStreamDataSource(kStabilityReportStreamType));
- return source->Init(report) ? std::move(source) : nullptr;
+ if (!source->Init(report))
+ return nullptr;
+
+ LogCollectOnCrashEvent(CollectOnCrashEvent::kSuccess);
+ return source;
}
} // namespace
@@ -107,9 +107,11 @@ std::unique_ptr<crashpad::MinidumpUserExtensionStreamDataSource>
StabilityReportUserStreamDataSource::ProduceStreamData(
crashpad::ProcessSnapshot* process_snapshot) {
DCHECK(process_snapshot);
+ LogCollectOnCrashEvent(CollectOnCrashEvent::kCollectAttempt);
if (user_data_dir_.empty())
return nullptr;
+ LogCollectOnCrashEvent(CollectOnCrashEvent::kUserDataDirNotEmpty);
base::FilePath stability_file =
GetStabilityFileName(user_data_dir_, process_snapshot);
@@ -118,6 +120,7 @@ StabilityReportUserStreamDataSource::ProduceStreamData(
// processes can be instrumented), or the stability file cannot be found.
return nullptr;
}
+ LogCollectOnCrashEvent(CollectOnCrashEvent::kPathExists);
return CollectReport(stability_file);
}
« no previous file with comments | « components/browser_watcher/stability_paths.cc ('k') | tools/metrics/histograms/enums.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698