summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-10LibWeb: Implement Selection.setBaseAndExtentLuke Wilde
2022-12-10LibWeb: Add Document.getSelectionLuke Wilde
2022-12-10LibWeb: Add namespace qualifier to type names equal to a C++ namespaceLuke Wilde
For example, Document.getSelection returns Selection, which is in the Selection namespace. Namespaces.h has Linus' copyright since he changed the "is_one_of" list to an Array.
2022-12-10LibWeb: Stub Range.getBoundingClientRectLuke Wilde
This seems to be used by Discord around the chat message box, but didn't explore very far.
2022-12-10LibWeb: Stub HTMLMediaElement.pauseLuke Wilde
Required for rendering GIFs on Discord.
2022-12-10LibWeb: Add spec link to HTMLMediaElement::loadLuke Wilde
2022-12-10LibJS/Bytecode: Implement yield*Luke Wilde
2022-12-10LibJS/Bytecode: Implement var/lexical binding destructuring in for/ofLuke Wilde
2022-12-09SpaceAnalyzer: Display the current location in the window title :^)Sam Atkins
2022-12-09SpaceAnalyzer: Add a tooltip for the hovered tree nodeSam Atkins
Many of the nodes are visually too small to show their full name and file size, so this makes that information visible.
2022-12-09SpaceAnalyzer: Remove declaration for unimplemented methodSam Atkins
2022-12-09SQLServer: Add a hook to inform owners of disconnected SQL clientsTimothy Flynn
2022-12-09WebContent+LibWeb+LibJS: Simplify injection of JS console globalsAndreas Kling
Instead of creating a new global object and proxying everything through it, we now evaluate console inputs inside a `with` environment. This seems to match the behavior of WebKit and Gecko in my basic testing, and removes the ConsoleGlobalObject which has been a source of confusion and invalid downcasts. The globals now live in a class called ConsoleGlobalObjectExtensions (renamed from ConsoleGlobalObject since it's no longer a global object). To make this possible, I had to add a way to override the initial lexical environment when calling JS::Interpreter::run(). This is plumbed via Web::HTML::ClassicScript::run().
2022-12-09Base: Add emoji flags for French subdivisionsXexxa
🏴󠁦󠁲󠁢󠁲󠁥󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0062 U+E0072 U+E0065 U+E007F FR-BRE Bretagne 🏴󠁦󠁲󠁯󠁣󠁣󠁿 - U+1F3F4 U+E0066 U+E0072 U+E006F U+E0063 U+E0063 U+E007F FR-OCC Occitanie 🏴󠁦󠁲󠁮󠁡󠁱󠁿 - U+1F3F4 U+E0066 U+E0072 U+E006E U+E0061 U+E0071 U+E007F FR-NAQ Nouvelle-Aquitaine 🏴󠁦󠁲󠁰󠁡󠁣󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0070 U+E0061 U+E0063 U+E007F FR-PAC Provence-Alpes-Côte-d’Azur 🏴󠁦󠁲󠁮󠁯󠁲󠁿 - U+1F3F4 U+E0066 U+E0072 U+E006E U+E006F U+E0072 U+E007F FR-NOR Normandie 🏴󠁦󠁲󠁰󠁤󠁬󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0070 U+E0064 U+E006C U+E007F FR-PDL Pays-de-la-Loire 🏴󠁦󠁲󠁣󠁯󠁲󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0063 U+E006F U+E0072 U+E007F FR-COR Corse 🏴󠁦󠁲󠁡󠁲󠁡󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0061 U+E0072 U+E0061 U+E007F FR-ARA Auvergne-Rhône-Alpes 🏴󠁦󠁲󠁣󠁶󠁬󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0063 U+E0076 U+E006C U+E007F FR-CVL Centre-Val de Loire 🏴󠁦󠁲󠁢󠁦󠁣󠁿 - U+1F3F4 U+E0066 U+E0072 U+E0062 U+E0066 U+E0063 U+E007F FR-BFC Bourgogne-Franche-Comté
2022-12-09SpaceAnalyzer: Propagate possible errors upArda Cinar
These include a JSON parse error, file open errors, and vector appends. These fix a bunch of calls to functions with `fixme` in them.
2022-12-09SpaceAnalyzer: Use raw_delta_y in TreeMapWidget::mousewheel_eventArda Cinar
There was a FIXME about using raw delta y value of the mousewheel event in TreeMapWidget::mousewheel_event. Some time after that code was written, a raw delta x/y API was added to GUI::MouseEvent. This patch simply uses that API and removes the FIXME message there.
2022-12-09LibWeb: Display DragonFly in the user agent stringUndefine
Previously when build for DragonFly BSD we would error out with unknown os error. Now we just define OS_STRING as DragonFly.
2022-12-09LibWeb: Fix child wrapping in table fix upAliaksandr Kalenik
- Wrapped sequence should be inserted before first non-match node instead of next sibling of first non-match node - If sequence is not empty after sibling traversal it should be wrapped
2022-12-09LibWeb: Consider specified cell widths in a tableAliaksandr Kalenik
This change makes outer min-content width and outer max-content width for cells to be calculated in the way specifed in the spec: - The outer min-content width of a table-cell is max(min-width, min-content width) adjusted by the cell intrinsic offsets. - The outer max-content width of a table-cell in a non-constrained column is max(min-width, width, min-content width, min(max-width, max-content width)) adjusted by the cell intrinsic offsets. - The outer max-content width of a table-cell in a constrained column is max(min-width, width, min-content width, min(max-width, width)) adjusted by the cell intrinsic offsets.
2022-12-09LibWeb: Fix typo in TableFormattingContext.hAliaksandr Kalenik
2022-12-09LibWeb: Layout table rows that do not belong to table row groupAliaksandr Kalenik
2022-12-09Everywhere: Remove unnecessary AK and Detail namespace scopingMoustafa Raafat
2022-12-09Everywhere: Use C++ concepts instead of requires clausesMoustafa Raafat
2022-12-08LibJS: Call shrink_to_fit() on various Vectors created during parseAndreas Kling
Vectors that stick around in the AST were wasting a fair bit of memory due to the growth padding we keep by default. This patch goes after some of these vectors with the shrink_to_fit() stick to reduce waste. Since the AST can stay around for a long time, it is worth making an effort to shrink it down when we have a chance.
2022-12-08LibJS: Shrink DeclarativeEnvironment bindings vector to fitAndreas Kling
After setting up all the bindings in function_declaration_instantiation, we now ask DeclarativeEnvironment to do a shrink_to_fit() on its vector of bindings. This ends up saving 5.6 MiB on twitter.com/awesomekling :^)
2022-12-08AK: Add Vector::shrink_to_fit()Andreas Kling
If there's more capacity than size, the vector is reallocated to have capacity == size.
2022-12-08LibJS: Shrink FunctionNode by using bitfieldsAndreas Kling
By making the boolean members be bitfields, we shrink FunctionNode by a total of 8 bytes.
2022-12-08LibJS: Make FunctionKind enum class a u8Andreas Kling
2022-12-08LibJS: Shrink ObjectProperty AST nodes by rearranging membersAndreas Kling
By putting smaller members in the padding hole after the ASTNode base class, we shrink ObjectProperty by 8 bytes.
2022-12-08LibJS: Make one compact allocation for CallExpression and its ArgumentsAndreas Kling
Instead of CallExpression storing its arguments in a Vector<Argument>, we now custom-allocate the memory slot for CallExpression (and its subclass NewExpression) so that it fits both CallExpression and its list of Arguments in one allocation. This reduces memory usage on twitter.com/awesomekling by 8.8 MiB :^)
2022-12-08LibJS: Add ASTNodeWithTailArray template to pack AST node + arrayAndreas Kling
This template allows us to allocate an AST node and an array of some arbitrary type T with one allocation instead of two. This can save a lot of memory in some cases. Thanks to Jonathan Müller for suggesting this technique! :^)
2022-12-08LibJS: Use move() on the SourceRange in create_ast_node()Andreas Kling
2022-12-08LibJS: Shrink MemberExpression by rearranging members slightlyAndreas Kling
By putting m_computed in the padding hole after our base class, we shrink MemberExpression by 8 bytes. :^)
2022-12-08LibJS: Rearrange ASTNode members so there's a padding hole at the endAndreas Kling
ASTNode inherits from RefCounted, which has a single 32-bit member. This means that there's a 32-bit padding hole after RefCounted, where we are free to put something (or it will go to waste!) This patch moves ASTNode::m_start_offset into that padding hole, and we now have a 32-bit padding hole at the end of ASTNode instead. This will allow ASTNode subclasses to put things in the ASTNode hole by moving them to the head of the member list.
2022-12-09LibGUI: Add OpacitySlider to ColorPicker dialogFrHun
2022-12-09LibGUI: Split OpacitySlider into vertical and horizontal helper classesFrHun
2022-12-09LibGUI: Implement vertical orientation for OpacitySliderFrHun
2022-12-09LibGfx: Make Rect by orientation methods genericFrHun
2022-12-09AK: Disallow implicit pointer-to-boolean conversion in JsonValueTimothy Flynn
Similar to how LibJS and LibSQL used to behave, the boolean constructor of JsonValue is currently allowing pointers to be used to construct a boolean value. Explicitly disallow such construction.
2022-12-09LibGUI: Register GUI icon path setters as write-onlyTimothy Flynn
The getters passed to REGISTER_STRING_PROPERTY are never invoked. But if they were, they would errantly incur an implicit pointer-to-boolean cast when their return type (Gfx::Bitmap*) is used to construct a JsonValue.
2022-12-09LibCore: Support write-only Object propertiesTimothy Flynn
Some properties are set and then never retrieved, e.g. GUI icon paths. Add a helper to create such properties, similar to the read-only helper.
2022-12-09AK: Unref old m_data in String's move assignmentMaciej
We were overridding the data pointer without unreffing it, causing a memory leak when assigning a String.
2022-12-08LibGUI: Add a prefix to `IncrementalSearchBanner`'s widgets nameLucas CHOLLET
Widget's name are the current way to retrieve them when using GML. Presently, there is no way to differentiate two items that share the same name. `IncrementalSearchBanner` uses common names as "close_button" or "next_button", prepend them with `incremental_search_banner_` avoid collisions. This fixes a bug where the close button of `CrashReporter` was confused with the one of the search banner. However, This solution isn't perfect, down the road, we should probably find a way to warn about equal names and introduce something like namespace to avoid huge prefixes.
2022-12-08CrashReporter: Factorize exiting behavior to `window->close()`Lucas CHOLLET
2022-12-08Browser: Store cookies in a LibSQL database :^)Timothy Flynn
Currently, cookies are ephemeral and only survive for the lifetime of Browser instance. This will make Browser instead store cookies in a SQL database for persisted access.
2022-12-08Browser+LibWebView+WebContent: Do not domain match on cookie updatesTimothy Flynn
Updating cookies through these hooks happens in one of two manners: 1. Through the Browser's storage inspector. 2. Through WebDriver's delete-cookies operation. In (1), we should not restrict ourselves to being able to delete cookies for the current page. For example, it's handy to open the inspector from the welcome page and be able to delete cookies for any domain. In (2), we already are only interacting with cookies that have been matched against the document URL.
2022-12-08AK: Add formatters for Span<T> and Span<T const>Timothy Flynn
This generalizes the formatter currently used for Vector to be usable for any Span.
2022-12-08LibSQL+SQLServer+SQLStudio+sql: Give ID types a distinct nameTimothy Flynn
Makes it clearer what is being stored, especially in future clients that will store a bunch of statement IDs.
2022-12-08LibSQL: Mark SQLClient's constructor as publicTimothy Flynn
Similar to WebContent, this is needed to construct the SQLClient manually in Ladybird.
2022-12-08LibSQL+SQLServer: Generate SQLServer's IPC sources with LibSQL on LagomTimothy Flynn
Exclude SQLServer from Lagom, and instead generate its IPC sources with LibSQL.