OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "android_webview/native/aw_settings.h" | 5 #include "android_webview/native/aw_settings.h" |
6 | 6 |
7 #include "android_webview/browser/renderer_host/aw_render_view_host_ext.h" | 7 #include "android_webview/browser/renderer_host/aw_render_view_host_ext.h" |
8 #include "android_webview/common/aw_content_client.h" | 8 #include "android_webview/common/aw_content_client.h" |
9 #include "android_webview/native/aw_contents.h" | 9 #include "android_webview/native/aw_contents.h" |
10 #include "base/android/jni_android.h" | 10 #include "base/android/jni_android.h" |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 return NULL; | 63 return NULL; |
64 AwSettingsUserData* data = static_cast<AwSettingsUserData*>( | 64 AwSettingsUserData* data = static_cast<AwSettingsUserData*>( |
65 web_contents->GetUserData(kAwSettingsUserDataKey)); | 65 web_contents->GetUserData(kAwSettingsUserDataKey)); |
66 return data ? data->settings_ : NULL; | 66 return data ? data->settings_ : NULL; |
67 } | 67 } |
68 | 68 |
69 private: | 69 private: |
70 AwSettings* settings_; | 70 AwSettings* settings_; |
71 }; | 71 }; |
72 | 72 |
73 AwSettings::AwSettings(JNIEnv* env, jobject obj, jlong web_contents) | 73 AwSettings::AwSettings(JNIEnv* env, |
74 : WebContentsObserver( | 74 jobject obj, |
75 reinterpret_cast<content::WebContents*>(web_contents)), | 75 content::WebContents* web_contents) |
| 76 : WebContentsObserver(web_contents), |
76 renderer_prefs_initialized_(false), | 77 renderer_prefs_initialized_(false), |
77 aw_settings_(env, obj) { | 78 aw_settings_(env, obj) { |
78 reinterpret_cast<content::WebContents*>(web_contents)-> | 79 web_contents->SetUserData(kAwSettingsUserDataKey, |
79 SetUserData(kAwSettingsUserDataKey, new AwSettingsUserData(this)); | 80 new AwSettingsUserData(this)); |
80 } | 81 } |
81 | 82 |
82 AwSettings::~AwSettings() { | 83 AwSettings::~AwSettings() { |
83 if (web_contents()) { | 84 if (web_contents()) { |
84 web_contents()->SetUserData(kAwSettingsUserDataKey, NULL); | 85 web_contents()->SetUserData(kAwSettingsUserDataKey, NULL); |
85 } | 86 } |
86 | 87 |
87 JNIEnv* env = base::android::AttachCurrentThread(); | 88 JNIEnv* env = base::android::AttachCurrentThread(); |
88 ScopedJavaLocalRef<jobject> scoped_obj = aw_settings_.get(env); | 89 ScopedJavaLocalRef<jobject> scoped_obj = aw_settings_.get(env); |
89 jobject obj = scoped_obj.obj(); | 90 jobject obj = scoped_obj.obj(); |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
400 Java_AwSettings_getAllowDisplayingInsecureContentLocked(env, obj); | 401 Java_AwSettings_getAllowDisplayingInsecureContentLocked(env, obj); |
401 web_prefs->allow_running_insecure_content = | 402 web_prefs->allow_running_insecure_content = |
402 Java_AwSettings_getAllowRunningInsecureContentLocked(env, obj); | 403 Java_AwSettings_getAllowRunningInsecureContentLocked(env, obj); |
403 | 404 |
404 web_prefs->fullscreen_supported = | 405 web_prefs->fullscreen_supported = |
405 Java_AwSettings_getFullscreenSupportedLocked(env, obj); | 406 Java_AwSettings_getFullscreenSupportedLocked(env, obj); |
406 } | 407 } |
407 | 408 |
408 static jlong Init(JNIEnv* env, | 409 static jlong Init(JNIEnv* env, |
409 jobject obj, | 410 jobject obj, |
410 jlong web_contents) { | 411 jobject web_contents) { |
411 AwSettings* settings = new AwSettings(env, obj, web_contents); | 412 content::WebContents* contents = content::WebContents::FromJavaWebContents( |
| 413 web_contents); |
| 414 AwSettings* settings = new AwSettings(env, obj, contents); |
412 return reinterpret_cast<intptr_t>(settings); | 415 return reinterpret_cast<intptr_t>(settings); |
413 } | 416 } |
414 | 417 |
415 static jstring GetDefaultUserAgent(JNIEnv* env, jclass clazz) { | 418 static jstring GetDefaultUserAgent(JNIEnv* env, jclass clazz) { |
416 return base::android::ConvertUTF8ToJavaString(env, GetUserAgent()).Release(); | 419 return base::android::ConvertUTF8ToJavaString(env, GetUserAgent()).Release(); |
417 } | 420 } |
418 | 421 |
419 bool RegisterAwSettings(JNIEnv* env) { | 422 bool RegisterAwSettings(JNIEnv* env) { |
420 return RegisterNativesImpl(env); | 423 return RegisterNativesImpl(env); |
421 } | 424 } |
422 | 425 |
423 } // namespace android_webview | 426 } // namespace android_webview |
OLD | NEW |