Layout:IntersectionObserver: Difference between revisions
Tschneider (talk | contribs) (Describe lifetime in FF >= 58) |
Tschneider (talk | contribs) (Fix typos) |
||
| Line 46: | Line 46: | ||
''nsNodeUtils::LastRelease'' calls ''DOMIntersectionObserver::UnlinkElement'' for every observer in | ''nsNodeUtils::LastRelease'' calls ''DOMIntersectionObserver::UnlinkElement'' for every observer in | ||
'' | ''Property(nsGkAtoms::intersectionobserverlist)''. | ||
''nsDomSlots::Unlink'' calls ''DOMIntersectionObserver::UnlinkElement'' for every observer in | ''nsDomSlots::Unlink'' calls ''DOMIntersectionObserver::UnlinkElement'' for every observer in | ||
'' | ''Property(nsGkAtoms::intersectionobserverlist)''. | ||
Revision as of 18:07, 25 October 2017
Lifetime (as in FF < 58)
Linking steps:
DOMIntersectionObserver::observe(Element& aTarget) adds aTarget to DOMIntersectionObserver::mObservationTargets and calls Element::RegisterIntersectionObsever on aTarget. If aTarget is the first item in DOMIntersectionObserver::mObservationTargets, nsDocument::AddIntersectionObserver is called and the observer gets added to nsDocument::mIntersectionObservers.
Element::RegisterIntersectionObserver(DOMIntersectionObserver* aObserver) adds aObserver to mSlots::mRegisteredIntersectionObservers.
Unlinking steps:
DOMIntersectionObserver::unobserve(Element& aTarget) removes aTarget from DOMIntersectionObserver::mObservationTargets and calls Element::UnregisterIntersectionObsever on aTarget. If aTarget is the last item in DOMIntersectionObserver::mObservationTargets, nsDocument::RemoveIntersectionObserver is called and the observer gets removed from nsDocument::mIntersectionObservers.
DOMIntersectionObserver::Disconnect() calls Element::UnregisterIntersectionObsever for every item in DOMIntersectionObserver::mObservationTargets.
Element::UnregisterIntersectionObserver(DOMIntersectionObserver* aObserver) removes aObserver from mSlots::mRegisteredIntersectionObservers.
DOMIntersectionObserver::~DOMIntersectionObserver calls DOMIntersectionObserver::Disconnect().
DOMIntersectionObserver::Unlink calls DOMIntersectionObserver::Disconnect().
nsNodeUtils::LastRelease calls DOMIntersectionObserver::UnlinkTarget for every observer in nsSlots::mRegisteredIntersectionObservers.
nsDomSlots::Unlink calls DOMIntersectionObserver::UnlinkTarget for every observer in nsSlots::mRegisteredIntersectionObservers.
Lifetime (as in FF >= 58)
DOMIntersectionObserver::observe(Element& aTarget) adds aTarget to DOMIntersectionObserver::mObservationTargets and calls Element::RegisterIntersectionObsever on aTarget. If aTarget is the first item in DOMIntersectionObserver::mObservationTargets, nsDocument::AddIntersectionObserver is called and the observer gets added to nsDocument::mIntersectionObservers.
Element::RegisterIntersectionObserver(DOMIntersectionObserver* aObserver) adds aObserver to Property(nsGkAtoms::intersectionobserverlist).
Unlinking steps:
DOMIntersectionObserver::unobserve(Element& aTarget) removes aTarget from DOMIntersectionObserver::mObservationTargets and calls Element::UnregisterIntersectionObsever on aTarget. If aTarget is the last item in DOMIntersectionObserver::mObservationTargets, nsDocument::RemoveIntersectionObserver is called and the observer gets removed from nsDocument::mIntersectionObservers.
DOMIntersectionObserver::Disconnect() calls Element::UnregisterIntersectionObsever for every item in DOMIntersectionObserver::mObservationTargets.
Element::UnregisterIntersectionObserver(DOMIntersectionObserver* aObserver) removes aObserver from Property(nsGkAtoms::intersectionobserverlist).
DOMIntersectionObserver::~DOMIntersectionObserver calls DOMIntersectionObserver::Disconnect().
DOMIntersectionObserver::Unlink calls DOMIntersectionObserver::Disconnect().
nsNodeUtils::LastRelease calls DOMIntersectionObserver::UnlinkElement for every observer in Property(nsGkAtoms::intersectionobserverlist).
nsDomSlots::Unlink calls DOMIntersectionObserver::UnlinkElement for every observer in Property(nsGkAtoms::intersectionobserverlist).