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 | |
| 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."
| -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); |
