summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/KURLGoogle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/KURLGoogle.cpp')
-rw-r--r--Source/WebCore/platform/KURLGoogle.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/WebCore/platform/KURLGoogle.cpp b/Source/WebCore/platform/KURLGoogle.cpp
index 231c43d..88120a8 100644
--- a/Source/WebCore/platform/KURLGoogle.cpp
+++ b/Source/WebCore/platform/KURLGoogle.cpp
@@ -133,6 +133,22 @@ static inline bool isSchemeChar(char c)
return isSchemeFirstChar(c) || (c >= '0' && c <= '9') || c == '.' || c == '-' || c == '*';
}
+bool isValidProtocol(const String& protocol)
+{
+ // NOTE This is a copy of the function in KURL.cpp.
+ // RFC3986: ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
+ if (protocol.isEmpty())
+ return false;
+ if (!isSchemeFirstChar(protocol[0]))
+ return false;
+ unsigned protocolLength = protocol.length();
+ for (unsigned i = 1; i < protocolLength; i++) {
+ if (!isSchemeChar(protocol[i]))
+ return false;
+ }
+ return true;
+}
+
// KURLGooglePrivate -----------------------------------------------------------