diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 14:01:06 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 14:01:06 +0000 |
commit | 0d084768cc8d8956b06ba8d010f40d6c2ee2a0ec (patch) | |
tree | df574de1cca241ab1da88d86cbbfd2c1c907e4b9 /content/browser/android/content_settings.cc | |
parent | 0230c464bbd5e8000598b43ad565eb9bb1534421 (diff) | |
download | chromium_src-0d084768cc8d8956b06ba8d010f40d6c2ee2a0ec.zip chromium_src-0d084768cc8d8956b06ba8d010f40d6c2ee2a0ec.tar.gz chromium_src-0d084768cc8d8956b06ba8d010f40d6c2ee2a0ec.tar.bz2 |
[Android] Replace syncing in ContentSettings with an explicit request
As noted in the comments to https://codereview.chromium.org/14271024/,
there is no more need to sync webpreferences just for a single flag.
BUG=b/8296421
Review URL: https://chromiumcodereview.appspot.com/14334013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196725 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/android/content_settings.cc')
-rw-r--r-- | content/browser/android/content_settings.cc | 44 |
1 files changed, 4 insertions, 40 deletions
diff --git a/content/browser/android/content_settings.cc b/content/browser/android/content_settings.cc index e82b014..15600fb 100644 --- a/content/browser/android/content_settings.cc +++ b/content/browser/android/content_settings.cc @@ -9,31 +9,11 @@ #include "content/browser/renderer_host/render_view_host_delegate.h" #include "content/browser/renderer_host/render_view_host_impl.h" #include "content/public/browser/web_contents.h" -#include "content/public/common/content_client.h" #include "jni/ContentSettings_jni.h" -#include "webkit/glue/webkit_glue.h" #include "webkit/glue/webpreferences.h" -using base::android::GetFieldID; -using base::android::ScopedJavaLocalRef; - namespace content { -struct ContentSettings::FieldIds { - FieldIds() { } - - FieldIds(JNIEnv* env) { - // FIXME: we should be using a new GetFieldIDFromClassName() with caching. - ScopedJavaLocalRef<jclass> clazz(base::android::GetClass( - env, "org/chromium/content/browser/ContentSettings")); - java_script_enabled = - GetFieldID(env, clazz, "mJavaScriptEnabled", "Z"); - } - - // Field ids - jfieldID java_script_enabled; -}; - ContentSettings::ContentSettings(JNIEnv* env, jobject obj, WebContents* contents) @@ -55,27 +35,11 @@ bool ContentSettings::RegisterContentSettings(JNIEnv* env) { return RegisterNativesImpl(env); } -void ContentSettings::SyncFromNativeImpl() { - JNIEnv* env = base::android::AttachCurrentThread(); - CHECK(env); - if (!field_ids_) - field_ids_.reset(new FieldIds(env)); - - ScopedJavaLocalRef<jobject> scoped_obj = content_settings_.get(env); - jobject obj = scoped_obj.obj(); - if (!obj) - return; +bool ContentSettings::GetJavaScriptEnabled(JNIEnv* env, jobject obj) { RenderViewHost* render_view_host = web_contents()->GetRenderViewHost(); - webkit_glue::WebPreferences prefs = - render_view_host->GetDelegate()->GetWebkitPrefs(); - - env->SetBooleanField( - obj, field_ids_->java_script_enabled, prefs.javascript_enabled); - base::android::CheckException(env); -} - -void ContentSettings::SyncFromNative(JNIEnv* env, jobject obj) { - SyncFromNativeImpl(); + if (!render_view_host) + return false; + return render_view_host->GetDelegate()->GetWebkitPrefs().javascript_enabled; } void ContentSettings::WebContentsDestroyed(WebContents* web_contents) { |