summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2023-03-21LibGfx: Move all image loaders and writers to a subdirectoryLucas CHOLLET
2023-03-21Everywhere: Use `LibFileSystem` where trivialCameron Youell
2023-03-20LibWeb: Make [PutForwards] work together with [ImplementedAs]Simon Wanner
2023-03-20Lagom: Add a fuzzer for LZMA decompressionTim Schumacher
2023-03-20Meta: Don't install CA certificates during a on-Serenity buildTim Schumacher
`SERENITYOS` is also set when compiling Lagom on SerenityOS, so we can't just check it and expect `CMAKE_STAGING_PREFIX` to be set. Instead, check `CMAKE_STAGING_PREFIX` directly and use that as an indicator for whether we can install a file there.
2023-03-19CI: Add "set -e" to Azure DevOps scriptsAndrew Kaster
Without setting this explicitly in every script, failing script lines in multiline scripts will not fail the job themselves.
2023-03-19Fuzzers: Use correct type name in FuzzilliJs fuzzerAndrew Kaster
2023-03-19Meta: Specify a working directory for the FLAC spec test on Lagomkleines Filmröllchen
The serenity_test function cannot set this up as it has no purpose on Serenity itself.
2023-03-19Meta: Use extract_tar_path for WASM spec test generationkleines Filmröllchen
2023-03-19Meta: Refactor FLAC spec test extraction with extract_tar_pathkleines Filmröllchen
2023-03-19Meta: Add a tar extraction CMake wrapperkleines Filmröllchen
This is a copy of the zip wrapper adopted for tar archives.
2023-03-19Meta: Use non-VGA VirtIO GPU variants when running on macOSLiav A
It appears that QEMU on macOS doesn't have the VirtIO GPU variants that support VGA functionality. Those variants are not especially important to us, because we don't use any kind of VGA functionality in our kernel anyway. Therefore, for macOS, we could decide to use virtio-gpu-gl-pci and virtio-gpu-pci devices instead.
2023-03-19Meta: Move global VM creation to fuzzer "global" structureTimothy Flynn
Turns out LLVMFuzzerTestOneInput may be called more than once per process.
2023-03-18Fuzzers: Skip trying to parse invalid UTF-8 in LibJS FuzzersAndrew Kaster
Invalid UTF-8 crashes JS::Script::Parse.
2023-03-17Meta: Ensure the main thread VM is created before use in the CSS fuzzerTimothy Flynn
2023-03-17LibJS: Propagate errors from VM creationTimothy Flynn
2023-03-17LibWeb: Give generated constructor functions a nameLuke Wilde
Required by code that brand checks native constructors. For example, Wistia brand checks XMLHttpRequest by doing: ``` XMLHttpRequest.prototype.constructor.toString() ``` It then checks if it matches either one of: ``` function XMLHttpRequest() { [native code] } ``` ``` [object XMLHttpRequestConstructor] ``` If neither matches, it disables HLS playback and prints: "The XMLHttpRequest constructor has been tampered with. Because this affects CORS/Range XHR requests, HLS playback has been disabled. To enable HLS playback and other important features, please remove code that changes the definition of window.XMLHttpRequest." We hit this path due to not giving generated constructors a name, as we would provide `function () { [native code] }`.
2023-03-17LibGfx/OpenType: Add some initial support for GPOS glyph positioningAndreas Kling
This patch parses enough of GPOS tables to be able to support the kerning information embedded in Inter. Since that specific font only applies positioning offsets to the first glyph in each pair, I was able to get away with not changing our API. Once we start adding support for more sophisticated positioning, we'll need to be able to communicate more than a simple "kerning offset" to the clients of this code.
2023-03-16LibWeb: Add a custom extended attribute for namespace-level GC visitorsTimothy Flynn
Currently, the WebAssemblyObject implements a visitor to keep its static objects alive. This custom attribute will be used to hook the generated namespace object's visitor to one that we define in non-generated code.
2023-03-16LibWeb: More fully implement the LegacyNamespace IDL extended attributeTimothy Flynn
Interfaces with a LegacyNamespace extended attribute should have their constructors defined on the namespace identified by the LegacyNamespace attribute value.
2023-03-16LibWeb: Add LibJS includes to generated IDL namespace filesTimothy Flynn
These will be needed by any namespace having a BufferSource parameter, such as WebAssembly. Similar to 49e6cb7c3d62eeeddf63c5db931038f1aeb58d53.
2023-03-16Meta: Download cacert.pem at build timeFabian Dellwing
2023-03-16LibWeb: Port WebAssembly.Table to IDLTimothy Flynn
2023-03-16LibWeb: Port WebAssembly.Memory to IDLTimothy Flynn
2023-03-16LibWeb: Port WebAssembly.Instance to IDLTimothy Flynn
2023-03-16LibWeb: Port WebAssembly.Module to IDLTimothy Flynn
2023-03-16LibWeb: Define WebAssembly namespace and import it in web bindingsTimothy Flynn
This will contain concrete definitions of WebAssembly objects used by generated WebAssembly IDL.
2023-03-16LibIDL+LibWeb: Begin supporting the LegacyNamespace extended attributeTimothy Flynn
This is used by WebAssembly IDL files. For now, we mostly use this for error messages and cache keys (to ensure compatibility with existing code as WebAssembly is ported to IDL).
2023-03-16LibWeb: Add crude support for dereferencing JavaScript built-ins in IDLTimothy Flynn
This works similarly to the is_platform_object() helper, in that we do not know that a type like ArrayBuffer needs to be qualified with JS::.
2023-03-16LibWeb: Support generating optional object IDL parametersTimothy Flynn
These are used by WebAssembly IDL.
2023-03-16LibWeb: Add LibJS includes to generated IDL constructor filesTimothy Flynn
These will be needed by any constructor having a BufferSource parameter, such as WebAssembly.Module.
2023-03-15CI: Bump Android NDK version used in CI to 25.2.9519653Andrew Kaster
The previous version is no longer able to compile Lagom Clang version 14.0.1 in NDK 24.0.8215888 crashes trying to build Core::Process
2023-03-15LibUnicode: Remove now-unused dir-iterator helper functionsSam Atkins
2023-03-15LibLocale: Migrate code generators to Directory::for_each_entry()Sam Atkins
2023-03-15LibUnicode: Migrate GenerateEmojiData to Directory::for_each_entry()Sam Atkins
2023-03-15LibUnicode: Read emoji file title from LexicalPath directlySam Atkins
... rather than taking the whole file name, and then manually trimming the extension off.
2023-03-15LibWeb: Support generating IDL namespacesTimothy Flynn
These are similar to prototypes and constructors in that they will now be lazily instantiated when they are first requested.
2023-03-15Lagom: Remove debug line in LibJSGCVerifierMatthew Olsson
2023-03-15LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtrMatthew Olsson
2023-03-14AK: Rename CaseInsensitiveStringViewTraits to reflect intentgustrb
Now it is called `CaseInsensitiveASCIIStringViewTraits`, so we can be more specific about what data structure does it operate onto. ;)
2023-03-14LibWeb: Implement the [PutForwards] IDL extended attributeTimothy Flynn
For example, consider the attribute: interface Element { [PutForwards=value] readonly attribute DOMTokenList classList; } When `classList` is set, we should instead set the attribute `value` on the `classList` attribute of the Element interface.
2023-03-14LibWeb: Prevent variadic arguments from reserving heaps of memoryTimothy Flynn
Don't try to reserve capacity for a variadic arguments list unless we actually have enough arguments to fill it with anything. Otherwise we may overflow to an extremely large size if, e.g., the argument count is 0 and the start of the variadic arguments is index 1.
2023-03-14LibWeb: Begin adding support for Function IDL types in unionsTimothy Flynn
For example, setTimeout/setInterval use a TimerHandler, which is a union of (DOMString or Function).
2023-03-14LibWeb: Support variadic "any..." parameters in IDLTimothy Flynn
For example, this is used by setTimeout/setInterval.
2023-03-13file: Read more metadata from audio fileskleines Filmröllchen
We can always read the basic format information (sample rate, bit depth, etc.), but we will also print artist, album, and title if available in the metadata.
2023-03-13Meta+Documentation: Allow cross-debugging x86_64 Serenity on M1 MacsDaniel Bertalan
While there is no native GDB on Apple Silicon, a cross-debugger that supports x86-64 does exist.
2023-03-13CodeGenerators: Ensure that we always print the entire generated outputTim Schumacher
2023-03-13AK: Rename Stream::read_entire_buffer to Stream::read_until_filledTim Schumacher
No functional changes.
2023-03-13AK: Rename Stream::{read,write} to Stream::{read_some,write_some}Tim Schumacher
Similar to POSIX read, the basic read and write functions of AK::Stream do not have a lower limit of how much data they read or write (apart from "none at all"). Rename the functions to "read some [data]" and "write some [data]" (with "data" being omitted, since everything here is reading and writing data) to make them sufficiently distinct from the functions that ensure to use the entire buffer (which should be the go-to function for most usages). No functional changes, just a lot of new FIXMEs.
2023-03-13LibAudio: Move audio stream buffering into the loaderkleines Filmröllchen
Before, some loader plugins implemented their own buffering (FLAC&MP3), some didn't require any (WAV), and some didn't buffer at all (QOA). This meant that in practice, while you could load arbitrary amounts of samples from some loader plugins, you couldn't do that with some others. Also, it was ill-defined how many samples you would actually get back from a get_more_samples call. This commit fixes that by introducing a layer of abstraction between the loader and its plugins (because that's the whole point of having the extra class!). The plugins now only implement a load_chunks() function, which is much simpler to implement and allows plugins to play fast and loose with what they actually return. Basically, they can return many chunks of samples, where one chunk is simply a convenient block of samples to load. In fact, some loaders such as FLAC and QOA have separate internal functions for loading exactly one chunk. The loaders *should* load as many chunks as necessary for the sample count to be reached or surpassed (the latter simplifies loading loops in the implementations, since you don't need to know how large your next chunk is going to be; a problem for e.g. FLAC). If a plugin has no problems returning data of arbitrary size (currently WAV), it can return a single chunk that exactly (or roughly) matches the requested sample count. If a plugin is at the stream end, it can also return less samples than was requested! The loader can handle all of these cases and may call into load_chunk multiple times. If the plugin returns an empty chunk list (or only empty chunks; again, they can play fast and loose), the loader takes that as a stream end signal. Otherwise, the loader will always return exactly as many samples as the user requested. Buffering is handled by the loader, allowing any underlying plugin to deal with any weird sample count requirement the user throws at it (looking at you, SoundPlayer!). This (not accidentally!) makes QOA work in SoundPlayer.