aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/htmlscriptelement.rs10
-rw-r--r--components/script/dom/xmlhttprequest.rs20
2 files changed, 20 insertions, 10 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index ea44dd81336..566b69967d4 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -31,7 +31,7 @@ use html5ever::tree_builder::NextParserState;
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use js::jsval::UndefinedValue;
-use net_traits::{FetchResponseListener, Metadata, NetworkError};
+use net_traits::{FetchMetadata, FetchResponseListener, Metadata, NetworkError};
use net_traits::request::{CORSSettings, CredentialsMode, Destination, RequestInit, RequestMode, Type as RequestType};
use network_listener::{NetworkListener, PreInvoke};
use std::ascii::AsciiExt;
@@ -159,8 +159,12 @@ impl FetchResponseListener for ScriptContext {
fn process_request_eof(&mut self) {} // TODO(KiChjang): Perhaps add custom steps to perform fetch here?
- fn process_response(&mut self, metadata: Result<Metadata, NetworkError>) {
- self.metadata = metadata.ok();
+ fn process_response(&mut self,
+ metadata: Result<FetchMetadata, NetworkError>) {
+ self.metadata = metadata.ok().map(|meta| match meta {
+ FetchMetadata::Unfiltered(m) => m,
+ FetchMetadata::Filtered { unsafe_, .. } => unsafe_
+ });
let status_code = self.metadata.as_ref().and_then(|m| {
match m.status {
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 66338dd9ef1..24ee2c28d36 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -45,8 +45,8 @@ use js::jsapi::{JSContext, JS_ParseJSON};
use js::jsapi::JS_ClearPendingException;
use js::jsval::{JSVal, NullValue, UndefinedValue};
use msg::constellation_msg::{PipelineId, ReferrerPolicy};
-use net_traits::{CoreResourceThread, LoadOrigin};
-use net_traits::{FetchResponseListener, Metadata, NetworkError};
+use net_traits::{CoreResourceThread, FetchMetadata, FilteredMetadata};
+use net_traits::{FetchResponseListener, LoadOrigin, NetworkError};
use net_traits::CoreResourceMsg::Fetch;
use net_traits::request::{CredentialsMode, Destination, RequestInit, RequestMode};
use net_traits::trim_http_whitespace;
@@ -227,10 +227,10 @@ impl XMLHttpRequest {
// todo
}
- fn process_response(&mut self, metadata: Result<Metadata, NetworkError>) {
+ fn process_response(&mut self,
+ metadata: Result<FetchMetadata, NetworkError>) {
let xhr = self.xhr.root();
- let rv = xhr.process_headers_available(self.gen_id,
- metadata);
+ let rv = xhr.process_headers_available(self.gen_id, metadata);
if rv.is_err() {
*self.sync_status.borrow_mut() = Some(rv);
}
@@ -869,10 +869,16 @@ impl XMLHttpRequest {
}
fn process_headers_available(&self,
- gen_id: GenerationId, metadata: Result<Metadata, NetworkError>)
+ gen_id: GenerationId, metadata: Result<FetchMetadata, NetworkError>)
-> Result<(), Error> {
let metadata = match metadata {
- Ok(meta) => meta,
+ Ok(meta) => match meta {
+ FetchMetadata::Unfiltered(m) => m,
+ FetchMetadata::Filtered { filtered, .. } => match filtered {
+ FilteredMetadata::Opaque => return Err(Error::Network),
+ FilteredMetadata::Transparent(m) => m
+ }
+ },
Err(_) => {
self.process_partial_response(XHRProgress::Errored(gen_id, Error::Network));
return Err(Error::Network);