OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "content/browser/web_contents/web_contents_android.h" | 5 #include "content/browser/web_contents/web_contents_android.h" |
6 | 6 |
7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
8 #include "base/android/jni_array.h" | 8 #include "base/android/jni_array.h" |
9 #include "base/android/jni_string.h" | 9 #include "base/android/jni_string.h" |
10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 // base::Callback. | 428 // base::Callback. |
429 ScopedJavaGlobalRef<jobject> j_callback; | 429 ScopedJavaGlobalRef<jobject> j_callback; |
430 j_callback.Reset(env, callback); | 430 j_callback.Reset(env, callback); |
431 RenderFrameHost::JavaScriptResultCallback js_callback = | 431 RenderFrameHost::JavaScriptResultCallback js_callback = |
432 base::Bind(&JavaScriptResultCallback, j_callback); | 432 base::Bind(&JavaScriptResultCallback, j_callback); |
433 | 433 |
434 web_contents_->GetMainFrame()->ExecuteJavaScript( | 434 web_contents_->GetMainFrame()->ExecuteJavaScript( |
435 ConvertJavaStringToUTF16(env, script), js_callback); | 435 ConvertJavaStringToUTF16(env, script), js_callback); |
436 } | 436 } |
437 | 437 |
| 438 void WebContentsAndroid::EvaluateJavaScriptForTests(JNIEnv* env, |
| 439 jobject obj, |
| 440 jstring script, |
| 441 jobject callback) { |
| 442 RenderViewHost* rvh = web_contents_->GetRenderViewHost(); |
| 443 DCHECK(rvh); |
| 444 |
| 445 if (!rvh->IsRenderViewLive()) { |
| 446 if (!static_cast<WebContentsImpl*>(web_contents_)-> |
| 447 CreateRenderViewForInitialEmptyDocument()) { |
| 448 LOG(ERROR) << "Failed to create RenderView in EvaluateJavaScriptForTests"; |
| 449 return; |
| 450 } |
| 451 } |
| 452 |
| 453 if (!callback) { |
| 454 // No callback requested. |
| 455 web_contents_->GetMainFrame()->ExecuteJavaScriptForTests( |
| 456 ConvertJavaStringToUTF16(env, script)); |
| 457 return; |
| 458 } |
| 459 |
| 460 // Secure the Java callback in a scoped object and give ownership of it to the |
| 461 // base::Callback. |
| 462 ScopedJavaGlobalRef<jobject> j_callback; |
| 463 j_callback.Reset(env, callback); |
| 464 RenderFrameHost::JavaScriptResultCallback js_callback = |
| 465 base::Bind(&JavaScriptResultCallback, j_callback); |
| 466 |
| 467 web_contents_->GetMainFrame()->ExecuteJavaScriptForTests( |
| 468 ConvertJavaStringToUTF16(env, script), js_callback); |
| 469 } |
| 470 |
438 void WebContentsAndroid::AddMessageToDevToolsConsole(JNIEnv* env, | 471 void WebContentsAndroid::AddMessageToDevToolsConsole(JNIEnv* env, |
439 jobject jobj, | 472 jobject jobj, |
440 jint level, | 473 jint level, |
441 jstring message) { | 474 jstring message) { |
442 DCHECK_GE(level, 0); | 475 DCHECK_GE(level, 0); |
443 DCHECK_LE(level, CONSOLE_MESSAGE_LEVEL_LAST); | 476 DCHECK_LE(level, CONSOLE_MESSAGE_LEVEL_LAST); |
444 | 477 |
445 web_contents_->GetMainFrame()->AddMessageToConsole( | 478 web_contents_->GetMainFrame()->AddMessageToConsole( |
446 static_cast<ConsoleMessageLevel>(level), | 479 static_cast<ConsoleMessageLevel>(level), |
447 ConvertJavaStringToUTF8(env, message)); | 480 ConvertJavaStringToUTF8(env, message)); |
(...skipping 29 matching lines...) Expand all Loading... |
477 | 510 |
478 void WebContentsAndroid::ResumeMediaSession(JNIEnv* env, jobject obj) { | 511 void WebContentsAndroid::ResumeMediaSession(JNIEnv* env, jobject obj) { |
479 web_contents_->ResumeMediaSession(); | 512 web_contents_->ResumeMediaSession(); |
480 } | 513 } |
481 | 514 |
482 void WebContentsAndroid::SuspendMediaSession(JNIEnv* env, jobject obj) { | 515 void WebContentsAndroid::SuspendMediaSession(JNIEnv* env, jobject obj) { |
483 web_contents_->SuspendMediaSession(); | 516 web_contents_->SuspendMediaSession(); |
484 } | 517 } |
485 | 518 |
486 } // namespace content | 519 } // namespace content |
OLD | NEW |