diff options
7 files changed, 26 insertions, 6 deletions
diff --git a/Cargo.lock b/Cargo.lock index b16e963c219..1048d5aa9e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4819,6 +4819,7 @@ dependencies = [ "android_injected_glue", "android_logger", "cc", + "gstreamer", "jni", "libc", "log", diff --git a/ports/libsimpleservo/jniapi/Cargo.toml b/ports/libsimpleservo/jniapi/Cargo.toml index 391d64416c9..d0e61568e60 100644 --- a/ports/libsimpleservo/jniapi/Cargo.toml +++ b/ports/libsimpleservo/jniapi/Cargo.toml @@ -16,6 +16,7 @@ bench = false [dependencies] android_injected_glue = "0.2" android_logger = "0.7" +gstreamer = "0.14.5" jni = "0.10.2" libc = "0.2" log = "0.4" diff --git a/ports/libsimpleservo/jniapi/src/lib.rs b/ports/libsimpleservo/jniapi/src/lib.rs index 0f1d47916a8..963e01dec6d 100644 --- a/ports/libsimpleservo/jniapi/src/lib.rs +++ b/ports/libsimpleservo/jniapi/src/lib.rs @@ -8,6 +8,7 @@ extern crate log; use android_logger::{self, Filter}; +use gstreamer::debug_set_threshold_from_string; use jni::objects::{GlobalRef, JClass, JObject, JString, JValue}; use jni::sys::{jboolean, jfloat, jint, jstring, JNI_TRUE}; use jni::{errors, JNIEnv, JavaVM}; @@ -53,8 +54,8 @@ pub fn Java_org_mozilla_servoview_JNIServo_init( opts: JObject, callbacks_obj: JObject, ) { - let (mut opts, log, log_str) = match get_options(&env, opts) { - Ok((opts, log, log_str)) => (opts, log, log_str), + let (mut opts, log, log_str, gst_debug_str) = match get_options(&env, opts) { + Ok((opts, log, log_str, gst_debug_str)) => (opts, log, log_str, gst_debug_str), Err(err) => { throw(&env, &err); return; @@ -86,6 +87,11 @@ pub fn Java_org_mozilla_servoview_JNIServo_init( filter = filter.with_allowed_module_path(module); } } + + if let Some(gst_debug_str) = gst_debug_str { + debug_set_threshold_from_string(&gst_debug_str, true); + } + android_logger::init_once(filter, Some("simpleservo")); } @@ -734,10 +740,14 @@ fn get_string(env: &JNIEnv, obj: JObject, field: &str) -> Result<Option<String>, } } -fn get_options(env: &JNIEnv, opts: JObject) -> Result<(InitOptions, bool, Option<String>), String> { +fn get_options( + env: &JNIEnv, + opts: JObject, +) -> Result<(InitOptions, bool, Option<String>, Option<String>), String> { let args = get_string(env, opts, "args")?; let url = get_string(env, opts, "url")?; let log_str = get_string(env, opts, "logStr")?; + let gst_debug_str = get_string(env, opts, "gstDebugStr")?; let density = get_non_null_field(env, opts, "density", "F")? .f() .map_err(|_| "densitiy not a float")? as f32; @@ -782,5 +792,5 @@ fn get_options(env: &JNIEnv, opts: JObject) -> Result<(InitOptions, bool, Option gl_context_pointer: None, native_display_pointer: None, }; - Ok((opts, log, log_str)) + Ok((opts, log, log_str, gst_debug_str)) } diff --git a/python/servo/post_build_commands.py b/python/servo/post_build_commands.py index 1855fefff25..4c3b6aba3c5 100644 --- a/python/servo/post_build_commands.py +++ b/python/servo/post_build_commands.py @@ -102,6 +102,9 @@ class PostBuildCommands(CommandBase): rust_log = env.get("RUST_LOG", None) if rust_log: extra += " -e servolog " + rust_log + gst_debug = env.get("GST_DEBUG", None) + if gst_debug: + extra += " -e gstdebug " + gst_debug script += [ "am start " + extra + " org.mozilla.servo/org.mozilla.servo.MainActivity", "sleep 0.5", diff --git a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java index dd52ac7ed64..d044b39423e 100644 --- a/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java +++ b/support/android/apk/servoapp/src/main/java/org/mozilla/servo/MainActivity.java @@ -76,7 +76,8 @@ public class MainActivity extends Activity implements Servo.Client { Intent intent = getIntent(); String args = intent.getStringExtra("servoargs"); String log = intent.getStringExtra("servolog"); - mServoView.setServoArgs(args, log); + String gstdebug = intent.getStringExtra("gstdebug"); + mServoView.setServoArgs(args, log, gstdebug); if (Intent.ACTION_VIEW.equals(intent.getAction())) { mServoView.loadUri(intent.getData()); diff --git a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java index b5c18e3e5fa..28d5b07b70b 100644 --- a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java +++ b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/JNIServo.java @@ -74,6 +74,7 @@ public class JNIServo { public boolean enableSubpixelTextAntialiasing = true; public long VRExternalContext = 0; public String logStr; + public String gstDebugStr; public boolean enableLogs = false; } diff --git a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/ServoView.java b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/ServoView.java index 8d9c0b21383..33431afa19a 100644 --- a/support/android/apk/servoview/src/main/java/org/mozilla/servoview/ServoView.java +++ b/support/android/apk/servoview/src/main/java/org/mozilla/servoview/ServoView.java @@ -45,6 +45,7 @@ public class ServoView extends GLSurfaceView private boolean mAnimating; private String mServoArgs; private String mServoLog; + private String mGstDebug; private GestureDetector mGestureDetector; private ScaleGestureDetector mScaleGestureDetector; @@ -90,9 +91,10 @@ public class ServoView extends GLSurfaceView initGestures(context); } - public void setServoArgs(String args, String log) { + public void setServoArgs(String args, String log, String gstdebug) { mServoArgs = args; mServoLog = log; + mGstDebug = gstdebug; } public void reload() { @@ -176,6 +178,7 @@ public class ServoView extends GLSurfaceView String uri = mInitialUri == null ? null : mInitialUri.toString(); options.url = uri; options.logStr = mServoLog; + options.gstDebugStr = mGstDebug; mServo = new Servo(options, this, this, mClient, mActivity); }); } |