| Differences between
and this patch
- a/Source/WebCore/ChangeLog +41 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2013-07-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2
3
        Get rid of multiple inheritance support from the bindings generators
4
        https://bugs.webkit.org/show_bug.cgi?id=118353
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Remove multiple inheritance support from the bindings generators and
9
        the IDL parser as this is no longer supported in Web IDL and it makes
10
        the scripts more complex than they needs to be.
11
12
        Multiple inheritance support is no longer needed now that our SVG
13
        interfaces have been updated to use the simpler SVG2 inheritance model
14
        and use Web IDL 'implements' statements.
15
16
        No new tests, no behavior change.
17
18
        * bindings/scripts/CodeGenerator.pm:
19
        (ForAllParents):
20
        * bindings/scripts/CodeGeneratorCPP.pm:
21
        (GetParentImplClassName):
22
        (GetParent):
23
        (GenerateImplementation):
24
        * bindings/scripts/CodeGeneratorGObject.pm:
25
        (GetParentClassName):
26
        (GetParentImplClassName):
27
        (GetParentGObjType):
28
        * bindings/scripts/CodeGeneratorJS.pm:
29
        (GetParentClassName):
30
        (GenerateHeader):
31
        (GenerateImplementation):
32
        (GenerateConstructorDefinition):
33
        * bindings/scripts/CodeGeneratorObjC.pm:
34
        (GetParentImplClassName):
35
        (GetParentAndProtocols):
36
        (GenerateImplementation):
37
        * bindings/scripts/IDLParser.pm:
38
        (parseInterface):
39
        (parseException):
40
        (parseInheritance):
41
1
2013-07-10  Roger Fong  <roger_fong@apple.com>
42
2013-07-10  Roger Fong  <roger_fong@apple.com>
2
43
3
        Plugins that don't support snapshotting should not all autostart.
44
        Plugins that don't support snapshotting should not all autostart.
