Auto merge of #16407 - jdm:style_panic, r=emilio

Allow loading multiple stylesheets for the same link element.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #16399
- [x] There are tests for these changes

<!-- 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/16407)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-04-13 11:29:58 -05:00 committed by GitHub
commit ebc61bb2c3
7 changed files with 76 additions and 6 deletions

View file

@ -24,6 +24,7 @@ use dom::virtualmethods::VirtualMethods;
use dom_struct::dom_struct;
use html5ever_atoms::LocalName;
use net_traits::ReferrerPolicy;
use script_layout_interface::message::Msg;
use script_traits::{MozBrowserEvent, ScriptMsg as ConstellationMsg};
use std::ascii::AsciiExt;
use std::borrow::ToOwned;
@ -97,8 +98,9 @@ impl HTMLLinkElement {
}
pub fn set_stylesheet(&self, s: Arc<Stylesheet>) {
assert!(self.stylesheet.borrow().is_none()); // Useful for catching timing issues.
*self.stylesheet.borrow_mut() = Some(s);
*self.stylesheet.borrow_mut() = Some(s.clone());
window_from_node(self).layout_chan().send(Msg::AddStylesheet(s)).unwrap();
document_from_node(self).invalidate_stylesheets();
}
pub fn get_stylesheet(&self) -> Option<Arc<Stylesheet>> {