Title: [140938] trunk/Source/WebCore
Revision
140938
Author
[email protected]
Date
2013-01-27 20:06:27 -0800 (Sun, 27 Jan 2013)

Log Message

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:

Modified Paths

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,
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to