diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 5ff95ac448a7..6071ef532014 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -1728,7 +1728,9 @@ nsDocShell::MaybeInitTiming() mTiming = new nsDOMNavigationTiming(); } - mTiming->NotifyNavigationStart(); + mTiming->NotifyNavigationStart( + mIsActive ? nsDOMNavigationTiming::DocShellState::eActive + : nsDOMNavigationTiming::DocShellState::eInactive); } // @@ -6219,6 +6221,20 @@ nsDocShell::SetIsActive(bool aIsActive) } } + // Tell the nsDOMNavigationTiming about it + RefPtr timing = mTiming; + if (!timing && mContentViewer) { + nsIDocument* doc = mContentViewer->GetDocument(); + if (doc) { + timing = doc->GetNavigationTiming(); + } + } + if (timing) { + timing->NotifyDocShellStateChanged( + aIsActive ? nsDOMNavigationTiming::DocShellState::eActive + : nsDOMNavigationTiming::DocShellState::eInactive); + } + // Recursively tell all of our children, but don't tell