@@ -276,8 +276,9 @@ - (instancetype)initWithURLRequest:(NSURLRequest *)request
276276- (instancetype )initWithURL : (NSURL *)URL
277277{ return [self initWithURL: URL protocols: nil ]; }
278278
279- - (instancetype )initWithURL : (NSURL *)URL protocols : (NSArray <NSString *> *)protocols
280- {
279+ - (instancetype )initWithURL : (NSURL *)URL
280+ extraHeaders : (NSDictionary *)extraHeaders
281+ protocols : (NSArray <NSString *> *)protocols {
281282 NSMutableURLRequest *request;
282283 if (URL) {
283284 // Build a mutable request so we can fill the cookie header.
@@ -293,11 +294,22 @@ - (instancetype)initWithURL:(NSURL *)URL protocols:(NSArray<NSString *> *)protoc
293294
294295 // Load and set the cookie header.
295296 NSArray <NSHTTPCookie *> *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage ] cookiesForURL: components.URL];
296- [request setAllHTTPHeaderFields: [NSHTTPCookie requestHeaderFieldsWithCookies: cookies]];
297+ NSDictionary *cookieHeaders = [NSHTTPCookie requestHeaderFieldsWithCookies: cookies];
298+
299+ // Set extraHeaders passed from the js
300+ NSMutableDictionary *allHeaders = cookieHeaders.mutableCopy ?: [NSMutableDictionary dictionary ];
301+ if (extraHeaders) {
302+ [allHeaders addEntriesFromDictionary: extraHeaders];
303+ }
304+ [request setAllHTTPHeaderFields: allHeaders];
297305 }
298306 return [self initWithURLRequest: request protocols: protocols];
299307}
300308
309+ - (instancetype )initWithURL : (NSURL *)URL protocols : (NSArray <NSString *> *)protocols {
310+ return [self initWithURL: URL extraHeaders: nil protocols: protocols];
311+ }
312+
301313- (void )_HippySR_commonInit
302314{
303315 NSString *scheme = _url.scheme .lowercaseString ;
0 commit comments