summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2010-02-26 02:11:11 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-02-26 02:11:11 -0800
commitdf29e6249ae08605ad2ba3e9a6e5428a0a48d4ff (patch)
tree367b935e01879c08d94c818481cff6708111ef71 /WebKit/android/jni
parentdfc6913fe5be473f971494d3bb8a6b29dfdb70ab (diff)
parent0076dce702cf02817d9c43f03fcd045dac226e95 (diff)
downloadexternal_webkit-df29e6249ae08605ad2ba3e9a6e5428a0a48d4ff.zip
external_webkit-df29e6249ae08605ad2ba3e9a6e5428a0a48d4ff.tar.gz
external_webkit-df29e6249ae08605ad2ba3e9a6e5428a0a48d4ff.tar.bz2
Merge "Only set the DatabaseTracker path if it has been successfully set to something on the Java side as the DatabaseTracker only allows us to set it once."
Diffstat (limited to 'WebKit/android/jni')
-rw-r--r--WebKit/android/jni/WebSettings.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/WebKit/android/jni/WebSettings.cpp b/WebKit/android/jni/WebSettings.cpp
index 50919b6..91ed8cc 100644
--- a/WebKit/android/jni/WebSettings.cpp
+++ b/WebKit/android/jni/WebSettings.cpp
@@ -94,6 +94,7 @@ struct FieldIds {
// The databases saved to disk for both the SQL and DOM Storage APIs are stored
// in the same base directory.
mDatabasePath = env->GetFieldID(clazz, "mDatabasePath", "Ljava/lang/String;");
+ mDatabasePathHasBeenSet = env->GetFieldID(clazz, "mDatabasePathHasBeenSet", "Z");
#endif
#if ENABLE(OFFLINE_WEB_APPLICATIONS)
mAppCacheEnabled = env->GetFieldID(clazz, "mAppCacheEnabled", "Z");
@@ -207,6 +208,7 @@ struct FieldIds {
jfieldID mGeolocationDatabasePath;
#if ENABLE(DATABASE) || ENABLE(DOM_STORAGE)
jfieldID mDatabasePath;
+ jfieldID mDatabasePathHasBeenSet;
#endif
};
@@ -345,9 +347,14 @@ public:
#if ENABLE(DATABASE)
flag = env->GetBooleanField(obj, gFieldIds->mDatabaseEnabled);
s->setDatabasesEnabled(flag);
- str = (jstring)env->GetObjectField(obj, gFieldIds->mDatabasePath);
- if (str && WebCore::DatabaseTracker::tracker().databaseDirectoryPath().isNull())
- WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(to_string(env, str));
+
+ flag = env->GetBooleanField(obj, gFieldIds->mDatabasePathHasBeenSet);
+ if (flag) {
+ // If the user has set the database path, sync it to the DatabaseTracker.
+ str = (jstring)env->GetObjectField(obj, gFieldIds->mDatabasePath);
+ if (str)
+ WebCore::DatabaseTracker::tracker().setDatabaseDirectoryPath(to_string(env, str));
+ }
#endif
#if ENABLE(DOM_STORAGE)
flag = env->GetBooleanField(obj, gFieldIds->mDomStorageEnabled);