LayoutTests/ChangeLog

 12011-09-27 Adam Klein <adamk@chromium.org>
 2
 3 [MutationObservers] Add stub implementation of WebKitMutationObserver
 4 https://bugs.webkit.org/show_bug.cgi?id=68949
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Add basic tests and skip them in all ports for now.
 9
 10 * fast/mutation/mutation-observer-constructors.html: Added.
 11 * fast/mutation/mutation-observer-constructors-expected.txt: Added.
 12 * fast/mutation/observe-exceptions.html: Added.
 13 * fast/mutation/observe-exceptions-expected.txt: Added.
 14 * platform/chromium/test_expectations.txt:
 15 * platform/gtk/Skipped:
 16 * platform/mac/Skipped:
 17 * platform/qt/Skipped:
 18 * platform/win/Skipped:
 19
1202011-09-27 Mihai Parparita <mihaip@chromium.org>
221
322 Chromium test expectations update.

LayoutTests/fast/mutation/mutation-observer-constructor-expected.txt

 1Test the constructor of WebKitMutationObserver
 2
 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 4
 5
 6PASS window.WebKitMutationObserver is non-null.
 7PASS typeof WebKitMutationObserver.prototype.observe is "function"
 8PASS typeof WebKitMutationObserver.prototype.disconnect is "function"
 9PASS typeof observer.observe is "function"
 10PASS typeof observer.disconnect is "function"
 11PASS successfullyParsed is true
 12
 13TEST COMPLETE
 14

LayoutTests/fast/mutation/mutation-observer-constructor.html

 1<!DOCTYPE html>
 2<html>
 3<head>
 4<meta charset="utf-8">
 5<link rel="stylesheet" href="../js/resources/js-test-style.css">
 6<script src="../js/resources/js-test-pre.js"></script>
 7<title></title>
 8</head>
 9<body>
 10<p id=description></p>
 11<div id="console"></div>
 12<script>
 13
 14function runTest() {
 15 shouldBeNonNull('window.WebKitMutationObserver');
 16 shouldBeEqualToString('typeof WebKitMutationObserver.prototype.observe', 'function');
 17 shouldBeEqualToString('typeof WebKitMutationObserver.prototype.disconnect', 'function');
 18 window.observer = new WebKitMutationObserver(function(mutations) { });
 19 shouldBeEqualToString('typeof observer.observe', 'function');
 20 shouldBeEqualToString('typeof observer.disconnect', 'function');
 21}
 22
 23description('Test the constructor of WebKitMutationObserver');
 24
 25if (!window.WebKitMutationObserver)
 26 testFailed('This test requires ENABLE(MUTATION_OBSERVERS)');
 27else
 28 runTest();
 29
 30var successfullyParsed = true;
 31
 32</script>
 33<script src="../js/resources/js-test-post.js"></script>
 34</body>
 35</html>

LayoutTests/fast/mutation/observe-exceptions-expected.txt

 1Test that WebKitMutationObserver.observe throws exceptions appropriately
 2
 3On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 4
 5
 6PASS observer.observe() threw exception TypeError: Not enough arguments.
 7PASS observer.observe(null) threw exception TypeError: Not enough arguments.
 8PASS observer.observe(undefined) threw exception TypeError: Not enough arguments.
 9PASS observer.observe(document.body) threw exception TypeError: Not enough arguments.
 10PASS observer.observe(document.body, null) threw exception TypeError: Options must be an object.
 11PASS observer.observe(document.body, undefined) threw exception TypeError: Options must be an object.
 12PASS successfullyParsed is true
 13
 14TEST COMPLETE
 15

LayoutTests/fast/mutation/observe-exceptions.html

 1<!DOCTYPE html>
 2<html>
 3<head>
 4<meta charset="utf-8">
 5<link rel="stylesheet" href="../js/resources/js-test-style.css">
 6<script src="../js/resources/js-test-pre.js"></script>
 7<title></title>
 8</head>
 9<body>
 10<p id=description></p>
 11<div id="console"></div>
 12<script>
 13
 14function runTest() {
 15 window.observer = new WebKitMutationObserver(function(mutations) { });
 16 shouldThrow('observer.observe()');
 17 shouldThrow('observer.observe(null)');
 18 shouldThrow('observer.observe(undefined)');
 19 shouldThrow('observer.observe(document.body)');
 20 shouldThrow('observer.observe(document.body, null)');
 21 shouldThrow('observer.observe(document.body, undefined)');
 22}
 23
 24description('Test that WebKitMutationObserver.observe throws exceptions appropriately');
 25
 26if (!window.WebKitMutationObserver)
 27 testFailed('This test requires ENABLE(MUTATION_OBSERVERS)');
 28else
 29 runTest();
 30
 31var successfullyParsed = true;
 32
 33</script>
 34<script src="../js/resources/js-test-post.js"></script>
 35</body>
 36</html>

LayoutTests/platform/chromium/test_expectations.txt

@@BUGWK57311 SKIP : fast/exclusions = PASS
33153315// CSS Filters support not yet enabled
33163316BUGWK68469 SKIP : css3/filters = PASS
33173317
 3318// MutationObservers not yet enabled.
 3319BUGWK68729 SKIP : fast/mutation = PASS
 3320
33183321BUGWK68087 WIN MAC GPU GPU-CG : compositing/flat-with-transformed-child.html = IMAGE
33193322BUGWK68087 WIN MAC GPU GPU-CG : platform/chromium/compositing/3d-corners.html = IMAGE
33203323BUGWK68087 WIN MAC GPU GPU-CG : platform/chromium/compositing/backface-visibility-transformed.html = IMAGE

LayoutTests/platform/gtk/Skipped

@@webaudio
452452# CSS Filters is disabled
453453css3/filters
454454
 455# MutationObservers are net yet enabled. http://webkit.org/b/68729
 456fast/mutation
 457
455458###############################################################################
456459# TESTS FAILING
457460###############################################################################

LayoutTests/platform/mac/Skipped

@@compositing/rtl/rtl-iframe-relative.html
396396# For now, Web Audio API is disabled
397397webaudio/
398398
 399# MutationObservers are net yet enabled. http://webkit.org/b/68729
 400fast/mutation
 401
399402# Tests for WebVTT parser for <track>. Feature is not yet functional.
400403# https://bugs.webkit.org/show_bug.cgi?id=43668
401404media/track/

LayoutTests/platform/qt/Skipped

@@fast/regions
146146# CSS Exclusions support not yet enabled. http://webkit.org/b/57311
147147fast/exclusions
148148
 149# ENABLE(MUTATION_OBSERVERS) is not yet enabled. http://webkit.org/b/68729
 150fast/mutation
 151
149152# USE(V8)
150153
151154# v8 i18n extension.

LayoutTests/platform/win/Skipped

@@css3/selectors3
13891389# For now, Web Audio API is disabled
13901390webaudio/
13911391
 1392# MutationObservers are net yet enabled. http://webkit.org/b/68729
 1393fast/mutation
 1394
13921395# Tests for WebVTT parser for <track>. Feature is not yet functional.
13931396# https://bugs.webkit.org/show_bug.cgi?id=43668
13941397media/track/

Source/WebCore/CMakeLists.txt

