WebKit Bugzilla
Attachment 357470 Details for
Bug 192771
: Make ReadableStreamXX constructs use PrivateIdentifier
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-192771-20181217125725.patch (text/plain), 26.11 KB, created by
youenn fablet
on 2018-12-17 12:57:26 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
youenn fablet
Created:
2018-12-17 12:57:26 PST
Size:
26.11 KB
patch
obsolete
>Subversion Revision: 239107 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index c0ae4ec3cd36a93400445791c559a829babf673d..a3e93630712e2b340a8df62b882ecbdcf131ac59 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,26 @@ >+2018-12-17 Youenn Fablet <youenn@apple.com> >+ >+ Make ReadableStreamXX constructs use PrivateIdentifier >+ https://bugs.webkit.org/show_bug.cgi?id=192771 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ PrivateIdentifier is a better name for making sure a given construct does not show up in the global scope. >+ Covered by existing binding tests. >+ >+ * Modules/streams/ReadableByteStreamController.idl: >+ * Modules/streams/ReadableStreamBYOBReader.idl: >+ * Modules/streams/ReadableStreamBYOBRequest.idl: >+ * Modules/streams/ReadableStreamDefaultController.idl: >+ * Modules/streams/ReadableStreamDefaultReader.idl: >+ * bindings/scripts/CodeGeneratorJS.pm: >+ (NeedsConstructorProperty): >+ * bindings/scripts/preprocess-idls.pl: >+ (shouldExposeInterface): >+ * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Removed. >+ * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Removed. >+ * bindings/scripts/test/TestCustomConstructor.idl: Removed. >+ > 2018-12-12 Wenson Hsieh <wenson_hsieh@apple.com> > > [iOS] A few API tests are failing after r239086 >diff --git a/Source/WebCore/Modules/streams/ReadableByteStreamController.idl b/Source/WebCore/Modules/streams/ReadableByteStreamController.idl >index 4e354a86de896aed6e4ef2586b4939178a04e71c..e836cad108e436b87981147e639646c780ca6111 100644 >--- a/Source/WebCore/Modules/streams/ReadableByteStreamController.idl >+++ b/Source/WebCore/Modules/streams/ReadableByteStreamController.idl >@@ -32,7 +32,7 @@ > CustomConstructor(ReadableStream stream, any underlyingByteSource, unsigned long highWaterMark), > Exposed=(Window,Worker), > JSBuiltin, >- NoInterfaceObject >+ PrivateIdentifier > ] interface ReadableByteStreamController { > [NotEnumerable] void enqueue(optional any chunk); > [NotEnumerable] void close(); >diff --git a/Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl b/Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl >index 487729a46579248999f2e734b92f3d5b6aeef9ce..35d1fbd9cd2774945a12483e4b09e1c5f0ac9279 100644 >--- a/Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl >+++ b/Source/WebCore/Modules/streams/ReadableStreamBYOBReader.idl >@@ -27,9 +27,8 @@ > [ > Conditional=STREAMS_API, > CustomConstructor(ReadableStream stream), >- Exposed=(Window,Worker), > JSBuiltin, >- NoInterfaceObject >+ PrivateIdentifier > ] interface ReadableStreamBYOBReader { > [NotEnumerable] Promise<any> read(optional any view); > [NotEnumerable] Promise<any> cancel(optional any reason); >diff --git a/Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl b/Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl >index 53bd5831ededb930d8156cb61e6c975d0c9dd7be..8892f6c6c4d0d79952bf1d6d7eb4c9f6a20a409b 100644 >--- a/Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl >+++ b/Source/WebCore/Modules/streams/ReadableStreamBYOBRequest.idl >@@ -31,7 +31,7 @@ > CustomConstructor(ReadableByteStreamController controller, TypedArray view), > Exposed=(Window,Worker), > JSBuiltin, >- NoInterfaceObject >+ PrivateIdentifier > ] interface ReadableStreamBYOBRequest { > [NotEnumerable] void respond(optional any bytesWritten); > [NotEnumerable] void respondWithNewView(optional any view); >diff --git a/Source/WebCore/Modules/streams/ReadableStreamDefaultController.idl b/Source/WebCore/Modules/streams/ReadableStreamDefaultController.idl >index ff8d7dffdda3fa4cc7f1bee1f8c4d8006c3e1a4b..69bdf1d0680b9d394ba54d9c4d79bfe69ec80f22 100644 >--- a/Source/WebCore/Modules/streams/ReadableStreamDefaultController.idl >+++ b/Source/WebCore/Modules/streams/ReadableStreamDefaultController.idl >@@ -32,7 +32,7 @@ > CustomConstructor(ReadableStream stream, any underlyingSource, unsigned long size, unsigned long highWaterMark), > Exposed=(Window,Worker), > JSBuiltin, >- NoInterfaceObject >+ PrivateIdentifier > ] interface ReadableStreamDefaultController { > [NotEnumerable] void enqueue(optional any chunk); > [NotEnumerable] void close(); >diff --git a/Source/WebCore/Modules/streams/ReadableStreamDefaultReader.idl b/Source/WebCore/Modules/streams/ReadableStreamDefaultReader.idl >index 7b72dc02e120a8b780c4a8c7fa3cc73a26e21300..ae600ba9ef280ee7e225a2ae9c8c619fabcaecc8 100644 >--- a/Source/WebCore/Modules/streams/ReadableStreamDefaultReader.idl >+++ b/Source/WebCore/Modules/streams/ReadableStreamDefaultReader.idl >@@ -30,9 +30,8 @@ > [ > Conditional=STREAMS_API, > CustomConstructor(ReadableStream stream), >- Exposed=(Window,Worker), > JSBuiltin, >- NoInterfaceObject >+ PrivateIdentifier > ] interface ReadableStreamDefaultReader { > [NotEnumerable] Promise<any> read(); > [NotEnumerable] Promise<any> cancel(optional any reason); >diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm >index 4917c14a8e7d71c59e38591ae0867127fa263f32..cb90174a0948f5b11991e66bac2208280c6491b8 100644 >--- a/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm >+++ b/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm >@@ -7340,9 +7340,7 @@ sub NeedsConstructorProperty > { > my $interface = shift; > >- # FIXME: This condition makes little sense. It should not be possible to have a constructor at all if you have >- # no interface object. This seems to be only used by the ReadableStreams code. >- return !$interface->extendedAttributes->{NoInterfaceObject} || $interface->extendedAttributes->{CustomConstructor}; >+ return !$interface->extendedAttributes->{NoInterfaceObject}; > } > > sub IsConstructable >diff --git a/Source/WebCore/bindings/scripts/preprocess-idls.pl b/Source/WebCore/bindings/scripts/preprocess-idls.pl >index 46cd3b8f9ca9c11aa51fbd9fa8760fa7b0fd9336..7faf409be834194488e0c7f6ca5480b09f3a1e50 100644 >--- a/Source/WebCore/bindings/scripts/preprocess-idls.pl >+++ b/Source/WebCore/bindings/scripts/preprocess-idls.pl >@@ -138,7 +138,7 @@ foreach my $idlFile (sort keys %idlFileHash) { > # property must exist on the ECMAScript environment's global object. > # See https://heycam.github.io/webidl/#es-interfaces > my $extendedAttributes = getInterfaceExtendedAttributesFromIDL($idlFileContents); >- unless ($extendedAttributes->{"NoInterfaceObject"}) { >+ if (shouldExposeInterface($extendedAttributes)) { > if (!isCallbackInterfaceFromIDL($idlFileContents) || interfaceHasConstantAttribute($idlFileContents)) { > my $exposedAttribute = $extendedAttributes->{"Exposed"} || "Window"; > $exposedAttribute = substr($exposedAttribute, 1, -1) if substr($exposedAttribute, 0, 1) eq "("; >@@ -403,3 +403,12 @@ sub interfaceHasConstantAttribute > > return $fileContents =~ /\s+const[\s\w]+=\s+[\w]+;/gs; > } >+ >+sub shouldExposeInterface >+{ >+ my $extendedAttributes = shift; >+ >+ return 0 if $extendedAttributes->{"NoInterfaceObject"}; >+ return 0 if $extendedAttributes->{"PrivateIdentifier"} && !($extendedAttributes->{"PublicIdentifier"}); >+ return 1; >+} >diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp b/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp >deleted file mode 100644 >index 5fe76c89ebfc80707e433881a13f6d0a957cd544..0000000000000000000000000000000000000000 >--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp >+++ /dev/null >@@ -1,233 +0,0 @@ >-/* >- This file is part of the WebKit open source project. >- This file has been generated by generate-bindings.pl. DO NOT MODIFY! >- >- This library is free software; you can redistribute it and/or >- modify it under the terms of the GNU Library General Public >- License as published by the Free Software Foundation; either >- version 2 of the License, or (at your option) any later version. >- >- This library is distributed in the hope that it will be useful, >- but WITHOUT ANY WARRANTY; without even the implied warranty of >- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- Library General Public License for more details. >- >- You should have received a copy of the GNU Library General Public License >- along with this library; see the file COPYING.LIB. If not, write to >- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- Boston, MA 02110-1301, USA. >-*/ >- >-#include "config.h" >-#include "JSTestCustomConstructorWithNoInterfaceObject.h" >- >-#include "JSDOMBinding.h" >-#include "JSDOMConstructor.h" >-#include "JSDOMExceptionHandling.h" >-#include "JSDOMWrapperCache.h" >-#include "ScriptExecutionContext.h" >-#include <JavaScriptCore/FunctionPrototype.h> >-#include <JavaScriptCore/HeapSnapshotBuilder.h> >-#include <JavaScriptCore/JSCInlines.h> >-#include <wtf/GetPtr.h> >-#include <wtf/PointerPreparations.h> >-#include <wtf/URL.h> >- >- >-namespace WebCore { >-using namespace JSC; >- >-// Attributes >- >-JSC::EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName); >-bool setJSTestCustomConstructorWithNoInterfaceObjectConstructor(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue); >- >-class JSTestCustomConstructorWithNoInterfaceObjectPrototype : public JSC::JSNonFinalObject { >-public: >- using Base = JSC::JSNonFinalObject; >- static JSTestCustomConstructorWithNoInterfaceObjectPrototype* create(JSC::VM& vm, JSDOMGlobalObject* globalObject, JSC::Structure* structure) >- { >- JSTestCustomConstructorWithNoInterfaceObjectPrototype* ptr = new (NotNull, JSC::allocateCell<JSTestCustomConstructorWithNoInterfaceObjectPrototype>(vm.heap)) JSTestCustomConstructorWithNoInterfaceObjectPrototype(vm, globalObject, structure); >- ptr->finishCreation(vm); >- return ptr; >- } >- >- DECLARE_INFO; >- static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) >- { >- return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); >- } >- >-private: >- JSTestCustomConstructorWithNoInterfaceObjectPrototype(JSC::VM& vm, JSC::JSGlobalObject*, JSC::Structure* structure) >- : JSC::JSNonFinalObject(vm, structure) >- { >- } >- >- void finishCreation(JSC::VM&); >-}; >- >-using JSTestCustomConstructorWithNoInterfaceObjectConstructor = JSDOMConstructor<JSTestCustomConstructorWithNoInterfaceObject>; >- >-template<> JSC::EncodedJSValue JSC_HOST_CALL JSTestCustomConstructorWithNoInterfaceObjectConstructor::construct(JSC::ExecState* exec) >-{ >- ASSERT(exec); >- return constructJSTestCustomConstructorWithNoInterfaceObject(*exec); >-} >- >-template<> JSValue JSTestCustomConstructorWithNoInterfaceObjectConstructor::prototypeForStructure(JSC::VM& vm, const JSDOMGlobalObject& globalObject) >-{ >- UNUSED_PARAM(vm); >- return globalObject.functionPrototype(); >-} >- >-template<> void JSTestCustomConstructorWithNoInterfaceObjectConstructor::initializeProperties(VM& vm, JSDOMGlobalObject& globalObject) >-{ >- putDirect(vm, vm.propertyNames->prototype, JSTestCustomConstructorWithNoInterfaceObject::prototype(vm, globalObject), JSC::PropertyAttribute::DontDelete | JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum); >- putDirect(vm, vm.propertyNames->name, jsNontrivialString(&vm, String("TestCustomConstructorWithNoInterfaceObject"_s)), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum); >- putDirect(vm, vm.propertyNames->length, jsNumber(0), JSC::PropertyAttribute::ReadOnly | JSC::PropertyAttribute::DontEnum); >-} >- >-template<> const ClassInfo JSTestCustomConstructorWithNoInterfaceObjectConstructor::s_info = { "TestCustomConstructorWithNoInterfaceObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSTestCustomConstructorWithNoInterfaceObjectConstructor) }; >- >-/* Hash table for prototype */ >- >-static const HashTableValue JSTestCustomConstructorWithNoInterfaceObjectPrototypeTableValues[] = >-{ >- { "constructor", static_cast<unsigned>(JSC::PropertyAttribute::DontEnum), NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestCustomConstructorWithNoInterfaceObjectConstructor), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestCustomConstructorWithNoInterfaceObjectConstructor) } }, >-}; >- >-const ClassInfo JSTestCustomConstructorWithNoInterfaceObjectPrototype::s_info = { "TestCustomConstructorWithNoInterfaceObjectPrototype", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSTestCustomConstructorWithNoInterfaceObjectPrototype) }; >- >-void JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation(VM& vm) >-{ >- Base::finishCreation(vm); >- reifyStaticProperties(vm, JSTestCustomConstructorWithNoInterfaceObject::info(), JSTestCustomConstructorWithNoInterfaceObjectPrototypeTableValues, *this); >-} >- >-const ClassInfo JSTestCustomConstructorWithNoInterfaceObject::s_info = { "TestCustomConstructorWithNoInterfaceObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSTestCustomConstructorWithNoInterfaceObject) }; >- >-JSTestCustomConstructorWithNoInterfaceObject::JSTestCustomConstructorWithNoInterfaceObject(Structure* structure, JSDOMGlobalObject& globalObject, Ref<TestCustomConstructorWithNoInterfaceObject>&& impl) >- : JSDOMWrapper<TestCustomConstructorWithNoInterfaceObject>(structure, globalObject, WTFMove(impl)) >-{ >-} >- >-void JSTestCustomConstructorWithNoInterfaceObject::finishCreation(VM& vm) >-{ >- Base::finishCreation(vm); >- ASSERT(inherits(vm, info())); >- >-} >- >-JSObject* JSTestCustomConstructorWithNoInterfaceObject::createPrototype(VM& vm, JSDOMGlobalObject& globalObject) >-{ >- return JSTestCustomConstructorWithNoInterfaceObjectPrototype::create(vm, &globalObject, JSTestCustomConstructorWithNoInterfaceObjectPrototype::createStructure(vm, &globalObject, globalObject.objectPrototype())); >-} >- >-JSObject* JSTestCustomConstructorWithNoInterfaceObject::prototype(VM& vm, JSDOMGlobalObject& globalObject) >-{ >- return getDOMPrototype<JSTestCustomConstructorWithNoInterfaceObject>(vm, globalObject); >-} >- >-void JSTestCustomConstructorWithNoInterfaceObject::destroy(JSC::JSCell* cell) >-{ >- JSTestCustomConstructorWithNoInterfaceObject* thisObject = static_cast<JSTestCustomConstructorWithNoInterfaceObject*>(cell); >- thisObject->JSTestCustomConstructorWithNoInterfaceObject::~JSTestCustomConstructorWithNoInterfaceObject(); >-} >- >-EncodedJSValue jsTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, EncodedJSValue thisValue, PropertyName) >-{ >- VM& vm = state->vm(); >- auto throwScope = DECLARE_THROW_SCOPE(vm); >- auto* prototype = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(vm, JSValue::decode(thisValue)); >- if (UNLIKELY(!prototype)) >- return throwVMTypeError(state, throwScope); >- JSValue constructor = JSTestCustomConstructorWithNoInterfaceObjectConstructor::create(state->vm(), JSTestCustomConstructorWithNoInterfaceObjectConstructor::createStructure(state->vm(), *prototype->globalObject(), prototype->globalObject()->objectPrototype()), *jsCast<JSDOMGlobalObject*>(prototype->globalObject())); >- // Shadowing constructor property to ensure reusing the same constructor object >- prototype->putDirect(vm, vm.propertyNames->constructor, constructor, static_cast<unsigned>(JSC::PropertyAttribute::DontEnum)); >- return JSValue::encode(constructor); >-} >- >-bool setJSTestCustomConstructorWithNoInterfaceObjectConstructor(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue) >-{ >- VM& vm = state->vm(); >- auto throwScope = DECLARE_THROW_SCOPE(vm); >- auto* prototype = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObjectPrototype*>(vm, JSValue::decode(thisValue)); >- if (UNLIKELY(!prototype)) { >- throwVMTypeError(state, throwScope); >- return false; >- } >- // Shadowing a built-in constructor >- return prototype->putDirect(vm, vm.propertyNames->constructor, JSValue::decode(encodedValue)); >-} >- >-void JSTestCustomConstructorWithNoInterfaceObject::heapSnapshot(JSCell* cell, HeapSnapshotBuilder& builder) >-{ >- auto* thisObject = jsCast<JSTestCustomConstructorWithNoInterfaceObject*>(cell); >- builder.setWrappedObjectForCell(cell, &thisObject->wrapped()); >- if (thisObject->scriptExecutionContext()) >- builder.setLabelForCell(cell, String::format("url %s", thisObject->scriptExecutionContext()->url().string().utf8().data())); >- Base::heapSnapshot(cell, builder); >-} >- >-bool JSTestCustomConstructorWithNoInterfaceObjectOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason) >-{ >- UNUSED_PARAM(handle); >- UNUSED_PARAM(visitor); >- UNUSED_PARAM(reason); >- return false; >-} >- >-void JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize(JSC::Handle<JSC::Unknown> handle, void* context) >-{ >- auto* jsTestCustomConstructorWithNoInterfaceObject = static_cast<JSTestCustomConstructorWithNoInterfaceObject*>(handle.slot()->asCell()); >- auto& world = *static_cast<DOMWrapperWorld*>(context); >- uncacheWrapper(world, &jsTestCustomConstructorWithNoInterfaceObject->wrapped(), jsTestCustomConstructorWithNoInterfaceObject); >-} >- >-#if ENABLE(BINDING_INTEGRITY) >-#if PLATFORM(WIN) >-#pragma warning(disable: 4483) >-extern "C" { extern void (*const __identifier("??_7TestCustomConstructorWithNoInterfaceObject@WebCore@@6B@")[])(); } >-#else >-extern "C" { extern void* _ZTVN7WebCore42TestCustomConstructorWithNoInterfaceObjectE[]; } >-#endif >-#endif >- >-JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject* globalObject, Ref<TestCustomConstructorWithNoInterfaceObject>&& impl) >-{ >- >-#if ENABLE(BINDING_INTEGRITY) >- void* actualVTablePointer = *(reinterpret_cast<void**>(impl.ptr())); >-#if PLATFORM(WIN) >- void* expectedVTablePointer = WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION(__identifier("??_7TestCustomConstructorWithNoInterfaceObject@WebCore@@6B@")); >-#else >- void* expectedVTablePointer = WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION(&_ZTVN7WebCore42TestCustomConstructorWithNoInterfaceObjectE[2]); >-#endif >- >- // If this fails TestCustomConstructorWithNoInterfaceObject does not have a vtable, so you need to add the >- // ImplementationLacksVTable attribute to the interface definition >- static_assert(std::is_polymorphic<TestCustomConstructorWithNoInterfaceObject>::value, "TestCustomConstructorWithNoInterfaceObject is not polymorphic"); >- >- // If you hit this assertion you either have a use after free bug, or >- // TestCustomConstructorWithNoInterfaceObject has subclasses. If TestCustomConstructorWithNoInterfaceObject has subclasses that get passed >- // to toJS() we currently require TestCustomConstructorWithNoInterfaceObject you to opt out of binding hardening >- // by adding the SkipVTableValidation attribute to the interface IDL definition >- RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer); >-#endif >- return createWrapper<TestCustomConstructorWithNoInterfaceObject>(globalObject, WTFMove(impl)); >-} >- >-JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, TestCustomConstructorWithNoInterfaceObject& impl) >-{ >- return wrap(state, globalObject, impl); >-} >- >-TestCustomConstructorWithNoInterfaceObject* JSTestCustomConstructorWithNoInterfaceObject::toWrapped(JSC::VM& vm, JSC::JSValue value) >-{ >- if (auto* wrapper = jsDynamicCast<JSTestCustomConstructorWithNoInterfaceObject*>(vm, value)) >- return &wrapper->wrapped(); >- return nullptr; >-} >- >-} >diff --git a/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h b/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h >deleted file mode 100644 >index 4cde2e9bd02f385b6562a64574105376f6503451..0000000000000000000000000000000000000000 >--- a/Source/WebCore/bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h >+++ /dev/null >@@ -1,88 +0,0 @@ >-/* >- This file is part of the WebKit open source project. >- This file has been generated by generate-bindings.pl. DO NOT MODIFY! >- >- This library is free software; you can redistribute it and/or >- modify it under the terms of the GNU Library General Public >- License as published by the Free Software Foundation; either >- version 2 of the License, or (at your option) any later version. >- >- This library is distributed in the hope that it will be useful, >- but WITHOUT ANY WARRANTY; without even the implied warranty of >- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- Library General Public License for more details. >- >- You should have received a copy of the GNU Library General Public License >- along with this library; see the file COPYING.LIB. If not, write to >- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, >- Boston, MA 02110-1301, USA. >-*/ >- >-#pragma once >- >-#include "JSDOMWrapper.h" >-#include "TestCustomConstructorWithNoInterfaceObject.h" >-#include <wtf/NeverDestroyed.h> >- >-namespace WebCore { >- >-class JSTestCustomConstructorWithNoInterfaceObject : public JSDOMWrapper<TestCustomConstructorWithNoInterfaceObject> { >-public: >- using Base = JSDOMWrapper<TestCustomConstructorWithNoInterfaceObject>; >- static JSTestCustomConstructorWithNoInterfaceObject* create(JSC::Structure* structure, JSDOMGlobalObject* globalObject, Ref<TestCustomConstructorWithNoInterfaceObject>&& impl) >- { >- JSTestCustomConstructorWithNoInterfaceObject* ptr = new (NotNull, JSC::allocateCell<JSTestCustomConstructorWithNoInterfaceObject>(globalObject->vm().heap)) JSTestCustomConstructorWithNoInterfaceObject(structure, *globalObject, WTFMove(impl)); >- ptr->finishCreation(globalObject->vm()); >- return ptr; >- } >- >- static JSC::JSObject* createPrototype(JSC::VM&, JSDOMGlobalObject&); >- static JSC::JSObject* prototype(JSC::VM&, JSDOMGlobalObject&); >- static TestCustomConstructorWithNoInterfaceObject* toWrapped(JSC::VM&, JSC::JSValue); >- static void destroy(JSC::JSCell*); >- >- DECLARE_INFO; >- >- static JSC::Structure* createStructure(JSC::VM& vm, JSC::JSGlobalObject* globalObject, JSC::JSValue prototype) >- { >- return JSC::Structure::create(vm, globalObject, prototype, JSC::TypeInfo(JSC::ObjectType, StructureFlags), info()); >- } >- >- static void heapSnapshot(JSCell*, JSC::HeapSnapshotBuilder&); >-protected: >- JSTestCustomConstructorWithNoInterfaceObject(JSC::Structure*, JSDOMGlobalObject&, Ref<TestCustomConstructorWithNoInterfaceObject>&&); >- >- void finishCreation(JSC::VM&); >-}; >- >-class JSTestCustomConstructorWithNoInterfaceObjectOwner : public JSC::WeakHandleOwner { >-public: >- virtual bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::SlotVisitor&, const char**); >- virtual void finalize(JSC::Handle<JSC::Unknown>, void* context); >-}; >- >-inline JSC::WeakHandleOwner* wrapperOwner(DOMWrapperWorld&, TestCustomConstructorWithNoInterfaceObject*) >-{ >- static NeverDestroyed<JSTestCustomConstructorWithNoInterfaceObjectOwner> owner; >- return &owner.get(); >-} >- >-inline void* wrapperKey(TestCustomConstructorWithNoInterfaceObject* wrappableObject) >-{ >- return wrappableObject; >-} >- >-JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TestCustomConstructorWithNoInterfaceObject&); >-inline JSC::JSValue toJS(JSC::ExecState* state, JSDOMGlobalObject* globalObject, TestCustomConstructorWithNoInterfaceObject* impl) { return impl ? toJS(state, globalObject, *impl) : JSC::jsNull(); } >-JSC::JSValue toJSNewlyCreated(JSC::ExecState*, JSDOMGlobalObject*, Ref<TestCustomConstructorWithNoInterfaceObject>&&); >-inline JSC::JSValue toJSNewlyCreated(JSC::ExecState* state, JSDOMGlobalObject* globalObject, RefPtr<TestCustomConstructorWithNoInterfaceObject>&& impl) { return impl ? toJSNewlyCreated(state, globalObject, impl.releaseNonNull()) : JSC::jsNull(); } >- >-// Custom constructor >-JSC::EncodedJSValue JSC_HOST_CALL constructJSTestCustomConstructorWithNoInterfaceObject(JSC::ExecState&); >- >-template<> struct JSDOMWrapperConverterTraits<TestCustomConstructorWithNoInterfaceObject> { >- using WrapperClass = JSTestCustomConstructorWithNoInterfaceObject; >- using ToWrappedReturnType = TestCustomConstructorWithNoInterfaceObject*; >-}; >- >-} // namespace WebCore >diff --git a/Source/WebCore/bindings/scripts/test/TestCustomConstructor.idl b/Source/WebCore/bindings/scripts/test/TestCustomConstructor.idl >deleted file mode 100644 >index cb3dfcc1cf3a0dcc289f96c8e42fe566f2d21f2b..0000000000000000000000000000000000000000 >--- a/Source/WebCore/bindings/scripts/test/TestCustomConstructor.idl >+++ /dev/null >@@ -1,33 +0,0 @@ >-/* >- * Copyright (C) 2015 Canon Inc. >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted, provided that the following conditions >- * are required to be met: >- * >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * 3. Neither the name of Canon Inc. nor the names of >- * its contributors may be used to endorse or promote products derived >- * from this software without specific prior written permission. >- * >- * THIS SOFTWARE IS PROVIDED BY CANON INC. AND ITS CONTRIBUTORS "AS IS" AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED >- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE >- * DISCLAIMED. IN NO EVENT SHALL CANON INC. AND ITS CONTRIBUTORS BE LIABLE FOR >- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL >- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR >- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER >- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, >- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-[ >- CustomConstructor, >- NoInterfaceObject >-] interface TestCustomConstructorWithNoInterfaceObject { >-};
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 192771
:
357470
|
357570