Bug 121579
| Summary: | Make events propagate to ancestor nodes even if the event target is in disconnected DOM trees | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Ryosuke Niwa <rniwa> |
| Component: | UI Events | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED CONFIGURATION CHANGED | ||
| Severity: | Normal | CC: | ahmad.saleem792, ap, benjamin, bfulgham, darin, rreno, vitor.roriz |
| Priority: | P2 | Keywords: | BlinkMergeCandidate |
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Ryosuke Niwa
Consider merging https://chromium.googlesource.com/chromium/blink/+/2c37df54b669a4f9759ed935de5c704f14ce5d39
Fixed the ancient behavior which has been there from WebKit era.
I couldn't find any reason not to fix an event propagation for disconnected DOM trees.
Now blink behaves the same way as other browsers.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Ryosuke Niwa
Reverted in https://chromium.googlesource.com/chromium/blink/+/7480b6025e57f4df462fdb6d98a7d250f13cb850
Ahmad Saleem
Landed ultimately in - https://src.chromium.org/viewvc/blink?view=revision&revision=198153
Test Case - event-fire-disconnected-bubbling-click.html - https://jsfiddle.net/x925r36c/1/show
*** Safari 15.6.1 ***
PASS clickedOnParent is true
PASS clickedOnChild is true
PASS successfullyParsed is true
*** Firefox Nightly 105 ***
PASS clickedOnParent is true
PASS clickedOnChild is true
PASS successfullyParsed is true
*** Chrome Canary 106 ***
PASS clickedOnParent is true
PASS clickedOnChild is true
PASS successfullyParsed is true
_____
Test Case - event-fire-disconnected-bubbling-custom-event.html - https://jsfiddle.net/fp7t1ays/show
All browsers (same as above) showed below:
PASS eventReceivedOnParent is true
PASS eventReceivedOnChild is true
PASS successfullyParsed is true
____
Test Case - event-fire-disconnected-bubbling-mutation.html - https://jsfiddle.net/5vuwLcts/show
All browsers (same as above) showed below:
PASS eventReceivedOnParent is true
PASS eventReceivedOnChild is true
PASS successfullyParsed is true
___
Test Case - mouseout-dead-node.html - https://jsfiddle.net/6jgo3rcL/show
PASS successfullyParsed is true
TEST COMPLETE
PASS mouseout
PASS mouseout
PASS mouseout
NOTE - Only difference is in this test, where Chrome does not fire "PASS mouse out" after "TEST COMPLETE" while both Safari and Firefox do.
____
I will leave it for others to check on last test case whether the subtle difference from Chrome is an issue or not. Thanks!
Ryosuke Niwa
Sounds like config changed.