Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/scripts/idl_definitions.py |
| diff --git a/third_party/WebKit/Source/bindings/scripts/idl_definitions.py b/third_party/WebKit/Source/bindings/scripts/idl_definitions.py |
| index 5ed496a16d5c2ebd1169af656f1f53012b01f211..f6033eb0fd64288f21f176c6dbc79161432f0a2e 100644 |
| --- a/third_party/WebKit/Source/bindings/scripts/idl_definitions.py |
| +++ b/third_party/WebKit/Source/bindings/scripts/idl_definitions.py |
| @@ -295,6 +295,7 @@ class IdlInterface(object): |
| self.constructors = [] |
| self.custom_constructors = [] |
| self.extended_attributes = {} |
| + self.html_constructors = [] |
| self.operations = [] |
| self.parent = None |
| self.serializer = None |
| @@ -331,7 +332,7 @@ class IdlInterface(object): |
| self.constants.append(IdlConstant(idl_name, child)) |
| elif child_class == 'ExtAttributes': |
| extended_attributes = ext_attributes_node_to_extended_attributes(idl_name, child) |
| - self.constructors, self.custom_constructors = ( |
| + self.constructors, self.custom_constructors, self.html_constructors = ( |
| extended_attributes_to_constructors(idl_name, extended_attributes)) |
| clear_constructor_attributes(extended_attributes) |
| self.extended_attributes = extended_attributes |
| @@ -434,7 +435,7 @@ class IdlException(IdlInterface): |
| self.constants.append(IdlConstant(idl_name, child)) |
| elif child_class == 'ExtAttributes': |
| extended_attributes = ext_attributes_node_to_extended_attributes(idl_name, child) |
| - self.constructors, self.custom_constructors = ( |
| + self.constructors, self.custom_constructors, self.html_constructors = ( |
| extended_attributes_to_constructors(idl_name, extended_attributes)) |
| clear_constructor_attributes(extended_attributes) |
| self.extended_attributes = extended_attributes |
| @@ -968,6 +969,11 @@ def extended_attributes_to_constructors(idl_name, extended_attributes): |
| IdlOperation.constructor_from_arguments_node('CustomConstructor', idl_name, arguments_node) |
| for arguments_node in custom_constructor_list] |
| + if 'HTMLConstructor' in extended_attributes: |
| + html_constructors = [IdlOperation.constructor_from_arguments_node('HTMLConstructor', idl_name, None)] |
|
bashi
2016/10/04 05:53:51
Could you help me understand why we need to use a
|
| + else: |
| + html_constructors = [] |
| + |
| if 'NamedConstructor' in extended_attributes: |
| # FIXME: support overloaded named constructors, and make homogeneous |
| name = 'NamedConstructor' |
| @@ -981,7 +987,7 @@ def extended_attributes_to_constructors(idl_name, extended_attributes): |
| # FIXME: should return named_constructor separately; appended for Perl |
| constructors.append(named_constructor) |
| - return constructors, custom_constructors |
| + return constructors, custom_constructors, html_constructors |
| def clear_constructor_attributes(extended_attributes): |