Index: Source/bindings/scripts/interface_dependency_resolver.py |
diff --git a/Source/bindings/scripts/interface_dependency_resolver.py b/Source/bindings/scripts/interface_dependency_resolver.py |
index 131469d5a66af5ac53afca228ab437b56afe4a9c..f0fdd2388c87ce33cfbfb5b932ad1166846c6a27 100644 |
--- a/Source/bindings/scripts/interface_dependency_resolver.py |
+++ b/Source/bindings/scripts/interface_dependency_resolver.py |
@@ -143,15 +143,17 @@ def transfer_extended_attributes(dependency_interface, dependency_interface_base |
# C++ class name of the implementation, stored in [ImplementedBy], which |
# defaults to the basename of dependency IDL file. |
- # This can be overridden by [ImplementedAs] on the dependency interface. |
+ # This can be overridden by [ImplementedAs] on the dependency interface, |
+ # and omitted entirely by [ImplementedInBaseClass]. |
# Note that [ImplementedAs] is used with different meanings on interfaces |
# and members: |
# for Blink class name and function name (or constant name), respectively. |
# Thus we do not want to copy this from the interface to the member, but |
# instead extract it and handle it separately. |
- merged_extended_attributes['ImplementedBy'] = ( |
- dependency_interface.extended_attributes.get( |
- 'ImplementedAs', dependency_interface_basename)) |
+ if 'ImplementedInBaseClass' not in dependency_interface.extended_attributes: |
+ merged_extended_attributes['ImplementedBy'] = ( |
+ dependency_interface.extended_attributes.get( |
+ 'ImplementedAs', dependency_interface_basename)) |
for attribute in dependency_interface.attributes: |
attribute.extended_attributes.update(merged_extended_attributes) |