Chromium Code Reviews| Index: lib/dom/scripts/systemhtml.py |
| diff --git a/lib/dom/scripts/systemhtml.py b/lib/dom/scripts/systemhtml.py |
| index 5b5da6bb29a6950884bc26fe5b80d1a4436af051..bb08af85fc8aa4e3b4032766eefa36875a022996 100644 |
| --- a/lib/dom/scripts/systemhtml.py |
| +++ b/lib/dom/scripts/systemhtml.py |
| @@ -253,12 +253,12 @@ _html_library_remove = set([ |
| "Node.lookupPrefix", |
| "Node.get:PROCESSING_INSTRUCTION_NODE", |
| "IFrameElement.get:contentDocument", |
| - "IFrameElement.get:contentWindow", |
| "Window.get:frameElement", |
| ]) |
| _html_library_custom = set([ |
| 'Document.querySelector', |
| + 'IFrameElement.get:contentWindow', |
|
Anton Muhin
2012/05/24 17:16:58
why this move?
podivilov
2012/05/25 12:00:35
contentWindow is not removed from dart:html, it ju
|
| 'Window.get:document', |
| 'Window.get:top', |
| ]) |
| @@ -549,52 +549,45 @@ class HtmlSystemShared(object): |
| self._database = database |
| self._inheritance_closure = _ComputeInheritanceClosure(database) |
| - def _AllowInHtmlLibrary(self, interface, member, member_prefix): |
| - return not self._Matches(interface, member, member_prefix, |
| - _html_library_remove) |
| - |
| - def _Matches(self, interface, member, member_prefix, candidates): |
| - for interface_name in self._AllAncestorInterfaces(interface): |
| - if (DartType(interface_name) + '.' + member in candidates or |
| - DartType(interface_name) + '.' + member_prefix + member in candidates): |
| + def _Matches(self, interface_name, member, member_prefix, candidates): |
| + for ancestor_name in self._AllAncestorInterfaces(interface_name): |
| + if (DartType(ancestor_name) + '.' + member in candidates or |
| + DartType(ancestor_name) + '.' + member_prefix + member in candidates): |
| return True |
| return False |
| - def _AllAncestorInterfaces(self, interface): |
| - return [interface.id] + self._inheritance_closure[interface.id] |
| + def _AllAncestorInterfaces(self, interface_name): |
| + return [interface_name] + self._inheritance_closure[interface_name] |
| - def RenameInHtmlLibrary(self, interface, member, member_prefix='', |
| + def RenameInHtmlLibrary(self, interface_name, member, member_prefix='', |
| implementation_class=False): |
| """ |
| Returns the name of the member in the HTML library or None if the member is |
| suppressed in the HTML library |
| """ |
| - if not self._AllowInHtmlLibrary(interface, member, member_prefix): |
| + if self._Matches(interface_name, member, member_prefix, |
| + _html_library_remove): |
| return None |
| target_name = member |
| - for interface_name in self._AllAncestorInterfaces(interface): |
| - name = interface_name + '.' + member |
| + for ancestor_name in self._AllAncestorInterfaces(interface_name): |
|
Anton Muhin
2012/05/24 17:16:58
it looks like now you can merge this logic into _M
podivilov
2012/05/25 12:00:35
Could you please clarify? I don't see how it can b
Anton Muhin
2012/05/25 12:04:29
Sorry.
It looks like the loop below is almost _Ma
podivilov
2012/05/25 12:16:32
_Matches works with sets, while _html_library_rena
Anton Muhin
2012/05/25 12:17:45
I think it's worth it, but up to you.
On 2012/05/
podivilov
2012/05/25 12:37:54
Done.
Anton Muhin
2012/05/25 12:39:16
Thanks a lot! Still LGTM
On 2012/05/25 12:37:54,
|
| + name = ancestor_name + '.' + member |
| if name in _html_library_renames: |
| target_name = _html_library_renames[name] |
| - name = interface.id + '.' + member_prefix + member |
| + name = interface_name + '.' + member_prefix + member |
| if name in _html_library_renames: |
| target_name = _html_library_renames[name] |
| if not target_name.startswith('_'): |
| - if self._PrivateInHtmlLibrary(interface, member, member_prefix): |
| + if self._Matches(interface_name, member, member_prefix, |
| + _private_html_members): |
| if not target_name.startswith('$dom_'): # e.g. $dom_svgClassName |
| target_name = '$dom_' + target_name |
|
Anton Muhin
2012/05/24 17:16:58
this works by a chance as you don't account for me
podivilov
2012/05/25 12:00:35
member_prefix is passed to self._Matches above. Am
Anton Muhin
2012/05/25 12:04:29
Yes, sorry, I was wrong.
On 2012/05/25 12:00:35,
|
| - # No rename required |
| return target_name |
| - def _PrivateInHtmlLibrary(self, interface, member, member_prefix): |
| - return self._Matches(interface, member, member_prefix, |
| - _private_html_members) |
| - |
| def IsCustomInHtmlLibrary(self, interface, member, member_prefix=''): |
| - return self._Matches(interface, member, member_prefix, |
| + return self._Matches(interface.id, member, member_prefix, |
| _html_library_custom) |
| # TODO(jacobr): this already exists |
| @@ -837,9 +830,9 @@ class HtmlDartInterfaceGenerator(DartInterfaceGenerator): |
| def AddAttribute(self, getter, setter): |
| dom_name = DartDomNameOfAttribute(getter) |
| html_getter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'get:') |
| + self._interface.id, dom_name, 'get:') |
| html_setter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'set:') |
| + self._interface.id, dom_name, 'set:') |
| if not html_getter_name or self._shared.IsPrivate(html_getter_name): |
| getter = None |
| @@ -876,7 +869,7 @@ class HtmlDartInterfaceGenerator(DartInterfaceGenerator): |
| name. |
| """ |
| html_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, info.name) |
| + self._interface.id, info.name) |
| if html_name and not self._shared.IsPrivate(html_name): |
| self._members_emitter.Emit('\n /** @domName $DOMINTERFACE.$DOMNAME */', |
| DOMINTERFACE=info.overloads[0].doc_js_interface_name, |
| @@ -1062,13 +1055,13 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator): |
| if not self._shared.IsCustomInHtmlLibrary( |
| self._interface, dom_name, 'get:'): |
| html_getter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'get:', |
| + self._interface.id, 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:', |
| + self._interface.id, dom_name, 'set:', |
| implementation_class=True) |
| if not html_getter_name: |
| @@ -1163,7 +1156,7 @@ class HtmlFrogClassGenerator(FrogInterfaceGenerator): |
| return |
| html_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, info.name, implementation_class=True) |
| + self._interface.id, info.name, implementation_class=True) |
| if not html_name: |
| return |
| @@ -1523,13 +1516,13 @@ class HtmlDartiumInterfaceGenerator(object): |
| if not self._shared.IsCustomInHtmlLibrary( |
| self._interface, dom_name, 'get:'): |
| html_getter_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, dom_name, 'get:', |
| + self._interface.id, 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:', |
| + self._interface.id, dom_name, 'set:', |
| implementation_class=True) |
| if getter and html_getter_name: |
| @@ -1540,9 +1533,8 @@ class HtmlDartiumInterfaceGenerator(object): |
| def _AddGetter(self, attr, html_name): |
| self._members_emitter.Emit( |
| '\n' |
| - ' $TYPE get $(HTML_NAME)() => _wrap($(THIS).$DOM_NAME);\n', |
| + ' $TYPE get $(HTML_NAME)() => _wrap($(THIS).$HTML_NAME);\n', |
| HTML_NAME=html_name, |
| - DOM_NAME=DartDomNameOfAttribute(attr), |
| TYPE=DartType(attr.type.id), |
| THIS=self.DomObjectName()) |
| @@ -1550,9 +1542,8 @@ class HtmlDartiumInterfaceGenerator(object): |
| self._members_emitter.Emit( |
| '\n' |
| ' void set $(HTML_NAME)($TYPE value) { ' |
| - '$(THIS).$DOM_NAME = _unwrap(value); }\n', |
| + '$(THIS).$HTML_NAME = _unwrap(value); }\n', |
| HTML_NAME=html_name, |
| - DOM_NAME=DartDomNameOfAttribute(attr), |
| TYPE=DartType(attr.type.id), |
| THIS=self.DomObjectName()) |
| @@ -1661,13 +1652,13 @@ class HtmlDartiumInterfaceGenerator(object): |
| return |
| html_name = self._shared.RenameInHtmlLibrary( |
| - self._interface, info.name, implementation_class=True) |
| + self._interface.id, info.name, implementation_class=True) |
| if not html_name: |
| return |
| arguments = self._UnwrappedParameters(info, len(info.param_infos)) |
| - function_call = '%s.%s(%s)' % (self.DomObjectName(), info.name, arguments) |
| + function_call = '%s.%s(%s)' % (self.DomObjectName(), html_name, arguments) |
| if info.type_name != 'void': |
| # We could place the logic for handling Document directly in _wrap |
| # but we chose to place it here so that bugs in the wrapper and |