better quirk mode handling

git-svn-id: svn://10.0.0.236/trunk@38544 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
peterl%netscape.com
1999-07-07 01:27:08 +00:00
parent 15c11067b3
commit 1faa1cdc54
4 changed files with 64 additions and 2 deletions

View File

@@ -137,7 +137,7 @@ nsHTMLDocument::nsHTMLDocument()
mNamedItems = nsnull;
mParser = nsnull;
nsHTMLAtoms::AddrefAtoms();
mDTDMode = eDTDMode_NoQuirks;
mDTDMode = eDTDMode_Nav;
mCSSLoader = nsnull;
// Find/Search Init
@@ -299,6 +299,25 @@ nsHTMLDocument::GetContentType(nsString& aContentType) const
return NS_OK;
}
NS_IMETHODIMP
nsHTMLDocument::CreateShell(nsIPresContext* aContext,
nsIViewManager* aViewManager,
nsIStyleSet* aStyleSet,
nsIPresShell** aInstancePtrResult)
{
nsresult result = nsMarkupDocument::CreateShell(aContext,
aViewManager,
aStyleSet,
aInstancePtrResult);
if (NS_SUCCEEDED(result)) {
aContext->SetCompatibilityMode(((eDTDMode_NoQuirks == mDTDMode) ?
eCompatibility_Standard :
eCompatibility_NavQuirks));
}
return result;
}
NS_IMETHODIMP
nsHTMLDocument::StartDocumentLoad(nsIURI *aURL,
nsIContentViewerContainer* aContainer,
@@ -631,6 +650,10 @@ nsHTMLDocument::GetCSSLoader(nsICSSLoader*& aLoader)
if (! mCSSLoader) {
result = NS_NewCSSLoader(this, &mCSSLoader);
}
if (mCSSLoader) {
mCSSLoader->SetCaseSensitive(PR_FALSE);
mCSSLoader->SetQuirkMode(PRBool(eDTDMode_NoQuirks != mDTDMode));
}
aLoader = mCSSLoader;
NS_IF_ADDREF(aLoader);
return result;
@@ -648,6 +671,9 @@ NS_IMETHODIMP
nsHTMLDocument::SetDTDMode(nsDTDMode aMode)
{
mDTDMode = aMode;
if (mCSSLoader) {
mCSSLoader->SetQuirkMode(PRBool(eDTDMode_NoQuirks != mDTDMode));
}
return NS_OK;
}