From 4fb75f56468ea46675dd99511438edfe33c39777 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 5 Jul 2019 01:59:13 -0400 Subject: [PATCH 1/2] Package all known GStreamer plugins and dependencies on Windows, and load them explicitly when loading Servo. --- components/servo/lib.rs | 62 +- python/servo/build_commands.py | 142 +++-- support/hololens/ServoApp.vcxproj | 667 ++++++++++++++++++++-- support/hololens/ServoApp.vcxproj.filters | 468 ++++++++++++--- 4 files changed, 1177 insertions(+), 162 deletions(-) diff --git a/components/servo/lib.rs b/components/servo/lib.rs index 9ef5013a7b2..9fe2abcb27a 100644 --- a/components/servo/lib.rs +++ b/components/servo/lib.rs @@ -122,8 +122,54 @@ pub use servo_url as url; target_arch = "x86_64" ))] mod media_platform { - pub use self::servo_media_gstreamer::GStreamerBackend as MediaBackend; - use servo_media_gstreamer; + use super::ServoMedia; + use servo_media_gstreamer::GStreamerBackend; + + #[cfg(windows)] + pub fn init() { + let mut plugin_dir = std::env::current_exe().unwrap(); + plugin_dir.pop(); + + let plugins = &[ + "gstapp.dll", + "gstaudioconvert.dll", + "gstaudiofx.dll", + "gstaudioparsers.dll", + "gstaudioresample.dll", + "gstautodetect.dll", + "gstcoreelements.dll", + "gstdeinterlace.dll", + "gstplayback.dll", + "gstinterleave.dll", + "gstisomp4.dll", + "gstlibav.dll", + "gstnice.dll", + "gstogg.dll", + "gstopengl.dll", + "gstopus.dll", + "gstproxy.dll", + "gstrtp.dll", + "gsttheora.dll", + "gsttypefindfunctions.dll", + "gstvideoconvert.dll", + "gstvideoparsersbad.dll", + "gstvideoscale.dll", + "gstvolume.dll", + "gstvorbis.dll", + "gstvpx.dll", + "gstwasapi.dll", + "gstwebrtc.dll", + ]; + + let backend = GStreamerBackend::init_with_plugins(plugin_dir, plugins) + .expect("Error initializing GStreamer"); + ServoMedia::init_with_backend(backend); + } + + #[cfg(not(windows))] + pub fn init() { + ServoMedia::init::(); + } } #[cfg(not(any( @@ -131,12 +177,12 @@ mod media_platform { target_arch = "x86_64" )))] mod media_platform { - pub use self::servo_media_dummy::DummyBackend as MediaBackend; - use servo_media_dummy; + use super::ServoMedia; + pub fn init() { + ServoMedia::init::(); + } } -type MediaBackend = media_platform::MediaBackend; - /// The in-process interface to Servo. /// /// It does everything necessary to render the web, primarily @@ -204,7 +250,7 @@ where let opts = opts::get(); if !opts.multiprocess { - ServoMedia::init::(); + media_platform::init(); } // Make sure the gl context is made current. @@ -810,7 +856,7 @@ pub fn run_content_process(token: String) { script::init(); script::init_service_workers(sw_senders); - ServoMedia::init::(); + media_platform::init(); unprivileged_content.start_all:: - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true + + + false + true + true - true - false + false true + true - true - false + false true + true + + + false + true + true - true - false + false true + true true false true + false - true - false + false true + true + + + false + true + true - true - false + false true + true - true - false + false true + true true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false @@ -318,46 +624,166 @@ false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + true false true + + true + false + true + + + true + false + true + true false @@ -368,16 +794,71 @@ false true + + true + false + true + + + true + false + true + true false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false true + + true + false + true + true false @@ -388,6 +869,76 @@ false true + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + + + true + false + true + true false @@ -398,6 +949,11 @@ false true + + true + false + true + true false @@ -413,6 +969,11 @@ false true + + true + false + true + true false @@ -433,4 +994,4 @@ - + \ No newline at end of file diff --git a/support/hololens/ServoApp.vcxproj.filters b/support/hololens/ServoApp.vcxproj.filters index 13b7c033ae1..8740c77f6a2 100644 --- a/support/hololens/ServoApp.vcxproj.filters +++ b/support/hololens/ServoApp.vcxproj.filters @@ -55,9 +55,27 @@ + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug @@ -73,39 +91,144 @@ ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug @@ -115,19 +238,64 @@ ServoDLLsDebug + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + + + ServoDLLsDebug + ServoDLLsDebug ServoDLLsDebug + + ServoDLLsDebug + ServoDLLsDebug - + ServoDLLsDebug - + ServoDLLsDebug @@ -136,85 +304,253 @@ ServoDLLsDebug - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - + ServoDLLsRelease - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - - ServoDLLsRelease - - + ServoDLLsRelease ServoDLLsRelease - + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + + ServoDLLsRelease + + ServoDLLsRelease From 7c97d0193b12f47a8f404354b7085f3c275e2e37 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Mon, 8 Jul 2019 12:10:07 -0400 Subject: [PATCH 2/2] Remove Windows x86 build. --- etc/taskcluster/decision_task.py | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py index 90e57bc7ca9..f9163b84999 100644 --- a/etc/taskcluster/decision_task.py +++ b/etc/taskcluster/decision_task.py @@ -28,7 +28,6 @@ def main(task_for): all_tests = [ linux_tidy_unit_docs, windows_unit, - windows_x86, windows_arm64, macos_unit, magicleap_dev, @@ -55,7 +54,7 @@ def main(task_for): "try-mac": [macos_unit], "try-linux": [linux_tidy_unit_docs, linux_release], - "try-windows": [windows_unit, windows_x86, windows_arm64], + "try-windows": [windows_unit, windows_arm64], "try-magicleap": [magicleap_dev], "try-arm": [windows_arm64], "try-wpt": [linux_wpt], @@ -125,10 +124,6 @@ linux_build_env = { } macos_build_env = {} windows_build_env = { - "x86": { - "LIB": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86\\lib;%LIB%", - "GSTREAMER_1_0_ROOT_X86": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86\\", - }, "x86_64": { "LIB": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86_64\\lib;%LIB%", "GSTREAMER_1_0_ROOT_X86_64": "%HOMEDRIVE%%HOMEPATH%\\gst\\gstreamer\\1.0\\x86_64\\", @@ -379,20 +374,6 @@ def android_x86_wpt(): ) -def windows_x86(): - return ( - windows_cross_build_task("Dev build", arch="x86", package=True) - .with_treeherder("Windows x86") - .with_script( - "python mach build --dev --target i686-pc-windows-msvc", - "python mach package --dev --target i686-pc-windows-msvc", - ) - .with_artifacts("repo/target/i686-pc-windows-msvc/debug/msi/Servo.exe", - "repo/target/i686-pc-windows-msvc/debug/msi/Servo.zip") - .find_or_create("build.windows_x86_dev." + CONFIG.task_id()) - ) - - def windows_arm64(): return ( windows_cross_build_task("Dev build", arch="arm64", package=False) @@ -774,16 +755,13 @@ def windows_build_task(name, package=True, arch="x86_64"): hashes = { "devel": { "x86_64": "c136cbfb0330041d52fe6ec4e3e468563176333c857f6ed71191ebc37fc9d605", - "x86": "fed862659360b4fbc77920bdc28f1a7da56bb953b88044834db5161c0ee05eb3", }, "non-devel": { "x86_64": "0744a8ef2a4ba393dacb7927d741df871400a85bab5aecf7905f63bf52c405e4", - "x86": "f36df8ba7a3858c2299162312cb939e3fe8ff65c704f988c497405ba8d9cb275", }, } prefix = { "x86_64": "msvc", - "x86": "mingw", } version = "1.16.0" task = (