@@SET(WebCore_IDL_FILES
162162 dom/MessageEvent.idl
163163 dom/MessagePort.idl
164164 dom/MouseEvent.idl
 165 dom/MutationCallback.idl
165166 dom/MutationEvent.idl
166167 dom/MutationRecord.idl
167168 dom/NamedNodeMap.idl

@@SET(WebCore_IDL_FILES
185186 dom/TreeWalker.idl
186187 dom/UIEvent.idl
187188 dom/WebKitAnimationEvent.idl
 189 dom/WebKitMutationObserver.idl
 190 dom/WebKitMutationObserverOptions.idl
188191 dom/WebKitTransitionEvent.idl
189192 dom/WheelEvent.idl
190193

@@SET(WebCore_SOURCES
601604 dom/UserTypingGestureIndicator.cpp
602605 dom/ViewportArguments.cpp
603606 dom/WebKitAnimationEvent.cpp
 607 dom/WebKitMutationObserver.cpp
604608 dom/WebKitTransitionEvent.cpp
605609 dom/WheelEvent.cpp
606610 dom/WindowEventContext.cpp

Source/WebCore/ChangeLog

 12011-09-27 Adam Klein <adamk@chromium.org>
 2
 3 [MutationObservers] Add stub implementation of WebKitMutationObserver
 4 https://bugs.webkit.org/show_bug.cgi?id=68949
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 See https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug.
 9
 10 This patch adds a stub WebKitMutationObserver and its supporting classes
 11 MutationCallback and MutationObserverOptions.
 12 No implementation is provided for the all-important observe() and
 13 disconnect() methods.
 14
 15 Note that WebKitMutationObserver is vendor-prefixed since it has a
 16 constructor exposed on DOMWindow. None of the rest of the API needs
 17 prefixing, as it's only available via a call through a MutationObserver
 18 callback (created by instantiating WebKitMutationObserver).
 19
 20 Given the number of files required to get just the stub up and running,
 21 it seems reasonable to leave the actual implementation for the next
 22 patch (or more likely several patches). I've left FIXMEs in all the places
 23 that'll need augmentation.
 24
 25 Tests: fast/mutation/mutation-observer-constructor.html
 26 fast/mutation/observe-exceptions.html
 27
 28 * CMakeLists.txt:
 29 * DerivedSources.cpp:
 30 * DerivedSources.make:
 31 * GNUmakefile.list.am:
 32 * UseJSC.cmake:
 33 * WebCore.gypi:
 34 * WebCore.pro:
 35 * WebCore.vcproj/WebCore.vcproj:
 36 * WebCore.xcodeproj/project.pbxproj:
 37 * bindings/js/JSMutationCallbackCustom.cpp: Added.
 38 (WebCore::JSMutationCallback::handleEvent):
 39 * bindings/js/JSWebKitMutationObserverCustom.cpp: Added.
 40 * bindings/v8/custom/V8MutationCallbackCustom.cpp: Added.
 41 (WebCore::V8MutationCallback::handleEvent):
 42 * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp: Added.
 43 * dom/MutationCallback.h: Added.
 44 (WebCore::MutationCallback::~MutationCallback):
 45 * dom/MutationCallback.idl: Added.
 46 * dom/MutationObserverOptions.h: Added.
 47 (WebCore::MutationObserverOptions::create):
 48 (WebCore::MutationObserverOptions::childList):
 49 (WebCore::MutationObserverOptions::setChildList):
 50 (WebCore::MutationObserverOptions::attributes):
 51 (WebCore::MutationObserverOptions::setAttributes):
 52 (WebCore::MutationObserverOptions::characterData):
 53 (WebCore::MutationObserverOptions::setCharacterData):
 54 (WebCore::MutationObserverOptions::subtree):
 55 (WebCore::MutationObserverOptions::setSubtree):
 56 (WebCore::MutationObserverOptions::attributeOldValue):
 57 (WebCore::MutationObserverOptions::setAttributeOldValue):
 58 (WebCore::MutationObserverOptions::characterDataOldValue):
 59 (WebCore::MutationObserverOptions::setCharacterDataOldValue):
 60 (WebCore::MutationObserverOptions::MutationObserverOptions):
 61 * dom/WebKitMutationObserver.cpp: Added.
 62 (WebCore::WebKitMutationObserver::WebKitMutationObserver):
 63 (WebCore::WebKitMutationObserver::observe):
 64 (WebCore::WebKitMutationObserver::disconnect):
 65 * dom/WebKitMutationObserver.h: Added.
 66 (WebCore::WebKitMutationObserver::create):
 67 * dom/WebKitMutationObserver.idl: Added.
 68 * page/DOMWindow.idl:
 69
1702011-09-27 Sheriff Bot <webkit.review.bot@gmail.com>
271
372 Unreviewed, rolling out r96139.

Source/WebCore/DerivedSources.cpp

244244#include "JSMetadata.cpp"
245245#include "JSMetadataCallback.cpp"
246246#include "JSMouseEvent.cpp"
 247#include "JSMutationCallback.cpp"
247248#include "JSMutationEvent.cpp"
248249#include "JSMutationRecord.cpp"
249250#include "JSNamedNodeMap.cpp"

465466#include "JSWebKitCSSKeyframesRule.cpp"
466467#include "JSWebKitCSSTransformValue.cpp"
467468#include "JSWebKitCSSMatrix.cpp"
 469#include "JSWebKitMutationObserver.cpp"
468470#include "JSWebKitPoint.cpp"
469471#include "JSWebKitTransitionEvent.cpp"
470472#include "JSWebSocket.cpp"

Source/WebCore/DerivedSources.make

@@DOM_CLASSES = \
297297 Metadata \
298298 MetadataCallback \
299299 MouseEvent \
 300 MutationCallback \
300301 MutationEvent \
301302 MutationRecord \
302303 NamedNodeMap \

@@DOM_CLASSES = \
552553 WebKitCSSTransformValue \
553554 WebKitFlags \
554555 WebKitLoseContext \
 556 WebKitMutationObserver \
555557 WebKitPoint \
556558 WebKitTransitionEvent \
557559 WebSocket \

Source/WebCore/GNUmakefile.list.am

@@webcore_sources += \
779779 Source/WebCore/bindings/js/JSMessageEventCustom.cpp \
780780 Source/WebCore/bindings/js/JSMessagePortCustom.cpp \
781781 Source/WebCore/bindings/js/JSMessagePortCustom.h \
 782 Source/WebCore/bindings/js/JSMutationCallbackCustom.cpp \
782783 Source/WebCore/bindings/js/JSNamedNodeMapCustom.cpp \
783784 Source/WebCore/bindings/js/JSNavigatorCustom.cpp \
784785 Source/WebCore/bindings/js/JSNodeCustom.cpp \

@@webcore_sources += \
820821 Source/WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp \
821822 Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp \
822823 Source/WebCore/bindings/js/JSWebKitCSSMatrixCustom.cpp \
 824 Source/WebCore/bindings/js/JSWebKitMutationObserverCustom.cpp \
823825 Source/WebCore/bindings/js/JSWebKitPointCustom.cpp \
824826 Source/WebCore/bindings/js/JSWebSocketCustom.cpp \
825827 Source/WebCore/bindings/js/JSWorkerContextBase.cpp \

@@webcore_sources += \
12221224 Source/WebCore/dom/MouseEvent.h \
12231225 Source/WebCore/dom/MouseRelatedEvent.cpp \
12241226 Source/WebCore/dom/MouseRelatedEvent.h \
 1227 Source/WebCore/dom/MutationCallback.h \
12251228 Source/WebCore/dom/MutationEvent.cpp \
12261229 Source/WebCore/dom/MutationEvent.h \
12271230 Source/WebCore/dom/MutationRecord.cpp \

@@webcore_sources += \
13351338 Source/WebCore/dom/ViewportArguments.h \
13361339 Source/WebCore/dom/WebKitAnimationEvent.cpp \
13371340 Source/WebCore/dom/WebKitAnimationEvent.h \
 1341 Source/WebCore/dom/WebKitMutationObserver.cpp \
 1342 Source/WebCore/dom/WebKitMutationObserver.h \
 1343 Source/WebCore/dom/WebKitMutationObserverOptions.h \
13381344 Source/WebCore/dom/WebKitTransitionEvent.cpp \
13391345 Source/WebCore/dom/WebKitTransitionEvent.h \
13401346 Source/WebCore/dom/WheelEvent.cpp \

Source/WebCore/UseJSC.cmake

@@LIST(APPEND WebCore_SOURCES
9595 bindings/js/JSMessageChannelCustom.cpp
9696 bindings/js/JSMessageEventCustom.cpp
9797 bindings/js/JSMessagePortCustom.cpp
 98 bindings/js/JSMutationCallbackCustom.cpp
9899 bindings/js/JSNamedNodeMapCustom.cpp
99100 bindings/js/JSNavigatorCustom.cpp
100101 bindings/js/JSNodeCustom.cpp

@@LIST(APPEND WebCore_SOURCES
122123 bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp
123124 bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp
124125 bindings/js/JSWebKitCSSMatrixCustom.cpp
 126 bindings/js/JSWebKitMutationObserverCustom.cpp
125127 bindings/js/JSWebKitPointCustom.cpp
126128 bindings/js/JSXMLHttpRequestCustom.cpp
127129 bindings/js/JSXMLHttpRequestUploadCustom.cpp

Source/WebCore/WebCore.gypi

11851185 'dom/MessageEvent.idl',
11861186 'dom/MessagePort.idl',
11871187 'dom/MouseEvent.idl',
 1188 'dom/MutationCallback.idl',
11881189 'dom/MutationEvent.idl',
11891190 'dom/MutationRecord.idl',
11901191 'dom/NamedNodeMap.idl',

12101211 'dom/TreeWalker.idl',
12111212 'dom/UIEvent.idl',
12121213 'dom/WebKitAnimationEvent.idl',
 1214 'dom/WebKitMutationObserver.idl',
12131215 'dom/WebKitTransitionEvent.idl',
12141216 'dom/WheelEvent.idl',
12151217 'fileapi/Blob.idl',

18861888 'bindings/js/JSMessageEventCustom.cpp',
18871889 'bindings/js/JSMessagePortCustom.cpp',
18881890 'bindings/js/JSMessagePortCustom.h',
 1891 'bindings/js/JSMutationCallbackCustom.cpp',
18891892 'bindings/js/JSNamedNodeMapCustom.cpp',
18901893 'bindings/js/JSNavigatorCustom.cpp',
18911894 'bindings/js/JSNodeCustom.cpp',

19251928 'bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp',
19261929 'bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp',
19271930 'bindings/js/JSWebKitCSSMatrixCustom.cpp',
 1931 'bindings/js/JSWebKitMutationObserverCustom.cpp',
19281932 'bindings/js/JSWebKitPointCustom.cpp',
19291933 'bindings/js/JSWebSocketCustom.cpp',
19301934 'bindings/js/JSWorkerContextBase.cpp',

21932197 'bindings/v8/custom/V8MessageEventCustom.cpp',
21942198 'bindings/v8/custom/V8MessagePortCustom.cpp',
21952199 'bindings/v8/custom/V8MessagePortCustom.h',
 2200 'bindings/v8/custom/V8MutationCallbackCustom.cpp',
21962201 'bindings/v8/custom/V8NamedNodeMapCustom.cpp',
21972202 'bindings/v8/custom/V8NamedNodesCollection.cpp',
21982203 'bindings/v8/custom/V8NamedNodesCollection.h',

22212226 'bindings/v8/custom/V8Uint8ArrayCustom.cpp',
22222227 'bindings/v8/custom/V8WebGLRenderingContextCustom.cpp',
22232228 'bindings/v8/custom/V8WebKitAnimationCustom.cpp',
 2229 'bindings/v8/custom/V8WebKitMutationObserverCustom.cpp',
22242230 'bindings/v8/custom/V8WebKitPointConstructor.cpp',
22252231 'bindings/v8/custom/V8WebSocketCustom.cpp',
22262232 'bindings/v8/custom/V8WorkerContextCustom.cpp',

52065212 'dom/MessagePortChannel.cpp',
52075213 'dom/MouseEvent.cpp',
52085214 'dom/MouseRelatedEvent.cpp',
 5215 'dom/MutationCallback.h',
52095216 'dom/MutationEvent.cpp',
52105217 'dom/MutationEvent.h',
 5218 'dom/MutationObserverOptions.h',
52115219 'dom/MutationRecord.cpp',
52125220 'dom/MutationRecord.h',
52135221 'dom/NameNodeList.cpp',

53105318 'dom/ViewportArguments.cpp',
53115319 'dom/WebKitAnimationEvent.cpp',
53125320 'dom/WebKitAnimationEvent.h',
 5321 'dom/WebKitMutationObserver.cpp',
 5322 'dom/WebKitMutationObserver.h',
53135323 'dom/WebKitTransitionEvent.cpp',
53145324 'dom/WebKitTransitionEvent.h',
53155325 'dom/WheelEvent.cpp',

74747484 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMetadataCallback.h',
74757485 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMouseEvent.cpp',
74767486 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMouseEvent.h',
 7487 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationCallback.cpp',
 7488 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationCallback.h',
74777489 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationEvent.cpp',
74787490 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationEvent.h',
74797491 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSMutationRecord.cpp',

80058017 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitCSSTransformValue.h',
80068018 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitLoseContext.cpp',
80078019 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitLoseContext.h',
 8020 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitMutationObserver.cpp',
 8021 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitMutationObserver.h',
80088022 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitPoint.cpp',
80098023 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitPoint.h',
80108024 '<(PRODUCT_DIR)/DerivedSources/WebCore/JSWebKitTransitionEvent.cpp',

Source/WebCore/WebCore.pro

@@v8 {
189189 bindings/v8/custom/V8MessageChannelConstructor.cpp \
190190 bindings/v8/custom/V8MessagePortCustom.cpp \
191191 bindings/v8/custom/V8MessageEventCustom.cpp \
 192 bindings/v8/custom/V8MutationCallbackCustom.cpp \
192193 bindings/v8/custom/V8NamedNodeMapCustom.cpp \
193194 bindings/v8/custom/V8NamedNodesCollection.cpp \
194195 bindings/v8/custom/V8NodeCustom.cpp \

@@v8 {
203204 bindings/v8/custom/V8StyleSheetCustom.cpp \
204205 bindings/v8/custom/V8StyleSheetListCustom.cpp \
205206 bindings/v8/custom/V8WebKitAnimationCustom.cpp \
 207 bindings/v8/custom/V8WebKitMutationObserverCustom.cpp \
206208 bindings/v8/custom/V8WebKitPointConstructor.cpp \
207209 bindings/v8/custom/V8WorkerContextCustom.cpp \
208210 bindings/v8/custom/V8WorkerCustom.cpp \

@@v8 {
314316 bindings/js/JSMessageEventCustom.cpp \
315317 bindings/js/JSMessagePortCustom.cpp \
316318 bindings/js/JSMessagePortCustom.h \
 319 bindings/js/JSMutationCallbackCustom.cpp \
317320 bindings/js/JSNamedNodeMapCustom.cpp \
318321 bindings/js/JSNavigatorCustom.cpp \
319322 bindings/js/JSNodeCustom.cpp \

@@v8 {
340343 bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp \
341344 bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp \
342345 bindings/js/JSWebKitCSSMatrixCustom.cpp \
 346 bindings/js/JSWebKitMutationObserverCustom.cpp \
343347 bindings/js/JSWebKitPointCustom.cpp \
344348 bindings/js/JSXMLHttpRequestCustom.cpp \
345349 bindings/js/JSXMLHttpRequestUploadCustom.cpp \

@@SOURCES += \
564568 dom/UserTypingGestureIndicator.cpp \
565569 dom/ViewportArguments.cpp \
566570 dom/WebKitAnimationEvent.cpp \
 571 dom/WebKitMutationObserver.cpp \
567572 dom/WebKitTransitionEvent.cpp \
568573 dom/WheelEvent.cpp \
569574 dom/WindowEventContext.cpp \

@@HEADERS += \
15251530 dom/MessagePort.h \
15261531 dom/MouseEvent.h \
15271532 dom/MouseRelatedEvent.h \
 1533 dom/MutationCallback.h \
15281534 dom/MutationEvent.h \
15291535 dom/MutationRecord.h \
15301536 dom/NamedNodeMap.h \

@@HEADERS += \
15761582 dom/UserGestureIndicator.h \
15771583 dom/ViewportArguments.h \
15781584 dom/WebKitAnimationEvent.h \
 1585 dom/WebKitMutationObserver.h \
 1586 dom/WebKitMutationObserverOptions.h \
15791587 dom/WebKitTransitionEvent.h \
15801588 dom/WheelEvent.h \
15811589 editing/AppendNodeCommand.h \

Source/WebCore/WebCore.vcproj/WebCore.vcproj

1159811598 >
1159911599 </File>
1160011600 <File
 11601 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.cpp"
 11602 >
 11603 <FileConfiguration
 11604 Name="Debug|Win32"
 11605 ExcludedFromBuild="true"
 11606 >
 11607 <Tool
 11608 Name="VCCLCompilerTool"
 11609 />
 11610 </FileConfiguration>
 11611 <FileConfiguration
 11612 Name="Release|Win32"
 11613 ExcludedFromBuild="true"
 11614 >
 11615 <Tool
 11616 Name="VCCLCompilerTool"
 11617 />
 11618 </FileConfiguration>
 11619 <FileConfiguration
 11620 Name="Debug_Cairo_CFLite|Win32"
 11621 ExcludedFromBuild="true"
 11622 >
 11623 <Tool
 11624 Name="VCCLCompilerTool"
 11625 />
 11626 </FileConfiguration>
 11627 <FileConfiguration
 11628 Name="Release_Cairo_CFLite|Win32"
 11629 ExcludedFromBuild="true"
 11630 >
 11631 <Tool
 11632 Name="VCCLCompilerTool"
 11633 />
 11634 </FileConfiguration>
 11635 <FileConfiguration
 11636 Name="Debug_All|Win32"
 11637 ExcludedFromBuild="true"
 11638 >
 11639 <Tool
 11640 Name="VCCLCompilerTool"
 11641 />
 11642 </FileConfiguration>
 11643 <FileConfiguration
 11644 Name="Production|Win32"
 11645 ExcludedFromBuild="true"
 11646 >
 11647 <Tool
 11648 Name="VCCLCompilerTool"
 11649 />
 11650 </FileConfiguration>
 11651 </File>
 11652 <File
 11653 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationCallback.h"
 11654 >
 11655 </File>
 11656 <File
1160111657 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSMutationEvent.cpp"
1160211658 >
1160311659 <FileConfiguration

2296623022 >
2296723023 </File>
2296823024 <File
 23025 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSWebKitMutationObserver.cpp"
 23026 >
 23027 <FileConfiguration
 23028 Name="Debug|Win32"
 23029 ExcludedFromBuild="true"
 23030 >
 23031 <Tool
 23032 Name="VCCLCompilerTool"
 23033 />
 23034 </FileConfiguration>
 23035 <FileConfiguration
 23036 Name="Release|Win32"
 23037 ExcludedFromBuild="true"
 23038 >
 23039 <Tool
 23040 Name="VCCLCompilerTool"
 23041 />
 23042 </FileConfiguration>
 23043 <FileConfiguration
 23044 Name="Debug_Cairo_CFLite|Win32"
 23045 ExcludedFromBuild="true"
 23046 >
 23047 <Tool
 23048 Name="VCCLCompilerTool"
 23049 />
 23050 </FileConfiguration>
 23051 <FileConfiguration
 23052 Name="Release_Cairo_CFLite|Win32"
 23053 ExcludedFromBuild="true"
 23054 >
 23055 <Tool
 23056 Name="VCCLCompilerTool"
 23057 />
 23058 </FileConfiguration>
 23059 <FileConfiguration
 23060 Name="Debug_All|Win32"
 23061 ExcludedFromBuild="true"
 23062 >
 23063 <Tool
 23064 Name="VCCLCompilerTool"
 23065 />
 23066 </FileConfiguration>
 23067 <FileConfiguration
 23068 Name="Production|Win32"
 23069 ExcludedFromBuild="true"
 23070 >
 23071 <Tool
 23072 Name="VCCLCompilerTool"
 23073 />
 23074 </FileConfiguration>
 23075 </File>
 23076 <File
 23077 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSWebKitMutationObserver.h"
 23078 >
 23079 </File>
 23080 <File
2296923081 RelativePath="$(ConfigurationBuildDir)\obj\$(ProjectName)\DerivedSources\JSWebKitPoint.cpp"
2297023082 >
2297123083 <FileConfiguration

6335363465 >
6335463466 </File>
6335563467 <File
 63468 RelativePath="..\bindings\js\JSMutationCallbackCustom.cpp"
 63469 >
 63470 <FileConfiguration
 63471 Name="Debug|Win32"
 63472 ExcludedFromBuild="true"
 63473 >
 63474 <Tool
 63475 Name="VCCLCompilerTool"
 63476 />
 63477 </FileConfiguration>
 63478 <FileConfiguration
 63479 Name="Release|Win32"
 63480 ExcludedFromBuild="true"
 63481 >
 63482 <Tool
 63483 Name="VCCLCompilerTool"
 63484 />
 63485 </FileConfiguration>
 63486 <FileConfiguration
 63487 Name="Debug_Cairo_CFLite|Win32"
 63488 ExcludedFromBuild="true"
 63489 >
 63490 <Tool
 63491 Name="VCCLCompilerTool"
 63492 />
 63493 </FileConfiguration>
 63494 <FileConfiguration
 63495 Name="Release_Cairo_CFLite|Win32"
 63496 ExcludedFromBuild="true"
 63497 >
 63498 <Tool
 63499 Name="VCCLCompilerTool"
 63500 />
 63501 </FileConfiguration>
 63502 <FileConfiguration
 63503 Name="Debug_All|Win32"
 63504 ExcludedFromBuild="true"
 63505 >
 63506 <Tool
 63507 Name="VCCLCompilerTool"
 63508 />
 63509 </FileConfiguration>
 63510 <FileConfiguration
 63511 Name="Production|Win32"
 63512 ExcludedFromBuild="true"
 63513 >
 63514 <Tool
 63515 Name="VCCLCompilerTool"
 63516 />
 63517 </FileConfiguration>
 63518 </File>
 63519 <File
6335663520 RelativePath="..\bindings\js\JSNamedNodeMapCustom.cpp"
6335763521 >
6335863522 <FileConfiguration

6489365057 </FileConfiguration>
6489465058 </File>
6489565059 <File
 65060 RelativePath="..\bindings\js\JSWebKitMutationObserverCustom.cpp"
 65061 >
 65062 <FileConfiguration
 65063 Name="Debug|Win32"
 65064 ExcludedFromBuild="true"
 65065 >
 65066 <Tool
 65067 Name="VCCLCompilerTool"
 65068 />
 65069 </FileConfiguration>
 65070 <FileConfiguration
 65071 Name="Release|Win32"
 65072 ExcludedFromBuild="true"
 65073 >
 65074 <Tool
 65075 Name="VCCLCompilerTool"
 65076 />
 65077 </FileConfiguration>
 65078 <FileConfiguration
 65079 Name="Debug_Cairo_CFLite|Win32"
 65080 ExcludedFromBuild="true"
 65081 >
 65082 <Tool
 65083 Name="VCCLCompilerTool"
 65084 />
 65085 </FileConfiguration>
 65086 <FileConfiguration
 65087 Name="Release_Cairo_CFLite|Win32"
 65088 ExcludedFromBuild="true"
 65089 >
 65090 <Tool
 65091 Name="VCCLCompilerTool"
 65092 />
 65093 </FileConfiguration>
 65094 <FileConfiguration
 65095 Name="Debug_All|Win32"
 65096 ExcludedFromBuild="true"
 65097 >
 65098 <Tool
 65099 Name="VCCLCompilerTool"
 65100 />
 65101 </FileConfiguration>
 65102 <FileConfiguration
 65103 Name="Production|Win32"
 65104 ExcludedFromBuild="true"
 65105 >
 65106 <Tool
 65107 Name="VCCLCompilerTool"
 65108 />
 65109 </FileConfiguration>
 65110 </File>
 65111 <File
6489665112 RelativePath="..\bindings\js\JSWebKitPointCustom.cpp"
6489765113 >
6489865114 <FileConfiguration

Source/WebCore/WebCore.xcodeproj/project.pbxproj

54475447 C6F08FBD1430FE8F00685849 /* MutationRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F08FBA1430FE8F00685849 /* MutationRecord.h */; };
54485448 C6F08FC91431000D00685849 /* JSMutationRecord.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F08FC71431000D00685849 /* JSMutationRecord.cpp */; };
54495449 C6F08FCA1431000D00685849 /* JSMutationRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F08FC81431000D00685849 /* JSMutationRecord.h */; };
 5450 C6F0900A14327B6100685849 /* MutationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900114327B6100685849 /* MutationCallback.h */; };
 5451 C6F0900E14327B6100685849 /* WebKitMutationObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0900514327B6100685849 /* WebKitMutationObserver.cpp */; };
 5452 C6F0900F14327B6100685849 /* WebKitMutationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900614327B6100685849 /* WebKitMutationObserver.h */; };
 5453 C6F0901114327B6100685849 /* MutationObserverOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900814327B6100685849 /* MutationObserverOptions.h */; };
 5454 C6F0902814327D4F00685849 /* JSMutationCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0902014327D4F00685849 /* JSMutationCallback.cpp */; };
 5455 C6F0902914327D4F00685849 /* JSMutationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0902114327D4F00685849 /* JSMutationCallback.h */; };
 5456 C6F0902C14327D4F00685849 /* JSWebKitMutationObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0902414327D4F00685849 /* JSWebKitMutationObserver.cpp */; };
 5457 C6F0902D14327D4F00685849 /* JSWebKitMutationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0902514327D4F00685849 /* JSWebKitMutationObserver.h */; };
 5458 C6F0917F143A2BB900685849 /* JSWebKitMutationObserverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0917E143A2BB900685849 /* JSWebKitMutationObserverCustom.cpp */; };
 5459 C6F09185143A6C3B00685849 /* JSMutationCallbackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */; };
