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:
bors-servo 2016-10-02 13:02:14 -05:00 committed by GitHub
commit 3eb6fc4818
5 changed files with 104 additions and 49 deletions

View file

@ -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);

View file

@ -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",

View file

@ -0,0 +1,9 @@
<!DOCTYPE html>
<meta charset=utf-8>
<title>Test</title>
<style>
body {
color: green;
}
</style>
<p>This text should be green.

View file

@ -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.