mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
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:
commit
ebc61bb2c3
7 changed files with 76 additions and 6 deletions
|
@ -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>> {
|
||||
|
|
|
@ -22,7 +22,6 @@ use ipc_channel::router::ROUTER;
|
|||
use net_traits::{FetchResponseListener, FetchMetadata, FilteredMetadata, Metadata, NetworkError, ReferrerPolicy};
|
||||
use net_traits::request::{CorsSettings, CredentialsMode, Destination, RequestInit, RequestMode, Type as RequestType};
|
||||
use network_listener::{NetworkListener, PreInvoke};
|
||||
use script_layout_interface::message::Msg;
|
||||
use servo_url::ServoUrl;
|
||||
use std::mem;
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
@ -151,9 +150,7 @@ impl FetchResponseListener for StylesheetContext {
|
|||
sheet.set_disabled(true);
|
||||
}
|
||||
|
||||
link.set_stylesheet(sheet.clone());
|
||||
|
||||
win.layout_chan().send(Msg::AddStylesheet(sheet)).unwrap();
|
||||
link.set_stylesheet(sheet);
|
||||
}
|
||||
}
|
||||
StylesheetContextSource::Import(ref stylesheet) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue