Title: [94381] trunk/Source/WebCore
Revision
94381
Author
[email protected]
Date
2011-09-01 18:37:55 -0700 (Thu, 01 Sep 2011)

Log Message

Generate a Worker constructor of V8 using the IDL 'Constructor' extended attribute
https://bugs.webkit.org/show_bug.cgi?id=67447

Patch by Kentaro Hara <[email protected]> on 2011-09-01
Reviewed by Dimitri Glazkov.

Test: fast/workers/worker-constructor.html
      fast/workers/worker-event-listener.html

* bindings/v8/custom/V8WorkerCustom.cpp: Removed constructorCallback().
* workers/Worker.idl: Added the 'Constructor' extended attribute.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (94380 => 94381)


--- trunk/Source/WebCore/ChangeLog	2011-09-02 01:35:10 UTC (rev 94380)
+++ trunk/Source/WebCore/ChangeLog	2011-09-02 01:37:55 UTC (rev 94381)
@@ -1,5 +1,18 @@
 2011-09-01  Kentaro Hara  <[email protected]>
 
+        Generate a Worker constructor of V8 using the IDL 'Constructor' extended attribute
+        https://bugs.webkit.org/show_bug.cgi?id=67447
+
+        Reviewed by Dimitri Glazkov.
+
+        Test: fast/workers/worker-constructor.html
+              fast/workers/worker-event-listener.html
+
+        * bindings/v8/custom/V8WorkerCustom.cpp: Removed constructorCallback().
+        * workers/Worker.idl: Added the 'Constructor' extended attribute.
+
+2011-09-01  Kentaro Hara  <[email protected]>
+
         Generate a FileReader constructor of V8 using the IDL 'Constructor' extended attribute
         https://bugs.webkit.org/show_bug.cgi?id=67412
 

Modified: trunk/Source/WebCore/bindings/v8/custom/V8WorkerCustom.cpp (94380 => 94381)


--- trunk/Source/WebCore/bindings/v8/custom/V8WorkerCustom.cpp	2011-09-02 01:35:10 UTC (rev 94380)
+++ trunk/Source/WebCore/bindings/v8/custom/V8WorkerCustom.cpp	2011-09-02 01:37:55 UTC (rev 94381)
@@ -47,46 +47,6 @@
 
 namespace WebCore {
 
-v8::Handle<v8::Value> V8Worker::constructorCallback(const v8::Arguments& args)
-{
-    INC_STATS(L"DOM.Worker.Constructor");
-
-    if (!args.IsConstructCall())
-        return throwError("DOM object constructor cannot be called as a function.", V8Proxy::TypeError);
-
-    if (!args.Length())
-        return throwError("Not enough arguments", V8Proxy::TypeError);
-
-    v8::TryCatch tryCatch;
-    v8::Handle<v8::String> scriptUrl = args[0]->ToString();
-    if (tryCatch.HasCaught())
-        return throwError(tryCatch.Exception());
-
-    if (scriptUrl.IsEmpty())
-        return v8::Undefined();
-
-    // Get the script execution context.
-    ScriptExecutionContext* context = getScriptExecutionContext();
-    if (!context)
-        return v8::Undefined();
-
-    // Create the worker object.
-    // Note: it's OK to let this RefPtr go out of scope because we also call setDOMWrapper(), which effectively holds a reference to obj.
-    ExceptionCode ec = 0;
-    RefPtr<Worker> obj = Worker::create(toWebCoreString(scriptUrl), context, ec);
-    if (ec)
-        return throwError(ec);
-
-    // Setup the standard wrapper object internal fields.
-    v8::Handle<v8::Object> wrapperObject = args.Holder();
-    V8DOMWrapper::setDOMWrapper(wrapperObject, &info, obj.get());
-
-    obj->ref();
-    V8DOMWrapper::setJSWrapperForActiveDOMObject(obj.get(), v8::Persistent<v8::Object>::New(wrapperObject));
-
-    return wrapperObject;
-}
-
 v8::Handle<v8::Value> V8Worker::postMessageCallback(const v8::Arguments& args)
 {
     INC_STATS("DOM.Worker.postMessage");

Modified: trunk/Source/WebCore/workers/Worker.idl (94380 => 94381)


--- trunk/Source/WebCore/workers/Worker.idl	2011-09-02 01:35:10 UTC (rev 94380)
+++ trunk/Source/WebCore/workers/Worker.idl	2011-09-02 01:37:55 UTC (rev 94381)
@@ -32,7 +32,10 @@
         CanBeConstructed,
         CustomConstructFunction,
         ConstructorParameters=1,
-        V8CustomConstructor,
+        Constructor(in DOMString scriptUrl),
+        ConstructorWith=ScriptExecutionContext,
+        ConstructorRaisesException,
+        V8ConstructorSetsActiveDOMWrapper,
         GenerateNativeConverter,
         GenerateToJS
     ] Worker : AbstractWorker {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to