Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Side by Side Diff: tools/dom/scripts/htmlrenamer.py

Issue 18577002: Reapply expanding overloaded functions into separate functions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/dom/scripts/htmldartgenerator.py ('k') | tools/dom/scripts/logging.conf » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 'RTCPeerConnection.setLocalDescription', 144 'RTCPeerConnection.setLocalDescription',
145 'RTCPeerConnection.setRemoteDescription', 145 'RTCPeerConnection.setRemoteDescription',
146 'StorageInfo.requestQuota', 146 'StorageInfo.requestQuota',
147 'WorkerContext.webkitResolveLocalFileSystemURL', 147 'WorkerContext.webkitResolveLocalFileSystemURL',
148 'WorkerContext.webkitRequestFileSystem', 148 'WorkerContext.webkitRequestFileSystem',
149 ]) 149 ])
150 150
151 # Members from the standard dom that should not be exposed publicly in dart:html 151 # Members from the standard dom that should not be exposed publicly in dart:html
152 # but need to be exposed internally to implement dart:html on top of a standard 152 # but need to be exposed internally to implement dart:html on top of a standard
153 # browser. 153 # browser.
154 _private_html_members = monitored.Set('htmlrenamer._private_html_members', [ 154 private_html_members = monitored.Set('htmlrenamer.private_html_members', [
155 'AudioNode.connect',
155 'CanvasRenderingContext2D.arc', 156 'CanvasRenderingContext2D.arc',
156 'CompositionEvent.initCompositionEvent', 157 'CompositionEvent.initCompositionEvent',
157 'CustomEvent.initCustomEvent', 158 'CustomEvent.initCustomEvent',
158 'DeviceOrientationEvent.initDeviceOrientationEvent', 159 'DeviceOrientationEvent.initDeviceOrientationEvent',
159 'Document.createElement', 160 'Document.createElement',
160 'Document.createElementNS', 161 'Document.createElementNS',
161 'Document.createEvent', 162 'Document.createEvent',
162 'Document.createNodeIterator', 163 'Document.createNodeIterator',
163 'Document.createRange', 164 'Document.createRange',
164 'Document.createTextNode', 165 'Document.createTextNode',
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 'URL.createObjectURL': 'createObjectUrl', 342 'URL.createObjectURL': 'createObjectUrl',
342 'URL.revokeObjectURL': 'revokeObjectUrl', 343 'URL.revokeObjectURL': 'revokeObjectUrl',
343 'WebGLRenderingContext.texImage2D': '_texImage2D', 344 'WebGLRenderingContext.texImage2D': '_texImage2D',
344 'WebGLRenderingContext.texSubImage2D': '_texSubImageImage2D', 345 'WebGLRenderingContext.texSubImage2D': '_texSubImageImage2D',
345 'WheelEvent.wheelDeltaX': '_wheelDeltaX', 346 'WheelEvent.wheelDeltaX': '_wheelDeltaX',
346 'WheelEvent.wheelDeltaY': '_wheelDeltaY', 347 'WheelEvent.wheelDeltaY': '_wheelDeltaY',
347 #'WorkerContext.webkitRequestFileSystem': '_requestFileSystem', 348 #'WorkerContext.webkitRequestFileSystem': '_requestFileSystem',
348 #'WorkerContext.webkitRequestFileSystemSync': '_requestFileSystemSync', 349 #'WorkerContext.webkitRequestFileSystemSync': '_requestFileSystemSync',
349 }) 350 })
350 351
352 # Members that have multiple definitions, but their types are vary, so we rename
353 # them to make them distinct.
354 renamed_overloads = monitored.Dict('htmldartgenreator.renamed_overloads', {
355 'AudioContext.createBuffer(ArrayBuffer buffer, boolean mixToMono)':
356 'createBufferFromBuffer',
357 'CSS.supports(DOMString conditionText)': 'supportsCondition',
358 'CanvasRenderingContext2D.createPattern(HTMLImageElement image, '
359 'DOMString repetitionType)': 'createPatternFromImage',
360 'DataTransferItemList.add(File file)': 'addFile',
361 'DataTransferItemList.add(DOMString data, DOMString type)': 'addData',
362 'FormData.append(DOMString name, Blob value, DOMString filename)':
Emily Fortuna 2013/07/02 22:27:30 also removed due to dartium error. (see below)
363 'appendBlob',
364 'IDBDatabase.transaction(DOMStringList storeNames, DOMString mode)':
365 'transactionStores',
366 'IDBDatabase.transaction(sequence<DOMString> storeNames, DOMString mode)':
367 'transactionList',
368 'IDBDatabase.transaction(DOMString storeName, DOMString mode)':
369 'transactionStore',
370 'RTCDataChannel.send(ArrayBuffer data)': 'sendByteBuffer',
371 'RTCDataChannel.send(ArrayBufferView data)': 'sendTypedData',
372 'RTCDataChannel.send(Blob data)': 'sendBlob',
373 'RTCDataChannel.send(DOMString data)': 'sendString',
374 'URL.createObjectURL(WebKitMediaSource source)':
375 'createObjectUrlFromSource',
376 'URL.createObjectURL(MediaStream stream)': 'createObjectUrlFromStream',
377 'URL.createObjectURL(Blob blob)': 'createObjectUrlFromBlob',
378 'WebGLRenderingContext.texImage2D(unsigned long target, long level, '
379 'unsigned long internalformat, long width, long height, long border, '
380 'unsigned long format, unsigned long type, ArrayBufferView pixels)':
381 'texImage2DTypedData',
382 'WebGLRenderingContext.texImage2D(unsigned long target, long level, '
383 'unsigned long internalformat, unsigned long format, unsigned long '
384 'type, HTMLImageElement image)': 'texImage2DImage',
385 'WebGLRenderingContext.texImage2D(unsigned long target, long level, '
386 'unsigned long internalformat, unsigned long format, unsigned long '
387 'type, HTMLCanvasElement canvas)': 'texImage2DCanvas',
388 'WebGLRenderingContext.texImage2D(unsigned long target, long level, '
389 'unsigned long internalformat, unsigned long format, unsigned long '
390 'type, HTMLVideoElement video)': 'texImage2DVideo',
391 'WebGLRenderingContext.texSubImage2D(unsigned long target, long level, '
392 'long xoffset, long yoffset, long width, long height, unsigned long '
393 'format, unsigned long type, ArrayBufferView pixels)':
394 'texSubImage2DTypedData',
395 'WebGLRenderingContext.texSubImage2D(unsigned long target, long level, '
396 'long xoffset, long yoffset, unsigned long format, unsigned long type, '
397 'HTMLImageElement image)': 'texSubImage2DImage',
398 'WebGLRenderingContext.texSubImage2D(unsigned long target, long level, '
399 'long xoffset, long yoffset, unsigned long format, unsigned long type, '
400 'HTMLCanvasElement canvas)': 'texSubImage2DCanvas',
401 'WebGLRenderingContext.texSubImage2D(unsigned long target, long level, '
402 'long xoffset, long yoffset, unsigned long format, unsigned long type, '
403 'HTMLVideoElement video)': 'texSubImage2DVideo',
404 'WebGLRenderingContext.bufferData(unsigned long target, ArrayBuffer data, '
405 'unsigned long usage)': 'bufferByteData',
406 'WebGLRenderingContext.bufferData(unsigned long target, '
407 'ArrayBufferView data, unsigned long usage)': 'bufferTypedData',
408 'WebGLRenderingContext.bufferSubData(unsigned long target, '
409 'long long offset, ArrayBuffer data)': 'bufferSubByteData',
410 'WebGLRenderingContext.bufferSubData(unsigned long target, '
411 'long long offset, ArrayBufferView data)': 'bufferSubTypedData',
412 'WebSocket.send(ArrayBuffer data)': 'sendByteBuffer',
Emily Fortuna 2013/07/02 22:27:30 these renames were removed to avoid a dartium erro
413 'WebSocket.send(ArrayBufferView data)': 'sendTypeData',
414 'WebSocket.send(DOMString data)': 'sendString',
415 'WebSocket.send(Blob data)': 'sendBlob'
416 })
417
418 # Members that have multiple definitions, but their types are identical (only
419 # number of arguments vary), so we do not rename them as a _raw method.
420 keep_overloaded_members = monitored.Set(
421 'htmldartgenerator.keep_overloaded_members', [
422 'AudioBufferSourceNode.start',
423 'CanvasRenderingContext2D.putImageData',
424 'CanvasRenderingContext2D.webkitPutImageDataHD',
425 'DataTransferItemList.add',
426 'HTMLInputElement.setRangeText',
427 'HTMLTextAreaElement.setRangeText',
428 'IDBDatabase.transaction',
429 'RTCDataChannel.send',
430 'URL.createObjectURL',
431 'WebSocket.send',
432 'XMLHttpRequest.send'
433 ])
434
351 for member in convert_to_future_members: 435 for member in convert_to_future_members:
352 if member in renamed_html_members: 436 if member in renamed_html_members:
353 renamed_html_members[member] = '_' + renamed_html_members[member] 437 renamed_html_members[member] = '_' + renamed_html_members[member]
354 else: 438 else:
355 renamed_html_members[member] = '_' + member[member.find('.') + 1 :] 439 renamed_html_members[member] = '_' + member[member.find('.') + 1 :]
356 440
357 # Members and classes from the dom that should be removed completely from 441 # Members and classes from the dom that should be removed completely from
358 # dart:html. These could be expressed in the IDL instead but expressing this 442 # dart:html. These could be expressed in the IDL instead but expressing this
359 # as a simple table instead is more concise. 443 # as a simple table instead is more concise.
360 # Syntax is: ClassName.(get\:|set\:|call\:|on\:)?MemberName 444 # Syntax is: ClassName.(get\:|set\:|call\:|on\:)?MemberName
361 # Using get: and set: is optional and should only be used when a getter needs 445 # Using get: and set: is optional and should only be used when a getter needs
362 # to be suppressed but not the setter, etc. 446 # to be suppressed but not the setter, etc.
363 # TODO(jacobr): cleanup and augment this list. 447 # TODO(jacobr): cleanup and augment this list.
364 _removed_html_members = monitored.Set('htmlrenamer._removed_html_members', [ 448 removed_html_members = monitored.Set('htmlrenamer.removed_html_members', [
365 'AudioBufferSourceNode.looping', # TODO(vsm): Use deprecated IDL annotation 449 'AudioBufferSourceNode.looping', # TODO(vsm): Use deprecated IDL annotation
366 'CSSStyleDeclaration.getPropertyCSSValue', 450 'CSSStyleDeclaration.getPropertyCSSValue',
367 'CanvasRenderingContext2D.clearShadow', 451 'CanvasRenderingContext2D.clearShadow',
368 'CanvasRenderingContext2D.drawImageFromRect', 452 'CanvasRenderingContext2D.drawImageFromRect',
369 'CanvasRenderingContext2D.setAlpha', 453 'CanvasRenderingContext2D.setAlpha',
370 'CanvasRenderingContext2D.setCompositeOperation', 454 'CanvasRenderingContext2D.setCompositeOperation',
371 'CanvasRenderingContext2D.setFillColor', 455 'CanvasRenderingContext2D.setFillColor',
372 'CanvasRenderingContext2D.setLineCap', 456 'CanvasRenderingContext2D.setLineCap',
373 'CanvasRenderingContext2D.setLineJoin', 457 'CanvasRenderingContext2D.setLineJoin',
374 'CanvasRenderingContext2D.setLineWidth', 458 'CanvasRenderingContext2D.setLineWidth',
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 if self.ShouldSuppressMember(interface, member, member_prefix): 752 if self.ShouldSuppressMember(interface, member, member_prefix):
669 return None 753 return None
670 754
671 if 'CheckSecurityForNode' in member_node.ext_attrs: 755 if 'CheckSecurityForNode' in member_node.ext_attrs:
672 return None 756 return None
673 757
674 name = self._FindMatch(interface, member, member_prefix, 758 name = self._FindMatch(interface, member, member_prefix,
675 renamed_html_members) 759 renamed_html_members)
676 760
677 target_name = renamed_html_members[name] if name else member 761 target_name = renamed_html_members[name] if name else member
678 if self._FindMatch(interface, member, member_prefix, _private_html_members): 762 if self._FindMatch(interface, member, member_prefix, private_html_members):
679 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName 763 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName
680 target_name = '$dom_' + target_name 764 target_name = '$dom_' + target_name
681 765
682 if not name and target_name.startswith('webkit'): 766 if not name and target_name.startswith('webkit'):
683 target_name = member[len('webkit'):] 767 target_name = member[len('webkit'):]
684 target_name = target_name[:1].lower() + target_name[1:] 768 target_name = target_name[:1].lower() + target_name[1:]
685 769
686 if dartify_name: 770 if dartify_name:
687 target_name = self._DartifyMemberName(target_name) 771 target_name = self._DartifyMemberName(target_name)
688 return target_name 772 return target_name
689 773
690 def ShouldSuppressMember(self, interface, member, member_prefix=''): 774 def ShouldSuppressMember(self, interface, member, member_prefix=''):
691 """ Returns true if the member should be suppressed.""" 775 """ Returns true if the member should be suppressed."""
692 if self._FindMatch(interface, member, member_prefix, 776 if self._FindMatch(interface, member, member_prefix, removed_html_members):
693 _removed_html_members):
694 return True 777 return True
695 if interface.id in _removed_html_interfaces: 778 if interface.id in _removed_html_interfaces:
696 return True 779 return True
697 return False 780 return False
698 781
699 def ShouldSuppressInterface(self, interface): 782 def ShouldSuppressInterface(self, interface):
700 """ Returns true if the interface should be suppressed.""" 783 """ Returns true if the interface should be suppressed."""
701 if interface.id in _removed_html_interfaces: 784 if interface.id in _removed_html_interfaces:
702 return True 785 return True
703 786
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 855
773 # We're looking for a sequence of letters which start with capital letter 856 # We're looking for a sequence of letters which start with capital letter
774 # then a series of caps and finishes with either the end of the string or 857 # then a series of caps and finishes with either the end of the string or
775 # a capital letter. 858 # a capital letter.
776 # The [0-9] check is for names such as 2D or 3D 859 # The [0-9] check is for names such as 2D or 3D
777 # The following test cases should match as: 860 # The following test cases should match as:
778 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue 861 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue
779 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) 862 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change)
780 # IFrameElement: (I)()(F)rameElement (no change) 863 # IFrameElement: (I)()(F)rameElement (no change)
781 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) 864 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name)
OLDNEW
« no previous file with comments | « tools/dom/scripts/htmldartgenerator.py ('k') | tools/dom/scripts/logging.conf » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698