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());
|
sheet->SetPrincipal(mTargetDocument->NodePrincipal());
|
||||||
// Create the CSS parser, and parse the CSS text.
|
// Create the CSS parser, and parse the CSS text.
|
||||||
nsCSSParser parser(nsnull, sheet);
|
nsCSSParser parser(nsnull, sheet);
|
||||||
rv = parser.Parse(uin, mTargetDocument->GetDocumentURI(),
|
rv = parser.ParseSheet(*uin, mTargetDocument->GetDocumentURI(),
|
||||||
baseURI, mTargetDocument->NodePrincipal(),
|
baseURI, mTargetDocument->NodePrincipal(),
|
||||||
0, PR_FALSE);
|
0, PR_FALSE);
|
||||||
// Mark the sheet as complete.
|
// Mark the sheet as complete.
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
NS_ABORT_IF_FALSE(!sheet->IsModified(),
|
NS_ABORT_IF_FALSE(!sheet->IsModified(),
|
||||||
|
@ -1579,10 +1579,10 @@ Loader::ParseSheet(nsIUnicharInputStream* aStream,
|
|||||||
mParsingDatas.AppendElement(aLoadData);
|
mParsingDatas.AppendElement(aLoadData);
|
||||||
nsIURI* sheetURI = aLoadData->mSheet->GetSheetURI();
|
nsIURI* sheetURI = aLoadData->mSheet->GetSheetURI();
|
||||||
nsIURI* baseURI = aLoadData->mSheet->GetBaseURI();
|
nsIURI* baseURI = aLoadData->mSheet->GetBaseURI();
|
||||||
nsresult rv = parser.Parse(aStream, sheetURI, baseURI,
|
nsresult rv = parser.ParseSheet(*aStream, sheetURI, baseURI,
|
||||||
aLoadData->mSheet->Principal(),
|
aLoadData->mSheet->Principal(),
|
||||||
aLoadData->mLineNumber,
|
aLoadData->mLineNumber,
|
||||||
aLoadData->mAllowUnsafeRules);
|
aLoadData->mAllowUnsafeRules);
|
||||||
mParsingDatas.RemoveElementAt(mParsingDatas.Length() - 1);
|
mParsingDatas.RemoveElementAt(mParsingDatas.Length() - 1);
|
||||||
|
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
|
@ -203,12 +203,13 @@ public:
|
|||||||
// Clears everything set by the above Set*() functions.
|
// Clears everything set by the above Set*() functions.
|
||||||
void Reset();
|
void Reset();
|
||||||
|
|
||||||
nsresult Parse(nsIUnicharInputStream* aInput,
|
template <typename T>
|
||||||
nsIURI* aSheetURI,
|
nsresult ParseSheet(T& aInput,
|
||||||
nsIURI* aBaseURI,
|
nsIURI* aSheetURI,
|
||||||
nsIPrincipal* aSheetPrincipal,
|
nsIURI* aBaseURI,
|
||||||
PRUint32 aLineNumber,
|
nsIPrincipal* aSheetPrincipal,
|
||||||
PRBool aAllowUnsafeRules);
|
PRUint32 aLineNumber,
|
||||||
|
PRBool aAllowUnsafeRules);
|
||||||
|
|
||||||
nsresult ParseStyleAttribute(const nsAString& aAttributeValue,
|
nsresult ParseStyleAttribute(const nsAString& aAttributeValue,
|
||||||
nsIURI* aDocURL,
|
nsIURI* aDocURL,
|
||||||
@ -295,10 +296,10 @@ protected:
|
|||||||
CSSParserImpl* mParser;
|
CSSParserImpl* mParser;
|
||||||
};
|
};
|
||||||
|
|
||||||
void InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI,
|
void InitScanner(nsIUnicharInputStream& aInput, nsIURI* aSheetURI,
|
||||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal);
|
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,
|
void InitScanner(const nsSubstring& aString, nsIURI* aSheetURI,
|
||||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal);
|
nsIPrincipal* aSheetPrincipal);
|
||||||
@ -836,13 +837,13 @@ CSSParserImpl::Reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CSSParserImpl::InitScanner(nsIUnicharInputStream* aInput, nsIURI* aSheetURI,
|
CSSParserImpl::InitScanner(nsIUnicharInputStream& aInput, nsIURI* aSheetURI,
|
||||||
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
PRUint32 aLineNumber, nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal)
|
nsIPrincipal* aSheetPrincipal)
|
||||||
{
|
{
|
||||||
NS_ASSERTION(! mScannerInited, "already have scanner");
|
NS_ASSERTION(! mScannerInited, "already have scanner");
|
||||||
|
|
||||||
mScanner.Init(aInput, nsnull, 0, aSheetURI, aLineNumber, mSheet,
|
mScanner.Init(&aInput, nsnull, 0, aSheetURI, aLineNumber, mSheet,
|
||||||
mChildLoader);
|
mChildLoader);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
mScannerInited = PR_TRUE;
|
mScannerInited = PR_TRUE;
|
||||||
@ -888,14 +889,14 @@ CSSParserImpl::ReleaseScanner(void)
|
|||||||
mSheetPrincipal = nsnull;
|
mSheetPrincipal = nsnull;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
nsresult
|
nsresult
|
||||||
CSSParserImpl::Parse(nsIUnicharInputStream* aInput,
|
CSSParserImpl::ParseSheet(T& aInput,
|
||||||
nsIURI* aSheetURI,
|
nsIURI* aSheetURI,
|
||||||
nsIURI* aBaseURI,
|
nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal,
|
nsIPrincipal* aSheetPrincipal,
|
||||||
PRUint32 aLineNumber,
|
PRUint32 aLineNumber,
|
||||||
PRBool aAllowUnsafeRules)
|
PRBool aAllowUnsafeRules)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(aSheetPrincipal, "Must have principal here!");
|
NS_PRECONDITION(aSheetPrincipal, "Must have principal here!");
|
||||||
|
|
||||||
@ -8758,16 +8759,29 @@ nsCSSParser::SetChildLoader(mozilla::css::Loader* aChildLoader)
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsCSSParser::Parse(nsIUnicharInputStream* aInput,
|
nsCSSParser::ParseSheet(nsIUnicharInputStream& aInput,
|
||||||
nsIURI* aSheetURI,
|
nsIURI* aSheetURI,
|
||||||
nsIURI* aBaseURI,
|
nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal,
|
nsIPrincipal* aSheetPrincipal,
|
||||||
PRUint32 aLineNumber,
|
PRUint32 aLineNumber,
|
||||||
PRBool aAllowUnsafeRules)
|
PRBool aAllowUnsafeRules)
|
||||||
{
|
{
|
||||||
return static_cast<CSSParserImpl*>(mImpl)->
|
return static_cast<CSSParserImpl*>(mImpl)->
|
||||||
Parse(aInput, aSheetURI, aBaseURI, aSheetPrincipal, aLineNumber,
|
ParseSheet(aInput, aSheetURI, aBaseURI, aSheetPrincipal, aLineNumber,
|
||||||
aAllowUnsafeRules);
|
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
|
nsresult
|
||||||
|
@ -113,12 +113,18 @@ public:
|
|||||||
* @param aAllowUnsafeRules see aEnableUnsafeRules in
|
* @param aAllowUnsafeRules see aEnableUnsafeRules in
|
||||||
* mozilla::css::Loader::LoadSheetSync
|
* mozilla::css::Loader::LoadSheetSync
|
||||||
*/
|
*/
|
||||||
nsresult Parse(nsIUnicharInputStream* aInput,
|
nsresult ParseSheet(nsIUnicharInputStream& aInput,
|
||||||
nsIURI* aSheetURL,
|
nsIURI* aSheetURL,
|
||||||
nsIURI* aBaseURI,
|
nsIURI* aBaseURI,
|
||||||
nsIPrincipal* aSheetPrincipal,
|
nsIPrincipal* aSheetPrincipal,
|
||||||
PRUint32 aLineNumber,
|
PRUint32 aLineNumber,
|
||||||
PRBool aAllowUnsafeRules);
|
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
|
// Parse HTML style attribute or its equivalent in other markup
|
||||||
// languages. aBaseURL is the base url to use for relative links in
|
// languages. aBaseURL is the base url to use for relative links in
|
||||||
|
Loading…
Reference in New Issue
Block a user