OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "chrome/browser/android/tab_web_contents_delegate_android.h" | 5 #include "chrome/browser/android/tab_web_contents_delegate_android.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_string.h" | 10 #include "base/android/jni_string.h" |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 | 175 |
176 blink::WebDisplayMode TabWebContentsDelegateAndroid::GetDisplayMode( | 176 blink::WebDisplayMode TabWebContentsDelegateAndroid::GetDisplayMode( |
177 const WebContents* web_contents) const { | 177 const WebContents* web_contents) const { |
178 JNIEnv* env = base::android::AttachCurrentThread(); | 178 JNIEnv* env = base::android::AttachCurrentThread(); |
179 | 179 |
180 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); | 180 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
181 if (obj.is_null()) | 181 if (obj.is_null()) |
182 return blink::WebDisplayModeUndefined; | 182 return blink::WebDisplayModeUndefined; |
183 | 183 |
184 return static_cast<blink::WebDisplayMode>( | 184 return static_cast<blink::WebDisplayMode>( |
185 Java_TabWebContentsDelegateAndroid_getDisplayMode( | 185 Java_TabWebContentsDelegateAndroid_getDisplayMode(env, obj)); |
186 env, obj.obj())); | |
187 } | 186 } |
188 | 187 |
189 void TabWebContentsDelegateAndroid::FindReply( | 188 void TabWebContentsDelegateAndroid::FindReply( |
190 WebContents* web_contents, | 189 WebContents* web_contents, |
191 int request_id, | 190 int request_id, |
192 int number_of_matches, | 191 int number_of_matches, |
193 const gfx::Rect& selection_rect, | 192 const gfx::Rect& selection_rect, |
194 int active_match_ordinal, | 193 int active_match_ordinal, |
195 bool final_update) { | 194 bool final_update) { |
196 if (!notification_registrar_.IsRegistered(this, | 195 if (!notification_registrar_.IsRegistered(this, |
(...skipping 19 matching lines...) Expand all Loading... |
216 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); | 215 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
217 if (obj.is_null()) | 216 if (obj.is_null()) |
218 return; | 217 return; |
219 | 218 |
220 ScopedJavaLocalRef<jobject> selection_rect = CreateJavaRect( | 219 ScopedJavaLocalRef<jobject> selection_rect = CreateJavaRect( |
221 env, find_result->selection_rect()); | 220 env, find_result->selection_rect()); |
222 | 221 |
223 // Create the details object. | 222 // Create the details object. |
224 ScopedJavaLocalRef<jobject> details_object = | 223 ScopedJavaLocalRef<jobject> details_object = |
225 Java_TabWebContentsDelegateAndroid_createFindNotificationDetails( | 224 Java_TabWebContentsDelegateAndroid_createFindNotificationDetails( |
226 env, | 225 env, find_result->number_of_matches(), selection_rect, |
227 find_result->number_of_matches(), | 226 find_result->active_match_ordinal(), find_result->final_update()); |
228 selection_rect.obj(), | |
229 find_result->active_match_ordinal(), | |
230 find_result->final_update()); | |
231 | 227 |
232 Java_TabWebContentsDelegateAndroid_onFindResultAvailable( | 228 Java_TabWebContentsDelegateAndroid_onFindResultAvailable(env, obj, |
233 env, | 229 details_object); |
234 obj.obj(), | |
235 details_object.obj()); | |
236 } | 230 } |
237 | 231 |
238 void TabWebContentsDelegateAndroid::FindMatchRectsReply( | 232 void TabWebContentsDelegateAndroid::FindMatchRectsReply( |
239 WebContents* web_contents, | 233 WebContents* web_contents, |
240 int version, | 234 int version, |
241 const std::vector<gfx::RectF>& rects, | 235 const std::vector<gfx::RectF>& rects, |
242 const gfx::RectF& active_rect) { | 236 const gfx::RectF& active_rect) { |
243 JNIEnv* env = base::android::AttachCurrentThread(); | 237 JNIEnv* env = base::android::AttachCurrentThread(); |
244 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); | 238 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
245 if (obj.is_null()) | 239 if (obj.is_null()) |
246 return; | 240 return; |
247 | 241 |
248 // Create the details object. | 242 // Create the details object. |
249 ScopedJavaLocalRef<jobject> details_object = | 243 ScopedJavaLocalRef<jobject> details_object = |
250 Java_TabWebContentsDelegateAndroid_createFindMatchRectsDetails( | 244 Java_TabWebContentsDelegateAndroid_createFindMatchRectsDetails( |
251 env, | 245 env, version, rects.size(), CreateJavaRectF(env, active_rect)); |
252 version, | |
253 rects.size(), | |
254 CreateJavaRectF(env, active_rect).obj()); | |
255 | 246 |
256 // Add the rects | 247 // Add the rects |
257 for (size_t i = 0; i < rects.size(); ++i) { | 248 for (size_t i = 0; i < rects.size(); ++i) { |
258 Java_TabWebContentsDelegateAndroid_setMatchRectByIndex( | 249 Java_TabWebContentsDelegateAndroid_setMatchRectByIndex( |
259 env, | 250 env, details_object, i, CreateJavaRectF(env, rects[i])); |
260 details_object.obj(), | |
261 i, | |
262 CreateJavaRectF(env, rects[i]).obj()); | |
263 } | 251 } |
264 | 252 |
265 Java_TabWebContentsDelegateAndroid_onFindMatchRectsAvailable( | 253 Java_TabWebContentsDelegateAndroid_onFindMatchRectsAvailable(env, obj, |
266 env, | 254 details_object); |
267 obj.obj(), | |
268 details_object.obj()); | |
269 } | 255 } |
270 | 256 |
271 content::JavaScriptDialogManager* | 257 content::JavaScriptDialogManager* |
272 TabWebContentsDelegateAndroid::GetJavaScriptDialogManager( | 258 TabWebContentsDelegateAndroid::GetJavaScriptDialogManager( |
273 WebContents* source) { | 259 WebContents* source) { |
274 return app_modal::JavaScriptDialogManager::GetInstance(); | 260 return app_modal::JavaScriptDialogManager::GetInstance(); |
275 } | 261 } |
276 | 262 |
277 void TabWebContentsDelegateAndroid::RequestMediaAccessPermission( | 263 void TabWebContentsDelegateAndroid::RequestMediaAccessPermission( |
278 content::WebContents* web_contents, | 264 content::WebContents* web_contents, |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 return WebContentsDelegateAndroid::OpenURLFromTab(source, params); | 351 return WebContentsDelegateAndroid::OpenURLFromTab(source, params); |
366 } | 352 } |
367 | 353 |
368 bool TabWebContentsDelegateAndroid::ShouldResumeRequestsForCreatedWindow() { | 354 bool TabWebContentsDelegateAndroid::ShouldResumeRequestsForCreatedWindow() { |
369 JNIEnv* env = base::android::AttachCurrentThread(); | 355 JNIEnv* env = base::android::AttachCurrentThread(); |
370 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); | 356 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
371 if (obj.is_null()) | 357 if (obj.is_null()) |
372 return true; | 358 return true; |
373 | 359 |
374 return Java_TabWebContentsDelegateAndroid_shouldResumeRequestsForCreatedWindow
( | 360 return Java_TabWebContentsDelegateAndroid_shouldResumeRequestsForCreatedWindow
( |
375 env, | 361 env, obj); |
376 obj.obj()); | |
377 } | 362 } |
378 | 363 |
379 void TabWebContentsDelegateAndroid::AddNewContents( | 364 void TabWebContentsDelegateAndroid::AddNewContents( |
380 WebContents* source, | 365 WebContents* source, |
381 WebContents* new_contents, | 366 WebContents* new_contents, |
382 WindowOpenDisposition disposition, | 367 WindowOpenDisposition disposition, |
383 const gfx::Rect& initial_rect, | 368 const gfx::Rect& initial_rect, |
384 bool user_gesture, | 369 bool user_gesture, |
385 bool* was_blocked) { | 370 bool* was_blocked) { |
386 // No code for this yet. | 371 // No code for this yet. |
387 DCHECK_NE(disposition, SAVE_TO_DISK); | 372 DCHECK_NE(disposition, SAVE_TO_DISK); |
388 // Can't create a new contents for the current tab - invalid case. | 373 // Can't create a new contents for the current tab - invalid case. |
389 DCHECK_NE(disposition, CURRENT_TAB); | 374 DCHECK_NE(disposition, CURRENT_TAB); |
390 | 375 |
391 TabHelpers::AttachTabHelpers(new_contents); | 376 TabHelpers::AttachTabHelpers(new_contents); |
392 | 377 |
393 JNIEnv* env = AttachCurrentThread(); | 378 JNIEnv* env = AttachCurrentThread(); |
394 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); | 379 ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); |
395 bool handled = false; | 380 bool handled = false; |
396 if (!obj.is_null()) { | 381 if (!obj.is_null()) { |
397 ScopedJavaLocalRef<jobject> jsource; | 382 ScopedJavaLocalRef<jobject> jsource; |
398 if (source) | 383 if (source) |
399 jsource = source->GetJavaWebContents(); | 384 jsource = source->GetJavaWebContents(); |
400 ScopedJavaLocalRef<jobject> jnew_contents; | 385 ScopedJavaLocalRef<jobject> jnew_contents; |
401 if (new_contents) | 386 if (new_contents) |
402 jnew_contents = new_contents->GetJavaWebContents(); | 387 jnew_contents = new_contents->GetJavaWebContents(); |
403 | 388 |
404 handled = Java_TabWebContentsDelegateAndroid_addNewContents( | 389 handled = Java_TabWebContentsDelegateAndroid_addNewContents( |
405 env, | 390 env, obj, jsource, jnew_contents, static_cast<jint>(disposition), |
406 obj.obj(), | 391 nullptr, user_gesture); |
407 jsource.obj(), | |
408 jnew_contents.obj(), | |
409 static_cast<jint>(disposition), | |
410 nullptr, | |
411 user_gesture); | |
412 } | 392 } |
413 | 393 |
414 if (was_blocked) | 394 if (was_blocked) |
415 *was_blocked = !handled; | 395 *was_blocked = !handled; |
416 if (!handled) | 396 if (!handled) |
417 delete new_contents; | 397 delete new_contents; |
418 } | 398 } |
419 | 399 |
420 void TabWebContentsDelegateAndroid::RequestAppBannerFromDevTools( | 400 void TabWebContentsDelegateAndroid::RequestAppBannerFromDevTools( |
421 content::WebContents* web_contents) { | 401 content::WebContents* web_contents) { |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 jboolean IsCapturingVideo(JNIEnv* env, | 457 jboolean IsCapturingVideo(JNIEnv* env, |
478 const JavaParamRef<jclass>& clazz, | 458 const JavaParamRef<jclass>& clazz, |
479 const JavaParamRef<jobject>& java_web_contents) { | 459 const JavaParamRef<jobject>& java_web_contents) { |
480 content::WebContents* web_contents = | 460 content::WebContents* web_contents = |
481 content::WebContents::FromJavaWebContents(java_web_contents); | 461 content::WebContents::FromJavaWebContents(java_web_contents); |
482 scoped_refptr<MediaStreamCaptureIndicator> indicator = | 462 scoped_refptr<MediaStreamCaptureIndicator> indicator = |
483 MediaCaptureDevicesDispatcher::GetInstance()-> | 463 MediaCaptureDevicesDispatcher::GetInstance()-> |
484 GetMediaStreamCaptureIndicator(); | 464 GetMediaStreamCaptureIndicator(); |
485 return indicator->IsCapturingVideo(web_contents); | 465 return indicator->IsCapturingVideo(web_contents); |
486 } | 466 } |
OLD | NEW |