diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index 1ecf0521263..1fdf24f182d 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -87,14 +87,12 @@ static PRLogModuleInfo* gSinkLogModuleInfo; //---------------------------------------------------------------------- -static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTMLCONTENTSINK_IID); +static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); static NS_DEFINE_IID(kIFormControlIID, NS_IFORMCONTROL_IID); class HTMLContentSink : public nsIHTMLContentSink { public: - NS_DECL_ISUPPORTS - HTMLContentSink(); ~HTMLContentSink(); @@ -108,42 +106,33 @@ public: nsIHTMLContent* GetCurrentContainer(eHTMLTags* aType); nsIHTMLContent* GetTableParent(); - virtual PRBool SetTitle(const nsString& aValue); + // nsISupports + NS_DECL_ISUPPORTS - // Called when Opening or closing the main HTML container - virtual PRBool OpenHTML(const nsIParserNode& aNode); - virtual PRBool CloseHTML(const nsIParserNode& aNode); + // nsIContentSink + NS_IMETHOD WillBuildModel(void); + NS_IMETHOD DidBuildModel(PRInt32 aQualityLevel); + NS_IMETHOD WillInterrupt(void); + NS_IMETHOD WillResume(void); - // Called when Opening or closing the main HEAD container - virtual PRBool OpenHead(const nsIParserNode& aNode); - virtual PRBool CloseHead(const nsIParserNode& aNode); - - // Called when Opening or closing the main BODY container - virtual PRBool OpenBody(const nsIParserNode& aNode); - virtual PRBool CloseBody(const nsIParserNode& aNode); - - // Called when Opening or closing FORM containers - virtual PRBool OpenForm(const nsIParserNode& aNode); - virtual PRBool CloseForm(const nsIParserNode& aNode); - - // Called when Opening or closing the main FRAMESET container - virtual PRBool OpenFrameset(const nsIParserNode& aNode); - virtual PRBool CloseFrameset(const nsIParserNode& aNode); - - // Called when Opening or closing a general container - // This includes: OL,UL,DIR,SPAN,TABLE,H[1..6],etc. - // Until proven otherwise, I also plan to toss STYLE, - // FORMS, FRAME, SCRIPT, etc. here too! - virtual PRBool OpenContainer(const nsIParserNode& aNode); - virtual PRBool CloseContainer(const nsIParserNode& aNode); - - // Called for text, comments and so on... - virtual PRBool AddLeaf(const nsIParserNode& aNode); - - virtual void WillBuildModel(void); - virtual void DidBuildModel(PRInt32 aQualityLevel); - virtual void WillInterrupt(void); - virtual void WillResume(void); + // nsIHTMLContentSink + NS_IMETHOD PushMark(); + NS_IMETHOD SetTitle(const nsString& aValue); + NS_IMETHOD OpenHTML(const nsIParserNode& aNode); + NS_IMETHOD CloseHTML(const nsIParserNode& aNode); + NS_IMETHOD OpenHead(const nsIParserNode& aNode); + NS_IMETHOD CloseHead(const nsIParserNode& aNode); + NS_IMETHOD OpenBody(const nsIParserNode& aNode); + NS_IMETHOD CloseBody(const nsIParserNode& aNode); + NS_IMETHOD OpenForm(const nsIParserNode& aNode); + NS_IMETHOD CloseForm(const nsIParserNode& aNode); + NS_IMETHOD OpenMap(const nsIParserNode& aNode); + NS_IMETHOD CloseMap(const nsIParserNode& aNode); + NS_IMETHOD OpenFrameset(const nsIParserNode& aNode); + NS_IMETHOD CloseFrameset(const nsIParserNode& aNode); + NS_IMETHOD OpenContainer(const nsIParserNode& aNode); + NS_IMETHOD CloseContainer(const nsIParserNode& aNode); + NS_IMETHOD AddLeaf(const nsIParserNode& aNode); protected: @@ -332,7 +321,7 @@ HTMLContentSink::Init(nsIDocument* aDoc, NS_IMPL_ISUPPORTS(HTMLContentSink,kIHTMLContentSinkIID) -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenHTML(const nsIParserNode& aNode) { FlushText(); @@ -345,10 +334,10 @@ HTMLContentSink::OpenHTML(const nsIParserNode& aNode) mContainerStack[0] = mRoot; mStackPos = 1; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseHTML(const nsIParserNode& aNode) { FlushText(); @@ -361,10 +350,10 @@ HTMLContentSink::CloseHTML(const nsIParserNode& aNode) NS_IF_RELEASE(mCurrentForm); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenHead(const nsIParserNode& aNode) { FlushText(); @@ -375,10 +364,10 @@ HTMLContentSink::OpenHead(const nsIParserNode& aNode) mNodeStack[mStackPos] = (eHTMLTags)aNode.GetNodeType(); mContainerStack[mStackPos] = mHead; mStackPos++; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseHead(const nsIParserNode& aNode) { FlushText(); @@ -388,10 +377,16 @@ HTMLContentSink::CloseHead(const nsIParserNode& aNode) NS_ASSERTION(mStackPos > 0, "bad bad"); mNodeStack[--mStackPos] = eHTMLTag_unknown; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP +HTMLContentSink::PushMark() +{ + return NS_OK; +} + +NS_IMETHODIMP HTMLContentSink::SetTitle(const nsString& aValue) { FlushText(); @@ -412,10 +407,10 @@ HTMLContentSink::SetTitle(const nsString& aValue) mHead->AppendChild(it, PR_FALSE); } NS_RELEASE(atom); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenBody(const nsIParserNode& aNode) { FlushText(); @@ -448,10 +443,10 @@ HTMLContentSink::OpenBody(const nsIParserNode& aNode) StartLayout(); } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseBody(const nsIParserNode& aNode) { FlushText(); @@ -464,12 +459,12 @@ HTMLContentSink::CloseBody(const nsIParserNode& aNode) // Reflow any lingering content - return 0; + return NS_OK; } static NS_DEFINE_IID(kIFormManagerIID, NS_IFORMMANAGER_IID); -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenForm(const nsIParserNode& aNode) { FlushText(); @@ -542,10 +537,10 @@ HTMLContentSink::OpenForm(const nsIParserNode& aNode) } } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseForm(const nsIParserNode& aNode) { FlushText(); @@ -557,10 +552,57 @@ HTMLContentSink::CloseForm(const nsIParserNode& aNode) NS_RELEASE(mCurrentForm); mCurrentForm = nsnull; } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP +HTMLContentSink::OpenMap(const nsIParserNode& aNode) +{ + FlushText(); + + SINK_TRACE_NODE(SINK_TRACE_CALLS, + "HTMLContentSink::OpenMap", aNode); + + // Close out previous form if it's there + if (nsnull != mCurrentMap) { + NS_RELEASE(mCurrentMap); + mCurrentMap = nsnull; + } + + nsAutoString tmp("MAP"); + nsIAtom* atom = NS_NewAtom(tmp); + nsresult rv = NS_NewImageMap(&mCurrentMap, atom); + NS_RELEASE(atom); + if (NS_OK == rv) { + // Look for name attribute and set the map name + nsAutoString name; + if (FindAttribute(aNode, "name", name)) { + // XXX leading, trailing, interior non=-space ws is removed + name.StripWhitespace(); + mCurrentMap->SetName(name); + } + // Add the map to the document + ((nsHTMLDocument*)mDocument)->AddImageMap(mCurrentMap); + } + return rv; +} + +NS_IMETHODIMP +HTMLContentSink::CloseMap(const nsIParserNode& aNode) +{ + FlushText(); + + SINK_TRACE_NODE(SINK_TRACE_CALLS, + "HTMLContentSink::CloseMap", aNode); + + if (nsnull != mCurrentMap) { + NS_RELEASE(mCurrentMap); + mCurrentMap = nsnull; + } + return NS_OK; +} + +NS_IMETHODIMP HTMLContentSink::OpenFrameset(const nsIParserNode& aNode) { FlushText(); @@ -569,10 +611,10 @@ HTMLContentSink::OpenFrameset(const nsIParserNode& aNode) "HTMLContentSink::OpenFrameset", aNode); mNodeStack[mStackPos++] = (eHTMLTags)aNode.GetNodeType(); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseFrameset(const nsIParserNode& aNode) { FlushText(); @@ -581,10 +623,10 @@ HTMLContentSink::CloseFrameset(const nsIParserNode& aNode) "HTMLContentSink::CloseFrameset", aNode); mNodeStack[--mStackPos] = eHTMLTag_unknown; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenContainer(const nsIParserNode& aNode) { FlushText(); @@ -616,19 +658,8 @@ HTMLContentSink::OpenContainer(const nsIParserNode& aNode) nsIHTMLContent* container = nsnull; switch (nodeType) { case eHTMLTag_map: - NS_IF_RELEASE(mCurrentMap); - rv = NS_NewImageMap(&mCurrentMap, atom); - if (NS_OK == rv) { - // Look for name attribute and set the map name - nsAutoString name; - if (FindAttribute(aNode, "name", name)) { - name.StripWhitespace(); // XXX leading, trailing, interior non=-space ws is removed - mCurrentMap->SetName(name); - } - // Add the map to the document - ((nsHTMLDocument*)mDocument)->AddImageMap(mCurrentMap); - } - return 0; + NS_NOTREACHED("bad parser: map != container"); + break; case eHTMLTag_applet: rv = NS_NewHTMLApplet(&container, atom); @@ -698,10 +729,10 @@ HTMLContentSink::OpenContainer(const nsIParserNode& aNode) } NS_RELEASE(atom); - return 0; + return rv; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseContainer(const nsIParserNode& aNode) { FlushText(); @@ -711,14 +742,15 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) switch (aNode.GetNodeType()) { case eHTMLTag_map: + NS_NOTREACHED("bad parser: map's in CloseContainer"); NS_IF_RELEASE(mCurrentMap); - return 0; + return NS_OK; } // XXX we could assert things about the top tag name if (0 == mStackPos) { // Can't pop empty stack - return 0; + return NS_OK; } --mStackPos; @@ -803,7 +835,7 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) NS_RELEASE(container); } - return 0; + return NS_OK; } /** @@ -812,7 +844,7 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillBuildModel(void) { mDocument->BeginLoad(); @@ -831,6 +863,7 @@ HTMLContentSink::WillBuildModel(void) ("HTMLContentSink::WillBuildModel: start layout")); StartLayout(); #endif + return NS_OK; } @@ -842,10 +875,9 @@ HTMLContentSink::WillBuildModel(void) * 0=GOOD; 1=FAIR; 2=POOR; * @update 6/21/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) { - PRInt32 i, ns = mDocument->GetNumberOfShells(); for (i = 0; i < ns; i++) { nsIPresShell* shell = mDocument->GetShellAt(i); @@ -863,6 +895,8 @@ HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) ("HTMLContentSink::DidBuildModel: layout new content")); ReflowNewContent(); mDocument->EndLoad(); + + return NS_OK; } /** @@ -872,9 +906,10 @@ HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillInterrupt(void) { + return NS_OK; } /** @@ -883,9 +918,10 @@ HTMLContentSink::WillInterrupt(void) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillResume(void) { + return NS_OK; } //---------------------------------------------------------------------- @@ -959,7 +995,7 @@ nsIHTMLContent* HTMLContentSink::GetCurrentContainer(eHTMLTags* aType) // Leaf tag handling code -PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) +NS_IMETHODIMP HTMLContentSink::AddLeaf(const nsIParserNode& aNode) { SINK_TRACE_NODE(SINK_TRACE_CALLS, "HTMLContentSink::AddLeaf", aNode); @@ -969,7 +1005,7 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) case eHTMLTag_style: FlushText(); ProcessSTYLETag(aNode); - return 0; + return NS_OK; case eHTMLTag_script: // XXX SCRIPT tag evaluation is currently turned off till we @@ -978,18 +1014,18 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) #if 0 ProcessSCRIPTTag(aNode); #endif - return 0; + return NS_OK; case eHTMLTag_area: FlushText(); ProcessAREATag(aNode); - return 0; + return NS_OK; case eHTMLTag_meta: // Add meta objects to the head object FlushText(); ProcessMETATag(aNode); - return 0; + return NS_OK; } eHTMLTags parentType; @@ -1008,12 +1044,12 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) case eHTMLTag_option: FlushText(); ProcessOPTIONTagContent(aNode); - return 0; + return NS_OK; case eHTMLTag_select: // Discard content in a select that's not an option if (eHTMLTag_option != aNode.GetNodeType()) { - return 0; + return NS_OK; } break; } @@ -1090,7 +1126,7 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) } NS_IF_RELEASE(leaf); - return 0; + return rv; } // Special handling code to push unexpected table content out of the diff --git a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp index 1ecf0521263..1fdf24f182d 100644 --- a/mozilla/layout/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/layout/html/document/src/nsHTMLContentSink.cpp @@ -87,14 +87,12 @@ static PRLogModuleInfo* gSinkLogModuleInfo; //---------------------------------------------------------------------- -static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTMLCONTENTSINK_IID); +static NS_DEFINE_IID(kIHTMLContentSinkIID, NS_IHTML_CONTENT_SINK_IID); static NS_DEFINE_IID(kIFormControlIID, NS_IFORMCONTROL_IID); class HTMLContentSink : public nsIHTMLContentSink { public: - NS_DECL_ISUPPORTS - HTMLContentSink(); ~HTMLContentSink(); @@ -108,42 +106,33 @@ public: nsIHTMLContent* GetCurrentContainer(eHTMLTags* aType); nsIHTMLContent* GetTableParent(); - virtual PRBool SetTitle(const nsString& aValue); + // nsISupports + NS_DECL_ISUPPORTS - // Called when Opening or closing the main HTML container - virtual PRBool OpenHTML(const nsIParserNode& aNode); - virtual PRBool CloseHTML(const nsIParserNode& aNode); + // nsIContentSink + NS_IMETHOD WillBuildModel(void); + NS_IMETHOD DidBuildModel(PRInt32 aQualityLevel); + NS_IMETHOD WillInterrupt(void); + NS_IMETHOD WillResume(void); - // Called when Opening or closing the main HEAD container - virtual PRBool OpenHead(const nsIParserNode& aNode); - virtual PRBool CloseHead(const nsIParserNode& aNode); - - // Called when Opening or closing the main BODY container - virtual PRBool OpenBody(const nsIParserNode& aNode); - virtual PRBool CloseBody(const nsIParserNode& aNode); - - // Called when Opening or closing FORM containers - virtual PRBool OpenForm(const nsIParserNode& aNode); - virtual PRBool CloseForm(const nsIParserNode& aNode); - - // Called when Opening or closing the main FRAMESET container - virtual PRBool OpenFrameset(const nsIParserNode& aNode); - virtual PRBool CloseFrameset(const nsIParserNode& aNode); - - // Called when Opening or closing a general container - // This includes: OL,UL,DIR,SPAN,TABLE,H[1..6],etc. - // Until proven otherwise, I also plan to toss STYLE, - // FORMS, FRAME, SCRIPT, etc. here too! - virtual PRBool OpenContainer(const nsIParserNode& aNode); - virtual PRBool CloseContainer(const nsIParserNode& aNode); - - // Called for text, comments and so on... - virtual PRBool AddLeaf(const nsIParserNode& aNode); - - virtual void WillBuildModel(void); - virtual void DidBuildModel(PRInt32 aQualityLevel); - virtual void WillInterrupt(void); - virtual void WillResume(void); + // nsIHTMLContentSink + NS_IMETHOD PushMark(); + NS_IMETHOD SetTitle(const nsString& aValue); + NS_IMETHOD OpenHTML(const nsIParserNode& aNode); + NS_IMETHOD CloseHTML(const nsIParserNode& aNode); + NS_IMETHOD OpenHead(const nsIParserNode& aNode); + NS_IMETHOD CloseHead(const nsIParserNode& aNode); + NS_IMETHOD OpenBody(const nsIParserNode& aNode); + NS_IMETHOD CloseBody(const nsIParserNode& aNode); + NS_IMETHOD OpenForm(const nsIParserNode& aNode); + NS_IMETHOD CloseForm(const nsIParserNode& aNode); + NS_IMETHOD OpenMap(const nsIParserNode& aNode); + NS_IMETHOD CloseMap(const nsIParserNode& aNode); + NS_IMETHOD OpenFrameset(const nsIParserNode& aNode); + NS_IMETHOD CloseFrameset(const nsIParserNode& aNode); + NS_IMETHOD OpenContainer(const nsIParserNode& aNode); + NS_IMETHOD CloseContainer(const nsIParserNode& aNode); + NS_IMETHOD AddLeaf(const nsIParserNode& aNode); protected: @@ -332,7 +321,7 @@ HTMLContentSink::Init(nsIDocument* aDoc, NS_IMPL_ISUPPORTS(HTMLContentSink,kIHTMLContentSinkIID) -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenHTML(const nsIParserNode& aNode) { FlushText(); @@ -345,10 +334,10 @@ HTMLContentSink::OpenHTML(const nsIParserNode& aNode) mContainerStack[0] = mRoot; mStackPos = 1; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseHTML(const nsIParserNode& aNode) { FlushText(); @@ -361,10 +350,10 @@ HTMLContentSink::CloseHTML(const nsIParserNode& aNode) NS_IF_RELEASE(mCurrentForm); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenHead(const nsIParserNode& aNode) { FlushText(); @@ -375,10 +364,10 @@ HTMLContentSink::OpenHead(const nsIParserNode& aNode) mNodeStack[mStackPos] = (eHTMLTags)aNode.GetNodeType(); mContainerStack[mStackPos] = mHead; mStackPos++; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseHead(const nsIParserNode& aNode) { FlushText(); @@ -388,10 +377,16 @@ HTMLContentSink::CloseHead(const nsIParserNode& aNode) NS_ASSERTION(mStackPos > 0, "bad bad"); mNodeStack[--mStackPos] = eHTMLTag_unknown; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP +HTMLContentSink::PushMark() +{ + return NS_OK; +} + +NS_IMETHODIMP HTMLContentSink::SetTitle(const nsString& aValue) { FlushText(); @@ -412,10 +407,10 @@ HTMLContentSink::SetTitle(const nsString& aValue) mHead->AppendChild(it, PR_FALSE); } NS_RELEASE(atom); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenBody(const nsIParserNode& aNode) { FlushText(); @@ -448,10 +443,10 @@ HTMLContentSink::OpenBody(const nsIParserNode& aNode) StartLayout(); } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseBody(const nsIParserNode& aNode) { FlushText(); @@ -464,12 +459,12 @@ HTMLContentSink::CloseBody(const nsIParserNode& aNode) // Reflow any lingering content - return 0; + return NS_OK; } static NS_DEFINE_IID(kIFormManagerIID, NS_IFORMMANAGER_IID); -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenForm(const nsIParserNode& aNode) { FlushText(); @@ -542,10 +537,10 @@ HTMLContentSink::OpenForm(const nsIParserNode& aNode) } } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseForm(const nsIParserNode& aNode) { FlushText(); @@ -557,10 +552,57 @@ HTMLContentSink::CloseForm(const nsIParserNode& aNode) NS_RELEASE(mCurrentForm); mCurrentForm = nsnull; } - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP +HTMLContentSink::OpenMap(const nsIParserNode& aNode) +{ + FlushText(); + + SINK_TRACE_NODE(SINK_TRACE_CALLS, + "HTMLContentSink::OpenMap", aNode); + + // Close out previous form if it's there + if (nsnull != mCurrentMap) { + NS_RELEASE(mCurrentMap); + mCurrentMap = nsnull; + } + + nsAutoString tmp("MAP"); + nsIAtom* atom = NS_NewAtom(tmp); + nsresult rv = NS_NewImageMap(&mCurrentMap, atom); + NS_RELEASE(atom); + if (NS_OK == rv) { + // Look for name attribute and set the map name + nsAutoString name; + if (FindAttribute(aNode, "name", name)) { + // XXX leading, trailing, interior non=-space ws is removed + name.StripWhitespace(); + mCurrentMap->SetName(name); + } + // Add the map to the document + ((nsHTMLDocument*)mDocument)->AddImageMap(mCurrentMap); + } + return rv; +} + +NS_IMETHODIMP +HTMLContentSink::CloseMap(const nsIParserNode& aNode) +{ + FlushText(); + + SINK_TRACE_NODE(SINK_TRACE_CALLS, + "HTMLContentSink::CloseMap", aNode); + + if (nsnull != mCurrentMap) { + NS_RELEASE(mCurrentMap); + mCurrentMap = nsnull; + } + return NS_OK; +} + +NS_IMETHODIMP HTMLContentSink::OpenFrameset(const nsIParserNode& aNode) { FlushText(); @@ -569,10 +611,10 @@ HTMLContentSink::OpenFrameset(const nsIParserNode& aNode) "HTMLContentSink::OpenFrameset", aNode); mNodeStack[mStackPos++] = (eHTMLTags)aNode.GetNodeType(); - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseFrameset(const nsIParserNode& aNode) { FlushText(); @@ -581,10 +623,10 @@ HTMLContentSink::CloseFrameset(const nsIParserNode& aNode) "HTMLContentSink::CloseFrameset", aNode); mNodeStack[--mStackPos] = eHTMLTag_unknown; - return 0; + return NS_OK; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::OpenContainer(const nsIParserNode& aNode) { FlushText(); @@ -616,19 +658,8 @@ HTMLContentSink::OpenContainer(const nsIParserNode& aNode) nsIHTMLContent* container = nsnull; switch (nodeType) { case eHTMLTag_map: - NS_IF_RELEASE(mCurrentMap); - rv = NS_NewImageMap(&mCurrentMap, atom); - if (NS_OK == rv) { - // Look for name attribute and set the map name - nsAutoString name; - if (FindAttribute(aNode, "name", name)) { - name.StripWhitespace(); // XXX leading, trailing, interior non=-space ws is removed - mCurrentMap->SetName(name); - } - // Add the map to the document - ((nsHTMLDocument*)mDocument)->AddImageMap(mCurrentMap); - } - return 0; + NS_NOTREACHED("bad parser: map != container"); + break; case eHTMLTag_applet: rv = NS_NewHTMLApplet(&container, atom); @@ -698,10 +729,10 @@ HTMLContentSink::OpenContainer(const nsIParserNode& aNode) } NS_RELEASE(atom); - return 0; + return rv; } -PRInt32 +NS_IMETHODIMP HTMLContentSink::CloseContainer(const nsIParserNode& aNode) { FlushText(); @@ -711,14 +742,15 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) switch (aNode.GetNodeType()) { case eHTMLTag_map: + NS_NOTREACHED("bad parser: map's in CloseContainer"); NS_IF_RELEASE(mCurrentMap); - return 0; + return NS_OK; } // XXX we could assert things about the top tag name if (0 == mStackPos) { // Can't pop empty stack - return 0; + return NS_OK; } --mStackPos; @@ -803,7 +835,7 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) NS_RELEASE(container); } - return 0; + return NS_OK; } /** @@ -812,7 +844,7 @@ HTMLContentSink::CloseContainer(const nsIParserNode& aNode) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillBuildModel(void) { mDocument->BeginLoad(); @@ -831,6 +863,7 @@ HTMLContentSink::WillBuildModel(void) ("HTMLContentSink::WillBuildModel: start layout")); StartLayout(); #endif + return NS_OK; } @@ -842,10 +875,9 @@ HTMLContentSink::WillBuildModel(void) * 0=GOOD; 1=FAIR; 2=POOR; * @update 6/21/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) { - PRInt32 i, ns = mDocument->GetNumberOfShells(); for (i = 0; i < ns; i++) { nsIPresShell* shell = mDocument->GetShellAt(i); @@ -863,6 +895,8 @@ HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) ("HTMLContentSink::DidBuildModel: layout new content")); ReflowNewContent(); mDocument->EndLoad(); + + return NS_OK; } /** @@ -872,9 +906,10 @@ HTMLContentSink::DidBuildModel(PRInt32 aQualityLevel) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillInterrupt(void) { + return NS_OK; } /** @@ -883,9 +918,10 @@ HTMLContentSink::WillInterrupt(void) * * @update 5/7/98 gess */ -void +NS_IMETHODIMP HTMLContentSink::WillResume(void) { + return NS_OK; } //---------------------------------------------------------------------- @@ -959,7 +995,7 @@ nsIHTMLContent* HTMLContentSink::GetCurrentContainer(eHTMLTags* aType) // Leaf tag handling code -PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) +NS_IMETHODIMP HTMLContentSink::AddLeaf(const nsIParserNode& aNode) { SINK_TRACE_NODE(SINK_TRACE_CALLS, "HTMLContentSink::AddLeaf", aNode); @@ -969,7 +1005,7 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) case eHTMLTag_style: FlushText(); ProcessSTYLETag(aNode); - return 0; + return NS_OK; case eHTMLTag_script: // XXX SCRIPT tag evaluation is currently turned off till we @@ -978,18 +1014,18 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) #if 0 ProcessSCRIPTTag(aNode); #endif - return 0; + return NS_OK; case eHTMLTag_area: FlushText(); ProcessAREATag(aNode); - return 0; + return NS_OK; case eHTMLTag_meta: // Add meta objects to the head object FlushText(); ProcessMETATag(aNode); - return 0; + return NS_OK; } eHTMLTags parentType; @@ -1008,12 +1044,12 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) case eHTMLTag_option: FlushText(); ProcessOPTIONTagContent(aNode); - return 0; + return NS_OK; case eHTMLTag_select: // Discard content in a select that's not an option if (eHTMLTag_option != aNode.GetNodeType()) { - return 0; + return NS_OK; } break; } @@ -1090,7 +1126,7 @@ PRInt32 HTMLContentSink::AddLeaf(const nsIParserNode& aNode) } NS_IF_RELEASE(leaf); - return 0; + return rv; } // Special handling code to push unexpected table content out of the