Send correct Referer when <base href> is involved. r+sr=bzbarsky a=bsmedberg b=300942

This commit is contained in:
dbaron%dbaron.org 2005-07-19 20:44:49 +00:00
Родитель 6945b22f8d
Коммит a774ba681b
1 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -367,6 +367,9 @@ protected:
// The URI to be used as a base for relative URIs. // The URI to be used as a base for relative URIs.
nsCOMPtr<nsIURI> mBaseURL; nsCOMPtr<nsIURI> mBaseURL;
// The URI to be used as an HTTP "Referer" and for error reporting.
nsCOMPtr<nsIURI> mSheetURL;
// The sheet we're parsing into // The sheet we're parsing into
nsCOMPtr<nsICSSStyleSheet> mSheet; nsCOMPtr<nsICSSStyleSheet> mSheet;
@ -583,6 +586,7 @@ CSSParserImpl::InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI,
mScannerInited = PR_TRUE; mScannerInited = PR_TRUE;
#endif #endif
mBaseURL = aBaseURI; mBaseURL = aBaseURI;
mSheetURL = aSheetURI;
mHavePushBack = PR_FALSE; mHavePushBack = PR_FALSE;
@ -613,6 +617,7 @@ CSSParserImpl::ReleaseScanner(void)
mScannerInited = PR_FALSE; mScannerInited = PR_FALSE;
#endif #endif
mBaseURL = nsnull; mBaseURL = nsnull;
mSheetURL = nsnull;
return NS_OK; return NS_OK;
} }
@ -3899,7 +3904,7 @@ PRBool CSSParserImpl::ParseURL(nsresult& aErrorCode, nsCSSValue& aValue)
// Set a null value on failure. Most failure cases should be // Set a null value on failure. Most failure cases should be
// NS_ERROR_MALFORMED_URI. // NS_ERROR_MALFORMED_URI.
nsCSSValue::URL *url = nsCSSValue::URL *url =
new nsCSSValue::URL(uri, tk->mIdent.get(), mBaseURL); new nsCSSValue::URL(uri, tk->mIdent.get(), mSheetURL);
if (!url || !url->mString) { if (!url || !url->mString) {
aErrorCode = NS_ERROR_OUT_OF_MEMORY; aErrorCode = NS_ERROR_OUT_OF_MEMORY;
delete url; delete url;