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