OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager
.h" | 5 #include "content/browser/renderer_host/java/java_bridge_dispatcher_host_manager
.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_helper.h" | 8 #include "base/android/jni_helper.h" |
9 #include "base/android/scoped_java_ref.h" | 9 #include "base/android/scoped_java_ref.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 | 107 |
108 void JavaBridgeDispatcherHostManager::RenderFrameDeleted( | 108 void JavaBridgeDispatcherHostManager::RenderFrameDeleted( |
109 RenderFrameHost* render_frame_host) { | 109 RenderFrameHost* render_frame_host) { |
110 if (!instances_.count(render_frame_host)) // Needed for tests. | 110 if (!instances_.count(render_frame_host)) // Needed for tests. |
111 return; | 111 return; |
112 instances_[render_frame_host]->RenderFrameDeleted(); | 112 instances_[render_frame_host]->RenderFrameDeleted(); |
113 instances_.erase(render_frame_host); | 113 instances_.erase(render_frame_host); |
114 } | 114 } |
115 | 115 |
116 void JavaBridgeDispatcherHostManager::DocumentAvailableInMainFrame() { | 116 void JavaBridgeDispatcherHostManager::DocumentAvailableInMainFrame() { |
117 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 117 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
118 // Called when the window object has been cleared in the main frame. | 118 // Called when the window object has been cleared in the main frame. |
119 JNIEnv* env = base::android::AttachCurrentThread(); | 119 JNIEnv* env = base::android::AttachCurrentThread(); |
120 base::android::ScopedJavaLocalRef<jobject> retained_object_set = | 120 base::android::ScopedJavaLocalRef<jobject> retained_object_set = |
121 retained_object_set_.get(env); | 121 retained_object_set_.get(env); |
122 if (!retained_object_set.is_null()) { | 122 if (!retained_object_set.is_null()) { |
123 JNI_Java_HashSet_clear(env, retained_object_set); | 123 JNI_Java_HashSet_clear(env, retained_object_set); |
124 | 124 |
125 // We also need to add back the named objects we have so far as they | 125 // We also need to add back the named objects we have so far as they |
126 // should survive navigations. | 126 // should survive navigations. |
127 ObjectMap::iterator it = objects_.begin(); | 127 ObjectMap::iterator it = objects_.begin(); |
128 for (; it != objects_.end(); ++it) { | 128 for (; it != objects_.end(); ++it) { |
129 JNI_Java_HashSet_add(env, retained_object_set, | 129 JNI_Java_HashSet_add(env, retained_object_set, |
130 JavaBoundObject::GetJavaObject(it->second)); | 130 JavaBoundObject::GetJavaObject(it->second)); |
131 } | 131 } |
132 } | 132 } |
133 } | 133 } |
134 | 134 |
135 void JavaBridgeDispatcherHostManager::JavaBoundObjectCreated( | 135 void JavaBridgeDispatcherHostManager::JavaBoundObjectCreated( |
136 const base::android::JavaRef<jobject>& object) { | 136 const base::android::JavaRef<jobject>& object) { |
137 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 137 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
138 | 138 |
139 JNIEnv* env = base::android::AttachCurrentThread(); | 139 JNIEnv* env = base::android::AttachCurrentThread(); |
140 base::android::ScopedJavaLocalRef<jobject> retained_object_set = | 140 base::android::ScopedJavaLocalRef<jobject> retained_object_set = |
141 retained_object_set_.get(env); | 141 retained_object_set_.get(env); |
142 if (!retained_object_set.is_null()) { | 142 if (!retained_object_set.is_null()) { |
143 JNI_Java_HashSet_add(env, retained_object_set, object); | 143 JNI_Java_HashSet_add(env, retained_object_set, object); |
144 } | 144 } |
145 } | 145 } |
146 | 146 |
147 void JavaBridgeDispatcherHostManager::JavaBoundObjectDestroyed( | 147 void JavaBridgeDispatcherHostManager::JavaBoundObjectDestroyed( |
148 const base::android::JavaRef<jobject>& object) { | 148 const base::android::JavaRef<jobject>& object) { |
149 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 149 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
150 | 150 |
151 JNIEnv* env = base::android::AttachCurrentThread(); | 151 JNIEnv* env = base::android::AttachCurrentThread(); |
152 base::android::ScopedJavaLocalRef<jobject> retained_object_set = | 152 base::android::ScopedJavaLocalRef<jobject> retained_object_set = |
153 retained_object_set_.get(env); | 153 retained_object_set_.get(env); |
154 if (!retained_object_set.is_null()) { | 154 if (!retained_object_set.is_null()) { |
155 JNI_Java_HashSet_remove(env, retained_object_set, object); | 155 JNI_Java_HashSet_remove(env, retained_object_set, object); |
156 } | 156 } |
157 } | 157 } |
158 | 158 |
159 void JavaBridgeDispatcherHostManager::SetAllowObjectContentsInspection( | 159 void JavaBridgeDispatcherHostManager::SetAllowObjectContentsInspection( |
160 bool allow) { | 160 bool allow) { |
161 allow_object_contents_inspection_ = allow; | 161 allow_object_contents_inspection_ = allow; |
162 } | 162 } |
163 | 163 |
164 } // namespace content | 164 } // namespace content |
OLD | NEW |