summaryrefslogtreecommitdiffstats
path: root/content/browser/android/content_settings.cc
diff options
context:
space:
mode:
authormnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 14:01:06 +0000
committermnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-26 14:01:06 +0000
commit0d084768cc8d8956b06ba8d010f40d6c2ee2a0ec (patch)
treedf574de1cca241ab1da88d86cbbfd2c1c907e4b9 /content/browser/android/content_settings.cc
parent0230c464bbd5e8000598b43ad565eb9bb1534421 (diff)
downloadchromium_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.cc44
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) {