Title: [188745] trunk
Revision
188745
Author
[email protected]
Date
2015-08-20 20:05:02 -0700 (Thu, 20 Aug 2015)

Log Message

Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker()
https://bugs.webkit.org/show_bug.cgi?id=148257

Reviewed by Darin Adler.

Source/WebCore:

Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker().
It is supposed to be translated into a *null* NodeFilter. However, WebKit was constructing a
NodeFilter in this case.

Chrome and Firefox do not create a NodeFilter in this case.

No new tests, already covered by:
fast/dom/createNodeIterator-parameters.html
fast/dom/createTreeWalker-parameters.html

* bindings/js/JSNodeFilterCustom.cpp:
(WebCore::JSNodeFilter::toWrapped):

LayoutTests:

Rebaseline tests. We are now passing more of the checks.

* fast/dom/createNodeIterator-parameters-expected.txt:
* fast/dom/createTreeWalker-parameters-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (188744 => 188745)


--- trunk/LayoutTests/ChangeLog	2015-08-21 02:57:32 UTC (rev 188744)
+++ trunk/LayoutTests/ChangeLog	2015-08-21 03:05:02 UTC (rev 188745)
@@ -1,3 +1,15 @@
+2015-08-20  Chris Dumez  <[email protected]>
+
+        Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker()
+        https://bugs.webkit.org/show_bug.cgi?id=148257
+
+        Reviewed by Darin Adler.
+
+        Rebaseline tests. We are now passing more of the checks.
+
+        * fast/dom/createNodeIterator-parameters-expected.txt:
+        * fast/dom/createTreeWalker-parameters-expected.txt:
+
 2015-08-20  Myles C. Maxfield  <[email protected]>
 
         [iOS] Adopt OS X's emoji behavior

Modified: trunk/LayoutTests/fast/dom/createNodeIterator-parameters-expected.txt (188744 => 188745)


--- trunk/LayoutTests/fast/dom/createNodeIterator-parameters-expected.txt	2015-08-21 02:57:32 UTC (rev 188744)
+++ trunk/LayoutTests/fast/dom/createNodeIterator-parameters-expected.txt	2015-08-21 03:05:02 UTC (rev 188745)
@@ -19,7 +19,7 @@
 PASS iterator.root is document
 PASS iterator.referenceNode is document
 PASS iterator.whatToShow is 0
-FAIL iterator.filter should be null. Was [object NodeFilter].
+PASS iterator.filter is null
 PASS iterator.pointerBeforeReferenceNode is true
 
 Passing undefined for optional parameters
@@ -27,7 +27,7 @@
 PASS iterator.root is document
 PASS iterator.referenceNode is document
 FAIL iterator.whatToShow should be 4294967295. Was 0.
-FAIL iterator.filter should be null. Was [object NodeFilter].
+PASS iterator.filter is null
 PASS iterator.pointerBeforeReferenceNode is true
 PASS successfullyParsed is true
 

Modified: trunk/LayoutTests/fast/dom/createTreeWalker-parameters-expected.txt (188744 => 188745)


--- trunk/LayoutTests/fast/dom/createTreeWalker-parameters-expected.txt	2015-08-21 02:57:32 UTC (rev 188744)
+++ trunk/LayoutTests/fast/dom/createTreeWalker-parameters-expected.txt	2015-08-21 03:05:02 UTC (rev 188745)
@@ -18,14 +18,14 @@
 PASS walker.root is document
 PASS walker.currentNode is document
 PASS walker.whatToShow is 0
-FAIL walker.filter should be null. Was [object NodeFilter].
+PASS walker.filter is null
 
 Passing undefined for optional parameters
 walker = document.createTreeWalker(document, undefined, undefined)
 PASS walker.root is document
 PASS walker.currentNode is document
 FAIL walker.whatToShow should be 4294967295. Was 0.
-FAIL walker.filter should be null. Was [object NodeFilter].
+PASS walker.filter is null
 PASS successfullyParsed is true
 
 TEST COMPLETE

Modified: trunk/Source/WebCore/ChangeLog (188744 => 188745)


--- trunk/Source/WebCore/ChangeLog	2015-08-21 02:57:32 UTC (rev 188744)
+++ trunk/Source/WebCore/ChangeLog	2015-08-21 03:05:02 UTC (rev 188745)
@@ -1,3 +1,23 @@
+2015-08-20  Chris Dumez  <[email protected]>
+
+        Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker()
+        https://bugs.webkit.org/show_bug.cgi?id=148257
+
+        Reviewed by Darin Adler.
+
+        Fix passing null / undefined as NodeFilter parameter for createNodeIterator() / createTreeWalker().
+        It is supposed to be translated into a *null* NodeFilter. However, WebKit was constructing a
+        NodeFilter in this case.
+
+        Chrome and Firefox do not create a NodeFilter in this case.
+
+        No new tests, already covered by:
+        fast/dom/createNodeIterator-parameters.html
+        fast/dom/createTreeWalker-parameters.html
+
+        * bindings/js/JSNodeFilterCustom.cpp:
+        (WebCore::JSNodeFilter::toWrapped):
+
 2015-08-20  Zalan Bujtas  <[email protected]>
 
         Make outline: auto repaint rect inflate more explicit.

Modified: trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp (188744 => 188745)


--- trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp	2015-08-21 02:57:32 UTC (rev 188744)
+++ trunk/Source/WebCore/bindings/js/JSNodeFilterCustom.cpp	2015-08-21 03:05:02 UTC (rev 188745)
@@ -40,6 +40,9 @@
     if (value.inherits(JSNodeFilter::info()))
         return &JSC::jsCast<JSNodeFilter*>(asObject(value))->impl();
 
+    if (!value.isObject())
+        return nullptr;
+
     RefPtr<NodeFilter> result = NodeFilter::create();
     result->setCondition(JSNodeFilterCondition::create(vm, result.get(), value));
     return result;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to