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

Unified Diff: lib/dom/scripts/systemhtml.py

Issue 10448009: Apply html renames to native wrappers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/dom/scripts/dartdomgenerator.py ('k') | lib/dom/scripts/systemnative.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « lib/dom/scripts/dartdomgenerator.py ('k') | lib/dom/scripts/systemnative.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698