aboutsummaryrefslogtreecommitdiffstats
path: root/components/script
diff options
context:
space:
mode:
Diffstat (limited to 'components/script')
-rw-r--r--components/script/Cargo.toml2
-rw-r--r--components/script/dom/globalscope.rs8
-rw-r--r--components/script/dom/htmliframeelement.rs2
-rw-r--r--components/script/dom/permissions.rs4
-rw-r--r--components/script/dom/servoparser/async_html.rs25
-rw-r--r--components/script/dom/window.rs2
-rw-r--r--components/script/layout_wrapper.rs2
7 files changed, 18 insertions, 27 deletions
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index b9d8a0b1304..12f84eeaf12 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -35,7 +35,7 @@ byteorder = "1.0"
canvas_traits = {path = "../canvas_traits"}
caseless = "0.1.0"
cookie = "0.6"
-cssparser = "0.16"
+cssparser = "0.16.1"
deny_public_fields = {path = "../deny_public_fields"}
devtools_traits = {path = "../devtools_traits"}
dom_struct = {path = "../dom_struct"}
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index ce81958a2cb..3a47298c53b 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -543,12 +543,16 @@ impl GlobalScope {
///
/// ["current"]: https://html.spec.whatwg.org/multipage/#current
#[allow(unsafe_code)]
- pub fn current() -> Root<Self> {
+ pub fn current() -> Option<Root<Self>> {
unsafe {
let cx = Runtime::get();
assert!(!cx.is_null());
let global = CurrentGlobalOrNull(cx);
- global_scope_from_global(global)
+ if global.is_null() {
+ None
+ } else {
+ Some(global_scope_from_global(global))
+ }
}
}
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 23feab87329..bde40d11a2b 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -590,7 +590,7 @@ impl HTMLIFrameElementMethods for HTMLIFrameElement {
Some(document) => document,
};
// Step 4.
- let current = GlobalScope::current().as_window().Document();
+ let current = GlobalScope::current().expect("No current global object").as_window().Document();
if !current.origin().same_origin_domain(document.origin()) {
return None;
}
diff --git a/components/script/dom/permissions.rs b/components/script/dom/permissions.rs
index b5cab2ace90..3368782d06e 100644
--- a/components/script/dom/permissions.rs
+++ b/components/script/dom/permissions.rs
@@ -241,7 +241,7 @@ impl PermissionAlgorithm for Permissions {
let state =
prompt_user(&format!("{} {} ?", REQUEST_DIALOG_MESSAGE, perm_name.clone()));
- let globalscope = GlobalScope::current();
+ let globalscope = GlobalScope::current().expect("No current global object");
globalscope.as_window()
.permission_state_invocation_results()
.borrow_mut()
@@ -266,7 +266,7 @@ pub fn get_descriptor_permission_state(permission_name: PermissionName,
// Step 1.
let settings = match env_settings_obj {
Some(env_settings_obj) => Root::from_ref(env_settings_obj),
- None => GlobalScope::current(),
+ None => GlobalScope::current().expect("No current global object"),
};
// Step 2.
diff --git a/components/script/dom/servoparser/async_html.rs b/components/script/dom/servoparser/async_html.rs
index e13f8169faa..e1632ffaf3c 100644
--- a/components/script/dom/servoparser/async_html.rs
+++ b/components/script/dom/servoparser/async_html.rs
@@ -138,8 +138,6 @@ pub struct ParseNode {
#[derive(JSTraceable, HeapSizeOf)]
struct ParseNodeData {
- target: Option<String>,
- data: Option<String>,
contents: Option<ParseNode>,
is_integration_point: bool,
}
@@ -147,8 +145,6 @@ struct ParseNodeData {
impl Default for ParseNodeData {
fn default() -> ParseNodeData {
ParseNodeData {
- target: None,
- data: None,
contents: None,
is_integration_point: false,
}
@@ -169,7 +165,7 @@ enum ParseOperation {
MarkScriptAlreadyStarted(ParseNodeID),
ReparentChildren(ParseNodeID, ParseNodeID),
AssociateWithForm(ParseNodeID, ParseNodeID),
- CreatePI(ParseNodeID),
+ CreatePI(ParseNodeID, StrTendril, StrTendril),
Pop(ParseNodeID),
}
@@ -329,15 +325,11 @@ impl Sink {
ParseOperation::Pop(node) => {
vtable_for(self.get_node(&node)).pop();
}
- ParseOperation::CreatePI(node) => {
- let pi;
- {
- let data = self.get_parse_node_data(&node);
- pi = ProcessingInstruction::new(
- DOMString::from(data.target.clone().unwrap()),
- DOMString::from(data.data.clone().unwrap()),
+ ParseOperation::CreatePI(node, target, data) => {
+ let pi = ProcessingInstruction::new(
+ DOMString::from(String::from(target)),
+ DOMString::from(String::from(data)),
document);
- }
self.insert_node(node, JS::from_ref(pi.upcast()));
}
}
@@ -411,12 +403,7 @@ impl TreeSink for Sink {
fn create_pi(&mut self, target: StrTendril, data: StrTendril) -> ParseNode {
let node = self.new_parse_node();
- {
- let mut node_data = self.get_parse_node_data_mut(&node.id);
- node_data.target = Some(String::from(target));
- node_data.data = Some(String::from(data));
- }
- self.process_operation(ParseOperation::CreatePI(node.id));
+ self.process_operation(ParseOperation::CreatePI(node.id, target, data));
node
}
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 0d4dca7d845..d560c71b3ad 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -586,7 +586,7 @@ impl WindowMethods for Window {
};
// Step 6.
let container_doc = document_from_node(container);
- let current_doc = GlobalScope::current().as_window().Document();
+ let current_doc = GlobalScope::current().expect("No current global object").as_window().Document();
if !current_doc.origin().same_origin_domain(container_doc.origin()) {
return None;
}
diff --git a/components/script/layout_wrapper.rs b/components/script/layout_wrapper.rs
index d26493589c2..0875d437598 100644
--- a/components/script/layout_wrapper.rs
+++ b/components/script/layout_wrapper.rs
@@ -902,7 +902,7 @@ impl<'ln> ThreadSafeLayoutNode for ServoThreadSafeLayoutNode<'ln> {
fn parent_style(&self) -> Arc<ComputedValues> {
let parent = self.node.parent_node().unwrap().as_element().unwrap();
let parent_data = parent.get_data().unwrap().borrow();
- parent_data.styles().primary.values().clone()
+ parent_data.styles.primary().clone()
}
fn debug_id(self) -> usize {