OLD | NEW |
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Updates ExtensionFunctions enum in histograms.xml file with values read from | 5 """Updates ExtensionFunctions enum in histograms.xml file with values read from |
6 extension_function_histogram_value.h. | 6 extension_function_histogram_value.h. |
7 | 7 |
8 If the file was pretty-printed, the updated version is pretty-printed too. | 8 If the file was pretty-printed, the updated version is pretty-printed too. |
9 """ | 9 """ |
10 | 10 |
11 import logging | 11 import logging |
12 import re | 12 import re |
13 import sys | 13 import sys |
14 | 14 |
15 from xml.dom import minidom | 15 from xml.dom import minidom |
16 import print_style | |
17 | 16 |
18 # Import the metrics/common module. | 17 from diffutil import PromptUserToAcceptDiff |
19 sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'common')) | 18 from pretty_print import PrettyPrintNode |
20 from diff_util import PromptUserToAcceptDiff | |
21 | 19 |
22 HISTOGRAMS_PATH = 'histograms.xml' | 20 HISTOGRAMS_PATH = 'histograms.xml' |
23 ENUM_NAME = 'ExtensionFunctions' | 21 ENUM_NAME = 'ExtensionFunctions' |
24 | 22 |
25 EXTENSION_FUNCTIONS_HISTOGRAM_VALUE_PATH = \ | 23 EXTENSION_FUNCTIONS_HISTOGRAM_VALUE_PATH = \ |
26 '../../../extensions/browser/extension_function_histogram_value.h' | 24 '../../../extensions/browser/extension_function_histogram_value.h' |
27 ENUM_START_MARKER = "^enum HistogramValue {" | 25 ENUM_START_MARKER = "^enum HistogramValue {" |
28 ENUM_END_MARKER = "^ENUM_BOUNDARY" | 26 ENUM_END_MARKER = "^ENUM_BOUNDARY" |
29 | 27 |
30 | 28 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 Log('Reading existing histograms from "%s".' % (HISTOGRAMS_PATH)) | 129 Log('Reading existing histograms from "%s".' % (HISTOGRAMS_PATH)) |
132 with open(HISTOGRAMS_PATH, 'rb') as f: | 130 with open(HISTOGRAMS_PATH, 'rb') as f: |
133 histograms_doc = minidom.parse(f) | 131 histograms_doc = minidom.parse(f) |
134 f.seek(0) | 132 f.seek(0) |
135 xml = f.read() | 133 xml = f.read() |
136 | 134 |
137 Log('Comparing histograms enum with new enum definition.') | 135 Log('Comparing histograms enum with new enum definition.') |
138 UpdateHistogramDefinitions(histogram_values, histograms_doc) | 136 UpdateHistogramDefinitions(histogram_values, histograms_doc) |
139 | 137 |
140 Log('Writing out new histograms file.') | 138 Log('Writing out new histograms file.') |
141 new_xml = print_style.GetPrintStyle().PrettyPrintNode(histograms_doc) | 139 new_xml = PrettyPrintNode(histograms_doc) |
142 | |
143 if PromptUserToAcceptDiff(xml, new_xml, 'Is the updated version acceptable?'): | 140 if PromptUserToAcceptDiff(xml, new_xml, 'Is the updated version acceptable?'): |
144 with open(HISTOGRAMS_PATH, 'wb') as f: | 141 with open(HISTOGRAMS_PATH, 'wb') as f: |
145 f.write(new_xml) | 142 f.write(new_xml) |
146 | 143 |
147 Log('Done.') | 144 Log('Done.') |
148 | 145 |
149 | 146 |
150 if __name__ == '__main__': | 147 if __name__ == '__main__': |
151 main() | 148 main() |
OLD | NEW |