Index: components/browser_watcher/stability_report.proto |
diff --git a/components/browser_watcher/stability_report.proto b/components/browser_watcher/stability_report.proto |
new file mode 100644 |
index 0000000000000000000000000000000000000000..74f886f39d8481c31ebba73d5057491ebe94ecb0 |
--- /dev/null |
+++ b/components/browser_watcher/stability_report.proto |
@@ -0,0 +1,76 @@ |
+// Copyright 2016 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. |
+ |
+syntax = "proto2"; |
+ |
+option optimize_for = LITE_RUNTIME; |
+ |
+package browser_watcher; |
+ |
+// The state of the system on which Chrome is running (shutting down, battery |
+// level, load, etc.). |
+message SystemState { |
+ // TODO(manzagop): flesh out. |
+} |
+ |
+message CodeModule { |
+ // The base address of this code module as it was loaded by the process. |
+ optional int64 base_address = 1; |
+ |
+ // The size of the code module. |
+ optional int64 size = 2; |
+ |
+ // The path or file name that the code module was loaded from. |
+ optional string code_file = 3; |
+ |
+ // An identifying string used to discriminate between multiple versions and |
+ // builds of the same code module. This may contain a uuid, timestamp, |
+ // version number, or any combination of this or other information, in an |
+ // implementation-defined format. |
+ optional string code_identifier = 4; |
+ |
+ // The filename containing debugging information associated with the code |
+ // module. If debugging information is stored in a file separate from the |
+ // code module itself (as is the case when .pdb or .dSYM files are used), |
+ // this will be different from code_file. If debugging information is |
+ // stored in the code module itself (possibly prior to stripping), this |
+ // will be the same as code_file. |
+ optional string debug_file = 5; |
+ |
+ // An identifying string similar to code_identifier, but identifies a |
+ // specific version and build of the associated debug file. This may be |
+ // the same as code_identifier when the debug_file and code_file are |
+ // identical or when the same identifier is used to identify distinct |
+ // debug and code files. |
+ optional string debug_identifier = 6; |
+ |
+ // A human-readable representation of the code module's version. |
+ optional string version = 7; |
+} |
+ |
+// The state of a thread. |
+message ThreadState { |
+ optional string thread_name = 1; |
+ // TODO(manzagop): flesh out. |
+} |
+ |
+// The state of a process. |
+message ProcessState { |
+ repeated CodeModule modules = 1; |
+ repeated ThreadState threads = 2; |
+ // TODO(manzagop): add experiment state. |
+} |
+ |
+// A stability report contains information pertaining to the execution of a |
+// single logical instance of a "chrome browser". It it comprised of information |
+// about the system state and about the chrome browser's processes. |
+message StabilityReport { |
+ optional SystemState system_state = 1; |
+ // TODO(manzagop): revisit whether a single repeated field should contain all |
+ // processes, or whether it's preferable to have separate fields per type. |
+ // TODO(manzagop): add information about the type of process, pid, process |
+ // times (e.g. start time), hierarchical relationships (e.g. parent pid), |
+ // command line, etc. |
+ repeated ProcessState process_states = 2; |
+} |