Use noop loader whenever loader is not provided for @import. r?emilio
draft
Use noop loader whenever loader is not provided for @import. r?emilio
I don't really know what I should do here.
It seems that before the changes here, stylesheet.base_url.is_invalid() is
always true for geckolib? After these changes, base_url is replaced by
url_data, which is now valid url info for geckolib, so this "expect" panics.
MozReview-Commit-ID: 55GRlv3ybXU
--- a/servo/components/style/stylesheets.rs
+++ b/servo/components/style/stylesheets.rs
@@ -865,21 +865,17 @@ impl<'a> AtRuleParser for TopLevelRulePa
if self.state.get() <= State::Imports {
self.state.set(State::Imports);
let url_string = input.expect_url_or_string()?;
let specified_url = SpecifiedUrl::parse_from_string(url_string, &self.context)?;
let media = parse_media_query_list(input);
let noop_loader = NoOpLoader;
- let loader = if !specified_url.is_invalid() {
- self.loader.expect("Expected a stylesheet loader for @import")
- } else {
- &noop_loader
- };
+ let loader = self.loader.unwrap_or(&noop_loader);
let mut specified_url = Some(specified_url);
let arc = loader.request_stylesheet(media, &mut |media| {
ImportRule {
url: specified_url.take().unwrap(),
stylesheet: Arc::new(Stylesheet {
rules: CssRules::new(Vec::new(), self.shared_lock),
media: Arc::new(self.shared_lock.wrap(media)),