Commit graph

1975 commits

Author SHA1 Message Date
Cubic Love 3bec616893 Base+ImageViewer: Add new icons for ImageViewer
Add ImageViewer application icons (16 and 32px) and matching image
filetype icons.
2024-03-12 08:08:19 +00:00
Nico Weber 58838db445 LibGfx: Add the start of a JBIG2 loader
JBIG2 is infamous for two things:

1. It's used in xerox scanners were it falsifies scanned numbers:

https://www.dkriesel.com/en/blog/2013/0802_xerox-workcentres_are_switching_written_numbers_when_scanning

2. It was allegedly used in an iOS zero day, in a very cool way:

https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html

Needless to say, we need support for it in Serenity. (...because it's
used in PDF files.)

This adds all the scaffolding, but no actual implementation yet.

It's enough for `file` to print the mime type of .jb2 files, but `image`
can't do anything with the files yet.
2024-03-09 16:01:22 +01:00
Pixel Brush 2c327a67bc Base: Remake Default Snake Sprites 2024-03-07 11:34:37 -05:00
Pixel Brush 34b8cefaab Base: Add Emoji
Base: Add Emoji
🥿 - U+1F97F FLAT SHOE
🫀 - U+1FAC0 ANATOMICAL HEART
🪔 - U+1FA94 DIYA LAMP
🧫 - U+1F9EB PETRI DISH
🚷 - U+1F6B7 NO PEDESTRIANS
2024-03-07 11:33:41 -05:00
Pixel Brush 70b9e28975 Base: Add emoji
👞 - U+1F45E MANS SHOE
👟 - U+1F45F ATHLETICS SHOE
👠 - U+1F460 HIGH-HEELED SHOE
🕴 - U+1F574 MAN IN BUSINESS SUIT LEVITATING
🐐 - U+1F410 GOAT
2024-03-03 17:40:04 -05:00
Matthew Olsson 53a247dbe1 Base: Extend the web-animations demo to showcase complex transforms 2024-03-02 12:25:53 +01:00
Matthew Olsson 83fd28e089 LibWeb: Add a demo for web-animations 2024-02-23 20:52:37 +01:00
Timothy Flynn fd558a012b LibWebView: Do not embed text as data in the Inspector HTML
We were previously embedding the original text to handle the special
case where the text is empty. We generate an extra span to hold the
string "#text" as a placeholder, so that we don't generate a 0px-wide,
unclickable (and therefore uneditable) node. Instead, we can just detect
when this is the case in the Inspector JS.

This further reduces the generated HTML for the Inspector on
https://github.com/SerenityOS/serenity from 1.9MB to 1.8MB (about 94KB,
or 4.7%).
2024-02-20 17:04:36 +01:00
Timothy Flynn f07f5a2622 LibWeb+WebContent: Do not embed attributes as data in the Inspector HTML
Attribute values may contain HTML, and may contain invalid HTML at that.
If the latter occurs, let's not generate invalid Inspector HTML when we
embed the attribute values as data attributes. Instead, cache the values
in the InspectorClient, and embed just a lookup index into the HTML.

This also nicely reduces the size of the generated HTML. The Inspector
on https://github.com/SerenityOS/serenity reduces from 2.3MB to 1.9MB
(about 318KB, or 13.8%).
2024-02-20 17:04:36 +01:00
Cubic Love 0d41f6cf89 Base: Improve 3DFileViewer Icons
New 32px and 16px application icons.
New 32px and optimized 16px filetype icons.
All four icons are now consistent, with a Lavender-blue Isometic Cube.
2024-02-08 08:08:25 -07:00
Xexxa 43fe7af35e Base: Add more emoji
🦻 - U+1F9BB EAR WITH HEARING AID
👯 - U+1F46F PEOPLE WITH BUNNY EARS
🐅 - U+1F405 TIGER
🐆 - U+1F406 LEOPARD
🕷️ - U+1F577 SPIDER
🏴󠁮󠁺󠁡󠁵󠁫󠁿 - U+1F3F4 U+E006E U+E007A U+E0061 U+E0075 U+E006B U+E007F
NZ-AUK Auckland
🏴󠁮󠁺󠁮󠁳󠁮󠁿 - U+1F3F4 U+E006E U+E007A U+E006E U+E0073 U+E006E U+E007F
NZ-NSN Nelson
🏴󠁮󠁺󠁷󠁧󠁮󠁿 - U+1F3F4 U+E006E U+E007A U+E0077 U+E0067 U+E006E U+E007F
NZ-WGN Wellington
🏴󠁰󠁡󠀱󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0031 U+E007F
PA-1 Bocas del Toro
🏴󠁰󠁡󠀲󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0032 U+E007F
PA-2 Coclé
🏴󠁰󠁡󠀳󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0033 U+E007F
PA-3 Colón
🏴󠁰󠁡󠀴󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0034 U+E007F
PA-4 Chiriquí
🏴󠁰󠁡󠀵󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0035 U+E007F
PA-5 Darién
🏴󠁰󠁡󠀶󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0036 U+E007F
PA-6 Herrera
🏴󠁰󠁡󠀷󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0037 U+E007F
PA-7 Los Santos
🏴󠁰󠁡󠀹󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0039 U+E007F
PA-9 Veraguas
🏴󠁰󠁡󠀱󠀰󠁿 - U+1F3F4 U+E0070 U+E0061 U+E0031 U+E0030 U+E007F
PA-10 West Panamá
🏴󠁰󠁡󠁫󠁹󠁿 - U+1F3F4 U+E0070 U+E0061 U+E006B U+E0079 U+E007F
PA-KY Guna Yala
🏴󠁰󠁡󠁮󠁢󠁿 - U+1F3F4 U+E0070 U+E0061 U+E006E U+E0062 U+E007F
PA-NB Ngöbe-Buglé
🏴󠁮󠁺󠁯󠁴󠁡󠁿 - U+1F3F4 U+E006E U+E007A U+E006F U+E0074 U+E0061 U+E007F
NZ-OTA Otago
2024-01-31 12:12:37 -05:00
Xexxa cb63263551 Base: Modify emoji
👡 - U+1F461 WOMAN’S SANDAL

