ladybird/Libraries/LibWeb
InvalidUsernameException 7c315ef67f Everywhere: Unify naming of RGBA-like colors
The `Bitmap` type was referring to to its internal pixel format by a
name that represents the order of the color components as they are layed
out in memory. Contrary, the `Color` type was using a naming that where
the name represents the order of the components from most to least
significant byte when viewed as a unsigned 32bit integer. This is
confusing as you have to keep remembering which mental model to use
depending on which code you work with.

To unify the two, the naming of RGBA-like colors in the `Color` type has
been adjusted to match the one from the Bitmap type. This seems to be
generally in line with how web APIs think about these types:
* `ImageData.pixelFormat` can be `rgba-8unorm` backed by a
  `Uint8ClamedArray`, but there is no pixel format backed by a 32bit
  unsigned type.
* WebGL can use format `RGBA` with type `UNSIGNED_BYTE`, but there is no
  such format with type `UNSIGNED_INT`.

Additionally, it appears that other browsers and browser-adjacent
libraries also think similarly about these types:
* Firefox:
  https://github.com/mozilla-firefox/firefox/blob/main/gfx/2d/Types.h
* WebKit:
  https://github.com/WebKit/WebKit/blob/main/Source/WebCore/platform/graphics/PixelFormat.h
* Skia:
  https://chromium.googlesource.com/skia/+/refs/heads/main/include/core/SkColorType.h

This has the not so nice side effect that APIs that interact with these
types through 32bit unsigned integers now have the component order
inverted due to little-endian byte order. E.g. specifying a color as hex
constant needs to be done as `0xAABBGGRR` if it is to be treated as
RGBA8888.

