diff --git a/mozilla/htmlparser/src/nsParser.cpp b/mozilla/htmlparser/src/nsParser.cpp
index 3336405c67c..43de064fd95 100644
--- a/mozilla/htmlparser/src/nsParser.cpp
+++ b/mozilla/htmlparser/src/nsParser.cpp
@@ -1492,12 +1492,12 @@ void nsParser::HandleParserContinueEvent() {
ContinueParsing();
}
-nsresult nsParser::DataAdded(const nsSubstring& aData)
+nsresult nsParser::DataAdded(const nsSubstring& aData, nsIRequest *aRequest)
{
NS_ASSERTION(sParserDataListeners,
"Don't call this with no parser data listeners!");
- if (!mSink || !mParserContext || !mParserContext->mRequest) {
+ if (!mSink || !aRequest) {
return NS_OK;
}
@@ -1508,10 +1508,10 @@ nsresult nsParser::DataAdded(const nsSubstring& aData)
while (count--) {
rv |= sParserDataListeners->ObjectAt(count)->
- OnUnicharDataAvailable(mParserContext->mRequest, ctx, aData);
+ OnUnicharDataAvailable(aRequest, ctx, aData);
if (NS_FAILED(rv) && !canceled) {
- mParserContext->mRequest->Cancel(rv);
+ aRequest->Cancel(rv);
canceled = PR_TRUE;
}
@@ -2478,7 +2478,7 @@ ParserWriteFunc(nsIInputStream* in,
if(pws->mParserFilter)
pws->mParserFilter->RawBuffer(buf, &theNumRead);
- result = pws->mScanner->Append(buf, theNumRead);
+ result = pws->mScanner->Append(buf, theNumRead, pws->mRequest);
if (NS_SUCCEEDED(result)) {
*writeCount = count;
}
diff --git a/mozilla/htmlparser/src/nsParser.h b/mozilla/htmlparser/src/nsParser.h
index dd08c18a9eb..e0762c3b4e8 100644
--- a/mozilla/htmlparser/src/nsParser.h
+++ b/mozilla/htmlparser/src/nsParser.h
@@ -387,7 +387,7 @@ class nsParser : public nsIParser,
* Called by top-level scanners when data from necko is added to
* the scanner.
*/
- nsresult DataAdded(const nsSubstring& aData);
+ nsresult DataAdded(const nsSubstring& aData, nsIRequest *aRequest);
static nsCOMArray *sParserDataListeners;
diff --git a/mozilla/htmlparser/src/nsScanner.cpp b/mozilla/htmlparser/src/nsScanner.cpp
index 470281a5398..4b4ce70e74d 100644
--- a/mozilla/htmlparser/src/nsScanner.cpp
+++ b/mozilla/htmlparser/src/nsScanner.cpp
@@ -339,7 +339,9 @@ nsresult nsScanner::Append(const nsAString& aBuffer) {
* @param
* @return
*/
-nsresult nsScanner::Append(const char* aBuffer, PRUint32 aLen){
+nsresult nsScanner::Append(const char* aBuffer, PRUint32 aLen,
+ nsIRequest *aRequest)
+{
nsresult res=NS_OK;
PRUnichar *unichars, *start;
if(mUnicodeDecoder) {
@@ -379,7 +381,7 @@ nsresult nsScanner::Append(const char* aBuffer, PRUint32 aLen){
} while (NS_FAILED(res) && (aLen > 0));
buffer->SetDataLength(totalChars);
- AppendToBuffer(buffer);
+ AppendToBuffer(buffer, aRequest);
mTotalRead += totalChars;
// Don't propagate return code of unicode decoder
@@ -388,7 +390,7 @@ nsresult nsScanner::Append(const char* aBuffer, PRUint32 aLen){
res = NS_OK;
}
else {
- AppendASCIItoBuffer(aBuffer, aLen);
+ AppendASCIItoBuffer(aBuffer, aLen, aRequest);
mTotalRead+=aLen;
}
@@ -433,7 +435,7 @@ nsresult nsScanner::FillBuffer(void) {
}
if((0DataAdded(Substring(aBuf->DataStart(),
- aBuf->DataEnd())))) {
+ aBuf->DataEnd()), aRequest))) {
// Don't actually append on failure.
return;
@@ -1410,7 +1413,8 @@ void nsScanner::AppendToBuffer(nsScannerString::Buffer* aBuf)
}
}
-void nsScanner::AppendASCIItoBuffer(const char* aData, PRUint32 aLen)
+void nsScanner::AppendASCIItoBuffer(const char* aData, PRUint32 aLen,
+ nsIRequest *aRequest)
{
nsScannerString::Buffer* buf = nsScannerString::AllocBuffer(aLen);
if (buf)
@@ -1418,7 +1422,7 @@ void nsScanner::AppendASCIItoBuffer(const char* aData, PRUint32 aLen)
LossyConvertEncoding converter(buf->DataStart());
converter.write(aData, aLen);
converter.write_terminator();
- AppendToBuffer(buf);
+ AppendToBuffer(buf, aRequest);
}
}
diff --git a/mozilla/htmlparser/src/nsScanner.h b/mozilla/htmlparser/src/nsScanner.h
index 891165a08cc..39fb212bdaf 100644
--- a/mozilla/htmlparser/src/nsScanner.h
+++ b/mozilla/htmlparser/src/nsScanner.h
@@ -302,7 +302,8 @@ class nsScanner {
* @param
* @return
*/
- nsresult Append(const char* aBuffer, PRUint32 aLen);
+ nsresult Append(const char* aBuffer, PRUint32 aLen,
+ nsIRequest *aRequest);
/**
* Call this to copy bytes out of the scanner that have not yet been consumed
@@ -377,9 +378,13 @@ class nsScanner {
*/
nsresult FillBuffer(void);
- void AppendToBuffer(nsScannerString::Buffer*);
- void AppendToBuffer(const nsAString& aStr) { AppendToBuffer(nsScannerString::AllocBufferFromString(aStr)); }
- void AppendASCIItoBuffer(const char* aData, PRUint32 aLen);
+ void AppendToBuffer(nsScannerString::Buffer *, nsIRequest *aRequest);
+ void AppendToBuffer(const nsAString& aStr)
+ {
+ AppendToBuffer(nsScannerString::AllocBufferFromString(aStr), nsnull);
+ }
+ void AppendASCIItoBuffer(const char* aData, PRUint32 aLen,
+ nsIRequest *aRequest);
nsCOMPtr mInputStream;
nsScannerString* mSlidingBuffer;