Changeset 141034 in webkit


Ignore:
Timestamp:
Jan 28, 2013 6:37:52 PM (11 years ago)
Author:
abarth@webkit.org
Message:

[v8] Security feature: JavaScript Bindings hardening
https://bugs.webkit.org/show_bug.cgi?id=106608

Source/WebCore:

The patch adds a check at wrapper creation time to enuse that the
object being wrapped is not already free, to the extent that we know
the information about the type of the object as provided in the IDL.

Patch by Tom Sepez <tsepez@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

Patch is correct if existing tests pass without new crashes.

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateImplementation):
(GenerateToV8Converters):
(GetNativeTypeForConversions):
(GetGnuVTableRefForInterface):
(GetGnuVTableNameForInterface):
(GetGnuMangledNameForInterface):
(GetGnuVTableOffsetForType):
(GetWinVTableRefForInterface):
(GetWinVTableNameForInterface):
(GetWinMangledNameForInterface):
(GetNamespaceForInterface):
(GetImplementationLacksVTableForInterface):
(GetV8SkipVTableValidationForInterface):
Update code generation to add object validity tests under the control
of the ENABLE_BINDING_INTEGRITY option.

  • Modules/filesystem/DirectoryReader.idl:
  • Modules/filesystem/DirectoryReaderSync.idl:
  • Modules/filesystem/EntryArray.idl:
  • Modules/filesystem/EntryArraySync.idl:
  • Modules/filesystem/Metadata.idl:
  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/GamepadList.idl:
  • Modules/geolocation/Geoposition.idl:
  • Modules/geolocation/PositionError.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/mediastream/RTCStatsElement.idl:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/quota/StorageInfo.idl:
  • Modules/speech/SpeechGrammar.idl:
  • Modules/speech/SpeechGrammarList.idl:
  • Modules/speech/SpeechRecognitionAlternative.idl:
  • Modules/speech/SpeechRecognitionResult.idl:
  • Modules/speech/SpeechRecognitionResultList.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioDestinationNode.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioSourceNode.idl:
  • Modules/webaudio/WaveTable.idl:
  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLException.idl:
  • Modules/webdatabase/SQLResultSet.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • Modules/webdatabase/SQLTransactionSync.idl:
  • bindings/scripts/IDLAttributes.txt:
  • css/CSSPrimitiveValue.idl:
  • css/CSSRule.idl:
  • css/CSSRuleList.idl:
  • css/CSSStyleDeclaration.idl:
  • css/CSSValue.idl:
  • css/CSSValueList.idl:
  • css/Counter.idl:
  • css/MediaList.idl:
  • css/MediaQueryList.idl:
  • css/RGBColor.idl:
  • css/Rect.idl:
  • css/StyleSheetList.idl:
  • css/WebKitCSSFilterValue.idl:
  • css/WebKitCSSMixFunctionValue.idl:
  • css/WebKitCSSTransformValue.idl:
  • dom/ClientRect.idl:
  • dom/ClientRectList.idl:
  • dom/Clipboard.idl:
  • dom/DOMCoreException.idl:
  • dom/DOMError.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMNamedFlowCollection.idl:
  • dom/DOMStringList.idl:
  • dom/DOMStringMap.idl:
  • dom/DataTransferItem.idl:
  • dom/DataTransferItemList.idl:
  • dom/DocumentFragment.idl:
  • dom/Element.idl:
  • dom/Entity.idl:
  • dom/Event.idl:
  • dom/EventException.idl:
  • dom/MessageChannel.idl:
  • dom/MouseEvent.idl:
  • dom/MutationObserver.idl:
  • dom/MutationRecord.idl:
  • dom/NamedNodeMap.idl:
  • dom/NodeFilter.idl:
  • dom/NodeIterator.idl:
  • dom/NodeList.idl:
  • dom/Range.idl:
  • dom/RangeException.idl:
  • dom/Touch.idl:
  • dom/TouchList.idl:
  • dom/TreeWalker.idl:
  • fileapi/FileError.idl:
  • fileapi/FileException.idl:
  • fileapi/FileList.idl:
  • html/DOMFormData.idl:
  • html/DOMTokenList.idl:
  • html/DOMURL.idl:
  • html/HTMLAllCollection.idl:
  • html/HTMLCollection.idl:
  • html/HTMLDialogElement.idl:
  • html/HTMLDivElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.idl:
  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLSpanElement.idl:
  • html/HTMLUnknownElement.idl:
  • html/ImageData.idl:
  • html/MediaError.idl:
  • html/MediaKeyError.idl:
  • html/TimeRanges.idl:
  • html/ValidityState.idl:
  • html/canvas/ArrayBuffer.idl:
  • html/canvas/ArrayBufferView.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasPattern.idl:
  • html/canvas/Float32Array.idl:
  • html/canvas/Float64Array.idl:
  • html/canvas/Int16Array.idl:
  • html/canvas/Int32Array.idl:
  • html/canvas/Int8Array.idl:
  • html/canvas/Uint16Array.idl:
  • html/canvas/Uint32Array.idl:
  • html/canvas/Uint8Array.idl:
  • html/canvas/Uint8ClampedArray.idl:
  • html/canvas/WebGLActiveInfo.idl:
  • html/canvas/WebGLShaderPrecisionFormat.idl:
  • html/track/TextTrack.idl:
  • html/track/TextTrackCue.idl:
  • html/track/TextTrackCueList.idl:
  • inspector/InjectedScriptHost.idl:
  • inspector/InspectorFrontendHost.idl:
  • inspector/JavaScriptCallFrame.idl:
  • page/Coordinates.idl:
  • page/Crypto.idl:
  • page/MemoryInfo.idl:
  • page/PagePopupController.idl:
  • page/PerformanceEntryList.idl:
  • page/SpeechInputResult.idl:
  • page/SpeechInputResultList.idl:
  • page/WebKitPoint.idl:
  • svg/SVGAnimatedAngle.idl:
  • svg/SVGAnimatedBoolean.idl:
  • svg/SVGAnimatedEnumeration.idl:
  • svg/SVGAnimatedInteger.idl:
  • svg/SVGAnimatedLength.idl:
  • svg/SVGAnimatedLengthList.idl:
  • svg/SVGAnimatedNumber.idl:
  • svg/SVGAnimatedNumberList.idl:
  • svg/SVGAnimatedPreserveAspectRatio.idl:
  • svg/SVGAnimatedRect.idl:
  • svg/SVGAnimatedString.idl:
  • svg/SVGAnimatedTransformList.idl:
  • svg/SVGColor.idl:
  • svg/SVGException.idl:
  • svg/SVGPaint.idl:
  • svg/SVGPathSeg.idl:
  • svg/SVGRenderingIntent.idl:
  • svg/SVGUnitTypes.idl:
  • svg/SVGZoomAndPan.idl:
  • testing/MallocStatistics.idl:
  • testing/TypeConversions.idl:
  • workers/WorkerLocation.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequestException.idl:
  • xml/XMLSerializer.idl:
  • xml/XPathEvaluator.idl:
  • xml/XPathException.idl:
  • xml/XPathExpression.idl:
  • xml/XPathNSResolver.idl:
  • xml/XPathResult.idl:
  • xml/XSLTProcessor.idl:

Add exceptions to binding integrity checks to IDL.

Source/WebKit/chromium:

Patch by Tom Sepez <tsepez@chromium.org> on 2013-01-28
Reviewed by Adam Barth.

  • features.gypi:

Added ENABLE_BINDING_INTEGRITY option.

