Fix js line numbers in html documents. b=111576, r=heikki, sr=jst a=asa,scc
git-svn-id: svn://10.0.0.236/branches/MOZILLA_1_0_BRANCH@119016 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -40,6 +40,8 @@
|
||||
#include "CParserContext.h"
|
||||
#include "nsToken.h"
|
||||
#include "prenv.h"
|
||||
#include "nsHTMLTokenizer.h"
|
||||
#include "nsExpatDriver.h"
|
||||
|
||||
MOZ_DECL_CTOR_COUNTER(CParserContext)
|
||||
|
||||
@@ -70,7 +72,8 @@ CParserContext::CParserContext(nsScanner* aScanner,
|
||||
mAutoDetectStatus=aStatus;
|
||||
mTransferBuffer=0;
|
||||
mDTD=aDTD;
|
||||
NS_IF_ADDREF(mDTD);
|
||||
NS_IF_ADDREF(mDTD);
|
||||
mTokenizer = 0;
|
||||
mTransferBufferSize=eTransferBufferSize;
|
||||
mStreamListenerState=eNone;
|
||||
mMultipart=PR_TRUE;
|
||||
@@ -103,6 +106,9 @@ CParserContext::CParserContext(const CParserContext &aContext) : mMimeType() {
|
||||
mDTD=aContext.mDTD;
|
||||
NS_IF_ADDREF(mDTD);
|
||||
|
||||
mTokenizer = aContext.mTokenizer;
|
||||
NS_IF_ADDREF(mTokenizer);
|
||||
|
||||
mTransferBufferSize=eTransferBufferSize;
|
||||
mStreamListenerState=aContext.mStreamListenerState;
|
||||
mMultipart=aContext.mMultipart;
|
||||
@@ -132,6 +138,7 @@ CParserContext::~CParserContext(){
|
||||
|
||||
NS_IF_RELEASE(mDTD);
|
||||
NS_IF_RELEASE(mListener);
|
||||
NS_IF_RELEASE(mTokenizer);
|
||||
|
||||
//Remember that it's ok to simply ingore the PrevContext.
|
||||
|
||||
@@ -149,11 +156,28 @@ void CParserContext::SetMimeType(const nsACString& aMimeType){
|
||||
|
||||
if(mMimeType.Equals(NS_LITERAL_CSTRING(kHTMLTextContentType)))
|
||||
mDocType=eHTML_Strict;
|
||||
else if (mMimeType.Equals(NS_LITERAL_CSTRING(kXMLTextContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXMLApplicationContentType)) ||
|
||||
else if (mMimeType.Equals(NS_LITERAL_CSTRING(kXMLTextContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXMLApplicationContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXHTMLApplicationContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXULTextContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kRDFTextContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXIFTextContentType)))
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kXULTextContentType)) ||
|
||||
mMimeType.Equals(NS_LITERAL_CSTRING(kRDFTextContentType)))
|
||||
mDocType=eXML;
|
||||
}
|
||||
|
||||
nsresult
|
||||
CParserContext::GetTokenizer(PRInt32 aType, nsITokenizer*& aTokenizer) {
|
||||
nsresult result = NS_OK;
|
||||
|
||||
if(!mTokenizer) {
|
||||
if (aType == NS_IPARSER_FLAG_HTML || mParserCommand == eViewSource) {
|
||||
result = NS_NewHTMLTokenizer(&mTokenizer,mDTDMode,mDocType,mParserCommand);
|
||||
}
|
||||
else if (aType == NS_IPARSER_FLAG_XML)
|
||||
{
|
||||
result = CallQueryInterface(mDTD, &mTokenizer);
|
||||
}
|
||||
}
|
||||
|
||||
aTokenizer = mTokenizer;
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user