Index: content/browser/android/content_settings.cc |
diff --git a/content/browser/android/content_settings.cc b/content/browser/android/content_settings.cc |
index f381672b00874500481a0eb9e365aa406c8f8a2c..dced63c54a4b54af3cd2541982d1e1fa662c8688 100644 |
--- a/content/browser/android/content_settings.cc |
+++ b/content/browser/android/content_settings.cc |
@@ -78,6 +78,10 @@ struct ContentSettings::FieldIds { |
GetFieldID(env, clazz, "mJavaScriptCanOpenWindowsAutomatically", "Z"); |
support_multiple_windows = |
GetFieldID(env, clazz, "mSupportMultipleWindows", "Z"); |
+ app_cache_enabled = |
+ GetFieldID(env, clazz, "mAppCacheEnabled", "Z"); |
+ app_cache_path = |
+ GetFieldID(env, clazz, "mAppCachePath", kStringClassName); |
dom_storage_enabled = |
GetFieldID(env, clazz, "mDomStorageEnabled", "Z"); |
} |
@@ -103,6 +107,8 @@ struct ContentSettings::FieldIds { |
jfieldID allow_file_access_from_file_urls; |
jfieldID java_script_can_open_windows_automatically; |
jfieldID support_multiple_windows; |
+ jfieldID app_cache_enabled; |
+ jfieldID app_cache_path; |
jfieldID dom_storage_enabled; |
}; |
@@ -248,6 +254,9 @@ void ContentSettings::SyncFromNativeImpl() { |
Java_ContentSettings_setPluginsDisabled(env, obj, !prefs.plugins_enabled); |
CheckException(env); |
+ // We don't need to sync AppCache settings to Java, because there are |
+ // no getters for them in the API. |
+ |
env->SetBooleanField( |
obj, |
field_ids_->dom_storage_enabled, |
@@ -351,6 +360,22 @@ void ContentSettings::SyncToNativeImpl() { |
prefs.plugins_enabled = !Java_ContentSettings_getPluginsDisabled(env, obj); |
+ // AppCachePath is a global setting across all WebViews. |
+ CR_DEFINE_STATIC_LOCAL(std::string, app_cache_path, ()); |
boliu
2012/11/30 17:46:27
This is only global in WebViews, not inside webkit
joth
2012/11/30 22:16:59
also consider:
- CR_DEFINE_STATIC_LOCAL is not thr
mnaganov (inactive)
2012/12/03 15:07:36
I know it's not thread safe, but I was supposing t
mnaganov (inactive)
2012/12/03 15:07:36
The cache storage is global in WebKit, see Applica
|
+ if (app_cache_path.empty()) { |
+ str.Reset( |
+ env, static_cast<jstring>( |
+ env->GetObjectField(obj, field_ids_->app_cache_path))); |
+ if (!str.is_null()) { |
+ app_cache_path = ConvertJavaStringToUTF8(str); |
+ // Java side should never set an empty string for the AppCache path. |
+ DCHECK(!app_cache_path.empty()); |
+ } |
+ } |
+ prefs.application_cache_enabled = |
+ !app_cache_path.empty() && env->GetBooleanField( |
+ obj, field_ids_->app_cache_enabled); |
+ |
prefs.local_storage_enabled = env->GetBooleanField( |
obj, field_ids_->dom_storage_enabled); |