Index: parser/htmlparser/public/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/parser/htmlparser/public/Makefile.in,v retrieving revision 1.15 diff -p -u -8 -r1.15 Makefile.in --- parser/htmlparser/public/Makefile.in 15 Mar 2006 17:45:25 -0000 1.15 +++ parser/htmlparser/public/Makefile.in 30 Jun 2006 08:20:37 -0000 @@ -45,16 +45,19 @@ include $(DEPTH)/config/autoconf.mk MODULE = htmlparser GRE_MODULE = 1 XPIDLSRCS = \ nsIExpatSink.idl \ nsIExtendedExpatSink.idl \ $(NULL) +REQUIRES = js \ + $(NULL) + EXPORTS = \ nsIContentSink.h \ nsITokenizer.h \ nsIHTMLContentSink.h \ nsIFragmentContentSink.h \ nsIParserNode.h \ nsIParser.h \ nsIDTD.h \ Index: parser/htmlparser/public/nsIExpatSink.idl =================================================================== RCS file: /cvsroot/mozilla/parser/htmlparser/public/nsIExpatSink.idl,v retrieving revision 1.10 diff -p -u -8 -r1.10 nsIExpatSink.idl --- parser/htmlparser/public/nsIExpatSink.idl 21 Jan 2006 02:02:01 -0000 1.10 +++ parser/htmlparser/public/nsIExpatSink.idl 30 Jun 2006 08:20:37 -0000 @@ -31,24 +31,25 @@ * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" +#include "nsIScriptError.idl" /** * This interface should be implemented by any content sink that wants * to get output from expat and do something with it; in other words, * by any sink that handles some sort of XML dialect. */ -[scriptable, uuid(34CB3B34-7F15-4971-B262-370CE61ADE4D)] +[scriptable, uuid(f61c56b5-ea5b-42b4-ad3c-17416e72e238)] interface nsIExpatSink : nsISupports { /** * Called to handle the opening tag of an element. * @param aName the fully qualified tagname of the element * @param aAtts the array of attribute names and values. There are * aAttsCount/2 names and aAttsCount/2 values, so the total number of * elements in the array is aAttsCount. The names and values @@ -128,9 +129,20 @@ interface nsIExpatSink : nsISupports void HandleXMLDeclaration(in wstring aVersion, in wstring aEncoding, in long aStandalone); void ReportError(in wstring aErrorText, in wstring aSourceText, in long aLineNumber, in long aColumnNumber); + + /** + * Report an error to the content sink using a nsIScriptError. + * + * @param aErrorText Error message to pass to content sink. + * @param aSourceText Source text of the document we're parsing. + * @param aError Script error object with line number & column number + */ + void ReportScriptError(in wstring aErrorText, + in wstring aSourceText, + in nsIScriptError aError); }; Index: parser/htmlparser/src/nsExpatDriver.cpp =================================================================== RCS file: /cvsroot/mozilla/parser/htmlparser/src/nsExpatDriver.cpp,v retrieving revision 3.98 diff -p -u -8 -r3.98 nsExpatDriver.cpp --- parser/htmlparser/src/nsExpatDriver.cpp 30 Mar 2006 18:40:53 -0000 3.98 +++ parser/htmlparser/src/nsExpatDriver.cpp 30 Jun 2006 08:20:38 -0000 @@ -901,38 +901,53 @@ nsExpatDriver::HandleError() // Adjust the column number so that it is one based rather than zero based. PRInt32 colNumber = XML_GetCurrentColumnNumber(mExpatParser) + 1; PRInt32 lineNumber = XML_GetCurrentLineNumber(mExpatParser); nsAutoString errorText; CreateErrorText(description.get(), XML_GetBase(mExpatParser), lineNumber, colNumber, errorText); - +/* nsCOMPtr cs (do_GetService(NS_CONSOLESERVICE_CONTRACTID)); + */ nsCOMPtr serr(do_CreateInstance(NS_SCRIPTERROR_CONTRACTID)); - if (serr && cs) { - if (NS_SUCCEEDED(serr->Init(description.get(), - mURISpec.get(), - mLastLine.get(), - lineNumber, colNumber, - nsIScriptError::errorFlag, "malformed-xml"))) + if (serr /* && cs */) { + nsresult rv = serr->Init(description.get(), + mURISpec.get(), + mLastLine.get(), + lineNumber, colNumber, + nsIScriptError::errorFlag, "malformed-xml"); + if (NS_SUCCEEDED(rv)) + { +/* cs->LogMessage(serr); + */ + } } nsAutoString sourceText(mLastLine); AppendErrorPointer(colNumber, mLastLine.get(), sourceText); NS_ASSERTION(mSink, "no sink?"); if (mSink) { - mSink->ReportError(errorText.get(), - sourceText.get(), - lineNumber, - colNumber); + nsresult rv = NS_OK; + if (serr) { + rv = mSink->ReportScriptError(errorText.get(), + sourceText.get(), + serr); + } + if (!serr || NS_FAILED(rv)) { + // Fall back to old routine. + mSink->ReportError(errorText.get(), + sourceText.get(), + lineNumber, + colNumber); + } } return NS_ERROR_HTMLPARSER_STOPPARSING; } void nsExpatDriver::ParseBuffer(const PRUnichar *aBuffer, PRUint32 aLength, Index: parser/xml/src/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/parser/xml/src/Makefile.in,v retrieving revision 1.3 diff -p -u -8 -r1.3 Makefile.in --- parser/xml/src/Makefile.in 6 Jun 2006 23:06:12 -0000 1.3 +++ parser/xml/src/Makefile.in 30 Jun 2006 08:20:39 -0000 @@ -46,16 +46,18 @@ LIBRARY_NAME = saxp MOZILLA_INTERNAL_API = 1 LIBXUL_LIBRARY = 1 REQUIRES = \ necko \ xpcom \ string \ + js \ + xpconnect \ htmlparser \ content \ uconv \ $(NULL) CPPSRCS = \ nsSAXAttributes.cpp \ nsSAXLocator.cpp \ Index: parser/xml/src/nsSAXXMLReader.cpp =================================================================== RCS file: /cvsroot/mozilla/parser/xml/src/nsSAXXMLReader.cpp,v retrieving revision 1.8 diff -p -u -8 -r1.8 nsSAXXMLReader.cpp --- parser/xml/src/nsSAXXMLReader.cpp 28 Jun 2006 22:44:42 -0000 1.8 +++ parser/xml/src/nsSAXXMLReader.cpp 30 Jun 2006 08:20:39 -0000 @@ -291,16 +291,24 @@ nsSAXXMLReader::ReportError(const PRUnic /// XXX need to settle what to do about the input setup, so I have /// coherent values for the nsISAXLocator here. nsnull for now. if (mErrorHandler) { return mErrorHandler->FatalError(nsnull, nsDependentString(aErrorText)); } return NS_OK; } +NS_IMETHODIMP +nsSAXXMLReader::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + // nsISAXXMLReader NS_IMETHODIMP nsSAXXMLReader::GetBaseURI(nsIURI **aBaseURI) { NS_IF_ADDREF(*aBaseURI = mBaseURI); return NS_OK; } Index: content/xml/document/src/nsLoadSaveContentSink.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xml/document/src/nsLoadSaveContentSink.cpp,v retrieving revision 1.12 diff -p -u -8 -r1.12 nsLoadSaveContentSink.cpp --- content/xml/document/src/nsLoadSaveContentSink.cpp 30 Mar 2006 07:57:04 -0000 1.12 +++ content/xml/document/src/nsLoadSaveContentSink.cpp 30 Jun 2006 08:20:45 -0000 @@ -204,8 +204,16 @@ nsLoadSaveContentSink::ReportError(const PRInt32 aLineNumber, PRInt32 aColumnNumber) { // XXX Do error reporting here. I see no reason to call ReportError // on the "base" sink; all we need to do is drop the document on the // floor... return NS_OK; } + +NS_IMETHODIMP +nsLoadSaveContentSink::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} Index: content/xml/document/src/nsXMLContentSink.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xml/document/src/nsXMLContentSink.cpp,v retrieving revision 1.388 diff -p -u -8 -r1.388 nsXMLContentSink.cpp --- content/xml/document/src/nsXMLContentSink.cpp 15 Jun 2006 20:30:44 -0000 1.388 +++ content/xml/document/src/nsXMLContentSink.cpp 30 Jun 2006 08:20:46 -0000 @@ -1346,16 +1346,25 @@ nsXMLContentSink::ReportError(const PRUn NS_ENSURE_SUCCESS(rv,rv); rv = HandleEndElement(parsererror.get()); NS_ENSURE_SUCCESS(rv,rv); return NS_OK; } + +NS_IMETHODIMP +nsXMLContentSink::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + nsresult nsXMLContentSink::AddAttributes(const PRUnichar** aAtts, nsIContent* aContent) { // Add tag attributes to the content attributes nsCOMPtr prefix, localName; while (*aAtts) { PRInt32 nameSpaceID; Index: content/xml/document/src/nsXMLFragmentContentSink.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xml/document/src/nsXMLFragmentContentSink.cpp,v retrieving revision 1.15 diff -p -u -8 -r1.15 nsXMLFragmentContentSink.cpp --- content/xml/document/src/nsXMLFragmentContentSink.cpp 30 Mar 2006 07:57:04 -0000 1.15 +++ content/xml/document/src/nsXMLFragmentContentSink.cpp 30 Jun 2006 08:20:47 -0000 @@ -344,16 +344,25 @@ nsXMLFragmentContentSink::ReportError(co // Clear any buffered-up text we have. It's enough to set the length to 0. // The buffer itself is allocated when we're created and deleted in our // destructor, so don't mess with it. mTextLength = 0; return NS_OK; } + +NS_IMETHODIMP +nsXMLFragmentContentSink::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + nsresult nsXMLFragmentContentSink::ProcessStyleLink(nsIContent* aElement, const nsSubstring& aHref, PRBool aAlternate, const nsSubstring& aTitle, const nsSubstring& aType, const nsSubstring& aMedia) { Index: content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp,v retrieving revision 1.44 diff -p -u -8 -r1.44 txMozillaStylesheetCompiler.cpp --- content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp 15 Jun 2006 20:30:44 -0000 1.44 +++ content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp 30 Jun 2006 08:20:47 -0000 @@ -236,16 +236,24 @@ txStylesheetSink::ReportError(const PRUn PRInt32 aLineNumber, PRInt32 aColumnNumber) { mCompiler->cancel(NS_ERROR_FAILURE, aErrorText, aSourceText); return NS_OK; } +NS_IMETHODIMP +txStylesheetSink::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + NS_IMETHODIMP txStylesheetSink::DidBuildModel() { return mCompiler->doneLoading(); } NS_IMETHODIMP txStylesheetSink::OnDataAvailable(nsIRequest *aRequest, nsISupports *aContext, Index: content/xul/document/src/nsXULContentSink.cpp =================================================================== RCS file: /cvsroot/mozilla/content/xul/document/src/nsXULContentSink.cpp,v retrieving revision 1.167 diff -p -u -8 -r1.167 nsXULContentSink.cpp --- content/xul/document/src/nsXULContentSink.cpp 13 Jun 2006 03:07:45 -0000 1.167 +++ content/xul/document/src/nsXULContentSink.cpp 30 Jun 2006 08:20:49 -0000 @@ -1068,16 +1068,24 @@ XULContentSinkImpl::ReportError(const PR NS_ENSURE_SUCCESS(rv,rv); rv = HandleEndElement(parsererror.get()); NS_ENSURE_SUCCESS(rv,rv); return rv; } +NS_IMETHODIMP +XULContentSinkImpl::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + nsresult XULContentSinkImpl::SetElementScriptType(nsXULPrototypeElement* element, const PRUnichar** aAttributes, const PRUint32 aAttrLen) { // First check if the attributes specify an explicit script type. nsresult rv = NS_OK; PRUint32 i; Index: rdf/base/src/Makefile.in =================================================================== RCS file: /cvsroot/mozilla/rdf/base/src/Makefile.in,v retrieving revision 1.36 diff -p -u -8 -r1.36 Makefile.in --- rdf/base/src/Makefile.in 18 Nov 2005 20:34:19 -0000 1.36 +++ rdf/base/src/Makefile.in 30 Jun 2006 08:20:49 -0000 @@ -47,16 +47,18 @@ LIBRARY_NAME = rdfbase_s LIBXUL_LIBRARY = 1 REQUIRES = xpcom \ string \ rdfutil \ necko \ content \ htmlparser \ + js \ + xpconnect \ unicharutil \ $(NULL) CPPSRCS = \ rdfTriplesSerializer.cpp \ nsCompositeDataSource.cpp \ nsContainerEnumerator.cpp \ nsDefaultResourceFactory.cpp \ Index: rdf/base/src/nsRDFContentSink.cpp =================================================================== RCS file: /cvsroot/mozilla/rdf/base/src/nsRDFContentSink.cpp,v retrieving revision 1.128 diff -p -u -8 -r1.128 nsRDFContentSink.cpp --- rdf/base/src/nsRDFContentSink.cpp 17 Apr 2006 22:39:20 -0000 1.128 +++ rdf/base/src/nsRDFContentSink.cpp 30 Jun 2006 08:20:50 -0000 @@ -593,16 +593,24 @@ NS_IMETHODIMP RDFContentSinkImpl::ReportError(const PRUnichar* aErrorText, const PRUnichar* aSourceText, PRInt32 aLineNumber, PRInt32 aColumnNumber) { return NS_OK; } +NS_IMETHODIMP +RDFContentSinkImpl::ReportScriptError(const PRUnichar *aErrorText, + const PRUnichar *aSourceText, + nsIScriptError *aError) +{ + return NS_ERROR_NOT_IMPLEMENTED; +} + //////////////////////////////////////////////////////////////////////// // nsIContentSink interface NS_IMETHODIMP RDFContentSinkImpl::WillBuildModel(void) { if (mDataSource) { nsCOMPtr sink = do_QueryInterface(mDataSource);