Changeset 141034 in webkit
- Timestamp:
- Jan 28, 2013 6:37:52 PM (11 years ago)
- Location:
- trunk/Source
- Files:
-
- 163 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r141033 r141034 1 2013-01-28 Tom Sepez <tsepez@chromium.org> 2 3 [v8] Security feature: JavaScript Bindings hardening 4 https://bugs.webkit.org/show_bug.cgi?id=106608 5 6 The patch adds a check at wrapper creation time to enuse that the 7 object being wrapped is not already free, to the extent that we know 8 the information about the type of the object as provided in the IDL. 9 10 Reviewed by Adam Barth. 11 12 Patch is correct if existing tests pass without new crashes. 13 14 * bindings/scripts/CodeGeneratorV8.pm: 15 (GenerateImplementation): 16 (GenerateToV8Converters): 17 (GetNativeTypeForConversions): 18 (GetGnuVTableRefForInterface): 19 (GetGnuVTableNameForInterface): 20 (GetGnuMangledNameForInterface): 21 (GetGnuVTableOffsetForType): 22 (GetWinVTableRefForInterface): 23 (GetWinVTableNameForInterface): 24 (GetWinMangledNameForInterface): 25 (GetNamespaceForInterface): 26 (GetImplementationLacksVTableForInterface): 27 (GetV8SkipVTableValidationForInterface): 28 Update code generation to add object validity tests under the control 29 of the ENABLE_BINDING_INTEGRITY option. 30 31 * Modules/filesystem/DirectoryReader.idl: 32 * Modules/filesystem/DirectoryReaderSync.idl: 33 * Modules/filesystem/EntryArray.idl: 34 * Modules/filesystem/EntryArraySync.idl: 35 * Modules/filesystem/Metadata.idl: 36 * Modules/gamepad/Gamepad.idl: 37 * Modules/gamepad/GamepadList.idl: 38 * Modules/geolocation/Geoposition.idl: 39 * Modules/geolocation/PositionError.idl: 40 * Modules/indexeddb/IDBFactory.idl: 41 * Modules/indexeddb/IDBIndex.idl: 42 * Modules/indexeddb/IDBKeyRange.idl: 43 * Modules/indexeddb/IDBObjectStore.idl: 44 * Modules/mediastream/RTCStatsElement.idl: 45 * Modules/mediastream/RTCStatsReport.idl: 46 * Modules/quota/StorageInfo.idl: 47 * Modules/speech/SpeechGrammar.idl: 48 * Modules/speech/SpeechGrammarList.idl: 49 * Modules/speech/SpeechRecognitionAlternative.idl: 50 * Modules/speech/SpeechRecognitionResult.idl: 51 * Modules/speech/SpeechRecognitionResultList.idl: 52 * Modules/webaudio/AudioBuffer.idl: 53 * Modules/webaudio/AudioDestinationNode.idl: 54 * Modules/webaudio/AudioListener.idl: 55 * Modules/webaudio/AudioSourceNode.idl: 56 * Modules/webaudio/WaveTable.idl: 57 * Modules/webdatabase/SQLError.idl: 58 * Modules/webdatabase/SQLException.idl: 59 * Modules/webdatabase/SQLResultSet.idl: 60 * Modules/webdatabase/SQLResultSetRowList.idl: 61 * Modules/webdatabase/SQLTransaction.idl: 62 * Modules/webdatabase/SQLTransactionSync.idl: 63 * bindings/scripts/IDLAttributes.txt: 64 * css/CSSPrimitiveValue.idl: 65 * css/CSSRule.idl: 66 * css/CSSRuleList.idl: 67 * css/CSSStyleDeclaration.idl: 68 * css/CSSValue.idl: 69 * css/CSSValueList.idl: 70 * css/Counter.idl: 71 * css/MediaList.idl: 72 * css/MediaQueryList.idl: 73 * css/RGBColor.idl: 74 * css/Rect.idl: 75 * css/StyleSheetList.idl: 76 * css/WebKitCSSFilterValue.idl: 77 * css/WebKitCSSMixFunctionValue.idl: 78 * css/WebKitCSSTransformValue.idl: 79 * dom/ClientRect.idl: 80 * dom/ClientRectList.idl: 81 * dom/Clipboard.idl: 82 * dom/DOMCoreException.idl: 83 * dom/DOMError.idl: 84 * dom/DOMImplementation.idl: 85 * dom/DOMNamedFlowCollection.idl: 86 * dom/DOMStringList.idl: 87 * dom/DOMStringMap.idl: 88 * dom/DataTransferItem.idl: 89 * dom/DataTransferItemList.idl: 90 * dom/DocumentFragment.idl: 91 * dom/Element.idl: 92 * dom/Entity.idl: 93 * dom/Event.idl: 94 * dom/EventException.idl: 95 * dom/MessageChannel.idl: 96 * dom/MouseEvent.idl: 97 * dom/MutationObserver.idl: 98 * dom/MutationRecord.idl: 99 * dom/NamedNodeMap.idl: 100 * dom/NodeFilter.idl: 101 * dom/NodeIterator.idl: 102 * dom/NodeList.idl: 103 * dom/Range.idl: 104 * dom/RangeException.idl: 105 * dom/Touch.idl: 106 * dom/TouchList.idl: 107 * dom/TreeWalker.idl: 108 * fileapi/FileError.idl: 109 * fileapi/FileException.idl: 110 * fileapi/FileList.idl: 111 * html/DOMFormData.idl: 112 * html/DOMTokenList.idl: 113 * html/DOMURL.idl: 114 * html/HTMLAllCollection.idl: 115 * html/HTMLCollection.idl: 116 * html/HTMLDialogElement.idl: 117 * html/HTMLDivElement.idl: 118 * html/HTMLDocument.idl: 119 * html/HTMLElement.idl: 120 * html/HTMLImageElement.idl: 121 * html/HTMLInputElement.idl: 122 * html/HTMLSelectElement.idl: 123 * html/HTMLSpanElement.idl: 124 * html/HTMLUnknownElement.idl: 125 * html/ImageData.idl: 126 * html/MediaError.idl: 127 * html/MediaKeyError.idl: 128 * html/TimeRanges.idl: 129 * html/ValidityState.idl: 130 * html/canvas/ArrayBuffer.idl: 131 * html/canvas/ArrayBufferView.idl: 132 * html/canvas/CanvasGradient.idl: 133 * html/canvas/CanvasPattern.idl: 134 * html/canvas/Float32Array.idl: 135 * html/canvas/Float64Array.idl: 136 * html/canvas/Int16Array.idl: 137 * html/canvas/Int32Array.idl: 138 * html/canvas/Int8Array.idl: 139 * html/canvas/Uint16Array.idl: 140 * html/canvas/Uint32Array.idl: 141 * html/canvas/Uint8Array.idl: 142 * html/canvas/Uint8ClampedArray.idl: 143 * html/canvas/WebGLActiveInfo.idl: 144 * html/canvas/WebGLShaderPrecisionFormat.idl: 145 * html/track/TextTrack.idl: 146 * html/track/TextTrackCue.idl: 147 * html/track/TextTrackCueList.idl: 148 * inspector/InjectedScriptHost.idl: 149 * inspector/InspectorFrontendHost.idl: 150 * inspector/JavaScriptCallFrame.idl: 151 * page/Coordinates.idl: 152 * page/Crypto.idl: 153 * page/MemoryInfo.idl: 154 * page/PagePopupController.idl: 155 * page/PerformanceEntryList.idl: 156 * page/SpeechInputResult.idl: 157 * page/SpeechInputResultList.idl: 158 * page/WebKitPoint.idl: 159 * svg/SVGAnimatedAngle.idl: 160 * svg/SVGAnimatedBoolean.idl: 161 * svg/SVGAnimatedEnumeration.idl: 162 * svg/SVGAnimatedInteger.idl: 163 * svg/SVGAnimatedLength.idl: 164 * svg/SVGAnimatedLengthList.idl: 165 * svg/SVGAnimatedNumber.idl: 166 * svg/SVGAnimatedNumberList.idl: 167 * svg/SVGAnimatedPreserveAspectRatio.idl: 168 * svg/SVGAnimatedRect.idl: 169 * svg/SVGAnimatedString.idl: 170 * svg/SVGAnimatedTransformList.idl: 171 * svg/SVGColor.idl: 172 * svg/SVGException.idl: 173 * svg/SVGPaint.idl: 174 * svg/SVGPathSeg.idl: 175 * svg/SVGRenderingIntent.idl: 176 * svg/SVGUnitTypes.idl: 177 * svg/SVGZoomAndPan.idl: 178 * testing/MallocStatistics.idl: 179 * testing/TypeConversions.idl: 180 * workers/WorkerLocation.idl: 181 * xml/DOMParser.idl: 182 * xml/XMLHttpRequestException.idl: 183 * xml/XMLSerializer.idl: 184 * xml/XPathEvaluator.idl: 185 * xml/XPathException.idl: 186 * xml/XPathExpression.idl: 187 * xml/XPathNSResolver.idl: 188 * xml/XPathResult.idl: 189 * xml/XSLTProcessor.idl: 190 Add exceptions to binding integrity checks to IDL. 191 1 192 2013-01-28 Alpha Lam <hclam@chromium.org> 2 193 -
trunk/Source/WebCore/Modules/filesystem/DirectoryReader.idl
r131172 r141034 31 31 [ 32 32 Conditional=FILE_SYSTEM, 33 JSNoStaticTables 33 JSNoStaticTables, 34 ImplementationLacksVTable 34 35 ] interface DirectoryReader { 35 36 void readEntries(in [Callback] EntriesCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback); -
trunk/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl
r131172 r141034 31 31 [ 32 32 Conditional=FILE_SYSTEM, 33 JSNoStaticTables 33 JSNoStaticTables, 34 ImplementationLacksVTable 34 35 ] interface DirectoryReaderSync { 35 36 EntryArraySync readEntries() raises (FileException); -
trunk/Source/WebCore/Modules/filesystem/EntryArray.idl
r131172 r141034 32 32 Conditional=FILE_SYSTEM, 33 33 IndexedGetter, 34 JSNoStaticTables 34 JSNoStaticTables, 35 ImplementationLacksVTable 35 36 ] interface EntryArray { 36 37 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/filesystem/EntryArraySync.idl
r131172 r141034 32 32 Conditional=FILE_SYSTEM, 33 33 IndexedGetter, 34 JSNoStaticTables 34 JSNoStaticTables, 35 ImplementationLacksVTable 35 36 ] interface EntryArraySync { 36 37 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/filesystem/Metadata.idl
r131172 r141034 31 31 [ 32 32 Conditional=FILE_SYSTEM, 33 JSNoStaticTables 33 JSNoStaticTables, 34 ImplementationLacksVTable 34 35 ] interface Metadata { 35 36 readonly attribute Date modificationTime; -
trunk/Source/WebCore/Modules/gamepad/Gamepad.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=GAMEPAD 27 Conditional=GAMEPAD, 28 ImplementationLacksVTable 28 29 ] interface Gamepad { 29 30 readonly attribute DOMString id; -
trunk/Source/WebCore/Modules/gamepad/GamepadList.idl
r131172 r141034 26 26 [ 27 27 Conditional=GAMEPAD, 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface GamepadList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/geolocation/Geoposition.idl
r131172 r141034 26 26 [ 27 27 Conditional=GEOLOCATION, 28 OmitConstructor 28 OmitConstructor, 29 ImplementationLacksVTable 29 30 ] interface Geoposition { 30 31 readonly attribute Coordinates coords; -
trunk/Source/WebCore/Modules/geolocation/PositionError.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=GEOLOCATION 27 Conditional=GEOLOCATION, 28 ImplementationLacksVTable 28 29 ] interface PositionError { 29 30 readonly attribute unsigned short code; -
trunk/Source/WebCore/Modules/indexeddb/IDBFactory.idl
r141013 r141034 26 26 [ 27 27 Conditional=INDEXED_DATABASE, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationLacksVTable 29 30 ] interface IDBFactory { 30 31 [CallWith=ScriptExecutionContext, ImplementedAs=getDatabaseNames] IDBRequest webkitGetDatabaseNames(); -
trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl
r140457 r141034 26 26 [ 27 27 Conditional=INDEXED_DATABASE, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationLacksVTable 29 30 ] interface IDBIndex { 30 31 readonly attribute DOMString name; -
trunk/Source/WebCore/Modules/indexeddb/IDBKeyRange.idl
r140457 r141034 26 26 [ 27 27 Conditional=INDEXED_DATABASE, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationLacksVTable 29 30 ] interface IDBKeyRange { 30 31 [ImplementedAs=lowerValue,CallWith=ScriptExecutionContext] readonly attribute any lower; -
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl
r140457 r141034 26 26 [ 27 27 Conditional=INDEXED_DATABASE, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationLacksVTable 29 30 ] interface IDBObjectStore { 30 31 [TreatReturnedNullStringAs=Null] readonly attribute DOMString name; -
trunk/Source/WebCore/Modules/mediastream/RTCStatsElement.idl
r136507 r141034 25 25 [ 26 26 Conditional=MEDIA_STREAM, 27 ImplementationLacksVTable 27 28 ] interface RTCStatsElement { 28 29 readonly attribute Date timestamp; -
trunk/Source/WebCore/Modules/mediastream/RTCStatsReport.idl
r131172 r141034 24 24 25 25 [ 26 Conditional=MEDIA_STREAM 26 Conditional=MEDIA_STREAM, 27 ImplementationLacksVTable 27 28 ] interface RTCStatsReport { 28 29 readonly attribute RTCStatsElement local; -
trunk/Source/WebCore/Modules/quota/StorageInfo.idl
r131172 r141034 26 26 [ 27 27 Conditional=QUOTA, 28 OmitConstructor 28 OmitConstructor, 29 ImplementationLacksVTable 29 30 ] interface StorageInfo { 30 31 const unsigned short TEMPORARY = 0; -
trunk/Source/WebCore/Modules/speech/SpeechGrammar.idl
r131172 r141034 26 26 [ 27 27 Conditional=SCRIPTED_SPEECH, 28 Constructor 28 Constructor, 29 ImplementationLacksVTable 29 30 ] interface SpeechGrammar { 30 31 [URL,CallWith=ScriptExecutionContext] attribute DOMString src; -
trunk/Source/WebCore/Modules/speech/SpeechGrammarList.idl
r131172 r141034 28 28 IndexedGetter, 29 29 Constructor, 30 ImplementationLacksVTable 30 31 ] interface SpeechGrammarList { 31 32 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SCRIPTED_SPEECH 27 Conditional=SCRIPTED_SPEECH, 28 ImplementationLacksVTable 28 29 ] interface SpeechRecognitionAlternative { 29 30 readonly attribute DOMString transcript; -
trunk/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl
r136392 r141034 26 26 [ 27 27 Conditional=SCRIPTED_SPEECH, 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface SpeechRecognitionResult { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl
r131172 r141034 26 26 [ 27 27 Conditional=SCRIPTED_SPEECH, 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface SpeechRecognitionResultList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/webaudio/AudioBuffer.idl
r131172 r141034 28 28 29 29 [ 30 Conditional=WEB_AUDIO 30 Conditional=WEB_AUDIO, 31 ImplementationLacksVTable 31 32 ] interface AudioBuffer { 32 33 readonly attribute long length; // in sample-frames -
trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl
r131172 r141034 25 25 [ 26 26 Conditional=WEB_AUDIO, 27 JSGenerateToJSObject 27 JSGenerateToJSObject, 28 V8SkipVTableValidation 28 29 ] interface AudioDestinationNode : AudioNode { 29 30 readonly attribute long numberOfChannels; -
trunk/Source/WebCore/Modules/webaudio/AudioListener.idl
r131172 r141034 28 28 29 29 [ 30 Conditional=WEB_AUDIO 30 Conditional=WEB_AUDIO, 31 ImplementationLacksVTable 31 32 ] interface AudioListener { 32 33 attribute float dopplerFactor; // same as OpenAL (default 1.0) -
trunk/Source/WebCore/Modules/webaudio/AudioSourceNode.idl
r131172 r141034 28 28 29 29 [ 30 Conditional=WEB_AUDIO 30 Conditional=WEB_AUDIO, 31 ImplementationLacksVTable 31 32 ] interface AudioSourceNode : AudioNode { 32 33 }; -
trunk/Source/WebCore/Modules/webaudio/WaveTable.idl
r131172 r141034 25 25 // WaveTable represents a periodic audio waveform given by its Fourier coefficients. 26 26 [ 27 Conditional=WEB_AUDIO 27 Conditional=WEB_AUDIO, 28 ImplementationLacksVTable 28 29 ] interface WaveTable { 29 30 -
trunk/Source/WebCore/Modules/webdatabase/SQLError.idl
r131172 r141034 30 30 Conditional=SQL_DATABASE, 31 31 OmitConstructor, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface SQLError { 34 35 readonly attribute unsigned long code; -
trunk/Source/WebCore/Modules/webdatabase/SQLException.idl
r131172 r141034 32 32 Conditional=SQL_DATABASE, 33 33 JSNoStaticTables, 34 DoNotCheckConstants 34 DoNotCheckConstants, 35 ImplementationLacksVTable 35 36 ] exception SQLException { 36 37 readonly attribute unsigned long code; -
trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.idl
r131172 r141034 30 30 Conditional=SQL_DATABASE, 31 31 OmitConstructor, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface SQLResultSet { 34 35 readonly attribute SQLResultSetRowList rows; -
trunk/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl
r131172 r141034 30 30 Conditional=SQL_DATABASE, 31 31 OmitConstructor, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface SQLResultSetRowList { 34 35 readonly attribute unsigned long length; -
trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.idl
r131172 r141034 30 30 Conditional=SQL_DATABASE, 31 31 OmitConstructor, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface SQLTransaction { 34 35 [Custom] void executeSql(in DOMString sqlStatement, -
trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl
r131172 r141034 32 32 Conditional=SQL_DATABASE, 33 33 OmitConstructor, 34 JSNoStaticTables 34 JSNoStaticTables, 35 ImplementationLacksVTable 35 36 ] interface SQLTransactionSync { 36 37 [Custom] SQLResultSet executeSql(in DOMString sqlStatement, in ObjectArray arguments); -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm
r140938 r141034 2615 2615 my $v8InterfaceName = "V8$interfaceName"; 2616 2616 my $nativeType = GetNativeTypeForConversions($interface); 2617 my $vtableNameGnu = GetGnuVTableNameForInterface($interface); 2618 my $vtableRefGnu = GetGnuVTableRefForInterface($interface); 2619 my $vtableRefWin = GetWinVTableRefForInterface($interface); 2617 2620 2618 2621 # - Add default header template … … 2641 2644 last; 2642 2645 } 2646 2647 push(@implContentDecls, <<END) if $vtableNameGnu; 2648 #if ENABLE(BINDING_INTEGRITY) 2649 #if defined(OS_WIN) 2650 #pragma warning(disable: 4483) 2651 extern "C" { extern void (*const ${vtableRefWin}[])(); } 2652 #else 2653 extern "C" { extern void* ${vtableNameGnu}[]; } 2654 #endif 2655 #endif // ENABLE(BINDING_INTEGRITY) 2656 2657 END 2658 2643 2659 push(@implContentDecls, "namespace WebCore {\n\n"); 2660 2661 push(@implContentDecls, <<END) if $vtableNameGnu; 2662 #if ENABLE(BINDING_INTEGRITY) 2663 inline void checkTypeOrDieTrying(${nativeType}* object) 2664 { 2665 void* actualVTablePointer = *(reinterpret_cast<void**>(object)); 2666 #if defined(OS_WIN) 2667 void* expectedVTablePointer = reinterpret_cast<void*>(${vtableRefWin}); 2668 #else 2669 void* expectedVTablePointer = ${vtableRefGnu}; 2670 #endif 2671 if (actualVTablePointer != expectedVTablePointer) 2672 CRASH(); 2673 } 2674 #endif // ENABLE(BINDING_INTEGRITY) 2675 2676 END 2677 2678 2644 2679 my $parentClassInfo = $parentClass ? "&${parentClass}::info" : "0"; 2645 2680 … … 3467 3502 } 3468 3503 3504 AddToImplIncludes("Frame.h"); 3505 3469 3506 my $createWrapperArgumentType = GetPassRefPtrType($nativeType); 3470 3507 my $baseType = BaseInterfaceName($interface); … … 3477 3514 ASSERT(DOMDataStore::getWrapper(impl.get(), isolate).IsEmpty()); 3478 3515 END 3479 if ($baseType ne $interfaceName) { 3480 push(@implContent, <<END); 3516 3517 my $vtableNameGnu = GetGnuVTableNameForInterface($interface); 3518 push(@implContent, <<END) if $vtableNameGnu; 3519 3520 #if ENABLE(BINDING_INTEGRITY) 3521 checkTypeOrDieTrying(impl.get()); 3522 #endif 3523 END 3524 3525 push(@implContent, <<END) if ($baseType ne $interfaceName); 3481 3526 ASSERT(static_cast<void*>(static_cast<${baseType}*>(impl.get())) == static_cast<void*>(impl.get())); 3482 3527 END 3483 }3484 3485 AddToImplIncludes("Frame.h");3486 3528 3487 3529 if ($codeGenerator->InheritsInterface($interface, "Document")) { … … 3517 3559 my $interface = shift; 3518 3560 my $interfaceName = $interface->name; 3519 3520 3561 $interfaceName = $codeGenerator->GetSVGTypeNeedingTearOff($interfaceName) if $codeGenerator->IsSVGTypeNeedingTearOff($interfaceName); 3521 return $interfaceName;; 3562 return $interfaceName; 3563 } 3564 3565 # See http://refspecs.linux-foundation.org/cxxabi-1.83.html. 3566 sub GetGnuVTableRefForInterface 3567 { 3568 my $interface = shift; 3569 my $vtableName = GetGnuVTableNameForInterface($interface); 3570 if (!$vtableName) { 3571 return "0"; 3572 } 3573 my $typename = GetNativeTypeForConversions($interface); 3574 my $offset = GetGnuVTableOffsetForType($typename); 3575 return "&" . $vtableName . "[" . $offset . "]"; 3576 } 3577 3578 sub GetGnuVTableNameForInterface 3579 { 3580 my $interface = shift; 3581 my $typename = GetNativeTypeForConversions($interface); 3582 my $templatePosition = index($typename, "<"); 3583 return "" if $templatePosition != -1; 3584 return "" if GetImplementationLacksVTableForInterface($interface); 3585 return "" if GetV8SkipVTableValidationForInterface($interface); 3586 return "_ZTV" . GetGnuMangledNameForInterface($interface); 3587 } 3588 3589 sub GetGnuMangledNameForInterface 3590 { 3591 my $interface = shift; 3592 my $typename = GetNativeTypeForConversions($interface); 3593 my $templatePosition = index($typename, "<"); 3594 if ($templatePosition != -1) { 3595 return ""; 3596 } 3597 my $mangledType = length($typename) . $typename; 3598 my $namespace = GetNamespaceForInterface($interface); 3599 my $mangledNamespace = "N" . length($namespace) . $namespace; 3600 return $mangledNamespace . $mangledType . "E"; 3601 } 3602 3603 sub GetGnuVTableOffsetForType 3604 { 3605 my $typename = shift; 3606 if ($typename eq "SVGAElement" 3607 || $typename eq "SVGCircleElement" 3608 || $typename eq "SVGClipPathElement" 3609 || $typename eq "SVGDefsElement" 3610 || $typename eq "SVGEllipseElement" 3611 || $typename eq "SVGForeignObjectElement" 3612 || $typename eq "SVGGElement" 3613 || $typename eq "SVGImageElement" 3614 || $typename eq "SVGLineElement" 3615 || $typename eq "SVGPathElement" 3616 || $typename eq "SVGPolyElement" 3617 || $typename eq "SVGPolygonElement" 3618 || $typename eq "SVGPolylineElement" 3619 || $typename eq "SVGRectElement" 3620 || $typename eq "SVGSVGElement" 3621 || $typename eq "SVGStyledLocatableElement" 3622 || $typename eq "SVGStyledTransformableElement" 3623 || $typename eq "SVGSwitchElement" 3624 || $typename eq "SVGTextElement" 3625 || $typename eq "SVGTransformable" 3626 || $typename eq "SVGUseElement") { 3627 return "3"; 3628 } 3629 return "2"; 3630 } 3631 3632 # See http://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B_Name_Mangling. 3633 sub GetWinVTableRefForInterface 3634 { 3635 my $interface = shift; 3636 my $vtableName = GetWinVTableNameForInterface($interface); 3637 return 0 if !$vtableName; 3638 return "__identifier(\"" . $vtableName . "\")"; 3639 } 3640 3641 sub GetWinVTableNameForInterface 3642 { 3643 my $interface = shift; 3644 my $typename = GetNativeTypeForConversions($interface); 3645 my $templatePosition = index($typename, "<"); 3646 return "" if $templatePosition != -1; 3647 return "" if GetImplementationLacksVTableForInterface($interface); 3648 return "" if GetV8SkipVTableValidationForInterface($interface); 3649 return "??_7" . GetWinMangledNameForInterface($interface) . "6B@"; 3650 } 3651 3652 sub GetWinMangledNameForInterface 3653 { 3654 my $interface = shift; 3655 my $typename = GetNativeTypeForConversions($interface); 3656 my $namespace = GetNamespaceForInterface($interface); 3657 return $typename . "@" . $namespace . "@@"; 3658 } 3659 3660 sub GetNamespaceForInterface 3661 { 3662 my $interface = shift; 3663 return $interface->extendedAttributes->{"ImplementationNamespace"} || "WebCore"; 3664 } 3665 3666 sub GetImplementationLacksVTableForInterface 3667 { 3668 my $interface = shift; 3669 return $interface->extendedAttributes->{"ImplementationLacksVTable"}; 3670 } 3671 3672 sub GetV8SkipVTableValidationForInterface 3673 { 3674 my $interface = shift; 3675 return $interface->extendedAttributes->{"V8SkipVTableValidation"}; 3522 3676 } 3523 3677 -
trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt
r140303 r141034 57 57 GenerateIsReachable=ImplDocument|ImplElementRoot|ImplOwnerNodeRoot 58 58 Immutable 59 ImplementationLacksVTable 60 ImplementationNamespace=* 59 61 ImplementedAs=* 60 62 IndexedGetter … … 126 128 V8MeasureAs=* 127 129 V8ReadOnly 130 V8SkipVTableValidation 128 131 V8Unforgeable -
trunk/Source/WebCore/css/CSSPrimitiveValue.idl
r131145 r141034 18 18 */ 19 19 20 interface CSSPrimitiveValue : CSSValue { 20 [ 21 ImplementationLacksVTable 22 ] interface CSSPrimitiveValue : CSSValue { 21 23 22 24 // UnitTypes -
trunk/Source/WebCore/css/CSSRule.idl
r140997 r141034 25 25 CustomToJSObject, 26 26 ObjCPolymorphic, 27 V8DependentLifetime 27 V8DependentLifetime, 28 V8SkipVTableValidation 28 29 ] interface CSSRule { 29 30 -
trunk/Source/WebCore/css/CSSRuleList.idl
r131172 r141034 28 28 JSCustomIsReachable, 29 29 IndexedGetter, 30 V8DependentLifetime 30 V8DependentLifetime, 31 V8SkipVTableValidation 31 32 ] interface CSSRuleList { 32 33 readonly attribute unsigned long length; -
trunk/Source/WebCore/css/CSSStyleDeclaration.idl
r131172 r141034 30 30 IndexedGetter, 31 31 CustomEnumerateProperty, 32 V8DependentLifetime 32 V8DependentLifetime, 33 V8SkipVTableValidation 33 34 ] interface CSSStyleDeclaration { 34 35 [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString cssText -
trunk/Source/WebCore/css/CSSValue.idl
r131172 r141034 24 24 JSCustomFinalize, 25 25 ObjCPolymorphic, 26 V8DependentLifetime 26 V8DependentLifetime, 27 ImplementationLacksVTable 27 28 ] interface CSSValue { 28 29 -
trunk/Source/WebCore/css/CSSValueList.idl
r131172 r141034 26 26 // Introduced in DOM Level 2: 27 27 [ 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface CSSValueList : CSSValue { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/css/Counter.idl
r131145 r141034 19 19 20 20 // Introduced in DOM Level 2: 21 interface Counter { 21 [ 22 ImplementationLacksVTable 23 ] interface Counter { 22 24 readonly attribute DOMString identifier; 23 25 readonly attribute DOMString listStyle; -
trunk/Source/WebCore/css/MediaList.idl
r131172 r141034 27 27 [ 28 28 JSGenerateIsReachable, 29 IndexedGetter 29 IndexedGetter, 30 ImplementationLacksVTable 30 31 ] interface MediaList { 31 32 -
trunk/Source/WebCore/css/MediaQueryList.idl
r131145 r141034 17 17 * Boston, MA 02110-1301, USA. 18 18 */ 19 20 interface MediaQueryList { 19 [ 20 ImplementationLacksVTable 21 ] interface MediaQueryList { 21 22 readonly attribute DOMString media; 22 23 readonly attribute boolean matches; -
trunk/Source/WebCore/css/RGBColor.idl
r131145 r141034 20 20 21 21 // Introduced in DOM Level 2: 22 interface RGBColor { 22 [ 23 ImplementationLacksVTable 24 ] interface RGBColor { 23 25 readonly attribute CSSPrimitiveValue red; 24 26 readonly attribute CSSPrimitiveValue green; -
trunk/Source/WebCore/css/Rect.idl
r131145 r141034 18 18 */ 19 19 20 interface Rect { 20 [ 21 ImplementationLacksVTable 22 ] interface Rect { 21 23 readonly attribute CSSPrimitiveValue top; 22 24 readonly attribute CSSPrimitiveValue right; -
trunk/Source/WebCore/css/StyleSheetList.idl
r131840 r141034 23 23 GenerateIsReachable=ImplDocument, 24 24 IndexedGetter, 25 NamedGetter 25 NamedGetter, 26 ImplementationLacksVTable 26 27 ] interface StyleSheetList { 27 28 readonly attribute unsigned long length; -
trunk/Source/WebCore/css/WebKitCSSFilterValue.idl
r131172 r141034 27 27 Conditional=CSS_FILTERS, 28 28 IndexedGetter, 29 DoNotCheckConstants 29 DoNotCheckConstants, 30 ImplementationLacksVTable 30 31 ] interface WebKitCSSFilterValue : CSSValueList { 31 32 -
trunk/Source/WebCore/css/WebKitCSSMixFunctionValue.idl
r135749 r141034 30 30 [ 31 31 Conditional=CSS_SHADERS, 32 ImplementationLacksVTable 32 33 ] interface WebKitCSSMixFunctionValue : CSSValueList { 33 34 }; -
trunk/Source/WebCore/css/WebKitCSSTransformValue.idl
r131172 r141034 29 29 [ 30 30 IndexedGetter, 31 DoNotCheckConstants 31 DoNotCheckConstants, 32 ImplementationLacksVTable 32 33 ] interface WebKitCSSTransformValue : CSSValueList { 33 34 -
trunk/Source/WebCore/dom/ClientRect.idl
r131145 r141034 25 25 */ 26 26 27 interface ClientRect { 27 [ 28 ImplementationLacksVTable 29 ] interface ClientRect { 28 30 readonly attribute float top; 29 31 readonly attribute float right; -
trunk/Source/WebCore/dom/ClientRectList.idl
r131172 r141034 26 26 27 27 [ 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface ClientRectList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/dom/Clipboard.idl
r131172 r141034 27 27 */ 28 28 29 interface Clipboard { 29 [ 30 V8SkipVTableValidation 31 ] interface Clipboard { 30 32 [TreatReturnedNullStringAs=Undefined] attribute DOMString dropEffect; 31 33 [TreatReturnedNullStringAs=Undefined] attribute DOMString effectAllowed; -
trunk/Source/WebCore/dom/DOMCoreException.idl
r134440 r141034 30 30 JSNoStaticTables, 31 31 DoNotCheckConstants, 32 InterfaceName=DOMException 32 InterfaceName=DOMException, 33 ImplementationLacksVTable 33 34 ] exception DOMCoreException { 34 35 -
trunk/Source/WebCore/dom/DOMError.idl
r131145 r141034 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 29 interface [30 ] DOMError {28 [ 29 ImplementationLacksVTable 30 ] interface DOMError { 31 31 readonly attribute DOMString name; 32 32 }; -
trunk/Source/WebCore/dom/DOMImplementation.idl
r131838 r141034 21 21 [ 22 22 GenerateIsReachable=ImplDocument, 23 ImplementationLacksVTable 23 24 ] interface DOMImplementation { 24 25 -
trunk/Source/WebCore/dom/DOMNamedFlowCollection.idl
r137835 r141034 34 34 JSGenerateToJSObject, 35 35 IndexedGetter, 36 NamedGetter 36 NamedGetter, 37 ImplementationLacksVTable 37 38 ] interface DOMNamedFlowCollection { 38 39 readonly attribute unsigned long length; -
trunk/Source/WebCore/dom/DOMStringList.idl
r134674 r141034 27 27 IndexedGetter, 28 28 JSCustomToNativeObject, 29 JSNoStaticTables 29 JSNoStaticTables, 30 ImplementationLacksVTable 30 31 ] interface DOMStringList { 31 32 readonly attribute unsigned long length; -
trunk/Source/WebCore/dom/DOMStringMap.idl
r131172 r141034 29 29 CustomDeleteProperty, 30 30 CustomEnumerateProperty, 31 CustomNamedSetter 31 CustomNamedSetter, 32 V8SkipVTableValidation 32 33 ] interface DOMStringMap { 33 34 }; -
trunk/Source/WebCore/dom/DataTransferItem.idl
r131172 r141034 31 31 [ 32 32 Conditional=DATA_TRANSFER_ITEMS, 33 ImplementationLacksVTable 33 34 ] interface DataTransferItem { 34 35 readonly attribute DOMString kind; -
trunk/Source/WebCore/dom/DataTransferItemList.idl
r131172 r141034 36 36 CustomDeleteProperty, 37 37 #endif 38 ImplementationLacksVTable 38 39 ] interface DataTransferItemList { 39 40 readonly attribute long length; -
trunk/Source/WebCore/dom/DocumentFragment.idl
r131145 r141034 18 18 */ 19 19 20 interface DocumentFragment : Node { 20 [ 21 V8SkipVTableValidation 22 ] interface DocumentFragment : Node { 21 23 // NodeSelector - Selector API 22 24 Element querySelector(in DOMString selectors) -
trunk/Source/WebCore/dom/Element.idl
r139027 r141034 22 22 JSGenerateToNativeObject, 23 23 JSInlineGetOwnPropertySlot, 24 V8CustomToJSObject 24 V8CustomToJSObject, 25 V8SkipVTableValidation 25 26 ] interface Element : Node { 26 27 -
trunk/Source/WebCore/dom/Entity.idl
r131172 r141034 17 17 * Boston, MA 02110-1301, USA. 18 18 */ 19 20 interface Entity : Node { 19 [ 20 ImplementationLacksVTable 21 ] interface Entity : Node { 21 22 [TreatReturnedNullStringAs=Null] readonly attribute DOMString publicId; 22 23 [TreatReturnedNullStringAs=Null] readonly attribute DOMString systemId; -
trunk/Source/WebCore/dom/Event.idl
r131172 r141034 24 24 ConstructorTemplate=Event, 25 25 JSNoStaticTables, 26 ObjCPolymorphic 26 ObjCPolymorphic, 27 V8SkipVTableValidation 27 28 ] interface Event { 28 29 -
trunk/Source/WebCore/dom/EventException.idl
r131172 r141034 30 30 [ 31 31 JSNoStaticTables, 32 DoNotCheckConstants 32 DoNotCheckConstants, 33 ImplementationLacksVTable, 33 34 ] exception EventException { 34 35 -
trunk/Source/WebCore/dom/MessageChannel.idl
r131172 r141034 30 30 V8CustomConstructor, 31 31 JSCustomMarkFunction, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface MessageChannel { 34 35 -
trunk/Source/WebCore/dom/MouseEvent.idl
r140657 r141034 20 20 [ 21 21 ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR, 22 ConstructorTemplate=Event 22 ConstructorTemplate=Event, 23 V8SkipVTableValidation 23 24 ] interface MouseEvent : UIEvent { 24 25 [InitializedByEventConstructor] readonly attribute long screenX; -
trunk/Source/WebCore/dom/MutationObserver.idl
r138811 r141034 32 32 CustomConstructor, 33 33 ConstructorParameters=1, 34 JSCustomIsReachable 34 JSCustomIsReachable, 35 ImplementationLacksVTable 35 36 ] interface MutationObserver { 36 37 void observe(in Node target, in Dictionary options) -
trunk/Source/WebCore/dom/MutationRecord.idl
r138811 r141034 29 29 */ 30 30 31 interface MutationRecord { 31 [ 32 V8SkipVTableValidation 33 ] interface MutationRecord { 32 34 readonly attribute DOMString type; 33 35 readonly attribute Node target; -
trunk/Source/WebCore/dom/NamedNodeMap.idl
r131172 r141034 23 23 IndexedGetter, 24 24 JSCustomMarkFunction, 25 NamedGetter 25 NamedGetter, 26 ImplementationLacksVTable 26 27 ] interface NamedNodeMap { 27 28 -
trunk/Source/WebCore/dom/NodeFilter.idl
r131172 r141034 24 24 JSCustomToNativeObject, 25 25 ObjCProtocol, 26 CPPPureInterface 26 CPPPureInterface, 27 ImplementationLacksVTable 27 28 ] interface NodeFilter { 28 29 // Constants returned by acceptNode -
trunk/Source/WebCore/dom/NodeIterator.idl
r131172 r141034 21 21 // Introduced in DOM Level 2: 22 22 [ 23 JSCustomMarkFunction 23 JSCustomMarkFunction, 24 ImplementationLacksVTable 24 25 ] interface NodeIterator { 25 26 readonly attribute Node root; -
trunk/Source/WebCore/dom/NodeList.idl
r131172 r141034 23 23 IndexedGetter, 24 24 NamedGetter, 25 V8DependentLifetime 25 V8DependentLifetime, 26 V8SkipVTableValidation 26 27 ] interface NodeList { 27 28 -
trunk/Source/WebCore/dom/Range.idl
r131145 r141034 20 20 21 21 // Introduced in DOM Level 2: 22 interface Range { 22 [ 23 ImplementationLacksVTable 24 ] interface Range { 23 25 24 26 readonly attribute Node startContainer -
trunk/Source/WebCore/dom/RangeException.idl
r131172 r141034 19 19 20 20 [ 21 DoNotCheckConstants 21 DoNotCheckConstants, 22 ImplementationLacksVTable 22 23 ] exception RangeException { 23 24 -
trunk/Source/WebCore/dom/Touch.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=TOUCH_EVENTS 27 Conditional=TOUCH_EVENTS, 28 ImplementationLacksVTable 28 29 ] interface Touch { 29 30 readonly attribute long clientX; -
trunk/Source/WebCore/dom/TouchList.idl
r131172 r141034 26 26 [ 27 27 Conditional=TOUCH_EVENTS, 28 IndexedGetter 28 IndexedGetter, 29 ImplementationLacksVTable 29 30 ] interface TouchList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/dom/TreeWalker.idl
r131172 r141034 21 21 // Introduced in DOM Level 2: 22 22 [ 23 JSCustomMarkFunction 23 JSCustomMarkFunction, 24 ImplementationLacksVTable 24 25 ] interface TreeWalker { 25 26 readonly attribute Node root; -
trunk/Source/WebCore/fileapi/FileError.idl
r131172 r141034 31 31 [ 32 32 Conditional=BLOB|FILE_SYSTEM, 33 JSNoStaticTables 33 JSNoStaticTables, 34 ImplementationLacksVTable 34 35 ] interface FileError { 35 36 #if !defined(LANGUAGE_OBJECTIVE_C) -
trunk/Source/WebCore/fileapi/FileException.idl
r131172 r141034 32 32 Conditional=BLOB|FILE_SYSTEM, 33 33 DoNotCheckConstants, 34 JSNoStaticTables 34 JSNoStaticTables, 35 ImplementationLacksVTable 35 36 ] exception FileException { 36 37 -
trunk/Source/WebCore/fileapi/FileList.idl
r131172 r141034 26 26 [ 27 27 IndexedGetter, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationLacksVTable 29 30 ] interface FileList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/DOMFormData.idl
r131172 r141034 34 34 JSGenerateToNativeObject, 35 35 JSGenerateToJSObject, 36 InterfaceName=FormData 36 InterfaceName=FormData, 37 ImplementationLacksVTable 37 38 ] interface DOMFormData { 38 39 // void append(DOMString name, DOMString value); -
trunk/Source/WebCore/html/DOMTokenList.idl
r131408 r141034 25 25 [ 26 26 GenerateIsReachable=ImplElementRoot, 27 IndexedGetter 27 IndexedGetter, 28 V8SkipVTableValidation 28 29 ] interface DOMTokenList { 29 30 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/DOMURL.idl
r131172 r141034 31 31 JSGenerateToJSObject, 32 32 JSNoStaticTables, 33 InterfaceName=URL 33 InterfaceName=URL, 34 ImplementationLacksVTable 34 35 ] interface DOMURL { 35 36 #if defined(ENABLE_MEDIA_SOURCE) && ENABLE_MEDIA_SOURCE -
trunk/Source/WebCore/html/HTMLAllCollection.idl
r136850 r141034 30 30 MasqueradesAsUndefined, 31 31 GenerateIsReachable=ImplOwnerNodeRoot, 32 V8DependentLifetime 32 V8DependentLifetime, 33 V8SkipVTableValidation 33 34 ] interface HTMLAllCollection { 34 35 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/HTMLCollection.idl
r136850 r141034 25 25 GenerateIsReachable=ImplOwnerNodeRoot, 26 26 V8DependentLifetime, 27 ObjCPolymorphic 27 ObjCPolymorphic, 28 V8SkipVTableValidation 28 29 ] interface HTMLCollection { 29 30 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/HTMLDialogElement.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=DIALOG_ELEMENT 27 Conditional=DIALOG_ELEMENT, 28 V8SkipVTableValidation 28 29 ] interface HTMLDialogElement : HTMLElement { 29 30 [Reflect] attribute boolean open; -
trunk/Source/WebCore/html/HTMLDivElement.idl
r131172 r141034 18 18 */ 19 19 20 interface HTMLDivElement : HTMLElement { 20 [ 21 V8SkipVTableValidation 22 ] interface HTMLDivElement : HTMLElement { 21 23 [Reflect] attribute DOMString align; 22 24 }; -
trunk/Source/WebCore/html/HTMLDocument.idl
r134186 r141034 21 21 [ 22 22 CustomNamedGetter, 23 V8CustomToJSObject 23 V8CustomToJSObject, 24 V8SkipVTableValidation 24 25 ] interface HTMLDocument : Document { 25 26 [JSCustom, V8Custom] void open(); -
trunk/Source/WebCore/html/HTMLElement.idl
r134254 r141034 22 22 JSGenerateToNativeObject, 23 23 JSCustomPushEventHandlerScope, 24 V8CustomToJSObject 24 V8CustomToJSObject, 25 V8SkipVTableValidation 25 26 ] interface HTMLElement : Element { 26 27 // iht.com relies on id returning the empty string when no id is present. -
trunk/Source/WebCore/html/HTMLImageElement.idl
r131172 r141034 20 20 21 21 [ 22 JSGenerateToNativeObject 22 JSGenerateToNativeObject, 23 V8SkipVTableValidation 23 24 ] interface HTMLImageElement : HTMLElement { 24 25 [Reflect] attribute DOMString name; -
trunk/Source/WebCore/html/HTMLInputElement.idl
r134538 r141034 20 20 */ 21 21 22 interface HTMLInputElement : HTMLElement { 22 [ 23 V8SkipVTableValidation 24 ] interface HTMLInputElement : HTMLElement { 23 25 [Reflect] attribute DOMString accept; 24 26 [Reflect] attribute DOMString alt; -
trunk/Source/WebCore/html/HTMLSelectElement.idl
r131172 r141034 21 21 [ 22 22 IndexedGetter, 23 CustomIndexedSetter 23 CustomIndexedSetter, 24 V8SkipVTableValidation 24 25 ] interface HTMLSelectElement : HTMLElement { 25 26 attribute [Reflect] boolean autofocus; -
trunk/Source/WebCore/html/HTMLSpanElement.idl
r131145 r141034 25 25 26 26 // http://www.whatwg.org/specs/web-apps/current-work/#htmlspanelement 27 interface HTMLSpanElement : HTMLElement { 27 [ 28 V8SkipVTableValidation 29 ] interface HTMLSpanElement : HTMLElement { 28 30 }; 29 31 -
trunk/Source/WebCore/html/HTMLUnknownElement.idl
r131145 r141034 27 27 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 28 */ 29 30 interface HTMLUnknownElement : HTMLElement { 29 [ 30 V8SkipVTableValidation 31 ] interface HTMLUnknownElement : HTMLElement { 31 32 }; 32 33 -
trunk/Source/WebCore/html/ImageData.idl
r131172 r141034 28 28 29 29 [ 30 CustomToJSObject 30 CustomToJSObject, 31 ImplementationLacksVTable 31 32 ] interface ImageData { 32 33 readonly attribute long width; -
trunk/Source/WebCore/html/MediaError.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=VIDEO 27 Conditional=VIDEO, 28 ImplementationLacksVTable 28 29 ] interface MediaError { 29 30 const unsigned short MEDIA_ERR_ABORTED = 1; -
trunk/Source/WebCore/html/MediaKeyError.idl
r131172 r141034 27 27 Conditional=ENCRYPTED_MEDIA, 28 28 V8EnabledAtRuntime=encryptedMedia, 29 ImplementationLacksVTable 29 30 ] interface MediaKeyError { 30 31 const unsigned short MEDIA_KEYERR_UNKNOWN = 1; -
trunk/Source/WebCore/html/TimeRanges.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=VIDEO 27 Conditional=VIDEO, 28 ImplementationLacksVTable 28 29 ] interface TimeRanges { 29 30 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/ValidityState.idl
r135836 r141034 22 22 23 23 [ 24 OmitConstructor 24 OmitConstructor, 25 ImplementationLacksVTable 25 26 ] interface ValidityState { 26 27 readonly attribute boolean valueMissing; -
trunk/Source/WebCore/html/canvas/ArrayBuffer.idl
r131172 r141034 28 28 CustomConstructor, 29 29 ConstructorParameters=1, 30 JSNoStaticTables 30 JSNoStaticTables, 31 ImplementationNamespace=WTF, 32 ImplementationLacksVTable 31 33 ] interface ArrayBuffer { 32 34 readonly attribute unsigned long byteLength; -
trunk/Source/WebCore/html/canvas/ArrayBufferView.idl
r138393 r141034 26 26 [ 27 27 CustomToJSObject, 28 JSNoStaticTables 28 JSNoStaticTables, 29 ImplementationNamespace=WTF 29 30 ] interface ArrayBufferView { 30 31 readonly attribute ArrayBuffer buffer; -
trunk/Source/WebCore/html/canvas/CanvasGradient.idl
r131145 r141034 23 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 26 interface CanvasGradient { 25 [ 26 ImplementationLacksVTable 27 ] interface CanvasGradient { 27 28 28 29 void addColorStop(in [Optional=DefaultIsUndefined] float offset, -
trunk/Source/WebCore/html/canvas/CanvasPattern.idl
r131145 r141034 23 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 24 */ 25 26 interface CanvasPattern { 25 [ 26 ImplementationLacksVTable 27 ] interface CanvasPattern { 27 28 }; 28 29 -
trunk/Source/WebCore/html/canvas/Float32Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=float 36 TypedArray=float, 37 ImplementationNamespace=WTF 37 38 ] interface Float32Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 4; -
trunk/Source/WebCore/html/canvas/Float64Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=double 36 TypedArray=double, 37 ImplementationNamespace=WTF 37 38 ] interface Float64Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 8; -
trunk/Source/WebCore/html/canvas/Int16Array.idl
r131172 r141034 33 33 CustomToJSObject, 34 34 DoNotCheckConstants, 35 TypedArray=short 35 TypedArray=short, 36 ImplementationNamespace=WTF 36 37 ] interface Int16Array : ArrayBufferView { 37 38 const unsigned long BYTES_PER_ELEMENT = 2; -
trunk/Source/WebCore/html/canvas/Int32Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=int 36 TypedArray=int, 37 ImplementationNamespace=WTF 37 38 ] interface Int32Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 4; -
trunk/Source/WebCore/html/canvas/Int8Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=signed char 36 TypedArray=signed char, 37 ImplementationNamespace=WTF 37 38 ] interface Int8Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 1; -
trunk/Source/WebCore/html/canvas/Uint16Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=unsigned short 36 TypedArray=unsigned short, 37 ImplementationNamespace=WTF 37 38 ] interface Uint16Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 2; -
trunk/Source/WebCore/html/canvas/Uint32Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=unsigned int 36 TypedArray=unsigned int, 37 ImplementationNamespace=WTF 37 38 ] interface Uint32Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 4; -
trunk/Source/WebCore/html/canvas/Uint8Array.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=unsigned char 36 TypedArray=unsigned char, 37 ImplementationNamespace=WTF 37 38 ] interface Uint8Array : ArrayBufferView { 38 39 const unsigned long BYTES_PER_ELEMENT = 1; -
trunk/Source/WebCore/html/canvas/Uint8ClampedArray.idl
r131172 r141034 34 34 CustomToJSObject, 35 35 DoNotCheckConstants, 36 TypedArray=unsigned char 36 TypedArray=unsigned char, 37 ImplementationNamespace=WTF 37 38 ] interface Uint8ClampedArray : Uint8Array { 38 39 const unsigned long BYTES_PER_ELEMENT = 1; -
trunk/Source/WebCore/html/canvas/WebGLActiveInfo.idl
r131172 r141034 26 26 [ 27 27 Conditional=WEBGL, 28 ImplementationLacksVTable 28 29 ] interface WebGLActiveInfo { 29 30 readonly attribute long size; -
trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl
r131172 r141034 27 27 [ 28 28 Conditional=WEBGL, 29 ImplementationLacksVTable 29 30 ] interface WebGLShaderPrecisionFormat { 30 31 readonly attribute long rangeMin; -
trunk/Source/WebCore/html/track/TextTrack.idl
r136528 r141034 29 29 EventTarget, 30 30 JSCustomMarkFunction, 31 JSCustomIsReachable 31 JSCustomIsReachable, 32 V8SkipVTableValidation 32 33 ] interface TextTrack { 33 34 readonly attribute DOMString kind; -
trunk/Source/WebCore/html/track/TextTrackCue.idl
r136684 r141034 32 32 EventTarget, 33 33 JSCustomMarkFunction, 34 JSCustomIsReachable 34 JSCustomIsReachable, 35 ImplementationLacksVTable 35 36 ] interface TextTrackCue { 36 37 readonly attribute TextTrack track; -
trunk/Source/WebCore/html/track/TextTrackCueList.idl
r131172 r141034 27 27 Conditional=VIDEO_TRACK, 28 28 V8EnabledAtRuntime=webkitVideoTrack, 29 IndexedGetter 29 IndexedGetter, 30 ImplementationLacksVTable 30 31 ] interface TextTrackCueList { 31 32 readonly attribute unsigned long length; -
trunk/Source/WebCore/inspector/InjectedScriptHost.idl
r131172 r141034 32 32 33 33 [ 34 Conditional=INSPECTOR 34 Conditional=INSPECTOR, 35 ImplementationLacksVTable 35 36 ] interface InjectedScriptHost { 36 37 void clearConsoleMessages(); -
trunk/Source/WebCore/inspector/InspectorFrontendHost.idl
r140539 r141034 32 32 33 33 [ 34 Conditional=INSPECTOR 34 Conditional=INSPECTOR, 35 ImplementationLacksVTable 35 36 ] interface InspectorFrontendHost { 36 37 void loaded(); -
trunk/Source/WebCore/inspector/JavaScriptCallFrame.idl
r131172 r141034 27 27 Conditional=JAVASCRIPT_DEBUGGER, 28 28 OmitConstructor, 29 DoNotCheckConstants 29 DoNotCheckConstants, 30 ImplementationLacksVTable 30 31 ] interface JavaScriptCallFrame { 31 32 -
trunk/Source/WebCore/page/Coordinates.idl
r131172 r141034 25 25 26 26 [ 27 OmitConstructor 27 OmitConstructor, 28 ImplementationLacksVTable 28 29 ] interface Coordinates { 29 30 readonly attribute double latitude; -
trunk/Source/WebCore/page/Crypto.idl
r138298 r141034 28 28 29 29 [ 30 OmitConstructor 30 OmitConstructor, 31 ImplementationLacksVTable 31 32 ] interface Crypto { 32 33 [Custom] ArrayBufferView getRandomValues(in ArrayBufferView array) raises(DOMException); -
trunk/Source/WebCore/page/MemoryInfo.idl
r131172 r141034 30 30 31 31 [ 32 OmitConstructor 32 OmitConstructor, 33 ImplementationLacksVTable 33 34 ] interface MemoryInfo { 34 35 -
trunk/Source/WebCore/page/PagePopupController.idl
r137281 r141034 30 30 31 31 [ 32 Conditional=PAGE_POPUP 32 Conditional=PAGE_POPUP, 33 ImplementationLacksVTable 33 34 ] interface PagePopupController { 34 35 void setValueAndClosePopup(in long numberValue, in DOMString stringValue); -
trunk/Source/WebCore/page/PerformanceEntryList.idl
r131172 r141034 34 34 Conditional=PERFORMANCE_TIMELINE, 35 35 OmitConstructor, 36 IndexedGetter 36 IndexedGetter, 37 ImplementationLacksVTable 37 38 ] interface PerformanceEntryList { 38 39 readonly attribute unsigned long length; -
trunk/Source/WebCore/page/SpeechInputResult.idl
r131172 r141034 26 26 [ 27 27 Conditional=INPUT_SPEECH, 28 ImplementationLacksVTable 28 29 ] interface SpeechInputResult { 29 30 readonly attribute DOMString utterance; -
trunk/Source/WebCore/page/SpeechInputResultList.idl
r131172 r141034 26 26 [ 27 27 IndexedGetter, 28 Conditional=INPUT_SPEECH 28 Conditional=INPUT_SPEECH, 29 ImplementationLacksVTable 29 30 ] interface SpeechInputResultList { 30 31 readonly attribute unsigned long length; -
trunk/Source/WebCore/page/WebKitPoint.idl
r131172 r141034 26 26 [ 27 27 CustomConstructor, 28 ConstructorParameters=2 28 ConstructorParameters=2, 29 ImplementationLacksVTable 29 30 ] interface WebKitPoint { 30 31 attribute float x; -
trunk/Source/WebCore/svg/SVGAnimatedAngle.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedAngle { 29 30 readonly attribute SVGAngle baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedBoolean.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedBoolean { 29 30 [StrictTypeChecking] attribute boolean baseVal -
trunk/Source/WebCore/svg/SVGAnimatedEnumeration.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedEnumeration { 29 30 [StrictTypeChecking] attribute unsigned short baseVal -
trunk/Source/WebCore/svg/SVGAnimatedInteger.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedInteger { 29 30 [StrictTypeChecking] attribute long baseVal -
trunk/Source/WebCore/svg/SVGAnimatedLength.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedLength { 29 30 readonly attribute SVGLength baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedLengthList.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedLengthList { 29 30 readonly attribute SVGLengthList baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedNumber.idl
r131172 r141034 26 26 27 27 [ 28 Conditional=SVG 28 Conditional=SVG, 29 ImplementationLacksVTable 29 30 ] interface SVGAnimatedNumber { 30 31 [StrictTypeChecking] attribute float baseVal -
trunk/Source/WebCore/svg/SVGAnimatedNumberList.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedNumberList { 29 30 readonly attribute SVGNumberList baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedPreserveAspectRatio { 29 30 readonly attribute SVGPreserveAspectRatio baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedRect.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedRect { 29 30 readonly attribute SVGRect baseVal; -
trunk/Source/WebCore/svg/SVGAnimatedString.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedString { 29 30 attribute DOMString baseVal -
trunk/Source/WebCore/svg/SVGAnimatedTransformList.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGAnimatedTransformList { 29 30 readonly attribute SVGTransformList baseVal; -
trunk/Source/WebCore/svg/SVGColor.idl
r131172 r141034 21 21 22 22 [ 23 Conditional=SVG 23 Conditional=SVG, 24 ImplementationLacksVTable 24 25 ] interface SVGColor : CSSValue { 25 26 const unsigned short SVG_COLORTYPE_UNKNOWN = 0; -
trunk/Source/WebCore/svg/SVGException.idl
r131172 r141034 21 21 [ 22 22 Conditional=SVG, 23 DoNotCheckConstants 23 DoNotCheckConstants, 24 ImplementationLacksVTable 24 25 ] exception SVGException { 25 26 -
trunk/Source/WebCore/svg/SVGPaint.idl
r131172 r141034 25 25 26 26 [ 27 Conditional=SVG 27 Conditional=SVG, 28 ImplementationLacksVTable 28 29 ] interface SVGPaint : SVGColor { 29 30 const unsigned short SVG_PAINTTYPE_UNKNOWN = 0; -
trunk/Source/WebCore/svg/SVGPathSeg.idl
r131172 r141034 28 28 Conditional=SVG, 29 29 CustomToJSObject, 30 ObjCPolymorphic 30 ObjCPolymorphic, 31 ImplementationLacksVTable 31 32 ] interface SVGPathSeg { 32 33 // Path Segment Types -
trunk/Source/WebCore/svg/SVGRenderingIntent.idl
r131172 r141034 26 26 [ 27 27 Conditional=SVG, 28 SuppressToJSObject 28 SuppressToJSObject, 29 ImplementationLacksVTable 29 30 ] interface SVGRenderingIntent { 30 31 // Rendering Intent Types -
trunk/Source/WebCore/svg/SVGUnitTypes.idl
r131172 r141034 26 26 [ 27 27 Conditional=SVG, 28 SuppressToJSObject 28 SuppressToJSObject, 29 ImplementationLacksVTable 29 30 ] interface SVGUnitTypes { 30 31 // Unit Types -
trunk/Source/WebCore/svg/SVGZoomAndPan.idl
r131172 r141034 28 28 Conditional=SVG, 29 29 ObjCProtocol, 30 SuppressToJSObject 30 SuppressToJSObject, 31 ImplementationLacksVTable 31 32 ] interface SVGZoomAndPan { 32 33 const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0; -
trunk/Source/WebCore/testing/MallocStatistics.idl
r131172 r141034 25 25 26 26 [ 27 OmitConstructor 27 OmitConstructor, 28 ImplementationLacksVTable 28 29 ] interface MallocStatistics { 29 30 readonly attribute unsigned long reservedVMBytes; -
trunk/Source/WebCore/testing/TypeConversions.idl
r138836 r141034 25 25 26 26 [ 27 OmitConstructor 27 OmitConstructor, 28 ImplementationLacksVTable 28 29 ] interface TypeConversions { 29 30 attribute long testLong; -
trunk/Source/WebCore/workers/WorkerLocation.idl
r131172 r141034 30 30 Conditional=WORKERS, 31 31 JSGenerateIsReachable=Impl, 32 JSNoStaticTables 32 JSNoStaticTables, 33 ImplementationLacksVTable 33 34 ] interface WorkerLocation { 34 35 readonly attribute DOMString href; -
trunk/Source/WebCore/xml/DOMParser.idl
r131172 r141034 19 19 20 20 [ 21 Constructor 21 Constructor, 22 ImplementationLacksVTable 22 23 ] interface DOMParser { 23 24 Document parseFromString(in [Optional=DefaultIsUndefined] DOMString str, -
trunk/Source/WebCore/xml/XMLHttpRequestException.idl
r131172 r141034 29 29 [ 30 30 JSNoStaticTables, 31 DoNotCheckConstants 31 DoNotCheckConstants, 32 ImplementationLacksVTable 32 33 ] exception XMLHttpRequestException { 33 34 -
trunk/Source/WebCore/xml/XMLSerializer.idl
r131172 r141034 20 20 21 21 [ 22 Constructor 22 Constructor, 23 ImplementationLacksVTable 23 24 ] interface XMLSerializer { 24 25 DOMString serializeToString(in [Optional=DefaultIsUndefined] Node node) -
trunk/Source/WebCore/xml/XPathEvaluator.idl
r131172 r141034 19 19 20 20 [ 21 Constructor 21 Constructor, 22 ImplementationLacksVTable 22 23 ] interface XPathEvaluator { 23 24 XPathExpression createExpression(in [Optional=DefaultIsUndefined] DOMString expression, -
trunk/Source/WebCore/xml/XPathException.idl
r131172 r141034 28 28 29 29 [ 30 DoNotCheckConstants 30 DoNotCheckConstants, 31 ImplementationLacksVTable 31 32 ] exception XPathException { 32 33 -
trunk/Source/WebCore/xml/XPathExpression.idl
r131145 r141034 18 18 * Boston, MA 02110-1301, USA. 19 19 */ 20 21 interface XPathExpression { 20 [ 21 ImplementationLacksVTable 22 ] interface XPathExpression { 22 23 [ObjCLegacyUnnamedParameters] XPathResult evaluate(in [Optional=DefaultIsUndefined] Node contextNode, 23 24 in [Optional=DefaultIsUndefined] unsigned short type, -
trunk/Source/WebCore/xml/XPathNSResolver.idl
r131172 r141034 21 21 [ 22 22 ObjCProtocol, 23 OmitConstructor 23 OmitConstructor, 24 V8SkipVTableValidation 24 25 ] interface XPathNSResolver { 25 26 [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI(in [Optional=DefaultIsUndefined] DOMString prefix); -
trunk/Source/WebCore/xml/XPathResult.idl
r131172 r141034 19 19 20 20 [ 21 JSCustomMarkFunction 21 JSCustomMarkFunction, 22 ImplementationLacksVTable 22 23 ] interface XPathResult { 23 24 const unsigned short ANY_TYPE = 0; -
trunk/Source/WebCore/xml/XSLTProcessor.idl
r131172 r141034 33 33 [ 34 34 Conditional=XSLT, 35 Constructor 35 Constructor, 36 ImplementationLacksVTable 36 37 ] interface XSLTProcessor { 37 38 -
trunk/Source/WebKit/chromium/ChangeLog
r141021 r141034 1 2013-01-28 Tom Sepez <tsepez@chromium.org> 2 3 [v8] Security feature: JavaScript Bindings hardening 4 https://bugs.webkit.org/show_bug.cgi?id=106608 5 6 Reviewed by Adam Barth. 7 8 * features.gypi: 9 Added ENABLE_BINDING_INTEGRITY option. 10 1 11 2013-01-28 Sheriff Bot <webkit.review.bot@gmail.com> 2 12 -
trunk/Source/WebKit/chromium/features.gypi
r141000 r141034 35 35 'ENABLE_3D_PLUGIN=1', 36 36 'ENABLE_BATTERY_STATUS=0', 37 'ENABLE_BINDING_INTEGRITY=0', 37 38 'ENABLE_BLOB=1', 38 39 'ENABLE_BLOB_SLICE=1',
Note: See TracChangeset
for help on using the changeset viewer.