| 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_interface_renames = { | 6 html_interface_renames = { |
| 7 'DOMCoreException': 'DOMException', | 7 'DOMCoreException': 'DOMException', |
| 8 'DOMFormData': 'FormData', | 8 'DOMFormData': 'FormData', |
| 9 'DOMWindow': 'LocalWindow', | 9 'DOMWindow': 'LocalWindow', |
| 10 'History': 'LocalHistory', | 10 'History': 'LocalHistory', |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 "Element.accessKey", | 204 "Element.accessKey", |
| 205 "Element.get:itemType", | 205 "Element.get:itemType", |
| 206 "Element.innerText", | 206 "Element.innerText", |
| 207 "Element.set:outerHTML", | 207 "Element.set:outerHTML", |
| 208 "Element.itemScope", | 208 "Element.itemScope", |
| 209 "Element.itemValue", | 209 "Element.itemValue", |
| 210 "Element.itemId", | 210 "Element.itemId", |
| 211 "Element.get:itemProp", | 211 "Element.get:itemProp", |
| 212 'Element.scrollIntoView', | 212 'Element.scrollIntoView', |
| 213 'Element.get:classList', | 213 'Element.get:classList', |
| 214 "EmbedElement.getSVGDocument", | |
| 215 "FormElement.get:elements", | 214 "FormElement.get:elements", |
| 216 "HTMLFrameElement.*", | 215 "HTMLFrameElement.*", |
| 217 "HTMLFrameSetElement.*", | 216 "HTMLFrameSetElement.*", |
| 218 "HtmlElement.version", | 217 "HtmlElement.version", |
| 219 "HtmlElement.manifest", | 218 "HtmlElement.manifest", |
| 220 "Document.version", | 219 "Document.version", |
| 221 "Document.manifest", | 220 "Document.manifest", |
| 222 # "IFrameElement.getSVGDocument", #TODO(jacobr): should this be removed | |
| 223 "InputElement.dirName", | 221 "InputElement.dirName", |
| 224 "HTMLIsIndexElement.*", | 222 "HTMLIsIndexElement.*", |
| 225 "ObjectElement.getSVGDocument", | |
| 226 "HTMLOptionsCollection.*", | 223 "HTMLOptionsCollection.*", |
| 227 "HTMLPropertiesCollection.*", | 224 "HTMLPropertiesCollection.*", |
| 228 "SelectElement.remove", | 225 "SelectElement.remove", |
| 229 "TextAreaElement.dirName", | 226 "TextAreaElement.dirName", |
| 230 "NamedNodeMap.*", | 227 "NamedNodeMap.*", |
| 231 "Node.isEqualNode", | 228 "Node.isEqualNode", |
| 232 "Node.get:TEXT_NODE", | 229 "Node.get:TEXT_NODE", |
| 233 "Node.hasAttributes", | 230 "Node.hasAttributes", |
| 234 "Node.get:DOCUMENT_TYPE_NODE", | 231 "Node.get:DOCUMENT_TYPE_NODE", |
| 235 "Node.get:DOCUMENT_POSITION_FOLLOWING", | 232 "Node.get:DOCUMENT_POSITION_FOLLOWING", |
| (...skipping 22 matching lines...) Expand all Loading... |
| 258 "Node.get:prefix", | 255 "Node.get:prefix", |
| 259 "Node.set:prefix", | 256 "Node.set:prefix", |
| 260 "Node.get:DOCUMENT_POSITION_PRECEDING", | 257 "Node.get:DOCUMENT_POSITION_PRECEDING", |
| 261 "Node.get:nodeValue", | 258 "Node.get:nodeValue", |
| 262 "Node.set:nodeValue", | 259 "Node.set:nodeValue", |
| 263 "Node.get:CDATA_SECTION_NODE", | 260 "Node.get:CDATA_SECTION_NODE", |
| 264 "Node.get:nodeName", | 261 "Node.get:nodeName", |
| 265 "Node.lookupPrefix", | 262 "Node.lookupPrefix", |
| 266 "Node.get:PROCESSING_INSTRUCTION_NODE", | 263 "Node.get:PROCESSING_INSTRUCTION_NODE", |
| 267 'ShadowRoot.getElementsByTagNameNS', | 264 'ShadowRoot.getElementsByTagNameNS', |
| 268 "IFrameElement.get:contentDocument", | |
| 269 "LocalWindow.get:frameElement", | |
| 270 "LocalWindow.get:frames", | 265 "LocalWindow.get:frames", |
| 271 "LocalWindow.get:length", | 266 "LocalWindow.get:length", |
| 272 "LocalWindow.webkitCancelRequestAnimationFrame", | 267 "LocalWindow.webkitCancelRequestAnimationFrame", |
| 273 "WheelEvent.wheelDelta", | 268 "WheelEvent.wheelDelta", |
| 274 ]) | 269 ]) |
| 275 | 270 |
| 276 class HtmlRenamer(object): | 271 class HtmlRenamer(object): |
| 277 def __init__(self, database): | 272 def __init__(self, database): |
| 278 self._database = database | 273 self._database = database |
| 279 | 274 |
| 280 def RenameInterface(self, interface): | 275 def RenameInterface(self, interface): |
| 281 if interface.id.startswith('HTML'): | 276 if interface.id.startswith('HTML'): |
| 282 if any(interface.id in ['Element', 'Document'] | 277 if any(interface.id in ['Element', 'Document'] |
| 283 for interface in self._database.Hierarchy(interface)): | 278 for interface in self._database.Hierarchy(interface)): |
| 284 return interface.id[len('HTML'):] | 279 return interface.id[len('HTML'):] |
| 285 elif interface.id in html_interface_renames: | 280 elif interface.id in html_interface_renames: |
| 286 return html_interface_renames[interface.id] | 281 return html_interface_renames[interface.id] |
| 287 return interface.id | 282 return interface.id |
| 288 | 283 |
| 289 def RenameMember(self, interface_name, member, member_prefix=''): | 284 def RenameMember(self, interface_name, member_node, member, member_prefix=''): |
| 290 """ | 285 """ |
| 291 Returns the name of the member in the HTML library or None if the member is | 286 Returns the name of the member in the HTML library or None if the member is |
| 292 suppressed in the HTML library | 287 suppressed in the HTML library |
| 293 """ | 288 """ |
| 294 interface = self._database.GetInterface(interface_name) | 289 interface = self._database.GetInterface(interface_name) |
| 295 | 290 |
| 296 if self._FindMatch(interface, member, member_prefix, _removed_html_members): | 291 if self._FindMatch(interface, member, member_prefix, _removed_html_members): |
| 297 return None | 292 return None |
| 298 | 293 |
| 294 if 'CheckSecurityForNode' in member_node.ext_attrs: |
| 295 return None |
| 296 |
| 299 name = self._FindMatch(interface, member, member_prefix, | 297 name = self._FindMatch(interface, member, member_prefix, |
| 300 _renamed_html_members) | 298 _renamed_html_members) |
| 301 target_name = _renamed_html_members[name] if name else member | 299 target_name = _renamed_html_members[name] if name else member |
| 302 if self._FindMatch(interface, member, member_prefix, _private_html_members): | 300 if self._FindMatch(interface, member, member_prefix, _private_html_members): |
| 303 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName | 301 if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName |
| 304 target_name = '$dom_' + target_name | 302 target_name = '$dom_' + target_name |
| 305 return target_name | 303 return target_name |
| 306 | 304 |
| 307 def _FindMatch(self, interface, member, member_prefix, candidates): | 305 def _FindMatch(self, interface, member, member_prefix, candidates): |
| 308 for interface in self._database.Hierarchy(interface): | 306 for interface in self._database.Hierarchy(interface): |
| 309 html_interface_name = self.RenameInterface(interface) | 307 html_interface_name = self.RenameInterface(interface) |
| 310 member_name = html_interface_name + '.' + member | 308 member_name = html_interface_name + '.' + member |
| 311 if member_name in candidates: | 309 if member_name in candidates: |
| 312 return member_name | 310 return member_name |
| 313 member_name = html_interface_name + '.' + member_prefix + member | 311 member_name = html_interface_name + '.' + member_prefix + member |
| 314 if member_name in candidates: | 312 if member_name in candidates: |
| 315 return member_name | 313 return member_name |
| OLD | NEW |