54505460 C6F41047130C6E8900393DE4 /* EntryBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F41046130C6E8900393DE4 /* EntryBase.cpp */; };
54515461 CA3BF67C10D99BAE00E6CE53 /* ScrollAnimator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CA3BF67B10D99BAE00E6CE53 /* ScrollAnimator.cpp */; };
54525462 CA3BF67E10D99BAE00E6CE53 /* ScrollAnimator.h in Headers */ = {isa = PBXBuildFile; fileRef = CA3BF67D10D99BAE00E6CE53 /* ScrollAnimator.h */; };

1222712237 C6F08FBB1430FE8F00685849 /* MutationRecord.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MutationRecord.idl; sourceTree = "<group>"; };
1222812238 C6F08FC71431000D00685849 /* JSMutationRecord.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationRecord.cpp; sourceTree = "<group>"; };
1222912239 C6F08FC81431000D00685849 /* JSMutationRecord.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationRecord.h; sourceTree = "<group>"; };
 12240 C6F0900114327B6100685849 /* MutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutationCallback.h; sourceTree = "<group>"; };
 12241 C6F0900214327B6100685849 /* MutationCallback.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MutationCallback.idl; sourceTree = "<group>"; };
 12242 C6F0900514327B6100685849 /* WebKitMutationObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebKitMutationObserver.cpp; sourceTree = "<group>"; };
 12243 C6F0900614327B6100685849 /* WebKitMutationObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitMutationObserver.h; sourceTree = "<group>"; };
 12244 C6F0900714327B6100685849 /* WebKitMutationObserver.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitMutationObserver.idl; sourceTree = "<group>"; };
 12245 C6F0900814327B6100685849 /* MutationObserverOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutationObserverOptions.h; sourceTree = "<group>"; };
 12246 C6F0902014327D4F00685849 /* JSMutationCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallback.cpp; sourceTree = "<group>"; };
 12247 C6F0902114327D4F00685849 /* JSMutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationCallback.h; sourceTree = "<group>"; };
 12248 C6F0902414327D4F00685849 /* JSWebKitMutationObserver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebKitMutationObserver.cpp; sourceTree = "<group>"; };
 12249 C6F0902514327D4F00685849 /* JSWebKitMutationObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSWebKitMutationObserver.h; sourceTree = "<group>"; };
 12250 C6F0917E143A2BB900685849 /* JSWebKitMutationObserverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSWebKitMutationObserverCustom.cpp; sourceTree = "<group>"; };
 12251 C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallbackCustom.cpp; sourceTree = "<group>"; };
1223012252 C6F41046130C6E8900393DE4 /* EntryBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EntryBase.cpp; path = fileapi/EntryBase.cpp; sourceTree = "<group>"; };
1223112253 CA3BF67B10D99BAE00E6CE53 /* ScrollAnimator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollAnimator.cpp; sourceTree = "<group>"; };
1223212254 CA3BF67D10D99BAE00E6CE53 /* ScrollAnimator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollAnimator.h; sourceTree = "<group>"; };

1744617468 49C9F48B13D57D320052600A /* JSMediaStreamTrack.h */,
1744717469 49C9F48C13D57D320052600A /* JSMediaStreamTrackList.cpp */,
1744817470 49C9F48D13D57D320052600A /* JSMediaStreamTrackList.h */,
 17471 C6F0902014327D4F00685849 /* JSMutationCallback.cpp */,
 17472 C6F0902114327D4F00685849 /* JSMutationCallback.h */,
