aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-07-06 23:17:05 -0600
committerbors-servo <metajack+bors@gmail.com>2015-07-06 23:17:05 -0600
commit1618a9e73d662159ed36f35bca6ea36fa0e58d90 (patch)
tree2d9619f8df9429bcea7a5d10b84501b5a0dc6253 /components
parenta0db2cf1bb720130aabd0d755e9432bd17063740 (diff)
parent52e336e5a8c9574dcb91aed8e8c2696300520d04 (diff)
downloadservo-1618a9e73d662159ed36f35bca6ea36fa0e58d90.tar.gz
servo-1618a9e73d662159ed36f35bca6ea36fa0e58d90.zip
Auto merge of #6543 - Ms2ger:a-href-activate, r=jdm
Only make a elements activatable when they have an href attribute. I've tested this manually, by clicking on the "baz" in code like ```js var a = document.body.appendChild(document.createElement("a")); a.textContent = "bar "; a.setAttribute("href", "http://www.yahoo.com"); var b = a.appendChild(document.createElement("a")); b.textContent = "baz"; ``` but I've not found a way to write an automated test. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6543) <!-- Reviewable:end -->
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/htmlanchorelement.rs20
1 files changed, 12 insertions, 8 deletions
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs
index 9f1f57a0baf..afe10ed7157 100644
--- a/components/script/dom/htmlanchorelement.rs
+++ b/components/script/dom/htmlanchorelement.rs
@@ -101,7 +101,12 @@ impl<'a> Activatable for &'a HTMLAnchorElement {
}
fn is_instance_activatable(&self) -> bool {
- true
+ // https://html.spec.whatwg.org/multipage/#hyperlink
+ // "a [...] element[s] with an href attribute [...] must [..] create a
+ // hyperlink"
+ // https://html.spec.whatwg.org/multipage/#the-a-element
+ // "The activation behaviour of a elements *that create hyperlinks*"
+ ElementCast::from_ref(*self).has_attribute(&atom!("href"))
}
@@ -141,14 +146,13 @@ impl<'a> Activatable for &'a HTMLAnchorElement {
//TODO: Step 4. Download the link is `download` attribute is set.
- if let Some(ref href) = element.get_attribute(&ns!(""), &atom!("href")) {
- let mut value = href.r().Value();
- if let Some(suffix) = ismap_suffix {
- value.push_str(&suffix);
- }
- debug!("clicked on link to {}", value);
- doc.r().load_anchor_href(value);
+ let href = element.get_attribute(&ns!(""), &atom!("href")).unwrap();
+ let mut value = href.r().Value();
+ if let Some(suffix) = ismap_suffix {
+ value.push_str(&suffix);
}
+ debug!("clicked on link to {}", value);
+ doc.r().load_anchor_href(value);
}
//TODO:https://html.spec.whatwg.org/multipage/#the-a-element