Bug 1457102: Avoid all the work if the compat mode hasn't actually changed. r?heycam
In this case the stylist is marked dirty because a compat mode change. The
change just doesn't exist (NavQuirks -> NavQuirks).
So avoid the work in the first place.
MozReview-Commit-ID: lchKJECNkO
--- a/dom/html/nsHTMLDocument.cpp
+++ b/dom/html/nsHTMLDocument.cpp
@@ -848,16 +848,19 @@ nsHTMLDocument::EndLoad()
}
void
nsHTMLDocument::SetCompatibilityMode(nsCompatibility aMode)
{
NS_ASSERTION(IsHTMLDocument() || aMode == eCompatibility_FullStandards,
"Bad compat mode for XHTML document!");
+ if (mCompatMode == aMode) {
+ return;
+ }
mCompatMode = aMode;
CSSLoader()->SetCompatibilityMode(mCompatMode);
RefPtr<nsPresContext> pc = GetPresContext();
if (pc) {
pc->CompatibilityModeChanged();
}
}