diff options
Diffstat (limited to 'dom/base/usecounters.py')
-rw-r--r-- | dom/base/usecounters.py | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/dom/base/usecounters.py b/dom/base/usecounters.py deleted file mode 100644 index b93f02f801..0000000000 --- a/dom/base/usecounters.py +++ /dev/null @@ -1,71 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - -import buildconfig -import collections -import re -import StringIO -import sys - -def read_conf(conf_filename): - # Can't read/write from a single StringIO, so make a new one for reading. - stream = open(conf_filename, 'rU') - - def parse_counters(stream): - for line_num, line in enumerate(stream): - line = line.rstrip('\n') - if not line or line.startswith('//'): - # empty line or comment - continue - m = re.match(r'method ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$', line) - if m: - interface_name, method_name = m.groups() - yield { 'type': 'method', - 'interface_name': interface_name, - 'method_name': method_name } - continue - m = re.match(r'attribute ([A-Za-z0-9]+)\.([A-Za-z0-9]+)$', line) - if m: - interface_name, attribute_name = m.groups() - yield { 'type': 'attribute', - 'interface_name': interface_name, - 'attribute_name': attribute_name } - continue - m = re.match(r'property ([A-Za-z0-9]+)$', line) - if m: - property_name = m.group(1) - yield { 'type': 'property', - 'property_name': property_name } - continue - raise ValueError('error parsing %s at line %d' % (conf_filename, line_num)) - - return parse_counters(stream) - -def generate_histograms(filename): - # The mapping for use counters to telemetry histograms depends on the - # ordering of items in the dictionary. - items = collections.OrderedDict() - for counter in read_conf(filename): - def append_counter(name, desc): - items[name] = { 'expires_in_version': 'never', - 'kind' : 'boolean', - 'description': desc } - - def append_counters(name, desc): - append_counter('USE_COUNTER2_%s_DOCUMENT' % name, 'Whether a document %s' % desc) - append_counter('USE_COUNTER2_%s_PAGE' % name, 'Whether a page %s' % desc) - - if counter['type'] == 'method': - method = '%s.%s' % (counter['interface_name'], counter['method_name']) - append_counters(method.replace('.', '_').upper(), 'called %s' % method) - elif counter['type'] == 'attribute': - attr = '%s.%s' % (counter['interface_name'], counter['attribute_name']) - counter_name = attr.replace('.', '_').upper() - append_counters('%s_getter' % counter_name, 'got %s' % attr) - append_counters('%s_setter' % counter_name, 'set %s' % attr) - elif counter['type'] == 'property': - prop = counter['property_name'] - append_counters('PROPERTY_%s' % prop.replace('-', '_').upper(), "used the '%s' property" % prop) - - return items |