Index: third_party/WebKit/Source/core/frame/csp/SourceListDirective.cpp |
diff --git a/third_party/WebKit/Source/core/frame/csp/SourceListDirective.cpp b/third_party/WebKit/Source/core/frame/csp/SourceListDirective.cpp |
index 49fc73f111fdcfbcefb2640737c197d7aac7915b..43f68e76a7a9c208757cece115bd6a484018c162 100644 |
--- a/third_party/WebKit/Source/core/frame/csp/SourceListDirective.cpp |
+++ b/third_party/WebKit/Source/core/frame/csp/SourceListDirective.cpp |
@@ -559,8 +559,9 @@ void SourceListDirective::addSourceHash( |
m_hashAlgorithmsUsed |= algorithm; |
} |
-void SourceListDirective::addSourceToMap(HashMap<String, CSPSource*>& hashMap, |
- CSPSource* source) { |
+void SourceListDirective::addSourceToMap( |
+ HeapHashMap<String, Member<CSPSource>>& hashMap, |
+ CSPSource* source) { |
hashMap.add(source->getScheme(), source); |
if (source->getScheme() == "http") |
hashMap.add("https", source); |
@@ -642,16 +643,17 @@ bool SourceListDirective::subsumes( |
return CSPSource::firstSubsumesSecond(normalizedA, normalizedB); |
} |
-HashMap<String, CSPSource*> SourceListDirective::getIntersectSchemesOnly( |
+HeapHashMap<String, Member<CSPSource>> |
+SourceListDirective::getIntersectSchemesOnly( |
HeapVector<Member<CSPSource>> other) { |
- HashMap<String, CSPSource*> schemesA; |
+ HeapHashMap<String, Member<CSPSource>> schemesA; |
for (const auto& sourceA : m_list) { |
if (sourceA->isSchemeOnly()) |
addSourceToMap(schemesA, sourceA); |
} |
// Add schemes only sources if they are present in both `this` and `other`, |
// allowing upgrading `http` to `https` and `ws` to `wss`. |
- HashMap<String, CSPSource*> intersect; |
+ HeapHashMap<String, Member<CSPSource>> intersect; |
for (const auto& sourceB : other) { |
if (sourceB->isSchemeOnly()) { |
if (schemesA.contains(sourceB->getScheme())) |
@@ -668,14 +670,14 @@ HashMap<String, CSPSource*> SourceListDirective::getIntersectSchemesOnly( |
HeapVector<Member<CSPSource>> SourceListDirective::getIntersectCSPSources( |
HeapVector<Member<CSPSource>> other) { |
- HashMap<String, CSPSource*> schemesMap = getIntersectSchemesOnly(other); |
+ auto schemesMap = getIntersectSchemesOnly(other); |
HeapVector<Member<CSPSource>> normalized; |
// Add all normalized scheme source expressions. |
- for (auto it = schemesMap.begin(); it != schemesMap.end(); ++it) { |
+ for (const auto& it : schemesMap) { |
// We do not add secure versions if insecure schemes are present. |
- if ((it->key != "https" || !schemesMap.contains("http")) && |
- (it->key != "wss" || !schemesMap.contains("ws"))) { |
- normalized.append(it->value); |
+ if ((it.key != "https" || !schemesMap.contains("http")) && |
+ (it.key != "wss" || !schemesMap.contains("ws"))) { |
+ normalized.append(it.value); |
} |
} |