Changeset 125745 in webkit


Ignore:
Timestamp:
Aug 15, 2012 10:01:52 PM (12 years ago)
Author:
abarth@webkit.org
Message:

VoidCallback should not be a special snowflake
https://bugs.webkit.org/show_bug.cgi?id=94119

Reviewed by Eric Seidel.

VoidCallback is the oldest of the callbacks and it predates our ability
to autogenerate callback objects. The existing implementation of
VoidCallback is wrong because it doesn't call
ActiveDOMCallback::canInvokeCallback. The net result of that is that
void callbacks can race with navigations and occationally execute after
the Frame has navigated to a new Document, which was causing the
flakiness.

This patch changes VoidCallback to no longer be a unique snowflake.
Instead, we autogenerate the implementation, just like every other
callback in WebCore.

Tests: storage/websql/database-lock-after-reload.html is no longer flaky.

  • DerivedSources.make:
  • GNUmakefile.list.am:
  • Modules/filesystem/SyncCallbackHelper.h:

(WebCore::SyncCallbackHelper::SuccessCallbackImpl::handleEvent):

  • Target.pri:
  • UseJSC.cmake:
  • UseV8.cmake:
  • WebCore.gyp/WebCore.gyp:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/cpp/WebDOMCustomVoidCallback.cpp: Removed.
  • bindings/cpp/WebDOMCustomVoidCallback.h: Removed.
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSCustomVoidCallback.cpp: Removed.
  • bindings/js/JSCustomVoidCallback.h: Removed.
  • bindings/js/JSDesktopNotificationsCustom.cpp:

(WebCore::JSNotificationCenter::requestPermission):

  • bindings/scripts/CodeGeneratorCPP.pm:

(GetClassName):
(AddIncludesForType):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetCallbackClassName):
(GenerateCallbackImplementation):
(JSValueToNative):

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateCallbackImplementation):
(TypeCanFailConversion):
(GetCallbackClassName):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithNoParam):

  • bindings/scripts/test/V8/V8TestCallback.cpp:
  • bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
  • bindings/v8/custom/V8CustomVoidCallback.cpp: Removed.
  • bindings/v8/custom/V8CustomVoidCallback.h: Removed.
  • bindings/v8/custom/V8MutationCallbackCustom.cpp:
  • bindings/v8/custom/V8NotificationCenterCustom.cpp:

(WebCore::V8NotificationCenter::requestPermissionCallback):

  • html/VoidCallback.h:

(VoidCallback):

  • html/VoidCallback.idl:
  • inspector/InspectorDatabaseAgent.cpp:

(WebCore):

