Changeset 170174 in webkit
- Timestamp:
- Jun 19, 2014 11:44:16 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r170173 r170174 1 2014-06-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] webkit_dom_document_create_tree_walker impossible to use due to WebKitDOMNodeFilter 4 https://bugs.webkit.org/show_bug.cgi?id=93002 5 6 Reviewed by Gustavo Noronha Silva. 7 8 Add custom implementation of WebKitDOMNodeFilter to expose it as 9 an interface instead of a class. 10 11 * PlatformGTK.cmake: Add new files to compilation. 12 * bindings/gobject/GObjectNodeFilterCondition.cpp: Added. 13 (WebCore::GObjectNodeFilterCondition::~GObjectNodeFilterCondition): 14 Reset the NodeFilter WebCore object associated to the 15 WebKitDOMNodeFilter object. 16 (WebCore::GObjectNodeFilterCondition::acceptNode): Call webkit_dom_node_filter_accept_node(). 17 * bindings/gobject/GObjectNodeFilterCondition.h: Added. 18 (WebCore::GObjectNodeFilterCondition::create): Create a new 19 GObjectNodeFilterCondition for the given WebKitDOMNodeFilter. 20 (WebCore::GObjectNodeFilterCondition::GObjectNodeFilterCondition): 21 * bindings/gobject/WebKitDOMNodeFilter.cpp: Added. 22 (webkit_dom_node_filter_default_init): 23 (webkit_dom_node_filter_accept_node): 24 (WebKit::nodeFilterMap): Map NodeFilter WebCore objects to 25 WebKitDOMNodeFilter objects. 26 (WebKit::nodeFilterObjectDestroyedCallback): Remove the node 27 filter form the map when the WebKitDOMNodeFilter objecrt is destroyed. 28 (WebKit::kit): Return the WebKitDOMNodeFilter object for the given 29 NodeFilter WebCore object. 30 (WebKit::core): Get or create a NodeFilter WebCore object 31 associated to the given WebKitDOMNodeFilter. 32 * bindings/gobject/WebKitDOMNodeFilter.h: Added. 33 * bindings/gobject/WebKitDOMNodeFilter.symbols: Added. 34 * bindings/gobject/WebKitDOMNodeFilterPrivate.h: Added. 35 * bindings/scripts/CodeGeneratorGObject.pm: 36 (GenerateFunction): Add exceptions for NodeFilter parameters since 37 the core method returns a PassRefPtr. 38 1 39 2014-06-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 40 -
trunk/Source/WebCore/PlatformGTK.cmake
r170173 r170174 436 436 bindings/gobject/DOMObjectCache.cpp 437 437 bindings/gobject/GObjectEventListener.cpp 438 bindings/gobject/GObjectNodeFilterCondition.cpp 438 439 bindings/gobject/WebKitDOMCustom.cpp 439 440 bindings/gobject/WebKitDOMEventTarget.cpp 440 441 bindings/gobject/WebKitDOMHTMLPrivate.cpp 442 bindings/gobject/WebKitDOMNodeFilter.cpp 441 443 bindings/gobject/WebKitDOMObject.cpp 442 444 bindings/gobject/WebKitDOMPrivate.cpp … … 471 473 dom/NamedNodeMap.idl 472 474 dom/Node.idl 473 dom/NodeFilter.idl474 475 dom/NodeIterator.idl 475 476 dom/NodeList.idl … … 630 631 endif () 631 632 632 set(GObjectDOMBindingsStable_CLASS_LIST Custom EventTarget Object)633 set(GObjectDOMBindingsStable_CLASS_LIST Custom EventTarget NodeFilter Object) 633 634 set(GObjectDOMBindingsStable_INSTALLED_HEADERS 634 635 ${DERIVED_SOURCES_GOBJECT_DOM_BINDINGS_DIR}/webkitdomdefines.h … … 636 637 ${WEBCORE_DIR}/bindings/gobject/WebKitDOMCustom.h 637 638 ${WEBCORE_DIR}/bindings/gobject/WebKitDOMEventTarget.h 639 ${WEBCORE_DIR}/bindings/gobject/WebKitDOMNodeFilter.h 638 640 ${WEBCORE_DIR}/bindings/gobject/WebKitDOMObject.h 639 641 ) … … 733 735 list(REMOVE_ITEM GObjectDOMBindings_GIR_HEADERS 734 736 bindings/gobject/WebKitDOMEventTarget.h 737 bindings/gobject/WebKitDOMNodeFilter.h 735 738 bindings/gobject/WebKitDOMObject.h 736 739 ) -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorGObject.pm
r170173 r170174 55 55 'webkit_dom_document_create_element_ns' => ['namespaceURI'], 56 56 'webkit_dom_document_create_entity_reference' => ['name'], 57 'webkit_dom_document_create_node_iterator' => ['filter'], 58 'webkit_dom_document_create_tree_walker' => ['filter'], 57 59 'webkit_dom_document_evaluate' => ['inResult', 'resolver'], 58 60 'webkit_dom_document_get_override_style' => ['pseudoElement'], … … 957 959 $paramName = "converted" . $codeGenerator->WK_ucfirst($paramName); 958 960 } 961 if ($paramIDLType eq "NodeFilter") { 962 $paramName = "WTF::getPtr(" . $paramName . ")"; 963 } 959 964 push(@callImplParams, $paramName); 960 965 } … … 1058 1063 } elsif ($paramIDLType eq "CompareHow") { 1059 1064 push(@cBody, " WebCore::Range::CompareHow ${convertedParamName} = static_cast<WebCore::Range::CompareHow>($paramName);\n"); 1065 } elsif ($paramIDLType eq "NodeFilter") { 1066 push(@cBody, " RefPtr<WebCore::$paramIDLType> ${convertedParamName} = WebKit::core($paramName);\n"); 1060 1067 } elsif ($paramIsGDOMType) { 1061 1068 push(@cBody, " WebCore::${paramIDLType}* ${convertedParamName} = WebKit::core($paramName);\n"); -
trunk/Tools/ChangeLog
r170173 r170174 1 2014-06-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] webkit_dom_document_create_tree_walker impossible to use due to WebKitDOMNodeFilter 4 https://bugs.webkit.org/show_bug.cgi?id=93002 5 6 Reviewed by Gustavo Noronha Silva. 7 8 Add unit tests to check WebKitDOMNodefilter API used from both 9 TreeWalker and NodeIterator. 10 11 * Scripts/webkitpy/style/checker.py: Add exceptions for GTK+ 12 public headers and add WebKitDOMNodeFilter to the list of exceptions. 13 * TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt: Add new files to compilation. 14 * TestWebKitAPI/Tests/WebKit2Gtk/DOMNodeFilterTest.cpp: Added. 15 (webkitNodeFilterAcceptNode): 16 (webkitNodeFilterDOMNodeFilterIfaceInit): 17 (webkit_node_filter_init): 18 (webkit_node_filter_class_init): 19 (WebKitDOMNodeFilterTest::create): 20 (WebKitDOMNodeFilterTest::webPageFromArgs): 21 (WebKitDOMNodeFilterTest::testTreeWalker): 22 (WebKitDOMNodeFilterTest::testNodeIterator): 23 (WebKitDOMNodeFilterTest::runTest): 24 (registerTests): 25 * TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNodeFilter.cpp: Added. 26 (runTest): 27 (testWebKitDOMNodeFilterTreeWalker): 28 (testWebKitDOMNodeFilterNodeIterator): 29 (beforeAll): 30 (afterAll): 31 * gtk/webkitdom.py: 32 (WebKitDOMDocGeneratorSections.__init__): 33 (WebKitDOMDocGeneratorSections._symbol_list): 34 (WebKitDOMDocGeneratorSections.write_section): 35 1 36 2014-06-19 Carlos Garcia Campos <cgarcia@igalia.com> 2 37 -
trunk/Tools/Scripts/webkitpy/style/checker.py
r167350 r170174 154 154 "Source/WebCore/bindings/gobject/WebKitDOMDeprecated.h", 155 155 "Source/WebCore/bindings/gobject/WebKitDOMEventTarget.h", 156 "Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.h", 156 157 "Source/WebCore/bindings/scripts/test/GObject", 157 158 "Source/WebKit/gtk/webkit/", … … 161 162 "-readability/null", 162 163 "-readability/enum_casing", 164 "-whitespace/declaration", 165 "-whitespace/indent", 163 166 "-whitespace/parens"]), 164 167 … … 222 225 "Source/WebCore/bindings/gobject/WebKitDOMDeprecated.cpp", 223 226 "Source/WebCore/bindings/gobject/WebKitDOMEventTarget.cpp", 227 "Source/WebCore/bindings/gobject/WebKitDOMNodeFilter.cpp", 224 228 "Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer1.cpp", 225 229 "Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp", -
trunk/Tools/TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt
r169106 r170174 83 83 84 84 ADD_WK2_TEST_WEB_EXTENSION(WebExtensionTest WebExtensionTest.cpp) 85 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest DOMNodeTest.cpp FrameTest.cpp WebProcessTest.cpp)85 ADD_WK2_TEST_WEB_EXTENSION(WebProcessTest DOMNodeTest.cpp DOMNodeFilterTest.cpp FrameTest.cpp WebProcessTest.cpp) 86 86 87 87 ADD_WK2_TEST(InspectorTestServer InspectorTestServer.cpp) … … 91 91 ADD_WK2_TEST(TestCookieManager TestCookieManager.cpp) 92 92 ADD_WK2_TEST(TestDOMNode TestDOMNode.cpp) 93 ADD_WK2_TEST(TestDOMNodeFilter TestDOMNodeFilter.cpp) 93 94 ADD_WK2_TEST(TestDownloads TestDownloads.cpp) 94 95 ADD_WK2_TEST(TestWebKitFaviconDatabase TestWebKitFaviconDatabase.cpp) -
trunk/Tools/gtk/webkitdom.py
r170173 r170174 93 93 self._dom_class_re = re.compile('(^WebKitDOM)(.+)$') 94 94 self._function_re = re.compile('^.+ (.+)\((.+)\)$') 95 self._constant_re = re.compile('^[A-Z_]+$') 95 96 96 97 def _dom_class(self, class_name): … … 112 113 f = open(symbol_file, 'r') 113 114 for line in f.readlines(): 115 match = self._constant_re.match(line) 116 if match: 117 retval.append(line.strip('\n')) 118 continue 119 114 120 match = self._function_re.match(line) 115 121 if not match or match.group(1).endswith('get_type'): … … 122 128 class_name = os.path.basename(symbol_file).replace(".symbols", "") 123 129 is_custom = class_name == 'WebKitDOMCustom' 124 is_interface = class_name == 'WebKitDOMEventTarget'130 is_interface = class_name in ['WebKitDOMEventTarget', 'WebKitDOMNodeFilter'] 125 131 is_object = class_name == 'WebKitDOMObject' 126 132 self.write('<SECTION>\n')
Note: See TracChangeset
for help on using the changeset viewer.