diff options
Diffstat (limited to 'WebKit/android')
-rw-r--r-- | WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp | 5 | ||||
-rw-r--r-- | WebKit/android/jni/WebCoreFrameBridge.cpp | 52 | ||||
-rw-r--r-- | WebKit/android/jni/WebCoreFrameBridge.h | 10 |
3 files changed, 55 insertions, 12 deletions
diff --git a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp index ae3d582..44c942d 100644 --- a/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp +++ b/WebKit/android/WebCoreSupport/FrameLoaderClientAndroid.cpp @@ -44,6 +44,7 @@ #include "MIMETypeRegistry.h" #include "NotImplemented.h" #include "Page.h" +#include "PlatformBridge.h" #include "PlatformGraphicsContext.h" #include "PlatformString.h" #include "PluginDatabase.h" @@ -300,11 +301,11 @@ void FrameLoaderClientAndroid::dispatchDidFailProvisionalLoad(const ResourceErro AssetManager* am = globalAssetManager(); // Check to see if the error code was not generated internally - WebFrame::RAW_RES_ID id = WebFrame::NODOMAIN; + WebCore::PlatformBridge::rawResId id = WebCore::PlatformBridge::NoDomain; if ((error.errorCode() == ErrorFile || error.errorCode() == ErrorFileNotFound) && (!error.localizedDescription().isEmpty())) { - id = WebFrame::LOADERROR; + id = WebCore::PlatformBridge::LoadError; } String filename = m_webFrame->getRawResourceFilename(id); if (filename.isEmpty()) diff --git a/WebKit/android/jni/WebCoreFrameBridge.cpp b/WebKit/android/jni/WebCoreFrameBridge.cpp index f25e4a6..0ff8fe2 100644 --- a/WebKit/android/jni/WebCoreFrameBridge.cpp +++ b/WebKit/android/jni/WebCoreFrameBridge.cpp @@ -116,6 +116,49 @@ #include "TimeCounter.h" #endif +static String* gUploadFileLabel; +static String* gResetLabel; +static String* gSubmitLabel; + +String* WebCore::PlatformBridge::globalLocalizedName( + WebCore::PlatformBridge::rawResId resId) +{ + switch (resId) { + case WebCore::PlatformBridge::FileUploadLabel: + return gUploadFileLabel; + case WebCore::PlatformBridge::ResetLabel: + return gResetLabel; + case WebCore::PlatformBridge::SubmitLabel: + return gSubmitLabel; + default: + return 0; + } +} +/** + * Instantiate the localized name desired. + */ +void initGlobalLocalizedName(WebCore::PlatformBridge::rawResId resId, + android::WebFrame* webFrame) +{ + String** pointer; + switch (resId) { + case WebCore::PlatformBridge::FileUploadLabel: + pointer = &gUploadFileLabel; + break; + case WebCore::PlatformBridge::ResetLabel: + pointer = &gResetLabel; + break; + case WebCore::PlatformBridge::SubmitLabel: + pointer = &gSubmitLabel; + break; + default: + return; + } + if (!(*pointer) && webFrame) { + (*pointer) = new String(webFrame->getRawResourceFilename(resId).impl()); + } +} + namespace android { // ---------------------------------------------------------------------------- @@ -825,7 +868,7 @@ WebFrame::decidePolicyForFormResubmission(WebCore::FramePolicyFunction func) } WebCore::String -WebFrame::getRawResourceFilename(RAW_RES_ID id) const +WebFrame::getRawResourceFilename(WebCore::PlatformBridge::rawResId id) const { JNIEnv* env = JSC::Bindings::getJNIEnv(); AutoJObject obj = mJavaFrame->frame(env); @@ -927,7 +970,8 @@ static void CreateFrame(JNIEnv* env, jobject obj, jobject javaview, jobject jAss // Set the mNativeFrame field in Frame SET_NATIVE_FRAME(env, obj, (int)frame); - String directory = webFrame->getRawResourceFilename(WebFrame::DRAWABLEDIR); + String directory = webFrame->getRawResourceFilename( + WebCore::PlatformBridge::DrawableDir); if (directory.isEmpty()) LOGE("Can't find the drawable directory"); else { @@ -936,6 +980,10 @@ static void CreateFrame(JNIEnv* env, jobject obj, jobject javaview, jobject jAss // Initialize our skinning classes WebCore::RenderSkinAndroid::Init(am, directory); } + for (int i = WebCore::PlatformBridge::FileUploadLabel; + i <= WebCore::PlatformBridge::SubmitLabel; i++) + initGlobalLocalizedName( + static_cast<WebCore::PlatformBridge::rawResId>(i), webFrame); } static void DestroyFrame(JNIEnv* env, jobject obj) diff --git a/WebKit/android/jni/WebCoreFrameBridge.h b/WebKit/android/jni/WebCoreFrameBridge.h index 7d18c40..657ebf1 100644 --- a/WebKit/android/jni/WebCoreFrameBridge.h +++ b/WebKit/android/jni/WebCoreFrameBridge.h @@ -29,7 +29,7 @@ #define WEBFRAME_H #include "FrameLoaderClient.h" -#include "PlatformString.h" +#include "PlatformBridge.h" #include "WebCoreRefObject.h" #include <jni.h> #include <wtf/RefCounted.h> @@ -51,12 +51,6 @@ class WebViewCore; // one instance of WebFrame per Page for calling into Java's BrowserFrame class WebFrame : public WebCoreRefObject { public: - // these ids need to be in sync with the constants in BrowserFrame.java - enum RAW_RES_ID { - NODOMAIN = 1, - LOADERROR, - DRAWABLEDIR, - }; WebFrame(JNIEnv* env, jobject obj, jobject historyList, WebCore::Page* page); ~WebFrame(); @@ -108,7 +102,7 @@ class WebFrame : public WebCoreRefObject { void setUserAgent(WebCore::String userAgent) { mUserAgent = userAgent; } - WebCore::String getRawResourceFilename(RAW_RES_ID) const; + WebCore::String getRawResourceFilename(WebCore::PlatformBridge::rawResId) const; float density() const; |