1744917473 C6F08FC71431000D00685849 /* JSMutationRecord.cpp */,
1745017474 C6F08FC81431000D00685849 /* JSMutationRecord.h */,
1745117475 BCD9C2BC0C17B69E005C90A2 /* JSNamedNodeMap.cpp */,

1748017504 75415D54129AB2D2003AD669 /* JSSpeechInputResultList.h */,
1748117505 65DF31EF09D1CC60000BE325 /* JSText.cpp */,
1748217506 65DF31F009D1CC60000BE325 /* JSText.h */,
 17507 C6F0902414327D4F00685849 /* JSWebKitMutationObserver.cpp */,
 17508 C6F0902514327D4F00685849 /* JSWebKitMutationObserver.h */,
1748317509 );
1748417510 name = Core;
1748517511 sourceTree = "<group>";

1882618852 410B7E711045FAB000D8224F /* JSMessageEventCustom.cpp */,
1882718853 E1ADED460E76B8DD004A1A5E /* JSMessagePortCustom.cpp */,
1882818854 41F584C6104652CB009CAA64 /* JSMessagePortCustom.h */,
 18855 C6F09184143A6C3B00685849 /* JSMutationCallbackCustom.cpp */,
1882918856 BCD9C25F0C17AA67005C90A2 /* JSNamedNodeMapCustom.cpp */,
1883018857 A9C6E6480D7465D8006442E9 /* JSNavigatorCustom.cpp */,
1883118858 BCD9C2600C17AA67005C90A2 /* JSNodeCustom.cpp */,

