Thanks! I hadn't noticed that. I'm taking a look now. So, it seems this is simply a way to trigger Document destruction without having ever fired "PageHide()". And SMILAnimationController expects/asserts that PageHide should've been fired before it's torn down. This used to be more important back in the pre-RefreshDriver days, when (I think) SMIL had its own timer, which could continue firing even after the document was destroyed. "PageHide" is where we stop sampling, so we're expecting to always receive that & officially stop sampling before the document & animation controller are torn down. I wonder if it's known/intended that we can hit mozilla::dom::Document::Destroy in this scenario without ever having received a Document::OnPageHide call (and if that causes any other trouble)...?
Bug 1535388 Comment 6 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Thanks! I hadn't noticed that. I'm taking a look now. So, it seems this is simply a way to trigger Document destruction without having ever fired "PageHide()". And SMILAnimationController expects/asserts that PageHide should've been fired before it's torn down. This used to be more important back in the pre-RefreshDriver days, when (I think) SMIL had its own timer, which could hypothetically continue firing even after the document was destroyed if we neglected to officially stop sampling. "PageHide" is where we expect to stop sampling -- we expect to always receive that notification & officially stop sampling before the document & animation controller are torn down. I wonder if it's known/intended that we can hit mozilla::dom::Document::Destroy in this scenario without ever having received a Document::OnPageHide call (and if that causes any other trouble)...?