| Index: trunk/src/content/browser/android/content_view_core_impl.cc
|
| ===================================================================
|
| --- trunk/src/content/browser/android/content_view_core_impl.cc (revision 269074)
|
| +++ trunk/src/content/browser/android/content_view_core_impl.cc (working copy)
|
| @@ -210,13 +210,11 @@
|
| Java_ContentViewCore_getNativeContentViewCore(env, obj));
|
| }
|
|
|
| -ContentViewCoreImpl::ContentViewCoreImpl(
|
| - JNIEnv* env,
|
| - jobject obj,
|
| - WebContents* web_contents,
|
| - ui::ViewAndroid* view_android,
|
| - ui::WindowAndroid* window_android,
|
| - jobject java_bridge_retained_object_set)
|
| +ContentViewCoreImpl::ContentViewCoreImpl(JNIEnv* env,
|
| + jobject obj,
|
| + WebContents* web_contents,
|
| + ui::ViewAndroid* view_android,
|
| + ui::WindowAndroid* window_android)
|
| : WebContentsObserver(web_contents),
|
| java_ref_(env, obj),
|
| web_contents_(static_cast<WebContentsImpl*>(web_contents)),
|
| @@ -246,10 +244,6 @@
|
| BuildUserAgentFromOSAndProduct(kLinuxInfoStr, product);
|
| web_contents->SetUserAgentOverride(spoofed_ua);
|
|
|
| - java_bridge_dispatcher_host_manager_.reset(
|
| - new JavaBridgeDispatcherHostManager(web_contents,
|
| - java_bridge_retained_object_set));
|
| -
|
| InitWebContents();
|
| }
|
|
|
| @@ -1281,7 +1275,8 @@
|
| JNIEnv* env,
|
| jobject obj,
|
| jboolean allow) {
|
| - java_bridge_dispatcher_host_manager_->SetAllowObjectContentsInspection(allow);
|
| + web_contents_->java_bridge_dispatcher_host_manager()
|
| + ->SetAllowObjectContentsInspection(allow);
|
| }
|
|
|
| void ContentViewCoreImpl::AddJavascriptInterface(
|
| @@ -1289,26 +1284,31 @@
|
| jobject /* obj */,
|
| jobject object,
|
| jstring name,
|
| - jclass safe_annotation_clazz) {
|
| + jclass safe_annotation_clazz,
|
| + jobject retained_object_set) {
|
| ScopedJavaLocalRef<jobject> scoped_object(env, object);
|
| ScopedJavaLocalRef<jclass> scoped_clazz(env, safe_annotation_clazz);
|
| + JavaObjectWeakGlobalRef weak_retained_object_set(env, retained_object_set);
|
|
|
| // JavaBoundObject creates the NPObject with a ref count of 1, and
|
| // JavaBridgeDispatcherHostManager takes its own ref.
|
| - NPObject* bound_object = JavaBoundObject::Create(
|
| - scoped_object,
|
| - scoped_clazz,
|
| - java_bridge_dispatcher_host_manager_->AsWeakPtr(),
|
| - java_bridge_dispatcher_host_manager_->GetAllowObjectContentsInspection());
|
| - java_bridge_dispatcher_host_manager_->AddNamedObject(
|
| - ConvertJavaStringToUTF16(env, name), bound_object);
|
| + JavaBridgeDispatcherHostManager* java_bridge =
|
| + web_contents_->java_bridge_dispatcher_host_manager();
|
| + java_bridge->SetRetainedObjectSet(weak_retained_object_set);
|
| + NPObject* bound_object =
|
| + JavaBoundObject::Create(scoped_object,
|
| + scoped_clazz,
|
| + java_bridge->AsWeakPtr(),
|
| + java_bridge->GetAllowObjectContentsInspection());
|
| + java_bridge->AddNamedObject(ConvertJavaStringToUTF16(env, name),
|
| + bound_object);
|
| blink::WebBindings::releaseObject(bound_object);
|
| }
|
|
|
| void ContentViewCoreImpl::RemoveJavascriptInterface(JNIEnv* env,
|
| jobject /* obj */,
|
| jstring name) {
|
| - java_bridge_dispatcher_host_manager_->RemoveNamedObject(
|
| + web_contents_->java_bridge_dispatcher_host_manager()->RemoveNamedObject(
|
| ConvertJavaStringToUTF16(env, name));
|
| }
|
|
|
| @@ -1680,14 +1680,12 @@
|
| jobject obj,
|
| jlong native_web_contents,
|
| jlong view_android,
|
| - jlong window_android,
|
| - jobject retained_objects_set) {
|
| + jlong window_android) {
|
| ContentViewCoreImpl* view = new ContentViewCoreImpl(
|
| env, obj,
|
| reinterpret_cast<WebContents*>(native_web_contents),
|
| reinterpret_cast<ui::ViewAndroid*>(view_android),
|
| - reinterpret_cast<ui::WindowAndroid*>(window_android),
|
| - retained_objects_set);
|
| + reinterpret_cast<ui::WindowAndroid*>(window_android));
|
| return reinterpret_cast<intptr_t>(view);
|
| }
|
|
|
|
|