summaryrefslogtreecommitdiff
path: root/Meta
AgeCommit message (Collapse)Author
2022-03-26Meta: Add range checking to all numeric CSS typesSam Atkins
We did already have range checking for the `<integer>` and `<number>` types, but this patch adds this functionality to all numeric types (dimensions and percentages). The syntax in Properties.json is taken from the spec: https://www.w3.org/TR/css-values-3/#numeric-ranges eg, `length [0,∞]` defines that a Length is allowed as long as it has a positive value. The implementation here allows for any number to be the positive or negative limit, even though only 0 and positive/negative infinity are meaningful values without a unit.
2022-03-25LibWeb: Mark CSS properties as not affecting stacking context by defaultAndreas Kling
We were mistakenly treating all CSS properties as if changing them requires a rebuild of the stacking context tree.
2022-03-24Meta: Remove obsolete HeaderCheck .gitignoreTim Schumacher
This appears to be a remnant from the earlier HeaderCheck revisions, where CMakeLists.txt was automatically generated. Now that a (static) copy of CMakeLists.txt is checked in, this file doesn't have any effect anymore.
2022-03-24Meta: Disable KASLR when debugging the kernel with GDBIdan Horowitz
This lets GDB resolve the kernel symbols correctly.
2022-03-24LibWeb: Rename PARSER_DEBUG => HTML_PARSER_DEBUGIdan Horowitz
Since this macro was created we gained a couple more parsers in the system :^)
2022-03-24CMake: Add serenity_lib_staticLenny Maiorani
2022-03-22LibWeb: Support IDL default values of "null" for optional argumentsTimothy Flynn
This is a bit strange in the IDL syntax, but e.g., in HTMLSelectElement, we have (simplified): undefined add(optional (HTMLElement or long)? before = null) This could instead become: undefined add(optional (HTMLElement or long) before) This change generates code for the former as if it were the latter.
2022-03-21LibWeb: Begin implementing SVGRectElement's SVGAnimatedLength attributesTimothy Flynn
2022-03-21LibWeb: Support generating IDL float typesTimothy Flynn
The float type is used quite a bit in the SVG spec.
2022-03-21LibWeb: Only invalidate stacking context tree for opacity/z-index changeAndreas Kling
I came across some websites that change an elements CSS "opacity" in their :hover selectors. That caused us to relayout on hover, which we'd like to avoid. With this patch, we now check if a property only affects the stacking context tree, and if nothing layout-affecting has changed, we only invalidate the stacking context tree, causing it to be rebuilt on next paint or hit test. This makes :hover { opacity: ... } rules much faster. :^)
2022-03-20Meta: Always disable kvm on aarch64 hosts for nowNico Weber
run.sh builds i686 by default, and the aarch64 port of serenity isn't very far along yet. Without this change, `run.sh` without arguments unceremoniously fails with: [0/1] cd .../serenity/Build/i686 && /usr... ENITY_ARCH=i686 /home/thakis/src/serenity/Meta/run.sh qemu-system-i386: invalid accelerator kvm That's because /dev/kvm exists, but that's no good on a non-intel host.
2022-03-20Lagom: Build with -fsigned-charNico Weber
When building on an arm host system, char defaults to unsigned, leading to errors such as: serenity/AK/StringBuilder.cpp:198:20: error: comparison is always true due to limited range of data type [-Werror=type-limits] 198 | if (ch >= 0 && ch <= 0x1f) | Building with -fsigned-char makes things work like on Intel, and it's what we already do in Kernel/CMakeLists.txt for the same reasons.
2022-03-20Everywhere: Move commonmark.spec.json to /home/anon/TestsBrian Gianforcaro
2022-03-20Everywhere: Move tests to /home/anon/TestsBrian Gianforcaro
2022-03-20Everywhere: Move js/web/wasm tests under /home/anon/TestsBrian Gianforcaro
2022-03-20Everywhere: Move cpp-tests under /home/anon/TestsBrian Gianforcaro
2022-03-20Meta: Skip wasm tests whose modules cannot be loadedAli Mohammad Pur
Also add support for a few more assertion types to go along with it.
2022-03-19Meta: Error out on find_program errors with CMake less than 3.18Brian Gianforcaro
We have seen some cases where the build fails for folks, and they are missing unzip/tar/gzip etc. We can catch some of these in CMake itself, so lets make sure to handle that uniformly across the build system. The REQUIRED flag to `find_program` was only added on in CMake 3.18 and above, so we can't rely on that to actually halt the program execution.
2022-03-19CMake: Modify include path when building from Hack StudioItamar
With regular builds, the generated IPC headers exist inside the Build directory. The path Userland/Services under the build directory is added to the include path. For in-system builds the IPC headers are installed at /usr/include/. To support this, we add /usr/include/Userland/Services to the build path when building from Hack Studio. Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-03-19CMake: Install generated IPC headers under /usr/include in compile_ipc()Itamar
Generated IPC headers are now installed under /usr/include in the system's filesystem image.
2022-03-19LibWeb: Handle nullish this_value when creating idl functionsstelar7
2022-03-18Everywhere: Deduplicate day/month name constantsLenny Maiorani
Day and month name constants are defined in numerous places. This pulls them together into a single place and eliminates the duplication. It also ensures they are `constexpr`.
2022-03-17LibTimeZone: Update to TZDB version 2022aTimothy Flynn
https://mm.icann.org/pipermail/tz-announce/2022-March/000070.html
2022-03-16LibWeb: Annotate which CSS properties may affect layoutAndreas Kling
This patch adds CSS::property_affects_layout(PropertyID) which tells us whether a CSS property would affect layout if it were changed. This will be used to avoid unnecessary relayout work when something changes that really only requires us to repaint the page. To mark a property as not affecting layout, set "affects-layout" to false in the corresponding Properties.json entry. Note that all properties affect layout by default.
2022-03-16Meta: Enable all wasm extensions when building test suiteAli Mohammad Pur
...and let LibWasm do the validation instead of removing the test when a module is invalid. Also, one of the tests has an integer literal starting with zero, so account for this to make it not fail :^)
2022-03-16Meta: Use the ImplementedAs value in the attribute settersin-ack
Co-Authored-By: Luke Wilde <lukew@serenityos.org>
2022-03-14Meta: Add copy-src to commands in ZSH autocomplete scriptLinus Groh
2022-03-14Meta: Add aarch64 to targets in ZSH autocomplete scriptLinus Groh
2022-03-13LibWeb: Make CSS::property_initial_value() use an Array internallyAndreas Kling
Since we want to store an initial value for every CSS::PropertyID, it's pretty silly to use a HashMap when we can use an Array. This takes the function from ~2.8% when mousing around on GitHub all the way down to ~0.6%. :^)
2022-03-12Kernel: Move aarch64 Prekernel into KernelJakub V. Flasar
As there is no need for a Prekernel on aarch64, the Prekernel code was moved into Kernel itself. The functionality remains the same. SERENITY_KERNEL_AND_INITRD in run.sh specifies a kernel and an inital ramdisk to be used by the emulator. This is needed because aarch64 does not need a Prekernel and the other ones do.
2022-03-10Meta: Port Generate_CSS_PropertyID_cpp to LibMain/Core::StreamSam Atkins
2022-03-10Meta: Port Generate_CSS_PropertyID_h to LibMain/Core::StreamSam Atkins
2022-03-10Meta: Port Generate_CSS_ValueID_cpp to LibMain/Core::StreamSam Atkins
2022-03-10Meta: Port Generate_CSS_ValueID_h to LibMain/Core::StreamSam Atkins
2022-03-09Meta: Generate functions for validating media-query valuesSam Atkins
These work differently from how we validate StyleValues. There, we parse a StyleValue from the CSS, and then see if it is allowed in the property. That causes problems when the syntax is ambiguous - for example, `0` can be a number or a Length. Here instead, we ask what kinds of value are allowed for a media-feature, and then only attempt to parse those kinds of value. This makes the ambiguity problem go away. :^) Each media-feature in the spec only accepts one type of value, and/or some identifiers. This makes the switch statements for the type a bit excessive, but the spec does not *require* that only one type is allowed, so this is more future-proof.
2022-03-09LibWeb+Meta: Stop discrete media-features from parsing as rangesSam Atkins
Only "range" type media-features are allowed to appear in range syntax, or have a `min-/max-` prefix.
2022-03-09Meta: Generate CSS::MediaFeatureID enumSam Atkins
This works largely the same as the PropertyID and ValueID generators, but using LibMain, Core::Stream, and TRY(). Rather than have a MediaFeatureID::Invalid, I decided to return an Optional. We'll see if that turns out better or not. :^)
2022-03-09Meta: Move title/camel_casify() functions into their own fileSam Atkins
These were duplicated among the CSS generators.
2022-03-09LibWeb: Add basic support for DOM's NodeIterator and NodeFilterAndreas Kling
This patch adds NodeIterator (created via Document.createNodeIterator()) which allows you to iterate through all the nodes in a subtree while filtering with a provided NodeFilter callback along the way. This first cut implements the full API, but does not yet handle nodes being removed from the document while referenced by the iterator. That will be done in a subsequent patch.
2022-03-09Meta: Add SERENITY_GL environment variable to run.shSahan Fernando
2022-03-08Base+Meta: Make /usr/local read-writeDaniel Bertalan
This directory has to be writable if we want to install ports that have been built inside Serenity. It's owned by root anyway, so having it be read-only does not provide many security benefits.
2022-03-08Meta: Fix that the processor count was output to stderr and ignoreddavidot
Because of ninja's default behavior of using all processors this gave the correct behaviour because MAKEJOBS was empty. However this meant that the processor count was printed to stderr when building.
2022-03-08Meta: Read MAKEJOBS to limit jobs for ninja in serenity.shdavidot
The default behavior of using all cores will still apply if no MAKEJOBS variable is supplied.
2022-03-08LibWeb: Move Window from DOM directory & namespace to HTMLLinus Groh
The Window object is part of the HTML spec. :^) https://html.spec.whatwg.org/multipage/window-object.html
2022-03-07LibPDF: Propagate errors in Parser and DocumentMatthew Olsson
2022-03-05LibWeb: Add a very basic and ad-hoc version of IDL overload resolutionIdan Horowitz
This initial version lays down the basic foundation of IDL overload resolution, but much of it will have to be replaced with the actual IDL overload resolution algorithms once we start implementing more complex IDL overloading scenarios.
2022-03-04LibWeb: Hide some debug logging behind CANVAS_RENDERING_CONTEXT_2D_DEBUGLinus Groh
This can be quite noisy and isn't generally useful information.
2022-03-03Meta: Add "SerenityOS" to the QEMU window titleJelle Raaijmakers
Just a small quality of life improvement :^)
2022-03-02Meta: Add option to run SerenityOS on a QEMU MicroVM machineLiav A
The microvm machine type is a modern tool for kernel and firmware developers to test their software against features like FDTs, second IOAPIC, lack of legacy devices by default, the ability of using PCIe without using PCI x86 IO ports, etc. We can boot into such machine but we are limited in the functionality we support currently for this type of virtual machine.
2022-03-02Meta: Add option to run SerenityOS on a QEMU ISA-PC machineLiav A
The ISA-PC machine type provides no PCI bus support, no IOAPIC support and other modern PC features of our generation. This is mainly a good environment for testing abstractions in the kernel space, and can help with improving on them for the sake of porting the OS to other chipsets and CPU architectures.