summaryrefslogtreecommitdiff
path: root/Userland/Libraries
AgeCommit message (Collapse)Author
2022-02-16LibWeb: Add basic implementation of progress bar elementRafał Babiarz
2022-02-16Meta: Make the WrapperGenerator generate includes based on importsAli Mohammad Pur
We no longer include all the things, so each generated IDL file only depends on the things it actually needs now. A possible downside is that all IDL files have to explicitly import their dependencies. Note that non-IDL dependencies still remain and are injected into all generated files, this can be resolved later if desired by allowing IDL files to import headers.
2022-02-16LibWeb: Add imports to all IDL files that depend on othersAli Mohammad Pur
2022-02-16LibWasm: Fix validation of if-else blocksAli Mohammad Pur
We were doing a number of things wrong: - Switching to the parent context in the else meant that we couldn't break out of the else section anymore - We were not validating the resulting values, and so the stack was in a relatively unknown state after 'else' This commit fixes these issues :^)
2022-02-16LibWeb: Implement responseType and response for XHRAli Mohammad Pur
This makes us capable of loading non-utf8 content via XHR.
2022-02-16LibWeb: Implement a very basic version of TextDecoderAli Mohammad Pur
We had a very basic implementation of TextEncoder, let's add a TextDecoder next to that :^)
2022-02-16Meta: Add support for enumerations to the IDL compilerAli Mohammad Pur
2022-02-16LibWasm: Make MemoryInstance allocation fail if initial growth failsAli Mohammad Pur
...instead of silently ignoring the failure in the constructor.
2022-02-16LibWeb: Don't check for get().is_empty() in WebAssemblyMemoryConstructorAli Mohammad Pur
Object.get() does not return empty values, this was causing the constructed memory object to have a maximum of 0, which failed silently in the constructor.
2022-02-16LibGUI: Make a copy of source_rows before resizing it in sort_mapping()Vitaly Dyachkov
2022-02-16LibWeb: Implement reverse lookup to labels from their labelable nodesTimothy Flynn
This enables, for example, clicking on the check box, dragging the mouse over to the label, releasing the mouse to act as a click on the check box. This was implemented for labels / labelable nodes with the "for" attribute already. This implements the same for labelable nodes that are inside the label.
2022-02-16LibWeb: Set cursor on mousemove for non-text elementsAdam Plumb
2022-02-16LibProtocol: Fix crash on EOF when using Request::stream_intoMichiel Visser
`Request::stream_into_impl` would call `stream.write_or_error` with a zero length buffer when EOF was reached. However, the `Core::Stream::Stream::write_or_error` implementation verifies that the buffer lenght is non-zero, resulting in a crash. With this change the zero length buffer is never written to the stream.
2022-02-16LibWeb: Support Element.closest(selectors)Edwin Hoksberg
2022-02-16LibUnicode: Use BCP 47 data to filter valid calendar namesTimothy Flynn
2022-02-16LibUnicode: Use BCP 47 data to filter valid numbering system namesTimothy Flynn
There isn't too much of an effective difference here other than that the BCP 47 data contains some aliases we would otherwise not handle.
2022-02-16LibUnicode: Use BCP 47 data to generate available calendars and numbersTimothy Flynn
BCP 47 will be the single source of truth for known calendar and number system keywords, and their aliases (e.g. "gregory" is an alias for "gregorian"). Move the generation of available keywords to where we parse the BCP 47 data, so that hard-coded aliases may be removed from other generators.
2022-02-16LibJS+LibUnicode: Parse Unicode keywords from the BCP 47 CLDR packageTimothy Flynn
We have a fair amount of hard-coded keywords / aliases that can now be replaced with real data from BCP 47. As a result, the also changes the awkward way we were previously generating keys. Before, we were more or less generating keywords as a CSV list of keys, e.g. for the "nu" key, we'd generate "latn,arab,grek" (ordered by locale preference). Then at runtime, we'd split on the comma. We now just generate spans of keywords directly.
2022-02-16AK: Fix userland parsing of rounded floating point numbersserenitydev
Parse JSON floating point literals properly, No longer throwing a SyntaxError when the decimal portion of the number exceeds the capacity of u32. Added tests to AK/TestJSON and LibJS/builtins/JSON/JSON.parse
2022-02-16LibJS/Tests: Run prettier on modulo-basic.jsLinus Groh
2022-02-16LibJS: Implement the Number::remainder AO using fmodAnonymous
The ECMA verbiage for modulus is the mathematical definition implemented by fmod, so let's just use that rather than trying to reimplement all the edge cases.
2022-02-16LibJS: Fix mixing of logical and coalescing operatorsAnonymous
The same expression is not allowed to contain both the logical && and || operators, and the coalescing ?? operator. This patch changes how "forbidden" tokens are handled, using a finite set instead of an Vector. This supports much more efficient merging of the forbidden tokens when propagating forward, and allowing the return of forbidden tokens to parent contexts.
2022-02-16LibC: Try to recover gracefully from failed LookupServer requestsAndreas Kling
gethostbyname() and gethostbyaddr() now set h_errno (per spec) and try to recover and return (with an error) instead of choking in VERIFY() whenever an I/O or protocol error occurs in the communication with LookupServer.
2022-02-15LibWeb: Make :checked selector actually look at checkednessAndreas Kling
It was incorrectly testing for presence of the "checked" attribute.
2022-02-15LibWeb: Implement relative lengths in media queries :^)Sam Atkins
As noted, this is not entirely right, since we are using the computed font's metrics instead of the initial font's metrics, but we do not have a good way to obtain the latter.
2022-02-15LibWeb: Remove unused MediaFeatureValue::equals() and friendsSam Atkins
At some point during development I moved the comparison logic outside of MediaFeatureValue but didn't notice. Oops!
2022-02-15LibWeb: Implement activation behavior for <input type=checkbox>Andreas Kling
We now fire the "input" and "change" events as specified.
2022-02-15LibWeb: Make <input type=checkbox> honor the "checked" attributeAndreas Kling
Implemented according to spec, although it's very possible that I missed one or two details. :^)
2022-02-15LibWeb: Add EventTarget::run_activation_behavior()Andreas Kling
2022-02-15LibWeb: Add Element::did_remove_attribute() virtualAndreas Kling
This allows subclasses to react to DOM attributes being removed.
2022-02-15LibWeb: Allow label activation via any descendant of the label nodeAndreas Kling
Previously we were only forwarding the activation to the labelled control if the user clicked on an immediate child of <label>.
2022-02-15LibWeb: Support implicit <label> targetsAndreas Kling
We already supported "<input id=id><label for=id>". This patch implements the other labeling mode, where the first labelable descendant of the <label> element becomes the labeled control.
2022-02-15LibCore: Exit get_next_timer_expiration() sooner if possibleAndreas Kling
If we find a timer that needs to be fired immediately, we can stop looking through the remaining timers. This significantly reduces time spent in get_next_timer_expiration() on ACID3. Of course, with a better data structure, we could reduce time spent further. I've left a FIXME about that.
2022-02-15LibWeb: Fail gracefully when reaching the unimplemented part of the AAALinus Groh
Pages such as https://html5test.com are testing all sorts of weird, incomplete, and wrong HTML but can be useful or at least interesting for development - let's try to avoid crashing the process.
2022-02-15LibWeb: Implement state switch for "[CDATA[" in HTML parserLinus Groh
2022-02-15LibWeb: Add an optional pointer to an HTMLParser to the HTMLTokenizerLinus Groh
This is needed to access the 'adjusted current node' in the 'Markup declaration open state'. We don't want to create a full parser for something like syntax highlighting, so it's optional (null) by default.
2022-02-15LibWeb: Remove unused HTMLParser function declarationLinus Groh
There is no implementation of this function: HTMLParser::stack_of_open_elements_has_element_with_tag_name_in_scope
2022-02-15LibWeb: Add spec links to each HTML tokenizer state sectionLinus Groh
I didn't add full spec comments this time, but this is better than nothing :^)
2022-02-15LibWeb: Add stubs for document.write and document.writelnMaciej
ACID3 test page throws exception about document.write. Let's at least get rid of it by defining these stubs. I added document.writeln too because it is similar.
2022-02-15LibArchive: Default initialize member variablesLenny Maiorani
Problem: - `memset` is used to initialize data instead of using default initialization. Solution: - Default initialize all member variables. - Eliminate use of `memset` in favor of C++ braced initialization.
2022-02-15LibArchive: Use constexpr variables where possibleLenny Maiorani
2022-02-15LibArchive: Refactor Tar to make DRY (Don't Repeat Yourself)Lenny Maiorani
Problem: - The getters and setters duplicate code for conversions. - Getters are returning `const StringView` rather than non-`const`. Solution: - Factor out common code to helper functions. - Return `StringView` as non-`const`.
2022-02-15LibGUI: Allow GlyphMapWidget to filter by code point rangesthankyouverycool
2022-02-15Meta+LibUnicode: Download and parse Unicode block propertiesthankyouverycool
This parses Blocks.txt for CharacterType properties and creates a global display array for use in apps.
2022-02-15LibWeb: Don't delay document load event forever with cached style sheetsAndreas Kling
If we try to <link> a stylesheet that was already cached, we'll get a synchronous resource_did_load() callback. Because of this, it's necessary to set up the document load event delayer *before* calling set_resource(), as otherwise we'd be stuck without a load event forever.
2022-02-15LibWeb: Don't delay document load event forever with cached CSS importsAndreas Kling
If we try to @import a stylesheet that was already cached, we'll get a synchronous resource_did_load() callback. Because of this, it's necessary to set up the document load event delayer *before* calling set_resource(), as otherwise we'd be stuck without a load event forever.
2022-02-15LibWeb: Force a relayout when scrolling to anchorAndreas Kling
This ensures that the layout information is current, even when the scroll request happens immediately upon page load. This fixes an issue where reloading ACID2 wouldn't scroll down to the "#top" anchor point.
2022-02-15LibWeb: Don't trigger page load for fragment navigation within same URLAndreas Kling
2022-02-15LibWeb: Repaint entire viewport after document layoutAndreas Kling
This fixes an issue with the eyes on ACID2 not appearing until the page is repainted after loading.
2022-02-15LibIPC: Always shutdown() the Connection if reached EOFVitaly Dyachkov