diff options
author | Anders Edenbrandt <anders.edenbrandt@sonymobile.com> | 2012-03-23 17:07:48 +0100 |
---|---|---|
committer | Johan Redestig <johan.redestig@sonymobile.com> | 2012-06-21 15:23:01 +0200 |
commit | e1354a91d87c0cc6ffc8bfa9262d02bca6e6cb4f (patch) | |
tree | 5b5ac3fecd9f3f20f1badcdf5f397a75feaf34c5 /Source/WebKit/android/jni | |
parent | 31874a9d49b110cd82de0efc5eab2c9cddcddde1 (diff) | |
download | external_webkit-e1354a91d87c0cc6ffc8bfa9262d02bca6e6cb4f.zip external_webkit-e1354a91d87c0cc6ffc8bfa9262d02bca6e6cb4f.tar.gz external_webkit-e1354a91d87c0cc6ffc8bfa9262d02bca6e6cb4f.tar.bz2 |
Accept-Language header is not updated when phone language changes
The Java class WebSettings has accessor methods for User Agent
and Accept-Language strings. These methods ensure that the values
are updated if the Locale has changed. However, WebSettings.cpp
in WebKit reads the private fields in WebSettings.java directly,
and thereby fails to trigger the update.
The correction is to use the appropriate accessor methods from
WebSettings.cpp.
Change-Id: Id1aa1f4de38d2a73cad9660afc35944c663dbd4a
Diffstat (limited to 'Source/WebKit/android/jni')
-rw-r--r-- | Source/WebKit/android/jni/WebSettings.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/Source/WebKit/android/jni/WebSettings.cpp b/Source/WebKit/android/jni/WebSettings.cpp index fdd0cb1..dd847e8 100644 --- a/Source/WebKit/android/jni/WebSettings.cpp +++ b/Source/WebKit/android/jni/WebSettings.cpp @@ -82,9 +82,9 @@ struct FieldIds { "Ljava/lang/String;"); mDefaultTextEncoding = env->GetFieldID(clazz, "mDefaultTextEncoding", "Ljava/lang/String;"); - mUserAgent = env->GetFieldID(clazz, "mUserAgent", - "Ljava/lang/String;"); - mAcceptLanguage = env->GetFieldID(clazz, "mAcceptLanguage", "Ljava/lang/String;"); + mGetUserAgentString = env->GetMethodID(clazz, "getUserAgentString", + "()Ljava/lang/String;"); + mGetAcceptLanguage = env->GetMethodID(clazz, "getAcceptLanguage", "()Ljava/lang/String;"); mMinimumFontSize = env->GetFieldID(clazz, "mMinimumFontSize", "I"); mMinimumLogicalFontSize = env->GetFieldID(clazz, "mMinimumLogicalFontSize", "I"); mDefaultFontSize = env->GetFieldID(clazz, "mDefaultFontSize", "I"); @@ -161,8 +161,8 @@ struct FieldIds { LOG_ASSERT(mCursiveFontFamily, "Could not find field mCursiveFontFamily"); LOG_ASSERT(mFantasyFontFamily, "Could not find field mFantasyFontFamily"); LOG_ASSERT(mDefaultTextEncoding, "Could not find field mDefaultTextEncoding"); - LOG_ASSERT(mUserAgent, "Could not find field mUserAgent"); - LOG_ASSERT(mAcceptLanguage, "Could not find field mAcceptLanguage"); + LOG_ASSERT(mGetUserAgentString, "Could not find method getUserAgentString"); + LOG_ASSERT(mGetAcceptLanguage, "Could not find method getAcceptLanguage"); LOG_ASSERT(mMinimumFontSize, "Could not find field mMinimumFontSize"); LOG_ASSERT(mMinimumLogicalFontSize, "Could not find field mMinimumLogicalFontSize"); LOG_ASSERT(mDefaultFontSize, "Could not find field mDefaultFontSize"); @@ -212,8 +212,8 @@ struct FieldIds { jfieldID mCursiveFontFamily; jfieldID mFantasyFontFamily; jfieldID mDefaultTextEncoding; - jfieldID mUserAgent; - jfieldID mAcceptLanguage; + jmethodID mGetUserAgentString; + jmethodID mGetAcceptLanguage; jfieldID mMinimumFontSize; jfieldID mMinimumLogicalFontSize; jfieldID mDefaultFontSize; @@ -375,7 +375,7 @@ public: str = (jstring)env->GetObjectField(obj, gFieldIds->mDefaultTextEncoding); s->setDefaultTextEncodingName(jstringToWtfString(env, str)); - str = (jstring)env->GetObjectField(obj, gFieldIds->mUserAgent); + str = (jstring)env->CallObjectMethod(obj, gFieldIds->mGetUserAgentString); WebFrame::getWebFrame(pFrame)->setUserAgent(jstringToWtfString(env, str)); #if USE(CHROME_NETWORK_STACK) WebViewCore::getWebViewCore(pFrame->view())->setWebRequestContextUserAgent(); @@ -383,7 +383,7 @@ public: jint cacheMode = env->GetIntField(obj, gFieldIds->mOverrideCacheMode); WebViewCore::getWebViewCore(pFrame->view())->setWebRequestContextCacheMode(cacheMode); - str = (jstring)env->GetObjectField(obj, gFieldIds->mAcceptLanguage); + str = (jstring)env->CallObjectMethod(obj, gFieldIds->mGetAcceptLanguage); WebRequestContext::setAcceptLanguage(jstringToWtfString(env, str)); #endif |