summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2009-09-10 13:30:19 -0400
committerCary Clark <cary@android.com>2009-09-10 17:09:37 -0400
commit0a7dd05ee942fb3835457cf640633c2d78f0a2e1 (patch)
tree2a599085302edd7ebba0667cb38d4dda862a5580 /WebKit/android/jni
parentd709ea1bc8aa27b597a3ec568e7cb6eb3e094467 (diff)
downloadexternal_webkit-0a7dd05ee942fb3835457cf640633c2d78f0a2e1.zip
external_webkit-0a7dd05ee942fb3835457cf640633c2d78f0a2e1.tar.gz
external_webkit-0a7dd05ee942fb3835457cf640633c2d78f0a2e1.tar.bz2
allow mixed-case schemes in resource URLs
Adjust the scheme to all lower case before looking up the resource if the original was not already lower case. This fixes http://b/2056348
Diffstat (limited to 'WebKit/android/jni')
-rw-r--r--WebKit/android/jni/WebCoreFrameBridge.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/WebKit/android/jni/WebCoreFrameBridge.cpp b/WebKit/android/jni/WebCoreFrameBridge.cpp
index 9cc5e90..f366479 100644
--- a/WebKit/android/jni/WebCoreFrameBridge.cpp
+++ b/WebKit/android/jni/WebCoreFrameBridge.cpp
@@ -280,13 +280,26 @@ WebFrame::startLoadingResource(WebCore::ResourceHandle* loader,
TimeCounterAuto counter(TimeCounter::JavaCallbackTimeCounter);
#endif
LOGV("::WebCore:: startLoadingResource(%p, %s)",
- loader, request.url().string().ascii().data());
+ loader, request.url().string().latin1().data());
WebCore::String method = request.httpMethod();
WebCore::HTTPHeaderMap headers = request.httpHeaderFields();
JNIEnv* env = JSC::Bindings::getJNIEnv();
WebCore::String urlStr = request.url().string();
+ int colon = urlStr.find(':');
+ bool allLower = true;
+ for (int index = 0; index < colon; index++) {
+ UChar ch = urlStr[index];
+ if (!WTF::isASCIIAlpha(ch))
+ break;
+ allLower &= WTF::isASCIILower(ch);
+ if (index == colon - 1 && !allLower) {
+ urlStr = urlStr.substring(0, colon).lower()
+ + urlStr.substring(colon);
+ }
+ }
+ LOGV("%s lower=%s", __FUNCTION__, urlStr.latin1().data());
jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
jstring jMethodStr = NULL;
if (!method.isEmpty())