зеркало из https://github.com/mozilla/pjs.git
WIP on fixing <noscript> bug for real -- post dogfood. r=syd
This commit is contained in:
Родитель
10e1f95da8
Коммит
78c5d8cb44
|
@ -262,6 +262,7 @@ public:
|
|||
PRInt32 mStyleSheetCount;
|
||||
nsICSSLoader* mCSSLoader;
|
||||
PRUint32 mContentIDCounter;
|
||||
PRInt32 mInsideNoXXXTag;
|
||||
|
||||
void StartLayout();
|
||||
|
||||
|
@ -1197,6 +1198,14 @@ SinkContext::OpenContainer(const nsIParserNode& aNode)
|
|||
|
||||
// Special handling for certain tags
|
||||
switch (nodeType) {
|
||||
|
||||
case eHTMLTag_noembed:
|
||||
case eHTMLTag_noframes:
|
||||
case eHTMLTag_nolayer:
|
||||
case eHTMLTag_noscript:
|
||||
mSink->mInsideNoXXXTag++;
|
||||
break;
|
||||
|
||||
case eHTMLTag_a:
|
||||
mSink->ProcessATag(aNode, content);
|
||||
break;
|
||||
|
@ -1293,6 +1302,13 @@ SinkContext::CloseContainer(const nsIParserNode& aNode)
|
|||
// Special handling for certain tags
|
||||
switch (nodeType) {
|
||||
|
||||
case eHTMLTag_noembed:
|
||||
case eHTMLTag_noframes:
|
||||
case eHTMLTag_nolayer:
|
||||
case eHTMLTag_noscript:
|
||||
mSink->mInsideNoXXXTag--;
|
||||
break;
|
||||
|
||||
case eHTMLTag_form:
|
||||
{
|
||||
nsHTMLTag parserNodeType = nsHTMLTag(aNode.GetNodeType());
|
||||
|
@ -1894,8 +1910,7 @@ NS_NewHTMLContentSink(nsIHTMLContentSink** aResult,
|
|||
}
|
||||
|
||||
// Note: operator new zeros our memory
|
||||
HTMLContentSink::HTMLContentSink()
|
||||
{
|
||||
HTMLContentSink::HTMLContentSink() {
|
||||
#ifdef NS_DEBUG
|
||||
if (nsnull == gSinkLogModuleInfo) {
|
||||
gSinkLogModuleInfo = PR_NewLogModule("htmlcontentsink");
|
||||
|
@ -1904,6 +1919,7 @@ HTMLContentSink::HTMLContentSink()
|
|||
mNotAtRef = PR_TRUE;
|
||||
mContentIDCounter = NS_CONTENT_ID_COUNTER_BASE;
|
||||
mInScript = 0;
|
||||
mInsideNoXXXTag = 0;
|
||||
}
|
||||
|
||||
HTMLContentSink::~HTMLContentSink()
|
||||
|
|
|
@ -262,6 +262,7 @@ public:
|
|||
PRInt32 mStyleSheetCount;
|
||||
nsICSSLoader* mCSSLoader;
|
||||
PRUint32 mContentIDCounter;
|
||||
PRInt32 mInsideNoXXXTag;
|
||||
|
||||
void StartLayout();
|
||||
|
||||
|
@ -1197,6 +1198,14 @@ SinkContext::OpenContainer(const nsIParserNode& aNode)
|
|||
|
||||
// Special handling for certain tags
|
||||
switch (nodeType) {
|
||||
|
||||
case eHTMLTag_noembed:
|
||||
case eHTMLTag_noframes:
|
||||
case eHTMLTag_nolayer:
|
||||
case eHTMLTag_noscript:
|
||||
mSink->mInsideNoXXXTag++;
|
||||
break;
|
||||
|
||||
case eHTMLTag_a:
|
||||
mSink->ProcessATag(aNode, content);
|
||||
break;
|
||||
|
@ -1293,6 +1302,13 @@ SinkContext::CloseContainer(const nsIParserNode& aNode)
|
|||
// Special handling for certain tags
|
||||
switch (nodeType) {
|
||||
|
||||
case eHTMLTag_noembed:
|
||||
case eHTMLTag_noframes:
|
||||
case eHTMLTag_nolayer:
|
||||
case eHTMLTag_noscript:
|
||||
mSink->mInsideNoXXXTag--;
|
||||
break;
|
||||
|
||||
case eHTMLTag_form:
|
||||
{
|
||||
nsHTMLTag parserNodeType = nsHTMLTag(aNode.GetNodeType());
|
||||
|
@ -1894,8 +1910,7 @@ NS_NewHTMLContentSink(nsIHTMLContentSink** aResult,
|
|||
}
|
||||
|
||||
// Note: operator new zeros our memory
|
||||
HTMLContentSink::HTMLContentSink()
|
||||
{
|
||||
HTMLContentSink::HTMLContentSink() {
|
||||
#ifdef NS_DEBUG
|
||||
if (nsnull == gSinkLogModuleInfo) {
|
||||
gSinkLogModuleInfo = PR_NewLogModule("htmlcontentsink");
|
||||
|
@ -1904,6 +1919,7 @@ HTMLContentSink::HTMLContentSink()
|
|||
mNotAtRef = PR_TRUE;
|
||||
mContentIDCounter = NS_CONTENT_ID_COUNTER_BASE;
|
||||
mInScript = 0;
|
||||
mInsideNoXXXTag = 0;
|
||||
}
|
||||
|
||||
HTMLContentSink::~HTMLContentSink()
|
||||
|
|
Загрузка…
Ссылка в новой задаче