Bug 1099092 - Navigation Timing has incorrect values when page is load via link with target=_blank attribute r=bz

This commit is contained in:
Valentin Gosu
2015-01-09 16:36:00 +02:00
parent 185b373bfc
commit 6837508863
3 changed files with 25 additions and 6 deletions

View File

@@ -195,6 +195,7 @@
#include "mozilla/dom/EncodingUtils.h"
#include "mozilla/dom/ScriptSettings.h"
#include "mozilla/dom/URLSearchParams.h"
#include "nsPerformance.h"
#ifdef MOZ_TOOLKIT_SEARCH
#include "nsIBrowserSearchService.h"
@@ -859,6 +860,7 @@ nsDocShell::nsDocShell():
mInvisible(false),
mHasLoadedNonBlankURI(false),
mDefaultLoadFlags(nsIRequest::LOAD_NORMAL),
mBlankTiming(false),
mFrameType(eFrameTypeRegular),
mOwnOrContainingAppId(nsIScriptSecurityManager::UNKNOWN_APP_ID),
mParentCharsetSource(0),
@@ -1770,11 +1772,22 @@ nsDocShell::FirePageHideNotification(bool aIsUnload)
void
nsDocShell::MaybeInitTiming()
{
if (mTiming) {
if (mTiming && !mBlankTiming) {
return;
}
mTiming = new nsDOMNavigationTiming();
if (mScriptGlobal && mBlankTiming) {
nsPIDOMWindow* innerWin = mScriptGlobal->GetCurrentInnerWindow();
if (innerWin && innerWin->GetPerformance()) {
mTiming = innerWin->GetPerformance()->GetDOMTiming();
mBlankTiming = false;
}
}
if (!mTiming) {
mTiming = new nsDOMNavigationTiming();
}
mTiming->NotifyNavigationStart();
}
@@ -7869,6 +7882,7 @@ nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal* aPrincipal,
// have one before entering this function.
if (!hadTiming) {
mTiming = nullptr;
mBlankTiming = true;
}
return rv;