Add some shadow for more of a 3d-feeling.
2024-01-31 12:12:37 -05:00
Cubic Love 6685e4cb61 Base: Improve ColorLines Icons
The previous icons were downsampled games assets.
The new 32px and 16px application icons are purposefully crafted pixel
art for improved sharpness.
2024-01-22 09:20:54 +00:00
Bastiaan van der Plaat dc2233ef7a Ladybird+WebContent: Add chrome command line and exe path passing 2024-01-17 17:32:05 +01:00
Hugh Davenport 08eeb4f83b SystemMenu: Add hotkey for Utilities category 2024-01-14 15:16:45 -07:00
Hugh Davenport 4c02133ba8 SystemMenu: Add hotkey for Media category 2024-01-14 15:16:45 -07:00
Hugh Davenport 79adeffcb6 SystemMenu: Add hotkeys for Office category 2024-01-14 15:16:45 -07:00
Hugh Davenport 1e8002d7c7 SystemMenu: Add hotkeys for Internet menu 2024-01-14 15:16:45 -07:00
Hugh Davenport b9fa189d26 SystemMenu: Add hotkeys for Graphics menu 2024-01-14 15:16:45 -07:00
Hugh Davenport 3fa4161abd SystemMenu: Add hotkeys for Development menu 2024-01-14 15:16:45 -07:00
Hugh Davenport ec253840d7 SystemMenu: Add hotkeys for Demos system menu 2024-01-14 15:16:45 -07:00
Hugh Davenport 6272ee3104 Ports: Add hotkeys for games system menu 2024-01-14 15:16:45 -07:00
Hugh Davenport d59707d1f2 SystemMenu: Add hotkeys for Games category 2024-01-14 15:16:45 -07:00
Hugh Davenport 8e76265b0c Taskbar: Add hotkeys for theme selector menu 2024-01-14 15:16:45 -07:00
Sam Atkins cbd28c9110 HexEditor: Add annotations system
Allow the user to highlight sections of the edited document, giving them
arbitrary background colors. These annotations can be created from a
selection, or by manually specifying the start and end offsets.
Annotations can be edited or deleted by right-clicking them.

Any color can be used for the background. Dark colors automatically make
the text white for easier readability. When creating a new annotation,
we use whatever color the user last picked as this is slightly more
likely to be the one they want.

Icons contributed by Cubic Love.

Co-authored-by: Cubic Love <7754483+cubiclove@users.noreply.github.com>
2024-01-14 13:45:02 +00:00
Bastiaan van der Plaat cde14901bc Ladybird+LibWeb: Add initial about:version internal page 2024-01-13 13:41:09 -05:00
Bastiaan van der Plaat 05c0640474 Ladybird+LibWeb: Add about scheme support for internal pages 2024-01-13 13:41:09 -05:00
Bastiaan van der Plaat c0acb2918b Ladybird: Rename new-tab.html file to newtab.html 2024-01-13 13:41:09 -05:00
Bastiaan van der Plaat e3ad75d073 Ladybird: Move and format directory and error template files 2024-01-13 13:41:09 -05:00
Timothy Flynn 00510e40d9 LibWeb: Convert the cookie test page to a text test 2024-01-10 23:26:40 +01:00
Cubic Love b812ccd5e8 Base: Improve 2048 Icon
Make the icon the same colors as the original game's icon. Give the
tile slightly rounded corners and subtle shading.
2024-01-07 16:27:39 +00:00
Daniel La Rocque 242d1d8eba LibWeb: Fail to parse cookie date when date does not exist
Previously, the cookie date validation did not validate days in the
context of the month and year, resulting in dates that do not exist to
be successfully parsed (e.g. February 31st). We now validate that the
day does not exceed the number of days for the given month and year,
taking leap years into account.
2024-01-07 08:01:58 -05:00
Bastiaan van der Plaat 52397d01bd LibWeb: Add textarea placeholder 2024-01-07 10:22:32 +01:00
Timothy Flynn d11c7a19da LibWebView: Properly decode Base64-encoded strings as UTF-8
In the UI process, we encode generated HTML as Base64 to avoid having to
deal with things like arbitrarily nested quotes. The HTML is encoded as
UTF-8, and the raw bytes of that encoding are transcoded to Base64.

