WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-84753-20120424132725.patch (text/plain), 17.66 KB, created by
Kentaro Hara
on 2012-04-24 13:27:26 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Kentaro Hara
Created:
2012-04-24 13:27:26 PDT
Size:
17.66 KB
patch
obsolete
>Subversion Revision: 115078 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index da9352cb1c187c1ffac3affe31e896ef56ab5c85..b86bb7e12a4a78fb4359d3825238d37fc66471f6 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,5 +1,46 @@ > 2012-04-24 Kentaro Hara <haraken@chromium.org> > >+ [V8] Pass Isolate to SerializedScriptValue::create() in CodeGeneratorV8.pm >+ https://bugs.webkit.org/show_bug.cgi?id=84753 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The objective is to pass Isolate around in V8 bindings. >+ This patch passes Isolate to SerializedScriptValue::create() >+ in CodeGeneratorV8.pm. >+ >+ Tests: bindings/scripts/test/TestObj.idl >+ bindings/scripts/test/TestSerializedScriptValueInterface.idl >+ >+ * bindings/scripts/CodeGeneratorV8.pm: >+ (GenerateNormalAttrSetter): >+ (GenerateParametersCheck): >+ (JSValueToNative): >+ >+ * bindings/scripts/test/V8/V8TestObj.cpp: Updated run-bindings-tests results. >+ (WebCore::TestObjV8Internal::intSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::shortSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::longSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::longLongSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::unsignedIntSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::unsignedShortSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::unsignedLongSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::unsignedLongLongSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::floatSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::doubleSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::booleanSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::voidSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::dateSequenceAttrAttrGetter): >+ (WebCore::TestObjV8Internal::serializedValueCallback): >+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp: >+ (WebCore::TestSerializedScriptValueInterfaceV8Internal::valueAttrSetter): >+ (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter): >+ (WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback): >+ (WebCore::TestSerializedScriptValueInterfaceV8Internal::multiTransferListCallback): >+ (WebCore::V8TestSerializedScriptValueInterface::constructorCallback): >+ >+2012-04-24 Kentaro Hara <haraken@chromium.org> >+ > [V8] Pass Isolate around in SerializedScriptValue.cpp (Part1) > https://bugs.webkit.org/show_bug.cgi?id=84663 > >diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >index 834b136006c672c7f9c5c077037d3749cede0213..3c9ae7654f2718307a8f9a24e5ae8d65c1c48689 100644 >--- a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >+++ b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >@@ -1112,7 +1112,7 @@ END > push(@implContentDecls, " return;\n"); > } > } else { >- my $value = JSValueToNative($attribute->signature, "value"); >+ my $value = JSValueToNative($attribute->signature, "value", "info.GetIsolate()"); > my $arrayType = $codeGenerator->GetArrayType($nativeType); > > if ($nativeType =~ /^V8Parameter/) { >@@ -1629,21 +1629,21 @@ sub GenerateParametersCheck > } > $parameterCheckString .= " bool ${parameterName}DidThrow = false;\n"; > if (!$useTransferList) { >- $parameterCheckString .= " $nativeType $parameterName = SerializedScriptValue::create(args[$paramIndex], 0, 0, ${parameterName}DidThrow);\n"; >+ $parameterCheckString .= " $nativeType $parameterName = SerializedScriptValue::create(args[$paramIndex], 0, 0, ${parameterName}DidThrow, args.GetIsolate());\n"; > } else { >- $parameterCheckString .= " $nativeType $parameterName = SerializedScriptValue::create(args[$paramIndex], &messagePortArray$TransferListName, &arrayBufferArray$TransferListName, ${parameterName}DidThrow);\n"; >+ $parameterCheckString .= " $nativeType $parameterName = SerializedScriptValue::create(args[$paramIndex], &messagePortArray$TransferListName, &arrayBufferArray$TransferListName, ${parameterName}DidThrow, args.GetIsolate());\n"; > } > $parameterCheckString .= " if (${parameterName}DidThrow)\n"; > $parameterCheckString .= " return v8::Undefined();\n"; > } elsif (TypeCanFailConversion($parameter)) { > $parameterCheckString .= " $nativeType $parameterName = " . >- JSValueToNative($parameter, "args[$paramIndex]") . ";\n"; >+ JSValueToNative($parameter, "args[$paramIndex]", "args.GetIsolate()") . ";\n"; > $parameterCheckString .= " if (UNLIKELY(!$parameterName)) {\n"; > $parameterCheckString .= " ec = TYPE_MISMATCH_ERR;\n"; > $parameterCheckString .= " goto fail;\n"; > $parameterCheckString .= " }\n"; > } elsif ($nativeType =~ /^V8Parameter/) { >- my $value = JSValueToNative($parameter, "MAYBE_MISSING_PARAMETER(args, $paramIndex, $parameterDefaultPolicy)"); >+ my $value = JSValueToNative($parameter, "MAYBE_MISSING_PARAMETER(args, $paramIndex, $parameterDefaultPolicy)", "args.GetIsolate()"); > $parameterCheckString .= " " . ConvertToV8Parameter($parameter, $nativeType, $parameterName, $value) . "\n"; > } else { > AddToImplIncludes("V8BindingMacros.h"); >@@ -1664,7 +1664,7 @@ sub GenerateParametersCheck > } > } > $parameterCheckString .= " EXCEPTION_BLOCK($nativeType, $parameterName, " . >- JSValueToNative($parameter, "MAYBE_MISSING_PARAMETER(args, $paramIndex, $parameterDefaultPolicy)") . ");\n"; >+ JSValueToNative($parameter, "MAYBE_MISSING_PARAMETER(args, $paramIndex, $parameterDefaultPolicy)", "args.GetIsolate()") . ");\n"; > if ($nativeType eq 'Dictionary') { > $parameterCheckString .= " if (args.Length() > $paramIndex && !$parameterName.isUndefinedOrNull() && !$parameterName.isObject()) {\n"; > if (@{$function->raisesExceptions}) { >@@ -3507,6 +3507,7 @@ sub JSValueToNative > { > my $signature = shift; > my $value = shift; >+ my $getIsolate = shift; > > my $type = GetTypeFromSignature($signature); > >@@ -3537,7 +3538,7 @@ sub JSValueToNative > > if ($type eq "SerializedScriptValue") { > AddToImplIncludes("SerializedScriptValue.h"); >- return "SerializedScriptValue::create($value)"; >+ return "SerializedScriptValue::create($value, $getIsolate)"; > } > > if ($type eq "IDBKey") { >diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >index d7b9ed4b6e35f791502aebf633c11ef8a5958fe4..4ac40263b81499bdecb6b939fac6c6825d1c761b 100644 >--- a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >@@ -239,7 +239,7 @@ static v8::Handle<v8::Value> intSequenceAttrAttrGetter(v8::Local<v8::String> nam > { > INC_STATS("DOM.TestObj.intSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->intSequenceAttr()); >+ return v8Array(imp->intSequenceAttr(), info.GetIsolate()); > } > > static void intSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -255,7 +255,7 @@ static v8::Handle<v8::Value> shortSequenceAttrAttrGetter(v8::Local<v8::String> n > { > INC_STATS("DOM.TestObj.shortSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->shortSequenceAttr()); >+ return v8Array(imp->shortSequenceAttr(), info.GetIsolate()); > } > > static void shortSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -271,7 +271,7 @@ static v8::Handle<v8::Value> longSequenceAttrAttrGetter(v8::Local<v8::String> na > { > INC_STATS("DOM.TestObj.longSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->longSequenceAttr()); >+ return v8Array(imp->longSequenceAttr(), info.GetIsolate()); > } > > static void longSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -287,7 +287,7 @@ static v8::Handle<v8::Value> longLongSequenceAttrAttrGetter(v8::Local<v8::String > { > INC_STATS("DOM.TestObj.longLongSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->longLongSequenceAttr()); >+ return v8Array(imp->longLongSequenceAttr(), info.GetIsolate()); > } > > static void longLongSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -303,7 +303,7 @@ static v8::Handle<v8::Value> unsignedIntSequenceAttrAttrGetter(v8::Local<v8::Str > { > INC_STATS("DOM.TestObj.unsignedIntSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->unsignedIntSequenceAttr()); >+ return v8Array(imp->unsignedIntSequenceAttr(), info.GetIsolate()); > } > > static void unsignedIntSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -319,7 +319,7 @@ static v8::Handle<v8::Value> unsignedShortSequenceAttrAttrGetter(v8::Local<v8::S > { > INC_STATS("DOM.TestObj.unsignedShortSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->unsignedShortSequenceAttr()); >+ return v8Array(imp->unsignedShortSequenceAttr(), info.GetIsolate()); > } > > static void unsignedShortSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -335,7 +335,7 @@ static v8::Handle<v8::Value> unsignedLongSequenceAttrAttrGetter(v8::Local<v8::St > { > INC_STATS("DOM.TestObj.unsignedLongSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->unsignedLongSequenceAttr()); >+ return v8Array(imp->unsignedLongSequenceAttr(), info.GetIsolate()); > } > > static void unsignedLongSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -351,7 +351,7 @@ static v8::Handle<v8::Value> unsignedLongLongSequenceAttrAttrGetter(v8::Local<v8 > { > INC_STATS("DOM.TestObj.unsignedLongLongSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->unsignedLongLongSequenceAttr()); >+ return v8Array(imp->unsignedLongLongSequenceAttr(), info.GetIsolate()); > } > > static void unsignedLongLongSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -367,7 +367,7 @@ static v8::Handle<v8::Value> floatSequenceAttrAttrGetter(v8::Local<v8::String> n > { > INC_STATS("DOM.TestObj.floatSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->floatSequenceAttr()); >+ return v8Array(imp->floatSequenceAttr(), info.GetIsolate()); > } > > static void floatSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -383,7 +383,7 @@ static v8::Handle<v8::Value> doubleSequenceAttrAttrGetter(v8::Local<v8::String> > { > INC_STATS("DOM.TestObj.doubleSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->doubleSequenceAttr()); >+ return v8Array(imp->doubleSequenceAttr(), info.GetIsolate()); > } > > static void doubleSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -399,7 +399,7 @@ static v8::Handle<v8::Value> booleanSequenceAttrAttrGetter(v8::Local<v8::String> > { > INC_STATS("DOM.TestObj.booleanSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->booleanSequenceAttr()); >+ return v8Array(imp->booleanSequenceAttr(), info.GetIsolate()); > } > > static void booleanSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -415,7 +415,7 @@ static v8::Handle<v8::Value> voidSequenceAttrAttrGetter(v8::Local<v8::String> na > { > INC_STATS("DOM.TestObj.voidSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->voidSequenceAttr()); >+ return v8Array(imp->voidSequenceAttr(), info.GetIsolate()); > } > > static void voidSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -431,7 +431,7 @@ static v8::Handle<v8::Value> dateSequenceAttrAttrGetter(v8::Local<v8::String> na > { > INC_STATS("DOM.TestObj.dateSequenceAttr._get"); > TestObj* imp = V8TestObj::toNative(info.Holder()); >- return v8Array(imp->dateSequenceAttr()); >+ return v8Array(imp->dateSequenceAttr(), info.GetIsolate()); > } > > static void dateSequenceAttrAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> value, const v8::AccessorInfo& info) >@@ -1325,7 +1325,7 @@ static v8::Handle<v8::Value> serializedValueCallback(const v8::Arguments& args) > return throwError("Not enough arguments", V8Proxy::TypeError); > TestObj* imp = V8TestObj::toNative(args.Holder()); > bool serializedArgDidThrow = false; >- RefPtr<SerializedScriptValue> serializedArg = SerializedScriptValue::create(args[0], 0, 0, serializedArgDidThrow); >+ RefPtr<SerializedScriptValue> serializedArg = SerializedScriptValue::create(args[0], 0, 0, serializedArgDidThrow, args.GetIsolate()); > if (serializedArgDidThrow) > return v8::Undefined(); > imp->serializedValue(serializedArg); >diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp >index f1f3b48e6547a3386ca2087f8a32c82459dac03d..962452e5d8dc3354776ad51696cb66b70f4e44f7 100644 >--- a/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp >+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp >@@ -56,7 +56,7 @@ static void valueAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Value> val > { > INC_STATS("DOM.TestSerializedScriptValueInterface.value._set"); > TestSerializedScriptValueInterface* imp = V8TestSerializedScriptValueInterface::toNative(info.Holder()); >- RefPtr<SerializedScriptValue> v = SerializedScriptValue::create(value); >+ RefPtr<SerializedScriptValue> v = SerializedScriptValue::create(value, info.GetIsolate()); > imp->setValue(WTF::getPtr(v)); > return; > } >@@ -86,7 +86,7 @@ static void cachedValueAttrSetter(v8::Local<v8::String> name, v8::Local<v8::Valu > { > INC_STATS("DOM.TestSerializedScriptValueInterface.cachedValue._set"); > TestSerializedScriptValueInterface* imp = V8TestSerializedScriptValueInterface::toNative(info.Holder()); >- RefPtr<SerializedScriptValue> v = SerializedScriptValue::create(value); >+ RefPtr<SerializedScriptValue> v = SerializedScriptValue::create(value, info.GetIsolate()); > imp->setCachedValue(WTF::getPtr(v)); > info.Holder()->DeleteHiddenValue(v8::String::NewSymbol("cachedValue")); // Invalidate the cached value. > return; >@@ -133,7 +133,7 @@ static v8::Handle<v8::Value> acceptTransferListCallback(const v8::Arguments& arg > return throwError("Could not extract transferables", V8Proxy::TypeError); > } > bool dataDidThrow = false; >- RefPtr<SerializedScriptValue> data = SerializedScriptValue::create(args[0], &messagePortArrayTransferList, &arrayBufferArrayTransferList, dataDidThrow); >+ RefPtr<SerializedScriptValue> data = SerializedScriptValue::create(args[0], &messagePortArrayTransferList, &arrayBufferArrayTransferList, dataDidThrow, args.GetIsolate()); > if (dataDidThrow) > return v8::Undefined(); > if (args.Length() <= 1) { >@@ -159,7 +159,7 @@ static v8::Handle<v8::Value> multiTransferListCallback(const v8::Arguments& args > return throwError("Could not extract transferables", V8Proxy::TypeError); > } > bool firstDidThrow = false; >- RefPtr<SerializedScriptValue> first = SerializedScriptValue::create(args[0], &messagePortArrayTx, &arrayBufferArrayTx, firstDidThrow); >+ RefPtr<SerializedScriptValue> first = SerializedScriptValue::create(args[0], &messagePortArrayTx, &arrayBufferArrayTx, firstDidThrow, args.GetIsolate()); > if (firstDidThrow) > return v8::Undefined(); > if (args.Length() <= 1) { >@@ -177,7 +177,7 @@ static v8::Handle<v8::Value> multiTransferListCallback(const v8::Arguments& args > return throwError("Could not extract transferables", V8Proxy::TypeError); > } > bool secondDidThrow = false; >- RefPtr<SerializedScriptValue> second = SerializedScriptValue::create(args[2], &messagePortArrayTxx, &arrayBufferArrayTxx, secondDidThrow); >+ RefPtr<SerializedScriptValue> second = SerializedScriptValue::create(args[2], &messagePortArrayTxx, &arrayBufferArrayTxx, secondDidThrow, args.GetIsolate()); > if (secondDidThrow) > return v8::Undefined(); > if (args.Length() <= 3) { >@@ -227,7 +227,7 @@ v8::Handle<v8::Value> V8TestSerializedScriptValueInterface::constructorCallback( > return throwError("Could not extract transferables", V8Proxy::TypeError); > } > bool dataDidThrow = false; >- RefPtr<SerializedScriptValue> data = SerializedScriptValue::create(args[1], &messagePortArrayTransferList, &arrayBufferArrayTransferList, dataDidThrow); >+ RefPtr<SerializedScriptValue> data = SerializedScriptValue::create(args[1], &messagePortArrayTransferList, &arrayBufferArrayTransferList, dataDidThrow, args.GetIsolate()); > if (dataDidThrow) > return v8::Undefined(); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 84753
: 138628