- a/Source/WebCore/bindings/scripts/CodeGenerator.pm -55 / +3 lines
Lines 190-201 sub ForAllParents a/Source/WebCore/bindings/scripts/CodeGenerator.pm_sec1
190
    $recurse = sub {
190
    $recurse = sub {
191
        my $currentInterface = shift;
191
        my $currentInterface = shift;
192
192
193
        for (@{$currentInterface->parents}) {
193
        if ($currentInterface->parent) {
194
            my $interfaceName = $_;
194
            my $interfaceName = $currentInterface->parent;
195
            my $parentInterface = $object->ParseInterface($interfaceName);
195
            my $parentInterface = $object->ParseInterface($interfaceName);
196
196
197
            if ($beforeRecursion) {
197
            if ($beforeRecursion) {
198
                &$beforeRecursion($parentInterface) eq 'prune' and next;
198
                &$beforeRecursion($parentInterface) eq 'prune' and return;
199
            }
199
            }
200
            &$recurse($parentInterface);
200
            &$recurse($parentInterface);
201
            &$afterRecursion($parentInterface) if $afterRecursion;
201
            &$afterRecursion($parentInterface) if $afterRecursion;
Lines 205-262 sub ForAllParents a/Source/WebCore/bindings/scripts/CodeGenerator.pm_sec2
205
    &$recurse($interface);
205
    &$recurse($interface);
206
}
206
}
207
207
208
sub AddMethodsConstantsAndAttributesFromParentInterfaces
209
{
210
    # Add to $interface all of its inherited interface members, except for those
211
    # inherited through $interface's first listed parent.  If an array reference
212
    # is passed in as $parents, the names of all ancestor interfaces visited
213
    # will be appended to the array.  If $collectDirectParents is true, then
214
    # even the names of $interface's first listed parent and its ancestors will
215
    # be appended to $parents.
216
217
    my $object = shift;
218
    my $interface = shift;
219
    my $parents = shift;
220
    my $collectDirectParents = shift;
221
222
    my $first = 1;
223
224
    $object->ForAllParents($interface, sub {
225
        my $currentInterface = shift;
226
227
        if ($first) {
228
            # Ignore first parent class, already handled by the generation itself.
229
            $first = 0;
230
231
            if ($collectDirectParents) {
232
                # Just collect the names of the direct ancestor interfaces,
233
                # if necessary.
234
                push(@$parents, $currentInterface->name);
235
                $object->ForAllParents($currentInterface, sub {
236
                    my $currentInterface = shift;
237
                    push(@$parents, $currentInterface->name);
238
                }, undef);
239
            }
240
241
            # Prune the recursion here.
242
            return 'prune';
243
        }
244
245
        # Collect the name of this additional parent.
246
        push(@$parents, $currentInterface->name) if $parents;
247
248
        print "  |  |>  -> Inheriting "
249
            . @{$currentInterface->constants} . " constants, "
250
            . @{$currentInterface->functions} . " functions, "
251
            . @{$currentInterface->attributes} . " attributes...\n  |  |>\n" if $verbose;
252
253
        # Add this parent's members to $interface.
254
        push(@{$interface->constants}, @{$currentInterface->constants});
255
        push(@{$interface->functions}, @{$currentInterface->functions});
256
        push(@{$interface->attributes}, @{$currentInterface->attributes});
257
    });
258
}
259
260
sub FindSuperMethod
208
sub FindSuperMethod
261
{
209
{
262
    my ($object, $interface, $functionName) = @_;
210
    my ($object, $interface, $functionName) = @_;
- a/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm -17 / +6 lines
Lines 139-168 sub GetParentImplClassName a/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm_sec1
139
{
139
{
140
    my $interface = shift;
140
    my $interface = shift;
141
141
142
    if (@{$interface->parents} eq 0) {
142
    unless ($interface->parent) {
143
        return "EventTarget" if $interface->extendedAttributes->{"EventTarget"};
143
        return "EventTarget" if $interface->extendedAttributes->{"EventTarget"};
144
        return "Object";
144
        return "Object";
145
    }
145
    }
146
146
147
    return $interface->parents(0);
147
    return $interface->parent;
148
}
148
}
149
149
150
sub GetParent
150
sub GetParent
151
{
151
{
152
    my $interface = shift;
152
    my $interface = shift;
153
    my $numParents = @{$interface->parents};
154
153
155
    my $parent = "";
154
    my $parent;
156
    if ($numParents eq 0) {
155
    if (!$interface->parent) {
157
        $parent = "WebDOMObject";
156
        $parent = "WebDOMObject";
158
        $parent = "WebDOMEventTarget" if $interface->extendedAttributes->{"EventTarget"};
157
        $parent = "WebDOMEventTarget" if $interface->extendedAttributes->{"EventTarget"};
159
    } elsif ($numParents eq 1) {
160
        my $parentName = $interface->parents(0);
161
        $parent = "WebDOM" . $parentName;
162
    } else {
158
    } else {
163
        my @parents = @{$interface->parents};
159
        my $parentName = $interface->parent;
164
        my $firstParent = shift(@parents);
160
        $parent = "WebDOM" . $parentName;
165
        $parent = "WebDOM" . $firstParent;
166
    }
161
    }
167
162
168
    return $parent;
163
    return $parent;
Lines 591-602 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm_sec2
591
    my $object = shift;
586
    my $object = shift;
592
    my $interface = shift;
587
    my $interface = shift;
593
588
594
    my @ancestorInterfaceNames = ();
595
596
    if (@{$interface->parents} > 1) {
597
        $codeGenerator->AddMethodsConstantsAndAttributesFromParentInterfaces($interface, \@ancestorInterfaceNames);
598
    }
599
600
    my $interfaceName = $interface->name;
589
    my $interfaceName = $interface->name;
601
    my $className = GetClassName($interfaceName);
590
    my $className = GetClassName($interfaceName);
602
    my $implClassName = GetImplClassName($interfaceName);
591
    my $implClassName = GetImplClassName($interfaceName);
- a/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm -6 / +6 lines
Lines 87-101 EOF a/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm_sec1
87
sub GetParentClassName {
87
sub GetParentClassName {
88
    my $interface = shift;
88
    my $interface = shift;
89
89
90
    return "WebKitDOMObject" if @{$interface->parents} eq 0;
90
    return "WebKitDOMObject" unless $interface->parent;
91
    return "WebKitDOM" . $interface->parents(0);
91
    return "WebKitDOM" . $interface->parent;
92
}
92
}
93
93
94
sub GetParentImplClassName {
94
sub GetParentImplClassName {
95
    my $interface = shift;
95
    my $interface = shift;
96
96
97
    return "Object" if @{$interface->parents} eq 0;
97
    return "Object" unless $interface->parent;
98
    return $interface->parents(0);
98
    return $interface->parent;
99
}
99
}
100
100
101
sub IsBaseType
101
sub IsBaseType
Lines 183-190 sub ClassNameToGObjectType { a/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm_sec2
183
sub GetParentGObjType {
183
sub GetParentGObjType {
184
    my $interface = shift;
184
    my $interface = shift;
185
185
186
    return "WEBKIT_TYPE_DOM_OBJECT" if @{$interface->parents} eq 0;
186
    return "WEBKIT_TYPE_DOM_OBJECT" unless $interface->parent;
187
    return "WEBKIT_TYPE_DOM_" . ClassNameToGObjectType($interface->parents(0));
187
    return "WEBKIT_TYPE_DOM_" . ClassNameToGObjectType($interface->parent);
188
}
188
}
189
189
190
sub GetClassName {
190
sub GetClassName {
- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm -18 / +6 lines
Lines 167-174 sub GetParentClassName a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec1
167
    my $interface = shift;
167
    my $interface = shift;
168
168
169
    return $interface->extendedAttributes->{"JSLegacyParent"} if $interface->extendedAttributes->{"JSLegacyParent"};
169
    return $interface->extendedAttributes->{"JSLegacyParent"} if $interface->extendedAttributes->{"JSLegacyParent"};
170
    return "JSDOMWrapper" if (@{$interface->parents} eq 0);
170
    return "JSDOMWrapper" unless $interface->parent;
171
    return "JS" . $interface->parents(0);
171
    return "JS" . $interface->parent;
172
}
172
}
173
173
174
sub GetCallbackClassName
174
sub GetCallbackClassName
Lines 650-666 sub GenerateHeader a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec2
650
650
651
    my $interfaceName = $interface->name;
651
    my $interfaceName = $interface->name;
652
    my $className = "JS$interfaceName";
652
    my $className = "JS$interfaceName";
653
    my @ancestorInterfaceNames = ();
654
    my %structureFlags = ();
653
    my %structureFlags = ();
655
654
656
    # We only support multiple parents with SVG (for now).
657
    if (@{$interface->parents} > 1) {
658
        die "A class can't have more than one parent" unless $interfaceName =~ /SVG/;
659
        $codeGenerator->AddMethodsConstantsAndAttributesFromParentInterfaces($interface, \@ancestorInterfaceNames);
660
    }
661
662
    my $hasLegacyParent = $interface->extendedAttributes->{"JSLegacyParent"};
655
    my $hasLegacyParent = $interface->extendedAttributes->{"JSLegacyParent"};
663
    my $hasRealParent = @{$interface->parents} > 0;
656
    my $hasRealParent = $interface->parent;
664
    my $hasParent = $hasLegacyParent || $hasRealParent;
657
    my $hasParent = $hasLegacyParent || $hasRealParent;
665
    my $parentClassName = GetParentClassName($interface);
658
    my $parentClassName = GetParentClassName($interface);
666
    my $needsMarkChildren = $interface->extendedAttributes->{"JSCustomMarkFunction"} || $interface->extendedAttributes->{"EventTarget"} || $interface->name eq "EventTarget";
659
    my $needsMarkChildren = $interface->extendedAttributes->{"JSCustomMarkFunction"} || $interface->extendedAttributes->{"EventTarget"} || $interface->name eq "EventTarget";
Lines 1194-1205 sub GenerateHeader a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec3
1194
    push(@headerContent, "\n} // namespace WebCore\n\n");
1187
    push(@headerContent, "\n} // namespace WebCore\n\n");
1195
    push(@headerContent, "#endif // ${conditionalString}\n\n") if $conditionalString;
1188
    push(@headerContent, "#endif // ${conditionalString}\n\n") if $conditionalString;
1196
    push(@headerContent, "#endif\n");
1189
    push(@headerContent, "#endif\n");
1197
1198
    # - Generate dependencies.
1199
    if ($writeDependencies && @ancestorInterfaceNames) {
1200
        push(@depsContent, "$className.h : ", join(" ", map { "$_.idl" } @ancestorInterfaceNames), "\n");
1201
        push(@depsContent, map { "$_.idl :\n" } @ancestorInterfaceNames); 
1202
    }
1203
}
1190
}
1204
1191
1205
sub GenerateAttributesHashTable($$)
1192
sub GenerateAttributesHashTable($$)
Lines 1584-1590 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec4
1584
    my $className = "JS$interfaceName";
1571
    my $className = "JS$interfaceName";
1585
1572
1586
    my $hasLegacyParent = $interface->extendedAttributes->{"JSLegacyParent"};
1573
    my $hasLegacyParent = $interface->extendedAttributes->{"JSLegacyParent"};
1587
    my $hasRealParent = @{$interface->parents} > 0;
1574
    my $hasRealParent = $interface->parent;
1588
    my $hasParent = $hasLegacyParent || $hasRealParent;
1575
    my $hasParent = $hasLegacyParent || $hasRealParent;
1589
    my $parentClassName = GetParentClassName($interface);
1576
    my $parentClassName = GetParentClassName($interface);
1590
    my $visibleInterfaceName = $codeGenerator->GetVisibleInterfaceName($interface);
1577
    my $visibleInterfaceName = $codeGenerator->GetVisibleInterfaceName($interface);
Lines 4107-4113 bool fill${interfaceName}Init(${interfaceName}Init& eventInit, JSDictionary& dic a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm_sec5
4107
{
4094
{
4108
END
4095
END
4109
4096
4110
            foreach my $interfaceBase (@{$interface->parents}) {
4097
            if ($interface->parent) {
4098
                my $interfaceBase = $interface->parent;
4111
                push(@implContent, <<END);
4099
                push(@implContent, <<END);
4112
    if (!fill${interfaceBase}Init(eventInit, dictionary))
4100
    if (!fill${interfaceBase}Init(eventInit, dictionary))
4113
        return false;
4101
        return false;
- a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm -36 / +7 lines
Lines 338-349 sub GetParentImplClassName a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm_sec1
338
{
338
{
339
    my $interface = shift;
339
    my $interface = shift;
340
340
341
    return "Object" if @{$interface->parents} eq 0;
341
    return "Object" unless $interface->parent;
342
342
343
    my $parent = $interface->parents(0);
343
    my $parent = $interface->parent;
344
344
345
    # special cases
345
    # special cases
346
    return "Object" if $parent eq "HTMLCollection";
346
    return "Object" if $parent eq "HTMLCollection" or $parent eq "EventTarget";
347
347
348
    return $parent;
348
    return $parent;
349
}
349
}
Lines 351-398 sub GetParentImplClassName a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm_sec2
351
sub GetParentAndProtocols
351
sub GetParentAndProtocols
352
{
352
{
353
    my $interface = shift;
353
    my $interface = shift;
354
    my $numParents = @{$interface->parents};
355
354
356
    my $parent = "";
355
    my $parent = "";
357
    my @protocols = ();
356
    my @protocols = ();
358
    if ($numParents eq 0) {
357
    if (!$interface->parent) {
359
        if ($isProtocol) {
358
        if ($isProtocol) {
360
            push(@protocols, "NSObject");
359
            push(@protocols, "NSObject");
361
            push(@protocols, "NSCopying") if $interface->name eq "EventTarget";
360
            push(@protocols, "NSCopying") if $interface->name eq "EventTarget";
362
        } else {
361
        } else {
363
            $parent = "DOMObject";
362
            $parent = "DOMObject";
364
        }
363
        }
365
    } elsif ($numParents eq 1) {
364
    } else {
366
        my $parentName = $interface->parents(0);
365
        my $parentName = $interface->parent;
367
        if ($isProtocol) {
366
        if ($isProtocol) {
368
            die "Parents of protocols must also be protocols." unless IsProtocolType($parentName);
367
            die "Parents of protocols must also be protocols." unless IsProtocolType($parentName);
369
            push(@protocols, "DOM" . $parentName);
368
            push(@protocols, "DOM" . $parentName);
370
        } else {
369
        } else {
371
            if (IsProtocolType($parentName)) {
370
            if (IsProtocolType($parentName)) {
372
                push(@protocols, "DOM" . $parentName);
371
                push(@protocols, "DOM" . $parentName);
372
                $parent = "DOMObject" if $parentName eq "EventTarget";
373
            } elsif ($parentName eq "HTMLCollection") {
373
            } elsif ($parentName eq "HTMLCollection") {
374
                $parent = "DOMObject";
374
                $parent = "DOMObject";
375
            } else {
375
            } else {
376
                $parent = "DOM" . $parentName;
376
                $parent = "DOM" . $parentName;
377
            }
377
            }
378
        }
378
        }
379
    } else {
380
        my @parents = @{$interface->parents};
381
        my $firstParent = shift(@parents);
382
        if (IsProtocolType($firstParent)) {
383
            push(@protocols, "DOM" . $firstParent);
384
            if (!$isProtocol) {
385
                $parent = "DOMObject";
386
            }
387
        } else {
388
            $parent = "DOM" . $firstParent;
389
        }
390
391
        foreach my $parentName (@parents) {
392
            die "Everything past the first class should be a protocol!" unless IsProtocolType($parentName);
393
394
            push(@protocols, "DOM" . $parentName);
395
        }
396
    }
379
    }
397
380
398
    return ($parent, @protocols);
381
    return ($parent, @protocols);
Lines 1045-1056 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm_sec3
1045
    my $object = shift;
1028
    my $object = shift;
1046
    my $interface = shift;
1029
    my $interface = shift;
1047
1030
1048
    my @ancestorInterfaceNames = ();
1049
1050
    if (@{$interface->parents} > 1) {
1051
        $codeGenerator->AddMethodsConstantsAndAttributesFromParentInterfaces($interface, \@ancestorInterfaceNames);
1052
    }
1053
1054
    my $interfaceName = $interface->name;
1031
    my $interfaceName = $interface->name;
1055
    my $className = GetClassName($interfaceName);
1032
    my $className = GetClassName($interfaceName);
1056
    my $implClassName = GetImplClassName($interfaceName);
1033
    my $implClassName = GetImplClassName($interfaceName);
Lines 1755-1766 sub GenerateImplementation a/Source/WebCore/bindings/scripts/CodeGeneratorObjC.pm_sec4
1755
1732
1756
    # - End the ifdef conditional if necessary
1733
    # - End the ifdef conditional if necessary
1757
    push(@implContent, "\n#endif // ${conditionalString}\n") if $conditionalString;
1734
    push(@implContent, "\n#endif // ${conditionalString}\n") if $conditionalString;
1758
1759
    # - Generate dependencies.
1760
    if ($writeDependencies && @ancestorInterfaceNames) {
1761
        push(@depsContent, "$className.h : ", join(" ", map { "$_.idl" } @ancestorInterfaceNames), "\n");
1762
        push(@depsContent, map { "$_.idl :\n" } @ancestorInterfaceNames); 
1763
    }
1764
}
1735
}
1765
1736
1766
# Internal helper
1737
# Internal helper
- a/Source/WebCore/bindings/scripts/IDLParser.pm -9 / +6 lines
Lines 43-49 struct( idlDocument => { a/Source/WebCore/bindings/scripts/IDLParser.pm_sec1
43
# Used to represent 'interface' blocks
43
# Used to represent 'interface' blocks
44
struct( domInterface => {
44
struct( domInterface => {
45
    name => '$',      # Class identifier
45
    name => '$',      # Class identifier
46
    parents => '@',      # List of strings
46
    parent => '$',      # Parent class identifier
47
    constants => '@',    # List of 'domConstant'
47
    constants => '@',    # List of 'domConstant'
48
    functions => '@',    # List of 'domFunction'
48
    functions => '@',    # List of 'domFunction'
49
    anonymousFunctions => '@', # List of 'domFunction'
49
    anonymousFunctions => '@', # List of 'domFunction'
Lines 496-502 sub parseInterface a/Source/WebCore/bindings/scripts/IDLParser.pm_sec2
496
        my $interfaceNameToken = $self->getToken();
496
        my $interfaceNameToken = $self->getToken();
497
        $self->assertTokenType($interfaceNameToken, IdentifierToken);
497
        $self->assertTokenType($interfaceNameToken, IdentifierToken);
498
        $interface->name($interfaceNameToken->value());
498
        $interface->name($interfaceNameToken->value());
499
        push(@{$interface->parents}, @{$self->parseInheritance()});
499
        $interface->parent($self->parseInheritance());
500
        $self->assertTokenValue($self->getToken(), "{", __LINE__);
500
        $self->assertTokenValue($self->getToken(), "{", __LINE__);
501
        my $interfaceMembers = $self->parseInterfaceMembers();
501
        my $interfaceMembers = $self->parseInterfaceMembers();
502
        $self->assertTokenValue($self->getToken(), "}", __LINE__);
502
        $self->assertTokenValue($self->getToken(), "}", __LINE__);
Lines 695-701 sub parseException a/Source/WebCore/bindings/scripts/IDLParser.pm_sec3
695
        $self->assertTokenType($exceptionNameToken, IdentifierToken);
695
        $self->assertTokenType($exceptionNameToken, IdentifierToken);
696
        $interface->name($exceptionNameToken->value());
696
        $interface->name($exceptionNameToken->value());
697
        $interface->isException(1);
697
        $interface->isException(1);
698
        push(@{$interface->parents}, @{$self->parseInheritance()});
698
        $interface->parent($self->parseInheritance());
699
        $self->assertTokenValue($self->getToken(), "{", __LINE__);
699
        $self->assertTokenValue($self->getToken(), "{", __LINE__);
700
        my $exceptionMembers = $self->parseExceptionMembers();
700
        my $exceptionMembers = $self->parseExceptionMembers();
701
        $self->assertTokenValue($self->getToken(), "}", __LINE__);
701
        $self->assertTokenValue($self->getToken(), "}", __LINE__);
Lines 731-747 sub parseExceptionMembers a/Source/WebCore/bindings/scripts/IDLParser.pm_sec4
731
sub parseInheritance
731
sub parseInheritance
732
{
732
{
733
    my $self = shift;
733
    my $self = shift;
734
    my @parent = ();
734
    my $parent;
735
735
736
    my $next = $self->nextToken();
736
    my $next = $self->nextToken();
737
    if ($next->value() eq ":") {
737
    if ($next->value() eq ":") {
738
        $self->assertTokenValue($self->getToken(), ":", __LINE__);
738
        $self->assertTokenValue($self->getToken(), ":", __LINE__);
739
        my $scopedName = $self->parseScopedName();
739
        $parent = $self->parseScopedName();
740
        push(@parent, $scopedName);
741
        # Multiple inheritance?
742
        push(@parent, @{$self->parseIdentifiers()});
743
    }
740
    }
744
    return \@parent;
741
    return $parent;
745
}
742
}
746
743
747
sub parseEnum
744
sub parseEnum
- a/Source/WebCore/dom/Node.idl -3 / +1 lines
Lines 31-37 a/Source/WebCore/dom/Node.idl_sec1
31
    ObjCPolymorphic,
31
    ObjCPolymorphic,
32
] interface Node
32
] interface Node
33
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
33
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
34
    : Object, EventTarget
34
    : EventTarget
35
#endif /* defined(LANGUAGE_OBJECTIVE_C) */
35
#endif /* defined(LANGUAGE_OBJECTIVE_C) */
36
 {
36
 {
37
    // NodeType
37
    // NodeType
Lines 125-131 a/Source/WebCore/dom/Node.idl_sec2
125
#endif /* defined(LANGUAGE_OBJECTIVE_C) */
125
#endif /* defined(LANGUAGE_OBJECTIVE_C) */
126
126
127
#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
127
#if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP
128
#if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C
129
    void addEventListener([Atomic] DOMString type, 
128
    void addEventListener([Atomic] DOMString type, 
130
                          EventListener listener, 
129
                          EventListener listener, 
131
                          optional boolean useCapture);
130
                          optional boolean useCapture);
Lines 134-140 a/Source/WebCore/dom/Node.idl_sec3
134
                             optional boolean useCapture);
133
                             optional boolean useCapture);
135
    [RaisesException] boolean dispatchEvent(Event event);
134
    [RaisesException] boolean dispatchEvent(Event event);
136
#endif
135
#endif
137
#endif
138
136
139
#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
137
#if defined(LANGUAGE_CPP) && LANGUAGE_CPP
140
    [Custom] void addEventListener(DOMString type, 
138
    [Custom] void addEventListener(DOMString type, 
- a/Source/WebCore/svg/SVGElementInstance.idl -6 / +1 lines
Lines 30-41 a/Source/WebCore/svg/SVGElementInstance.idl_sec1
30
    JSGenerateToNativeObject,
30
    JSGenerateToNativeObject,
31
    JSGenerateToJSObject,
31
    JSGenerateToJSObject,
32
    EventTarget
32
    EventTarget
33
] interface SVGElementInstance
33
] interface SVGElementInstance : EventTarget
34
#if defined(LANGUAGE_OBJECTIVE_C) && LANGUAGE_OBJECTIVE_C
35
    : Object, EventTarget
36
#else
37
    : EventTarget
38
#endif /* defined(LANGUAGE_OBJECTIVE_C) */
39
{
34
{
40
    readonly attribute SVGElement correspondingElement;
35
    readonly attribute SVGElement correspondingElement;
41
    readonly attribute SVGUseElement correspondingUseElement;
36
    readonly attribute SVGUseElement correspondingUseElement;
- a/Tools/ChangeLog +14 lines
Lines 1-3 a/Tools/ChangeLog_sec1
1
2013-07-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2
3
        Get rid of multiple inheritance support from the bindings generators
4
        https://bugs.webkit.org/show_bug.cgi?id=118353
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Update CodeGeneratorTestRunner.pm as domInterface->parents was renamed
9
        to domInterface->parent now that we no longer support multiple
10
        inheritance.
11
12
        * WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:
13
        (_parentInterface):
14
1
2013-07-10  Sergio Correia  <sergio.correia@openbossa.org>
15
2013-07-10  Sergio Correia  <sergio.correia@openbossa.org>
2
16
3
        Handle "load,provisional,failed" with the on_error callback on EFL MiniBrowser
17
        Handle "load,provisional,failed" with the on_error callback on EFL MiniBrowser
- a/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm -1 / +1 lines
Lines 416-422 sub _parentClassRefGetterExpression a/Tools/WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm_sec1
416
sub _parentInterface
416
sub _parentInterface
417
{
417
{
418
    my ($interface) = @_;
418
    my ($interface) = @_;
419
    return $interface->parents->[0];
419
    return $interface->parent;
420
}
420
}
421
421
422
sub _platformType
422
sub _platformType

Return to Bug 118353