Bug 44542

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

Dumitru Daniliuc
Reported 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.
Attachments
patch (4.10 KB, patch)
2010-08-24 12:43 PDT, Dumitru Daniliuc
dglazkov: review+
dumi: commit-queue-
Dumitru Daniliuc
Comment 1 2010-08-24 12:43:08 PDT
Dimitri Glazkov (Google)
Comment 2 2010-08-24 13:09:03 PDT
Comment on attachment 65308 [details] patch ok.
Dumitru Daniliuc
Comment 3 2010-08-24 14:42:58 PDT
landed: r65937.
Note You need to log in before you can comment on or make changes to this bug.