diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-09-21 18:49:33 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-21 18:49:33 -0500 |
commit | f357afc94ac437c4323bcc4d46c2767ccef73b73 (patch) | |
tree | 2a5b7952f3b1c3ac3a5cd7facba026440815a8ba /components/script/document_loader.rs | |
parent | ecb44e748b090655bea9d519448c02d290b9e957 (diff) | |
parent | 6fbd2aa5b7628bd47971806ddf438cd350a60bee (diff) | |
download | servo-f357afc94ac437c4323bcc4d46c2767ccef73b73.tar.gz servo-f357afc94ac437c4323bcc4d46c2767ccef73b73.zip |
Auto merge of #12472 - KiChjang:use-fetch-in-script, r=jdm
Use fetch infrastructure to load external scripts
Fixes #9186.
<!-- 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/12472)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/document_loader.rs')
-rw-r--r-- | components/script/document_loader.rs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/components/script/document_loader.rs b/components/script/document_loader.rs index 0fc1e5e06c5..5209b68b9ac 100644 --- a/components/script/document_loader.rs +++ b/components/script/document_loader.rs @@ -7,9 +7,11 @@ use dom::bindings::js::JS; use dom::document::Document; +use ipc_channel::ipc::IpcSender; use msg::constellation_msg::{PipelineId, ReferrerPolicy}; -use net_traits::{PendingAsyncLoad, AsyncResponseTarget, LoadContext}; -use net_traits::{ResourceThreads, IpcSend}; +use net_traits::{AsyncResponseTarget, PendingAsyncLoad, LoadContext}; +use net_traits::{FetchResponseMsg, ResourceThreads, IpcSend}; +use net_traits::request::RequestInit; use std::thread; use url::Url; @@ -148,6 +150,17 @@ impl DocumentLoader { pending.load_async(listener) } + /// Initiate a new fetch. + pub fn fetch_async(&mut self, + load: LoadType, + request: RequestInit, + fetch_target: IpcSender<FetchResponseMsg>, + referrer: &Document, + referrer_policy: Option<ReferrerPolicy>) { + let pending = self.prepare_async_load(load, referrer, referrer_policy); + pending.fetch_async(request, fetch_target); + } + /// Mark an in-progress network request complete. pub fn finish_load(&mut self, load: &LoadType) { let idx = self.blocking_loads.iter().position(|unfinished| *unfinished == *load); |