1885818885 E1AD14C41297354900ACA989 /* JSWebKitCSSKeyframeRuleCustom.cpp */,
1885918886 E1AD14B4129734CA00ACA989 /* JSWebKitCSSKeyframesRuleCustom.cpp */,
1886018887 BC275B7C11C5D23500C9206C /* JSWebKitCSSMatrixCustom.cpp */,
 18888 C6F0917E143A2BB900685849 /* JSWebKitMutationObserverCustom.cpp */,
1886118889 BC275B7811C5D1C300C9206C /* JSWebKitPointCustom.cpp */,
1886218890 518A34C61026C8C9001B6896 /* JSWebSocketCustom.cpp */,
1886318891 E18258AB0EF3CD7000933242 /* JSWorkerContextCustom.cpp */,

2005420082 141B94E509EC4223000E9413 /* MouseEvent.idl */,
2005520083 85031B310A44EFC700F992E0 /* MouseRelatedEvent.cpp */,
2005620084 85031B320A44EFC700F992E0 /* MouseRelatedEvent.h */,
 20085 C6F0900114327B6100685849 /* MutationCallback.h */,
 20086 C6F0900214327B6100685849 /* MutationCallback.idl */,
2005720087 85031B330A44EFC700F992E0 /* MutationEvent.cpp */,
2005820088 85031B340A44EFC700F992E0 /* MutationEvent.h */,
2005920089 93EEC1F309C2877700C515D1 /* MutationEvent.idl */,
 20090 C6F0900814327B6100685849 /* MutationObserverOptions.h */,
2006020091 C6F08FB91430FE8F00685849 /* MutationRecord.cpp */,
2006120092 C6F08FBA1430FE8F00685849 /* MutationRecord.h */,
2006220093 C6F08FBB1430FE8F00685849 /* MutationRecord.idl */,

2019520226 31C0FF1B0E4CEB6E007D6FE5 /* WebKitAnimationEvent.cpp */,
2019620227 31C0FF1C0E4CEB6E007D6FE5 /* WebKitAnimationEvent.h */,
2019720228 31C0FF1D0E4CEB6E007D6FE5 /* WebKitAnimationEvent.idl */,
 20229 C6F0900514327B6100685849 /* WebKitMutationObserver.cpp */,
 20230 C6F0900614327B6100685849 /* WebKitMutationObserver.h */,
 20231 C6F0900714327B6100685849 /* WebKitMutationObserver.idl */,
2019820232 31C0FF1E0E4CEB6E007D6FE5 /* WebKitTransitionEvent.cpp */,
2019920233 31C0FF1F0E4CEB6E007D6FE5 /* WebKitTransitionEvent.h */,
2020020234 31C0FF200E4CEB6E007D6FE5 /* WebKitTransitionEvent.idl */,

