summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-03-06less: Stop adding extra blank linesSam Atkins
Each time we wrapped a line, we were appending an extra blank span which wasn't needed. This was leading to an extra blank line after every single line.
2023-03-06VideoPlayer: Create submenu to set sizing modetimre13
Also add icon to the sizing mode cycling button.
2023-03-06Lagom: Add a tool to verify correctness of the LibJS GCMatthew Olsson
This is implemented as a Clang frontend tool, and currently does two things: - Ensure for all fields wrapped in {Nonnull,}GCPtr<T>, T inherits from JS::Cell - Ensure for all fields not wrapped in {Nonnull,}GCPtr, that the type does not inherit from JS::Cell (otherwise it should be wrapped in a Ptr class). In the future, this tool could be extended further. For example, we may consider validating all implementations of Cell::visit_impl.
2023-03-06LibJS: Enforce proper const-propogation with {Nonnull,}GCPtrMatthew Olsson
2023-03-06LibWeb: Fix a few const-ness issuesMatthew Olsson
2023-03-06LibJS: Handle both const and non-const Ts in Handle<T>::create()Matthew Olsson
Again, the const-ness only really involves Heap-internal metadata, so the callers shouldn't care about mutations here.
2023-03-06LibJS: Fix a few const-ness issuesMatthew Olsson
2023-03-06LibJS: Accept const GCPtrs in Cell::VisitorMatthew Olsson
The const_cast in these methods should be fine since the object really only needs to be mutable so it's Heap-internal metadata can be altered.
2023-03-06LibJS: Use a forwarding reference in ThrowCompletion constructorMatthew Olsson
This avoids compiler complaints when trying to use const types
2023-03-06LibJS: Temporarily disambiguate const-ness of GCPtr constructorsMatthew Olsson
Without this change, using {Nonnull,}GCPtr<T const> would complain that there are multiple constructors which resolve to the same type (T& and T const&). This removes that disambiguation and allows us to slowly fix all of the constness issues surrounding GCPtrs. This change will not be necessary in the future as we will be able to remove all of the const qualifiers from the Ptr classes (they'll be in the template type instead).
2023-03-06WebContent: Add missing LibGfx includeMatthew Olsson
2023-03-06Browser: Add a missing include in InspectorWidgetMatthew Olsson
2023-03-06LibJS+LibWeb: Add a bunch of missing includesMatthew Olsson
2023-03-06LibGfx: Remove unnecessary AK:: prefix in VectorN.hMatthew Olsson
2023-03-06LibWeb: Fix include cycle between ModuleScript.h and ModuleMap.hMatthew Olsson
2023-03-06LibCore: Don't use DT_WHT in DirectoryEntry on OpenBSDnipos
2023-03-06Base: Improve a few ball emojisRyan Liptak
🎱 U+1F3B1 - Pool 8 Ball 🏀 U+1F3C0 - Basketball 🏐 U+1F3D0 - Volleyball 🥎 U+1F94E - Softball ⚾ U+26BE - Baseball
2023-03-06LibWeb/HTML: Move WindowOrWorkerGlobalScope code into a mixin classLinus Groh
This will allow us to easily share the implementations of these methods between Window and WorkerGlobalScope. The mixin class mirrors what I already did for the Fetch API's Body mixin in 5ad62833.
2023-03-06LibWeb/HTML: Implement WorkerGlobalScope::cross_origin_isolated()Linus Groh
2023-03-06LibWeb/HTML: Implement WorkerGlobalScope::is_secure_context()Linus Groh
2023-03-06LibWeb/HTML: Implement WorkerGlobalScope::origin()Linus Groh
2023-03-06LibGfx: Skip old-style emoji lookup for fonts that have color bitmapsAndreas Kling
Ultimately, we should find a way to route all emoji access through the font code, but for now, this patch adds a special case for fonts that are known to have embedded color bitmaps so we can test them.
2023-03-06LibGfx/OpenType: Support one specific type of embedded color bitmapsAndreas Kling
This patch adds support for index format 1 and image format 17. This is enough to get Noto Color Emoji working.
2023-03-06LibGfx: Prepare the paint code for fonts whose glyphs are color bitmapsAndreas Kling
This patch does three things: - Font::has_color_bitmaps() (true if CBLC and CBDT are present) - Glyph now knows when its bitmap comes from a color bitmap font - Painter draws color bitmap glyphs with the appropriate scaling etc
2023-03-06LibGfx/OpenType: Add scaffolding for CBDT and CBLC tablesAndreas Kling
2023-03-06LibGfx/OpenType: Make "glyf" and "loca" tables optionalAndreas Kling
These tables are not guaranteed to be present in all font files.
2023-03-06LibWeb: Fix currentColor as a background-color (and maybe other places)MacDue
This moves color to be the first value resolved, this ensures that calls to .to_color() on style values for other properties will always be able to resolve the current color. This change fixes the `background-color: currentColor` example in colors.html.
2023-03-05LibWeb+WebContent+WebDriver: Port WebDriver parameters to StringTimothy Flynn
This changes the parameters parsed from a WebDriver HTTP request to String for transferring over IPC. Conveniently, most locations these were ultimately passed to only need a StringView.
2023-03-05LibWeb: Allow constructing a WebDriver::Error from an OOM AK::ErrorTimothy Flynn
This will allow easily surrounding operations that may fail due to OOM with TRY. Note that we now also have to define a "normal" constructor for WebDriver::Error in order to add the AK::Error constructor.
2023-03-05LibIPC: Support transferring String over IPCTimothy Flynn
Note that unlike the StringView encoder, we do not handle any "null" state, as the new String cannot be null.
2023-03-05CharacterMap: Make the search happen as you typeSam Atkins
2023-03-05CharacterMap: Limit the number of results from the GUI character searchSam Atkins
Past a few hundred matches, the search is no longer useful, and takes an excessive amount of time to recalculate the column widths by measuring thousands of pieces of text. 250 seems like a reasonable arbitrary limit, and keeps things nice and snappy. :^)
2023-03-05CharacterMap: Pause updates while generating search resultsSam Atkins
Co-authored-by: Tim Flynn <trflynn89@pm.me>
2023-03-05LibIDL: Also parse extended attributes after 'optional'Linus Groh
From the WebIDL grammar: (https://webidl.spec.whatwg.org/#prod-Argument) Argument :: ExtendedAttributeList ArgumentRest ArgumentRest :: optional TypeWithExtendedAttributes ArgumentName Default TypeWithExtendedAttributes :: ExtendedAttributeList Type One IDL file has been updated to match the spec literally, as it can now be parsed properly.
2023-03-05LibWeb/HTML: Propagate errors from Window::initialize_web_interfaces()Linus Groh
2023-03-05PartitionEditor: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05MouseSettings: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05KeyboardSettings: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05ImageViewer: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05GamesSettings: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05FileManager: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05Assistant: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05Tests: Migrate to Directory::for_each_entry()Sam Atkins
2023-03-05LibCore: Introduce a new directory iteration APISam Atkins
`Core::Directory::for_each_entry()` takes a callback which is passed the DirectoryEntry and the parent Directory. It returns any error from creating the iterator, iterating the entries, or returned from the callback. As a simple example, this: ```c++ Core::DirIterator piece_set_iterator { "/res/icons/chess/sets/", Core::DirIterator::SkipParentAndBaseDir }; while (piece_set_iterator.has_next()) m_piece_sets.append(piece_set_iterator.next_path()); ``` becomes this: ```c++ TRY(Core::Directory::for_each_entry("/res/icons/chess/sets/"sv, Core::DirIterator::SkipParentAndBaseDir, [&](auto const& entry, auto&) -> ErrorOr<IterationDecision> { TRY(m_piece_sets.try_append(entry.name)); return IterationDecision::Continue; })); ```
2023-03-05LibCore: Remove unused Directory::create_iterator() methodSam Atkins
2023-03-05LibCore: Expose Directory file descriptorSam Atkins
2023-03-05LibCore: Ensure that Directory always has a pathSam Atkins
`Directory::path()` returning `ErrorOr` makes it awkward to use, and all current users create a Directory with a path. If we find we need pathless directories later, we can come up with a clever solution then. :^)
2023-03-05LibCore+Everywhere: Return an Error from DirIterator::error()Sam Atkins
This also removes DirIterator::error_string(), since the same strerror() string will be included when you print the Error itself. Except in `ls` which is still using fprintf() for now.
2023-03-05LibCore: Expose file type from DirIteratorSam Atkins
Our `find` utility makes use of the `dirent::d_type` field for filtering results, which `Core::DirIterator` didn't expose. So, now it does. :^) We now store the name and type of the entry as the "next" value instead of just the name. The type is exposed as a `DirectoryEntry::Type` instead of a `DT_FOO` constant, so that we're not tied to posixy systems, and because proper enums are nice. :^)
2023-03-05LibGUI: Paint emoji using text in the EmojiInputDialogTimothy Flynn
This widget originally used text, but at the time we did not support painting multi-code point emoji as text at all. So it was changed to paint emoji with their bitmaps in commit 8190120f9531693176ca499c12. Now that we can paint text with multi-code point emoji, revert this widget to use text again. This has the added benefit that the dialog has a what-you-see-is-what-you-get effect; any emoji with text presentation in the font (e.g. U+00A9 Copyright) will be displayed as such in the dialog, which is how the text would be painted when selected anyways. Note that to accommodate some emoji sizes, this also had to bump the button sizes a bit, otherwise they would be displayed with an ellipsis.