Summary: | [MutationObservers] Make WebKitMutationObserver::deliverAllMutations() tolerant of re-entrant calls | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Rafael Weinstein <rafaelw> | ||||
Component: | DOM | Assignee: | Rafael Weinstein <rafaelw> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | adamk, ojan, rniwa, sam, webkit.review.bot | ||||
Priority: | P2 | ||||||
Version: | 528+ (Nightly build) | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Bug Depends on: | |||||||
Bug Blocks: | 68729 | ||||||
Attachments: |
|
Description
Rafael Weinstein
2011-11-30 11:01:54 PST
Created attachment 117228 [details]
Patch
Comment on attachment 117228 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=117228&action=review > Source/WebCore/dom/WebKitMutationObserver.cpp:139 > + return; Should we have an ASSERT_NOT_REACHED() before the return here? It's a bug in the C++ code if we ever hit this, right? No. We probably will reach it. deliveryAllMutations is likely going to invoke script for each observer. The easiest thing is for each embedder to simply hook ALL outer-most script invocations. This guard just means that for each delivery, the embedder will *try* and quietly fail to re-start delivery (which is already underway). Comment on attachment 117228 [details] Patch Clearing flags on attachment: 117228 Committed r101597: <http://trac.webkit.org/changeset/101597> All reviewed patches have been landed. Closing bug. |