OLD | NEW |
---|---|
1 #!/usr/bin/python | 1 #!/usr/bin/python |
2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 2 # Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
3 # for details. All rights reserved. Use of this source code is governed by a | 3 # for details. All rights reserved. Use of this source code is governed by a |
4 # BSD-style license that can be found in the LICENSE file. | 4 # BSD-style license that can be found in the LICENSE file. |
5 | 5 |
6 _html_strip_webkit_prefix_classes = [ | 6 _html_interface_renames = { |
7 'Animation', | 7 'DOMWindow': 'Window', |
8 'AnimationEvent', | 8 'WebKitAnimation': 'Animation', |
9 'AnimationList', | 9 'WebKitAnimationEvent': 'AnimationEvent', |
10 'BlobBuilder', | 10 'WebKitAnimationList': 'AnimationList', |
11 'CSSKeyframeRule', | 11 'WebKitBlobBuilder': 'BlobBuilder', |
12 'CSSKeyframesRule', | 12 'WebKitCSSKeyframeRule': 'CSSKeyframeRule', |
13 'CSSMatrix', | 13 'WebKitCSSKeyframesRule': 'CSSKeyframesRule', |
14 'CSSTransformValue', | 14 'WebKitCSSMatrix': 'CSSMatrix', |
15 'Flags', | 15 'WebKitCSSTransformValue': 'CSSTransformValue', |
16 'LoseContext', | 16 'WebKitFlags': 'Flags', |
17 'Point', | 17 'WebKitLoseContext': 'LoseContext', |
18 'TransitionEvent'] | 18 'WebKitPoint': 'Point', |
19 'WebKitTransitionEvent': 'TransitionEvent', | |
20 'XMLHttpRequest': 'HttpRequest', | |
21 'XMLHttpRequestException': 'HttpRequestException', | |
22 'XMLHttpRequestProgressEvent': 'HttpRequestProgressEvent', | |
23 'XMLHttpRequestUpload': 'HttpRequestUpload', | |
24 } | |
19 | 25 |
20 # Members from the standard dom that should not be exposed publicly in dart:html | 26 # Members from the standard dom that should not be exposed publicly in dart:html |
21 # but need to be exposed internally to implement dart:html on top of a standard | 27 # but need to be exposed internally to implement dart:html on top of a standard |
22 # browser. | 28 # browser. |
23 _private_html_members = set([ | 29 _private_html_members = set([ |
24 'Document.createElement', | 30 'Document.createElement', |
25 'Document.createElementNS', | 31 'Document.createElementNS', |
26 'Document.createEvent', | 32 'Document.createEvent', |
27 'Document.createTextNode', | 33 'Document.createTextNode', |
28 'Document.createTouchList', | 34 'Document.createTouchList', |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
265 | 271 |
266 class HtmlRenamer(object): | 272 class HtmlRenamer(object): |
267 def __init__(self, database): | 273 def __init__(self, database): |
268 self._database = database | 274 self._database = database |
269 | 275 |
270 def RenameInterface(self, interface): | 276 def RenameInterface(self, interface): |
271 if interface.id.startswith('HTML'): | 277 if interface.id.startswith('HTML'): |
272 if any(interface.id in ['Element', 'Document'] | 278 if any(interface.id in ['Element', 'Document'] |
273 for interface in self._database.Hierarchy(interface)): | 279 for interface in self._database.Hierarchy(interface)): |
274 return interface.id[len('HTML'):] | 280 return interface.id[len('HTML'):] |
275 elif interface.id.startswith('WebKit'): | 281 elif interface.id in _html_interface_renames.keys(): |
sra1
2012/08/16 20:20:36
drop ".keys()", 'in' works directly
| |
276 stripped_name = interface.id[len('WebKit'):] | 282 return _html_interface_renames[interface.id] |
277 if stripped_name in _html_strip_webkit_prefix_classes: | |
278 return stripped_name | |
279 elif interface.id == 'DOMWindow': | |
280 return 'Window' | |
281 return interface.id | 283 return interface.id |
282 | 284 |
283 def RenameMember(self, interface_name, member, member_prefix=''): | 285 def RenameMember(self, interface_name, member, member_prefix=''): |
284 """ | 286 """ |
285 Returns the name of the member in the HTML library or None if the member is | 287 Returns the name of the member in the HTML library or None if the member is |
286 suppressed in the HTML library | 288 suppressed in the HTML library |
287 """ | 289 """ |
288 interface = self._database.GetInterface(interface_name) | 290 interface = self._database.GetInterface(interface_name) |
289 | 291 |
290 if self._FindMatch(interface, member, member_prefix, _removed_html_members): | 292 if self._FindMatch(interface, member, member_prefix, _removed_html_members): |
291 return None | 293 return None |
292 | 294 |
293 name = self._FindMatch(interface, member, member_prefix, | 295 name = self._FindMatch(interface, member, member_prefix, |
294 _renamed_html_members) | 296 _renamed_html_members) |
295 target_name = _renamed_html_members[name] if name else member | 297 target_name = _renamed_html_members[name] if name else member |
296 if self._FindMatch(interface, member, member_prefix, _private_html_members): | 298 if self._FindMatch(interface, member, member_prefix, _private_html_members): |
297 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName | 299 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName |
298 target_name = '$dom_' + target_name | 300 target_name = '$dom_' + target_name |
299 return target_name | 301 return target_name |
300 | 302 |
301 def _FindMatch(self, interface, member, member_prefix, candidates): | 303 def _FindMatch(self, interface, member, member_prefix, candidates): |
302 for interface in self._database.Hierarchy(interface): | 304 for interface in self._database.Hierarchy(interface): |
303 html_interface_name = self.RenameInterface(interface) | 305 html_interface_name = self.RenameInterface(interface) |
304 member_name = html_interface_name + '.' + member | 306 member_name = html_interface_name + '.' + member |
305 if member_name in candidates: | 307 if member_name in candidates: |
306 return member_name | 308 return member_name |
307 member_name = html_interface_name + '.' + member_prefix + member | 309 member_name = html_interface_name + '.' + member_prefix + member |
308 if member_name in candidates: | 310 if member_name in candidates: |
309 return member_name | 311 return member_name |
OLD | NEW |