Diff
Modified: trunk/Source/WebCore/ChangeLog (140937 => 140938)
--- trunk/Source/WebCore/ChangeLog 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/ChangeLog 2013-01-28 04:06:27 UTC (rev 140938)
@@ -1,3 +1,27 @@
+2013-01-27 Kentaro Hara <[email protected]>
+
+ An [ActiveDOMObject] IDL attribute should be inherited
+ https://bugs.webkit.org/show_bug.cgi?id=107877
+
+ Reviewed by Adam Barth.
+
+ Now we support IDL attribute inheritance. We can remove
+ [ActiveDOMObject] from subclasses.
+
+ No tests. No change in behavior.
+
+ * Modules/indexeddb/IDBOpenDBRequest.idl:
+ * Modules/webaudio/OfflineAudioContext.idl:
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GenerateHeader):
+ (GenerateImplementation):
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateHeader):
+ (GenerateNamedConstructorCallback):
+ (GenerateImplementation):
+ * workers/SharedWorker.idl:
+ * workers/Worker.idl:
+
2013-01-27 Sheriff Bot <[email protected]>
Unreviewed, rolling out r140602.
Modified: trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.idl (140937 => 140938)
--- trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.idl 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/Modules/indexeddb/IDBOpenDBRequest.idl 2013-01-28 04:06:27 UTC (rev 140938)
@@ -25,7 +25,6 @@
[
Conditional=INDEXED_DATABASE,
- ActiveDOMObject,
EventTarget,
JSNoStaticTables,
JSGenerateToJSObject
Modified: trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl (140937 => 140938)
--- trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/Modules/webaudio/OfflineAudioContext.idl 2013-01-28 04:06:27 UTC (rev 140938)
@@ -24,7 +24,6 @@
[
Conditional=WEB_AUDIO,
- ActiveDOMObject,
EventTarget,
JSGenerateToJSObject,
Constructor(in unsigned long numberOfChannels, in unsigned long numberOfFrames, in float sampleRate),
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (140937 => 140938)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-01-28 04:06:27 UTC (rev 140938)
@@ -1039,7 +1039,7 @@
GetGenerateIsReachable($interface) ||
GetCustomIsReachable($interface) ||
$interface->extendedAttributes->{"JSCustomFinalize"} ||
- $interface->extendedAttributes->{"ActiveDOMObject"}) {
+ $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
if ($interfaceName ne "Node" && $codeGenerator->InheritsInterface($interface, "Node")) {
$headerIncludes{"JSNode.h"} = 1;
push(@headerContent, "class JS${interfaceName}Owner : public JSNodeOwner {\n");
@@ -2466,7 +2466,7 @@
}
}
- if ((!$hasParent && !GetCustomIsReachable($interface))|| GetGenerateIsReachable($interface) || $interface->extendedAttributes->{"ActiveDOMObject"}) {
+ if ((!$hasParent && !GetCustomIsReachable($interface))|| GetGenerateIsReachable($interface) || $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
push(@implContent, "static inline bool isObservable(JS${interfaceName}* js${interfaceName})\n");
push(@implContent, "{\n");
push(@implContent, " if (js${interfaceName}->hasCustomProperties())\n");
@@ -2488,7 +2488,7 @@
# wrappers unconditionally keep ActiveDOMObjects with pending activity alive.
# FIXME: Fix this lifetime issue in the DOM, and move this hasPendingActivity
# check below the isObservable check.
- if ($interface->extendedAttributes->{"ActiveDOMObject"}) {
+ if ($codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
push(@implContent, " if (js${interfaceName}->impl()->hasPendingActivity())\n");
push(@implContent, " return true;\n");
}
@@ -2538,7 +2538,7 @@
(!$hasParent ||
GetGenerateIsReachable($interface) ||
GetCustomIsReachable($interface) ||
- $interface->extendedAttributes->{"ActiveDOMObject"})) {
+ $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject"))) {
push(@implContent, "void JS${interfaceName}Owner::finalize(JSC::Handle<JSC::Unknown> handle, void* context)\n");
push(@implContent, "{\n");
push(@implContent, " JS${interfaceName}* js${interfaceName} = jsCast<JS${interfaceName}*>(handle.get().asCell());\n");
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (140937 => 140938)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2013-01-28 04:06:27 UTC (rev 140938)
@@ -274,8 +274,7 @@
# Ensure the IsDOMNodeType function is in sync.
die("IsDOMNodeType is out of date with respect to $interfaceName") if IsDOMNodeType($interfaceName) != $codeGenerator->InheritsInterface($interface, "Node");
- my $hasDependentLifetime = $interface->extendedAttributes->{"V8DependentLifetime"} || $interface->extendedAttributes->{"ActiveDOMObject"}
- || GetGenerateIsReachable($interface) || $v8InterfaceName =~ /SVG/;
+ my $hasDependentLifetime = $interface->extendedAttributes->{"V8DependentLifetime"} || $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject") || GetGenerateIsReachable($interface) || $v8InterfaceName =~ /SVG/;
if (!$hasDependentLifetime) {
foreach (@{$interface->parents}) {
my $parent = $_;
@@ -369,7 +368,7 @@
push(@headerContent, " static void* opaqueRootForGC(void*, v8::Persistent<v8::Object>);\n");
}
- if ($interface->extendedAttributes->{"ActiveDOMObject"}) {
+ if ($codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
push(@headerContent, " static ActiveDOMObject* toActiveDOMObject(v8::Handle<v8::Object>);\n");
}
@@ -2096,7 +2095,7 @@
my @afterArgumentList;
my $toActiveDOMObject = "0";
- if ($interface->extendedAttributes->{"ActiveDOMObject"}) {
+ if ($codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
$toActiveDOMObject = "${v8InterfaceName}::toActiveDOMObject";
}
@@ -2627,7 +2626,7 @@
AddIncludesForType($interfaceName);
- my $toActiveDOMObject = $interface->extendedAttributes->{"ActiveDOMObject"} ? "${v8InterfaceName}::toActiveDOMObject" : "0";
+ my $toActiveDOMObject = $codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject") ? "${v8InterfaceName}::toActiveDOMObject" : "0";
my $toEventTarget = $codeGenerator->InheritsExtendedAttribute($interface, "EventTarget") ? "${v8InterfaceName}::toEventTarget" : "0";
my $rootForGC = NeedsCustomOpaqueRootForGC($interface) ? "${v8InterfaceName}::opaqueRootForGC" : "0";
@@ -3169,7 +3168,7 @@
END
}
- if ($interface->extendedAttributes->{"ActiveDOMObject"}) {
+ if ($codeGenerator->InheritsExtendedAttribute($interface, "ActiveDOMObject")) {
# MessagePort is handled like an active dom object even though it doesn't inherit
# from ActiveDOMObject, so don't try to cast it to ActiveDOMObject.
my $returnValue = $interfaceName eq "MessagePort" ? "0" : "toNative(object)";
Modified: trunk/Source/WebCore/workers/SharedWorker.idl (140937 => 140938)
--- trunk/Source/WebCore/workers/SharedWorker.idl 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/workers/SharedWorker.idl 2013-01-28 04:06:27 UTC (rev 140938)
@@ -31,7 +31,6 @@
[
Conditional=SHARED_WORKERS,
- ActiveDOMObject,
JSCustomConstructor,
Constructor(in DOMString scriptURL, in [Optional=DefaultIsNullString] DOMString name),
CallWith=ScriptExecutionContext,
Modified: trunk/Source/WebCore/workers/Worker.idl (140937 => 140938)
--- trunk/Source/WebCore/workers/Worker.idl 2013-01-28 03:08:59 UTC (rev 140937)
+++ trunk/Source/WebCore/workers/Worker.idl 2013-01-28 04:06:27 UTC (rev 140938)
@@ -27,7 +27,6 @@
[
Conditional=WORKERS,
- ActiveDOMObject,
JSCustomConstructor,
Constructor(in DOMString scriptUrl),
CallWith=ScriptExecutionContext,