Skip to content

Commit

Permalink
Remove gecko-media dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
ferjm committed Jan 19, 2018
1 parent 671b69c commit f46fbe4
Show file tree
Hide file tree
Showing 12 changed files with 72 additions and 252 deletions.
13 changes: 0 additions & 13 deletions .travis.yml
Expand Up @@ -18,7 +18,6 @@ matrix:
- sudo apt-get update -q
- sudo apt-get install clang-3.9 llvm-3.9 llvm-3.9-runtime -y
- export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
- export CC=gcc-5 CXX=g++-5
- curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain none -y
- source ~/.profile
script:
Expand All @@ -43,24 +42,12 @@ matrix:
CARGO_INCREMENTAL=0
addons:
apt:
sources:
- ubuntu-toolchain-r-test
- sourceline: 'ppa:jonathonf/ffmpeg-3'
packages:
- cmake
- dbus-x11
- freeglut3-dev
- gcc-5
- g++-5
- gperf
- libavcodec-dev
- libavformat-dev
- libosmesa6-dev
- libpulse-dev
- libgles2-mesa-dev
- libswscale-dev
- libswresample-dev
- pulseaudio
- python-virtualenv
- xorg-dev
- ccache
Expand Down
146 changes: 0 additions & 146 deletions Cargo.lock

Large diffs are not rendered by default.

30 changes: 6 additions & 24 deletions README.md
Expand Up @@ -82,10 +82,7 @@ sudo apt install git curl freeglut3-dev autoconf libx11-dev \
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
gperf g++ build-essential cmake virtualenv python-pip \
libssl1.0-dev libbz2-dev libosmesa6-dev libxmu6 libxmu-dev \
libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev \
pulseaudio dbus-x11 libavcodec-dev libavformat-dev \
libavutil-dev libswresample-dev libswscale-dev libdbus-1-dev \
libpulse-dev clang
libglu1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libdbus-1-dev
```

If you using a version prior to **Ubuntu 17.04** or **Debian Sid**, replace `libssl1.0-dev` with `libssl-dev`.
Expand All @@ -101,7 +98,7 @@ sudo dnf install curl freeglut-devel libtool gcc-c++ libXi-devel \
freetype-devel mesa-libGL-devel mesa-libEGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \
rpm-build openssl-devel cmake bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa-devel \
dbus-devel ncurses-devel pulseaudio-libs-devel clang clang-libs
dbus-devel ncurses-devel
```
#### On CentOS

