diff --git a/common/frame.go b/common/frame.go index bdce65b62..58d1cb25d 100644 --- a/common/frame.go +++ b/common/frame.go @@ -199,25 +199,6 @@ func (f *Frame) recalculateLifecycle() { } f.lifecycleEventsMu.RUnlock() - // Only consider a life cycle event as fired if it has triggered for all of subtree. - f.childFramesMu.RLock() - { - for child := range f.childFrames { - cf := child.(*Frame) - // a precaution for preventing a deadlock in *Frame.childFramesMu - if cf == f { - continue - } - cf.recalculateLifecycle() - for k := range events { - if !cf.hasSubtreeLifecycleEventFired(k) { - delete(events, k) - } - } - } - } - f.childFramesMu.RUnlock() - // Check if any of the fired events should be considered fired when looking at the entire subtree. for k := range events { if f.hasSubtreeLifecycleEventFired(k) { diff --git a/common/frame_manager.go b/common/frame_manager.go index 13776178c..72ef91f71 100644 --- a/common/frame_manager.go +++ b/common/frame_manager.go @@ -195,7 +195,7 @@ func (m *FrameManager) frameLifecycleEvent(frameID cdp.FrameID, event LifecycleE frame := m.getFrameByID(frameID) if frame != nil { frame.onLifecycleEvent(event) - m.MainFrame().recalculateLifecycle() // Recalculate life cycle state from the top + frame.recalculateLifecycle() // Recalculate life cycle state from the top } }