aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-04-13 11:29:58 -0500
committerGitHub <noreply@github.com>2017-04-13 11:29:58 -0500
commitebc61bb2c3ac682ca366019b21160819ec3c7882 (patch)
treebab11afecb3b5d7a6317eb17f5fcfe8c008f5118 /components/script/dom
parentea20bd6f6362191875bba7bce376c9d805588cbe (diff)
parent3c3311b16a0a1f0c84d02ff10283fb0800529184 (diff)
downloadservo-ebc61bb2c3ac682ca366019b21160819ec3c7882.tar.gz
servo-ebc61bb2c3ac682ca366019b21160819ec3c7882.zip
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 -->
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmllinkelement.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index d22a24d2e17..28f72832e9a 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -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>> {