This reverts #16680. Calling `process::abort` from the crash handler causes the crash handler to be invoked again recursively.
---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix#16898
Source-Repo: https://github.com/servo/servo
Source-Revision: 1312ab2b284c1a988c5029e1ec28ee9f3ea5e912
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : 742d1055f4b540cca19040f50941f133a6bf094d
This removes some unsafe/unstable code and replaces it with a new safe/stable alternative.
Note that `process::abort` is not identical to `intrinsics::abort`, since it runs global cleanups to do things like flush stderr (though neither function performs stack unwinding). I don't *think* the difference matters for our use cases.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because they should not change functionality
Source-Repo: https://github.com/servo/servo
Source-Revision: 52920ed645b95a7e2ad1bb055c02f566b0943be6
--HG--
extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear
extra : subtree_revision : bc702546691568b8f23e68257836a3bb7dad88b5
this is called from src/gpu/gl/unix/SkNativeGLContext_unix.cpp which
is not something that is used in servo
ref #8883
Source-Repo: https://github.com/servo/servo
Source-Revision: f5eec35cb47722f35cb1412eab2c096bb22fd6cc
This replaces hand-implemented CEF bindings with proper Rust wrappers
automatically generated from the C++ headers. This means that, whenever
CEF's C++ headers change, we can easily generate both the appropriate C
API and the appropriate Rust API. It eliminates much of the hand-written
unsafe code within the CEF port, because the CEF translator tool now
knows how to generate Rust smart pointer wrappers for each class that
corrently perform reference counting.
Additionally, this commit adds utility macros (located in `macros.rs`)
that make it easier to correctly expose Rust objects as CEF objects.
They handle the marshaling of objects between Rust and CEF properly.
The net result of this is that you can write mostly-natural-looking Rust
in the CEF port and interact with it with a natural-looking C++ API on
the embedding side.
This setup relies on the branch of CEF located here:
https://github.com/pcwalton/chromium-embedded-framework
To regenerate, follow the instructions in `ports/cef/README.md`. For
convenience, and because I don't anticipate the API to change much, I
have vendored in all of the appropriate interfaces.
r? @zmike or @larsbergstrom
Source-Repo: https://github.com/servo/servo
Source-Revision: 02c2f53ccd8b75ff0b87edfce4f2f9315a6417bd