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 html_interface_renames = monitored.Dict('htmlrenamer.html_interface_renames', { | 9 html_interface_renames = monitored.Dict('htmlrenamer.html_interface_renames', { |
10 'CDATASection': 'CDataSection', | 10 'CDATASection': 'CDataSection', |
11 'Clipboard': 'DataTransfer', | 11 'Clipboard': 'DataTransfer', |
12 'Database': 'SqlDatabase', # Avoid conflict with Index DB's Database. | 12 'Database': 'SqlDatabase', # Avoid conflict with Index DB's Database. |
13 'DatabaseSync': 'SqlDatabaseSync', | 13 'DatabaseSync': 'SqlDatabaseSync', |
14 'DOMApplicationCache': 'ApplicationCache', | 14 'DOMApplicationCache': 'ApplicationCache', |
15 'DOMCoreException': 'DomException', | 15 'DOMCoreException': 'DomException', |
16 'DOMFileSystem': 'FileSystem', | 16 'DOMFileSystem': 'FileSystem', |
17 'DOMFileSystemSync': 'FileSystemSync', | |
18 'DOMFormData': 'FormData', | 17 'DOMFormData': 'FormData', |
19 'DOMURL': 'Url', | 18 'DOMURL': 'Url', |
20 'DOMWindow': 'Window', | 19 'DOMWindow': 'Window', |
21 'EntryCallback': '_EntryCallback', | 20 'EntryCallback': '_EntryCallback', |
22 'EntriesCallback': '_EntriesCallback', | 21 'EntriesCallback': '_EntriesCallback', |
23 'ErrorCallback': '_ErrorCallback', | 22 'ErrorCallback': '_ErrorCallback', |
24 'FileCallback': '_FileCallback', | 23 'FileCallback': '_FileCallback', |
25 'FileSystemCallback': '_FileSystemCallback', | 24 'FileSystemCallback': '_FileSystemCallback', |
26 'FileWriterCallback': '_FileWriterCallback', | 25 'FileWriterCallback': '_FileWriterCallback', |
27 'HTMLDocument' : 'HtmlDocument', | 26 'HTMLDocument' : 'HtmlDocument', |
(...skipping 27 matching lines...) Expand all Loading... |
55 'WebKitTransitionEvent': '_WebKitTransitionEvent', | 54 'WebKitTransitionEvent': '_WebKitTransitionEvent', |
56 'XMLHttpRequest': 'HttpRequest', | 55 'XMLHttpRequest': 'HttpRequest', |
57 'XMLHttpRequestException': 'HttpRequestException', | 56 'XMLHttpRequestException': 'HttpRequestException', |
58 'XMLHttpRequestProgressEvent': 'HttpRequestProgressEvent', | 57 'XMLHttpRequestProgressEvent': 'HttpRequestProgressEvent', |
59 'XMLHttpRequestUpload': 'HttpRequestUpload', | 58 'XMLHttpRequestUpload': 'HttpRequestUpload', |
60 }) | 59 }) |
61 | 60 |
62 # Interfaces that are suppressed, but need to still exist for Dartium and to | 61 # Interfaces that are suppressed, but need to still exist for Dartium and to |
63 # properly wrap DOM objects if/when encountered. | 62 # properly wrap DOM objects if/when encountered. |
64 _removed_html_interfaces = [ | 63 _removed_html_interfaces = [ |
| 64 'AbstractWorker', # Workers |
| 65 'DOMFileSystemSync', # Workers |
| 66 'DatabaseSync', # Workers |
| 67 'DedicatedWorkerContext', # Workers |
| 68 'DirectoryEntrySync', # Workers |
| 69 'DirectoryReaderSync', # Workers |
| 70 'EntrySync', # Workers |
| 71 'FileEntrySync', # Workers |
| 72 'FileReaderSync', # Workers |
| 73 'FileWriterSync', # Workers |
65 'HTMLAppletElement', | 74 'HTMLAppletElement', |
66 'HTMLBaseFontElement', | 75 'HTMLBaseFontElement', |
67 'HTMLDirectoryElement', | 76 'HTMLDirectoryElement', |
68 'HTMLFontElement', | 77 'HTMLFontElement', |
69 'HTMLFrameElement', | 78 'HTMLFrameElement', |
70 'HTMLFrameSetElement', | 79 'HTMLFrameSetElement', |
71 'HTMLMarqueeElement', | 80 'HTMLMarqueeElement', |
72 'IDBAny', | 81 'IDBAny', |
| 82 'SQLTransactionSync', # Workers |
| 83 'SQLTransactionSyncCallback', # Workers |
73 'SVGAltGlyphDefElement', # Webkit only. | 84 'SVGAltGlyphDefElement', # Webkit only. |
74 'SVGAltGlyphItemElement', # Webkit only. | 85 'SVGAltGlyphItemElement', # Webkit only. |
75 'SVGAnimateColorElement', # Deprecated. Use AnimateElement instead. | 86 'SVGAnimateColorElement', # Deprecated. Use AnimateElement instead. |
76 'SVGComponentTransferFunctionElement', # Currently not supported anywhere. | 87 'SVGComponentTransferFunctionElement', # Currently not supported anywhere. |
77 'SVGCursorElement', # Webkit only. | 88 'SVGCursorElement', # Webkit only. |
78 'SVGGradientElement', # Currently not supported anywhere. | |
79 'SVGFEDropShadowElement', # Webkit only for the following: | 89 'SVGFEDropShadowElement', # Webkit only for the following: |
80 'SVGFontElement', | 90 'SVGFontElement', |
81 'SVGFontFaceElement', | 91 'SVGFontFaceElement', |
82 'SVGFontFaceFormatElement', | 92 'SVGFontFaceFormatElement', |
83 'SVGFontFaceNameElement', | 93 'SVGFontFaceNameElement', |
84 'SVGFontFaceSrcElement', | 94 'SVGFontFaceSrcElement', |
85 'SVGFontFaceUriElement', | 95 'SVGFontFaceUriElement', |
86 'SVGGlyphElement', | 96 'SVGGlyphElement', |
87 'SVGGlyphRefElement', | 97 'SVGGlyphRefElement', |
| 98 'SVGGradientElement', # Currently not supported anywhere. |
88 'SVGHKernElement', | 99 'SVGHKernElement', |
| 100 'SVGMPathElement', |
89 'SVGMissingGlyphElement', | 101 'SVGMissingGlyphElement', |
90 'SVGMPathElement', | |
91 'SVGTRefElement', | 102 'SVGTRefElement', |
92 'SVGVKernElement', | 103 'SVGVKernElement', |
| 104 'SharedWorker', # Workers |
| 105 'SharedWorkerContext', # Workers |
| 106 'Worker', # Workers |
| 107 'WorkerContext', # Workers |
| 108 'WorkerLocation', # Workers |
| 109 'WorkerNavigator', # Workers |
93 ] | 110 ] |
94 | 111 |
95 for interface in _removed_html_interfaces: | 112 for interface in _removed_html_interfaces: |
96 html_interface_renames[interface] = '_' + interface | 113 html_interface_renames[interface] = '_' + interface |
97 | 114 |
98 convert_to_future_members = monitored.Set( | 115 convert_to_future_members = monitored.Set( |
99 'htmlrenamer.converted_to_future_members', [ | 116 'htmlrenamer.converted_to_future_members', [ |
100 'DataTransferItem.getAsString', | 117 'DataTransferItem.getAsString', |
101 'DirectoryEntry.getDirectory', | 118 'DirectoryEntry.getDirectory', |
102 'DirectoryEntry.getFile', | 119 'DirectoryEntry.getFile', |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 'Node.appendChild': 'append', | 316 'Node.appendChild': 'append', |
300 'Node.cloneNode': 'clone', | 317 'Node.cloneNode': 'clone', |
301 'Node.nextSibling': 'nextNode', | 318 'Node.nextSibling': 'nextNode', |
302 'Node.ownerDocument': 'document', | 319 'Node.ownerDocument': 'document', |
303 'Node.parentElement': 'parent', | 320 'Node.parentElement': 'parent', |
304 'Node.previousSibling': 'previousNode', | 321 'Node.previousSibling': 'previousNode', |
305 'Node.textContent': 'text', | 322 'Node.textContent': 'text', |
306 'RTCPeerConnection.createAnswer': '_createAnswer', | 323 'RTCPeerConnection.createAnswer': '_createAnswer', |
307 'RTCPeerConnection.createOffer': '_createOffer', | 324 'RTCPeerConnection.createOffer': '_createOffer', |
308 'StorageInfo.queryUsageAndQuota': '_queryUsageAndQuota', | 325 'StorageInfo.queryUsageAndQuota': '_queryUsageAndQuota', |
309 'SVGComponentTransferFunctionElement.offset': 'gradientOffset', | |
310 'SVGElement.className': '$dom_svgClassName', | 326 'SVGElement.className': '$dom_svgClassName', |
311 'SVGStopElement.offset': 'gradientOffset', | 327 'SVGStopElement.offset': 'gradientOffset', |
312 'WorkerContext.webkitRequestFileSystem': '_requestFileSystem', | 328 #'WorkerContext.webkitRequestFileSystem': '_requestFileSystem', # Workers |
313 'WorkerContext.webkitRequestFileSystemSync': '_requestFileSystemSync', | 329 #'WorkerContext.webkitRequestFileSystemSync': '_requestFileSystemSync', # Wo
rkers |
314 'WorkerContext.webkitResolveLocalFileSystemSyncURL': | |
315 'resolveLocalFileSystemSyncUrl', | |
316 'WorkerContext.webkitResolveLocalFileSystemURL': | |
317 'resolveLocalFileSystemUrl', | |
318 }) | 330 }) |
319 | 331 |
320 for member in convert_to_future_members: | 332 for member in convert_to_future_members: |
321 if member in renamed_html_members: | 333 if member in renamed_html_members: |
322 renamed_html_members[member] = '_' + renamed_html_members[member] | 334 renamed_html_members[member] = '_' + renamed_html_members[member] |
323 else: | 335 else: |
324 renamed_html_members[member] = '_' + member[member.find('.') + 1 :] | 336 renamed_html_members[member] = '_' + member[member.find('.') + 1 :] |
325 | 337 |
326 # Members and classes from the dom that should be removed completely from | 338 # Members and classes from the dom that should be removed completely from |
327 # dart:html. These could be expressed in the IDL instead but expressing this | 339 # dart:html. These could be expressed in the IDL instead but expressing this |
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
648 | 660 |
649 if dartify_name: | 661 if dartify_name: |
650 target_name = self._DartifyMemberName(target_name) | 662 target_name = self._DartifyMemberName(target_name) |
651 return target_name | 663 return target_name |
652 | 664 |
653 def ShouldSuppressMember(self, interface, member, member_prefix=''): | 665 def ShouldSuppressMember(self, interface, member, member_prefix=''): |
654 """ Returns true if the member should be suppressed.""" | 666 """ Returns true if the member should be suppressed.""" |
655 if self._FindMatch(interface, member, member_prefix, | 667 if self._FindMatch(interface, member, member_prefix, |
656 _removed_html_members): | 668 _removed_html_members): |
657 return True | 669 return True |
| 670 if interface.id in _removed_html_interfaces: |
| 671 return True |
658 return False | 672 return False |
659 | 673 |
660 def _FindMatch(self, interface, member, member_prefix, candidates): | 674 def _FindMatch(self, interface, member, member_prefix, candidates): |
661 for interface in self._database.Hierarchy(interface): | 675 for interface in self._database.Hierarchy(interface): |
662 member_name = interface.id + '.' + member | 676 member_name = interface.id + '.' + member |
663 if member_name in candidates: | 677 if member_name in candidates: |
664 return member_name | 678 return member_name |
665 member_name = interface.id + '.' + member_prefix + member | 679 member_name = interface.id + '.' + member_prefix + member |
666 if member_name in candidates: | 680 if member_name in candidates: |
667 return member_name | 681 return member_name |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 | 727 |
714 # We're looking for a sequence of letters which start with capital letter | 728 # We're looking for a sequence of letters which start with capital letter |
715 # then a series of caps and finishes with either the end of the string or | 729 # then a series of caps and finishes with either the end of the string or |
716 # a capital letter. | 730 # a capital letter. |
717 # The [0-9] check is for names such as 2D or 3D | 731 # The [0-9] check is for names such as 2D or 3D |
718 # The following test cases should match as: | 732 # The following test cases should match as: |
719 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue | 733 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue |
720 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) | 734 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) |
721 # IFrameElement: (I)()(F)rameElement (no change) | 735 # IFrameElement: (I)()(F)rameElement (no change) |
722 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) | 736 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) |
OLD | NEW |