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
4 # found in the LICENSE file.
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
8 snippet to put in uma.py of Chromium Dashboard. Make sure that you review the
9 output for correctness.
16 sys
.path
.append(os
.path
.join(os
.path
.dirname(__file__
), '..', 'common'))
17 from update_histogram_enum
import ReadHistogramValues
18 from update_histogram_enum
import UpdateHistogramEnum
21 def PrintEnumForDashboard(enum_dict
):
22 """Prints enum_items formatted for use in uma.py of Chromium dashboard."""
23 for key
in sorted(enum_dict
.iterkeys()):
24 print ' %d: \'%s\',' % (key
, enum_dict
[key
])
27 if __name__
== '__main__':
28 parser
= optparse
.OptionParser()
29 parser
.add_option('--for-dashboard', action
='store_true', dest
='dashboard',
31 help='Print enum definition formatted for use in uma.py of '
32 'Chromium dashboard developed at '
33 'https://github.com/GoogleChrome/chromium-dashboard')
34 options
, args
= parser
.parse_args()
37 '../../../third_party/WebKit/Source/core/frame/UseCounter.h'
39 START_MARKER
= '^enum Feature {'
40 END_MARKER
= '^NumberOfFeatures'
43 enum_dict
= ReadHistogramValues(source_path
, START_MARKER
, END_MARKER
)
44 PrintEnumForDashboard(enum_dict
)
47 histogram_enum_name
='FeatureObserver',
48 source_enum_path
=source_path
,
49 start_marker
=START_MARKER
,
50 end_marker
=END_MARKER
)