Chromium Code Reviews| Index: lib/dom/scripts/systemhtml.py |
| diff --git a/lib/dom/scripts/systemhtml.py b/lib/dom/scripts/systemhtml.py |
| index 4dc4adcdab672a04350ff3292e026c544a08dc14..25a2307cce2ca0a32c9837735ff685a57e81accd 100644 |
| --- a/lib/dom/scripts/systemhtml.py |
| +++ b/lib/dom/scripts/systemhtml.py |
| @@ -73,11 +73,6 @@ _private_html_members = set([ |
| 'Window.getComputedStyle', |
| ]) |
| -_manually_generated_html_members = set([ |
| - 'Document.querySelectorAll', |
|
podivilov
2012/05/24 08:29:04
This one is in _private_html_members list already.
|
| - 'Document.querySelector', |
|
podivilov
2012/05/24 08:29:04
Moved to _html_library_custom.
|
| -]) |
| - |
| # Members from the standard dom that exist in the dart:html library with |
| # identical functionality but with cleaner names. |
| _html_library_renames = { |
| @@ -98,11 +93,6 @@ _html_library_renames = { |
| 'SVGStylable.className': '$dom_svgClassName', |
| } |
| -#TODO(jacobr): inject annotations into the interfaces based on this table and |
| -# on _html_library_renames. |
| -_injected_doc_fragments = { |
| - 'Element.query': ' /** @domName Element.querySelector, Document.getElementById */', |
| -} |
| # Members and classes from the dom that should be removed completelly from |
| # dart:html. These could be expressed in the IDL instead but expressing this |
| # as a simple table instead is more concise. |
| @@ -111,7 +101,6 @@ _injected_doc_fragments = { |
| # to be suppressed but not the setter, etc. |
| # TODO(jacobr): cleanup and augment this list. |
| _html_library_remove = set([ |
| - 'Window.get:document', # Removed as we have a custom implementation. |
|
podivilov
2012/05/24 08:29:04
This is custom, not removed.
|
| 'NodeList.item', |
| "Attr.*", |
| # "BarProp.*", |
| @@ -237,7 +226,6 @@ _html_library_remove = set([ |
| "Node.get:namespaceURI", |
| "Node.get:DOCUMENT_FRAGMENT_NODE", |
| "Node.get:localName", |
| - "Node.dispatchEvent", |
| "Node.isDefaultNamespace", |
| "Node.compareDocumentPosition", |
| "Node.get:baseURI", |
| @@ -258,21 +246,21 @@ _html_library_remove = set([ |
| "Node.get:prefix", |
| "Node.set:prefix", |
| "Node.get:DOCUMENT_POSITION_PRECEDING", |
| - "Node.removeEventListener", |
| "Node.get:nodeValue", |
| "Node.set:nodeValue", |
| "Node.get:CDATA_SECTION_NODE", |
| "Node.get:nodeName", |
| - "Node.addEventListener", |
| "Node.lookupPrefix", |
| "Node.get:PROCESSING_INSTRUCTION_NODE", |
| - "Notification.dispatchEvent", |
| - "Notification.addEventListener", |
| - "Notification.removeEventListener", |
|
podivilov
2012/05/24 08:29:04
Not sure why those were needed (we have another ~2
|
| "IFrameElement.get:contentDocument", |
| "IFrameElement.get:contentWindow", |
| "Window.get:frameElement", |
| - "Window.get:top", |
|
podivilov
2012/05/24 08:29:04
This is custom, not removed.
|
| + ]) |
| + |
| +_html_library_custom = set([ |
| + 'Document.querySelector', |
| + 'Window.get:document', |
| + 'Window.get:top', |
| ]) |
| # Events without onEventName attributes in the IDL we want to support. |
| @@ -509,9 +497,6 @@ class HtmlSystemShared(object): |
| if self._PrivateInHtmlLibrary(interface, member, member_prefix): |
| if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName |
| target_name = '$dom_' + target_name |
| - elif implementation_class and self._ManuallyGeneratedInHtmlLibrary( |
| - interface, member, member_prefix): |
| - target_name = '_' + target_name |
| # No rename required |
| return target_name |
| @@ -520,9 +505,9 @@ class HtmlSystemShared(object): |
| return self._Matches(interface, member, member_prefix, |
| _private_html_members) |
| - def _ManuallyGeneratedInHtmlLibrary(self, interface, member, member_prefix): |
| + def IsCustomInHtmlLibrary(self, interface, member, member_prefix=''): |
| return self._Matches(interface, member, member_prefix, |
| - _manually_generated_html_members) |
| + _html_library_custom) |
| # TODO(jacobr): this already exists |
| def _TraverseParents(self, interface, callback): |
| @@ -946,12 +931,18 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator): |
| self._members_emitter.Emit(template, E=DartType(element_type)) |
| def AddAttribute(self, getter, setter): |
| - |
| - html_getter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, DartDomNameOfAttribute(getter), 'get:', |
| + dom_name = DartDomNameOfAttribute(getter or setter) |
| + html_getter_name = None |
| + if not self._shared.IsCustomInHtmlLibrary( |
| + self._interface, dom_name, 'get:'): |
| + html_getter_name = self._shared.RenameInHtmlLibrary( |
| + self._interface, dom_name, 'get:', |
| implementation_class=True) |
| - html_setter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, DartDomNameOfAttribute(getter), 'set:', |
| + html_setter_name = None |
| + if not self._shared.IsCustomInHtmlLibrary( |
| + self._interface, dom_name, 'set:'): |
| + html_setter_name = self._shared.RenameInHtmlLibrary( |
| + self._interface, dom_name, 'set:', |
| implementation_class=True) |
| if not html_getter_name: |
| @@ -1042,6 +1033,9 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator): |
| Arguments: |
| info: An OperationInfo object. |
| """ |
| + if self._shared.IsCustomInHtmlLibrary(self._interface, info.name): |
| + return |
| + |
| html_name = self._shared.RenameInHtmlLibrary( |
| self._interface, info.name, implementation_class=True) |
| if not html_name: |
| @@ -1396,10 +1390,18 @@ class HtmlDartiumInterfaceGenerator(object): |
| def AddAttribute(self, getter, setter): |
| dom_name = DartDomNameOfAttribute(getter or setter) |
| - html_getter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'get:', implementation_class=True) |
| - html_setter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'set:', implementation_class=True) |
| + html_getter_name = None |
| + if not self._shared.IsCustomInHtmlLibrary( |
| + self._interface, dom_name, 'get:'): |
| + html_getter_name = self._shared.RenameInHtmlLibrary( |
| + self._interface, dom_name, 'get:', |
| + implementation_class=True) |
| + html_setter_name = None |
| + if not self._shared.IsCustomInHtmlLibrary( |
| + self._interface, dom_name, 'set:'): |
| + html_setter_name = self._shared.RenameInHtmlLibrary( |
| + self._interface, dom_name, 'set:', |
| + implementation_class=True) |
| if getter and html_getter_name: |
| self._AddGetter(getter, html_getter_name) |
| @@ -1526,6 +1528,9 @@ class HtmlDartiumInterfaceGenerator(object): |
| Arguments: |
| info: An OperationInfo object. |
| """ |
| + if self._shared.IsCustomInHtmlLibrary(self._interface, info.name): |
| + return |
| + |
| html_name = self._shared.RenameInHtmlLibrary( |
| self._interface, info.name, implementation_class=True) |