summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-05Browser: Add Debug menu action for dumping the stacking context treeAndreas Kling
2022-02-05LibWeb: Add a partial implementation of Element.setAttributeNS()Andreas Kling
This implementation does some of the required validation and then passes through the localName and value to Element.setAttribute().
2022-02-05LibJS: Explicitly initialize primitive IndexedPropertyIterator membersAndreas Kling
2022-02-05LibJS: Cache valid indices in IndexedPropertyIteratorAndreas Kling
Refetching the list of indices every time we increment the iterator was showing up hot & heavy in a profile of Discord.
2022-02-05LibWeb: Put ClassicScript debug spam behind HTML_SCRIPT_DEBUGAndreas Kling
2022-02-05LibWeb: Put CSS parser debug spam behind CSS_PARSER_DEBUGAndreas Kling
2022-02-05Browser: Don't log every content filter string when loadedAndreas Kling
2022-02-05Kernel: Put kmalloc heap expansion debug spam behind KMALLOC_DEBUGAndreas Kling
2022-02-05LibWeb: Remove CSS::StyleInvalidator in favor of dirtying + lazy updateAndreas Kling
Style updates are lazy since late last year, so the StyleInvalidator is actually hurting us more than it's helping by running the entire CSS selector machine on the whole DOM for every attribute change. Instead, simply mark the entire DOM dirty and let the lazy style update mechanism run *once* on next event loop iteration.
2022-02-05LibWeb: Implement CanvasGradient.addColorStop() according to specAndreas Kling
The object is still not usable for anything, but at least now it behaves correctly with regards to throwing exceptions.
2022-02-05LibWeb: Compute element style in Layout::TreeBuilderAndreas Kling
Instead of making each Layout::Node compute style for itself, we now compute it in TreeBuilder before even calling create_layout_node(). For non-element DOM nodes, we create the style and layout tree node in TreeBuilder. This allows us to move create_layout_node() from DOM::Node to DOM::Element.
2022-02-05Base: Add missing HiDPI versions of cursorsMaciej
Note: The "hidden" cursor must be 2x upscaled because LibGfx would fail loading HiDPI images with size not divisible by scale.
2022-02-05LibGfx: Fail gracefully when trying to load invalid-sized HiDPI imageMaciej
2022-02-05Base: Add Old Turkic to font Katica Regular 10Lady Gegga
10C00-10C48 https://www.unicode.org/charts/PDF/U10C00.pdf
2022-02-05Base: Add Old North Arabian to font Katica Regular 10Lady Gegga
10A80-10A9F https://www.unicode.org/charts/PDF/U10A80.pdf
2022-02-05Base: Add Avestan to font Katica Regular 10Lady Gegga
10B00-10B3F https://www.unicode.org/charts/PDF/U10B00.pdf
2022-02-05Base: Add 10CD1B-10CD1D, 10CD68 emojis to PUA codepointsLady Gegga
10CD1B (Angelyak), 10CD1C (Yak), 10CD1D (Yakgone), 10CD69 (Yakbane)
2022-02-05FileManager: Add an animation for deleting filesJason
2022-02-05Base: Add a quote to the fortunes databaseAli Mohammad Pur
2022-02-05Meta: Fix problematic `e2fsck` behavior (Debian)Στέφανος
Under Debian `e2fsck` is found in `/sbin/` which does not match the existing "version" the script currently uses (`/usr/sbin/e2fsck` versus `/sbin/e2fsck`); therefore I added a simple `if` condition to remedy the situation by verifying whether the original path exists or not, so I can use the one Debian expects. Special thanks goes to Tim Flynn a.k.a. `trflynn89` for his valuable feedback.
2022-02-05LibRegex: Support non-ASCII whitespace characters when matching \s or \STimothy Flynn
ECMA-262 defines \s as: Return the CharSet containing all characters corresponding to a code point on the right-hand side of the WhiteSpace or LineTerminator productions. The LineTerminator production is simply: U+000A, U+000D, U+2028, or U+2029. Unfortunately there isn't a Unicode property that covers just those code points. The WhiteSpace production is: U+0009, U+000B, U+000C, U+FEFF, or any code point with the Space_Separator general category. If the Unicode generators are disabled, this will fall back to ASCII space code points.
2022-02-05AK: Remove commented-out code from Bitmap containerLiav A
Instead, add a note to explain that there's a const variant of data() method in the parent BitmapView class.
2022-02-05Kernel/Interrupts: Remove stale MSIHandler classLiav A
When we implement MSI support, we can rely on the IRQHandler class for installing IRQ handlers at the right location.
2022-02-05Utilities/run-tests: Add command-line switch to also run "skipped" testsSam Atkins
Among other things, this lets you run flaky tests to check if they are still flaky. :^) This is done in two ways: It makes should_skip_test() always return false; and skips reading and generating the skipped-tests lists since we won't use them.
2022-02-05LibWeb: Mark SelectorEngine matches-related functions as inlineIdan Horowitz
The prologues and epilogues of these functions were pretty hot in a profile of Browser, so this should help a bit.
2022-02-05LibWeb: Cache the result of Selector::specificity()Idan Horowitz
This function was showing up as taking 30% of all runtime during a profile of Browser. This change effectively eliminates it completely.
2022-02-05AK: Make Vector::data() ALWAYS_INLINEIdan Horowitz
This was showing up in profiles of Browser, and it really shouldn't be.
2022-02-05LibRegex: Do not return an Optional from Regex::Matcher::executeTimothy Flynn
The code path that could return an optional no longer exists as of commit: a962ee020a6310b2d7c7479aa058c15484127418
2022-02-05LibRegex: Do not continue searching input when the sticky bit is setTimothy Flynn
This partially reverts commit a962ee020a6310b2d7c7479aa058c15484127418. When the sticky bit is set, the global bit should basically be ignored except by external callers who want their own special behavior. For example, RegExp.prototype [ @@match ] will use the global flag to accumulate consecutive matches. But on the first failure, the regex loop should break.
2022-02-05Shell: Use strncmp() instead of string.compare() for name completionsAli Mohammad Pur
The "at most n bytes" behaviour of strncmp is required for this logic to work, this was overlooked in 5b64abe when converting Strings to StringViews, which lead to broken autocomplete.
2022-02-05LibJS: Remove the VERIFY_NOT_REACHED in link_and_eval_moduledavidot
Since the spec does not fully define the entry points of modules what this means is kind of unclear. But it does work in most cases and can be useful. We do print out a warning just to clarify why there could be strange things.
2022-02-05LibJS: Visit internal values in PromiseValueListdavidot
2022-02-05LibJS: Keep handles on internal function while creating a classdavidot
It seems the stack search does not find all functions because they are kept in variants and other structs. This meant some function could be cleaned up while we were evaluating a class meaning it would fail/crash when attempting to run the functions.
2022-02-05LibJS: Keep handles on promise functions while resolving a moduledavidot
2022-02-05LibJS: Remove the JS_TRACK_ZOMBIE_CELLS optiondavidot
This feature had bitrotted somewhat and would trigger errors because PrimitiveStrings were "destroyed" but because of this mode they were not removed from the string cache. Even fixing that case running test-js with the options still failed in more places.
2022-02-05LibSQL: Implement DESCRIBE TABLE testsMahmoud Mandour
2022-02-05LibSQL: Implement a DESCRIBE TABLE statementMahmoud Mandour
This statement (for now) outputs the name and types of the different attributes in a table. It's not standard SQL but all DBMSs that I know of implement a sort of statement for such functionality. Since the output of DESCRIBE TABLE is just a relation, an internal schema, `master` was created and a table definition for DESCRIBE into it. The table definition and the master schema are not accessible by the user.
2022-02-05LibSQL: Avoid signed arithmetic in `IntegerImpl::compare`Mahmoud Mandour
2022-02-05LibJS+LibRegex: Don't repeat regex match in regexp_exec()Ali Mohammad Pur
LibRegex already implements this loop in a more performant way, so all LibJS has to do here is to return things in the right shape, and not loop over the input string. Previously this was a quadratic operation on string length, which lead to crazy execution times on failing regexps - now it's nice and fast :^) Note that a Regex test has to be updated to remove the stateful flag as it repeats matching on multiple strings.
2022-02-05LibRegex+LibJS: Avoid searching for more than one match in JS RegExpsAli Mohammad Pur
All of JS's regular expression APIs only want a single match, so avoid trying to produce more (which will be discarded anyway).
2022-02-04Kernel: Disable BootFramebufferConsole when drivers create a new oneTom
When GraphicsManagement initializes the drivers we can disable the bootloader framebuffer console. Right now we don't yet fully destroy the no longer needed console as it may be in use by another CPU.
2022-02-04Kernel: Set up an initial boot framebuffer consoleTom
Instead of seeing a black screen until GraphicsManagement was fully initialized, this allows us to see the console output much earlier. So, if the bootloader provided us with a framebuffer, set up a console as early as possible.
2022-02-04Kernel: Separate GenericFramebufferConsole implementationTom
The GenericFramebufferConsoleImpl class implements the logic without taking into account any other details such as synchronization. The GenericFramebufferConsole class then is a simple wrapper around GenericFramebufferConsoleImpl that takes care of synchronization. This allows us to re-use this implementation with e.g. different synchronization schemes.
2022-02-04Keymap Applet: Spawn KeyboardSettings when clickingMaciej
2022-02-04LibJS: Rename variables to 'calendarLike' in a couple of placesLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/9af2d35
2022-02-04LibJS: Remove '-000000' check from ParseTemporalYearMonthStringLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/3be4b5d
2022-02-04LibJS: Update fallibility of ParseISODateTime in spec commentsLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/bc79069
2022-02-04LibCoredump: Add stack frame entry even if there is no object infoMaciej
We know the object name and are able to include it. Function name and source position are still unknown and will just be displayed as "??? ()"
2022-02-04LibCoredump: Fix use-after-free in Backtrace::object_info_for_region()Maciej
The first line was creating a StringView object with region name. Then, if the path didn't start with '/', it had assigned a String made from a temporary LexicalPath join result. This fixes the bug that only main executable's frames were displayed.
2022-02-04PixelPaint: Use Escape to clear rectangular selectionsJagger De Leo
Now while dragging a new rectangular selection you can cancel it by hitting Escape. Existing selections are cleared by Escape as well if the RectangularSelectTool is active.