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

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

Issue 11956021: Removing redundant event streams. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Suppressing events on classes which are ignored. Created 7 years, 11 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/htmleventgenerator.py ('k') | tools/dom/scripts/systemhtml.py » ('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 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',
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 'WorkerContext.webkitRequestFileSystemSync': 'requestFileSystemSync', 160 'WorkerContext.webkitRequestFileSystemSync': 'requestFileSystemSync',
161 'WorkerContext.webkitResolveLocalFileSystemSyncURL': 161 'WorkerContext.webkitResolveLocalFileSystemSyncURL':
162 'resolveLocalFileSystemSyncUrl', 162 'resolveLocalFileSystemSyncUrl',
163 'WorkerContext.webkitResolveLocalFileSystemURL': 163 'WorkerContext.webkitResolveLocalFileSystemURL':
164 'resolveLocalFileSystemUrl', 164 'resolveLocalFileSystemUrl',
165 }) 165 })
166 166
167 # Members and classes from the dom that should be removed completely from 167 # Members and classes from the dom that should be removed completely from
168 # dart:html. These could be expressed in the IDL instead but expressing this 168 # dart:html. These could be expressed in the IDL instead but expressing this
169 # as a simple table instead is more concise. 169 # as a simple table instead is more concise.
170 # Syntax is: ClassName.(get\.|set\.)?MemberName 170 # Syntax is: ClassName.(get\:|set\:|call\:|on\:)?MemberName
171 # Using get: and set: is optional and should only be used when a getter needs 171 # Using get: and set: is optional and should only be used when a getter needs
172 # to be suppressed but not the setter, etc. 172 # to be suppressed but not the setter, etc.
173 # TODO(jacobr): cleanup and augment this list. 173 # TODO(jacobr): cleanup and augment this list.
174 _removed_html_members = monitored.Set('htmlrenamer._removed_html_members', [ 174 _removed_html_members = monitored.Set('htmlrenamer._removed_html_members', [
175 'Attr.*', 175 'Attr.*',
176 'CanvasRenderingContext2D.clearShadow', 176 'CanvasRenderingContext2D.clearShadow',
177 'CanvasRenderingContext2D.drawImageFromRect', 177 'CanvasRenderingContext2D.drawImageFromRect',
178 'CanvasRenderingContext2D.setAlpha', 178 'CanvasRenderingContext2D.setAlpha',
179 'CanvasRenderingContext2D.setCompositeOperation', 179 'CanvasRenderingContext2D.setCompositeOperation',
180 'CanvasRenderingContext2D.setFillColor', 180 'CanvasRenderingContext2D.setFillColor',
181 'CanvasRenderingContext2D.setLineCap', 181 'CanvasRenderingContext2D.setLineCap',
182 'CanvasRenderingContext2D.setLineJoin', 182 'CanvasRenderingContext2D.setLineJoin',
183 'CanvasRenderingContext2D.setLineWidth', 183 'CanvasRenderingContext2D.setLineWidth',
184 'CanvasRenderingContext2D.setMiterLimit', 184 'CanvasRenderingContext2D.setMiterLimit',
185 'CanvasRenderingContext2D.setShadow', 185 'CanvasRenderingContext2D.setShadow',
186 'CanvasRenderingContext2D.setStrokeColor', 186 'CanvasRenderingContext2D.setStrokeColor',
187 'DOMWindow.blur', 187 'DOMWindow.call:blur',
188 'DOMWindow.clientInformation', 188 'DOMWindow.clientInformation',
189 'DOMWindow.focus', 189 'DOMWindow.call:focus',
190 'DOMWindow.get:frames', 190 'DOMWindow.get:frames',
191 'DOMWindow.get:length', 191 'DOMWindow.get:length',
192 'DOMWindow.prompt', 192 'DOMWindow.prompt',
193 'DOMWindow.webkitCancelRequestAnimationFrame', 193 'DOMWindow.webkitCancelRequestAnimationFrame',
194 'DOMWindow.webkitIndexedDB', 194 'DOMWindow.webkitIndexedDB',
195 'Document.adoptNode', 195 'Document.adoptNode',
196 'Document.alinkColor', 196 'Document.alinkColor',
197 'Document.all', 197 'Document.all',
198 'Document.applets', 198 'Document.applets',
199 'Document.bgColor', 199 'Document.bgColor',
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 447
448 448
449 def RenameMember(self, interface_name, member_node, member, member_prefix='', 449 def RenameMember(self, interface_name, member_node, member, member_prefix='',
450 dartify_name=True): 450 dartify_name=True):
451 """ 451 """
452 Returns the name of the member in the HTML library or None if the member is 452 Returns the name of the member in the HTML library or None if the member is
453 suppressed in the HTML library 453 suppressed in the HTML library
454 """ 454 """
455 interface = self._database.GetInterface(interface_name) 455 interface = self._database.GetInterface(interface_name)
456 456
457 if self._FindMatch(interface, member, member_prefix, _removed_html_members): 457 if self.ShouldSuppressMember(interface, member, member_prefix):
458 return None 458 return None
459 459
460 if 'CheckSecurityForNode' in member_node.ext_attrs: 460 if 'CheckSecurityForNode' in member_node.ext_attrs:
461 return None 461 return None
462 462
463 name = self._FindMatch(interface, member, member_prefix, 463 name = self._FindMatch(interface, member, member_prefix,
464 _renamed_html_members) 464 _renamed_html_members)
465 465
466 target_name = _renamed_html_members[name] if name else member 466 target_name = _renamed_html_members[name] if name else member
467 if self._FindMatch(interface, member, member_prefix, _private_html_members): 467 if self._FindMatch(interface, member, member_prefix, _private_html_members):
468 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName 468 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName
469 target_name = '$dom_' + target_name 469 target_name = '$dom_' + target_name
470 470
471 if dartify_name: 471 if dartify_name:
472 target_name = self._DartifyMemberName(target_name) 472 target_name = self._DartifyMemberName(target_name)
473 return target_name 473 return target_name
474 474
475 def ShouldSuppressMember(self, interface, member, member_prefix=''):
476 """ Returns true if the member should be suppressed."""
477 if self._FindMatch(interface, member, member_prefix,
478 _removed_html_members):
479 return True
480 return False
481
475 def _FindMatch(self, interface, member, member_prefix, candidates): 482 def _FindMatch(self, interface, member, member_prefix, candidates):
476 for interface in self._database.Hierarchy(interface): 483 for interface in self._database.Hierarchy(interface):
477 member_name = interface.id + '.' + member 484 member_name = interface.id + '.' + member
478 if member_name in candidates: 485 if member_name in candidates:
479 return member_name 486 return member_name
480 member_name = interface.id + '.' + member_prefix + member 487 member_name = interface.id + '.' + member_prefix + member
481 if member_name in candidates: 488 if member_name in candidates:
482 return member_name 489 return member_name
483 member_name = interface.id + '.*' 490 member_name = interface.id + '.*'
484 if member_name in candidates: 491 if member_name in candidates:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 523
517 # We're looking for a sequence of letters which start with capital letter 524 # We're looking for a sequence of letters which start with capital letter
518 # then a series of caps and finishes with either the end of the string or 525 # then a series of caps and finishes with either the end of the string or
519 # a capital letter. 526 # a capital letter.
520 # The [0-9] check is for names such as 2D or 3D 527 # The [0-9] check is for names such as 2D or 3D
521 # The following test cases should match as: 528 # The following test cases should match as:
522 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue 529 # WebKitCSSFilterValue: WebKit(C)(SS)(F)ilterValue
523 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change) 530 # XPathNSResolver: (X)()(P)ath(N)(S)(R)esolver (no change)
524 # IFrameElement: (I)()(F)rameElement (no change) 531 # IFrameElement: (I)()(F)rameElement (no change)
525 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name) 532 return re.sub(r'([A-Z])([A-Z]{2,})([A-Z]|$)', toLower, name)
OLDNEW
« no previous file with comments | « tools/dom/scripts/htmleventgenerator.py ('k') | tools/dom/scripts/systemhtml.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698