Removing Notification.visitAncestor

Summary

Context

Description of change

Migration guide

Timeline

References

Summary

Notifications are more efficient by traversing only ancestors that
are notification listeners.

Context

The notification API traversed the element tree in order to locate a
notification receiver. This led to some unfortunate performance
characteristics:

If there was no receiver for a given notification type, the entire element
tree above the notification dispatch point would be traversed and type
checked.

For multiple notifications in a given frame (which is common for scroll
views) we ended up traversing the element tree multiple times.