Bug 44542

Summary: [Chromium] The V8 NodeFilter wrapper needs to be fixed
Product: WebKit Reporter: Dumitru Daniliuc <dumi>
Component: New BugsAssignee: Dumitru Daniliuc <dumi>
Severity: Normal CC: abarth
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Description Flags
patch dglazkov: review+, dumi: commit-queue-

Description Dumitru Daniliuc 2010-08-24 12:06:33 PDT
V8DOMWrapper::wrapNativeNodeFilter() returns NULL if the argument is not a function. At the same time, Traversal::acceptNode() accepts all NULL filters. So if we pass in a filter that's not a function, we end up accepting it, instead of throwing an exception.

After http://trac.webkit.org/changeset/65853 the expectation is that only functions and objects with an acceptNode() method should be accepted. Everything else should be rejected. So we should change V8DOMWrapper::wrapNativeNodeFilter() to always create a filter, and update V8NodeFilterCondition::acceptNode() to check for these conditions, like JSNodeFilterCondition::acceptNode() does.
Comment 1 Dumitru Daniliuc 2010-08-24 12:43:08 PDT
Created attachment 65308 [details]
Comment 2 Dimitri Glazkov (Google) 2010-08-24 13:09:03 PDT
Comment on attachment 65308 [details]

Comment 3 Dumitru Daniliuc 2010-08-24 14:42:58 PDT
landed: r65937.