summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2022-10-31LibWeb: Handle currently ignored `WebIDL::ExceptionOr<T>`sLinus Groh
2022-10-31Lagom: Update GCC version check in CMakeLists.txtLinus Groh
This was forgotten in bc2ebcadc0eb695605051c9d362c3f5dc184c63c.
2022-10-31LibVideo: Add PlaybackManager to load and decode videosZaggy1024
This file will be the basis for abstracting away the out-of-thread or later out-of-process decoding from applications displaying videos. For now, the demuxer is hardcoded to be MatroskaParser, since that is all we support so far. The demuxer should later be selected based on the file header. The playback and decoding are currently all done on one thread using timers. The design of the code is such that adding threading should be trivial, at least based on an earlier version of the code. For now, though, it's better that this runs in one thread, as the multithreaded approach causes the Video Player to lock up permanently after a few frames are decoded.
2022-10-31LibVideo: Add VideoFrame class for decoded video framesZaggy1024
The class is virtual and has one subclass, SubsampledYUVFrame, which is used by the VP9 decoder to return a single frame. The output_to_bitmap(Bitmap&) function can be used to set pixels on an existing bitmap of the correct size to the RGB values that should be displayed. The to_bitmap() function will allocate a new bitmap and fill it using output_to_bitmap. This new class also implements bilinear scaling of the subsampled U and V planes so that subsampled videos' colors will appear smoother.
2022-10-30AK+Meta: Add WEB_FETCH_DEBUG macroLinus Groh
2022-10-27Meta: Convert build directory path to be completely absoluteJan200101
2022-10-27Meta: Replace Bash script for generating emoji.txt with C++ generatorTimothy Flynn
We currently have two build-time parsers for the UCD's emoji-test.txt file. To prepare for future changes, this removes the Bash parser and moves its functionality to the newer C++ parser.
2022-10-27Meta: Allow specifying additional dependencies with invoke_generatorTimothy Flynn
2022-10-26Meta: Disallow emoji images with invalid code points in their file nameTimothy Flynn
2022-10-25Everywhere: Require version >= 12 for GCC host compilerLinus Groh
So far we've gotten away with using GCC 11 for Lagom and to compile the toolchain, but via #15795 we discovered a compiler bug that has been fixed in the latest version but would error the build with CI's GCC 11. Time for an upgrade :^) We already use ubuntu-22.04 images in most places, so this is pretty straightforward. The only exception is Idan's self-hosted runner, which uses Ubuntu Focal. LibJS should build fine with GCC 11, still.
2022-10-25LibLocale+LibJS: Update to CLDR version 42.0.0Timothy Flynn
There were some notable changes to the CLDR JSON format and data in this release. The patterns for a date at a specific time, i.e. "{date} at {time}", now appear under the "atTime" attribute of the "dateTimeFormats" object. Locale specific changes that affected test-js: All locales: * In many patterns, the code points U+00A0 (NO-BREAK SPACE) and U+202F (NARROW NO-BREAK SPACE) are now used in place of an ASCII space. For example, before the "dayPeriod" fields AM and PM. * Separators such as U+2013 (EN DASH) are now surrounded by U+2009 (THIN SPACE) in place of an ASCII space character. Locale "en": * Narrow localizations of time formats are even more narrow. For example, the abbreviation "wk." for "week" is now just "wk". Locale "ar": * The code point U+060C (ARABIC COMMA) is now used in place of an ASCII comma. * The code point U+200F (RIGHT-TO-LEFT MARK) now appears at the beginning of many localizations. * When the "latn" numbering system is used for currency formatting, the currency symbol more consistently is placed at the end of the pattern. Locale "he": * The "many" plural rules category has been removed. Locales "zh" and "es-419": * Several display-name localizations were changed.
2022-10-24AK+Everywhere: Turn bool keep_empty to an enum in split* functionsdemostanis
2022-10-24Meta: Default to the SDL QEMU frontend on SerenityOSTim Schumacher
We don't yet have anything else than SDL, and certainly not GTK.
2022-10-24Meta: Also set CC/CXX when selecting the host toolchainTim Schumacher
This ensures that the toolchain building scripts will use the host toolchain that has been found manually, and that they won't fall back to `cc` (which in the worst case may not even be installed).
2022-10-24Lagom: Link the system's LibSystem on SerenityOSTim Schumacher
2022-10-22Meta: Detect Homebrew clang-formatDaniel Bertalan
Homebrew does not add upstream LLVM's install location to $PATH so as not to conflict with XCode tools, so we need to run `brew --prefix llvm` to figure out its install path.
2022-10-20LibWeb: Remove dbgln FIXME spam from BindingsGeneratorLinus Groh
2022-10-20LibWeb: Revert support for DOM::Document in XHR::send()Kenneth Myhra
This is a manual revert of commit: 7831e62 Let's revert this until we got nested union support in our IDL generator/parser.
2022-10-20LibWeb: Teach IDL generator to go from WindowProxy to EventTargetAndreas Kling
This case requires some special handling, since there's no direct C++ inheritance relationship between HTML::WindowProxy and DOM::EventTarget.
2022-10-20LibWeb: Prevent GC from running during intrinsics allocationAndreas Kling
Due to the way we lazily construct prototypes and constructors for web platform interfaces, it's possible for nested GC allocation to occur while GC objects have been allocated but not fully constructed. If the garbage collector ends up running in this state, it may attempt to call JS::Cell::visit_edges() on an object whose vtable pointer hasn't been set up yet. This patch works around the issue by deferring GC while intrinsics are being brought up. Furthermore, we also create a dummy global object for the internal realm, and populate it with intrinsics. This works around the same issue happening when allocating something (like the default UA stylesheets) in the internal realm. These solutions are pretty hacky and sad, so I've left FIXMEs about finding a nicer way.
2022-10-18LibTimeZone+LibJS: Update to TZDB version 2022eTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2022-October/000074.html This version changes America/Chicago's transtion from LMT to CST from 1883 Nov 18 12:09:24 to 1883 Nov 18 18:00.
2022-10-17Lagom: Enable compile_commands.json for the lagom build directoryAndrew Kaster
This allows a developer who only wants to look at Lagom to have their IDE find source files and headers properly.
2022-10-17Lagom+CMake: Propagate dependencies for generated custom targetsAndrew Kaster
We have logic for serenity_generated_sources which works well for source files that are specified in GENERATED_SOURCES prior to calling serenity_lib or serenity_bin. However, code generated with invoke_generator, and the LibWeb generators do not always follow the pattern of the IDL and GML files. For the LibWeb generators, we can just add_dependencies to LibWeb at the time we declare the generate_Foo custom target. However for LibLocale, LibTimeZone, and LibUnicode, we don't have the name of the target available, so export the name in a variable to set into GENERATED_SOURCES. To make this work for Lagom, we need to make sure that lagom_lib and serenity_bin in Lagom/CMakeLists.txt call serenity_generated_sources on the target. This enables the Xcode generator on macOS hosts, at least for Lagom.
2022-10-17Lagom: Make lagom_lib take names prefixed with LibAndrew Kaster
This matches serenity_lib, and consolidates the logic to strip Lib from the front of the library name for the Lagom export name into one place at the top of lagom_lib.
2022-10-16Meta: Start moving common shell definitions into a common fileTim Schumacher
2022-10-16Meta: Allow shellcheck to search sourced files in the script directoryTim Schumacher
2022-10-16Meta: Define `SUDO` for all the image building scriptsTim Schumacher
Back when adding support for `pls` as a `sudo` replacement, `build-image-qemu` dynamically set the `SUDO` variable depending on what system it was running on and used the contents of that variable to call the correct elevation utility. During recent changes to the elevation error message, that usage of the variable was replicated across all of our scripts, but without also replicating the logic to set that variable in the first place. Add back the variable setting logic to all the other scripts to keep them from running into unset variables.
2022-10-16Meta: Remove unused "prefix" variable from invoke_generator() helperTimothy Flynn
This became unused after 1ae0cfd.
2022-10-16Meta: Print error if cmake does not existdemostanis
2022-10-16Fuzzers: Add fuzzer for the Tar parserIdan Horowitz
2022-10-16Lagom: Remove unecessary _lagom suffix from test and executable namesAndrew Kaster
We needed this back when we included Lagom into the main serenity build, but it has been unecessary since the superbuild.
2022-10-16CMake+Userland: Use CMakeLists from Userland to build Lagom LibrariesAndrew Kaster
Also do this for Shell. This greatly simplifies the CMakeLists in Lagom, replacing many glob patterns with a big list of libraries. There are still a few special libraries that need some help to conform to the pattern, like LibELF and LibWebView. It also lets us remove essentially all of the Serenity or Lagom binary directory detection logic from code generators, as now both projects directories enter the generator logic from the same place.
2022-10-16Meta: Use add_serenity_directory for LibTimeZoneAndrew Kaster
This lets us eliminate the "meta prefix" for the LibTimeZone generators.
2022-10-16Lagom+LibCore: Build LibCore, AK, and LibMain with add_subdirectoryAndrew Kaster
By deferring to the CMakeLists in each of these libraries' directories, we can get rid of a lot of curious GLOB patterns and list removals in the Lagom CMakeLists.
2022-10-16LibWeb: Add support for DOM::Document to XHR::send()Kenneth Myhra
This patch adds support for posting a DOM::Document using XHR::send().
2022-10-15Meta: Properly ignore targets which don't have a component nameGunnar Beutner
Previously we'd add [component_name-NOTFOUND] sections to the components.ini file for targets which weren't part of a component.
2022-10-14Kernel: Add support for the FAT32 filesystemUndefine
This commit adds read-only support for the FAT32 filesystem. It also includes support for long file names.
2022-10-15Meta: Don't tell to run script as root when that's not the actual errordemostanis
Before, and that was the cause of many confusion in #build-problems on Discord, the Meta/build-image-*.sh scripts would error out with the message "this script needs to run as root" while the actual error was unrelated.
2022-10-14LibAudio: Factorize stream initialisation to base class `LoaderPlugin`Lucas CHOLLET
All actual plugins follow the same logic to initialize their stream, this commit factorizes all of this to their base class: `LoaderPlugin`.
2022-10-14Meta: Get rid of /res/version.inikleines Filmröllchen
There are no more users of this legacy version API. :yakgone:
2022-10-14Escalator: Add new method to privilege escalate within GUIne0ndrag0n
2022-10-13Fuzzers: Add VP9Decoder and MatroskaReader fuzzers for LibVideoAndrew Kaster
2022-10-12WebDriver: Add new WebDriver serviceSam Atkins
WebDriver aims to implement the WebDriver specification found at https://w3c.github.io/webdriver/webdriver-spec.html . It's an HTTP server that can create Browser sessions and control them. Co-authored-by: Florent Castelli <florent.castelli@gmail.com>
2022-10-10Userland: Remove unecessary uses of __serenity__ macroAndrew Kaster
2022-10-10LibRegex: Don't build LibRegex/C/Regex.cpp on LagomAndrew Kaster
This file implements the POSIX APIs from <regex.h>, and is not suitable for inclusion in a Lagom build. If we do include it, it will override the host's regex functions and wreak havoc if it's resolved before the host's implementation.
2022-10-09LibVideo: Add LibVideo test to LagomZaggy1024
2022-10-09LibWeb: Re-implement HTML::Navigator using IDLAndrew Kaster
Get rid of the bespoke NavigatorObject class and use the modern IDL strategies for creating platform objects to re-implement Navigator and its associcated mixin interfaces. While we're here, implement it in a way that brings WorkerNavigator up to spec :^)
2022-10-09LibWeb: Add new code generator for creating exposed interface helpersAndrew Kaster
This new code generator takes all the .idl files in LibWeb, looks for each top level interface in there with an [Exposed=Foo] attribute, and adds code to add the constructor and prototype for each of those exposed interfaces to the realm of the relevant global object we're initialzing. It will soon replace WindowObjectHelper as the way that web interfaces are added to the Window object, and will be used in the future for creating proper WorkerGlobalScope objects for dedicated and shared workers.
2022-10-09LibIDL: Remove static maps for interfaces and resolved importsAndrew Kaster
Instead, create a tree of Parsers all pointing to a top-level Parser. All module imports and interfaces are stored at the top level, instead of in a static map. This allows creating multiple IDL::Parsers in the same process without them stepping on each others toes.
2022-10-07LibUnicode: Remove GCC codegen workaroundTimothy Flynn
Reverts commits: ffbf5596cd8e2d0e44451034b2e508d06df4c77b f190e394b3ba227028baed06ab5c89f1b193e0f4