summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-12-09Kernel: Construct PCIDeviceAttributeSysFSComponent with StringViewsHendiadyoin1
There is no use to create a temporary String of a char const* to just cast it to a StringView on SysFSComponent construction again. Also this could have lead to a UAF bug.
2021-12-09Kernel: Pass capabilities as const reference in PCI::AddressHendiadyoin1
2021-12-09Kernel: Mark PCI::Address as trivially copyableHendiadyoin1
2021-12-09Kernel: Add missing include to SlabAllocatorHendiadyoin1
2021-12-10Base: Add some Vai characters to font Katica Regular 10Lady Gegga
A5A8-A5D1 https://www.unicode.org/charts/PDF/UA500.pdf
2021-12-10Browser+LibWeb+WebContent: Add variables display to InspectorSam Atkins
This allows us to see which custom properties apply to a given element, which previously wasn't shown.
2021-12-09LibJS: Implement Intl.DateTimeFormat.prototype.formatRangeToPartsTimothy Flynn
2021-12-09LibJS: Implement Intl.DateTimeFormat.prototype.formatRangeTimothy Flynn
2021-12-09LibJS: Store range format patterns in the Intl.DateTimeFormat objectTimothy Flynn
Now that LibUnicode generates these patterns, the AO steps to retrieve them may be implemented.
2021-12-09LibJS: Do not return views into potentially freed memoryTimothy Flynn
In a future commit, the "part" view returned from FormatDateTimePattern may be a view into a string that goes out of scope. Ensure the AO only returns valid views. A similar approach is used in Intl.NumberFormat.
2021-12-09LibUnicode: Add method to combine two format pattern skeletonsTimothy Flynn
The fields of the generated elements must be in the same order as the table here: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table Further, only one field from each group of fields is allowed.
2021-12-09LibUnicode: Parse and generate date time range format patternsTimothy Flynn
2021-12-09LibUnicode: Parse and generate format pattern skeletonsTimothy Flynn
Pattern skeletons are more or less the "key" of format patterns. Every format pattern is assigned a skeleton. Interval patterns (which are not yet parsed) are also assigned a skeleton - this is used to match them to an "owning" format pattern. So we will use the skeleton generated here to match format patterns at runtime with their available interval patterns. An alternative approach would be to append interval patterns directly to their owning format pattern, but this has some draw backs: 1. Skeletons aren't totally unique. A skeleton may appear in both the "dateFormats" and "availableFormats" objects, in which case the same interval formats would be generated more than once. 2. Otherwise unique format patterns may only differ by the interval patterns assigned to them. This would cause the UniqueStorage for the format patterns to increase in size, impacting both compile times and libunicode.so size.
2021-12-09LibUnicode: Fix typo in format pattern parserTimothy Flynn
See: https://unicode.org/reports/tr35/tr35-dates.html#dfst-day
2021-12-09LibJS: Update spec comment in balance_duration_relative()Linus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/665871e
2021-12-09LibJS: Update spec comment in Temporal.Duration.prototype.round()Linus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/513c05b
2021-12-09HackStudio+TextEditor: Persist EditingEngineType across editorsscwfri
Persist EditingEngine mode in HackStudio and TextEditor when opening new files or editing splits. Previously, the EditingEngine defaulted to a RegularEditingEngine for a new Editor, even if Vim Emulation had been selected in the existing Editor.
2021-12-09LibGUI: Add EngineType to EditingEngine classesscwfri
This will allow users of EditingEngine classes to determine current type of EditingEngine (currently either vim or regular).
2021-12-09LibWeb: Remove now-unused CustomStyleValueSam Atkins
2021-12-09Base: Add more test cases to CSS var() test pageSam Atkins
2021-12-09LibWeb: Handle dependency cycles in CSS var()s :^)Sam Atkins
We now detect situations like this, where variables infinitely recur, without crashing: ```css div { --a: var(--b); --b: var(--a); background: var(--a); } p { --foo: var(--foo); background: var(--foo); } ```
2021-12-09LibWeb: Mitigate the billion-laughs attack on CSS variablesSam Atkins
We now stop processing variables once a length of 16384 tokens is reached. This is an arbitrary number, but should be far beyond what anyone will reasonably use, and small enough to not crash.
2021-12-09LibWeb: Handle fallback values for CSS variables :^)Sam Atkins
2021-12-09LibWeb: Parse and resolve UnresolvedStyleValuesSam Atkins
If a property is custom or contains a `var()` reference, it cannot be parsed into a proper StyleValue immediately, so we store it as an UnresolvedStyleValue until the property is compute. Then, at compute time, we resolve them by expanding out any `var()` references, and parsing the result. The implementation here is very naive, and involves copying the UnresolvedStyleValue's tree of StyleComponentValueRules while copying the contents of any `var()`s it finds along the way. This is quite an expensive operation to do every time that the style is computed.
2021-12-09LibWeb: Add new UnresolvedStyleValue classSam Atkins
This represents a property value that hasn't been converted to a "proper" StyleValue yet. That is, it's either a custom property's value, or a value that includes `var()` references, (or both!) since neither of those can be fully resolved at parse time.
2021-12-09LibWeb: Make StyleBlockRule more accessible to outsidersSam Atkins
For our naive var() implementation, we need to be able to create StyleBlockRules outside of the Parser, and these changes make that possible.
2021-12-09LibWeb: Include custom properties in CSS dumpSam Atkins
2021-12-09LibWeb: Make CSS::Screen forward its ref count to DOM::WindowAndreas Kling
2021-12-09LibWeb: Make DOM::NamedNodeMap forward its ref count to DOM::ElementAndreas Kling
This allows JS to keep an element alive by retaining a reference to element.attributes
2021-12-09LibWeb: Make DOMImplementation forward its ref count to DOM::DocumentAndreas Kling
This allows document.implementation to keep the underlying document alive for as long as we need it (for example, if someone holds on to a DOMImplementation JS wrapper after the document is GC'd.)
2021-12-09LibWeb: Use RefCountForwarder for NavigationTiming::PerformanceTimingAndreas Kling
This object already forwarded its ref count to DOM::Window. This patch simply adopts the new RefCountForwarder base to achieve the same thing.
2021-12-09AK: Add RefCountForwarder<T>Andreas Kling
This is a convenience template that implements reference count forwarding. This means that an object forwards ref() and unref() to another object. We can use this when two ref-counted objects need to keep each other alive. This situation poses two problems: - Using 2x RefPtr would cause a ref cycle and leak both objects. - Using 2x WeakPtr would allow one of them to be destroyed early. With RefCountForwarder, only one of the objects has a ref count. The object with the ref count points to the forwarding object by using a non-counting smart pointer (OwnPtr or NonnullOwnPtr). Thus, both objects are kept alive by the same ref count, and they can safely point to each other without worrying about disjoint lifetimes.
2021-12-09LibJS: Add Handle::operator->()Andreas Kling
2021-12-09dos2unix: Swap to official signature validationNathan Ell
In the initial port of dos2unix, there was a miss in the validation of the files. Let's switch to the original author's official signed verification of the source :^)
2021-12-08Inspector: Remove unused includesBen Wiederhake
Found while working on something else.
2021-12-08Base: Add Ancient Greek Numbers to font Katica Regular 10Lady Gegga
10140-1018E https://www.unicode.org/charts/PDF/U10140.pdf
2021-12-08Base: Add Zanabazar Square characters to font Katica Regular 10Lady Gegga
11A00-11A47 https://www.unicode.org/charts/PDF/U11A00.pdf
2021-12-08js: Improve usage of `TRY` when executing a file programJames Puleo
2021-12-08LibJS/Tests: Enable two more skipped tests which now passLinus Groh
Only two skipped tests remaining overall :^)
2021-12-08LibJS: Simplify TemporalInstantStringLinus Groh
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/271d71c
2021-12-08LibJS: Move calendar validation out of parse_temporal_calendar_stringLuke Wilde
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/7207a1c
2021-12-08LibJS: Simplify return in parse_temporal_date_time_stringLuke Wilde
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/1f7e486
2021-12-08LibJS: Remove duplicated spec step in parse_iso_date_timeLuke Wilde
This is an editorial change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/516bf24
2021-12-08test-crypto: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08Spreadsheet: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08LibTLS: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08LibSQL: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08LibHTTP: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08LibGemini: Avoid implicitly copying ByteBufferBen Wiederhake
2021-12-08LibCrypto+Tests: Avoid implicitly copying ByteBufferBen Wiederhake