mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 541496 part 1: add an overload of nsCSSParser::Parse() that takes a string rather than a stream; rename both methods ParseSheet(); change calling convention of the older overload for the templated implementation's sake. r=bzbarsky
This commit is contained in:
parent
4ada86d2cb
commit
4528c43578
@ -1167,9 +1167,9 @@ nsHTMLParanoidFragmentSink::CloseContainer(const nsHTMLTag aTag)
|
||||
sheet->SetPrincipal(mTargetDocument->NodePrincipal());
|
||||
// Create the CSS parser, and parse the CSS text.
|
||||
nsCSSParser parser(nsnull, sheet);
|
||||
rv = parser.Parse(uin, mTargetDocument->GetDocumentURI(),
|
||||
baseURI, mTargetDocument->NodePrincipal(),
|
||||
0, PR_FALSE);
|
||||
rv = parser.ParseSheet(*uin, mTargetDocument->GetDocumentURI(),
|
||||
baseURI, mTargetDocument->NodePrincipal(),
|
||||
0, PR_FALSE);
|
||||
// Mark the sheet as complete.
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
NS_ABORT_IF_FALSE(!sheet->IsModified(),
|
||||
|
@ -1579,10 +1579,10 @@ Loader::ParseSheet(nsIUnicharInputStream* aStream,
|
||||
mParsingDatas.AppendElement(aLoadData);
|
||||
nsIURI* sheetURI = aLoadData->mSheet->GetSheetURI();
|
||||
nsIURI* baseURI = aLoadData->mSheet->GetBaseURI();
|
||||
nsresult rv = parser.Parse(aStream, sheetURI, baseURI,
|
||||
aLoadData->mSheet->Principal(),
|
||||
aLoadData->mLineNumber,
|
||||
aLoadData->mAllowUnsafeRules);
|
||||
nsresult rv = parser.ParseSheet(*aStream, sheetURI, baseURI,
|
||||
aLoadData->mSheet->Principal(),
|
||||
aLoadData->mLineNumber,
|
||||
aLoadData->mAllowUnsafeRules);
|
||||
mParsingDatas.RemoveElementAt(mParsingDatas.Length() - 1);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
|
@ -203,12 +203,13 @@ public:
|
||||
// Clears everything set by the above Set*() functions.
|
||||
void Reset();
|
||||
|
||||
nsresult Parse(nsIUnicharInputStream* aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules);
|
||||
template <typename T>
|
||||
nsresult ParseSheet(T& aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules);
|
||||
|
||||
nsresult ParseStyleAttribute(const nsAString& aAttributeValue,
|
||||
nsIURI* aDocURL,
|
||||
@ -295,10 +296,10 @@ protected:
|
||||
CSSParserImpl* mParser;
|
||||
};
|
||||
|
||||
void InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI,
|
||||
void InitScanner(nsIUnicharInputStream& aInput, nsIURI* aSheetURI,
|
||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal);
|
||||
// the caller must hold on to aBuffer until parsing is done
|
||||
// the caller must hold on to aString until parsing is done
|
||||
void InitScanner(const nsSubstring& aString, nsIURI* aSheetURI,
|
||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal);
|
||||
@ -836,13 +837,13 @@ CSSParserImpl::Reset()
|
||||
}
|
||||
|
||||
void
|
||||
CSSParserImpl::InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI,
|
||||
CSSParserImpl::InitScanner(nsIUnicharInputStream& aInput, nsIURI* aSheetURI,
|
||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal)
|
||||
{
|
||||
NS_ASSERTION(! mScannerInited, "already have scanner");
|
||||
|
||||
mScanner.Init(aInput, nsnull, 0, aSheetURI, aLineNumber, mSheet,
|
||||
mScanner.Init(&aInput, nsnull, 0, aSheetURI, aLineNumber, mSheet,
|
||||
mChildLoader);
|
||||
#ifdef DEBUG
|
||||
mScannerInited = PR_TRUE;
|
||||
@ -888,14 +889,14 @@ CSSParserImpl::ReleaseScanner(void)
|
||||
mSheetPrincipal = nsnull;
|
||||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
nsresult
|
||||
CSSParserImpl::Parse(nsIUnicharInputStream* aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules)
|
||||
CSSParserImpl::ParseSheet(T& aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules)
|
||||
{
|
||||
NS_PRECONDITION(aSheetPrincipal, "Must have principal here!");
|
||||
|
||||
@ -8758,16 +8759,29 @@ nsCSSParser::SetChildLoader(mozilla::css::Loader* aChildLoader)
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsCSSParser::Parse(nsIUnicharInputStream* aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules)
|
||||
nsCSSParser::ParseSheet(nsIUnicharInputStream& aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules)
|
||||
{
|
||||
return static_cast<CSSParserImpl*>(mImpl)->
|
||||
Parse(aInput, aSheetURI, aBaseURI, aSheetPrincipal, aLineNumber,
|
||||
aAllowUnsafeRules);
|
||||
ParseSheet(aInput, aSheetURI, aBaseURI, aSheetPrincipal, aLineNumber,
|
||||
aAllowUnsafeRules);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsCSSParser::ParseSheet(const nsAString& aInput,
|
||||
nsIURI* aSheetURI,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules)
|
||||
{
|
||||
return static_cast<CSSParserImpl*>(mImpl)->
|
||||
ParseSheet(aInput, aSheetURI, aBaseURI, aSheetPrincipal, aLineNumber,
|
||||
aAllowUnsafeRules);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -113,12 +113,18 @@ public:
|
||||
* @param aAllowUnsafeRules see aEnableUnsafeRules in
|
||||
* mozilla::css::Loader::LoadSheetSync
|
||||
*/
|
||||
nsresult Parse(nsIUnicharInputStream* aInput,
|
||||
nsIURI* aSheetURL,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules);
|
||||
nsresult ParseSheet(nsIUnicharInputStream& aInput,
|
||||
nsIURI* aSheetURL,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules);
|
||||
nsresult ParseSheet(const nsAString& aInput,
|
||||
nsIURI* aSheetURL,
|
||||
nsIURI* aBaseURI,
|
||||
nsIPrincipal* aSheetPrincipal,
|
||||
PRUint32 aLineNumber,
|
||||
PRBool aAllowUnsafeRules);
|
||||
|
||||
// Parse HTML style attribute or its equivalent in other markup
|
||||
// languages. aBaseURL is the base url to use for relative links in
|
||||
|
Loading…
Reference in New Issue
Block a user