servo/components/script
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
..
docs Update doc links and code snippet for trace implementation 2020-05-03 19:03:33 +05:30
dom Switch to rustls and webpki-roots (#30025) 2023-08-08 14:00:10 +00:00
layout_dom Implement :valid :invalid pseudo classes (#26729) 2023-07-21 10:42:03 +00:00
task_source No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
animation_timeline.rs Move most animation processing to script 2020-05-12 10:22:14 +02:00
animations.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
body.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
build.rs Port some code to Python3 2021-02-18 09:35:46 -05:00
canvas_state.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
Cargo.toml No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
clipboard_provider.rs
devtools.rs Make GlobalScope.get_cx a static method. 2023-05-20 11:05:09 -04:00
document_loader.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
euclidext.rs Update euclid 2020-04-07 08:51:08 -07:00
fetch.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
image_listener.rs Refactor ImageCache::find_image_or_metadata API. 2020-04-17 11:58:18 -04:00
init.rs Added is_platform_object_static check to is_dom_object 2020-11-26 18:40:41 -05:00
layout_image.rs Make url for "client" referrer mandatory 2020-06-17 19:07:14 +02:00
lib.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
mem.rs
microtask.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
network_listener.rs
realms.rs Remove unused argument from AlreadyInRealm::assert. 2023-05-20 11:05:09 -04:00
script_module.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
script_runtime.rs Fix race condition and other issues related to Worker destruction. (#30066) 2023-08-03 23:33:21 +00:00
script_thread.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
serviceworker_manager.rs feat: shorten thread names 2021-07-19 00:57:48 +09:00
stylesheet_loader.rs Avoid assert failure when using @import 2023-06-14 15:58:00 +02:00
stylesheet_set.rs
task.rs ensure clean shutdown of all threads running JS 2020-06-30 13:22:38 +08:00
task_manager.rs ensure clean shutdown of all threads running JS 2020-06-30 13:22:38 +08:00
task_queue.rs
test.rs
textinput.rs Form constraints validation 2020-04-02 10:16:46 +02:00
timers.rs No tracing of nop traceable fields (#29926) 2023-08-04 10:17:43 +00:00
unpremultiplytable.rs
webdriver_handlers.rs Support arbitrary protos when wrapping DOM objects with constructors. 2023-05-28 23:23:12 -04:00
window_named_properties.rs add spec issue as todo in [[OwnPropertyKeys]] trap 2023-03-23 19:15:20 +08:00