diff options
| author | Ben Murdoch <benm@google.com> | 2010-02-26 02:11:11 -0800 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-02-26 02:11:11 -0800 |
| commit | df29e6249ae08605ad2ba3e9a6e5428a0a48d4ff (patch) | |
| tree | 367b935e01879c08d94c818481cff6708111ef71 /WebKit/android/jni | |
| parent | dfc6913fe5be473f971494d3bb8a6b29dfdb70ab (diff) | |
| parent | 0076dce702cf02817d9c43f03fcd045dac226e95 (diff) | |
| download | external_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.cpp | 13 |
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); |
