mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
Auto merge of #13525 - servo:empty-href, r=emilio
Ignore stylesheet links with an empty href. <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13525) <!-- Reviewable:end -->
This commit is contained in:
commit
3eb6fc4818
5 changed files with 104 additions and 49 deletions
|
@ -197,14 +197,24 @@ impl VirtualMethods for HTMLLinkElement {
|
||||||
|
|
||||||
|
|
||||||
impl HTMLLinkElement {
|
impl HTMLLinkElement {
|
||||||
|
/// https://html.spec.whatwg.org/multipage/#concept-link-obtain
|
||||||
fn handle_stylesheet_url(&self, href: &str) {
|
fn handle_stylesheet_url(&self, href: &str) {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
if document.browsing_context().is_none() {
|
if document.browsing_context().is_none() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
match document.base_url().join(href) {
|
// Step 1.
|
||||||
Ok(url) => {
|
if href.is_empty() {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Step 2.
|
||||||
|
let url = match document.base_url().join(href) {
|
||||||
|
Err(e) => return debug!("Parsing url {} failed: {}", href, e),
|
||||||
|
Ok(url) => url,
|
||||||
|
};
|
||||||
|
|
||||||
let element = self.upcast::<Element>();
|
let element = self.upcast::<Element>();
|
||||||
|
|
||||||
let mq_attribute = element.get_attribute(&ns!(), &atom!("media"));
|
let mq_attribute = element.get_attribute(&ns!(), &atom!("media"));
|
||||||
|
@ -251,9 +261,6 @@ impl HTMLLinkElement {
|
||||||
|
|
||||||
document.load_async(LoadType::Stylesheet(url), response_target, referrer_policy);
|
document.load_async(LoadType::Stylesheet(url), response_target, referrer_policy);
|
||||||
}
|
}
|
||||||
Err(e) => debug!("Parsing url {} failed: {}", href, e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fn handle_favicon_url(&self, rel: &str, href: &str, sizes: &Option<String>) {
|
fn handle_favicon_url(&self, rel: &str, href: &str, sizes: &Option<String>) {
|
||||||
let document = document_from_node(self);
|
let document = document_from_node(self);
|
||||||
|
|
|
@ -37715,6 +37715,18 @@
|
||||||
"deleted_reftests": {},
|
"deleted_reftests": {},
|
||||||
"items": {
|
"items": {
|
||||||
"reftest": {
|
"reftest": {
|
||||||
|
"html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html": [
|
||||||
|
{
|
||||||
|
"path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
"html/semantics/document-metadata/the-link-element/stylesheet-media.html": [
|
"html/semantics/document-metadata/the-link-element/stylesheet-media.html": [
|
||||||
{
|
{
|
||||||
"path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html",
|
"path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html",
|
||||||
|
@ -37744,6 +37756,18 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"reftest_nodes": {
|
"reftest_nodes": {
|
||||||
|
"html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html": [
|
||||||
|
{
|
||||||
|
"path": "html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html",
|
||||||
|
"references": [
|
||||||
|
[
|
||||||
|
"/html/semantics/document-metadata/the-link-element/stylesheet-empty-href-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"url": "/html/semantics/document-metadata/the-link-element/stylesheet-empty-href.html"
|
||||||
|
}
|
||||||
|
],
|
||||||
"html/semantics/document-metadata/the-link-element/stylesheet-media.html": [
|
"html/semantics/document-metadata/the-link-element/stylesheet-media.html": [
|
||||||
{
|
{
|
||||||
"path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html",
|
"path": "html/semantics/document-metadata/the-link-element/stylesheet-media.html",
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
body {
|
||||||
|
color: red;
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Test</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<p>This text should be green.
|
|
@ -0,0 +1,12 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>Test</title>
|
||||||
|
<link rel=match href=stylesheet-empty-href-ref.html>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<base href=resources/empty-href.css>
|
||||||
|
<link rel=stylesheet href>
|
||||||
|
<p>This text should be green.
|
Loading…
Add table
Add a link
Reference in a new issue