In the Inspector process, we are decoding the Base64 string using atob,
which has awkward non-Unicode limitations. The resulting string is only
a byte string. We must further decode the bytes as UTF-8, which we do
using TextDecoder.
2024-01-02 22:09:25 +01:00
Bastiaan van der Plaat f8feca5d21 LibWeb: Use directory page when viewing a resource schemed directory URL 2023-12-27 10:54:07 -05:00
Bastiaan van der Plaat b39d99cf2f LibWeb: Use resource scheme for icons in internal pages 2023-12-27 10:54:07 -05:00
Andrew Kaster b10fee00eb LibWeb+WebWorker: Convert Workers to use MessagePorts for postMessage
This aligns Workers and Window and MessagePorts to all use the same
mechanism for transferring serialized messages across realms.

It also allows transferring more message ports into a worker.

Re-enable the Worker-echo test, as none of the MessagePort tests have
themselves been flaky, and those are now using the same underlying
implementation.
2023-12-25 12:09:11 +01:00
Timothy Flynn bacf3cede4 Ladybird+BrowserSettings: Load the NTP/home resource files with LibWeb 2023-12-24 14:09:23 +01:00
Bastiaan van der Plaat c30911ab10 LibWeb: Hide select chevron icon when appearance: none; 2023-12-23 10:12:36 +01:00
Bastiaan van der Plaat 0f37e0ee89 LibWeb: Add basic input range rendering 2023-12-21 13:17:51 +01:00
Torstennator b65e711929 LibGUI: Add DynamicWidgetContainter
Add a new widget "DynamicWidgetContainer" that is used to group it's
child widgets within an collapsable and detachable container. The
DynmnicWidgetContainer is able to persist it's view state if a config
domain has been provided. Having that set will allow the widget to
restore it's view state automatically.
2023-12-14 09:07:20 -07:00
Nicolas Ramz cd6c7f3fc4 LibGfx/ILBMLoader: Add support for PC DeluxePaint files 2023-12-13 10:39:13 +00:00
Timothy Flynn 41ffc69c9d LibWebView: Clear the Inspector DOM/accessibility trees upon reset
This prevents rendering stale trees while navigating to a new page. The
old non-WebView inspector widgets behaved this way.
2023-12-10 16:45:08 +01:00
Timothy Flynn 55ec1cbfb5 LibWebView: Allow editing empty DOM text nodes in the Inspector
When a DOM text node is empty, we currently render the node name (which
is "#text") in the Inspector. This is just to prevent displaying nothing
at all, which looks a bit off. However, the patch to allow editing text
fields neglected to allow editing these empty fields.

This patch attaches the original text data as a data attribute, much
like we do for DOM attributes. That is used as the editable text in the
inspector, and the empty text fields are now wrapped in an editable
span.
2023-12-10 09:44:34 +01:00
Timothy Flynn 42c0ac9352 LibWebView: Log the result of taking screenshots to Inspector's console
It probably isn't obvious that screenshots are saved to the user's
Downloads folder, so add a console message to inform them.
2023-12-10 09:44:34 +01:00
Bastiaan van der Plaat 466153e680 Ladybird+LibWeb: Add basic select element support 2023-12-09 22:06:20 +01:00
Timothy Flynn 8162dc5ee6 LibWeb+LibWebView+WebContent: Separate tag/attribute in Inspector menu
It was a bit short-sighted to combine the tag and attribute names into
one string when the Inspector requests a context menu. We will want both
values for some context menu actions. Send both names, as well as the
attribute value, when requesting the context menu.
2023-12-07 10:53:12 +01:00
Timothy Flynn 636ff33d60 LibWebView: Add an escape key handler for DOM-editing <input> fields
Little quality of life improvement I keep reaching for.
2023-12-06 13:04:50 +01:00
Timothy Flynn 0ddc2ea8c4 LibWebView: Add Inspector actions to be used as context menu callbacks
These allow for triggering an edit of a DOM node (as an alternative to
double-clicking), removing a DOM node, and adding/removing DOM node
attributes.
2023-12-06 13:04:50 +01:00
Timothy Flynn 2633ea8c79 LibWeb+LibWebView+WebContent: Add an Inspector IPC to open context menus
The Inspector will have context menu support to manipulate the DOM, e.g.
adding or removing nodes/attributes. This context menu will require some
detailed knowledge about what element in the Inspector has been clicked.
To support this, we intercept the `contextmenu` event and collect the
required information to be sent to the Inspector client over IPC.
2023-12-06 13:04:50 +01:00