Location:
trunk/Source
Files:
163 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r141033 r141034  
     12013-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       
    11922013-01-28  Alpha Lam  <hclam@chromium.org>
    2193
  • trunk/Source/WebCore/Modules/filesystem/DirectoryReader.idl

    r131172 r141034  
    3131[
    3232    Conditional=FILE_SYSTEM,
    33     JSNoStaticTables
     33    JSNoStaticTables,
     34    ImplementationLacksVTable
    3435] interface DirectoryReader {
    3536    void readEntries(in [Callback] EntriesCallback successCallback, in [Optional, Callback] ErrorCallback errorCallback);
  • trunk/Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl

    r131172 r141034  
    3131[
    3232    Conditional=FILE_SYSTEM,
    33     JSNoStaticTables
     33    JSNoStaticTables,
     34    ImplementationLacksVTable
    3435] interface DirectoryReaderSync {
    3536    EntryArraySync readEntries() raises (FileException);
  • trunk/Source/WebCore/Modules/filesystem/EntryArray.idl

    r131172 r141034  
    3232    Conditional=FILE_SYSTEM,
    3333    IndexedGetter,
    34     JSNoStaticTables
     34    JSNoStaticTables,
     35    ImplementationLacksVTable
    3536] interface EntryArray {
    3637    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/filesystem/EntryArraySync.idl

    r131172 r141034  
    3232    Conditional=FILE_SYSTEM,
    3333    IndexedGetter,
    34     JSNoStaticTables
     34    JSNoStaticTables,
     35    ImplementationLacksVTable
    3536] interface EntryArraySync {
    3637    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/filesystem/Metadata.idl

    r131172 r141034  
    3131[
    3232    Conditional=FILE_SYSTEM,
    33     JSNoStaticTables
     33    JSNoStaticTables,
     34    ImplementationLacksVTable
    3435] interface Metadata {
    3536    readonly attribute Date modificationTime;
  • trunk/Source/WebCore/Modules/gamepad/Gamepad.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=GAMEPAD
     27    Conditional=GAMEPAD,
     28    ImplementationLacksVTable
    2829] interface Gamepad {
    2930    readonly attribute DOMString id;
  • trunk/Source/WebCore/Modules/gamepad/GamepadList.idl

    r131172 r141034  
    2626[
    2727    Conditional=GAMEPAD,
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface GamepadList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/geolocation/Geoposition.idl

    r131172 r141034  
    2626[
    2727    Conditional=GEOLOCATION,
    28     OmitConstructor
     28    OmitConstructor,
     29    ImplementationLacksVTable
    2930] interface Geoposition {
    3031    readonly attribute Coordinates coords;
  • trunk/Source/WebCore/Modules/geolocation/PositionError.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=GEOLOCATION
     27    Conditional=GEOLOCATION,
     28    ImplementationLacksVTable
    2829] interface PositionError {
    2930    readonly attribute unsigned short code;
  • trunk/Source/WebCore/Modules/indexeddb/IDBFactory.idl

    r141013 r141034  
    2626[
    2727    Conditional=INDEXED_DATABASE,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationLacksVTable
    2930] interface IDBFactory {
    3031    [CallWith=ScriptExecutionContext, ImplementedAs=getDatabaseNames] IDBRequest webkitGetDatabaseNames();
  • trunk/Source/WebCore/Modules/indexeddb/IDBIndex.idl

    r140457 r141034  
    2626[
    2727    Conditional=INDEXED_DATABASE,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationLacksVTable
    2930] interface IDBIndex {
    3031    readonly attribute DOMString name;
  • trunk/Source/WebCore/Modules/indexeddb/IDBKeyRange.idl

    r140457 r141034  
    2626[
    2727    Conditional=INDEXED_DATABASE,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationLacksVTable
    2930] interface IDBKeyRange {
    3031    [ImplementedAs=lowerValue,CallWith=ScriptExecutionContext] readonly attribute any lower;
  • trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.idl

    r140457 r141034  
    2626[
    2727    Conditional=INDEXED_DATABASE,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationLacksVTable
    2930] interface IDBObjectStore {
    3031    [TreatReturnedNullStringAs=Null] readonly attribute DOMString name;
  • trunk/Source/WebCore/Modules/mediastream/RTCStatsElement.idl

    r136507 r141034  
    2525[
    2626    Conditional=MEDIA_STREAM,
     27    ImplementationLacksVTable
    2728] interface RTCStatsElement {
    2829    readonly attribute Date timestamp;
  • trunk/Source/WebCore/Modules/mediastream/RTCStatsReport.idl

    r131172 r141034  
    2424
    2525[
    26     Conditional=MEDIA_STREAM
     26    Conditional=MEDIA_STREAM,
     27    ImplementationLacksVTable
    2728] interface RTCStatsReport {
    2829    readonly attribute RTCStatsElement local;
  • trunk/Source/WebCore/Modules/quota/StorageInfo.idl

    r131172 r141034  
    2626[
    2727    Conditional=QUOTA,
    28     OmitConstructor
     28    OmitConstructor,
     29    ImplementationLacksVTable
    2930] interface StorageInfo {
    3031    const unsigned short TEMPORARY = 0;
  • trunk/Source/WebCore/Modules/speech/SpeechGrammar.idl

    r131172 r141034  
    2626[
    2727    Conditional=SCRIPTED_SPEECH,
    28     Constructor
     28    Constructor,
     29    ImplementationLacksVTable
    2930] interface SpeechGrammar {
    3031    [URL,CallWith=ScriptExecutionContext] attribute DOMString src;
  • trunk/Source/WebCore/Modules/speech/SpeechGrammarList.idl

    r131172 r141034  
    2828    IndexedGetter,
    2929    Constructor,
     30    ImplementationLacksVTable
    3031] interface SpeechGrammarList {
    3132    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SCRIPTED_SPEECH
     27    Conditional=SCRIPTED_SPEECH,
     28    ImplementationLacksVTable
    2829] interface SpeechRecognitionAlternative {
    2930    readonly attribute DOMString transcript;
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionResult.idl

    r136392 r141034  
    2626[
    2727    Conditional=SCRIPTED_SPEECH,
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface SpeechRecognitionResult {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl

    r131172 r141034  
    2626[
    2727    Conditional=SCRIPTED_SPEECH,
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface SpeechRecognitionResultList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/webaudio/AudioBuffer.idl

    r131172 r141034  
    2828
    2929[
    30     Conditional=WEB_AUDIO
     30    Conditional=WEB_AUDIO,
     31    ImplementationLacksVTable
    3132] interface AudioBuffer {
    3233    readonly attribute long length; // in sample-frames
  • trunk/Source/WebCore/Modules/webaudio/AudioDestinationNode.idl

    r131172 r141034  
    2525[
    2626    Conditional=WEB_AUDIO,
    27     JSGenerateToJSObject
     27    JSGenerateToJSObject,
     28    V8SkipVTableValidation
    2829] interface AudioDestinationNode : AudioNode {
    2930    readonly attribute long numberOfChannels;
  • trunk/Source/WebCore/Modules/webaudio/AudioListener.idl

    r131172 r141034  
    2828
    2929[
    30     Conditional=WEB_AUDIO
     30    Conditional=WEB_AUDIO,
     31    ImplementationLacksVTable
    3132] interface AudioListener {
    3233    attribute float dopplerFactor;  // same as OpenAL (default 1.0)
  • trunk/Source/WebCore/Modules/webaudio/AudioSourceNode.idl

    r131172 r141034  
    2828
    2929[
    30     Conditional=WEB_AUDIO
     30    Conditional=WEB_AUDIO,
     31    ImplementationLacksVTable
    3132] interface AudioSourceNode : AudioNode {
    3233};
  • trunk/Source/WebCore/Modules/webaudio/WaveTable.idl

    r131172 r141034  
    2525// WaveTable represents a periodic audio waveform given by its Fourier coefficients.
    2626[
    27     Conditional=WEB_AUDIO
     27    Conditional=WEB_AUDIO,
     28    ImplementationLacksVTable
    2829] interface WaveTable {
    2930
  • trunk/Source/WebCore/Modules/webdatabase/SQLError.idl

    r131172 r141034  
    3030    Conditional=SQL_DATABASE,
    3131    OmitConstructor,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface SQLError {
    3435    readonly attribute unsigned long code;
  • trunk/Source/WebCore/Modules/webdatabase/SQLException.idl

    r131172 r141034  
    3232    Conditional=SQL_DATABASE,
    3333    JSNoStaticTables,
    34     DoNotCheckConstants
     34    DoNotCheckConstants,
     35    ImplementationLacksVTable
    3536] exception SQLException {
    3637    readonly attribute unsigned long code;
  • trunk/Source/WebCore/Modules/webdatabase/SQLResultSet.idl

    r131172 r141034  
    3030    Conditional=SQL_DATABASE,
    3131    OmitConstructor,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface SQLResultSet {
    3435    readonly attribute SQLResultSetRowList rows;
  • trunk/Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl

    r131172 r141034  
    3030    Conditional=SQL_DATABASE,
    3131    OmitConstructor,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface SQLResultSetRowList {
    3435    readonly attribute unsigned long length;
  • trunk/Source/WebCore/Modules/webdatabase/SQLTransaction.idl

    r131172 r141034  
    3030    Conditional=SQL_DATABASE,
    3131    OmitConstructor,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface SQLTransaction {
    3435    [Custom] void executeSql(in DOMString sqlStatement,
  • trunk/Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl

    r131172 r141034  
    3232    Conditional=SQL_DATABASE,
    3333    OmitConstructor,
    34     JSNoStaticTables
     34    JSNoStaticTables,
     35    ImplementationLacksVTable
    3536] interface SQLTransactionSync {
    3637    [Custom] SQLResultSet executeSql(in DOMString sqlStatement, in ObjectArray arguments);
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r140938 r141034  
    26152615    my $v8InterfaceName = "V8$interfaceName";
    26162616    my $nativeType = GetNativeTypeForConversions($interface);
     2617    my $vtableNameGnu = GetGnuVTableNameForInterface($interface);
     2618    my $vtableRefGnu = GetGnuVTableRefForInterface($interface);
     2619    my $vtableRefWin = GetWinVTableRefForInterface($interface);
    26172620
    26182621    # - Add default header template
     
    26412644        last;
    26422645    }
     2646
     2647    push(@implContentDecls, <<END) if $vtableNameGnu;
     2648#if ENABLE(BINDING_INTEGRITY)
     2649#if defined(OS_WIN)
     2650#pragma warning(disable: 4483)
     2651extern "C" { extern void (*const ${vtableRefWin}[])(); }
     2652#else
     2653extern "C" { extern void* ${vtableNameGnu}[]; }
     2654#endif
     2655#endif // ENABLE(BINDING_INTEGRITY)
     2656
     2657END
     2658
    26432659    push(@implContentDecls, "namespace WebCore {\n\n");
     2660
     2661    push(@implContentDecls, <<END) if $vtableNameGnu;
     2662#if ENABLE(BINDING_INTEGRITY)
     2663inline 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
     2676END
     2677
     2678
    26442679    my $parentClassInfo = $parentClass ? "&${parentClass}::info" : "0";
    26452680
     
    34673502    }
    34683503
     3504    AddToImplIncludes("Frame.h");
     3505
    34693506    my $createWrapperArgumentType = GetPassRefPtrType($nativeType);
    34703507    my $baseType = BaseInterfaceName($interface);
     
    34773514    ASSERT(DOMDataStore::getWrapper(impl.get(), isolate).IsEmpty());
    34783515END
    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
     3523END
     3524
     3525    push(@implContent, <<END) if ($baseType ne $interfaceName);
    34813526    ASSERT(static_cast<void*>(static_cast<${baseType}*>(impl.get())) == static_cast<void*>(impl.get()));
    34823527END
    3483     }
    3484 
    3485     AddToImplIncludes("Frame.h");
    34863528
    34873529    if ($codeGenerator->InheritsInterface($interface, "Document")) {
     
    35173559    my $interface = shift;
    35183560    my $interfaceName = $interface->name;
    3519 
    35203561    $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.
     3566sub 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
     3578sub 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
     3589sub 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
     3603sub 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.
     3633sub GetWinVTableRefForInterface
     3634{
     3635    my $interface = shift;
     3636    my $vtableName = GetWinVTableNameForInterface($interface);
     3637    return 0 if !$vtableName;
     3638    return "__identifier(\"" . $vtableName . "\")";
     3639}
     3640
     3641sub 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
     3652sub GetWinMangledNameForInterface
     3653{
     3654    my $interface = shift;
     3655    my $typename = GetNativeTypeForConversions($interface);
     3656    my $namespace = GetNamespaceForInterface($interface);
     3657    return $typename . "@" . $namespace . "@@";
     3658}
     3659
     3660sub GetNamespaceForInterface
     3661{
     3662    my $interface = shift;
     3663    return $interface->extendedAttributes->{"ImplementationNamespace"} || "WebCore";
     3664}
     3665
     3666sub GetImplementationLacksVTableForInterface
     3667{
     3668    my $interface = shift;
     3669    return $interface->extendedAttributes->{"ImplementationLacksVTable"};
     3670}
     3671
     3672sub GetV8SkipVTableValidationForInterface
     3673{
     3674    my $interface = shift;
     3675    return $interface->extendedAttributes->{"V8SkipVTableValidation"};
    35223676}
    35233677
  • trunk/Source/WebCore/bindings/scripts/IDLAttributes.txt

    r140303 r141034  
    5757GenerateIsReachable=ImplDocument|ImplElementRoot|ImplOwnerNodeRoot
    5858Immutable
     59ImplementationLacksVTable
     60ImplementationNamespace=*
    5961ImplementedAs=*
    6062IndexedGetter
     
    126128V8MeasureAs=*
    127129V8ReadOnly
     130V8SkipVTableValidation
    128131V8Unforgeable
  • trunk/Source/WebCore/css/CSSPrimitiveValue.idl

    r131145 r141034  
    1818 */
    1919
    20 interface CSSPrimitiveValue : CSSValue {
     20[
     21    ImplementationLacksVTable
     22] interface CSSPrimitiveValue : CSSValue {
    2123
    2224    // UnitTypes
  • trunk/Source/WebCore/css/CSSRule.idl

    r140997 r141034  
    2525    CustomToJSObject,
    2626    ObjCPolymorphic,
    27     V8DependentLifetime
     27    V8DependentLifetime,
     28    V8SkipVTableValidation
    2829] interface CSSRule {
    2930
  • trunk/Source/WebCore/css/CSSRuleList.idl

    r131172 r141034  
    2828    JSCustomIsReachable,
    2929    IndexedGetter,
    30     V8DependentLifetime
     30    V8DependentLifetime,
     31    V8SkipVTableValidation
    3132] interface CSSRuleList {
    3233    readonly attribute unsigned long    length;
  • trunk/Source/WebCore/css/CSSStyleDeclaration.idl

    r131172 r141034  
    3030    IndexedGetter,
    3131    CustomEnumerateProperty,
    32     V8DependentLifetime
     32    V8DependentLifetime,
     33    V8SkipVTableValidation
    3334] interface CSSStyleDeclaration {
    3435             [TreatReturnedNullStringAs=Null, TreatNullAs=NullString] attribute DOMString        cssText
  • trunk/Source/WebCore/css/CSSValue.idl

    r131172 r141034  
    2424    JSCustomFinalize,
    2525    ObjCPolymorphic,
    26     V8DependentLifetime
     26    V8DependentLifetime,
     27    ImplementationLacksVTable
    2728] interface CSSValue {
    2829
  • trunk/Source/WebCore/css/CSSValueList.idl

    r131172 r141034  
    2626// Introduced in DOM Level 2:
    2727[
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface CSSValueList : CSSValue {
    3031    readonly attribute unsigned long    length;
  • trunk/Source/WebCore/css/Counter.idl

    r131145 r141034  
    1919
    2020// Introduced in DOM Level 2:
    21 interface Counter {
     21[
     22    ImplementationLacksVTable
     23] interface Counter {
    2224    readonly attribute DOMString identifier;
    2325    readonly attribute DOMString listStyle;
  • trunk/Source/WebCore/css/MediaList.idl

    r131172 r141034  
    2727[
    2828    JSGenerateIsReachable,
    29     IndexedGetter
     29    IndexedGetter,
     30    ImplementationLacksVTable
    3031] interface MediaList {
    3132
  • trunk/Source/WebCore/css/MediaQueryList.idl

    r131145 r141034  
    1717 *  Boston, MA 02110-1301, USA.
    1818 */
    19 
    20 interface MediaQueryList {
     19[
     20    ImplementationLacksVTable
     21] interface MediaQueryList {
    2122    readonly attribute DOMString media;
    2223    readonly attribute boolean matches;
  • trunk/Source/WebCore/css/RGBColor.idl

    r131145 r141034  
    2020
    2121// Introduced in DOM Level 2:
    22 interface RGBColor {
     22[
     23    ImplementationLacksVTable
     24] interface RGBColor {
    2325    readonly attribute CSSPrimitiveValue  red;
    2426    readonly attribute CSSPrimitiveValue  green;
  • trunk/Source/WebCore/css/Rect.idl

    r131145 r141034  
    1818 */
    1919
    20 interface Rect {
     20[
     21    ImplementationLacksVTable
     22] interface Rect {
    2123    readonly attribute CSSPrimitiveValue  top;
    2224    readonly attribute CSSPrimitiveValue  right;
  • trunk/Source/WebCore/css/StyleSheetList.idl

    r131840 r141034  
    2323    GenerateIsReachable=ImplDocument,
    2424    IndexedGetter,
    25     NamedGetter
     25    NamedGetter,
     26    ImplementationLacksVTable
    2627] interface StyleSheetList {
    2728    readonly attribute unsigned long    length;
  • trunk/Source/WebCore/css/WebKitCSSFilterValue.idl

    r131172 r141034  
    2727        Conditional=CSS_FILTERS,
    2828        IndexedGetter,
    29         DoNotCheckConstants
     29        DoNotCheckConstants,
     30    ImplementationLacksVTable
    3031] interface WebKitCSSFilterValue : CSSValueList {
    3132
  • trunk/Source/WebCore/css/WebKitCSSMixFunctionValue.idl

    r135749 r141034  
    3030[
    3131    Conditional=CSS_SHADERS,
     32    ImplementationLacksVTable
    3233] interface WebKitCSSMixFunctionValue : CSSValueList {
    3334};
  • trunk/Source/WebCore/css/WebKitCSSTransformValue.idl

    r131172 r141034  
    2929[
    3030        IndexedGetter,
    31         DoNotCheckConstants
     31        DoNotCheckConstants,
     32    ImplementationLacksVTable
    3233] interface WebKitCSSTransformValue : CSSValueList {
    3334
  • trunk/Source/WebCore/dom/ClientRect.idl

    r131145 r141034  
    2525 */
    2626
    27 interface ClientRect {
     27[
     28    ImplementationLacksVTable
     29] interface ClientRect {
    2830    readonly attribute float top;
    2931    readonly attribute float right;
  • trunk/Source/WebCore/dom/ClientRectList.idl

    r131172 r141034  
    2626
    2727[
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface ClientRectList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/dom/Clipboard.idl

    r131172 r141034  
    2727 */
    2828
    29 interface Clipboard {
     29[
     30    V8SkipVTableValidation
     31] interface Clipboard {
    3032             [TreatReturnedNullStringAs=Undefined] attribute DOMString dropEffect;
    3133             [TreatReturnedNullStringAs=Undefined] attribute DOMString effectAllowed;
  • trunk/Source/WebCore/dom/DOMCoreException.idl

    r134440 r141034  
    3030    JSNoStaticTables,
    3131    DoNotCheckConstants,
    32     InterfaceName=DOMException
     32    InterfaceName=DOMException,
     33    ImplementationLacksVTable
    3334] exception DOMCoreException {
    3435
  • trunk/Source/WebCore/dom/DOMError.idl

    r131145 r141034  
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
    28 
    29   interface [
    30 ] DOMError {
     28[
     29    ImplementationLacksVTable
     30] interface  DOMError {
    3131    readonly attribute DOMString name;
    3232  };
  • trunk/Source/WebCore/dom/DOMImplementation.idl

    r131838 r141034  
    2121[
    2222    GenerateIsReachable=ImplDocument,
     23    ImplementationLacksVTable
    2324] interface DOMImplementation {
    2425
  • trunk/Source/WebCore/dom/DOMNamedFlowCollection.idl

    r137835 r141034  
    3434    JSGenerateToJSObject,
    3535    IndexedGetter,
    36     NamedGetter
     36    NamedGetter,
     37    ImplementationLacksVTable
    3738] interface DOMNamedFlowCollection {
    3839    readonly attribute unsigned long length;
  • trunk/Source/WebCore/dom/DOMStringList.idl

    r134674 r141034  
    2727    IndexedGetter,
    2828    JSCustomToNativeObject,
    29     JSNoStaticTables
     29    JSNoStaticTables,
     30    ImplementationLacksVTable
    3031] interface DOMStringList {
    3132    readonly attribute unsigned long length;
  • trunk/Source/WebCore/dom/DOMStringMap.idl

    r131172 r141034  
    2929    CustomDeleteProperty,
    3030    CustomEnumerateProperty,
    31     CustomNamedSetter
     31    CustomNamedSetter,
     32    V8SkipVTableValidation
    3233] interface DOMStringMap {
    3334};
  • trunk/Source/WebCore/dom/DataTransferItem.idl

    r131172 r141034  
    3131[
    3232    Conditional=DATA_TRANSFER_ITEMS,
     33    ImplementationLacksVTable
    3334] interface DataTransferItem {
    3435    readonly attribute DOMString kind;
  • trunk/Source/WebCore/dom/DataTransferItemList.idl

    r131172 r141034  
    3636    CustomDeleteProperty,
    3737#endif
     38    ImplementationLacksVTable
    3839] interface DataTransferItemList {
    3940    readonly attribute long length;
  • trunk/Source/WebCore/dom/DocumentFragment.idl

    r131145 r141034  
    1818 */
    1919
    20 interface DocumentFragment : Node {
     20[
     21    V8SkipVTableValidation
     22] interface DocumentFragment : Node {
    2123    // NodeSelector - Selector API
    2224    Element querySelector(in DOMString selectors)
  • trunk/Source/WebCore/dom/Element.idl

    r139027 r141034  
    2222    JSGenerateToNativeObject,
    2323    JSInlineGetOwnPropertySlot,
    24     V8CustomToJSObject
     24    V8CustomToJSObject,
     25    V8SkipVTableValidation
    2526] interface Element : Node {
    2627
  • trunk/Source/WebCore/dom/Entity.idl

    r131172 r141034  
    1717 * Boston, MA 02110-1301, USA.
    1818 */
    19 
    20 interface Entity : Node {
     19[
     20    ImplementationLacksVTable
     21] interface Entity : Node {
    2122    [TreatReturnedNullStringAs=Null] readonly attribute DOMString publicId;
    2223    [TreatReturnedNullStringAs=Null] readonly attribute DOMString systemId;
  • trunk/Source/WebCore/dom/Event.idl

    r131172 r141034  
    2424    ConstructorTemplate=Event,
    2525    JSNoStaticTables,
    26     ObjCPolymorphic
     26    ObjCPolymorphic,
     27    V8SkipVTableValidation
    2728] interface Event {
    2829
  • trunk/Source/WebCore/dom/EventException.idl

    r131172 r141034  
    3030[
    3131    JSNoStaticTables,
    32     DoNotCheckConstants
     32    DoNotCheckConstants,
     33    ImplementationLacksVTable,
    3334] exception EventException {
    3435
  • trunk/Source/WebCore/dom/MessageChannel.idl

    r131172 r141034  
    3030    V8CustomConstructor,
    3131    JSCustomMarkFunction,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface MessageChannel {
    3435
  • trunk/Source/WebCore/dom/MouseEvent.idl

    r140657 r141034  
    2020[
    2121    ConstructorConditional=DOM4_EVENTS_CONSTRUCTOR,
    22     ConstructorTemplate=Event
     22    ConstructorTemplate=Event,
     23    V8SkipVTableValidation
    2324] interface MouseEvent : UIEvent {
    2425    [InitializedByEventConstructor] readonly attribute long             screenX;
  • trunk/Source/WebCore/dom/MutationObserver.idl

    r138811 r141034  
    3232    CustomConstructor,
    3333    ConstructorParameters=1,
    34     JSCustomIsReachable
     34    JSCustomIsReachable,
     35    ImplementationLacksVTable
    3536] interface MutationObserver {
    3637    void observe(in Node target, in Dictionary options)
  • trunk/Source/WebCore/dom/MutationRecord.idl

    r138811 r141034  
    2929 */
    3030
    31 interface MutationRecord {
     31[
     32    V8SkipVTableValidation
     33] interface MutationRecord {
    3234    readonly attribute DOMString type;
    3335    readonly attribute Node target;
  • trunk/Source/WebCore/dom/NamedNodeMap.idl

    r131172 r141034  
    2323    IndexedGetter,
    2424    JSCustomMarkFunction,
    25     NamedGetter
     25    NamedGetter,
     26    ImplementationLacksVTable
    2627] interface NamedNodeMap {
    2728
  • trunk/Source/WebCore/dom/NodeFilter.idl

    r131172 r141034  
    2424    JSCustomToNativeObject,
    2525    ObjCProtocol,
    26     CPPPureInterface
     26    CPPPureInterface,
     27    ImplementationLacksVTable
    2728] interface NodeFilter {
    2829    // Constants returned by acceptNode
  • trunk/Source/WebCore/dom/NodeIterator.idl

    r131172 r141034  
    2121// Introduced in DOM Level 2:
    2222[
    23     JSCustomMarkFunction
     23    JSCustomMarkFunction,
     24    ImplementationLacksVTable
    2425] interface NodeIterator {
    2526    readonly attribute Node root;
  • trunk/Source/WebCore/dom/NodeList.idl

    r131172 r141034  
    2323    IndexedGetter,
    2424    NamedGetter,
    25     V8DependentLifetime
     25    V8DependentLifetime,
     26    V8SkipVTableValidation
    2627] interface NodeList {
    2728
  • trunk/Source/WebCore/dom/Range.idl

    r131145 r141034  
    2020
    2121// Introduced in DOM Level 2:
    22 interface Range {
     22[
     23    ImplementationLacksVTable
     24] interface Range {
    2325
    2426    readonly attribute Node startContainer
  • trunk/Source/WebCore/dom/RangeException.idl

    r131172 r141034  
    1919
    2020[
    21     DoNotCheckConstants
     21    DoNotCheckConstants,
     22    ImplementationLacksVTable
    2223] exception RangeException {
    2324
  • trunk/Source/WebCore/dom/Touch.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=TOUCH_EVENTS
     27    Conditional=TOUCH_EVENTS,
     28    ImplementationLacksVTable
    2829] interface Touch {
    2930    readonly attribute long             clientX;
  • trunk/Source/WebCore/dom/TouchList.idl

    r131172 r141034  
    2626[
    2727    Conditional=TOUCH_EVENTS,
    28     IndexedGetter
     28    IndexedGetter,
     29    ImplementationLacksVTable
    2930] interface TouchList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/dom/TreeWalker.idl

    r131172 r141034  
    2121// Introduced in DOM Level 2:
    2222[
    23     JSCustomMarkFunction
     23    JSCustomMarkFunction,
     24    ImplementationLacksVTable
    2425] interface TreeWalker {
    2526    readonly attribute Node root;
  • trunk/Source/WebCore/fileapi/FileError.idl

    r131172 r141034  
    3131[
    3232    Conditional=BLOB|FILE_SYSTEM,
    33     JSNoStaticTables
     33    JSNoStaticTables,
     34    ImplementationLacksVTable
    3435] interface FileError {
    3536#if !defined(LANGUAGE_OBJECTIVE_C)
  • trunk/Source/WebCore/fileapi/FileException.idl

    r131172 r141034  
    3232    Conditional=BLOB|FILE_SYSTEM,
    3333    DoNotCheckConstants,
    34     JSNoStaticTables
     34    JSNoStaticTables,
     35    ImplementationLacksVTable
    3536] exception FileException {
    3637
  • trunk/Source/WebCore/fileapi/FileList.idl

    r131172 r141034  
    2626[
    2727    IndexedGetter,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationLacksVTable
    2930] interface FileList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/html/DOMFormData.idl

    r131172 r141034  
    3434    JSGenerateToNativeObject,
    3535    JSGenerateToJSObject,
    36     InterfaceName=FormData
     36    InterfaceName=FormData,
     37    ImplementationLacksVTable
    3738] interface DOMFormData {
    3839    // void append(DOMString name, DOMString value);
  • trunk/Source/WebCore/html/DOMTokenList.idl

    r131408 r141034  
    2525[
    2626    GenerateIsReachable=ImplElementRoot,
    27     IndexedGetter
     27    IndexedGetter,
     28    V8SkipVTableValidation
    2829] interface DOMTokenList {
    2930    readonly attribute unsigned long length;
  • trunk/Source/WebCore/html/DOMURL.idl

    r131172 r141034  
    3131    JSGenerateToJSObject,
    3232    JSNoStaticTables,
    33     InterfaceName=URL
     33    InterfaceName=URL,
     34    ImplementationLacksVTable
    3435] interface DOMURL {
    3536#if defined(ENABLE_MEDIA_SOURCE) && ENABLE_MEDIA_SOURCE
  • trunk/Source/WebCore/html/HTMLAllCollection.idl

    r136850 r141034  
    3030    MasqueradesAsUndefined,
    3131    GenerateIsReachable=ImplOwnerNodeRoot,
    32     V8DependentLifetime
     32    V8DependentLifetime,
     33    V8SkipVTableValidation
    3334] interface HTMLAllCollection {
    3435    readonly attribute unsigned long length;
  • trunk/Source/WebCore/html/HTMLCollection.idl

    r136850 r141034  
    2525    GenerateIsReachable=ImplOwnerNodeRoot,
    2626    V8DependentLifetime,
    27     ObjCPolymorphic
     27    ObjCPolymorphic,
     28    V8SkipVTableValidation
    2829] interface HTMLCollection {
    2930    readonly attribute unsigned long length;
  • trunk/Source/WebCore/html/HTMLDialogElement.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=DIALOG_ELEMENT
     27    Conditional=DIALOG_ELEMENT,
     28    V8SkipVTableValidation
    2829] interface HTMLDialogElement : HTMLElement {
    2930    [Reflect] attribute boolean open;
  • trunk/Source/WebCore/html/HTMLDivElement.idl

    r131172 r141034  
    1818 */
    1919
    20 interface HTMLDivElement : HTMLElement {
     20[
     21    V8SkipVTableValidation
     22] interface HTMLDivElement : HTMLElement {
    2123    [Reflect] attribute DOMString align;
    2224};
  • trunk/Source/WebCore/html/HTMLDocument.idl

    r134186 r141034  
    2121[
    2222    CustomNamedGetter,
    23     V8CustomToJSObject
     23    V8CustomToJSObject,
     24    V8SkipVTableValidation
    2425] interface HTMLDocument : Document {
    2526    [JSCustom, V8Custom] void open();
  • trunk/Source/WebCore/html/HTMLElement.idl

    r134254 r141034  
    2222    JSGenerateToNativeObject,
    2323    JSCustomPushEventHandlerScope,
    24     V8CustomToJSObject
     24    V8CustomToJSObject,
     25    V8SkipVTableValidation
    2526] interface HTMLElement : Element {
    2627             // iht.com relies on id returning the empty string when no id is present.
  • trunk/Source/WebCore/html/HTMLImageElement.idl

    r131172 r141034  
    2020
    2121[
    22     JSGenerateToNativeObject
     22    JSGenerateToNativeObject,
     23    V8SkipVTableValidation
    2324] interface HTMLImageElement : HTMLElement {
    2425    [Reflect] attribute DOMString name;
  • trunk/Source/WebCore/html/HTMLInputElement.idl

    r134538 r141034  
    2020 */
    2121
    22 interface HTMLInputElement : HTMLElement {
     22[
     23    V8SkipVTableValidation
     24] interface HTMLInputElement : HTMLElement {
    2325    [Reflect] attribute DOMString accept;
    2426    [Reflect] attribute DOMString alt;
  • trunk/Source/WebCore/html/HTMLSelectElement.idl

    r131172 r141034  
    2121[
    2222    IndexedGetter,
    23     CustomIndexedSetter
     23    CustomIndexedSetter,
     24    V8SkipVTableValidation
    2425] interface HTMLSelectElement : HTMLElement {
    2526    attribute [Reflect] boolean autofocus;
  • trunk/Source/WebCore/html/HTMLSpanElement.idl

    r131145 r141034  
    2525
    2626// http://www.whatwg.org/specs/web-apps/current-work/#htmlspanelement
    27 interface HTMLSpanElement : HTMLElement {
     27[
     28    V8SkipVTableValidation
     29] interface HTMLSpanElement : HTMLElement {
    2830};
    2931
  • trunk/Source/WebCore/html/HTMLUnknownElement.idl

    r131145 r141034  
    2727 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2828 */
    29 
    30 interface HTMLUnknownElement : HTMLElement {
     29[
     30    V8SkipVTableValidation
     31] interface HTMLUnknownElement : HTMLElement {
    3132};
    3233
  • trunk/Source/WebCore/html/ImageData.idl

    r131172 r141034  
    2828
    2929[
    30     CustomToJSObject
     30    CustomToJSObject,
     31    ImplementationLacksVTable
    3132] interface ImageData {
    3233    readonly attribute long width;
  • trunk/Source/WebCore/html/MediaError.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=VIDEO
     27    Conditional=VIDEO,
     28    ImplementationLacksVTable
    2829] interface MediaError {
    2930      const unsigned short MEDIA_ERR_ABORTED = 1;
  • trunk/Source/WebCore/html/MediaKeyError.idl

    r131172 r141034  
    2727    Conditional=ENCRYPTED_MEDIA,
    2828    V8EnabledAtRuntime=encryptedMedia,
     29    ImplementationLacksVTable
    2930] interface MediaKeyError {
    3031    const unsigned short MEDIA_KEYERR_UNKNOWN = 1;
  • trunk/Source/WebCore/html/TimeRanges.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=VIDEO
     27    Conditional=VIDEO,
     28    ImplementationLacksVTable
    2829] interface TimeRanges {
    2930    readonly attribute unsigned long length;
  • trunk/Source/WebCore/html/ValidityState.idl

    r135836 r141034  
    2222
    2323[
    24     OmitConstructor
     24    OmitConstructor,
     25    ImplementationLacksVTable
    2526] interface ValidityState {
    2627    readonly attribute boolean         valueMissing;
  • trunk/Source/WebCore/html/canvas/ArrayBuffer.idl

    r131172 r141034  
    2828    CustomConstructor,
    2929    ConstructorParameters=1,
    30     JSNoStaticTables
     30    JSNoStaticTables,
     31    ImplementationNamespace=WTF,
     32    ImplementationLacksVTable
    3133] interface ArrayBuffer {
    3234    readonly attribute unsigned long byteLength;
  • trunk/Source/WebCore/html/canvas/ArrayBufferView.idl

    r138393 r141034  
    2626[
    2727    CustomToJSObject,
    28     JSNoStaticTables
     28    JSNoStaticTables,
     29    ImplementationNamespace=WTF
    2930] interface ArrayBufferView {
    3031    readonly attribute ArrayBuffer buffer;
  • trunk/Source/WebCore/html/canvas/CanvasGradient.idl

    r131145 r141034  
    2323 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2424 */
    25 
    26 interface CanvasGradient {
     25[
     26    ImplementationLacksVTable
     27] interface CanvasGradient {
    2728
    2829    void addColorStop(in [Optional=DefaultIsUndefined] float offset,
  • trunk/Source/WebCore/html/canvas/CanvasPattern.idl

    r131145 r141034  
    2323 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2424 */
    25 
    26 interface CanvasPattern {
     25[
     26    ImplementationLacksVTable
     27] interface CanvasPattern {
    2728};
    2829
  • trunk/Source/WebCore/html/canvas/Float32Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=float
     36    TypedArray=float,
     37    ImplementationNamespace=WTF
    3738] interface Float32Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 4;
  • trunk/Source/WebCore/html/canvas/Float64Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=double
     36    TypedArray=double,
     37    ImplementationNamespace=WTF
    3738] interface Float64Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 8;
  • trunk/Source/WebCore/html/canvas/Int16Array.idl

    r131172 r141034  
    3333    CustomToJSObject,
    3434    DoNotCheckConstants,
    35     TypedArray=short
     35    TypedArray=short,
     36    ImplementationNamespace=WTF
    3637] interface Int16Array : ArrayBufferView {
    3738    const unsigned long BYTES_PER_ELEMENT = 2;
  • trunk/Source/WebCore/html/canvas/Int32Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=int
     36    TypedArray=int,
     37    ImplementationNamespace=WTF
    3738] interface Int32Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 4;
  • trunk/Source/WebCore/html/canvas/Int8Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=signed char
     36    TypedArray=signed char,
     37    ImplementationNamespace=WTF
    3738] interface Int8Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 1;
  • trunk/Source/WebCore/html/canvas/Uint16Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=unsigned short
     36    TypedArray=unsigned short,
     37    ImplementationNamespace=WTF
    3738] interface Uint16Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 2;
  • trunk/Source/WebCore/html/canvas/Uint32Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=unsigned int
     36    TypedArray=unsigned int,
     37    ImplementationNamespace=WTF
    3738] interface Uint32Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 4;
  • trunk/Source/WebCore/html/canvas/Uint8Array.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=unsigned char
     36    TypedArray=unsigned char,
     37    ImplementationNamespace=WTF
    3738] interface Uint8Array : ArrayBufferView {
    3839    const unsigned long BYTES_PER_ELEMENT = 1;
  • trunk/Source/WebCore/html/canvas/Uint8ClampedArray.idl

    r131172 r141034  
    3434    CustomToJSObject,
    3535    DoNotCheckConstants,
    36     TypedArray=unsigned char
     36    TypedArray=unsigned char,
     37    ImplementationNamespace=WTF
    3738] interface Uint8ClampedArray : Uint8Array {
    3839    const unsigned long BYTES_PER_ELEMENT = 1;
  • trunk/Source/WebCore/html/canvas/WebGLActiveInfo.idl

    r131172 r141034  
    2626[
    2727    Conditional=WEBGL,
     28    ImplementationLacksVTable
    2829] interface WebGLActiveInfo {
    2930    readonly attribute long size;
  • trunk/Source/WebCore/html/canvas/WebGLShaderPrecisionFormat.idl

    r131172 r141034  
    2727[
    2828    Conditional=WEBGL,
     29    ImplementationLacksVTable
    2930] interface WebGLShaderPrecisionFormat {
    3031    readonly attribute long rangeMin;
  • trunk/Source/WebCore/html/track/TextTrack.idl

    r136528 r141034  
    2929    EventTarget,
    3030    JSCustomMarkFunction,
    31     JSCustomIsReachable
     31    JSCustomIsReachable,
     32    V8SkipVTableValidation
    3233] interface TextTrack {
    3334    readonly attribute DOMString kind;
  • trunk/Source/WebCore/html/track/TextTrackCue.idl

    r136684 r141034  
    3232    EventTarget,
    3333    JSCustomMarkFunction,
    34     JSCustomIsReachable
     34    JSCustomIsReachable,
     35    ImplementationLacksVTable
    3536] interface TextTrackCue {
    3637    readonly attribute TextTrack track;
  • trunk/Source/WebCore/html/track/TextTrackCueList.idl

    r131172 r141034  
    2727    Conditional=VIDEO_TRACK,
    2828    V8EnabledAtRuntime=webkitVideoTrack,
    29     IndexedGetter
     29    IndexedGetter,
     30    ImplementationLacksVTable
    3031] interface TextTrackCueList {
    3132    readonly attribute unsigned long length;
  • trunk/Source/WebCore/inspector/InjectedScriptHost.idl

    r131172 r141034  
    3232
    3333[
    34     Conditional=INSPECTOR
     34    Conditional=INSPECTOR,
     35    ImplementationLacksVTable
    3536] interface InjectedScriptHost {
    3637    void clearConsoleMessages();
  • trunk/Source/WebCore/inspector/InspectorFrontendHost.idl

    r140539 r141034  
    3232
    3333[
    34     Conditional=INSPECTOR
     34    Conditional=INSPECTOR,
     35    ImplementationLacksVTable
    3536] interface InspectorFrontendHost {
    3637    void loaded();
  • trunk/Source/WebCore/inspector/JavaScriptCallFrame.idl

    r131172 r141034  
    2727    Conditional=JAVASCRIPT_DEBUGGER,
    2828    OmitConstructor,
    29     DoNotCheckConstants
     29    DoNotCheckConstants,
     30    ImplementationLacksVTable
    3031] interface JavaScriptCallFrame {
    3132
  • trunk/Source/WebCore/page/Coordinates.idl

    r131172 r141034  
    2525
    2626[
    27     OmitConstructor
     27    OmitConstructor,
     28    ImplementationLacksVTable
    2829] interface Coordinates {
    2930    readonly attribute double latitude;
  • trunk/Source/WebCore/page/Crypto.idl

    r138298 r141034  
    2828
    2929[
    30     OmitConstructor
     30    OmitConstructor,
     31    ImplementationLacksVTable
    3132] interface Crypto {
    3233    [Custom] ArrayBufferView getRandomValues(in ArrayBufferView array) raises(DOMException);
  • trunk/Source/WebCore/page/MemoryInfo.idl

    r131172 r141034  
    3030
    3131[
    32     OmitConstructor
     32    OmitConstructor,
     33    ImplementationLacksVTable
    3334] interface MemoryInfo {
    3435
  • trunk/Source/WebCore/page/PagePopupController.idl

    r137281 r141034  
    3030
    3131[
    32     Conditional=PAGE_POPUP
     32    Conditional=PAGE_POPUP,
     33    ImplementationLacksVTable
    3334] interface PagePopupController {
    3435    void setValueAndClosePopup(in long numberValue, in DOMString stringValue);
  • trunk/Source/WebCore/page/PerformanceEntryList.idl

    r131172 r141034  
    3434    Conditional=PERFORMANCE_TIMELINE,
    3535    OmitConstructor,
    36     IndexedGetter
     36    IndexedGetter,
     37    ImplementationLacksVTable
    3738] interface PerformanceEntryList {
    3839    readonly attribute unsigned long length;
  • trunk/Source/WebCore/page/SpeechInputResult.idl

    r131172 r141034  
    2626[
    2727    Conditional=INPUT_SPEECH,
     28    ImplementationLacksVTable
    2829] interface SpeechInputResult {
    2930    readonly attribute DOMString utterance;
  • trunk/Source/WebCore/page/SpeechInputResultList.idl

    r131172 r141034  
    2626[
    2727    IndexedGetter,
    28     Conditional=INPUT_SPEECH
     28    Conditional=INPUT_SPEECH,
     29    ImplementationLacksVTable
    2930] interface SpeechInputResultList {
    3031    readonly attribute unsigned long length;
  • trunk/Source/WebCore/page/WebKitPoint.idl

    r131172 r141034  
    2626[
    2727    CustomConstructor,
    28     ConstructorParameters=2
     28    ConstructorParameters=2,
     29    ImplementationLacksVTable
    2930] interface WebKitPoint {
    3031    attribute float x;
  • trunk/Source/WebCore/svg/SVGAnimatedAngle.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedAngle {
    2930    readonly attribute SVGAngle baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedBoolean.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedBoolean {
    2930    [StrictTypeChecking] attribute boolean baseVal
  • trunk/Source/WebCore/svg/SVGAnimatedEnumeration.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedEnumeration {
    2930    [StrictTypeChecking] attribute unsigned short baseVal
  • trunk/Source/WebCore/svg/SVGAnimatedInteger.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedInteger {
    2930    [StrictTypeChecking] attribute long baseVal
  • trunk/Source/WebCore/svg/SVGAnimatedLength.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedLength {
    2930    readonly attribute SVGLength baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedLengthList.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedLengthList {
    2930    readonly attribute SVGLengthList baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedNumber.idl

    r131172 r141034  
    2626
    2727[
    28     Conditional=SVG
     28    Conditional=SVG,
     29    ImplementationLacksVTable
    2930] interface SVGAnimatedNumber {
    3031    [StrictTypeChecking] attribute float baseVal
  • trunk/Source/WebCore/svg/SVGAnimatedNumberList.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedNumberList {
    2930    readonly attribute SVGNumberList baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedPreserveAspectRatio.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedPreserveAspectRatio {
    2930    readonly attribute SVGPreserveAspectRatio baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedRect.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedRect {
    2930    readonly attribute SVGRect baseVal;
  • trunk/Source/WebCore/svg/SVGAnimatedString.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedString {
    2930    attribute DOMString baseVal
  • trunk/Source/WebCore/svg/SVGAnimatedTransformList.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGAnimatedTransformList {
    2930    readonly attribute SVGTransformList baseVal;
  • trunk/Source/WebCore/svg/SVGColor.idl

    r131172 r141034  
    2121
    2222[
    23     Conditional=SVG
     23    Conditional=SVG,
     24    ImplementationLacksVTable
    2425] interface SVGColor : CSSValue {
    2526    const unsigned short SVG_COLORTYPE_UNKNOWN = 0;
  • trunk/Source/WebCore/svg/SVGException.idl

    r131172 r141034  
    2121[
    2222    Conditional=SVG,
    23     DoNotCheckConstants
     23    DoNotCheckConstants,
     24    ImplementationLacksVTable
    2425] exception SVGException {
    2526
  • trunk/Source/WebCore/svg/SVGPaint.idl

    r131172 r141034  
    2525
    2626[
    27     Conditional=SVG
     27    Conditional=SVG,
     28    ImplementationLacksVTable
    2829] interface SVGPaint : SVGColor {
    2930    const unsigned short SVG_PAINTTYPE_UNKNOWN = 0;
  • trunk/Source/WebCore/svg/SVGPathSeg.idl

    r131172 r141034  
    2828    Conditional=SVG,
    2929    CustomToJSObject,
    30     ObjCPolymorphic
     30    ObjCPolymorphic,
     31    ImplementationLacksVTable
    3132] interface SVGPathSeg {
    3233    // Path Segment Types
  • trunk/Source/WebCore/svg/SVGRenderingIntent.idl

    r131172 r141034  
    2626[
    2727    Conditional=SVG,
    28     SuppressToJSObject
     28    SuppressToJSObject,
     29    ImplementationLacksVTable
    2930] interface SVGRenderingIntent {
    3031    // Rendering Intent Types
  • trunk/Source/WebCore/svg/SVGUnitTypes.idl

    r131172 r141034  
    2626[
    2727    Conditional=SVG,
    28     SuppressToJSObject
     28    SuppressToJSObject,
     29    ImplementationLacksVTable
    2930] interface SVGUnitTypes {
    3031    // Unit Types
  • trunk/Source/WebCore/svg/SVGZoomAndPan.idl

    r131172 r141034  
    2828    Conditional=SVG,
    2929    ObjCProtocol,
    30     SuppressToJSObject
     30    SuppressToJSObject,
     31    ImplementationLacksVTable
    3132] interface SVGZoomAndPan {
    3233    const unsigned short SVG_ZOOMANDPAN_UNKNOWN = 0;
  • trunk/Source/WebCore/testing/MallocStatistics.idl

    r131172 r141034  
    2525
    2626[
    27     OmitConstructor
     27    OmitConstructor,
     28    ImplementationLacksVTable
    2829] interface MallocStatistics {
    2930    readonly attribute unsigned long reservedVMBytes;
  • trunk/Source/WebCore/testing/TypeConversions.idl

    r138836 r141034  
    2525
    2626[
    27     OmitConstructor
     27    OmitConstructor,
     28    ImplementationLacksVTable
    2829] interface TypeConversions {
    2930    attribute long testLong;
  • trunk/Source/WebCore/workers/WorkerLocation.idl

    r131172 r141034  
    3030    Conditional=WORKERS,
    3131    JSGenerateIsReachable=Impl,
    32     JSNoStaticTables
     32    JSNoStaticTables,
     33    ImplementationLacksVTable
    3334] interface WorkerLocation {
    3435    readonly attribute DOMString href;
  • trunk/Source/WebCore/xml/DOMParser.idl

    r131172 r141034  
    1919
    2020[
    21     Constructor
     21    Constructor,
     22    ImplementationLacksVTable
    2223] interface DOMParser {
    2324    Document parseFromString(in [Optional=DefaultIsUndefined] DOMString str,
  • trunk/Source/WebCore/xml/XMLHttpRequestException.idl

    r131172 r141034  
    2929[
    3030    JSNoStaticTables,
    31     DoNotCheckConstants
     31    DoNotCheckConstants,
     32    ImplementationLacksVTable
    3233] exception XMLHttpRequestException {
    3334
  • trunk/Source/WebCore/xml/XMLSerializer.idl

    r131172 r141034  
    2020
    2121[
    22     Constructor
     22    Constructor,
     23    ImplementationLacksVTable
    2324] interface XMLSerializer {
    2425    DOMString serializeToString(in [Optional=DefaultIsUndefined] Node node)
  • trunk/Source/WebCore/xml/XPathEvaluator.idl

    r131172 r141034  
    1919
    2020[
    21     Constructor
     21    Constructor,
     22    ImplementationLacksVTable
    2223] interface XPathEvaluator {
    2324    XPathExpression createExpression(in [Optional=DefaultIsUndefined] DOMString expression,
  • trunk/Source/WebCore/xml/XPathException.idl

    r131172 r141034  
    2828
    2929[
    30     DoNotCheckConstants
     30    DoNotCheckConstants,
     31    ImplementationLacksVTable
    3132] exception XPathException {
    3233
  • trunk/Source/WebCore/xml/XPathExpression.idl

    r131145 r141034  
    1818 * Boston, MA 02110-1301, USA.
    1919 */
    20 
    21 interface XPathExpression {
     20[
     21     ImplementationLacksVTable
     22] interface XPathExpression {
    2223    [ObjCLegacyUnnamedParameters] XPathResult evaluate(in [Optional=DefaultIsUndefined] Node contextNode,
    2324                                        in [Optional=DefaultIsUndefined] unsigned short type,
  • trunk/Source/WebCore/xml/XPathNSResolver.idl

    r131172 r141034  
    2121[
    2222    ObjCProtocol,
    23     OmitConstructor
     23    OmitConstructor,
     24    V8SkipVTableValidation
    2425] interface XPathNSResolver {
    2526    [TreatReturnedNullStringAs=Null] DOMString lookupNamespaceURI(in [Optional=DefaultIsUndefined] DOMString prefix);
  • trunk/Source/WebCore/xml/XPathResult.idl

    r131172 r141034  
    1919
    2020[
    21     JSCustomMarkFunction
     21    JSCustomMarkFunction,
     22    ImplementationLacksVTable
    2223] interface XPathResult {
    2324    const unsigned short ANY_TYPE                       = 0;
  • trunk/Source/WebCore/xml/XSLTProcessor.idl

    r131172 r141034  
    3333[
    3434    Conditional=XSLT,
    35     Constructor
     35    Constructor,
     36    ImplementationLacksVTable
    3637] interface XSLTProcessor {
    3738   
  • trunk/Source/WebKit/chromium/ChangeLog

    r141021 r141034  
     12013-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
    1112013-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
    212
  • trunk/Source/WebKit/chromium/features.gypi

    r141000 r141034  
    3535      'ENABLE_3D_PLUGIN=1',
    3636      'ENABLE_BATTERY_STATUS=0',
     37      'ENABLE_BINDING_INTEGRITY=0',
    3738      'ENABLE_BLOB=1',
    3839      'ENABLE_BLOB_SLICE=1',
Note: See TracChangeset for help on using the changeset viewer.