From 7f3a34eeb89e7c930b8189f95c5f8715185da587 Mon Sep 17 00:00:00 2001 From: Satya Rohith Date: Wed, 28 Jul 2021 04:34:08 +0530 Subject: feat(extensions/fetch): extend init options (#11528) --- extensions/fetch/lib.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'extensions/fetch') diff --git a/extensions/fetch/lib.rs b/extensions/fetch/lib.rs index f870c58dc..074e8827a 100644 --- a/extensions/fetch/lib.rs +++ b/extensions/fetch/lib.rs @@ -60,6 +60,7 @@ pub fn init( user_agent: String, ca_data: Option>, proxy: Option, + frozen_headers: Option, ) -> Extension { Extension::builder() .js(include_js_files!( @@ -89,6 +90,7 @@ pub fn init( ca_data: ca_data.clone(), user_agent: user_agent.clone(), proxy: proxy.clone(), + frozen_headers: frozen_headers.clone(), }); Ok(()) }) @@ -99,6 +101,7 @@ pub struct HttpClientDefaults { pub user_agent: String, pub ca_data: Option>, pub proxy: Option, + pub frozen_headers: Option, } pub trait FetchPermissions { @@ -214,6 +217,15 @@ where } } + // Set frozen_headers after the user provided headers, so the + // end user can't override them. + let defaults = state.borrow::(); + if let Some(frozen_headers) = &defaults.frozen_headers { + for (key, value) in frozen_headers { + request = request.header(key, value) + } + } + let cancel_handle = CancelHandle::new_rc(); let cancel_handle_ = cancel_handle.clone(); -- cgit v1.2.3