Diff
Modified: trunk/Source/WTF/ChangeLog (148256 => 148257)
--- trunk/Source/WTF/ChangeLog 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WTF/ChangeLog 2013-04-12 01:43:23 UTC (rev 148257)
@@ -1,3 +1,15 @@
+2013-04-11 Oliver Hunt <[email protected]>
+
+ Add more type validation to debug builds
+ https://bugs.webkit.org/show_bug.cgi?id=114478
+
+ Reviewed by Mark Hahnenberg.
+
+ Add BINDING_VALIDATION flag and make RELEASE_ASSERT use UNLIKELY.
+
+ * wtf/Assertions.h:
+ * wtf/Platform.h:
+
2013-04-10 Thiago Marcos P. Santos <[email protected]>
[WTF] Get rid of truncated thread name warnings for non-Windows platforms
Modified: trunk/Source/WTF/wtf/Assertions.h (148256 => 148257)
--- trunk/Source/WTF/wtf/Assertions.h 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WTF/wtf/Assertions.h 2013-04-12 01:43:23 UTC (rev 148257)
@@ -416,7 +416,7 @@
#endif
#if ASSERT_DISABLED
-#define RELEASE_ASSERT(assertion) (!(assertion) ? (CRASH()) : (void)0)
+#define RELEASE_ASSERT(assertion) (UNLIKELY(!(assertion)) ? (CRASH()) : (void)0)
#define RELEASE_ASSERT_WITH_MESSAGE(assertion, ...) RELEASE_ASSERT(assertion)
#define RELEASE_ASSERT_NOT_REACHED() CRASH()
#else
Modified: trunk/Source/WTF/wtf/Platform.h (148256 => 148257)
--- trunk/Source/WTF/wtf/Platform.h 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WTF/wtf/Platform.h 2013-04-12 01:43:23 UTC (rev 148257)
@@ -965,6 +965,10 @@
#define ENABLE_GC_VALIDATION 1
#endif
+#if !defined(ENABLE_BINDING_INTEGRITY)
+#define ENABLE_BINDING_INTEGRITY 1
+#endif
+
#if PLATFORM(MAC) && !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1070
#define WTF_USE_AVFOUNDATION 1
#endif
Modified: trunk/Source/WebCore/ChangeLog (148256 => 148257)
--- trunk/Source/WebCore/ChangeLog 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/ChangeLog 2013-04-12 01:43:23 UTC (rev 148257)
@@ -1,3 +1,45 @@
+2013-04-11 Oliver Hunt <[email protected]>
+
+ Add more type validation to debug builds
+ https://bugs.webkit.org/show_bug.cgi?id=114478
+
+ Reviewed by Mark Hahnenberg.
+
+ Add a bunch more type checks to the JS DOM bindings.
+
+ * Modules/mediastream/MediaStream.idl:
+ * Modules/webaudio/AudioDestinationNode.idl:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSDOMBinding.h:
+ (WebCore::getExistingWrapper):
+ (WebCore):
+ (WebCore::createNewWrapper):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (GetNativeTypeForConversions):
+ (GetGnuVTableRefForInterface):
+ (GetGnuVTableNameForInterface):
+ (GetGnuMangledNameForInterface):
+ (GetGnuVTableOffsetForType):
+ (GetWinVTableRefForInterface):
+ (GetWinVTableNameForInterface):
+ (GetWinMangledNameForInterface):
+ (GetNamespaceForInterface):
+ (GetImplementationLacksVTableForInterface):
+ (GetSkipVTableValidationForInterface):
+ (GenerateImplementation):
+ * bindings/scripts/IDLAttributes.txt:
+ * css/CSSRuleList.idl:
+ * css/CSSStyleDeclaration.idl:
+ * dom/Clipboard.idl:
+ * dom/DOMStringMap.idl:
+ * dom/MutationRecord.idl:
+ * dom/NodeList.idl:
+ * html/DOMTokenList.idl:
+ * html/track/TextTrack.idl:
+ * inspector/ScriptProfileNode.idl:
+ * storage/Storage.idl:
+ * xml/XPathNSResolver.idl:
+
2013-04-11 Ryosuke Niwa <[email protected]>
Remove ResourceLoadInfo
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.idl (148256 => 148257)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -30,7 +30,7 @@
Constructor(in MediaStreamTrack[] tracks),
ConstructorParameters=0,
CallWith=ScriptExecutionContext,
- V8SkipVTableValidation
+ SkipVTableValidation
] interface MediaStream {
// DEPRECATED
readonly attribute DOMString label;
Modified: trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl (148256 => 148257)
--- trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -25,7 +25,7 @@
[
Conditional=WEB_AUDIO,
JSGenerateToJSObject,
- V8SkipVTableValidation
+ SkipVTableValidation
] interface AudioDestinationNode : AudioNode {
readonly attribute unsigned long maxChannelCount;
};
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (148256 => 148257)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2013-04-12 01:43:23 UTC (rev 148257)
@@ -9984,6 +9984,14 @@
A7DB418114CE1F0A00A2E316 /* ShadowRoot.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ShadowRoot.idl; sourceTree = "<group>"; };
A7DBF8DB1276919C006B6008 /* TextCheckingHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCheckingHelper.cpp; sourceTree = "<group>"; };
A7DBF8DC1276919C006B6008 /* TextCheckingHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextCheckingHelper.h; sourceTree = "<group>"; };
+ A7F1F4BA17148BDB00CD4852 /* DOMWindowQuota.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = DOMWindowQuota.idl; path = Modules/quota/DOMWindowQuota.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4BB17148BDB00CD4852 /* NavigatorStorageQuota.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = NavigatorStorageQuota.idl; path = Modules/quota/NavigatorStorageQuota.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4BC17148BDB00CD4852 /* StorageErrorCallback.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = StorageErrorCallback.idl; path = Modules/quota/StorageErrorCallback.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4BD17148BDB00CD4852 /* StorageInfo.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = StorageInfo.idl; path = Modules/quota/StorageInfo.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4BE17148BDB00CD4852 /* StorageQuota.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = StorageQuota.idl; path = Modules/quota/StorageQuota.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4BF17148BDB00CD4852 /* StorageQuotaCallback.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = StorageQuotaCallback.idl; path = Modules/quota/StorageQuotaCallback.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4C017148BDB00CD4852 /* StorageUsageCallback.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = StorageUsageCallback.idl; path = Modules/quota/StorageUsageCallback.idl; sourceTree = SOURCE_ROOT; };
+ A7F1F4C117148BDB00CD4852 /* WorkerNavigatorStorageQuota.idl */ = {isa = PBXFileReference; lastKnownFileType = text; name = WorkerNavigatorStorageQuota.idl; path = Modules/quota/WorkerNavigatorStorageQuota.idl; sourceTree = SOURCE_ROOT; };
A7F5D94D1384F02D00A29A87 /* NodeRenderingContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NodeRenderingContext.cpp; sourceTree = "<group>"; };
A7F5D94E1384F02D00A29A87 /* NodeRenderingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NodeRenderingContext.h; sourceTree = "<group>"; };
A7F73ED9169AD7AA00CBAA4B /* DOMShadowRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMShadowRoot.h; sourceTree = "<group>"; };
@@ -15470,6 +15478,14 @@
89F60B17157F6A020075E157 /* Quota */ = {
isa = PBXGroup;
children = (
+ A7F1F4BA17148BDB00CD4852 /* DOMWindowQuota.idl */,
+ A7F1F4BB17148BDB00CD4852 /* NavigatorStorageQuota.idl */,
+ A7F1F4BC17148BDB00CD4852 /* StorageErrorCallback.idl */,
+ A7F1F4BD17148BDB00CD4852 /* StorageInfo.idl */,
+ A7F1F4BE17148BDB00CD4852 /* StorageQuota.idl */,
+ A7F1F4BF17148BDB00CD4852 /* StorageQuotaCallback.idl */,
+ A7F1F4C017148BDB00CD4852 /* StorageUsageCallback.idl */,
+ A7F1F4C117148BDB00CD4852 /* WorkerNavigatorStorageQuota.idl */,
892ABE5F16EEE2E5009F3587 /* JSDOMWindowQuota.h */,
892ABE5C16EEE2AA009F3587 /* JSNavigatorStorageQuota.cpp */,
892ABE5D16EEE2AA009F3587 /* JSNavigatorStorageQuota.h */,
Modified: trunk/Source/WebCore/bindings/js/JSDOMBinding.h (148256 => 148257)
--- trunk/Source/WebCore/bindings/js/JSDOMBinding.h 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/bindings/js/JSDOMBinding.h 2013-04-12 01:43:23 UTC (rev 148257)
@@ -200,6 +200,19 @@
return createWrapper<WrapperClass>(exec, globalObject, domObject);
}
+ template<class WrapperClass, class DOMClass> inline JSC::JSValue getExistingWrapper(JSC::ExecState* exec, DOMClass* domObject)
+ {
+ ASSERT(domObject);
+ return getCachedWrapper(currentWorld(exec), domObject);
+ }
+
+ template<class WrapperClass, class DOMClass> inline JSC::JSValue createNewWrapper(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, DOMClass* domObject)
+ {
+ ASSERT(domObject);
+ ASSERT(!getCachedWrapper(currentWorld(exec), domObject));
+ return createWrapper<WrapperClass>(exec, globalObject, domObject);
+ }
+
inline JSC::JSValue argumentOrNull(JSC::ExecState* exec, unsigned index)
{
return index >= exec->argumentCount() ? JSC::JSValue() : exec->argument(index);
Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (148256 => 148257)
--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm 2013-04-12 01:43:23 UTC (rev 148257)
@@ -9,6 +9,7 @@
# Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
# Copyright (C) 2011 Patrick Gansterer <[email protected]>
# Copyright (C) 2012 Ericsson AB. All rights reserved.
+# Copyright (C) 2007, 2008, 2009, 2012 Google Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
@@ -1395,6 +1396,128 @@
END
}
+sub GetNativeTypeForConversions
+{
+ my $interface = shift;
+ my $interfaceName = $interface->name;
+ $interfaceName = $codeGenerator->GetSVGTypeNeedingTearOff($interfaceName) if $codeGenerator->IsSVGTypeNeedingTearOff($interfaceName);
+ return $interfaceName;
+}
+
+# See http://refspecs.linux-foundation.org/cxxabi-1.83.html.
+sub GetGnuVTableRefForInterface
+{
+ my $interface = shift;
+ my $vtableName = GetGnuVTableNameForInterface($interface);
+ if (!$vtableName) {
+ return "0";
+ }
+ my $typename = GetNativeTypeForConversions($interface);
+ my $offset = GetGnuVTableOffsetForType($typename);
+ return "&" . $vtableName . "[" . $offset . "]";
+}
+
+sub GetGnuVTableNameForInterface
+{
+ my $interface = shift;
+ my $typename = GetNativeTypeForConversions($interface);
+ my $templatePosition = index($typename, "<");
+ return "" if $templatePosition != -1;
+ return "" if GetImplementationLacksVTableForInterface($interface);
+ return "" if GetSkipVTableValidationForInterface($interface);
+ return "_ZTV" . GetGnuMangledNameForInterface($interface);
+}
+
+sub GetGnuMangledNameForInterface
+{
+ my $interface = shift;
+ my $typename = GetNativeTypeForConversions($interface);
+ my $templatePosition = index($typename, "<");
+ if ($templatePosition != -1) {
+ return "";
+ }
+ my $mangledType = length($typename) . $typename;
+ my $namespace = GetNamespaceForInterface($interface);
+ my $mangledNamespace = "N" . length($namespace) . $namespace;
+ return $mangledNamespace . $mangledType . "E";
+}
+
+sub GetGnuVTableOffsetForType
+{
+ my $typename = shift;
+ if ($typename eq "SVGAElement"
+ || $typename eq "SVGCircleElement"
+ || $typename eq "SVGClipPathElement"
+ || $typename eq "SVGDefsElement"
+ || $typename eq "SVGEllipseElement"
+ || $typename eq "SVGForeignObjectElement"
+ || $typename eq "SVGGElement"
+ || $typename eq "SVGImageElement"
+ || $typename eq "SVGLineElement"
+ || $typename eq "SVGPathElement"
+ || $typename eq "SVGPolyElement"
+ || $typename eq "SVGPolygonElement"
+ || $typename eq "SVGPolylineElement"
+ || $typename eq "SVGRectElement"
+ || $typename eq "SVGSVGElement"
+ || $typename eq "SVGStyledLocatableElement"
+ || $typename eq "SVGStyledTransformableElement"
+ || $typename eq "SVGSwitchElement"
+ || $typename eq "SVGTextElement"
+ || $typename eq "SVGTransformable"
+ || $typename eq "SVGUseElement") {
+ return "3";
+ }
+ return "2";
+}
+
+# See http://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B_Name_Mangling.
+sub GetWinVTableRefForInterface
+{
+ my $interface = shift;
+ my $vtableName = GetWinVTableNameForInterface($interface);
+ return 0 if !$vtableName;
+ return "__identifier(\"" . $vtableName . "\")";
+}
+
+sub GetWinVTableNameForInterface
+{
+ my $interface = shift;
+ my $typename = GetNativeTypeForConversions($interface);
+ my $templatePosition = index($typename, "<");
+ return "" if $templatePosition != -1;
+ return "" if GetImplementationLacksVTableForInterface($interface);
+ return "" if GetSkipVTableValidationForInterface($interface);
+ return "??_7" . GetWinMangledNameForInterface($interface) . "6B@";
+}
+
+sub GetWinMangledNameForInterface
+{
+ my $interface = shift;
+ my $typename = GetNativeTypeForConversions($interface);
+ my $namespace = GetNamespaceForInterface($interface);
+ return $typename . "@" . $namespace . "@@";
+}
+
+sub GetNamespaceForInterface
+{
+ my $interface = shift;
+ return $interface->extendedAttributes->{"ImplementationNamespace"} || "WebCore";
+}
+
+sub GetImplementationLacksVTableForInterface
+{
+ my $interface = shift;
+ return $interface->extendedAttributes->{"ImplementationLacksVTable"};
+}
+
+sub GetSkipVTableValidationForInterface
+{
+ my $interface = shift;
+ return $interface->extendedAttributes->{"SkipVTableValidation"};
+}
+
+
sub GenerateImplementation
{
my ($object, $interface) = @_;
@@ -1922,7 +2045,6 @@
}
unshift(@arguments, @callWithArgs);
-
my $jsType = NativeToJSValue($attribute->signature, 0, $interfaceName, "${functionName}(" . join(", ", @arguments) . ")", "castedThis");
push(@implContent, " $interfaceName* impl = static_cast<$interfaceName*>(castedThis->impl());\n") if !$attribute->isStatic;
if ($codeGenerator->IsSVGAnimatedType($type)) {
@@ -2578,13 +2700,59 @@
}
if (ShouldGenerateToJSImplementation($hasParent, $interface)) {
+ my $vtableNameGnu = GetGnuVTableNameForInterface($interface);
+ my $vtableRefGnu = GetGnuVTableRefForInterface($interface);
+ my $vtableRefWin = GetWinVTableRefForInterface($interface);
+
+ push(@implContent, <<END) if $vtableNameGnu;
+#if ENABLE(BINDING_INTEGRITY)
+#if defined(OS_WIN)
+#pragma warning(disable: 4483)
+extern "C" { extern void (*const ${vtableRefWin}[])(); }
+#else
+extern "C" { extern void* ${vtableNameGnu}[]; }
+#endif
+#endif
+END
push(@implContent, "JSC::JSValue toJS(JSC::ExecState* exec, JSDOMGlobalObject* globalObject, $implType* impl)\n");
push(@implContent, "{\n");
+ push(@implContent, <<END);
+ if (!impl)
+ return jsNull();
+END
+
if ($svgPropertyType) {
- push(@implContent, " return wrap<$className, $implType>(exec, globalObject, impl);\n");
+ push(@implContent, " if (JSValue result = getExistingWrapper<$className, $implType>(exec, impl)) return result;\n");
} else {
- push(@implContent, " return wrap<$className>(exec, globalObject, impl);\n");
+ push(@implContent, " if (JSValue result = getExistingWrapper<$className>(exec, impl)) return result;\n");
}
+ push(@implContent, <<END) if $vtableNameGnu;
+
+#if ENABLE(BINDING_INTEGRITY)
+ void* actualVTablePointer = *(reinterpret_cast<void**>(impl));
+#if defined(OS_WIN)
+ void* expectedVTablePointer = reinterpret_cast<void*>(${vtableRefWin});
+#else
+ void* expectedVTablePointer = ${vtableRefGnu};
+#if COMPILER(CLANG)
+ COMPILE_ASSERT(__is_polymorphic($implType), ${implType}_is_not_polymorphic);
+#endif
+#endif
+ RELEASE_ASSERT(actualVTablePointer == expectedVTablePointer);
+#endif
+END
+ push(@implContent, <<END) if $interface->extendedAttributes->{"ImplementationLacksVTable"} && $vtableNameGnu;
+#if COMPILER(CLANG)
+ COMPILE_ASSERT(!__is_polymorphic($implType), ${implType}_is_polymorphic_but_idl_claims_not_to_be);
+#endif
+END
+
+ if ($svgPropertyType) {
+ push(@implContent, " return createNewWrapper<$className, $implType>(exec, globalObject, impl);\n");
+ } else {
+ push(@implContent, " return createNewWrapper<$className>(exec, globalObject, impl);\n");
+ }
+
push(@implContent, "}\n\n");
}
Modified: trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt (148256 => 148257)
--- trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt 2013-04-12 01:43:23 UTC (rev 148257)
@@ -104,6 +104,7 @@
Replaceable
ReplaceableConstructor
ReturnNewObject
+SkipVTableValidation
StrictTypeChecking
Supplemental=*
SuppressToJSObject
@@ -130,7 +131,6 @@
V8MeasureAs=*
V8PerWorldBindings
V8ReadOnly
-V8SkipVTableValidation
V8Unforgeable
V8WrapAsFunction
V8DeliverCustomElementCallbacks
Modified: trunk/Source/WebCore/css/CSSRuleList.idl (148256 => 148257)
--- trunk/Source/WebCore/css/CSSRuleList.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/css/CSSRuleList.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -27,6 +27,7 @@
[
JSCustomIsReachable,
IndexedGetter,
+ SkipVTableValidation
] interface CSSRuleList {
readonly attribute unsigned long length;
CSSRule item(in [Optional=DefaultIsUndefined] unsigned long index);
Modified: trunk/Source/WebCore/css/CSSStyleDeclaration.idl (148256 => 148257)
--- trunk/Source/WebCore/css/CSSStyleDeclaration.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/css/CSSStyleDeclaration.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -27,6 +27,7 @@
CustomNamedSetter,
IndexedGetter,
CustomEnumerateProperty,
+ SkipVTableValidation
] interface CSSStyleDeclaration {
[TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString cssText
setter raises(DOMException);
Modified: trunk/Source/WebCore/dom/Clipboard.idl (148256 => 148257)
--- trunk/Source/WebCore/dom/Clipboard.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/dom/Clipboard.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -25,8 +25,9 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
-interface Clipboard {
+[
+ SkipVTableValidation
+] interface Clipboard {
[TreatReturnedNullStringAs=Undefined] attribute DOMString dropEffect;
[TreatReturnedNullStringAs=Undefined] attribute DOMString effectAllowed;
[CustomGetter] readonly attribute Array types;
Modified: trunk/Source/WebCore/dom/DOMStringMap.idl (148256 => 148257)
--- trunk/Source/WebCore/dom/DOMStringMap.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/dom/DOMStringMap.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -29,6 +29,7 @@
CustomDeleteProperty,
CustomEnumerateProperty,
CustomNamedSetter,
+ SkipVTableValidation
] interface DOMStringMap {
};
Modified: trunk/Source/WebCore/dom/MutationRecord.idl (148256 => 148257)
--- trunk/Source/WebCore/dom/MutationRecord.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/dom/MutationRecord.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -28,7 +28,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-interface MutationRecord {
+[
+ SkipVTableValidation
+] interface MutationRecord {
readonly attribute DOMString type;
readonly attribute Node target;
Modified: trunk/Source/WebCore/dom/NodeList.idl (148256 => 148257)
--- trunk/Source/WebCore/dom/NodeList.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/dom/NodeList.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -22,6 +22,7 @@
CustomIsReachable,
IndexedGetter,
NamedGetter,
+ SkipVTableValidation
] interface NodeList {
Node item(in [IsIndex,Optional=DefaultIsUndefined] unsigned long index);
Modified: trunk/Source/WebCore/html/DOMTokenList.idl (148256 => 148257)
--- trunk/Source/WebCore/html/DOMTokenList.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/html/DOMTokenList.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -25,6 +25,7 @@
[
GenerateIsReachable=ImplElementRoot,
IndexedGetter,
+ SkipVTableValidation
] interface DOMTokenList {
readonly attribute unsigned long length;
[TreatReturnedNullStringAs=Null] DOMString item(in unsigned long index);
Modified: trunk/Source/WebCore/html/track/TextTrack.idl (148256 => 148257)
--- trunk/Source/WebCore/html/track/TextTrack.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/html/track/TextTrack.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -28,6 +28,7 @@
EventTarget,
JSCustomMarkFunction,
JSCustomIsReachable,
+ SkipVTableValidation
] interface TextTrack {
readonly attribute DOMString kind;
readonly attribute DOMString label;
Modified: trunk/Source/WebCore/inspector/ScriptProfileNode.idl (148256 => 148257)
--- trunk/Source/WebCore/inspector/ScriptProfileNode.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/inspector/ScriptProfileNode.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -26,7 +26,8 @@
[
Conditional=_javascript__DEBUGGER,
- OmitConstructor
+ OmitConstructor,
+ ImplementationLacksVTable
] interface ScriptProfileNode {
readonly attribute DOMString functionName;
readonly attribute DOMString url;
Modified: trunk/Source/WebCore/storage/Storage.idl (148256 => 148257)
--- trunk/Source/WebCore/storage/Storage.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/storage/Storage.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -30,6 +30,7 @@
CustomEnumerateProperty,
V8CustomIndexedGetter,
CustomNamedSetter,
+ SkipVTableValidation
] interface Storage {
[NotEnumerable] readonly attribute unsigned long length getter raises(DOMException);
[NotEnumerable, TreatReturnedNullStringAs=Null] DOMString key(in unsigned long index)
Modified: trunk/Source/WebCore/xml/XPathNSResolver.idl (148256 => 148257)
--- trunk/Source/WebCore/xml/XPathNSResolver.idl 2013-04-12 00:50:48 UTC (rev 148256)
+++ trunk/Source/WebCore/xml/XPathNSResolver.idl 2013-04-12 01:43:23 UTC (rev 148257)
@@ -21,7 +21,7 @@
[
ObjCProtocol,
OmitConstructor,
- V8SkipVTableValidation
+ SkipVTableValidation
] interface XPathNSResolver {
[TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI(in [Optional=DefaultIsUndefined] DOMString prefix);
};