Skip to content

Commit 7e8d967

Browse files
committed
precompute schemes map before any loop
1 parent 1bd1e4c commit 7e8d967

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

lib/secure_headers/headers/content_security_policy.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,10 @@ def dedup_source_list(sources)
155155
wild_sources = sources.select { |source| source =~ STAR_REGEXP }
156156

157157
if wild_sources.any?
158+
schemes = sources.map { |source| [source, URI(source).scheme] }.to_h
158159
sources.reject do |source|
159160
!wild_sources.include?(source) &&
160-
wild_sources.any? { |pattern| URI(pattern).scheme == URI(source).scheme && File.fnmatch(pattern, source) }
161+
wild_sources.any? { |pattern| schemes[pattern] == schemes[source] && File.fnmatch(pattern, source) }
161162
end
162163
else
163164
sources

0 commit comments

Comments
 (0)