зеркало из https://github.com/mozilla/pjs.git
Bug 484200. src attribute on <style> makes styles not apply. r=bzbarsky
This commit is contained in:
Родитель
19e7320d34
Коммит
77c803afae
|
@ -250,9 +250,9 @@ nsStyleLinkElement::DoUpdateStyleSheet(nsIDocument *aOldDocument,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIURI> uri;
|
||||
PRBool isInline;
|
||||
GetStyleSheetURL(&isInline, getter_AddRefs(uri));
|
||||
|
||||
nsCOMPtr<nsIURI> uri = GetStyleSheetURL(&isInline);
|
||||
|
||||
if (!aForceUpdate && mStyleSheet && !isInline && uri) {
|
||||
nsCOMPtr<nsIURI> oldURI;
|
||||
|
|
|
@ -95,8 +95,7 @@ protected:
|
|||
nsresult UpdateStyleSheetInternal(nsIDocument *aOldDocument,
|
||||
PRBool aForceUpdate = PR_FALSE);
|
||||
|
||||
virtual void GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI) = 0;
|
||||
virtual already_AddRefed<nsIURI> GetStyleSheetURL(PRBool* aIsInline) = 0;
|
||||
virtual void GetStyleSheetInfo(nsAString& aTitle,
|
||||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 484200</title>
|
||||
<style>
|
||||
p { background:lime }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>xxxxx</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,11 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>Test for Bug 484200</title>
|
||||
<style src=style>
|
||||
p { background:lime }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>xxxxx</p>
|
||||
</body>
|
||||
</html>
|
|
@ -4,3 +4,4 @@
|
|||
!= 468263-1d.html about:blank
|
||||
== 468263-2.html 468263-2-ref.html
|
||||
== 468263-2.html 468263-2-alternate-ref.html
|
||||
== 484200-1.html 484200-1-ref.html
|
||||
|
|
|
@ -116,8 +116,7 @@ public:
|
|||
virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const;
|
||||
|
||||
protected:
|
||||
virtual void GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI);
|
||||
virtual already_AddRefed<nsIURI> GetStyleSheetURL(PRBool* aIsInline);
|
||||
virtual void GetStyleSheetInfo(nsAString& aTitle,
|
||||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
|
@ -395,13 +394,11 @@ nsHTMLLinkElement::GetHrefURI() const
|
|||
return GetHrefURIForAnchors();
|
||||
}
|
||||
|
||||
void
|
||||
nsHTMLLinkElement::GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI)
|
||||
already_AddRefed<nsIURI>
|
||||
nsHTMLLinkElement::GetStyleSheetURL(PRBool* aIsInline)
|
||||
{
|
||||
*aIsInline = PR_FALSE;
|
||||
*aURI = GetHrefURIForAnchors().get();
|
||||
return;
|
||||
return GetHrefURIForAnchors();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -103,8 +103,7 @@ public:
|
|||
NS_DECL_NSIMUTATIONOBSERVER_CONTENTREMOVED
|
||||
|
||||
protected:
|
||||
void GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI);
|
||||
already_AddRefed<nsIURI> GetStyleSheetURL(PRBool* aIsInline);
|
||||
void GetStyleSheetInfo(nsAString& aTitle,
|
||||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
|
@ -312,24 +311,11 @@ nsHTMLStyleElement::SetInnerHTML(const nsAString& aInnerHTML)
|
|||
return rv;
|
||||
}
|
||||
|
||||
void
|
||||
nsHTMLStyleElement::GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI)
|
||||
already_AddRefed<nsIURI>
|
||||
nsHTMLStyleElement::GetStyleSheetURL(PRBool* aIsInline)
|
||||
{
|
||||
*aURI = nsnull;
|
||||
*aIsInline = !HasAttr(kNameSpaceID_None, nsGkAtoms::src);
|
||||
if (*aIsInline) {
|
||||
return;
|
||||
}
|
||||
if (!IsInHTMLDocument()) {
|
||||
// We stopped supporting <style src="..."> for XHTML as it is
|
||||
// non-standard.
|
||||
*aIsInline = PR_TRUE;
|
||||
return;
|
||||
}
|
||||
|
||||
*aURI = GetHrefURIForAnchors().get();
|
||||
return;
|
||||
*aIsInline = PR_TRUE;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -99,8 +99,8 @@ protected:
|
|||
}
|
||||
|
||||
// nsStyleLinkElement overrides
|
||||
void GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI);
|
||||
already_AddRefed<nsIURI> GetStyleSheetURL(PRBool* aIsInline);
|
||||
|
||||
void GetStyleSheetInfo(nsAString& aTitle,
|
||||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
|
@ -311,14 +311,11 @@ NS_IMETHODIMP nsSVGStyleElement::SetTitle(const nsAString & aTitle)
|
|||
//----------------------------------------------------------------------
|
||||
// nsStyleLinkElement methods
|
||||
|
||||
void
|
||||
nsSVGStyleElement::GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI)
|
||||
already_AddRefed<nsIURI>
|
||||
nsSVGStyleElement::GetStyleSheetURL(PRBool* aIsInline)
|
||||
{
|
||||
*aURI = nsnull;
|
||||
*aIsInline = PR_TRUE;
|
||||
|
||||
return;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -78,8 +78,7 @@ public:
|
|||
protected:
|
||||
nsCOMPtr<nsIURI> mOverriddenBaseURI;
|
||||
|
||||
void GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI);
|
||||
already_AddRefed<nsIURI> GetStyleSheetURL(PRBool* aIsInline);
|
||||
void GetStyleSheetInfo(nsAString& aTitle,
|
||||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
|
@ -166,16 +165,14 @@ nsXMLStylesheetPI::OverrideBaseURI(nsIURI* aNewBaseURI)
|
|||
mOverriddenBaseURI = aNewBaseURI;
|
||||
}
|
||||
|
||||
void
|
||||
nsXMLStylesheetPI::GetStyleSheetURL(PRBool* aIsInline,
|
||||
nsIURI** aURI)
|
||||
already_AddRefed<nsIURI>
|
||||
nsXMLStylesheetPI::GetStyleSheetURL(PRBool* aIsInline)
|
||||
{
|
||||
*aIsInline = PR_FALSE;
|
||||
*aURI = nsnull;
|
||||
|
||||
nsAutoString href;
|
||||
if (!GetAttrValue(nsGkAtoms::href, href)) {
|
||||
return;
|
||||
return nsnull;
|
||||
}
|
||||
|
||||
nsIURI *baseURL;
|
||||
|
@ -188,7 +185,9 @@ nsXMLStylesheetPI::GetStyleSheetURL(PRBool* aIsInline,
|
|||
baseURL = mOverriddenBaseURI;
|
||||
}
|
||||
|
||||
NS_NewURI(aURI, href, charset.get(), baseURL);
|
||||
nsCOMPtr<nsIURI> aURI;
|
||||
NS_NewURI(getter_AddRefs(aURI), href, charset.get(), baseURL);
|
||||
return aURI.forget();
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Загрузка…
Ссылка в новой задаче