2218322217 898785B7122CA2A7003AABDA /* JSMetadata.h in Headers */,
2218422218 898785B9122CA2A7003AABDA /* JSMetadataCallback.h in Headers */,
2218522219 A86629D109DA2B48009633A5 /* JSMouseEvent.h in Headers */,
 22220 C6F0902914327D4F00685849 /* JSMutationCallback.h in Headers */,
2218622221 65DF31FC09D1CC60000BE325 /* JSMutationEvent.h in Headers */,
2218722222 C6F08FCA1431000D00685849 /* JSMutationRecord.h in Headers */,
2218822223 BCD9C2C10C17B69E005C90A2 /* JSNamedNodeMap.h in Headers */,

2242322458 31611E5B0E1C4DE000F6A579 /* JSWebKitCSSTransformValue.h in Headers */,
2242422459 898785B5122CA2A7003AABDA /* JSWebKitFlags.h in Headers */,
2242522460 93F1D5C112D5335600832BEC /* JSWebKitLoseContext.h in Headers */,
 22461 C6F0902D14327D4F00685849 /* JSWebKitMutationObserver.h in Headers */,
2242622462 494BD79E0F55C94C00747828 /* JSWebKitPoint.h in Headers */,
2242722463 31C0FF400E4CEFAC007D6FE5 /* JSWebKitTransitionEvent.h in Headers */,
2242822464 5DA5E0FD102B953800088CF9 /* JSWebSocket.h in Headers */,

2255622592 85031B480A44EFC700F992E0 /* MouseRelatedEvent.h in Headers */,
2255722593 93309DFC099E64920056E581 /* MoveSelectionCommand.h in Headers */,
2255822594 B1AD4E6313A12A0B00846B27 /* MutableTextTrack.h in Headers */,
 22595 C6F0900A14327B6100685849 /* MutationCallback.h in Headers */,
2255922596 85031B4A0A44EFC700F992E0 /* MutationEvent.h in Headers */,
 22597 C6F0901114327B6100685849 /* MutationObserverOptions.h in Headers */,
2256022598 C6F08FBD1430FE8F00685849 /* MutationRecord.h in Headers */,
2256122599 A81872230977D3C0005826D9 /* NamedNodeMap.h in Headers */,
2256222600 A818721E0977D3C0005826D9 /* NameNodeList.h in Headers */,

2342423462 BC9ADD230CC4032600098C4C /* WebKitCSSTransformValue.h in Headers */,
2342523463 89878566122CA064003AABDA /* WebKitFlags.h in Headers */,
2342623464 93F1D5BB12D532C400832BEC /* WebKitLoseContext.h in Headers */,
 23465 C6F0900F14327B6100685849 /* WebKitMutationObserver.h in Headers */,
2342723466 494BD7950F55C8EE00747828 /* WebKitPoint.h in Headers */,
2342823467 31C0FF250E4CEB6E007D6FE5 /* WebKitTransitionEvent.h in Headers */,
2342923468 0FCF332F0F2B9A25004B6795 /* WebLayer.h in Headers */,

2520725246 898785B6122CA2A7003AABDA /* JSMetadata.cpp in Sources */,
2520825247 898785B8122CA2A7003AABDA /* JSMetadataCallback.cpp in Sources */,
2520925248 A86629D209DA2B48009633A5 /* JSMouseEvent.cpp in Sources */,
 25249 C6F0902814327D4F00685849 /* JSMutationCallback.cpp in Sources */,
 25250 C6F09185143A6C3B00685849 /* JSMutationCallbackCustom.cpp in Sources */,
2521025251 65DF31FB09D1CC60000BE325 /* JSMutationEvent.cpp in Sources */,
2521125252 C6F08FC91431000D00685849 /* JSMutationRecord.cpp in Sources */,
2521225253 BCD9C2C00C17B69E005C90A2 /* JSNamedNodeMap.cpp in Sources */,

2547925520 31611E5A0E1C4DE000F6A579 /* JSWebKitCSSTransformValue.cpp in Sources */,
2548025521 898785B4122CA2A7003AABDA /* JSWebKitFlags.cpp in Sources */,
2548125522 93F1D5C012D5335600832BEC /* JSWebKitLoseContext.cpp in Sources */,
 25523 C6F0902C14327D4F00685849 /* JSWebKitMutationObserver.cpp in Sources */,
 25524 C6F0917F143A2BB900685849 /* JSWebKitMutationObserverCustom.cpp in Sources */,
2548225525 494BD79D0F55C94C00747828 /* JSWebKitPoint.cpp in Sources */,
2548325526 BC275B7911C5D1C300C9206C /* JSWebKitPointCustom.cpp in Sources */,
2548425527 31C0FF3F0E4CEFAC007D6FE5 /* JSWebKitTransitionEvent.cpp in Sources */,

2628126324 498391580F1E776900C23782 /* WebKitCSSMatrix.cpp in Sources */,
2628226325 BC9ADD800CC4092200098C4C /* WebKitCSSTransformValue.cpp in Sources */,
2628326326 93F1D5BA12D532C400832BEC /* WebKitLoseContext.cpp in Sources */,
 26327 C6F0900E14327B6100685849 /* WebKitMutationObserver.cpp in Sources */,
2628426328 31C0FF240E4CEB6E007D6FE5 /* WebKitTransitionEvent.cpp in Sources */,
2628526329 0FCF332E0F2B9A25004B6795 /* WebLayer.mm in Sources */,
2628626330 E1A3162E134BC32D007C9A4F /* WebNSAttributedStringExtras.mm in Sources */,

Source/WebCore/bindings/js/JSDictionary.h

@@public:
5151 template <typename T, typename Result>
5252 bool tryGetProperty(const char* propertyName, T* context, void (*setter)(T* context, const Result&));
5353
 54 template <typename T>
 55 bool tryGetProperty(const char* propertyName, T& context, void (T::*setter)(bool));
 56