Location:
trunk/Source/WebCore
Files:
1 added
5 deleted
25 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r125744 r125745  
     12012-08-15  Adam Barth  <abarth@webkit.org>
     2
     3        VoidCallback should not be a special snowflake
     4        https://bugs.webkit.org/show_bug.cgi?id=94119
     5
     6        Reviewed by Eric Seidel.
     7
     8        VoidCallback is the oldest of the callbacks and it predates our ability
     9        to autogenerate callback objects. The existing implementation of
     10        VoidCallback is wrong because it doesn't call
     11        ActiveDOMCallback::canInvokeCallback. The net result of that is that
     12        void callbacks can race with navigations and occationally execute after
     13        the Frame has navigated to a new Document, which was causing the
     14        flakiness.
     15
     16        This patch changes VoidCallback to no longer be a unique snowflake.
     17        Instead, we autogenerate the implementation, just like every other
     18        callback in WebCore.
     19
     20        Tests: storage/websql/database-lock-after-reload.html is no longer flaky.
     21
     22        * DerivedSources.make:
     23        * GNUmakefile.list.am:
     24        * Modules/filesystem/SyncCallbackHelper.h:
     25        (WebCore::SyncCallbackHelper::SuccessCallbackImpl::handleEvent):
     26        * Target.pri:
     27        * UseJSC.cmake:
     28        * UseV8.cmake:
     29        * WebCore.gyp/WebCore.gyp:
     30        * WebCore.gypi:
     31        * WebCore.vcproj/WebCore.vcproj:
     32        * WebCore.xcodeproj/project.pbxproj:
     33        * bindings/cpp/WebDOMCustomVoidCallback.cpp: Removed.
     34        * bindings/cpp/WebDOMCustomVoidCallback.h: Removed.
     35        * bindings/js/JSBindingsAllInOne.cpp:
     36        * bindings/js/JSCustomVoidCallback.cpp: Removed.
     37        * bindings/js/JSCustomVoidCallback.h: Removed.
     38        * bindings/js/JSDesktopNotificationsCustom.cpp:
     39        (WebCore::JSNotificationCenter::requestPermission):
     40        * bindings/scripts/CodeGeneratorCPP.pm:
     41        (GetClassName):
     42        (AddIncludesForType):
     43        * bindings/scripts/CodeGeneratorJS.pm:
     44        (GetCallbackClassName):
     45        (GenerateCallbackImplementation):
     46        (JSValueToNative):
     47        * bindings/scripts/CodeGeneratorV8.pm:
     48        (GenerateCallbackImplementation):
     49        (TypeCanFailConversion):
     50        (GetCallbackClassName):
     51        * bindings/scripts/test/JS/JSTestCallback.cpp:
     52        (WebCore::JSTestCallback::callbackWithNoParam):
     53        * bindings/scripts/test/V8/V8TestCallback.cpp:
     54        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
     55        * bindings/v8/custom/V8CustomVoidCallback.cpp: Removed.
     56        * bindings/v8/custom/V8CustomVoidCallback.h: Removed.
     57        * bindings/v8/custom/V8MutationCallbackCustom.cpp:
     58        * bindings/v8/custom/V8NotificationCenterCustom.cpp:
     59        (WebCore::V8NotificationCenter::requestPermissionCallback):
     60        * html/VoidCallback.h:
     61        (VoidCallback):
     62        * html/VoidCallback.idl:
     63        * inspector/InspectorDatabaseAgent.cpp:
     64        (WebCore):
     65
    1662012-08-15  Hayato Ito  <hayato@chromium.org>
    267
  • trunk/Source/WebCore/DerivedSources.cpp

    r125251 r125745  
    478478#endif
    479479#include "JSValidityState.cpp"
     480#include "JSVoidCallback.cpp"
    480481#include "JSWebKitAnimation.cpp"
    481482#include "JSWebKitAnimationEvent.cpp"
  • trunk/Source/WebCore/DerivedSources.make

    r125691 r125745  
    361361    $(WebCore)/html/TimeRanges.idl \
    362362    $(WebCore)/html/ValidityState.idl \
     363    $(WebCore)/html/VoidCallback.idl \
    363364    $(WebCore)/html/canvas/ArrayBuffer.idl \
    364365    $(WebCore)/html/canvas/ArrayBufferView.idl \
  • trunk/Source/WebCore/GNUmakefile.list.am

    r125691 r125745  
    21942194        Source/WebCore/bindings/js/JSCoordinatesCustom.cpp \
    21952195        Source/WebCore/bindings/js/JSCustomSQLStatementErrorCallback.cpp \
    2196         Source/WebCore/bindings/js/JSCustomVoidCallback.cpp \
    2197         Source/WebCore/bindings/js/JSCustomVoidCallback.h \
    21982196        Source/WebCore/bindings/js/JSCustomXPathNSResolver.cpp \
    21992197        Source/WebCore/bindings/js/JSCustomXPathNSResolver.h \
  • trunk/Source/WebCore/Modules/filesystem/SyncCallbackHelper.h

    r123945 r125745  
    9898        }
    9999
    100         virtual void handleEvent()
     100        virtual bool handleEvent()
    101101        {
    102102            m_helper->setError(0);
     103            return true;
    103104        }
    104105
  • trunk/Source/WebCore/Target.pri

    r125691 r125745  
    9797     bindings/js/JSConsoleCustom.cpp \
    9898     bindings/js/JSCoordinatesCustom.cpp \
    99      bindings/js/JSCustomVoidCallback.cpp \
    10099     bindings/js/JSCustomXPathNSResolver.cpp \
    101100     bindings/js/JSDictionary.cpp \
     
    12801279    bindings/js/JSCSSStyleDeclarationCustom.h \
    12811280    bindings/js/JSCallbackData.h \
    1282     bindings/js/JSCustomVoidCallback.h \
    12831281    bindings/js/JSCustomXPathNSResolver.h \
    12841282    bindings/js/JSDictionary.h \
  • trunk/Source/WebCore/UseJSC.cmake

    r125550 r125745  
    5050    bindings/js/JSConsoleCustom.cpp
    5151    bindings/js/JSCoordinatesCustom.cpp
    52     bindings/js/JSCustomVoidCallback.cpp
    5352    bindings/js/JSCustomXPathNSResolver.cpp
    5453    bindings/js/JSDictionary.cpp
  • trunk/Source/WebCore/UseV8.cmake

    r125717 r125745  
    8787    bindings/v8/custom/V8CoordinatesCustom.cpp
    8888    bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp
    89     bindings/v8/custom/V8CustomVoidCallback.cpp
    9089    bindings/v8/custom/V8CustomXPathNSResolver.cpp
    9190    bindings/v8/custom/V8DOMFormDataCustom.cpp
  • trunk/Source/WebCore/WebCore.gyp/WebCore.gyp

    r125691 r125745  
    165165      # Custom bindings in bindings/v8/custom exist for these.
    166166      '../dom/EventListener.idl',
    167       '../html/VoidCallback.idl',
    168167
    169168      # Bindings with custom Objective-C implementations.
  • trunk/Source/WebCore/WebCore.gypi

    r125717 r125745  
    18831883            'bindings/cpp/WebDOMCString.cpp',
    18841884            'bindings/cpp/WebDOMCString.h',
    1885             'bindings/cpp/WebDOMCustomVoidCallback.cpp',
    1886             'bindings/cpp/WebDOMCustomVoidCallback.h',
    18871885            'bindings/cpp/WebDOMDOMWindowCustom.cpp',
    18881886            'bindings/cpp/WebDOMEventListenerCustom.cpp',
     
    19631961            'bindings/js/JSCoordinatesCustom.cpp',
    19641962            'bindings/js/JSCustomSQLStatementErrorCallback.cpp',
    1965             'bindings/js/JSCustomVoidCallback.cpp',
    1966             'bindings/js/JSCustomVoidCallback.h',
    19671963            'bindings/js/JSCustomXPathNSResolver.cpp',
    19681964            'bindings/js/JSCustomXPathNSResolver.h',
     
    22392235            'bindings/v8/V8Binding.h',
    22402236            'bindings/v8/V8BindingMacros.h',
     2237            'bindings/v8/V8Callback.cpp',
     2238            'bindings/v8/V8Callback.h',
    22412239            'bindings/v8/V8Collection.cpp',
    22422240            'bindings/v8/V8Collection.h',
     
    23122310            'bindings/v8/custom/V8CoordinatesCustom.cpp',
    23132311            'bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp',
    2314             'bindings/v8/custom/V8CustomVoidCallback.cpp',
    2315             'bindings/v8/custom/V8CustomVoidCallback.h',
    23162312            'bindings/v8/custom/V8CustomXPathNSResolver.cpp',
    23172313            'bindings/v8/custom/V8CustomXPathNSResolver.h',
     
    81118107            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSValidityState.cpp',
    81128108            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSValidityState.h',
     8109            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSVoidCallback.cpp',
     8110            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSVoidCallback.h',
    81138111            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebGLActiveInfo.cpp',
    81148112            '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebGLActiveInfo.h',
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r125265 r125745  
    6534365343                                </File>
    6534465344                                <File
    65345                                         RelativePath="..\bindings\js\JSCustomVoidCallback.cpp"
    65346                                         >
    65347                                         <FileConfiguration
    65348                                                 Name="Debug|Win32"
    65349                                                 ExcludedFromBuild="true"
    65350                                                 >
    65351                                                 <Tool
    65352                                                         Name="VCCLCompilerTool"
    65353                                                 />
    65354                                         </FileConfiguration>
    65355                                         <FileConfiguration
    65356                                                 Name="Release|Win32"
    65357                                                 ExcludedFromBuild="true"
    65358                                                 >
    65359                                                 <Tool
    65360                                                         Name="VCCLCompilerTool"
    65361                                                 />
    65362                                         </FileConfiguration>
    65363                                         <FileConfiguration
    65364                                                 Name="Debug_Cairo_CFLite|Win32"
    65365                                                 ExcludedFromBuild="true"
    65366                                                 >
    65367                                                 <Tool
    65368                                                         Name="VCCLCompilerTool"
    65369                                                 />
    65370                                         </FileConfiguration>
    65371                                         <FileConfiguration
    65372                                                 Name="Release_Cairo_CFLite|Win32"
    65373                                                 ExcludedFromBuild="true"
    65374                                                 >
    65375                                                 <Tool
    65376                                                         Name="VCCLCompilerTool"
    65377                                                 />
    65378                                         </FileConfiguration>
    65379                                         <FileConfiguration
    65380                                                 Name="Debug_All|Win32"
    65381                                                 ExcludedFromBuild="true"
    65382                                                 >
    65383                                                 <Tool
    65384                                                         Name="VCCLCompilerTool"
    65385                                                 />
    65386                                         </FileConfiguration>
    65387                                         <FileConfiguration
    65388                                                 Name="Production|Win32"
    65389                                                 ExcludedFromBuild="true"
    65390                                                 >
    65391                                                 <Tool
    65392                                                         Name="VCCLCompilerTool"
    65393                                                 />
    65394                                         </FileConfiguration>
    65395                                 </File>
    65396                                 <File
    65397                                         RelativePath="..\bindings\js\JSCustomVoidCallback.h"
    65398                                         >
    65399                                 </File>
    65400                                 <File
    6540165345                                        RelativePath="..\bindings\js\JSCustomXPathNSResolver.cpp"
    6540265346                                        >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r125691 r125745  
    399399                1A2E6E5A0CC55213004A2062 /* SQLValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A2E6E580CC55213004A2062 /* SQLValue.h */; settings = {ATTRIBUTES = (Private, ); }; };
    400400                1A2E6E7A0CC556D5004A2062 /* SQLiteAuthorizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A2E6E780CC556D5004A2062 /* SQLiteAuthorizer.cpp */; };
    401                 1A3417C90CECFF250049CBDE /* JSCustomVoidCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A3417C70CECFF250049CBDE /* JSCustomVoidCallback.h */; };
    402                 1A3417CA0CECFF250049CBDE /* JSCustomVoidCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3417C80CECFF250049CBDE /* JSCustomVoidCallback.cpp */; };
    403401                1A35862C152522540022A659 /* ScrollingTreeMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1A35862A152522540022A659 /* ScrollingTreeMac.mm */; };
    404402                1A3586DF15264C450022A659 /* RenderMultiColumnFlowThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A3586DD15264C450022A659 /* RenderMultiColumnFlowThread.cpp */; };
     
    19611959                7B9184D215758E420092AA93 /* UndoManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7B9184CF15758E420092AA93 /* UndoManager.cpp */; };
    19621960                7B9184D315758E420092AA93 /* UndoManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B9184D015758E420092AA93 /* UndoManager.h */; };
    1963                 7C522D4B15B477E8009B7C95 /* InspectorOverlay.cpp */ = {isa = PBXBuildFile; fileRef = 7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */; };
    1964                 7C522D4C15B478B2009B7C95 /* InspectorOverlay.h */ = {isa = PBXBuildFile; fileRef = 7C522D4A15B477E8009B7C95 /* InspectorOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; };
     1961        7C522D4B15B477E8009B7C95 /* InspectorOverlay.cpp */ = {isa = PBXBuildFile; fileRef = 7C522D4915B477E8009B7C95 /* InspectorOverlay.cpp */; };
     1962        7C522D4C15B478B2009B7C95 /* InspectorOverlay.h */ = {isa = PBXBuildFile; fileRef = 7C522D4A15B477E8009B7C95 /* InspectorOverlay.h */; settings = {ATTRIBUTES = (Private, ); }; };
    19651963                7E33CD01127F340D00BE8F17 /* PurgePriority.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E33CD00127F340D00BE8F17 /* PurgePriority.h */; settings = {ATTRIBUTES = (Private, ); }; };
    19661964                7E37EF2E1339208800B29250 /* SubresourceLoaderCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7E37EF2D1339208800B29250 /* SubresourceLoaderCF.cpp */; };
     
    33613359                93FDAFCA0B11307400E2746F /* EditorInsertAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 93FDAFC90B11307400E2746F /* EditorInsertAction.h */; settings = {ATTRIBUTES = (Private, ); }; };
    33623360                96ABA42314BCB80E00D56204 /* GraphicsContext3DOpenGLCommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 96ABA42214BCB80E00D56204 /* GraphicsContext3DOpenGLCommon.cpp */; };
     3361                9703E1BF15DC4E37001F24C8 /* JSVoidCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97E9EC8B15DC492F004F2E71 /* JSVoidCallback.cpp */; };
    33633362                97059977107D975200A50A7C /* PolicyCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97059973107D975200A50A7C /* PolicyCallback.cpp */; };
    33643363                97059978107D975200A50A7C /* PolicyCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = 97059974107D975200A50A7C /* PolicyCallback.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    74147413                1A2E6E580CC55213004A2062 /* SQLValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SQLValue.h; path = sql/SQLValue.h; sourceTree = "<group>"; };
    74157414                1A2E6E780CC556D5004A2062 /* SQLiteAuthorizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SQLiteAuthorizer.cpp; path = sql/SQLiteAuthorizer.cpp; sourceTree = "<group>"; };
    7416                 1A3417C70CECFF250049CBDE /* JSCustomVoidCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCustomVoidCallback.h; sourceTree = "<group>"; };
    7417                 1A3417C80CECFF250049CBDE /* JSCustomVoidCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCustomVoidCallback.cpp; sourceTree = "<group>"; };
    74187415                1A35862A152522540022A659 /* ScrollingTreeMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ScrollingTreeMac.mm; sourceTree = "<group>"; };
    74197416                1A3586DD15264C450022A659 /* RenderMultiColumnFlowThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderMultiColumnFlowThread.cpp; sourceTree = "<group>"; };
     
    89508947                65F80697054D9F86008BF776 /* BlockExceptions.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = BlockExceptions.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    89518948                65FEA86809833ADE00BED4AB /* Page.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Page.cpp; sourceTree = "<group>"; };
     8949                6B3480920EEF50D400AC1B41 /* NativeImagePtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NativeImagePtr.h; sourceTree = "<group>"; };
    89528950                6E21C6BF1126338500A7BE02 /* GraphicsContext3D.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext3D.cpp; sourceTree = "<group>"; };
    89538951                6E21C6C11126339900A7BE02 /* GraphicsContext3DCG.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GraphicsContext3DCG.cpp; sourceTree = "<group>"; };
     
    1083910837                97E4028D13A696ED00913D67 /* IconController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IconController.cpp; sourceTree = "<group>"; };
    1084010838                97E4028E13A696ED00913D67 /* IconController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconController.h; sourceTree = "<group>"; };
     10839                97E9EC8B15DC492F004F2E71 /* JSVoidCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSVoidCallback.cpp; sourceTree = "<group>"; };
     10840                97E9EC8C15DC492F004F2E71 /* JSVoidCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSVoidCallback.h; sourceTree = "<group>"; };
    1084110841                97EF7DFD107E55B700D7C49C /* ScriptControllerBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScriptControllerBase.cpp; sourceTree = "<group>"; };
    1084210842                97F8E661151D4A3F00D2D181 /* WorkerContextNotifications.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = WorkerContextNotifications.cpp; path = Modules/notifications/WorkerContextNotifications.cpp; sourceTree = "<group>"; };
     
    1206412064                B27535470B053814002CE64F /* IntSize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntSize.h; sourceTree = "<group>"; };
    1206512065                B27535480B053814002CE64F /* IntSizeHash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = IntSizeHash.h; sourceTree = "<group>"; };
    12066                 6B3480920EEF50D400AC1B41 /* NativeImagePtr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = NativeImagePtr.h; sourceTree = "<group>"; };
    1206712066                B275354A0B053814002CE64F /* ColorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = ColorMac.mm; sourceTree = "<group>"; };
    1206812067                B275354B0B053814002CE64F /* FloatPointMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = FloatPointMac.mm; sourceTree = "<group>"; };
     
    1807618075                        isa = PBXGroup;
    1807718076                        children = (
    18078                                 50D88CB315BDFDAA001809F4 /* CustomFilterProgramInfo.cpp */,
    18079                                 50D88CB415BDFDAA001809F4 /* CustomFilterProgramInfo.h */,
    1808018077                                49ECEB5C1499790D00CDD3A4 /* arm */,
    1808118078                                50D4060F147D49DE00D30BB5 /* CustomFilterCompiledProgram.cpp */,
     
    1809218089                                503D0CA814B5B08700F32F57 /* CustomFilterProgram.h */,
    1809318090                                503D0CA914B5B08700F32F57 /* CustomFilterProgramClient.h */,
     18091                                50D88CB315BDFDAA001809F4 /* CustomFilterProgramInfo.cpp */,
     18092                                50D88CB415BDFDAA001809F4 /* CustomFilterProgramInfo.h */,
    1809418093                                A1E1154313015C3D0054AC8C /* DistantLightSource.cpp */,
    1809518094                                84730D5A1248F0B300D3A9C9 /* DistantLightSource.h */,
     
    1838018379                                15C77092100D3CA8005BA267 /* JSValidityState.cpp */,
    1838118380                                15C77091100D3CA8005BA267 /* JSValidityState.h */,
     18381                                97E9EC8B15DC492F004F2E71 /* JSVoidCallback.cpp */,
     18382                                97E9EC8C15DC492F004F2E71 /* JSVoidCallback.h */,
    1838218383                                A7D20F60107F406900A80392 /* JSWebGLActiveInfo.cpp */,
    1838318384                                A7D20F61107F406900A80392 /* JSWebGLActiveInfo.h */,
     
    2058620587                                1449E24A107D4A8400B5793F /* JSCallbackData.h */,
    2058720588                                51EC925D0CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp */,
    20588                                 1A3417C80CECFF250049CBDE /* JSCustomVoidCallback.cpp */,
    20589                                 1A3417C70CECFF250049CBDE /* JSCustomVoidCallback.h */,
    2059020589                                E10B93C20B73C291003ED890 /* JSCustomXPathNSResolver.cpp */,
    2059120590                                E10B937B0B73C00A003ED890 /* JSCustomXPathNSResolver.h */,
     
    2228322282                                51CBFC990D10E483002DBF51 /* CachedFramePlatformData.h in Headers */,
    2228422283                                BCB16C1C0979C3BD00467741 /* CachedImage.h in Headers */,
     22284                                319FBD5F15D2F464009640A6 /* CachedImageClient.h in Headers */,
    2228522285                                510184690B08602A004A825F /* CachedPage.h in Headers */,
    2228622286                                D0EDA775143E303C0028E383 /* CachedRawResource.h in Headers */,
     
    2245722457                                503D0CAB14B5B08700F32F57 /* CustomFilterProgram.h in Headers */,
    2245822458                                503D0CAC14B5B08700F32F57 /* CustomFilterProgramClient.h in Headers */,
     22459                                50D88CB615BDFDAA001809F4 /* CustomFilterProgramInfo.h in Headers */,
    2245922460                                A8CB413E0E8633FD0032C4F0 /* DashArray.h in Headers */,
    2246022461                                A80E6D0B0A1989CA007FB8C5 /* DashboardRegion.h in Headers */,
     
    2363323634                                20D629271253690B00081543 /* InspectorInstrumentation.h in Headers */,
    2363423635                                7AA51DD6148506A900AD2752 /* InspectorMemoryAgent.h in Headers */,
    23635                                 7C522D4C15B478B2009B7C95 /* InspectorOverlay.h in Headers */,
     23636                7C522D4C15B478B2009B7C95 /* InspectorOverlay.h in Headers */,
    2363623637                                4F6FDD651341DEDD001F8EE3 /* InspectorPageAgent.h in Headers */,
    2363723638                                9F0D6B2F121BFEBA006C0288 /* InspectorProfilerAgent.h in Headers */,
     
    2372623727                                A8D05FAC0A23B30F005E7203 /* JSCSSValueList.h in Headers */,
    2372723728                                E4778B80115A581A00B5D372 /* JSCustomEvent.h in Headers */,
    23728                                 1A3417C90CECFF250049CBDE /* JSCustomVoidCallback.h in Headers */,
    2372923729                                E10B937C0B73C00A003ED890 /* JSCustomXPathNSResolver.h in Headers */,
    2373023730                                1AE82F900CAAFA9D002237AE /* JSDatabase.h in Headers */,
     
    2528425284                                498391590F1E776900C23782 /* WebKitCSSMatrix.h in Headers */,
    2528525285                                A24BF77B15CC3BAF003191F2 /* WebKitCSSMixFunctionValue.h in Headers */,
     25286                                A24BF77B15CC3BAF003191F2 /* WebKitCSSMixFunctionValue.h in Headers */,
    2528625287                                8AA61D00144D595B00F37350 /* WebKitCSSRegionRule.h in Headers */,
    2528725288                                29CD61DE146D02890068E82A /* WebKitCSSShaderValue.h in Headers */,
     
    2539525396                                977E2E0F12F0FC9C00C13379 /* XSSAuditor.h in Headers */,
    2539625397                                FD537353137B651800008DCE /* ZeroPole.h in Headers */,
    25397                                 A24BF77B15CC3BAF003191F2 /* WebKitCSSMixFunctionValue.h in Headers */,
    25398                                 50D88CB615BDFDAA001809F4 /* CustomFilterProgramInfo.h in Headers */,
    25399                                 319FBD5F15D2F464009640A6 /* CachedImageClient.h in Headers */,
    2540025398                        );
    2540125399                        runOnlyForDeploymentPostprocessing = 0;
     
    2601126009                                50CC0A3914C6F5B10017AB51 /* CustomFilterOperation.cpp in Sources */,
    2601226010                                503D0CAA14B5B08700F32F57 /* CustomFilterProgram.cpp in Sources */,
     26011                                50D88CB515BDFDAA001809F4 /* CustomFilterProgramInfo.cpp in Sources */,
    2601326012                                97BC6A201505F081001B74AC /* Database.cpp in Sources */,
    2601426013                                97BC6A231505F081001B74AC /* DatabaseAuthorizer.cpp in Sources */,
     
    2691626915                                E4778B7F115A581A00B5D372 /* JSCustomEvent.cpp in Sources */,
    2691726916                                51EC92650CE90DD400F90308 /* JSCustomSQLStatementErrorCallback.cpp in Sources */,
    26918                                 1A3417CA0CECFF250049CBDE /* JSCustomVoidCallback.cpp in Sources */,
    2691926917                                E10B93C30B73C291003ED890 /* JSCustomXPathNSResolver.cpp in Sources */,
    2692026918                                1AE82F8F0CAAFA9D002237AE /* JSDatabase.cpp in Sources */,
     
    2743227430                                7B1EA0CE1576C5B50060177D /* JSUndoManager.cpp in Sources */,
    2743327431                                15C77094100D3CA8005BA267 /* JSValidityState.cpp in Sources */,
     27432                                9703E1BF15DC4E37001F24C8 /* JSVoidCallback.cpp in Sources */,
    2743427433                                FD82D7F713D4C8BD004E4372 /* JSWaveShaperNode.cpp in Sources */,
    2743527434                                FDEA6246152102FC00479DF0 /* JSWaveTable.cpp in Sources */,
     
    2846728466                                977E2E0E12F0FC9C00C13379 /* XSSAuditor.cpp in Sources */,
    2846828467                                FD537352137B651800008DCE /* ZeroPole.cpp in Sources */,
    28469                                 50D88CB515BDFDAA001809F4 /* CustomFilterProgramInfo.cpp in Sources */,
    2847028468                        );
    2847128469                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp

    r125346 r125745  
    5353#include "JSCoordinatesCustom.cpp"
    5454#include "JSCustomSQLStatementErrorCallback.cpp"
    55 #include "JSCustomVoidCallback.cpp"
    5655#include "JSCustomXPathNSResolver.cpp"
    5756#include "JSDictionary.cpp"
  • trunk/Source/WebCore/bindings/js/JSDesktopNotificationsCustom.cpp

    r115943 r125745  
    3535
    3636#include "Document.h"
    37 #include "JSCustomVoidCallback.h"
    3837#include "JSEventListener.h"
    3938#include "JSNotificationCenter.h"
     39#include "JSVoidCallback.h"
    4040#include "NotificationCenter.h"
    4141#include <runtime/Error.h>
     
    6262        return throwTypeError(exec);
    6363
    64     PassRefPtr<JSCustomVoidCallback> callback = JSCustomVoidCallback::create(exec->argument(0).getObject(), toJSDOMGlobalObject(static_cast<Document*>(context), exec));
    65 
    66     impl()->requestPermission(callback);
     64    impl()->requestPermission(JSVoidCallback::create(exec->argument(0).getObject(), toJSDOMGlobalObject(static_cast<Document*>(context), exec)));
    6765    return jsUndefined();
    6866}
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorCPP.pm

    r125293 r125745  
    145145    return "bool" if $name eq "boolean";
    146146    return $name if $codeGenerator->IsPrimitiveType($name);
    147     return "WebDOMCustomVoidCallback" if $name eq "VoidCallback";
    148147
    149148    return "WebDOM$name";
     
    327326        return;
    328327    }
    329    
    330     if ($type eq "VoidCallback") {
    331         $implIncludes{"WebDOMCustomVoidCallback.h"} = 1;
    332         return;
    333     }
    334    
     328
    335329    # Also include CSSImportRule so that the toWebKit methods for subclasses are found
    336330    if ($type eq "CSSRule") {
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

    r125711 r125745  
    194194    my $className = shift;
    195195
    196     return "JSCustomVoidCallback" if $className eq "VoidCallback";
    197196    return "JS$className";
    198197}
     
    28172816            push(@implContent, "    RefPtr<$className> protect(this);\n\n");
    28182817            push(@implContent, "    JSLockHolder lock(m_data->globalObject()->globalData());\n\n");
    2819             push(@implContent, "    ExecState* exec = m_data->globalObject()->globalExec();\n");
     2818            if (@params) {
     2819                push(@implContent, "    ExecState* exec = m_data->globalObject()->globalExec();\n");
     2820            }
    28202821            push(@implContent, "    MarkedArgumentBuffer args;\n");
    28212822
     
    30683069
    30693070    AddToImplIncludes("HTMLOptionElement.h", $conditional) if $type eq "HTMLOptionElement";
    3070     AddToImplIncludes("JSCustomVoidCallback.h", $conditional) if $type eq "VoidCallback";
    30713071    AddToImplIncludes("Event.h", $conditional) if $type eq "Event";
    30723072
  • trunk/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm

    r125495 r125745  
    32163216    AddToImplIncludes("ScriptExecutionContext.h");
    32173217    AddToImplIncludes("V8Binding.h");
    3218     AddToImplIncludes("V8CustomVoidCallback.h");
     3218    AddToImplIncludes("V8Callback.h");
    32193219    AddToImplIncludes("V8Proxy.h");
    32203220
     
    37473747    AddToImplIncludes("ExceptionCode.h") if $type eq "Attr";
    37483748    return 1 if $type eq "Attr";
    3749     return 1 if $type eq "VoidCallback";
    37503749    return 0;
    37513750}
     
    41814180    my $interfaceName = shift;
    41824181
    4183     return "V8CustomVoidCallback" if $interfaceName eq "VoidCallback";
    41844182    return "V8$interfaceName";
    41854183}
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp

    r121381 r125745  
    6868    JSLockHolder lock(m_data->globalObject()->globalData());
    6969
    70     ExecState* exec = m_data->globalObject()->globalExec();
    7170    MarkedArgumentBuffer args;
    7271
  • trunk/Source/WebCore/bindings/scripts/test/V8/V8TestCallback.cpp

    r118722 r125745  
    2929#include "V8Class2.h"
    3030#include "V8Class8.h"
    31 #include "V8CustomVoidCallback.h"
    3231#include "V8DOMStringList.h"
    3332#include "V8Proxy.h"
    3433#include "V8ThisClass.h"
     34#include "V8VoidCallback.h"
    3535#include <wtf/GetPtr.h>
    3636#include <wtf/RefCounted.h>
  • trunk/Source/WebCore/bindings/v8/V8Callback.cpp

    r125744 r125745  
    11/*
    2  * Copyright (C) 2009 Google Inc. All rights reserved.
    3  * 
     2 * Copyright (C) 2012 Google Inc. All rights reserved.
     3 *
    44 * Redistribution and use in source and binary forms, with or without
    55 * modification, are permitted provided that the following conditions are
    66 * met:
    7  * 
     7 *
    88 *     * Redistributions of source code must retain the above copyright
    99 * notice, this list of conditions and the following disclaimer.
     
    1515 * contributors may be used to endorse or promote products derived from
    1616 * this software without specific prior written permission.
    17  * 
     17 *
    1818 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    1919 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     
    3030
    3131#include "config.h"
    32 #include "V8CustomVoidCallback.h"
     32#include "V8Callback.h"
    3333
    34 #include "ScriptExecutionContext.h"
    35 #include "V8Binding.h"
     34#include "Document.h"
    3635#include "V8Proxy.h"
    3736
    3837namespace WebCore {
    39 
    40 V8CustomVoidCallback::V8CustomVoidCallback(v8::Local<v8::Object> callback, ScriptExecutionContext *context)
    41     : m_callback(v8::Persistent<v8::Object>::New(callback))
    42     , m_scriptExecutionContext(context)
    43     , m_worldContext(UseCurrentWorld)
    44 {
    45 }
    46 
    47 V8CustomVoidCallback::~V8CustomVoidCallback()
    48 {
    49     m_callback.Dispose();
    50 }
    51 
    52 void V8CustomVoidCallback::handleEvent()
    53 {
    54     v8::HandleScope handleScope;
    55 
    56     v8::Handle<v8::Context> v8Context = toV8Context(m_scriptExecutionContext.get(), m_worldContext);
    57     if (v8Context.IsEmpty())
    58         return;
    59 
    60     v8::Context::Scope scope(v8Context);
    61 
    62     bool callbackReturnValue = false;
    63     invokeCallback(m_callback, 0, 0, callbackReturnValue, m_scriptExecutionContext.get());
    64 }
    6538
    6639bool invokeCallback(v8::Persistent<v8::Object> callback, int argc, v8::Handle<v8::Value> argv[], bool& callbackReturnValue, ScriptExecutionContext* scriptExecutionContext)
  • trunk/Source/WebCore/bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp

    r118722 r125745  
    3636
    3737#include "ScriptExecutionContext.h"
    38 #include "V8CustomVoidCallback.h"
     38#include "V8Callback.h"
    3939#include "V8Proxy.h"
    4040#include "V8SQLError.h"
  • trunk/Source/WebCore/bindings/v8/custom/V8MutationCallbackCustom.cpp

    r122159 r125745  
    3737#include "ScriptExecutionContext.h"
    3838#include "V8Binding.h"
    39 #include "V8CustomVoidCallback.h"
     39#include "V8Callback.h"
    4040#include "V8MutationObserver.h"
    4141#include "V8MutationRecord.h"
  • trunk/Source/WebCore/bindings/v8/custom/V8NotificationCenterCustom.cpp

    r125495 r125745  
    3939#include "NotificationCenter.h"
    4040#include "V8Binding.h"
    41 #include "V8CustomVoidCallback.h"
    4241#include "V8EventListener.h"
    4342#include "V8Notification.h"
    4443#include "V8Proxy.h"
    4544#include "V8Utilities.h"
     45#include "V8VoidCallback.h"
    4646#include "WorkerContext.h"
    4747
     
    9393        return setDOMException(NOT_SUPPORTED_ERR, args.GetIsolate());
    9494
    95     RefPtr<V8CustomVoidCallback> callback;
     95    RefPtr<V8VoidCallback> callback;
    9696    if (args.Length() > 0) {
    9797        if (!args[0]->IsObject())
    9898            return throwTypeError("Callback must be of valid type.", args.GetIsolate());
    9999 
    100         callback = V8CustomVoidCallback::create(args[0], context);
     100        callback = V8VoidCallback::create(args[0], context);
    101101    }
    102102
  • trunk/Source/WebCore/html/VoidCallback.h

    r34366 r125745  
    3434public:
    3535    virtual ~VoidCallback() { }
    36    
    37     virtual void handleEvent() = 0;
    38    
    39 protected:
    40     VoidCallback() {}
     36    virtual bool handleEvent() = 0;
    4137};
    4238
  • trunk/Source/WebCore/html/VoidCallback.idl

    r106737 r125745  
    2626module html {
    2727    interface [
    28         JSCustomToNativeObject,
    29         OmitConstructor
     28        Callback
    3029    ] VoidCallback {
    31         void handleEvent();
     30        boolean handleEvent();
    3231    };
    3332}
  • trunk/Source/WebCore/inspector/InspectorDatabaseAgent.cpp

    r116740 r125745  
    216216    virtual ~TransactionSuccessCallback() { }
    217217
    218     virtual void handleEvent() { }
     218    virtual bool handleEvent() { return false; }
    219219
    220220private:
Note: See TracChangeset for help on using the changeset viewer.