return CORSEnabledSchemes;
}
+static URLSchemesMap& LegacySchemes()
+{
+ DEFINE_STATIC_LOCAL(URLSchemesMap, LegacySchemes, ());
+
+ if (LegacySchemes.isEmpty()) {
+ LegacySchemes.add("ftp");
+ LegacySchemes.add("gopher");
+ }
+
+ return LegacySchemes;
+}
+
static URLSchemesMap& ContentSecurityPolicyBypassingSchemes()
{
DEFINE_STATIC_LOCAL(URLSchemesMap, schemes, ());
bool addSeparator = false;
for (URLSchemesMap::const_iterator it = corsEnabledSchemes.begin(); it != corsEnabledSchemes.end(); ++it) {
if (addSeparator)
- builder.append(", ");
+ builder.appendLiteral(", ");
else
addSeparator = true;
return builder.toString();
}
+void SchemeRegistry::registerURLSchemeAsLegacy(const String& scheme)
+{
+ LegacySchemes().add(scheme);
+}
+
+bool SchemeRegistry::shouldTreatURLSchemeAsLegacy(const String& scheme)
+{
+ if (scheme.isEmpty())
+ return false;
+ return LegacySchemes().contains(scheme);
+}
+
void SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme)
{
ContentSecurityPolicyBypassingSchemes().add(scheme);