зеркало из https://github.com/mozilla/pjs.git
Make public identifier matching case-insensitive to expand the set of public identifiers triggering quirks mode since some existing pages use FPIs with incorrect case. Add two additional FPIs to the list. b=98977 r=harishd sr=waterson
This commit is contained in:
Родитель
b24a232f7a
Коммит
36bdd08511
|
@ -915,75 +915,84 @@ struct PubIDInfo {
|
|||
|
||||
// These must be in nsCRT::strcmp order so binary-search can be used.
|
||||
// This is verified, |#ifdef DEBUG|, below.
|
||||
|
||||
// Even though public identifiers should be case sensitive, we will do
|
||||
// all comparisons after converting to lower case in order to do
|
||||
// case-insensitive comparison since there are a number of existing web
|
||||
// sites that use the incorrect case. Therefore all of the public
|
||||
// identifiers below are in lower case (with the correct case following,
|
||||
// in comments). The case is verified, |#ifdef DEBUG|, below.
|
||||
static const PubIDInfo kPublicIDs[] = {
|
||||
{"+//Silmaril//DTD HTML Pro v0r11 19970101//EN", PubIDInfo::eQuirks3},
|
||||
{"-//AS//DTD HTML 3.0 asWedit + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.1E//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 3.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 0//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 1//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 2//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 3//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 3//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 0//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 1//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 2//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 3//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 3//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//Metrius//DTD Metrius Presentational//EN", PubIDInfo::eQuirks},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 Tables//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 Tables//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Netscape Comm. Corp.//DTD HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Netscape Comm. Corp.//DTD Strict HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML Extended 1.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Spyglass//DTD HTML 2.0 Extended//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Sun Microsystems Corp.//DTD HotJava HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3 1995-03-24//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2 Draft//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2 Final//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2S Draft//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 4.0 Frameset//EN", PubIDInfo::eQuirks},
|
||||
{"-//W3C//DTD HTML 4.0 Transitional//EN", PubIDInfo::eQuirks},
|
||||
{"-//W3C//DTD HTML 4.01 Frameset//EN", PubIDInfo::eStrictIfSysID},
|
||||
{"-//W3C//DTD HTML 4.01 Transitional//EN", PubIDInfo::eStrictIfSysID},
|
||||
{"-//W3C//DTD HTML Experimental 19960712//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML Experimental 970421//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML 3.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML Strict 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//WebTechs//DTD Mozilla HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//WebTechs//DTD Mozilla HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"HTML", PubIDInfo::eQuirks3},
|
||||
{"+//silmaril//dtd html pro v0r11 19970101//en" /* "+//Silmaril//dtd html Pro v0r11 19970101//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//advasoft ltd//dtd html 3.0 aswedit + extensions//en" /* "-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//as//dtd html 3.0 aswedit + extensions//en" /* "-//AS//DTD HTML 3.0 asWedit + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 level 1//en" /* "-//IETF//DTD HTML 2.0 Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 level 2//en" /* "-//IETF//DTD HTML 2.0 Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict level 1//en" /* "-//IETF//DTD HTML 2.0 Strict Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict level 2//en" /* "-//IETF//DTD HTML 2.0 Strict Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict//en" /* "-//IETF//DTD HTML 2.0 Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0//en" /* "-//IETF//DTD HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.1e//en" /* "-//IETF//DTD HTML 2.1E//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.0//en" /* "-//IETF//DTD HTML 3.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.0//en//" /* "-//IETF//DTD HTML 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.2//en" /* "-//IETF//DTD HTML 3.2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 0//en" /* "-//IETF//DTD HTML Level 0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 0//en//2.0" /* "-//IETF//DTD HTML Level 0//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 1//en" /* "-//IETF//DTD HTML Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 1//en//2.0" /* "-//IETF//DTD HTML Level 1//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 2//en" /* "-//IETF//DTD HTML Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 2//en//2.0" /* "-//IETF//DTD HTML Level 2//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 3//en" /* "-//IETF//DTD HTML Level 3//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 3//en//3.0" /* "-//IETF//DTD HTML Level 3//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 0//en" /* "-//IETF//DTD HTML Strict Level 0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 0//en//2.0" /* "-//IETF//DTD HTML Strict Level 0//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 1//en" /* "-//IETF//DTD HTML Strict Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 1//en//2.0" /* "-//IETF//DTD HTML Strict Level 1//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 2//en" /* "-//IETF//DTD HTML Strict Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 2//en//2.0" /* "-//IETF//DTD HTML Strict Level 2//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 3//en" /* "-//IETF//DTD HTML Strict Level 3//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 3//en//3.0" /* "-//IETF//DTD HTML Strict Level 3//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en" /* "-//IETF//DTD HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en//2.0" /* "-//IETF//DTD HTML Strict//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en//3.0" /* "-//IETF//DTD HTML Strict//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en" /* "-//IETF//DTD HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en//2.0" /* "-//IETF//DTD HTML//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en//3.0" /* "-//IETF//DTD HTML//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//metrius//dtd metrius presentational//en" /* "-//Metrius//DTD Metrius Presentational//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//microsoft//dtd internet explorer 2.0 html strict//en" /* "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 2.0 html//en" /* "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 2.0 tables//en" /* "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 html strict//en" /* "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 html//en" /* "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 tables//en" /* "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//netscape comm. corp.//dtd html//en" /* "-//Netscape Comm. Corp.//DTD HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//netscape comm. corp.//dtd strict html//en" /* "-//Netscape Comm. Corp.//DTD Strict HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html 2.0//en" /* "-//O'Reilly and Associates//DTD HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html extended 1.0//en" /* "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html extended relaxed 1.0//en" /* "-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//en" /* "-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//spyglass//dtd html 2.0 extended//en" /* "-//Spyglass//DTD HTML 2.0 Extended//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sq//dtd html 2.0 hotmetal + extensions//en" /* "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sun microsystems corp.//dtd hotjava html//en" /* "-//Sun Microsystems Corp.//DTD HotJava HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sun microsystems corp.//dtd hotjava strict html//en" /* "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3 1995-03-24//en" /* "-//W3C//DTD HTML 3 1995-03-24//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2 draft//en" /* "-//W3C//DTD HTML 3.2 Draft//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2 final//en" /* "-//W3C//DTD HTML 3.2 Final//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2//en" /* "-//W3C//DTD HTML 3.2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2s draft//en" /* "-//W3C//DTD HTML 3.2S Draft//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 4.0 frameset//en" /* "-//W3C//DTD HTML 4.0 Frameset//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//w3c//dtd html 4.0 transitional//en" /* "-//W3C//DTD HTML 4.0 Transitional//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//w3c//dtd html 4.01 frameset//en" /* "-//W3C//DTD HTML 4.01 Frameset//EN" */, PubIDInfo::eStrictIfSysID},
|
||||
{"-//w3c//dtd html 4.01 transitional//en" /* "-//W3C//DTD HTML 4.01 Transitional//EN" */, PubIDInfo::eStrictIfSysID},
|
||||
{"-//w3c//dtd html experimental 19960712//en" /* "-//W3C//DTD HTML Experimental 19960712//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html experimental 970421//en" /* "-//W3C//DTD HTML Experimental 970421//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd w3 html//en" /* "-//W3C//DTD W3 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html 3.0//en" /* "-//W3O//DTD W3 HTML 3.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html 3.0//en//" /* "-//W3O//DTD W3 HTML 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html strict 3.0//en//" /* "-//W3O//DTD W3 HTML Strict 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//webtechs//dtd mozilla html 2.0//en" /* "-//WebTechs//DTD Mozilla HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//webtechs//dtd mozilla html//en" /* "-//WebTechs//DTD Mozilla HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"html" /* "HTML" */, PubIDInfo::eQuirks3},
|
||||
};
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -999,6 +1008,14 @@ static void VerifyPublicIDs()
|
|||
kPublicIDs[i].name, kPublicIDs[i+1].name);
|
||||
}
|
||||
}
|
||||
for (PRUint32 i = 0; i < ELEMENTS_OF(kPublicIDs); ++i) {
|
||||
nsCAutoString lcPubID(kPublicIDs[i].name);
|
||||
lcPubID.ToLowerCase();
|
||||
if (nsCRT::strcmp(kPublicIDs[i].name, lcPubID.get()) != 0) {
|
||||
NS_NOTREACHED("doctype not lower case");
|
||||
printf("Doctype %s not lower case.\n", kPublicIDs[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -1040,6 +1057,10 @@ static void DetermineHTMLParseMode(nsString& aBuffer,
|
|||
nsCAutoString publicID;
|
||||
publicID.AssignWithConversion(publicIDUCS2);
|
||||
|
||||
// See comment above definition of kPublicIDs about case
|
||||
// sensitivity.
|
||||
publicID.ToLowerCase();
|
||||
|
||||
// binary search to see if we can find the correct public ID
|
||||
PRUint32 minimum = 0;
|
||||
PRUint32 maximum = ELEMENTS_OF(kPublicIDs) - 1;
|
||||
|
|
|
@ -915,75 +915,84 @@ struct PubIDInfo {
|
|||
|
||||
// These must be in nsCRT::strcmp order so binary-search can be used.
|
||||
// This is verified, |#ifdef DEBUG|, below.
|
||||
|
||||
// Even though public identifiers should be case sensitive, we will do
|
||||
// all comparisons after converting to lower case in order to do
|
||||
// case-insensitive comparison since there are a number of existing web
|
||||
// sites that use the incorrect case. Therefore all of the public
|
||||
// identifiers below are in lower case (with the correct case following,
|
||||
// in comments). The case is verified, |#ifdef DEBUG|, below.
|
||||
static const PubIDInfo kPublicIDs[] = {
|
||||
{"+//Silmaril//DTD HTML Pro v0r11 19970101//EN", PubIDInfo::eQuirks3},
|
||||
{"-//AS//DTD HTML 3.0 asWedit + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0 Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 2.1E//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 3.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 0//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 1//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 2//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 3//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Level 3//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 0//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 1//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 1//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 2//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 3//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict Level 3//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML Strict//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN//2.0", PubIDInfo::eQuirks3},
|
||||
{"-//IETF//DTD HTML//EN//3.0", PubIDInfo::eQuirks3},
|
||||
{"-//Metrius//DTD Metrius Presentational//EN", PubIDInfo::eQuirks},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 2.0 Tables//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Microsoft//DTD Internet Explorer 3.0 Tables//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Netscape Comm. Corp.//DTD HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Netscape Comm. Corp.//DTD Strict HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML Extended 1.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN", PubIDInfo::eQuirks3},
|
||||
{"-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Spyglass//DTD HTML 2.0 Extended//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Sun Microsystems Corp.//DTD HotJava HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3 1995-03-24//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2 Draft//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2 Final//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 3.2S Draft//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML 4.0 Frameset//EN", PubIDInfo::eQuirks},
|
||||
{"-//W3C//DTD HTML 4.0 Transitional//EN", PubIDInfo::eQuirks},
|
||||
{"-//W3C//DTD HTML 4.01 Frameset//EN", PubIDInfo::eStrictIfSysID},
|
||||
{"-//W3C//DTD HTML 4.01 Transitional//EN", PubIDInfo::eStrictIfSysID},
|
||||
{"-//W3C//DTD HTML Experimental 19960712//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3C//DTD HTML Experimental 970421//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML 3.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//W3O//DTD W3 HTML Strict 3.0//EN//", PubIDInfo::eQuirks3},
|
||||
{"-//WebTechs//DTD Mozilla HTML 2.0//EN", PubIDInfo::eQuirks3},
|
||||
{"-//WebTechs//DTD Mozilla HTML//EN", PubIDInfo::eQuirks3},
|
||||
{"HTML", PubIDInfo::eQuirks3},
|
||||
{"+//silmaril//dtd html pro v0r11 19970101//en" /* "+//Silmaril//dtd html Pro v0r11 19970101//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//advasoft ltd//dtd html 3.0 aswedit + extensions//en" /* "-//AdvaSoft Ltd//DTD HTML 3.0 asWedit + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//as//dtd html 3.0 aswedit + extensions//en" /* "-//AS//DTD HTML 3.0 asWedit + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 level 1//en" /* "-//IETF//DTD HTML 2.0 Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 level 2//en" /* "-//IETF//DTD HTML 2.0 Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict level 1//en" /* "-//IETF//DTD HTML 2.0 Strict Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict level 2//en" /* "-//IETF//DTD HTML 2.0 Strict Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0 strict//en" /* "-//IETF//DTD HTML 2.0 Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.0//en" /* "-//IETF//DTD HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 2.1e//en" /* "-//IETF//DTD HTML 2.1E//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.0//en" /* "-//IETF//DTD HTML 3.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.0//en//" /* "-//IETF//DTD HTML 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html 3.2//en" /* "-//IETF//DTD HTML 3.2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 0//en" /* "-//IETF//DTD HTML Level 0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 0//en//2.0" /* "-//IETF//DTD HTML Level 0//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 1//en" /* "-//IETF//DTD HTML Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 1//en//2.0" /* "-//IETF//DTD HTML Level 1//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 2//en" /* "-//IETF//DTD HTML Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 2//en//2.0" /* "-//IETF//DTD HTML Level 2//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 3//en" /* "-//IETF//DTD HTML Level 3//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html level 3//en//3.0" /* "-//IETF//DTD HTML Level 3//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 0//en" /* "-//IETF//DTD HTML Strict Level 0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 0//en//2.0" /* "-//IETF//DTD HTML Strict Level 0//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 1//en" /* "-//IETF//DTD HTML Strict Level 1//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 1//en//2.0" /* "-//IETF//DTD HTML Strict Level 1//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 2//en" /* "-//IETF//DTD HTML Strict Level 2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 2//en//2.0" /* "-//IETF//DTD HTML Strict Level 2//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 3//en" /* "-//IETF//DTD HTML Strict Level 3//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict level 3//en//3.0" /* "-//IETF//DTD HTML Strict Level 3//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en" /* "-//IETF//DTD HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en//2.0" /* "-//IETF//DTD HTML Strict//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html strict//en//3.0" /* "-//IETF//DTD HTML Strict//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en" /* "-//IETF//DTD HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en//2.0" /* "-//IETF//DTD HTML//EN//2.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//ietf//dtd html//en//3.0" /* "-//IETF//DTD HTML//EN//3.0" */, PubIDInfo::eQuirks3},
|
||||
{"-//metrius//dtd metrius presentational//en" /* "-//Metrius//DTD Metrius Presentational//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//microsoft//dtd internet explorer 2.0 html strict//en" /* "-//Microsoft//DTD Internet Explorer 2.0 HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 2.0 html//en" /* "-//Microsoft//DTD Internet Explorer 2.0 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 2.0 tables//en" /* "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 html strict//en" /* "-//Microsoft//DTD Internet Explorer 3.0 HTML Strict//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 html//en" /* "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//microsoft//dtd internet explorer 3.0 tables//en" /* "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//netscape comm. corp.//dtd html//en" /* "-//Netscape Comm. Corp.//DTD HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//netscape comm. corp.//dtd strict html//en" /* "-//Netscape Comm. Corp.//DTD Strict HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html 2.0//en" /* "-//O'Reilly and Associates//DTD HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html extended 1.0//en" /* "-//O'Reilly and Associates//DTD HTML Extended 1.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//o'reilly and associates//dtd html extended relaxed 1.0//en" /* "-//O'Reilly and Associates//DTD HTML Extended Relaxed 1.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//en" /* "-//SoftQuad Software//DTD HoTMetaL PRO 6.0::19990601::extensions to HTML 4.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//spyglass//dtd html 2.0 extended//en" /* "-//Spyglass//DTD HTML 2.0 Extended//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sq//dtd html 2.0 hotmetal + extensions//en" /* "-//SQ//DTD HTML 2.0 HoTMetaL + extensions//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sun microsystems corp.//dtd hotjava html//en" /* "-//Sun Microsystems Corp.//DTD HotJava HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//sun microsystems corp.//dtd hotjava strict html//en" /* "-//Sun Microsystems Corp.//DTD HotJava Strict HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3 1995-03-24//en" /* "-//W3C//DTD HTML 3 1995-03-24//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2 draft//en" /* "-//W3C//DTD HTML 3.2 Draft//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2 final//en" /* "-//W3C//DTD HTML 3.2 Final//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2//en" /* "-//W3C//DTD HTML 3.2//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 3.2s draft//en" /* "-//W3C//DTD HTML 3.2S Draft//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html 4.0 frameset//en" /* "-//W3C//DTD HTML 4.0 Frameset//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//w3c//dtd html 4.0 transitional//en" /* "-//W3C//DTD HTML 4.0 Transitional//EN" */, PubIDInfo::eQuirks},
|
||||
{"-//w3c//dtd html 4.01 frameset//en" /* "-//W3C//DTD HTML 4.01 Frameset//EN" */, PubIDInfo::eStrictIfSysID},
|
||||
{"-//w3c//dtd html 4.01 transitional//en" /* "-//W3C//DTD HTML 4.01 Transitional//EN" */, PubIDInfo::eStrictIfSysID},
|
||||
{"-//w3c//dtd html experimental 19960712//en" /* "-//W3C//DTD HTML Experimental 19960712//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd html experimental 970421//en" /* "-//W3C//DTD HTML Experimental 970421//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3c//dtd w3 html//en" /* "-//W3C//DTD W3 HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html 3.0//en" /* "-//W3O//DTD W3 HTML 3.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html 3.0//en//" /* "-//W3O//DTD W3 HTML 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//w3o//dtd w3 html strict 3.0//en//" /* "-//W3O//DTD W3 HTML Strict 3.0//EN//" */, PubIDInfo::eQuirks3},
|
||||
{"-//webtechs//dtd mozilla html 2.0//en" /* "-//WebTechs//DTD Mozilla HTML 2.0//EN" */, PubIDInfo::eQuirks3},
|
||||
{"-//webtechs//dtd mozilla html//en" /* "-//WebTechs//DTD Mozilla HTML//EN" */, PubIDInfo::eQuirks3},
|
||||
{"html" /* "HTML" */, PubIDInfo::eQuirks3},
|
||||
};
|
||||
|
||||
#ifdef DEBUG
|
||||
|
@ -999,6 +1008,14 @@ static void VerifyPublicIDs()
|
|||
kPublicIDs[i].name, kPublicIDs[i+1].name);
|
||||
}
|
||||
}
|
||||
for (PRUint32 i = 0; i < ELEMENTS_OF(kPublicIDs); ++i) {
|
||||
nsCAutoString lcPubID(kPublicIDs[i].name);
|
||||
lcPubID.ToLowerCase();
|
||||
if (nsCRT::strcmp(kPublicIDs[i].name, lcPubID.get()) != 0) {
|
||||
NS_NOTREACHED("doctype not lower case");
|
||||
printf("Doctype %s not lower case.\n", kPublicIDs[i].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -1040,6 +1057,10 @@ static void DetermineHTMLParseMode(nsString& aBuffer,
|
|||
nsCAutoString publicID;
|
||||
publicID.AssignWithConversion(publicIDUCS2);
|
||||
|
||||
// See comment above definition of kPublicIDs about case
|
||||
// sensitivity.
|
||||
publicID.ToLowerCase();
|
||||
|
||||
// binary search to see if we can find the correct public ID
|
||||
PRUint32 minimum = 0;
|
||||
PRUint32 maximum = ELEMENTS_OF(kPublicIDs) - 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче