Changeset 141296 in webkit
- Timestamp:
- Jan 30, 2013 12:22:45 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 2 deleted
- 15 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r141216 r141296 375 375 dom/MessagePort.idl 376 376 dom/MouseEvent.idl 377 dom/MutationCallback.idl378 377 dom/MutationEvent.idl 379 378 dom/MutationObserver.idl -
trunk/Source/WebCore/ChangeLog
r141292 r141296 1 2013-01-30 Adam Klein <adamk@chromium.org> 2 3 [JSC] MutationObservers should not create circular, leaky references 4 https://bugs.webkit.org/show_bug.cgi?id=93661 5 6 Reviewed by Adam Barth. 7 8 This patch makes JSMutationCallback an entirely-custom class that 9 holds a weak reference to the function it wraps. To keep that function 10 alive, it also adds a PrivateName between the JSMutationObserver 11 wrapper and the function when the MutationObserver is constructed. 12 13 Unlike the generated JSC callbacks, JSMutationCallback doesn't hold a 14 reference to the JSDOMGlobalObject, instead holding the 15 DOMWrapperWorld it was created in. As an ActiveDOMCallback, it also 16 holds a weak pointer to ScriptExecutionContext (via ContextDestructionObserver). 17 18 It's not clear to me how to write a test for this. There's an existing 19 manual test in ManualTests/leak-cycle-observer-wrapper.html which may 20 be of use but which doesn't seem to currently give meaningful output. 21 22 * CMakeLists.txt: 23 * DerivedSources.cpp: 24 * DerivedSources.make: 25 * DerivedSources.pri: 26 * GNUmakefile.list.am: 27 * Target.pri: 28 * UseJSC.cmake: 29 * WebCore.gypi: 30 * WebCore.vcproj/WebCore.vcproj: 31 * WebCore.vcxproj/WebCore.vcxproj: 32 * WebCore.vcxproj/WebCore.vcxproj.filters: 33 * WebCore.xcodeproj/project.pbxproj: 34 * bindings/js/JSBindingsAllInOne.cpp: 35 * bindings/js/JSMutationCallback.cpp: Added. 36 (WebCore): 37 (WebCore::JSMutationCallback::JSMutationCallback): 38 (WebCore::JSMutationCallback::~JSMutationCallback): 39 (WebCore::JSMutationCallback::handleEvent): 40 * bindings/js/JSMutationCallback.h: Added. 41 (WebCore): 42 (JSMutationCallback): Instead of a JSCallbackData, hold a weak ref to the callback and a RefPtr to the DOMWrapperWorld. 43 (WebCore::JSMutationCallback::create): 44 * bindings/js/JSMutationCallbackCustom.cpp: Removed. 45 * bindings/js/JSMutationObserverCustom.cpp: 46 (WebCore::JSMutationObserverConstructor::constructJSMutationObserver): 47 When constructing the JSMutationObserver, add a reference via PrivateName from the MutationObserver to the callback function. 48 * dom/MutationCallback.idl: Removed. Neither JSC nor V8 use an IDL file to generate this class any more. 49 1 50 2013-01-30 Elliott Sprehn <esprehn@chromium.org> 2 51 -
trunk/Source/WebCore/DerivedSources.cpp
r140997 r141296 255 255 #include "JSMetadataCallback.cpp" 256 256 #include "JSMouseEvent.cpp" 257 #include "JSMutationCallback.cpp"258 257 #include "JSMutationEvent.cpp" 259 258 #include "JSMutationObserver.cpp" -
trunk/Source/WebCore/DerivedSources.make
r141013 r141296 242 242 $(WebCore)/dom/MessagePort.idl \ 243 243 $(WebCore)/dom/MouseEvent.idl \ 244 $(WebCore)/dom/MutationCallback.idl \245 244 $(WebCore)/dom/MutationEvent.idl \ 246 245 $(WebCore)/dom/MutationObserver.idl \ -
trunk/Source/WebCore/DerivedSources.pri
r140997 r141296 255 255 $$PWD/dom/MessageEvent.idl \ 256 256 $$PWD/dom/MessagePort.idl \ 257 $$PWD/dom/MutationCallback.idl \258 257 $$PWD/dom/MutationEvent.idl \ 259 258 $$PWD/dom/MutationObserver.idl \ -
trunk/Source/WebCore/GNUmakefile.list.am
r141291 r141296 540 540 DerivedSources/WebCore/JSMouseEvent.cpp \ 541 541 DerivedSources/WebCore/JSMouseEvent.h \ 542 DerivedSources/WebCore/JSMutationCallback.cpp \543 DerivedSources/WebCore/JSMutationCallback.h \544 542 DerivedSources/WebCore/JSMutationEvent.cpp \ 545 543 DerivedSources/WebCore/JSMutationEvent.h \ … … 1389 1387 $(WebCore)/dom/MessagePort.idl \ 1390 1388 $(WebCore)/dom/MouseEvent.idl \ 1391 $(WebCore)/dom/MutationCallback.idl \1392 1389 $(WebCore)/dom/MutationEvent.idl \ 1393 1390 $(WebCore)/dom/MutationObserver.idl \ … … 2383 2380 Source/WebCore/bindings/js/JSMessagePortCustom.h \ 2384 2381 Source/WebCore/bindings/js/JSMicroDataItemValueCustom.cpp \ 2385 Source/WebCore/bindings/js/JSMutationCallbackCustom.cpp \ 2382 Source/WebCore/bindings/js/JSMutationCallback.cpp \ 2383 Source/WebCore/bindings/js/JSMutationCallback.h \ 2386 2384 Source/WebCore/bindings/js/JSMutationObserverCustom.cpp \ 2387 2385 Source/WebCore/bindings/js/JSNamedNodeMapCustom.cpp \ -
trunk/Source/WebCore/Target.pri
r141255 r141296 154 154 bindings/js/JSMessagePortCustom.h \ 155 155 bindings/js/JSMicroDataItemValueCustom.cpp \ 156 bindings/js/JSMutationCallback Custom.cpp \156 bindings/js/JSMutationCallback.cpp \ 157 157 bindings/js/JSMutationObserverCustom.cpp \ 158 158 bindings/js/JSNamedNodeMapCustom.cpp \ … … 1367 1367 bindings/js/JSLazyEventListener.h \ 1368 1368 bindings/js/JSLocationCustom.h \ 1369 bindings/js/JSMutationCallback.h \ 1369 1370 bindings/js/JSNodeCustom.h \ 1370 1371 bindings/js/JSNodeFilterCondition.h \ -
trunk/Source/WebCore/UseJSC.cmake
r141063 r141296 114 114 bindings/js/JSMessagePortCustom.cpp 115 115 bindings/js/JSMicroDataItemValueCustom.cpp 116 bindings/js/JSMutationCallback Custom.cpp116 bindings/js/JSMutationCallback.cpp 117 117 bindings/js/JSMutationObserverCustom.cpp 118 118 bindings/js/JSNamedNodeMapCustom.cpp -
trunk/Source/WebCore/WebCore.gypi
r141291 r141296 6568 6568 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMouseEvent.cpp', 6569 6569 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMouseEvent.h', 6570 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationCallback.cpp',6571 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationCallback.h',6572 6570 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationEvent.cpp', 6573 6571 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationEvent.h', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r141272 r141296 11735 11735 </File> 11736 11736 <File 11737 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.cpp"11738 >11739 <FileConfiguration11740 Name="Debug|Win32"11741 ExcludedFromBuild="true"11742 >11743 <Tool11744 Name="VCCLCompilerTool"11745 />11746 </FileConfiguration>11747 <FileConfiguration11748 Name="Release|Win32"11749 ExcludedFromBuild="true"11750 >11751 <Tool11752 Name="VCCLCompilerTool"11753 />11754 </FileConfiguration>11755 <FileConfiguration11756 Name="Debug_Cairo_CFLite|Win32"11757 ExcludedFromBuild="true"11758 >11759 <Tool11760 Name="VCCLCompilerTool"11761 />11762 </FileConfiguration>11763 <FileConfiguration11764 Name="Release_Cairo_CFLite|Win32"11765 ExcludedFromBuild="true"11766 >11767 <Tool11768 Name="VCCLCompilerTool"11769 />11770 </FileConfiguration>11771 <FileConfiguration11772 Name="Debug_All|Win32"11773 ExcludedFromBuild="true"11774 >11775 <Tool11776 Name="VCCLCompilerTool"11777 />11778 </FileConfiguration>11779 <FileConfiguration11780 Name="Production|Win32"11781 ExcludedFromBuild="true"11782 >11783 <Tool11784 Name="VCCLCompilerTool"11785 />11786 </FileConfiguration>11787 </File>11788 <File11789 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.h"11790 >11791 </File>11792 <File11793 11737 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationEvent.cpp" 11794 11738 > … … 70398 70342 </File> 70399 70343 <File 70400 RelativePath="..\bindings\js\JSMutationCallback Custom.cpp"70344 RelativePath="..\bindings\js\JSMutationCallback.cpp" 70401 70345 > 70402 70346 <FileConfiguration … … 70448 70392 /> 70449 70393 </FileConfiguration> 70394 </File> 70395 <File 70396 RelativePath="..\bindings\js\JSMutationCallback.h" 70397 > 70450 70398 </File> 70451 70399 <File -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r141219 r141296 872 872 </ClCompile> 873 873 <ClCompile Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMouseEvent.cpp"> 874 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>875 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>876 </ClCompile>877 <ClCompile Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.cpp">878 874 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 879 875 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> … … 5298 5294 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> 5299 5295 </ClCompile> 5300 <ClCompile Include="..\bindings\js\JSMutationCallback Custom.cpp">5296 <ClCompile Include="..\bindings\js\JSMutationCallback.cpp"> 5301 5297 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> 5302 5298 <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild> … … 6023 6019 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMicroDataItemValue.h" /> 6024 6020 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMouseEvent.h" /> 6025 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.h" />6026 6021 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationEvent.h" /> 6027 6022 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationObserver.h" /> … … 8007 8002 <ClInclude Include="..\bindings\js\JSMainThreadExecState.h" /> 8008 8003 <ClInclude Include="..\bindings\js\JSMessagePortCustom.h" /> 8004 <ClInclude Include="..\bindings\js\JSMutationCallback.h" /> 8009 8005 <ClInclude Include="..\bindings\js\JSNodeCustom.h" /> 8010 8006 <ClInclude Include="..\bindings\js\JSNodeFilterCondition.h" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r141219 r141296 943 943 <Filter>DerivedSources</Filter> 944 944 </ClCompile> 945 <ClCompile Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.cpp">946 <Filter>DerivedSources</Filter>947 </ClCompile>948 945 <ClCompile Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationEvent.cpp"> 949 946 <Filter>DerivedSources</Filter> … … 6025 6022 <Filter>bindings\js</Filter> 6026 6023 </ClCompile> 6027 <ClCompile Include="..\bindings\js\JSMutationCallback Custom.cpp">6024 <ClCompile Include="..\bindings\js\JSMutationCallback.cpp"> 6028 6025 <Filter>bindings\js</Filter> 6029 6026 </ClCompile> … … 7449 7446 <Filter>DerivedSources</Filter> 7450 7447 </ClInclude> 7451 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.h">7452 <Filter>DerivedSources</Filter>7453 </ClInclude>7454 7448 <ClInclude Include="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationEvent.h"> 7455 7449 <Filter>DerivedSources</Filter> … … 12778 12772 </ClInclude> 12779 12773 <ClInclude Include="..\bindings\js\JSMessagePortCustom.h"> 12774 <Filter>bindings\js</Filter> 12775 </ClInclude> 12776 <ClInclude Include="..\bindings\js\JSMutationCallback.h"> 12780 12777 <Filter>bindings\js</Filter> 12781 12778 </ClInclude> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r141219 r141296 5951 5951 C6F0900E14327B6100685849 /* MutationObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0900514327B6100685849 /* MutationObserver.cpp */; }; 5952 5952 C6F0900F14327B6100685849 /* MutationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900614327B6100685849 /* MutationObserver.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5953 C6F0902814327D4F00685849 /* JSMutationCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0902014327D4F00685849 /* JSMutationCallback.cpp */; };5954 C6F0902914327D4F00685849 /* JSMutationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0902114327D4F00685849 /* JSMutationCallback.h */; };5955 5953 C6F0902C14327D4F00685849 /* JSMutationObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0902414327D4F00685849 /* JSMutationObserver.cpp */; }; 5956 5954 C6F0902D14327D4F00685849 /* JSMutationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0902514327D4F00685849 /* JSMutationObserver.h */; }; 5957 5955 C6F0917F143A2BB900685849 /* JSMutationObserverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0917E143A2BB900685849 /* JSMutationObserverCustom.cpp */; }; 5958 C6F09185143A6C3B00685849 /* JSMutationCallbackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */; };5959 5956 C6F41047130C6E8900393DE4 /* EntryBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F41046130C6E8900393DE4 /* EntryBase.cpp */; }; 5957 C6F420A216B7164E0052A9F2 /* JSMutationCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F420A016B7164E0052A9F2 /* JSMutationCallback.cpp */; }; 5958 C6F420A316B7164E0052A9F2 /* JSMutationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F420A116B7164E0052A9F2 /* JSMutationCallback.h */; }; 5960 5959 CA3BF67C10D99BAE00E6CE53 /* ScrollAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CA3BF67B10D99BAE00E6CE53 /* ScrollAnimator.cpp */; }; 5961 5960 CA3BF67E10D99BAE00E6CE53 /* ScrollAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = CA3BF67D10D99BAE00E6CE53 /* ScrollAnimator.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 13486 13485 C6F08FC81431000D00685849 /* JSMutationRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationRecord.h; sourceTree = "<group>"; }; 13487 13486 C6F0900114327B6100685849 /* MutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutationCallback.h; sourceTree = "<group>"; }; 13488 C6F0900214327B6100685849 /* MutationCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MutationCallback.idl; sourceTree = "<group>"; };13489 13487 C6F0900514327B6100685849 /* MutationObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MutationObserver.cpp; sourceTree = "<group>"; }; 13490 13488 C6F0900614327B6100685849 /* MutationObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutationObserver.h; sourceTree = "<group>"; }; 13491 13489 C6F0900714327B6100685849 /* MutationObserver.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MutationObserver.idl; sourceTree = "<group>"; }; 13492 C6F0902014327D4F00685849 /* JSMutationCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallback.cpp; sourceTree = "<group>"; };13493 C6F0902114327D4F00685849 /* JSMutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationCallback.h; sourceTree = "<group>"; };13494 13490 C6F0902414327D4F00685849 /* JSMutationObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationObserver.cpp; sourceTree = "<group>"; }; 13495 13491 C6F0902514327D4F00685849 /* JSMutationObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationObserver.h; sourceTree = "<group>"; }; 13496 13492 C6F0917E143A2BB900685849 /* JSMutationObserverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationObserverCustom.cpp; sourceTree = "<group>"; }; 13497 C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallbackCustom.cpp; sourceTree = "<group>"; };13498 13493 C6F41046130C6E8900393DE4 /* EntryBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EntryBase.cpp; path = Modules/filesystem/EntryBase.cpp; sourceTree = "<group>"; }; 13494 C6F420A016B7164E0052A9F2 /* JSMutationCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallback.cpp; sourceTree = "<group>"; }; 13495 C6F420A116B7164E0052A9F2 /* JSMutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationCallback.h; sourceTree = "<group>"; }; 13499 13496 CA3BF67B10D99BAE00E6CE53 /* ScrollAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollAnimator.cpp; sourceTree = "<group>"; }; 13500 13497 CA3BF67D10D99BAE00E6CE53 /* ScrollAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimator.h; sourceTree = "<group>"; }; … … 19461 19458 FE80DA610E9C4703000D6F75 /* JSGeoposition.cpp */, 19462 19459 FE80DA620E9C4703000D6F75 /* JSGeoposition.h */, 19463 C6F0902014327D4F00685849 /* JSMutationCallback.cpp */,19464 C6F0902114327D4F00685849 /* JSMutationCallback.h */,19465 19460 C6F0902414327D4F00685849 /* JSMutationObserver.cpp */, 19466 19461 C6F0902514327D4F00685849 /* JSMutationObserver.h */, … … 20787 20782 8F934D841189F1EE00508D5D /* JSMainThreadExecState.cpp */, 20788 20783 8F934D831189F1EE00508D5D /* JSMainThreadExecState.h */, 20784 C6F420A016B7164E0052A9F2 /* JSMutationCallback.cpp */, 20785 C6F420A116B7164E0052A9F2 /* JSMutationCallback.h */, 20789 20786 93B70D4F09EB0C7C009D8468 /* JSPluginElementFunctions.cpp */, 20790 20787 93B70D5009EB0C7C009D8468 /* JSPluginElementFunctions.h */, … … 20972 20969 41F584C6104652CB009CAA64 /* JSMessagePortCustom.h */, 20973 20970 1059457215B42953004D37FD /* JSMicroDataItemValueCustom.cpp */, 20974 C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */,20975 20971 C6F0917E143A2BB900685849 /* JSMutationObserverCustom.cpp */, 20976 20972 BCD9C25F0C17AA67005C90A2 /* JSNamedNodeMapCustom.cpp */, … … 22405 22401 85031B320A44EFC700F992E0 /* MouseRelatedEvent.h */, 22406 22402 C6F0900114327B6100685849 /* MutationCallback.h */, 22407 C6F0900214327B6100685849 /* MutationCallback.idl */,22408 22403 85031B330A44EFC700F992E0 /* MutationEvent.cpp */, 22409 22404 85031B340A44EFC700F992E0 /* MutationEvent.h */, … … 24777 24772 1059457A15B42A43004D37FD /* JSMicroDataItemValue.h in Headers */, 24778 24773 A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */, 24779 C6F 0902914327D4F00685849/* JSMutationCallback.h in Headers */,24774 C6F420A316B7164E0052A9F2 /* JSMutationCallback.h in Headers */, 24780 24775 65DF31FC09D1CC60000BE325 /* JSMutationEvent.h in Headers */, 24781 24776 C6F0902D14327D4F00685849 /* JSMutationObserver.h in Headers */, … … 28116 28111 1059457315B42953004D37FD /* JSMicroDataItemValueCustom.cpp in Sources */, 28117 28112 A86629D209DA2B48009633A5 /* JSMouseEvent.cpp in Sources */, 28118 C6F0902814327D4F00685849 /* JSMutationCallback.cpp in Sources */, 28119 C6F09185143A6C3B00685849 /* JSMutationCallbackCustom.cpp in Sources */, 28113 C6F420A216B7164E0052A9F2 /* JSMutationCallback.cpp in Sources */, 28120 28114 65DF31FB09D1CC60000BE325 /* JSMutationEvent.cpp in Sources */, 28121 28115 C6F0902C14327D4F00685849 /* JSMutationObserver.cpp in Sources */, -
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
r141063 r141296 119 119 #include "JSMessagePortCustom.cpp" 120 120 #include "JSMicroDataItemValueCustom.cpp" 121 #include "JSMutationCallback Custom.cpp"121 #include "JSMutationCallback.cpp" 122 122 #include "JSMutationObserverCustom.cpp" 123 123 #include "JSNamedNodeMapCustom.cpp" -
trunk/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
r138811 r141296 36 36 #include "MutationObserver.h" 37 37 #include <runtime/Error.h> 38 #include <runtime/PrivateName.h> 38 39 39 40 using namespace JSC; … … 53 54 54 55 JSMutationObserverConstructor* jsConstructor = jsCast<JSMutationObserverConstructor*>(exec->callee()); 55 RefPtr<MutationCallback> callback = JSMutationCallback::create(object, jsConstructor->globalObject()); 56 return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), MutationObserver::create(callback.release())))); 56 RefPtr<JSMutationCallback> callback = JSMutationCallback::create(object, jsConstructor->globalObject()); 57 JSObject* jsObserver = asObject(toJS(exec, jsConstructor->globalObject(), MutationObserver::create(callback.release()))); 58 PrivateName propertyName; 59 jsObserver->putDirect(jsConstructor->globalObject()->globalData(), propertyName, object); 60 return JSValue::encode(jsObserver); 57 61 } 58 62
Note: See TracChangeset
for help on using the changeset viewer.