We could alleviate this by providing endian-independent APIs to callers.
But I suspect long-term we might want to think differently about bitmap
data anyway, e.g. to better support HDR in the future. However, such
changes would be more involved than just unifying the naming as done
here. So I considered that out of scope for now.
2025-11-28 18:32:48 +01:00
..
Animations LibWeb: Avoid unnecessary sorting work when getting animations 2025-11-26 22:19:23 +01:00
ARIA LibWeb: Shave 168 bytes off of ARIAMixin 2025-11-07 16:59:26 +01:00
Bindings LibWeb: Move mutation observers from IntrusiveList to GC::RootVector 2025-11-24 12:45:22 +00:00
Clipboard LibWeb+UI/AppKit: Ignore unknown clipboard MIME types 2025-10-10 15:10:03 -04:00
Compression LibCompress: Error out when encounters and incomplete stream 2025-06-14 18:26:56 -04:00
ContentSecurityPolicy LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
Cookie Everywhere: Change west consts caught by clang-format-21 to east consts 2025-08-29 18:18:55 +01:00
CookieStore LibWeb: Add missing cookie-age-limit steps to CookieStore::set() 2025-08-26 06:28:10 -04:00
CredentialManagement Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Crypto LibWeb: Implement encapsulateBits method for SubtleCrypto 2025-11-27 21:50:06 +01:00
CSS Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
DOM Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
DOMURL Everywhere: Change west consts caught by clang-format-21 to east consts 2025-08-29 18:18:55 +01:00
Editing LibWeb: Replace use of Optional<NonnullRefPtr> with RefPtr 2025-11-28 16:15:49 +00:00
Encoding LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
EncryptedMediaExtensions LibWeb/EME: Implement navigator.requestMediaKeySystemAccess 2025-08-27 09:58:00 +02:00
EntriesAPI LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
EventTiming Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Fetch LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
FileAPI LibWeb: Convert Ladybird notes in spec steps to // NB: ... 2025-11-18 09:07:37 -05:00
Gamepad LibWeb: Make eventInitDict GamepadEvent constructor parameter optional 2025-09-23 16:04:56 +01:00
Geolocation LibWeb: Implement emulated Geolocation position retrieval 2025-06-24 11:33:41 +02:00
Geometry LibWeb: Add method for whether tree-counting function is allowed 2025-10-20 16:12:08 +01:00
GPC LibWeb+LibWebView+WebContent: Replace DNT with GPC 2025-09-16 10:38:20 +02:00
HighResolutionTime Everywhere: Clean up AD-HOC and FIXME comments without colons 2025-11-13 15:56:04 +01:00
HTML Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
IndexedDB LibWeb/IDB: Handle cursor iteration more correctly 2025-11-13 08:52:16 -05:00
Infra LibTextCodec+LibWeb: Move isomorphic coders to LibTextCodec 2025-11-27 14:57:29 +01:00
Internals LibWeb: Add some tests that exercise the HTTP disk cache 2025-11-20 09:33:49 +01:00
IntersectionObserver LibJS+LibWeb: Use GC::Weak instead of AK::WeakPtr for GC-allocated types 2025-10-17 17:22:16 +02:00
Layout Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
Loader LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
MathML LibWeb/MathML: Stop shadowing value local variable 2025-11-14 09:55:02 +00:00
MediaCapabilitiesAPI LibWeb: Extract some CORS and MIME Fetch helpers to their own files 2025-11-27 14:57:29 +01:00
MediaSourceExtensions LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
MimeSniff LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
MixedContent LibWeb: Avoid including Navigable.h in headers 2025-10-20 10:16:55 +01:00
NavigationTiming LibWeb: Only expose performance.{timing,navigation} on Window 2025-07-25 11:46:58 +02:00
NotificationsAPI LibWeb: Add a simplified Notification constructor 2025-09-24 11:53:14 +01:00
Page Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
Painting Everywhere: Unify naming of RGBA-like colors 2025-11-28 18:32:48 +01:00
PerformanceTimeline LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
PermissionsPolicy LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Platform LibWeb: Support multiple emoji/symbol fonts 2025-11-03 09:56:25 +00:00
ReferrerPolicy LibWeb: Store HTTP methods and headers as ByteString 2025-11-26 09:15:06 -05:00
RequestIdleCallback LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
ResizeObserver LibJS+LibWeb: Use GC::Weak instead of AK::WeakPtr for GC-allocated types 2025-10-17 17:22:16 +02:00
ResourceTiming LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
SecureContexts LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
Selection LibWeb: Implement up/down arrow navigation for EditingHostManager 2025-09-18 07:39:10 -04:00
Serial LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
ServiceWorker LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
SRI LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
StorageAPI Everywhere: Implement persistence of localStorage using sqlite 2025-06-12 17:04:35 +02:00
Streams LibWeb: Fix typo "folowing" → "following" 2025-09-24 11:54:42 +01:00
SVG Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
TrustedTypes LibWeb: Allow CSP to block eval invocations based on TrustedTypes 2025-11-11 09:58:34 +01:00
UIEvents LibWeb: Avoid including Navigable.h in headers 2025-10-20 10:16:55 +01:00
URLPattern LibWeb: Only set prototype once for object with IDL interface 2025-04-20 18:43:11 +02:00
UserTiming LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
ViewTransition Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
WebAssembly LibWeb: Extract some CORS and MIME Fetch helpers to their own files 2025-11-27 14:57:29 +01:00
WebAudio LibWeb/WebAudio: Fire complete event with OfflineAudioCompletionEvent 2025-11-19 17:26:09 +01:00
WebDriver LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
WebGL Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
WebIDL LibJS: Add inline caching for adding new own properties to objects 2025-09-17 12:44:44 +02:00
WebSockets LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
WebVTT LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
Worker LibWeb: Implement cookie fetching for Workers 2025-09-09 15:28:38 +02:00
XHR LibHTTP+LibWeb+RequestServer: Move Fetch's HTTP header infra to LibHTTP 2025-11-27 14:57:29 +01:00
XLink LibWeb: Remove the initialize_strings methods 2025-01-12 00:35:58 +01:00
XML Everywhere: Clean up AD-HOC and FIXME comments without colons 2025-11-13 15:56:04 +01:00
XPath LibWeb: Implement XPath functionality using libxml2 2025-10-03 13:16:11 +02:00
CMakeLists.txt LibWeb: Parse view() for the animation-timeline CSS property 2025-11-28 13:24:11 +00:00
Dump.cpp LibWeb: Store correct text offsets in PaintableFragment 2025-09-12 15:34:09 -04:00
Dump.h LibWeb: Always show box model info when dumping layout tree 2025-08-27 11:53:45 +01:00
Forward.h LibWeb: Prefer transitioned property values over important 2025-11-28 16:15:49 +00:00
GraphemeEdgeTracker.cpp LibWeb: Add a FIXME comment about handling wrapping in arrow navigation 2025-09-18 07:39:10 -04:00
GraphemeEdgeTracker.h LibWeb: Move grapheme edge detection across lines to helper functions 2025-09-18 07:39:10 -04:00
idl_files.cmake LibWeb: Implement SVGAnimatedLengthList 2025-11-20 23:15:24 +01:00
InvalidateDisplayList.h
Namespace.cpp LibWeb: Remove the initialize_strings methods 2025-01-12 00:35:58 +01:00
Namespace.h LibWeb: Enable EXPLICIT_SYMBOL_EXPORT 2025-08-23 16:04:36 -06:00
PixelUnits.cpp
PixelUnits.h LibGfx+LibWeb: Delete unused Line class and Rect methods 2025-11-04 23:16:02 +01:00
TraversalDecision.h
TraversalOrder.h
TreeNode.h LibWeb: Make TreeNode::child_at_index() accept a size_t 2025-09-16 06:57:30 -04:00