| 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 import logging | 5 import logging |
| 6 import monitored | 6 import monitored |
| 7 import re | 7 import re |
| 8 | 8 |
| 9 typed_array_renames = { | 9 typed_array_renames = { |
| 10 'ArrayBuffer': 'ByteBuffer', | 10 'ArrayBuffer': 'ByteBuffer', |
| (...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 renamed_html_members[member] = '_' + renamed_html_members[member] | 467 renamed_html_members[member] = '_' + renamed_html_members[member] |
| 468 else: | 468 else: |
| 469 renamed_html_members[member] = '_' + member[member.find('.') + 1 :] | 469 renamed_html_members[member] = '_' + member[member.find('.') + 1 :] |
| 470 | 470 |
| 471 # Members and classes from the dom that should be removed completely from | 471 # Members and classes from the dom that should be removed completely from |
| 472 # dart:html. These could be expressed in the IDL instead but expressing this | 472 # dart:html. These could be expressed in the IDL instead but expressing this |
| 473 # as a simple table instead is more concise. | 473 # as a simple table instead is more concise. |
| 474 # Syntax is: ClassName.(get\:|set\:|call\:|on\:)?MemberName | 474 # Syntax is: ClassName.(get\:|set\:|call\:|on\:)?MemberName |
| 475 # Using get: and set: is optional and should only be used when a getter needs | 475 # Using get: and set: is optional and should only be used when a getter needs |
| 476 # to be suppressed but not the setter, etc. | 476 # to be suppressed but not the setter, etc. |
| 477 # Prepending ClassName with = will only match against direct class, not for |
| 478 # subclasses. |
| 477 # TODO(jacobr): cleanup and augment this list. | 479 # TODO(jacobr): cleanup and augment this list. |
| 478 removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [ | 480 removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [ |
| 479 'AudioBufferSourceNode.looping', # TODO(vsm): Use deprecated IDL annotation | 481 'AudioBufferSourceNode.looping', # TODO(vsm): Use deprecated IDL annotation |
| 480 'CSSStyleDeclaration.getPropertyCSSValue', | 482 'CSSStyleDeclaration.getPropertyCSSValue', |
| 481 'CanvasRenderingContext2D.clearShadow', | 483 'CanvasRenderingContext2D.clearShadow', |
| 482 'CanvasRenderingContext2D.drawImageFromRect', | 484 'CanvasRenderingContext2D.drawImageFromRect', |
| 483 'CanvasRenderingContext2D.setAlpha', | 485 'CanvasRenderingContext2D.setAlpha', |
| 484 'CanvasRenderingContext2D.setCompositeOperation', | 486 'CanvasRenderingContext2D.setCompositeOperation', |
| 485 'CanvasRenderingContext2D.setFillColor', | 487 'CanvasRenderingContext2D.setFillColor', |
| 486 'CanvasRenderingContext2D.setLineCap', | 488 'CanvasRenderingContext2D.setLineCap', |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 'Element.innerText', | 589 'Element.innerText', |
| 588 'Element.on:wheel', | 590 'Element.on:wheel', |
| 589 'Element.outerText', | 591 'Element.outerText', |
| 590 'Element.removeAttributeNode', | 592 'Element.removeAttributeNode', |
| 591 'Element.set:outerHTML', | 593 'Element.set:outerHTML', |
| 592 'Element.setAttributeNode', | 594 'Element.setAttributeNode', |
| 593 'Element.setAttributeNodeNS', | 595 'Element.setAttributeNodeNS', |
| 594 'Element.webkitCreateShadowRoot', | 596 'Element.webkitCreateShadowRoot', |
| 595 'Element.webkitPseudo', | 597 'Element.webkitPseudo', |
| 596 'Element.webkitShadowRoot', | 598 'Element.webkitShadowRoot', |
| 597 'Event.returnValue', | 599 '=Event.returnValue', # Only suppress on Event, allow for BeforeUnloadEvnt. |
| 598 'Event.srcElement', | 600 'Event.srcElement', |
| 599 'EventSource.URL', | 601 'EventSource.URL', |
| 600 'FontFaceSet.load', | 602 'FontFaceSet.load', |
| 601 'FontFaceSet.ready', | 603 'FontFaceSet.ready', |
| 602 'HTMLAnchorElement.charset', | 604 'HTMLAnchorElement.charset', |
| 603 'HTMLAnchorElement.coords', | 605 'HTMLAnchorElement.coords', |
| 604 'HTMLAnchorElement.rev', | 606 'HTMLAnchorElement.rev', |
| 605 'HTMLAnchorElement.shape', | 607 'HTMLAnchorElement.shape', |
| 606 'HTMLAnchorElement.text', | 608 'HTMLAnchorElement.text', |
| 607 'HTMLAppletElement.*', | 609 'HTMLAppletElement.*', |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 838 if self._metadata.IsDeprecated(interface, metadata_member): | 840 if self._metadata.IsDeprecated(interface, metadata_member): |
| 839 return True | 841 return True |
| 840 return False | 842 return False |
| 841 | 843 |
| 842 def ShouldSuppressInterface(self, interface): | 844 def ShouldSuppressInterface(self, interface): |
| 843 """ Returns true if the interface should be suppressed.""" | 845 """ Returns true if the interface should be suppressed.""" |
| 844 if interface.id in _removed_html_interfaces: | 846 if interface.id in _removed_html_interfaces: |
| 845 return True | 847 return True |
| 846 | 848 |
| 847 def _FindMatch(self, interface, member, member_prefix, candidates): | 849 def _FindMatch(self, interface, member, member_prefix, candidates): |
| 848 for interface in self._database.Hierarchy(interface): | 850 def find_match(interface_id): |
| 849 member_name = interface.id + '.' + member | 851 member_name = interface_id + '.' + member |
| 850 if member_name in candidates: | 852 if member_name in candidates: |
| 851 return member_name | 853 return member_name |
| 852 member_name = interface.id + '.' + member_prefix + member | 854 member_name = interface_id + '.' + member_prefix + member |
| 853 if member_name in candidates: | 855 if member_name in candidates: |
| 854 return member_name | 856 return member_name |
| 855 member_name = interface.id + '.*' | 857 member_name = interface_id + '.*' |
| 856 if member_name in candidates: | 858 if member_name in candidates: |
| 857 return member_name | 859 return member_name |
| 858 | 860 |
| 861 # Check direct matches first |
| 862 match = find_match('=%s' % interface.id) |
| 863 if match: |
| 864 return match |
| 865 |
| 866 for interface in self._database.Hierarchy(interface): |
| 867 match = find_match(interface.id) |
| 868 if match: |
| 869 return match |
| 870 |
| 859 def GetLibraryName(self, interface): | 871 def GetLibraryName(self, interface): |
| 860 # Some types have attributes merged in from many other interfaces. | 872 # Some types have attributes merged in from many other interfaces. |
| 861 if interface.id in _library_names: | 873 if interface.id in _library_names: |
| 862 return _library_names[interface.id] | 874 return _library_names[interface.id] |
| 863 | 875 |
| 864 # TODO(ager, blois): The conditional has been removed from indexed db, | 876 # TODO(ager, blois): The conditional has been removed from indexed db, |
| 865 # so we can no longer determine the library based on the conditionals. | 877 # so we can no longer determine the library based on the conditionals. |
| 866 if interface.id.startswith("IDB"): | 878 if interface.id.startswith("IDB"): |
| 867 return 'indexed_db' | 879 return 'indexed_db' |
| 868 if interface.id.startswith("SQL"): | 880 if interface.id.startswith("SQL"): |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 945 | 957 |
| 946 # We're looking for a sequence of letters which start with capital letter | 958 # We're looking for a sequence of letters which start with capital letter |
| 947 # then a series of caps and finishes with either the end of the string or | 959 # then a series of caps and finishes with either the end of the string or |
| 948 # a capital letter. | 960 # a capital letter. |
| 949 # The [0-9] check is for names such as 2D or 3D | 961 # The [0-9] check is for names such as 2D or 3D |
| 950 # The following test cases should match as: | 962 # The following test cases should match as: |
| 951 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue | 963 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue |
| 952 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) | 964 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) |
| 953 # IFrameElement: (I)()(F)rameElement (no change) | 965 # IFrameElement: (I)()(F)rameElement (no change) |
| 954 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) | 966 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) |
| OLD | NEW |