Changeset 97714 in webkit
- Timestamp:
- Oct 17, 2011 9:31:00 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 1 deleted
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r97712 r97714 1 2011-10-17 Adam Klein <adamk@chromium.org> 2 3 Parse MutationObserverOptions directly into a bitfield 4 https://bugs.webkit.org/show_bug.cgi?id=70287 5 6 Reviewed by Ryosuke Niwa. 7 8 Replaces the MutationObserverOptions class with a typedef, 9 used to pass a bitfield composed of enums defined in 10 WebKitMutationObserver.h. 11 12 No new tests because no behavior should change. 13 14 * GNUmakefile.list.am: 15 * WebCore.gypi: 16 * WebCore.pro: 17 * WebCore.xcodeproj/project.pbxproj: 18 * bindings/js/JSDictionary.h: Removed now-unused method. 19 * bindings/js/JSWebKitMutationObserverCustom.cpp: 20 (WebCore::JSWebKitMutationObserver::observe): 21 * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp: 22 (WebCore::V8WebKitMutationObserver::observeCallback): 23 * dom/MutationObserverOptions.h: Removed. 24 * dom/Node.cpp: 25 (WebCore::Node::registerMutationObserver): 26 * dom/Node.h: 27 * dom/NodeRareData.h: 28 (WebCore::MutationObserverEntry::MutationObserverEntry): 29 (WebCore::MutationObserverEntry::matches): 30 * dom/WebKitMutationObserver.cpp: 31 (WebCore::WebKitMutationObserver::observe): 32 * dom/WebKitMutationObserver.h: 33 1 34 2011-10-17 Luke Macpherson <macpherson@chromium.org> 2 35 -
trunk/Source/WebCore/GNUmakefile.list.am
r97696 r97714 1238 1238 Source/WebCore/dom/MutationEvent.cpp \ 1239 1239 Source/WebCore/dom/MutationEvent.h \ 1240 Source/WebCore/dom/MutationObserverOptions.h \1241 1240 Source/WebCore/dom/MutationRecord.cpp \ 1242 1241 Source/WebCore/dom/MutationRecord.h \ -
trunk/Source/WebCore/WebCore.gypi
r97692 r97714 5228 5228 'dom/MutationEvent.cpp', 5229 5229 'dom/MutationEvent.h', 5230 'dom/MutationObserverOptions.h',5231 5230 'dom/MutationRecord.cpp', 5232 5231 'dom/MutationRecord.h', -
trunk/Source/WebCore/WebCore.pro
r97696 r97714 1556 1556 dom/MutationCallback.h \ 1557 1557 dom/MutationEvent.h \ 1558 dom/MutationObserverOptions.h \1559 1558 dom/MutationRecord.h \ 1560 1559 dom/NamedNodeMap.h \ -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r97669 r97714 5470 5470 C6F0900E14327B6100685849 /* WebKitMutationObserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0900514327B6100685849 /* WebKitMutationObserver.cpp */; }; 5471 5471 C6F0900F14327B6100685849 /* WebKitMutationObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900614327B6100685849 /* WebKitMutationObserver.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5472 C6F0901114327B6100685849 /* MutationObserverOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0900814327B6100685849 /* MutationObserverOptions.h */; };5473 5472 C6F0902814327D4F00685849 /* JSMutationCallback.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6F0902014327D4F00685849 /* JSMutationCallback.cpp */; }; 5474 5473 C6F0902914327D4F00685849 /* JSMutationCallback.h in Headers */ = {isa = PBXBuildFile; fileRef = C6F0902114327D4F00685849 /* JSMutationCallback.h */; }; … … 12772 12771 C6F0900614327B6100685849 /* WebKitMutationObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebKitMutationObserver.h; sourceTree = "<group>"; }; 12773 12772 C6F0900714327B6100685849 /* WebKitMutationObserver.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WebKitMutationObserver.idl; sourceTree = "<group>"; }; 12774 C6F0900814327B6100685849 /* MutationObserverOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MutationObserverOptions.h; sourceTree = "<group>"; };12775 12773 C6F0902014327D4F00685849 /* JSMutationCallback.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMutationCallback.cpp; sourceTree = "<group>"; }; 12776 12774 C6F0902114327D4F00685849 /* JSMutationCallback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSMutationCallback.h; sourceTree = "<group>"; }; … … 21129 21127 85031B340A44EFC700F992E0 /* MutationEvent.h */, 21130 21128 93EEC1F309C2877700C515D1 /* MutationEvent.idl */, 21131 C6F0900814327B6100685849 /* MutationObserverOptions.h */,21132 21129 C6F08FB91430FE8F00685849 /* MutationRecord.cpp */, 21133 21130 C6F08FBA1430FE8F00685849 /* MutationRecord.h */, … … 23635 23632 C6F0900A14327B6100685849 /* MutationCallback.h in Headers */, 23636 23633 85031B4A0A44EFC700F992E0 /* MutationEvent.h in Headers */, 23637 C6F0901114327B6100685849 /* MutationObserverOptions.h in Headers */,23638 23634 C6F08FBD1430FE8F00685849 /* MutationRecord.h in Headers */, 23639 23635 A81872230977D3C0005826D9 /* NamedNodeMap.h in Headers */, -
trunk/Source/WebCore/bindings/js/JSDictionary.h
r97159 r97714 53 53 bool tryGetProperty(const char* propertyName, T* context, void (*setter)(T* context, const Result&)); 54 54 55 template <typename T>56 bool tryGetProperty(const char* propertyName, T& context, void (T::*setter)(bool));57 58 55 private: 59 56 enum GetPropertyResult { … … 107 104 } 108 105 109 template <typename T>110 bool JSDictionary::tryGetProperty(const char* propertyName, T& context, void (T::*setter)(bool))111 {112 JSC::JSValue value;113 switch (tryGetProperty(propertyName, value)) {114 case ExceptionThrown:115 return false;116 case PropertyFound: {117 bool result;118 convertValue(m_exec, value, result);119 120 if (m_exec->hadException())121 return false;122 123 (context.*setter)(result);124 break;125 }126 case NoPropertyFound:127 break;128 }129 130 return true;131 }132 133 106 template <typename Result> 134 107 bool JSDictionary::tryGetProperty(const char* propertyName, Result& finalResult) -
trunk/Source/WebCore/bindings/js/JSWebKitMutationObserverCustom.cpp
r97159 r97714 39 39 #include "JSMutationCallback.h" 40 40 #include "JSNode.h" 41 #include "MutationObserverOptions.h"42 41 #include "Node.h" 43 42 #include "WebKitMutationObserver.h" … … 79 78 80 79 JSDictionary dictionary(exec, optionsObject); 80 MutationObserverOptions options = 0; 81 bool option; 82 if (dictionary.tryGetProperty("childList", option) && option) 83 options |= WebKitMutationObserver::ChildList; 84 if (dictionary.tryGetProperty("attributes", option) && option) 85 options |= WebKitMutationObserver::Attributes; 86 if (dictionary.tryGetProperty("subtree", option) && option) 87 options |= WebKitMutationObserver::Subtree; 88 if (dictionary.tryGetProperty("attributeOldValue", option) && option) 89 options |= WebKitMutationObserver::AttributeOldValue; 90 if (dictionary.tryGetProperty("characterDataOldValue", option) && option) 91 options |= WebKitMutationObserver::CharacterDataOldValue; 81 92 82 RefPtr<MutationObserverOptions> options = MutationObserverOptions::create(); 83 if (!dictionary.tryGetProperty("childList", *options, &MutationObserverOptions::setChildList) 84 || !dictionary.tryGetProperty("attributes", *options, &MutationObserverOptions::setAttributes) 85 || !dictionary.tryGetProperty("characterData", *options, &MutationObserverOptions::setCharacterData) 86 || !dictionary.tryGetProperty("subtree", *options, &MutationObserverOptions::setSubtree) 87 || !dictionary.tryGetProperty("attributeOldValue", *options, &MutationObserverOptions::setAttributeOldValue) 88 || !dictionary.tryGetProperty("characterDataOldValue", *options, &MutationObserverOptions::setCharacterDataOldValue)) 93 if (exec->hadException()) 89 94 return jsUndefined(); 90 95 91 impl()->observe(target, options .get());96 impl()->observe(target, options); 92 97 return jsUndefined(); 93 98 } -
trunk/Source/WebCore/bindings/v8/custom/V8WebKitMutationObserverCustom.cpp
r97159 r97714 36 36 37 37 #include "ExceptionCode.h" 38 #include "MutationObserverOptions.h"39 38 #include "OptionsObject.h" 40 39 #include "V8Binding.h" … … 87 86 88 87 OptionsObject optionsObject(args[1]); 89 RefPtr<MutationObserverOptions> options = MutationObserverOptions::create(); 88 unsigned options = 0; 89 bool option; 90 if (optionsObject.getKeyValue("childList", option) && option) 91 options |= WebKitMutationObserver::ChildList; 92 if (optionsObject.getKeyValue("attributes", option) && option) 93 options |= WebKitMutationObserver::Attributes; 94 if (optionsObject.getKeyValue("characterData", option) && option) 95 options |= WebKitMutationObserver::CharacterData; 96 if (optionsObject.getKeyValue("subtree", option) && option) 97 options |= WebKitMutationObserver::Subtree; 98 if (optionsObject.getKeyValue("attributeOldValue", option) && option) 99 options |= WebKitMutationObserver::AttributeOldValue; 100 if (optionsObject.getKeyValue("characterDataOldValue", option) && option) 101 options |= WebKitMutationObserver::CharacterDataOldValue; 90 102 91 bool option; 92 if (optionsObject.getKeyValue("childList", option)) 93 options->setChildList(option); 94 if (optionsObject.getKeyValue("attributes", option)) 95 options->setAttributes(option); 96 if (optionsObject.getKeyValue("characterData", option)) 97 options->setCharacterData(option); 98 if (optionsObject.getKeyValue("subtree", option)) 99 options->setSubtree(option); 100 if (optionsObject.getKeyValue("attributeOldValue", option)) 101 options->setAttributeOldValue(option); 102 if (optionsObject.getKeyValue("characterDataOldValue", option)) 103 options->setCharacterDataOldValue(option); 104 105 imp->observe(target, options.get()); 103 imp->observe(target, options); 106 104 return v8::Handle<v8::Value>(); 107 105 } -
trunk/Source/WebCore/dom/Node.cpp
r97659 r97714 2706 2706 } 2707 2707 2708 Node::MutationRegistrationResult Node::registerMutationObserver(PassRefPtr<WebKitMutationObserver> observer, unsigned charoptions)2708 Node::MutationRegistrationResult Node::registerMutationObserver(PassRefPtr<WebKitMutationObserver> observer, MutationObserverOptions options) 2709 2709 { 2710 2710 Vector<MutationObserverEntry>* observerEntries = ensureMutationObserverEntries(); -
trunk/Source/WebCore/dom/Node.h
r97659 r97714 599 599 MutationRegistrationOptionsReset 600 600 }; 601 MutationRegistrationResult registerMutationObserver(PassRefPtr<WebKitMutationObserver>, unsigned char options);601 MutationRegistrationResult registerMutationObserver(PassRefPtr<WebKitMutationObserver>, MutationObserverOptions); 602 602 603 603 void unregisterMutationObserver(PassRefPtr<WebKitMutationObserver>); -
trunk/Source/WebCore/dom/NodeRareData.h
r97659 r97714 91 91 #if ENABLE(MUTATION_OBSERVERS) 92 92 struct MutationObserverEntry { 93 MutationObserverEntry(PassRefPtr<WebKitMutationObserver> observer, unsigned charoptions)93 MutationObserverEntry(PassRefPtr<WebKitMutationObserver> observer, MutationObserverOptions options) 94 94 : observer(observer) 95 95 , options(options) … … 102 102 } 103 103 104 bool matches( unsigned charoptions) const104 bool matches(MutationObserverOptions options) const 105 105 { 106 106 return this->options & options; … … 108 108 109 109 RefPtr<WebKitMutationObserver> observer; 110 unsigned charoptions;110 MutationObserverOptions options; 111 111 }; 112 112 -
trunk/Source/WebCore/dom/WebKitMutationObserver.cpp
r97659 r97714 35 35 #include "WebKitMutationObserver.h" 36 36 37 #include "MutationObserverOptions.h"38 37 #include "MutationCallback.h" 39 38 #include "MutationRecord.h" … … 57 56 } 58 57 59 void WebKitMutationObserver::observe(Node* node, MutationObserverOptions *options)58 void WebKitMutationObserver::observe(Node* node, MutationObserverOptions options) 60 59 { 61 unsigned char optionFlags = 0;60 // FIXME: More options composition work needs to be done here, e.g., validation. 62 61 63 // FIXME: Push composition of the optionFlags into the custom binding. 64 if (options->childList()) 65 optionFlags |= ChildList; 66 if (options->attributes()) 67 optionFlags |= Attributes; 68 if (options->characterData()) 69 optionFlags |= CharacterData; 70 // FIXME: More options composition work needs to be done here. 71 72 if (node->registerMutationObserver(this, optionFlags) == Node::MutationObserverRegistered) 62 if (node->registerMutationObserver(this, options) == Node::MutationObserverRegistered) 73 63 m_observedNodes.append(node); 74 64 } -
trunk/Source/WebCore/dom/WebKitMutationObserver.h
r97659 r97714 42 42 43 43 class MutationCallback; 44 class MutationObserverOptions;45 44 class MutationRecord; 46 45 class Node; 46 47 typedef unsigned char MutationObserverOptions; 47 48 48 49 class WebKitMutationObserver : public RefCounted<WebKitMutationObserver> { … … 66 67 ~WebKitMutationObserver(); 67 68 68 void observe(Node*, MutationObserverOptions *);69 void observe(Node*, MutationObserverOptions); 69 70 void disconnect(); 70 71 void observedNodeDestructed(Node*);
Note: See TracChangeset
for help on using the changeset viewer.