diff options
author | Josh Matthews <josh@joshmatthews.net> | 2015-05-21 09:53:19 -0400 |
---|---|---|
committer | Josh Matthews <josh@joshmatthews.net> | 2015-05-21 09:53:19 -0400 |
commit | ef8a1271561b9ee7ea4be8ac2e0548d3c8669fb2 (patch) | |
tree | 498c33429b6df00300ef526d7271f95d60e59f23 /components/script/dom/htmlscriptelement.rs | |
parent | 8082df7d0da97f1951ae125956b962b92c98e69f (diff) | |
download | servo-ef8a1271561b9ee7ea4be8ac2e0548d3c8669fb2.tar.gz servo-ef8a1271561b9ee7ea4be8ac2e0548d3c8669fb2.zip |
Update test expectations. Mark script loads as complete when the response is complete.
Diffstat (limited to 'components/script/dom/htmlscriptelement.rs')
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 365d1a75e85..2011a31bf66 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -167,6 +167,8 @@ struct ScriptContext { metadata: RefCell<Option<Metadata>>, /// Whether the owning document's parser should resume once the response completes. resume_on_completion: bool, + /// The initial URL requested. + url: Url, } impl AsyncResponseListener for ScriptContext { @@ -175,7 +177,8 @@ impl AsyncResponseListener for ScriptContext { } fn data_available(&self, payload: Vec<u8>) { - self.data.borrow_mut().extend(payload.into_iter()); + let mut payload = payload; + self.data.borrow_mut().append(&mut payload); } fn response_complete(&self, status: Result<(), String>) { @@ -188,8 +191,10 @@ impl AsyncResponseListener for ScriptContext { elem.r().execute(ScriptOrigin::External(load)); + let document = document_from_node(elem.r()).root(); + document.r().finish_load(LoadType::Script(self.url.clone())); + if self.resume_on_completion { - let document = document_from_node(elem.r()).root(); document.r().get_current_parser().unwrap().root().r().resume(); } } @@ -316,6 +321,7 @@ impl<'a> HTMLScriptElementHelpers for JSRef<'a, HTMLScriptElement> { data: RefCell::new(vec!()), metadata: RefCell::new(None), resume_on_completion: self.parser_inserted.get(), + url: url.clone(), })); let listener = box NetworkListener { |