OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 syntax = "proto2"; |
| 6 |
| 7 option optimize_for = LITE_RUNTIME; |
| 8 |
| 9 package browser_watcher; |
| 10 |
| 11 // The state of the system on which Chrome is running (shutting down, battery |
| 12 // level, load, etc.). |
| 13 message SystemState { |
| 14 // TODO(manzagop): flesh out. |
| 15 } |
| 16 |
| 17 message CodeModule { |
| 18 // The base address of this code module as it was loaded by the process. |
| 19 optional int64 base_address = 1; |
| 20 |
| 21 // The size of the code module. |
| 22 optional int64 size = 2; |
| 23 |
| 24 // The path or file name that the code module was loaded from. |
| 25 optional string code_file = 3; |
| 26 |
| 27 // An identifying string used to discriminate between multiple versions and |
| 28 // builds of the same code module. This may contain a uuid, timestamp, |
| 29 // version number, or any combination of this or other information, in an |
| 30 // implementation-defined format. |
| 31 optional string code_identifier = 4; |
| 32 |
| 33 // The filename containing debugging information associated with the code |
| 34 // module. If debugging information is stored in a file separate from the |
| 35 // code module itself (as is the case when .pdb or .dSYM files are used), |
| 36 // this will be different from code_file. If debugging information is |
| 37 // stored in the code module itself (possibly prior to stripping), this |
| 38 // will be the same as code_file. |
| 39 optional string debug_file = 5; |
| 40 |
| 41 // An identifying string similar to code_identifier, but identifies a |
| 42 // specific version and build of the associated debug file. This may be |
| 43 // the same as code_identifier when the debug_file and code_file are |
| 44 // identical or when the same identifier is used to identify distinct |
| 45 // debug and code files. |
| 46 optional string debug_identifier = 6; |
| 47 |
| 48 // A human-readable representation of the code module's version. |
| 49 optional string version = 7; |
| 50 } |
| 51 |
| 52 // The state of a thread. |
| 53 message ThreadState { |
| 54 optional string thread_name = 1; |
| 55 // TODO(manzagop): flesh out. |
| 56 } |
| 57 |
| 58 // The state of a process. |
| 59 message ProcessState { |
| 60 repeated CodeModule modules = 1; |
| 61 repeated ThreadState threads = 2; |
| 62 // TODO(manzagop): add experiment state. |
| 63 } |
| 64 |
| 65 // A stability report contains information pertaining to the execution of a |
| 66 // single logical instance of a "chrome browser". It it comprised of information |
| 67 // about the system state and about the chrome browser's processes. |
| 68 message StabilityReport { |
| 69 optional SystemState system_state = 1; |
| 70 // TODO(manzagop): revisit whether a single repeated field should contain all |
| 71 // processes, or whether it's preferable to have separate fields per type. |
| 72 // TODO(manzagop): add information about the type of process, pid, process |
| 73 // times (e.g. start time), hierarchical relationships (e.g. parent pid), |
| 74 // command line, etc. |
| 75 repeated ProcessState process_states = 2; |
| 76 } |
OLD | NEW |