Support CORS attributes for image elements.

This commit is contained in:
Josh Matthews 2019-10-03 17:36:02 -04:00
parent 583536c940
commit 1df8d57dc6
102 changed files with 277 additions and 363 deletions

View file

@ -18,7 +18,7 @@ use crate::dom::eventtarget::EventTarget;
use crate::dom::globalscope::GlobalScope;
use crate::dom::messageevent::MessageEvent;
use crate::dom::performanceresourcetiming::InitiatorType;
use crate::fetch::FetchCanceller;
use crate::fetch::{create_a_potential_CORS_request, FetchCanceller};
use crate::network_listener::{self, NetworkListener, PreInvoke, ResourceTimingListener};
use crate::task_source::{TaskSource, TaskSourceName};
use crate::timers::OneshotTimerCallback;
@ -31,8 +31,7 @@ use ipc_channel::router::ROUTER;
use js::conversions::ToJSValConvertible;
use js::jsval::UndefinedValue;
use mime::{self, Mime};
use net_traits::request::{CacheMode, CorsSettings, CredentialsMode};
use net_traits::request::{RequestBuilder, RequestMode};
use net_traits::request::{CacheMode, CorsSettings, Destination, RequestBuilder};
use net_traits::{CoreResourceMsg, FetchChannels, FetchMetadata};
use net_traits::{FetchResponseListener, FetchResponseMsg, NetworkError};
use net_traits::{ResourceFetchTiming, ResourceTimingType};
@ -516,17 +515,14 @@ impl EventSource {
};
// Step 8
// TODO: Step 9 set request's client settings
let mut request = RequestBuilder::new(url_record)
.origin(global.origin().immutable().clone())
.pipeline_id(Some(global.pipeline_id()))
// https://html.spec.whatwg.org/multipage/#create-a-potential-cors-request
.use_url_credentials(true)
.mode(RequestMode::CorsMode)
.credentials_mode(if cors_attribute_state == CorsSettings::Anonymous {
CredentialsMode::CredentialsSameOrigin
} else {
CredentialsMode::Include
});
let mut request = create_a_potential_CORS_request(
url_record,
Destination::None,
Some(cors_attribute_state),
Some(true),
)
.origin(global.origin().immutable().clone())
.pipeline_id(Some(global.pipeline_id()));
// Step 10
// TODO(eijebong): Replace once typed headers allow it