5457private:
5558 enum GetPropertyResult {
5659 ExceptionThrown,

@@bool JSDictionary::tryGetProperty(const char* propertyName, T* context, void (*s
101104 return true;
102105}
103106
 107template <typename T>
 108bool JSDictionary::tryGetProperty(const char* propertyName, T& context, void (T::*setter)(bool))
 109{
 110 JSC::JSValue value;
 111 switch (tryGetProperty(propertyName, value)) {
 112 case ExceptionThrown:
 113 return false;
 114 case PropertyFound: {
 115 bool result;
 116 convertValue(m_exec, value, result);
 117
 118 if (m_exec->hadException())
 119 return false;
 120
 121 (context.*setter)(result);
 122 break;
 123 }
 124 case NoPropertyFound:
 125 break;
 126 }
 127
 128 return true;
 129}
 130
104131template <typename Result>
105132bool JSDictionary::tryGetProperty(const char* propertyName, Result& finalResult)
106133{

Source/WebCore/bindings/js/JSMutationCallbackCustom.cpp

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#include "config.h"
 32
 33#if ENABLE(MUTATION_OBSERVERS)
 34
 35#include "JSMutationCallback.h"
 36
 37#include "JSMutationRecord.h"
 38#include "JSWebKitMutationObserver.h"
 39#include "ScriptExecutionContext.h"
 40#include <runtime/JSLock.h>
 41
 42using namespace JSC;
 43
 44namespace WebCore {
 45
 46bool JSMutationCallback::handleEvent(MutationRecordArray* mutations, WebKitMutationObserver* observer)
 47{
 48 if (!canInvokeCallback())
 49 return true;
 50
 51 RefPtr<JSMutationCallback> protect(this);
 52
 53 JSLock lock(SilenceAssertionsOnly);
 54
 55 ExecState* exec = m_data->globalObject()->globalExec();
 56
 57 MarkedArgumentBuffer mutationList;
 58 for (size_t i = 0; i < mutations->size(); ++i)
 59 mutationList.append(toJS(exec, m_data->globalObject(), mutations->at(i).get()));
 60
 61 MarkedArgumentBuffer args;
 62 args.append(constructArray(exec, m_data->globalObject(), mutationList));
 63 args.append(toJS(exec, m_data->globalObject(), observer));
 64
 65 bool raisedException = false;
 66 m_data->invokeCallback(args, &raisedException);
 67 return !raisedException;
 68}
 69
 70} // namespace WebCore
 71
 72#endif // ENABLE(MUTATION_OBSERVERS)

Source/WebCore/bindings/js/JSWebKitMutationObserverCustom.cpp

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#include "config.h"
 32
 33#if ENABLE(MUTATION_OBSERVERS)
 34
 35#include "JSWebKitMutationObserver.h"
 36
 37#include "JSDictionary.h"
 38#include "JSMutationCallback.h"
 39#include "JSNode.h"
 40#include "MutationObserverOptions.h"
 41#include "Node.h"
 42#include "WebKitMutationObserver.h"
 43#include <runtime/Error.h>
 44
 45using namespace JSC;
 46
 47namespace WebCore {
 48
 49EncodedJSValue JSC_HOST_CALL JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver(ExecState* exec)
 50{
 51 JSWebKitMutationObserverConstructor* jsConstructor = static_cast<JSWebKitMutationObserverConstructor*>(exec->callee());
 52 if (!jsConstructor)
 53 return throwVMError(exec, createReferenceError(exec, "WebKitMutationObserver constructor callee is unavailable"));
 54
 55 if (exec->argumentCount() < 1)
 56 return throwVMError(exec, createTypeError(exec, "Not enough arguments"));
 57
 58 RefPtr<MutationCallback> callback;
 59 if (!exec->argument(0).isUndefinedOrNull()) {
 60 if (JSObject* object = exec->argument(0).getObject())
 61 callback = JSMutationCallback::create(object, jsConstructor->globalObject());
 62 }
 63 if (!callback)
 64 return throwVMError(exec, createTypeError(exec, "Argument is not an Object"));
 65
 66 RefPtr<WebKitMutationObserver> observer = WebKitMutationObserver::create(callback.release());
 67
 68 return JSValue::encode(asObject(toJS(exec, jsConstructor->globalObject(), observer.release())));
 69}
 70
 71JSValue JSWebKitMutationObserver::observe(ExecState* exec)
 72{
 73 if (exec->argumentCount() < 2)
 74 return throwError(exec, createTypeError(exec, "Not enough arguments"));
 75 Node* target = toNode(exec->argument(0));
 76 if (exec->hadException())
 77 return jsUndefined();
 78
 79 JSValue optionsValue = exec->argument(1);
 80 if (optionsValue.isUndefinedOrNull())
 81 return throwError(exec, createTypeError(exec, "Options must be an object"));
 82
 83 JSDictionary dictionary(exec, optionsValue.toObject(exec));
 84
 85 RefPtr<MutationObserverOptions> options = MutationObserverOptions::create();
 86 if (!dictionary.tryGetProperty("childList", *options, &MutationObserverOptions::setChildList)
 87 || !dictionary.tryGetProperty("attributes", *options, &MutationObserverOptions::setAttributes)
 88 || !dictionary.tryGetProperty("characterData", *options, &MutationObserverOptions::setCharacterData)
 89 || !dictionary.tryGetProperty("subtree", *options, &MutationObserverOptions::setSubtree)
 90 || !dictionary.tryGetProperty("attributeOldValue", *options, &MutationObserverOptions::setAttributeOldValue)
 91 || !dictionary.tryGetProperty("characterDataOldValue", *options, &MutationObserverOptions::setCharacterDataOldValue))
 92 return jsUndefined();
 93
 94 impl()->observe(target, options.get());
 95 return jsUndefined();
 96}
 97
 98} // namespace WebCore
 99
 100#endif // ENABLE(MUTATION_OBSERVERS)

Source/WebCore/bindings/v8/custom/V8MutationCallbackCustom.cpp

 1/*
 2 * Copyright (C) 2010 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#include "config.h"
 32
 33#if ENABLE(MUTATION_OBSERVERS)
 34
 35#include "V8MutationCallback.h"
 36
 37#include "ScriptExecutionContext.h"
 38#include "V8Binding.h"
 39#include "V8CustomVoidCallback.h"
 40#include "V8MutationRecord.h"
 41#include "V8Proxy.h"
 42#include "V8WebKitMutationObserver.h"
 43#include <wtf/Assertions.h>
 44#include <wtf/GetPtr.h>
 45#include <wtf/RefCounted.h>
 46#include <wtf/RefPtr.h>
 47
 48namespace WebCore {
 49
 50bool V8MutationCallback::handleEvent(MutationRecordArray* mutations, WebKitMutationObserver* observer)
 51{
 52 if (!canInvokeCallback())
 53 return true;
 54
 55 v8::HandleScope handleScope;
 56
 57 v8::Handle<v8::Context> v8Context = toV8Context(scriptExecutionContext(), m_worldContext);
 58 if (v8Context.IsEmpty())
 59 return true;
 60
 61 v8::Context::Scope scope(v8Context);
 62
 63 if (!mutations) {
 64 CRASH();
 65 return true;
 66 }
 67
 68 v8::Local<v8::Array> mutationsArray = v8::Array::New(mutations->size());
 69 for (size_t i = 0; i < mutations->size(); ++i)
 70 mutationsArray->Set(v8::Integer::New(i), toV8(mutations->at(i).get()));
 71
 72 v8::Handle<v8::Value> observerHandle = toV8(observer);
 73 if (observerHandle.IsEmpty()) {
 74 CRASH();
 75 return true;
 76 }
 77
 78 v8::Handle<v8::Value> argv[] = {
 79 mutationsArray,
 80 observerHandle
 81 };
 82
 83 bool callbackReturnValue = false;
 84 return !invokeCallback(m_callback, 2, argv, callbackReturnValue, scriptExecutionContext());
 85}
 86
 87} // namespace WebCore
 88
 89#endif // ENABLE(MUTATION_OBSERVERS)

Source/WebCore/bindings/v8/custom/V8WebKitMutationObserverCustom.cpp

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#include "config.h"
 32
 33#if ENABLE(MUTATION_OBSERVERS)
 34
 35#include "V8WebKitMutationObserver.h"
 36
 37#include "MutationObserverOptions.h"
 38#include "OptionsObject.h"
 39#include "V8Binding.h"
 40#include "V8BindingMacros.h"
 41#include "V8DOMWrapper.h"
 42#include "V8MutationCallback.h"
 43#include "V8Node.h"
 44#include "V8Proxy.h"
 45#include "V8Utilities.h"
 46
 47namespace WebCore {
 48
 49v8::Handle<v8::Value> V8WebKitMutationObserver::constructorCallback(const v8::Arguments& args)
 50{
 51 INC_STATS("DOM.WebKitMutationObserver.Constructor");
 52
 53 if (!args.IsConstructCall())
 54 return throwError("DOM object constructor cannot be called as a function.", V8Proxy::TypeError);
 55
 56 if (args.Length() < 1)
 57 return throwError("Not enough arguments", V8Proxy::TypeError);
 58
 59 v8::Local<v8::Value> arg = args[0];
 60 if (!arg->IsObject())
 61 return throwError("Argument must be an Object", V8Proxy::TypeError);
 62
 63 ScriptExecutionContext* context = getScriptExecutionContext();
 64 if (!context)
 65 return throwError("WebKitMutationObserver constructor's associated frame unavailable", V8Proxy::ReferenceError);
 66
 67 RefPtr<MutationCallback> callback = V8MutationCallback::create(arg, context);
 68 RefPtr<WebKitMutationObserver> observer = WebKitMutationObserver::create(callback.release());
 69
 70 V8DOMWrapper::setDOMWrapper(args.Holder(), &info, observer.get());
 71 observer->ref();
 72 V8DOMWrapper::setJSWrapperForDOMObject(observer.get(), v8::Persistent<v8::Object>::New(args.Holder()));
 73 return args.Holder();
 74}
 75
 76v8::Handle<v8::Value> V8WebKitMutationObserver::observeCallback(const v8::Arguments& args)
 77{
 78 INC_STATS("DOM.WebKitMutationObserver.observe");
 79 if (args.Length() < 2)
 80 return throwError("Not enough arguments", V8Proxy::TypeError);
 81 WebKitMutationObserver* imp = V8WebKitMutationObserver::toNative(args.Holder());
 82 EXCEPTION_BLOCK(Node*, target, V8Node::HasInstance(args[0]) ? V8Node::toNative(v8::Handle<v8::Object>::Cast(args[0])) : 0);
 83
 84 if (!args[1]->IsObject())
 85 return throwError("Options must be an object", V8Proxy::TypeError);
 86
 87 OptionsObject optionsObject(args[1]);
 88 RefPtr<MutationObserverOptions> options = MutationObserverOptions::create();
 89
 90#define SET_OPTION(option, setter) \
 91 do { \
 92 bool option; \
 93 if (optionsObject.getKeyValue(#option, option)) \
 94 options->setter(option); \
 95 } while (0)
 96
 97 SET_OPTION(childList, setChildList);
 98 SET_OPTION(attributes, setAttributes);
 99 SET_OPTION(characterData, setCharacterData);
 100 SET_OPTION(subtree, setSubtree);
 101 SET_OPTION(attributeOldValue, setAttributeOldValue);
 102 SET_OPTION(characterDataOldValue, setCharacterDataOldValue);
 103
 104#undef SET_OPTION
 105
 106 imp->observe(target, options.get());
 107 return v8::Handle<v8::Value>();
 108}
 109
 110} // namespace WebCore
 111
 112#endif // ENABLE(MUTATION_OBSERVERS)

Source/WebCore/dom/MutationCallback.h

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#ifndef MutationCallback_h
 32#define MutationCallback_h
 33
 34#if ENABLE(MUTATION_OBSERVERS)
 35
 36#include <wtf/RefCounted.h>
 37#include <wtf/RefPtr.h>
 38#include <wtf/Vector.h>
 39
 40namespace WebCore {
 41
 42class MutationRecord;
 43class WebKitMutationObserver;
 44
 45typedef Vector<RefPtr<MutationRecord> > MutationRecordArray;
 46
 47class MutationCallback : public RefCounted<MutationCallback> {
 48public:
 49 virtual ~MutationCallback() { }
 50
 51 virtual bool handleEvent(MutationRecordArray*, WebKitMutationObserver*) = 0;
 52};
 53
 54}
 55
 56#endif // ENABLE(MUTATION_OBSERVERS)
 57
 58#endif // MutationCallback_h

Source/WebCore/dom/MutationCallback.idl

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31module core {
 32 interface [
 33 Conditional=MUTATION_OBSERVERS,
 34 Callback
 35 ] MutationCallback {
 36 [Custom] boolean handleEvent(in MutationRecordArray mutations, in WebKitMutationObserver observer);
 37 };
 38}

Source/WebCore/dom/MutationObserverOptions.h

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#ifndef MutationObserverOptions_h
 32#define MutationObserverOptions_h
 33
 34#if ENABLE(MUTATION_OBSERVERS)
 35
 36#include <wtf/PassRefPtr.h>
 37#include <wtf/RefCounted.h>
 38
 39namespace WebCore {
 40
 41class MutationObserverOptions : public RefCounted<MutationObserverOptions> {
 42public:
 43 static PassRefPtr<MutationObserverOptions> create()
 44 {
 45 return adoptRef(new MutationObserverOptions);
 46 }
 47
 48 bool childList() const { return m_childList; }
 49 void setChildList(bool value) { m_childList = value; }
 50
 51 bool attributes() const { return m_attributes; }
 52 void setAttributes(bool value) { m_attributes = value; }
 53
 54 bool characterData() const { return m_characterData; }
 55 void setCharacterData(bool value) { m_characterData = value; }
 56
 57 bool subtree() const { return m_subtree; }
 58 void setSubtree(bool value) { m_subtree = value; }
 59
 60 bool attributeOldValue() const { return m_attributeOldValue; }
 61 void setAttributeOldValue(bool value) { m_attributeOldValue = value; }
 62
 63 bool characterDataOldValue() const { return m_attributeOldValue; }
 64 void setCharacterDataOldValue(bool value) { m_characterDataOldValue = value; }
 65
 66 // FIXME: Figure out how to model this based on the IDL.
 67 // DOMString[] attributeFilter;
 68
 69private:
 70 MutationObserverOptions()
 71 : m_childList(false)
 72 , m_attributes(false)
 73 , m_characterData(false)
 74 , m_subtree(false)
 75 , m_attributeOldValue(false)
 76 , m_characterDataOldValue(false)
 77 {
 78 }
 79
 80 bool m_childList;
 81 bool m_attributes;
 82 bool m_characterData;
 83 bool m_subtree;
 84 bool m_attributeOldValue;
 85 bool m_characterDataOldValue;
 86};
 87
 88} // namespace WebCore
 89
 90#endif // ENABLE(MUTATION_OBSERVERS)
 91
 92#endif // MutationObserverOptions_h

Source/WebCore/dom/WebKitMutationObserver.cpp

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#include "config.h"
 32
 33#if ENABLE(MUTATION_OBSERVERS)
 34
 35#include "WebKitMutationObserver.h"
 36
 37#include "MutationCallback.h"
 38
 39namespace WebCore {
 40
 41PassRefPtr<WebKitMutationObserver> WebKitMutationObserver::create(PassRefPtr<MutationCallback> callback)
 42{
 43 return adoptRef(new WebKitMutationObserver(callback));
 44}
 45
 46WebKitMutationObserver::WebKitMutationObserver(PassRefPtr<MutationCallback> callback)
 47 : m_callback(callback)
 48{
 49}
 50
 51WebKitMutationObserver::~WebKitMutationObserver()
 52{
 53}
 54
 55void WebKitMutationObserver::observe(Node*, MutationObserverOptions*)
 56{
 57 // FIXME: implement
 58}
 59
 60void WebKitMutationObserver::disconnect()
 61{
 62 // FIXME: implement
 63}
 64
 65} // namespace WebCore
 66
 67#endif // ENABLE(MUTATION_OBSERVERS)

Source/WebCore/dom/WebKitMutationObserver.h

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31#ifndef WebKitMutationObserver_h
 32#define WebKitMutationObserver_h
 33
 34#if ENABLE(MUTATION_OBSERVERS)
 35
 36#include <wtf/PassOwnPtr.h>
 37#include <wtf/RefCounted.h>
 38#include <wtf/RefPtr.h>
 39
 40namespace WebCore {
 41
 42class MutationCallback;
 43class MutationObserverOptions;
 44class Node;
 45
 46class WebKitMutationObserver : public RefCounted<WebKitMutationObserver> {
 47public:
 48 static PassRefPtr<WebKitMutationObserver> create(PassRefPtr<MutationCallback>);
 49
 50 ~WebKitMutationObserver();
 51
 52 void observe(Node*, MutationObserverOptions*);
 53 void disconnect();
 54
 55private:
 56 WebKitMutationObserver(PassRefPtr<MutationCallback>);
 57
 58 RefPtr<MutationCallback> m_callback;
 59};
 60
 61}
 62
 63#endif // ENABLE(MUTATION_OBSERVERS)
 64
 65#endif // WebKitMutationObserver_h

Source/WebCore/dom/WebKitMutationObserver.idl

 1/*
 2 * Copyright (C) 2011 Google Inc. All rights reserved.
 3 *
 4 * Redistribution and use in source and binary forms, with or without
 5 * modification, are permitted provided that the following conditions are
 6 * met:
 7 *
 8 * * Redistributions of source code must retain the above copyright
 9 * notice, this list of conditions and the following disclaimer.
 10 * * Redistributions in binary form must reproduce the above
 11 * copyright notice, this list of conditions and the following disclaimer
 12 * in the documentation and/or other materials provided with the
 13 * distribution.
 14 * * Neither the name of Google Inc. nor the names of its
 15 * contributors may be used to endorse or promote products derived from
 16 * this software without specific prior written permission.
 17 *
 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 29 */
 30
 31module core {
 32 interface [
 33 Conditional=MUTATION_OBSERVERS,
 34 CanBeConstructed,
 35 CustomConstructFunction,
 36 V8CustomConstructor
 37 ] WebKitMutationObserver {
 38 [Custom] void observe(in Node target, in MutationObserverOptions options);
 39 void disconnect();
 40 };
 41}

Source/WebCore/page/DOMWindow.idl

@@module window {
805805 readonly attribute [EnabledAtRuntime=Quota] StorageInfo webkitStorageInfo;
806806#endif
807807
 808 attribute [Conditional=MUTATION_OBSERVERS] WebKitMutationObserverConstructor WebKitMutationObserver;
 809
808810#endif // defined(LANGUAGE_JAVASCRIPT)
809811
810812#if defined(V8_BINDING) && V8_BINDING