| Index: tools/dom/scripts/systemnative.py
|
| diff --git a/tools/dom/scripts/systemnative.py b/tools/dom/scripts/systemnative.py
|
| index 84bfa75280434f76c3e0b1876e093473cf1c3b46..cc9966158b8a6fb5ba10ab0134276204676f117f 100644
|
| --- a/tools/dom/scripts/systemnative.py
|
| +++ b/tools/dom/scripts/systemnative.py
|
| @@ -13,40 +13,6 @@ from htmldartgenerator import *
|
| from idlnode import IDLArgument, IDLAttribute, IDLEnum, IDLMember
|
| from systemhtml import js_support_checks, GetCallbackInfo, HTML_LIBRARY_NAMES
|
|
|
| -# This is an ugly hack to get things working on the M35 roll. Once we
|
| -# generate dart:blink from the new scripts, this shouldn't be needed.
|
| -_cpp_resolver_string_map = {
|
| - # These custom constructors all resolve to a common entry, so choosing any
|
| - # of the generated strings works.
|
| - 'ConsoleBase_assertCondition_Callback_boolean_object':
|
| - 'ConsoleBase_assert_Callback_boolean_object',
|
| - 'FormData_constructorCallback':
|
| - 'FormData_constructorCallback_HTMLFormElement',
|
| - # This callback name just gets generated sligtly different and we don't
|
| - # want to bother fixing it.
|
| - 'ScriptProcessorNode__setEventListener_Callback':
|
| - 'ScriptProcessorNode_setEventListener_Callback',
|
| - # We don't know how to get GLenum to show up as the correct type in this
|
| - # script and don't want to bother fixing it the right way.
|
| - 'WebGLDrawBuffers_drawBuffersWEBGL_Callback_sequence<GLenum>' :
|
| - 'WebGLDrawBuffers_drawBuffersWEBGL_Callback_sequence<unsigned long>',
|
| - # Blink 36 fixes.
|
| - 'CanvasRenderingContext2D_setLineDash_Callback_sequence<float>' :
|
| - 'CanvasRenderingContext2D_setLineDash_Callback_sequence<unrestricted float>',
|
| -
|
| - # SVGGraphicsElement is base class.
|
| - 'SVGUseElement_hasExtension_Callback_DOMString' :
|
| - 'SVGGraphicsElement_hasExtension_Callback_DOMString',
|
| - 'SVGUseElement_systemLanguage_Getter' :
|
| - 'SVGGraphicsElement_systemLanguage_Getter',
|
| - 'SVGUseElement_requiredFeatures_Getter' :
|
| - 'SVGGraphicsElement_requiredFeatures_Getter',
|
| - 'SVGUseElement_requiredExtensions_Getter' :
|
| - 'SVGGraphicsElement_requiredExtensions_Getter',
|
| -
|
| - 'Gamepad_buttons_Getter' : 'WebKitGamepad_buttons_Getter',
|
| -}
|
| -
|
| # TODO(vsm): This logic needs to pulled from the source IDL. These tables are
|
| # an ugly workaround.
|
| _cpp_callback_map = {
|
| @@ -611,7 +577,7 @@ class DartiumBackend(HtmlDartGenerator):
|
| return "$" + s
|
| return s
|
|
|
| - if count:
|
| + if count is not None:
|
| arity = str(count)
|
| dart_name = mkPublic("_".join([tag, arity]))
|
| else:
|
| @@ -692,10 +658,10 @@ class DartiumBackend(HtmlDartGenerator):
|
| if 'EventConstructor' in self._interface.ext_attrs:
|
| self._native_class_emitter.Emit(
|
| '\n'
|
| - ' static constructorCallback(type, options) native "$(INTERFACE_NAME)_constructorCallback";\n',
|
| + ' static constructorCallback_2(type, options) native "$(INTERFACE_NAME)_constructorCallback";\n',
|
| INTERFACE_NAME=self._interface.id
|
| )
|
| - self._blink_entries = set()
|
| + self._blink_entries = {}
|
|
|
| def _EmitConstructorInfrastructure(self,
|
| constructor_info, cpp_prefix, cpp_suffix, factory_method_name,
|
| @@ -715,17 +681,10 @@ class DartiumBackend(HtmlDartGenerator):
|
|
|
| dart_native_name, constructor_callback_id = \
|
| self.DeriveNativeEntry(cpp_suffix, 'Constructor', argument_count)
|
| - if constructor_callback_id in _cpp_resolver_string_map:
|
| - constructor_callback_id = \
|
| - _cpp_resolver_string_map[constructor_callback_id]
|
| if dart_native_name not in self._blink_entries:
|
| - self._blink_entries.add(dart_native_name)
|
| - self._native_class_emitter.Emit(
|
| - '\n'
|
| - ' static $FACTORY_METHOD_NAME($PARAMETERS) native "$ID";\n',
|
| - FACTORY_METHOD_NAME=dart_native_name,
|
| - PARAMETERS=parameters,
|
| - ID=constructor_callback_id)
|
| + entry = ' static %s(%s) native "%s";' % \
|
| + (dart_native_name, parameters, constructor_callback_id)
|
| + self._blink_entries[dart_native_name] = entry
|
|
|
| # Then we emit the impedance matching wrapper to call out to the
|
| # toplevel wrapper
|
| @@ -825,6 +784,12 @@ class DartiumBackend(HtmlDartGenerator):
|
|
|
| self._GenerateCPPHeader()
|
|
|
| + for entry in sorted(self._blink_entries):
|
| + self._native_class_emitter.Emit(
|
| + '\n' + self._blink_entries[entry] + '\n')
|
| +
|
| + self._native_class_emitter.Emit('\n')
|
| +
|
| self._cpp_impl_emitter.Emit(
|
| self._template_loader.Load('cpp_implementation.template'),
|
| INTERFACE=self._interface.id,
|
| @@ -1016,7 +981,7 @@ class DartiumBackend(HtmlDartGenerator):
|
| native_entry = \
|
| self.DeriveNativeEntry(attr.id, 'Getter', None)
|
| cpp_callback_name = self._GenerateNativeBinding(attr.id, 1,
|
| - dart_declaration, False, return_type, parameters,
|
| + dart_declaration, attr.is_static, return_type, parameters,
|
| native_suffix, is_custom, auto_scope_setup, native_entry=native_entry)
|
| if is_custom:
|
| return
|
| @@ -1071,7 +1036,7 @@ class DartiumBackend(HtmlDartGenerator):
|
| native_entry = \
|
| self.DeriveNativeEntry(attr.id, 'Setter', None)
|
| cpp_callback_name = self._GenerateNativeBinding(attr.id, 2,
|
| - dart_declaration, False, return_type, parameters,
|
| + dart_declaration, attr.is_static, return_type, parameters,
|
| native_suffix, is_custom, auto_scope_setup, native_entry=native_entry)
|
| if is_custom:
|
| return
|
| @@ -1133,9 +1098,6 @@ class DartiumBackend(HtmlDartGenerator):
|
| # Calls to this are emitted elsewhere,
|
| dart_native_name, resolver_string = \
|
| self.DeriveNativeEntry("item", 'Method', 1)
|
| - if resolver_string in _cpp_resolver_string_map:
|
| - resolver_string = \
|
| - _cpp_resolver_string_map[resolver_string]
|
|
|
| # Emit the method which calls the toplevel function, along with
|
| # the [] operator.
|
| @@ -1714,30 +1676,30 @@ class DartiumBackend(HtmlDartGenerator):
|
| else:
|
| formals = ", ".join(parameters)
|
| actuals = ", ".join(parameters)
|
| - if native_binding in _cpp_resolver_string_map:
|
| - native_binding = \
|
| - _cpp_resolver_string_map[native_binding]
|
| if dart_native_name not in self._blink_entries:
|
| - self._blink_entries.add(dart_native_name)
|
| - self._native_class_emitter.Emit(
|
| - '\n'
|
| - ' static $DART_NAME($FORMALS) native "$NATIVE_BINDING";\n',
|
| - DART_NAME=dart_native_name,
|
| - FORMALS=formals,
|
| - NATIVE_BINDING=native_binding)
|
| + entry = ' static %s(%s) native "%s";' % \
|
| + (dart_native_name, formals, native_binding)
|
| + self._blink_entries[dart_native_name] = entry
|
|
|
| if not emit_to_native:
|
| caller_emitter = self._members_emitter
|
| full_dart_name = \
|
| self.DeriveQualifiedBlinkName(self._interface.id,
|
| dart_native_name)
|
| - caller_emitter.Emit(
|
| - '\n'
|
| - ' $METADATA$DART_DECLARATION => $DART_NAME($ACTUALS);\n',
|
| - METADATA=metadata,
|
| - DART_DECLARATION=dart_declaration,
|
| - DART_NAME=full_dart_name,
|
| - ACTUALS=actuals)
|
| + if IsPureInterface(self._interface.id):
|
| + caller_emitter.Emit(
|
| + '\n'
|
| + ' $METADATA$DART_DECLARATION;\n',
|
| + METADATA=metadata,
|
| + DART_DECLARATION=dart_declaration)
|
| + else:
|
| + caller_emitter.Emit(
|
| + '\n'
|
| + ' $METADATA$DART_DECLARATION => $DART_NAME($ACTUALS);\n',
|
| + METADATA=metadata,
|
| + DART_DECLARATION=dart_declaration,
|
| + DART_NAME=full_dart_name,
|
| + ACTUALS=actuals)
|
| cpp_callback_name = '%s%s' % (idl_name, native_suffix)
|
|
|
| self._cpp_resolver_emitter.Emit(
|
|
|