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')) | |
17 from update_histogram_enum import ReadHistogramValues | 16 from update_histogram_enum import ReadHistogramValues |
18 from update_histogram_enum import UpdateHistogramEnum | 17 from update_histogram_enum import UpdateHistogramEnum |
19 | 18 |
20 | 19 |
21 def PrintEnumForDashboard(enum_dict): | 20 def PrintEnumForDashboard(enum_dict): |
22 """Prints enum_items formatted for use in uma.py of Chromium dashboard.""" | 21 """Prints enum_items formatted for use in uma.py of Chromium dashboard.""" |
23 for key in sorted(enum_dict.iterkeys()): | 22 for key in sorted(enum_dict.iterkeys()): |
24 print ' %d: \'%s\',' % (key, enum_dict[key]) | 23 print ' %d: \'%s\',' % (key, enum_dict[key]) |
25 | 24 |
26 | 25 |
27 if __name__ == '__main__': | 26 if __name__ == '__main__': |
28 parser = optparse.OptionParser() | 27 parser = optparse.OptionParser() |
29 parser.add_option('--for-dashboard', action='store_true', dest='dashboard', | 28 parser.add_option('--for-dashboard', action='store_true', dest='dashboard', |
30 default=False, | 29 default=False, |
31 help='Print enum definition formatted for use in uma.py of ' | 30 help='Print enum definition formatted for use in uma.py of ' |
32 'Chromium dashboard developed at ' | 31 'Chromium dashboard developed at ' |
33 'https://github.com/GoogleChrome/chromium-dashboard') | 32 'https://github.com/GoogleChrome/chromium-dashboard') |
34 options, args = parser.parse_args() | 33 options, args = parser.parse_args() |
35 | 34 |
36 source_path = \ | 35 source_path = 'third_party/WebKit/Source/core/frame/UseCounter.h' |
37 '../../../third_party/WebKit/Source/core/frame/UseCounter.h' | |
38 | 36 |
39 START_MARKER = '^enum Feature {' | 37 START_MARKER = '^enum Feature {' |
40 END_MARKER = '^NumberOfFeatures' | 38 END_MARKER = '^NumberOfFeatures' |
41 | 39 |
42 if options.dashboard: | 40 if options.dashboard: |
43 enum_dict = ReadHistogramValues(source_path, START_MARKER, END_MARKER) | 41 enum_dict = ReadHistogramValues(source_path, START_MARKER, END_MARKER) |
44 PrintEnumForDashboard(enum_dict) | 42 PrintEnumForDashboard(enum_dict) |
45 else: | 43 else: |
46 UpdateHistogramEnum( | 44 UpdateHistogramEnum( |
47 histogram_enum_name='FeatureObserver', | 45 histogram_enum_name='FeatureObserver', |
48 source_enum_path=source_path, | 46 source_enum_path=source_path, |
49 start_marker=START_MARKER, | 47 start_marker=START_MARKER, |
50 end_marker=END_MARKER) | 48 end_marker=END_MARKER) |
OLD | NEW |