return;
m_paused = false;
- jstring jUrl = env->NewString((unsigned short *)m_url.characters(), m_url.length());
+ jstring jUrl = WtfStringToJstring(env, m_url);
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_play, jUrl);
env->DeleteLocalRef(jUrl);
if (!env || !m_glue->m_javaProxy || !m_posterUrl.length())
return;
// Send the poster
- jstring jUrl = env->NewString((unsigned short *)m_posterUrl.characters(), m_posterUrl.length());
+ jstring jUrl = WtfStringToJstring(env, m_posterUrl);
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_loadPoster, jUrl);
env->DeleteLocalRef(jUrl);
}
// Send the poster
jstring jUrl = 0;
if (m_posterUrl.length())
- jUrl = env->NewString((unsigned short *)m_posterUrl.characters(), m_posterUrl.length());
+ jUrl = WtfStringToJstring(env, m_posterUrl);
// Sending a NULL jUrl allows the Java side to try to load the default poster.
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_loadPoster, jUrl);
if (jUrl)
if (!m_glue->m_javaProxy)
return;
- jstring jUrl = env->NewString((unsigned short *)m_url.characters(), m_url.length());
+ jstring jUrl = WtfStringToJstring(env, m_url);
// start loading the data asynchronously
env->CallVoidMethod(m_glue->m_javaProxy, m_glue->m_setDataSource, jUrl);
env->DeleteLocalRef(jUrl);
GeolocationPermissions::OriginSet::const_iterator end = origins.end();
for (GeolocationPermissions::OriginSet::const_iterator iter = origins.begin(); iter != end; ++iter) {
- jstring originString = env->NewString(iter->characters(), iter->length());
+ jstring originString = WtfStringToJstring(env, *iter);
env->CallBooleanMethod(set, addMethod, originString);
env->DeleteLocalRef(originString);
}
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
const WTF::String& urlStr = url.string();
- jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
- jstring jValueStr = env->NewString(value.characters(), value.length());
+ jstring jUrlStr = WtfStringToJstring(env, urlStr);
+ jstring jValueStr = WtfStringToJstring(env, value);
AutoJObject obj = getRealObject(env, mJavaObject);
env->CallVoidMethod(obj.get(), mSetCookies, jUrlStr, jValueStr);
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
const WTF::String& urlStr = url.string();
- jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
+ jstring jUrlStr = WtfStringToJstring(env, urlStr);
AutoJObject obj = getRealObject(env, mJavaObject);
jstring string = (jstring)(env->CallObjectMethod(obj.get(), mCookies, jUrlStr));
WTF::String JavaBridge::getSignedPublicKeyAndChallengeString(unsigned index,
const WTF::String& challenge, const WebCore::KURL& url) {
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jChallenge = env->NewString(challenge.characters(),
- challenge.length());
+ jstring jChallenge = WtfStringToJstring(env, challenge);
const WTF::String& urlStr = url.string();
- jstring jUrl = env->NewString(urlStr.characters(), urlStr.length());
+ jstring jUrl = WtfStringToJstring(env, urlStr);
AutoJObject obj = getRealObject(env, mJavaObject);
jstring key = (jstring) env->CallObjectMethod(obj.get(),
mGetSignedPublicKey, index, jChallenge, jUrl);
WTF::String JavaBridge::resolveFilePathForContentUri(const WTF::String& uri) {
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jUri = env->NewString(uri.characters(), uri.length());
+ jstring jUri = WtfStringToJstring(env, uri);
AutoJObject obj = getRealObject(env, mJavaObject);
jstring path = static_cast<jstring>(env->CallObjectMethod(obj.get(), mResolveFilePathForContentUri, jUri));
WTF::String ret = jstringToWtfString(env, path);
#include <jni.h>
#include <utils/Log.h>
+using namespace android;
+
namespace WebCore {
String MIMETypeRegistry::getMIMETypeForExtension(const String& ext)
"(Ljava/lang/String;)Ljava/lang/String;");
LOG_ASSERT(mimeTypeFromExtension,
"Could not find method mimeTypeFromExtension");
- jstring extString =
- env->NewString((const jchar*) ext.characters(), ext.length());
+ jstring extString = WtfStringToJstring(env, ext);
jobject mimeType = env->CallStaticObjectMethod(mimeClass,
mimeTypeFromExtension, extString);
String result = android::jstringToWtfString(env, (jstring) mimeType);
for (WebCore::HTTPHeaderMap::const_iterator i = map.begin(); i != end; ++i) {
if (i->first.length() == 0 || i->second.length() == 0)
continue;
- jstring key = env->NewString(i->first.characters(), i->first.length());
- jstring val = env->NewString(i->second.characters(), i->second.length());
+ jstring key = WtfStringToJstring(env, i->first);
+ jstring val = WtfStringToJstring(env, i->second);
if (key && val) {
env->CallObjectMethod(hashMap, put, key, val);
}
class FileInfo {
public:
FileInfo(JNIEnv* env, const WTF::String& name) {
- m_uri = env->NewString(name.characters(), name.length());
+ m_uri = WtfStringToJstring(env, name);
checkException(env);
m_size = 0;
m_env = env;
}
}
LOGV("%s lower=%s", __FUNCTION__, urlStr.latin1().data());
- jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
+ jstring jUrlStr = WtfStringToJstring(env, urlStr);
jstring jMethodStr = NULL;
if (!method.isEmpty())
- jMethodStr = env->NewString(method.characters(), method.length());
+ jMethodStr = WtfStringToJstring(env, method);
jbyteArray jPostDataStr = NULL;
WebCore::FormData* formdata = request.httpBody();
AutoJObject obj = mJavaFrame->frame(env);
ResourceHandleInternal* loaderInternal = loader->getInternal();
jstring jUsernameString = loaderInternal->m_user.isEmpty() ?
- NULL : env->NewString(loaderInternal->m_user.characters(), loaderInternal->m_user.length());
+ NULL : WtfStringToJstring(env, loaderInternal->m_user);
jstring jPasswordString = loaderInternal->m_pass.isEmpty() ?
- NULL : env->NewString(loaderInternal->m_pass.characters(), loaderInternal->m_pass.length());
+ NULL : WtfStringToJstring(env, loaderInternal->m_pass);
bool isUserGesture = UserGestureIndicator::processingUserGesture();
jobject jLoadListener =
LOGV("::WebCore:: reportError(%d, %s)", errorCode, description.ascii().data());
JNIEnv* env = getJNIEnv();
- jstring descStr = env->NewString(description.characters(), description.length());
- jstring failUrl = env->NewString(failingUrl.characters(), failingUrl.length());
+ jstring descStr = WtfStringToJstring(env, description);
+ jstring failUrl = WtfStringToJstring(env, failingUrl);
env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mReportError,
errorCode, descStr, failUrl);
env->DeleteLocalRef(descStr);
favicon = webcoreImageToJavaBitmap(env, icon);
LOGV("favicons", "Starting load with icon %p for %s", icon, url.string().utf8().data());
}
- jstring urlStr = env->NewString(urlString.characters(), urlString.length());
+ jstring urlStr = WtfStringToJstring(env, urlString);
env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mLoadStarted, urlStr, favicon,
(int)loadType, isMainFrame);
bool isMainFrame = (!frame->tree() || !frame->tree()->parent());
WebCore::FrameLoadType loadType = loader->loadType();
WTF::String urlString(url.string());
- jstring urlStr = env->NewString(urlString.characters(), urlString.length());
+ jstring urlStr = WtfStringToJstring(env, urlString);
env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mLoadFinished, urlStr,
(int)loadType, isMainFrame);
checkException(env);
LOGV("setTitle(%s)", title.ascii().data());
#endif
JNIEnv* env = getJNIEnv();
- jstring jTitleStr = env->NewString(title.characters(), title.length());
+ jstring jTitleStr = WtfStringToJstring(env, title);
- env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mSetTitle,
- jTitleStr);
+ env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mSetTitle, jTitleStr);
checkException(env);
env->DeleteLocalRef(jTitleStr);
}
TimeCounterAuto counter(TimeCounter::JavaCallbackTimeCounter);
#endif
JNIEnv* env = getJNIEnv();
- jstring jUrlStr = env->NewString(url.characters(), url.length());
+ jstring jUrlStr = WtfStringToJstring(env, url);
env->CallVoidMethod(mJavaFrame->frame(env).get(),
mJavaFrame->mDidReceiveTouchIconUrl, jUrlStr, precomposed);
#endif
WTF::String urlStr(url.string());
JNIEnv* env = getJNIEnv();
- jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
+ jstring jUrlStr = WtfStringToJstring(env, urlStr);
env->CallVoidMethod(mJavaFrame->frame(env).get(), mJavaFrame->mUpdateVisitedHistory, jUrlStr, reload);
env->DeleteLocalRef(jUrlStr);
if (url.isEmpty())
return true;
JNIEnv* env = getJNIEnv();
- jstring jUrlStr = env->NewString(url.characters(), url.length());
+ jstring jUrlStr = WtfStringToJstring(env, url);
// check to see whether browser app wants to hijack url loading.
// if browser app handles the url, we will return false to bail out WebCore loading
releaseCharactersForJStringInEnv(env, basename, basenameNative);
xmlFreeTextWriter(writer);
- if (result) {
- return env->NewString(filename.characters(), filename.length());
- }
+ if (result)
+ return WtfStringToJstring(env, filename);
return NULL;
#endif
// Request external representation of the render tree
WTF::String renderDump = WebCore::externalRepresentation(pFrame);
- unsigned len = renderDump.length();
- if (!len)
- return NULL;
- return env->NewString(renderDump.characters(), len);
+ return WtfStringToJstring(env, renderDump);
}
static StringBuilder FrameAsText(WebCore::Frame *pFrame, jboolean dumpChildFrames) {
LOG_ASSERT(pFrame, "android_webcore_nativeDocumentAsText must take a valid frame pointer!");
WTF::String renderDump = FrameAsText(pFrame, false /* dumpChildFrames */).toString();
- unsigned len = renderDump.length();
- if (!len)
- return NULL;
- return env->NewString(renderDump.characters(), len);
+ return WtfStringToJstring(env, renderDump);
}
static jstring ChildFramesAsText(JNIEnv *env, jobject obj)
renderDumpBuilder.append(FrameAsText(pFrame->tree()->child(i), true /* dumpChildFrames */).toString());
}
WTF::String renderDump = renderDumpBuilder.toString();
- unsigned len = renderDump.length();
- if (!len)
- return NULL;
- return env->NewString(renderDump.characters(), len);
+ return WtfStringToJstring(env, renderDump);
}
static void Reload(JNIEnv *env, jobject obj, jboolean allowStale)
ScriptState* scriptState = mainWorldScriptState(pFrame);
if (!value.getString(scriptState, result))
return NULL;
- unsigned len = result.length();
- if (len == 0)
- return NULL;
- return env->NewString(result.characters(), len);
+ return WtfStringToJstring(env, result);
}
// Wrap the JavaInstance used when binding custom javascript interfaces. Use a
jclass stringClass = env->FindClass("java/lang/String");
strArray = env->NewObjectArray(2, stringClass, NULL);
env->DeleteLocalRef(stringClass);
- env->SetObjectArrayElement(strArray, 0, env->NewString(username.characters(), username.length()));
- env->SetObjectArrayElement(strArray, 1, env->NewString(password.characters(), password.length()));
+ env->SetObjectArrayElement(strArray, 0, WtfStringToJstring(env, username));
+ env->SetObjectArrayElement(strArray, 1, WtfStringToJstring(env, password));
}
return strArray;
}
int len = value.length();
if (len) {
const WTF::AtomicString& name = input->name();
- jstring key = env->NewString(name.characters(), name.length());
- jstring val = env->NewString(value.characters(), len);
+ jstring key = WtfStringToJstring(env, name);
+ jstring val = WtfStringToJstring(env, value);
LOG_ASSERT(key && val, "name or value not set");
env->CallObjectMethod(hashMap, put, key, val);
env->DeleteLocalRef(key);
return ret;
}
+jstring WtfStringToJstring(JNIEnv* env, const WTF::String& str)
+{
+ int length = str.length();
+ return length ? env->NewString(str.characters(), length) : 0;
+}
+
+
#if USE(CHROME_NETWORK_STACK)
string16 jstringToString16(JNIEnv* env, jstring jstr)
{
bool checkException(JNIEnv* env);
// Create a WTF::String object from a jstring object.
-WTF::String jstringToWtfString(JNIEnv* env, jstring str);
+WTF::String jstringToWtfString(JNIEnv*, jstring);
+// Returns a local reference to a new jstring.
+jstring WtfStringToJstring(JNIEnv*, const WTF::String&);
#if USE(CHROME_NETWORK_STACK)
-string16 jstringToString16(JNIEnv* env, jstring jstr);
+string16 jstringToString16(JNIEnv*, jstring);
#endif
-std::string jstringToStdString(JNIEnv* env, jstring jstr);
+std::string jstringToStdString(JNIEnv*, jstring);
}
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
WTF::String urlStr = url.string();
- jstring jUrlStr = env->NewString(urlStr.characters(), urlStr.length());
+ jstring jUrlStr = WtfStringToJstring(env, urlStr);
jclass resourceLoader = env->FindClass("android/webkit/LoadListener");
bool val = env->CallStaticBooleanMethod(resourceLoader, gResourceLoader.mWillLoadFromCacheMethodID, jUrlStr, identifier);
checkException(env);
}
handle->client()->willSendRequest(handle, r, *response);
delete response;
- WTF::String s = url.string();
- return env->NewString((unsigned short*)s.characters(), s.length());
+ return WtfStringToJstring(env, url.string());
}
void WebCoreResourceLoader::Error(JNIEnv* env, jobject obj, jint id, jstring description,
const WTF::String& urlString = item->urlString();
jstring urlStr = NULL;
if (!urlString.isNull())
- urlStr = env->NewString((unsigned short*)urlString.characters(), urlString.length());
+ urlStr = WtfStringToJstring(env, urlString);
const WTF::String& originalUrlString = item->originalURLString();
jstring originalUrlStr = NULL;
- if (!originalUrlString.isNull()) {
- originalUrlStr = env->NewString(
- (unsigned short*) originalUrlString.characters(),
- originalUrlString.length());
- }
+ if (!originalUrlString.isNull())
+ originalUrlStr = WtfStringToJstring(env, originalUrlString);
const WTF::String& titleString = item->title();
jstring titleStr = NULL;
if (!titleString.isNull())
- titleStr = env->NewString((unsigned short*)titleString.characters(), titleString.length());
+ titleStr = WtfStringToJstring(env, titleString);
// Try to get the favicon from the history item. For some pages like Grand
// Prix, there are history items with anchors. If the icon fails for the
for (unsigned i = 0; i < coreOrigins.size(); ++i) {
WebCore::SecurityOrigin* origin = coreOrigins[i].get();
WTF::String url = origin->toString();
- jstring jUrl = env->NewString(url.characters(), url.length());
+ jstring jUrl = WtfStringToJstring(env, url);
env->CallBooleanMethod(set, mid, jUrl);
env->DeleteLocalRef(jUrl);
}
// Check whether a media mimeType is supported in Android media framework.
bool WebViewCore::isSupportedMediaMimeType(const WTF::String& mimeType) {
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jMimeType = env->NewString(mimeType.characters(), mimeType.length());
+ jstring jMimeType = WtfStringToJstring(env, mimeType);
jclass webViewCore = env->FindClass("android/webkit/WebViewCore");
bool val = env->CallStaticBooleanMethod(webViewCore,
gWebViewCoreStaticMethods.m_isSupportedMediaMimeType, jMimeType);
JNIEnv* env = JSC::Bindings::getJNIEnv();
WTF::String acceptType = chooser->acceptTypes();
- jstring jAcceptType = env->NewString(const_cast<unsigned short*>(acceptType.characters()), acceptType.length());
+ jstring jAcceptType = WtfStringToJstring(env, acceptType);
jstring jName = (jstring) env->CallObjectMethod(
m_javaGlue->object(env).get(), m_javaGlue->m_openFileChooser, jAcceptType);
checkException(env);
void WebViewCore::addMessageToConsole(const WTF::String& message, unsigned int lineNumber, const WTF::String& sourceID, int msgLevel) {
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jMessageStr = env->NewString((unsigned short *)message.characters(), message.length());
- jstring jSourceIDStr = env->NewString((unsigned short *)sourceID.characters(), sourceID.length());
+ jstring jMessageStr = WtfStringToJstring(env, message);
+ jstring jSourceIDStr = WtfStringToJstring(env, sourceID);
env->CallVoidMethod(m_javaGlue->object(env).get(),
m_javaGlue->m_addMessageToConsole, jMessageStr, lineNumber,
jSourceIDStr, msgLevel);
void WebViewCore::jsAlert(const WTF::String& url, const WTF::String& text)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jInputStr = env->NewString((unsigned short *)text.characters(), text.length());
- jstring jUrlStr = env->NewString((unsigned short *)url.characters(), url.length());
+ jstring jInputStr = WtfStringToJstring(env, text);
+ jstring jUrlStr = WtfStringToJstring(env, url);
env->CallVoidMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsAlert, jUrlStr, jInputStr);
env->DeleteLocalRef(jInputStr);
env->DeleteLocalRef(jUrlStr);
{
#if ENABLE(DATABASE)
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jDatabaseIdentifierStr = env->NewString((unsigned short *)databaseIdentifier.characters(), databaseIdentifier.length());
- jstring jUrlStr = env->NewString((unsigned short *)url.characters(), url.length());
+ jstring jDatabaseIdentifierStr = WtfStringToJstring(env, databaseIdentifier);
+ jstring jUrlStr = WtfStringToJstring(env, url);
env->CallVoidMethod(m_javaGlue->object(env).get(),
m_javaGlue->m_exceededDatabaseQuota, jUrlStr,
jDatabaseIdentifierStr, currentQuota, estimatedSize);
void WebViewCore::geolocationPermissionsShowPrompt(const WTF::String& origin)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring originString = env->NewString((unsigned short *)origin.characters(), origin.length());
+ jstring originString = WtfStringToJstring(env, origin);
env->CallVoidMethod(m_javaGlue->object(env).get(),
m_javaGlue->m_geolocationPermissionsShowPrompt,
originString);
bool WebViewCore::jsConfirm(const WTF::String& url, const WTF::String& text)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jInputStr = env->NewString((unsigned short *)text.characters(), text.length());
- jstring jUrlStr = env->NewString((unsigned short *)url.characters(), url.length());
+ jstring jInputStr = WtfStringToJstring(env, text);
+ jstring jUrlStr = WtfStringToJstring(env, url);
jboolean result = env->CallBooleanMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsConfirm, jUrlStr, jInputStr);
env->DeleteLocalRef(jInputStr);
env->DeleteLocalRef(jUrlStr);
bool WebViewCore::jsPrompt(const WTF::String& url, const WTF::String& text, const WTF::String& defaultValue, WTF::String& result)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jInputStr = env->NewString((unsigned short *)text.characters(), text.length());
- jstring jDefaultStr = env->NewString((unsigned short *)defaultValue.characters(), defaultValue.length());
- jstring jUrlStr = env->NewString((unsigned short *)url.characters(), url.length());
- jstring returnVal = (jstring) env->CallObjectMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsPrompt, jUrlStr, jInputStr, jDefaultStr);
+ jstring jInputStr = WtfStringToJstring(env, text);
+ jstring jDefaultStr = WtfStringToJstring(env, defaultValue);
+ jstring jUrlStr = WtfStringToJstring(env, url);
+ jstring returnVal = static_cast<jstring>(env->CallObjectMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsPrompt, jUrlStr, jInputStr, jDefaultStr));
+ env->DeleteLocalRef(jInputStr);
+ env->DeleteLocalRef(jDefaultStr);
+ env->DeleteLocalRef(jUrlStr);
+ checkException(env);
+
// If returnVal is null, it means that the user cancelled the dialog.
if (!returnVal)
return false;
result = jstringToWtfString(env, returnVal);
- env->DeleteLocalRef(jInputStr);
- env->DeleteLocalRef(jDefaultStr);
- env->DeleteLocalRef(jUrlStr);
- checkException(env);
return true;
}
bool WebViewCore::jsUnload(const WTF::String& url, const WTF::String& message)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jInputStr = env->NewString((unsigned short *)message.characters(), message.length());
- jstring jUrlStr = env->NewString((unsigned short *)url.characters(), url.length());
+ jstring jInputStr = WtfStringToJstring(env, message);
+ jstring jUrlStr = WtfStringToJstring(env, url);
jboolean result = env->CallBooleanMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsUnload, jUrlStr, jInputStr);
env->DeleteLocalRef(jInputStr);
env->DeleteLocalRef(jUrlStr);
checkException(env);
return;
}
- int length = text.length();
- jstring string = env->NewString((unsigned short *) text.characters(), length);
+ jstring string = WtfStringToJstring(env, text);
env->CallVoidMethod(m_javaGlue->object(env).get(), m_javaGlue->m_updateTextfield,
(int) ptr, false, string, m_textGeneration);
env->DeleteLocalRef(string);
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring libString = env->NewString(libName.characters(), libName.length());
+ jstring libString = WtfStringToJstring(env, libName);
jstring classString = env->NewStringUTF(className);
jobject pluginClass = env->CallObjectMethod(m_javaGlue->object(env).get(),
m_javaGlue->m_getPluginClass,
//----------------------------------------------------------------------
// Native JNI methods
//----------------------------------------------------------------------
-static jstring WebCoreStringToJString(JNIEnv *env, WTF::String string)
-{
- int length = string.length();
- if (!length)
- return 0;
- jstring ret = env->NewString((jchar *)string.characters(), length);
- env->DeleteLocalRef(ret);
- return ret;
-}
-
static void RevealSelection(JNIEnv *env, jobject obj)
{
GET_NATIVE_VIEW(env, obj)->revealSelection();
static jstring RequestLabel(JNIEnv *env, jobject obj, int framePointer,
int nodePointer)
{
- return WebCoreStringToJString(env, GET_NATIVE_VIEW(env, obj)->requestLabel(
+ return WtfStringToJstring(env, GET_NATIVE_VIEW(env, obj)->requestLabel(
(WebCore::Frame*) framePointer, (WebCore::Node*) nodePointer));
}
#endif
WebViewCore* viewImpl = GET_NATIVE_VIEW(env, obj);
String selectionString = viewImpl->modifySelection(direction, granularity);
- return WebCoreStringToJString(env, selectionString);
+ return WtfStringToJstring(env, selectionString);
}
static void ReplaceTextfieldText(JNIEnv *env, jobject obj,
&start, &end, caseInsensitive) == CacheBuilder::FOUND_COMPLETE;
jstring ret = 0;
if (success) {
- ret = env->NewString((jchar*) addrChars + start, end - start);
+ ret = env->NewString(addrChars + start, end - start);
env->DeleteLocalRef(ret);
}
env->ReleaseStringChars(addr, addrChars);
WTF::String result = viewImpl->retrieveHref((WebCore::Frame*) frame,
(WebCore::Node*) node);
if (!result.isEmpty())
- return WebCoreStringToJString(env, result);
+ return WtfStringToJstring(env, result);
return 0;
}
WTF::String result = viewImpl->retrieveAnchorText((WebCore::Frame*) frame,
(WebCore::Node*) node);
if (!result.isEmpty())
- return WebCoreStringToJString(env, result);
+ return WtfStringToJstring(env, result);
return 0;
}
void overrideUrlLoading(const WTF::String& url)
{
JNIEnv* env = JSC::Bindings::getJNIEnv();
- jstring jName = env->NewString((jchar*) url.characters(), url.length());
+ jstring jName = WtfStringToJstring(env, url);
env->CallVoidMethod(m_javaGlue.object(env).get(),
m_javaGlue.m_overrideLoading, jName);
env->DeleteLocalRef(jName);
/*
* Native JNI methods
*/
-static jstring WebCoreStringToJString(JNIEnv *env, WTF::String string)
-{
- int length = string.length();
- if (!length)
- return 0;
- jstring ret = env->NewString((jchar *)string.characters(), length);
- env->DeleteLocalRef(ret);
- return ret;
-}
-
static int nativeCacheHitFramePointer(JNIEnv *env, jobject obj)
{
return reinterpret_cast<int>(GET_NATIVE_VIEW(env, obj)
if (!node)
return 0;
WTF::String value = node->getExport();
- return !value.isEmpty() ? env->NewString((jchar *)value.characters(),
- value.length()) : 0;
+ return WtfStringToJstring(env, value);
}
static void nativeDebugDump(JNIEnv *env, jobject obj)
WebView* view = GET_NATIVE_VIEW(env, obj);
LOG_ASSERT(view, "view not set in %s", __FUNCTION__);
WTF::String uri = view->imageURI(x, y);
- jstring ret = 0;
- unsigned len = uri.length();
- if (len) {
- ret = env->NewString((jchar*) uri.characters(), len);
- env->DeleteLocalRef(ret);
- }
- return ret;
+ return WtfStringToJstring(env, uri);
}
static jint nativeFocusCandidateFramePointer(JNIEnv *env, jobject obj)
if (!input)
return 0;
const WTF::String& name = input->name();
- return env->NewString((jchar*)name.characters(), name.length());
+ return WtfStringToJstring(env, name);
}
static jobject createJavaRect(JNIEnv* env, int x, int y, int right, int bottom)
if (!node)
return 0;
WTF::String value = node->getExport();
- return !value.isEmpty() ? env->NewString((jchar *)value.characters(),
- value.length()) : 0;
+ return WtfStringToJstring(env, value);
}
static jint nativeFocusCandidateTextSize(JNIEnv *env, jobject obj)
WebView* view = GET_NATIVE_VIEW(env, obj);
LOG_ASSERT(view, "view not set in %s", __FUNCTION__);
String selection = view->getSelection();
- return env->NewString((jchar*)selection.characters(), selection.length());
+ return WtfStringToJstring(env, selection);
}
static jboolean nativeHitSelection(JNIEnv *env, jobject obj, int x, int y)