servo/etc
Martin Robinson bce7622cde
Switch to rustls and webpki-roots (#30025)
This change replaces OpenSSL with rustls and also the manually curated
CA certs file with webpki-roots (effectively the same thing, but as a
crate).

Generally speaking the design of the network stack is the same. Changes:

- Code around certificate overrides needed to be refactored to work with
  rustls so the various thread-safe list of certificates is refactored
  into `CertificateErrorOverrideManager`
- hyper-rustls takes care of setting ALPN protocols for HTTP requests,
  so for WebSockets this is moved to the WebSocket code.
- The safe set of cypher suites is chosen, which seem to correspond to
  the "Modern" configuration from [1]. This can be adjusted later.
- Instead of passing a string of PEM CA certificates around, an enum is
  used that includes parsed Certificates (or the default which reads
  them from webpki-roots).
- Code for starting up an SSL server for testing is cleaned up a little,
  due to the fact that the certificates need to be overriden explicitly
  now. This is due to the fact that the `webpki` crate is more stringent
  with self-signed certificates than SSL (CA certificates cannot used as
  end-entity certificates). [2]

1. https://wiki.mozilla.org/Security/Server_Side_TLS
2. https://github.com/briansmith/webpki/issues/114

Fixes #7888.
Fixes #13749.
Fixes #26835.
Fixes #29291.
2023-08-08 14:00:10 +00:00
..
ci Make "@bors-servo try" a GitHub Action (#30014) 2023-07-24 15:15:33 +00:00
doc.servo.org Update MPL license to https (part 1) 2018-11-19 14:46:43 +01:00
layout_viewer [Layout 2020] Adapt layout viewer to new box and fragment tree structs 2020-05-19 09:31:24 +02:00
crates-graph.py Add a minimal alternative to cargo graph 2020-04-21 10:54:21 +02:00
install_macos_gstreamer.sh Consume official GStreamer binaries on MacOS 2023-05-12 00:14:38 +05:30
jsdefine Use #!/usr/bin/env bash in shell scripts for NixOS compatibility 2021-06-14 22:06:09 +09:00
memory_chart.html Add tool to chart memory usage from reports. 2018-03-08 22:46:42 -05:00
memory_reports_over_time.py Port some code to Python3 2021-02-18 09:35:46 -05:00
patch-trace-template.py profile: Integrate the time profiler with the macOS signpost 2016-10-01 00:12:49 -07:00
profilicate.py Add a sampling profiler and a script to generate profiles for use with Gecko tooling. 2019-03-26 16:35:08 -04:00
run_in_headless_android_emulator.py com.mozilla to org.mozilla 2018-10-02 08:09:35 +02:00
servo.sb Cargoify servo 2014-09-08 20:21:42 -06:00
servo_automation_screenshot.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
servo_gdb.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
shell.nix Update shell.nix 2023-04-09 23:35:17 +03:00
start_servo.py Update getopts 2018-08-24 17:49:58 +02:00
valgrind-memcheck.supp Add a valgrind suppression file. 2015-12-17 10:36:03 -06:00
wpt-summarize.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
wpt-timing.py Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
wpt_result_analyzer.py Update scripts to reflect new WPT directory name 2023-06-26 10:48:02 +02:00