OLD | NEW |
---|---|
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 2 # Copyright 2014 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Scans the Chromium source of UseCounter, formats the Feature enum for | 6 """Scans the Chromium source of UseCounter, formats the Feature enum for |
7 histograms.xml and merges it. This script can also generate a python code | 7 histograms.xml and merges it. This script can also generate a python code |
8 snippet to put in uma.py of Chromium Dashboard. Make sure that you review the | 8 snippet to put in uma.py of Chromium Dashboard. Make sure that you review the |
9 output for correctness. | 9 output for correctness. |
10 """ | 10 """ |
11 | 11 |
12 import optparse | 12 import optparse |
13 import os | 13 import os |
14 import sys | 14 import sys |
15 | 15 |
16 sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) | 16 import update_histogram_enum |
Ilya Sherman
2015/05/27 00:12:24
Why is this line no longer needed? I believe that
ncarter (slow)
2015/05/29 23:01:10
This statement would allow a script in tools/metri
| |
17 from update_histogram_enum import ReadHistogramValues | |
18 from update_histogram_enum import UpdateHistogramEnum | |
19 | 17 |
20 | 18 |
21 def PrintEnumForDashboard(enum_dict): | 19 def PrintEnumForDashboard(enum_dict): |
22 """Prints enum_items formatted for use in uma.py of Chromium dashboard.""" | 20 """Prints enum_items formatted for use in uma.py of Chromium dashboard.""" |
23 for key in sorted(enum_dict.iterkeys()): | 21 for key in sorted(enum_dict.iterkeys()): |
24 print ' %d: \'%s\',' % (key, enum_dict[key]) | 22 print ' %d: \'%s\',' % (key, enum_dict[key]) |
25 | 23 |
26 | 24 |
27 if __name__ == '__main__': | 25 if __name__ == '__main__': |
28 parser = optparse.OptionParser() | 26 parser = optparse.OptionParser() |
29 parser.add_option('--for-dashboard', action='store_true', dest='dashboard', | 27 parser.add_option('--for-dashboard', action='store_true', dest='dashboard', |
30 default=False, | 28 default=False, |
31 help='Print enum definition formatted for use in uma.py of ' | 29 help='Print enum definition formatted for use in uma.py of ' |
32 'Chromium dashboard developed at ' | 30 'Chromium dashboard developed at ' |
33 'https://github.com/GoogleChrome/chromium-dashboard') | 31 'https://github.com/GoogleChrome/chromium-dashboard') |
34 options, args = parser.parse_args() | 32 options, args = parser.parse_args() |
35 | 33 |
36 source_path = \ | 34 source_path = 'third_party/WebKit/Source/core/frame/UseCounter.h' |
37 '../../../third_party/WebKit/Source/core/frame/UseCounter.h' | |
38 | 35 |
39 START_MARKER = '^enum Feature {' | 36 START_MARKER = '^enum Feature {' |
40 END_MARKER = '^NumberOfFeatures' | 37 END_MARKER = '^NumberOfFeatures' |
41 | 38 |
42 if options.dashboard: | 39 if options.dashboard: |
43 enum_dict = ReadHistogramValues(source_path, START_MARKER, END_MARKER) | 40 enum_dict = update_histogram_enum.ReadHistogramValues(source_path, |
41 START_MARKER, | |
42 END_MARKER) | |
44 PrintEnumForDashboard(enum_dict) | 43 PrintEnumForDashboard(enum_dict) |
45 else: | 44 else: |
46 UpdateHistogramEnum( | 45 update_histogram_enum.UpdateHistogramEnum( |
47 histogram_enum_name='FeatureObserver', | 46 histogram_enum_name='FeatureObserver', |
48 source_enum_path=source_path, | 47 source_enum_path=source_path, |
49 start_marker=START_MARKER, | 48 start_marker=START_MARKER, |
50 end_marker=END_MARKER) | 49 end_marker=END_MARKER) |
OLD | NEW |