aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-09-13 14:59:16 -0500
committerGitHub <noreply@github.com>2017-09-13 14:59:16 -0500
commitd461347adf47c47a73a7242e23d57a5741872d4f (patch)
tree676274c8be842771a052e86a6a0704ae249db4c5 /components/script
parent6d1cdd1c9265ab45de778476663774b8b3223fb2 (diff)
parentd7a3bec6d779aca97c20286383f6ce2ae8647da5 (diff)
downloadservo-d461347adf47c47a73a7242e23d57a5741872d4f.tar.gz
servo-d461347adf47c47a73a7242e23d57a5741872d4f.zip
Auto merge of #18484 - emilio:per-origin-sheets, r=SimonSapin
style: Store stylesheets per origin This is the first step that will allow us to cache UA sheets across documents. <!-- 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/18484) <!-- Reviewable:end -->
Diffstat (limited to 'components/script')
-rw-r--r--components/script/dom/document.rs4
-rw-r--r--components/script/dom/htmllinkelement.rs4
-rw-r--r--components/script/dom/htmlmetaelement.rs4
-rw-r--r--components/script/dom/htmlstyleelement.rs5
4 files changed, 8 insertions, 9 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 886e392dee7..c20ab990561 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -141,7 +141,7 @@ use style::selector_parser::{RestyleDamage, Snapshot};
use style::shared_lock::{SharedRwLock as StyleSharedRwLock, SharedRwLockReadGuard};
use style::str::{HTML_SPACE_CHARACTERS, split_html_space_chars, str_join};
use style::stylesheet_set::StylesheetSet;
-use style::stylesheets::{Stylesheet, StylesheetContents, OriginSet};
+use style::stylesheets::{Stylesheet, StylesheetContents, Origin, OriginSet};
use task_source::TaskSource;
use time;
use timers::OneshotTimerCallback;
@@ -2435,7 +2435,7 @@ impl Document {
pub fn stylesheet_at(&self, index: usize) -> Option<Root<CSSStyleSheet>> {
let stylesheets = self.stylesheets.borrow();
- stylesheets.get(index).and_then(|s| {
+ stylesheets.get(Origin::Author, index).and_then(|s| {
s.owner.upcast::<Node>().get_cssom_stylesheet()
})
}
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index 963f570700a..f1a8242b345 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -242,8 +242,8 @@ impl VirtualMethods for HTMLLinkElement {
s.unbind_from_tree(context);
}
- if let Some(ref s) = *self.stylesheet.borrow() {
- document_from_node(self).remove_stylesheet(self.upcast(), s);
+ if let Some(s) = self.stylesheet.borrow_mut().take() {
+ document_from_node(self).remove_stylesheet(self.upcast(), &s);
}
}
}
diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs
index 5e2d9c1c0b4..dbf5b676879 100644
--- a/components/script/dom/htmlmetaelement.rs
+++ b/components/script/dom/htmlmetaelement.rs
@@ -196,8 +196,8 @@ impl VirtualMethods for HTMLMetaElement {
if context.tree_in_doc {
self.process_referrer_attribute();
- if let Some(ref s) = *self.stylesheet.borrow() {
- document_from_node(self).remove_stylesheet(self.upcast(), s);
+ if let Some(s) = self.stylesheet.borrow_mut().take() {
+ document_from_node(self).remove_stylesheet(self.upcast(), &s);
}
}
}
diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs
index 330ee738466..65c7d11c12f 100644
--- a/components/script/dom/htmlstyleelement.rs
+++ b/components/script/dom/htmlstyleelement.rs
@@ -190,9 +190,8 @@ impl VirtualMethods for HTMLStyleElement {
}
if context.tree_in_doc {
- if let Some(ref s) = *self.stylesheet.borrow() {
- let doc = document_from_node(self);
- doc.remove_stylesheet(self.upcast(), s)
+ if let Some(s) = self.stylesheet.borrow_mut().take() {
+ document_from_node(self).remove_stylesheet(self.upcast(), &s)
}
}
}