Expand All @@ -110,42 +107,27 @@ sudo yum install curl freeglut-devel libtool gcc-c++ libXi-devel \
freetype-devel mesa-libGL-devel mesa-libEGL-devel glib2-devel libX11-devel libXrandr-devel gperf \
fontconfig-devel cabextract ttmkfdir python python-virtualenv python-pip expat-devel \
rpm-build openssl-devel cmake3 bzip2-devel libXcursor-devel libXmu-devel mesa-libOSMesa-devel \
dbus-devel ncurses-devel python34 pulseaudio-libs-devel clang clang-libs llvm-toolset-7
dbus-devel ncurses-devel python34
```

Build inside `llvm-toolset` and `devtoolset`:
```
scl enable devtoolset-7 llvm-toolset-7 bash
```
with the following environmental variables set:
```
export CMAKE=cmake3
export LIBCLANG_PATH=/opt/rh/llvm-toolset-7/root/usr/lib64
```

#### On openSUSE Linux
``` sh
sudo zypper install libX11-devel libexpat-devel libbz2-devel Mesa-libEGL-devel Mesa-libGL-devel cabextract cmake \
dbus-1-devel fontconfig-devel freetype-devel gcc-c++ git glib2-devel gperf \
harfbuzz-devel libOSMesa-devel libXcursor-devel libXi-devel libXmu-devel libXrandr-devel libopenssl-devel \
python-pip python-virtualenv rpm-build glu-devel llvm-clang libclang
python-pip python-virtualenv rpm-build glu-devel
```
#### On Arch Linux

``` sh
sudo pacman -S --needed base-devel git python2 python2-virtualenv python2-pip mesa cmake bzip2 libxmu glu pkg-config clang
sudo pacman -S --needed base-devel git python2 python2-virtualenv python2-pip mesa cmake bzip2 libxmu glu pkg-config
```
#### On Gentoo Linux

```sh
sudo emerge net-misc/curl media-libs/freeglut \
media-libs/freetype media-libs/mesa dev-util/gperf \
dev-python/virtualenv dev-python/pip dev-libs/openssl \
x11-libs/libXmu media-libs/glu x11-base/xorg-server sys-devel/clang
```
with the following environment variable set:
```sh
export LIBCLANG_PATH="/usr/lib64/llvm/*/lib64"
x11-libs/libXmu media-libs/glu x11-base/xorg-server
```
#### On Windows (MSVC)

Expand Down
3 changes: 0 additions & 3 deletions components/constellation/Cargo.toml
Expand Up @@ -43,6 +43,3 @@ webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}

[target.'cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))'.dependencies]
gecko-media = {git = "https://github.com/servo/gecko-media.git"}
12 changes: 0 additions & 12 deletions components/constellation/constellation.rs
Expand Up @@ -108,8 +108,6 @@ use debugger;
use devtools_traits::{ChromeToDevtoolsControlMsg, DevtoolsControlMsg};
use euclid::{Size2D, TypedSize2D, TypedScale};
use event_loop::EventLoop;
#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
use gecko_media::GeckoMedia;
use gfx::font_cache_thread::FontCacheThread;
use gfx_traits::Epoch;
use ipc_channel::{Error as IpcError};
Expand Down Expand Up @@ -1483,16 +1481,6 @@ impl<Message, LTF, STF> Constellation<Message, LTF, STF>

debug!("Asking compositor to complete shutdown.");
self.compositor_proxy.send(ToCompositorMsg::ShutdownComplete);

#[cfg(all(
any(target_os = "macos", target_os = "linux"),
not(any(target_arch = "arm", target_arch = "aarch64")),
))]
{
if let Err(()) = GeckoMedia::shutdown() {
warn!("Media stack shutdown failed.");
}
}
}

fn handle_pipeline_exited(&mut self, pipeline_id: PipelineId) {
Expand Down
2 changes: 0 additions & 2 deletions components/constellation/lib.rs
Expand Up @@ -17,8 +17,6 @@ extern crate devtools_traits;
extern crate euclid;
#[cfg(all(not(target_os = "windows"), not(target_os = "ios")))]
extern crate gaol;
#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
extern crate gecko_media;
extern crate gfx;
extern crate gfx_traits;
extern crate hyper;
Expand Down
3 changes: 0 additions & 3 deletions components/script/Cargo.toml
Expand Up @@ -23,9 +23,6 @@ phf_codegen = "0.7.18"
phf_shared = "0.7.18"
serde_json = "1.0"

[target.'cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))'.dependencies]
gecko-media = {git = "https://github.com/servo/gecko-media.git"}

[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tinyfiledialogs = "2.5.9"

Expand Down
24 changes: 0 additions & 24 deletions components/script/dom/htmlmediaelement.rs
Expand Up @@ -31,13 +31,10 @@ use dom::node::{window_from_node, document_from_node, Node, UnbindContext};
use dom::promise::Promise;
use dom::virtualmethods::VirtualMethods;
use dom_struct::dom_struct;
#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
use gecko_media::{CanPlayType, GeckoMedia};
use html5ever::{LocalName, Prefix};
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
use microtask::{Microtask, MicrotaskRunnable};
#[allow(unused_imports)]
use mime::{Mime, SubLevel, TopLevel};
use net_traits::{FetchResponseListener, FetchMetadata, Metadata, NetworkError};
use net_traits::request::{CredentialsMode, Destination, RequestInit};
Expand Down Expand Up @@ -870,27 +867,6 @@ impl HTMLMediaElementMethods for HTMLMediaElement {
self.media_element_load_algorithm();
}

#[cfg(all(
any(target_os = "macos", target_os = "linux"),
not(any(target_arch = "arm", target_arch = "aarch64")),
))]
// https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
let gecko_media = match GeckoMedia::get() {
Ok(gecko_media) => gecko_media,
Err(_) => return CanPlayTypeResult::_empty,
};
match gecko_media.can_play_type(&type_) {
CanPlayType::No => CanPlayTypeResult::_empty,
CanPlayType::Maybe => CanPlayTypeResult::Maybe,
CanPlayType::Probably => CanPlayTypeResult::Probably
}
}

#[cfg(not(all(
any(target_os = "macos", target_os = "linux"),
not(any(target_arch = "arm", target_arch = "aarch64")),
)))]
// https://html.spec.whatwg.org/multipage/#dom-navigator-canplaytype
fn CanPlayType(&self, type_: DOMString) -> CanPlayTypeResult {
match type_.parse::<Mime>() {
Expand Down
3 changes: 0 additions & 3 deletions components/script/lib.rs
Expand Up @@ -42,9 +42,6 @@ extern crate domobject_derive;
extern crate encoding_rs;
extern crate euclid;
extern crate fnv;
#[allow(unused_extern_crates)]
#[cfg(all(any(target_os = "macos", target_os = "linux"), not(any(target_arch = "arm", target_arch = "aarch64"))))]
extern crate gecko_media;
extern crate gleam;
extern crate half;
#[macro_use] extern crate html5ever;
Expand Down
20 changes: 10 additions & 10 deletions etc/ci/buildbot_steps.yml
Expand Up @@ -75,15 +75,15 @@ mac-nightly:
linux-rel-intermittent:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release
- ./mach build --release
- ./etc/ci/check_intermittents.sh --log-raw intermittents.log

linux-rel-nogate:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release
- ./mach build --release
- python ./etc/ci/chaos_monkey_test.py
- env CC=gcc-5 CXX=g++-5 RUSTFLAGS= bash ./etc/ci/mutation_test.sh
- RUSTFLAGS= bash ./etc/ci/mutation_test.sh

mac-rel-intermittent:
- ./mach clean-nightlies --keep 3 --force
Expand All @@ -96,11 +96,11 @@ linux-dev:
- ./mach clean-cargo-cache --keep 3 --force
- ./mach test-tidy --no-progress --all
- ./mach test-tidy --no-progress --self-test
- env CC=gcc-5 CXX=g++-5 ./mach build --dev
- env CC=gcc-5 CXX=g++-5 ./mach test-unit
- ./mach build --dev
- ./mach test-unit
- ./mach package --dev
- env CC=gcc-5 CXX=g++-5 ./mach build-cef
- env CC=gcc-5 CXX=g++-5 ./mach build --dev --no-default-features --features default-except-unstable
- ./mach build-cef
- ./mach build --dev --no-default-features --features default-except-unstable
- ./mach build-geckolib
- ./mach test-stylo
- bash ./etc/ci/lockfile_changed.sh
Expand All @@ -110,7 +110,7 @@ linux-dev:
linux-rel-wpt:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release --with-debug-assertions
- ./mach build --release --with-debug-assertions
- ./mach test-wpt-failure
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 1 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
Expand All @@ -119,7 +119,7 @@ linux-rel-wpt:
linux-rel-css:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release --with-debug-assertions
- ./mach build --release --with-debug-assertions
- ./mach test-wpt --release --processes 24 --total-chunks 2 --this-chunk 2 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log --always-succeed
- ./mach filter-intermittents wpt-errorsummary.log --log-intermittents intermittents.log --log-filteredsummary filtered-wpt-errorsummary.log --tracker-api default --reporter-api default
- ./mach build-geckolib --release
Expand All @@ -130,7 +130,7 @@ linux-rel-css:
linux-nightly:
- ./mach clean-nightlies --keep 3 --force
- ./mach clean-cargo-cache --keep 3 --force
- env CC=gcc-5 CXX=g++-5 ./mach build --release
- ./mach build --release
- ./mach package --release
- ./mach upload-nightly linux
- ./mach test-perf
Expand Down
4 changes: 0 additions & 4 deletions servo-tidy.toml
Expand Up @@ -38,10 +38,6 @@ num = [
packages = [
"bitflags",
"lazy_static",
"mime",
"semver",
"toml",
"unicase",
"winapi",
]
# Files that are ignored for all tidy and lint checks.
Expand Down
Expand Up @@ -51,27 +51,75 @@
[video/ogg with and without codecs]
expected: FAIL

[audio/mp4 (optional)]
[video/x-new-fictional-format]
expected: FAIL

[audio/ogg (optional)]
[audio/mp4; codecs="mp4a.40.2" (optional)]
expected: FAIL

[audio/wav (optional)]
[audio/mp4 with bogus codec]
expected: FAIL

[audio/webm (optional)]
[audio/ogg; codecs="opus" (optional)]
expected: FAIL

[video/3gpp (optional)]
[audio/ogg; codecs="vorbis" (optional)]
expected: FAIL

[video/mp4 (optional)]
[audio/ogg with bogus codec]
expected: FAIL

[video/ogg (optional)]
[audio/wav; codecs="1" (optional)]
expected: FAIL

[video/webm (optional)]
[audio/wav with bogus codec]
expected: FAIL

[audio/webm with bogus codec]
expected: FAIL

[audio/webm with and without codecs]
expected: FAIL

[video/3gpp with bogus codec]
expected: FAIL

[video/3gpp with and without codecs]
expected: FAIL

[video/mp4; codecs="mp4a.40.2" (optional)]
expected: FAIL

[video/mp4; codecs="avc1.42E01E" (optional)]
expected: FAIL

[video/mp4; codecs="avc1.4D401E" (optional)]
expected: FAIL

[video/mp4; codecs="avc1.58A01E" (optional)]
expected: FAIL

[video/mp4; codecs="avc1.64001E" (optional)]
expected: FAIL

[video/mp4 with bogus codec]
expected: FAIL

[video/ogg; codecs="opus" (optional)]
expected: FAIL

[video/ogg; codecs="vorbis" (optional)]
expected: FAIL

[video/ogg; codecs="theora" (optional)]
expected: FAIL

[video/ogg with bogus codec]
expected: FAIL

[video/webm with bogus codec]
expected: FAIL

[video/webm with and without codecs]
expected: FAIL

0 comments on commit f46fbe4

Please sign in to comment.