2022-04-30 12:50:51 +02:00
|
|
|
include(libweb_generators)
|
2024-07-03 19:23:27 +02:00
|
|
|
include(vulkan)
|
2024-07-25 21:59:30 +03:00
|
|
|
include(skia)
|
2022-04-30 12:50:51 +02:00
|
|
|
|
2024-11-29 19:26:57 +01:00
|
|
|
if (APPLE)
|
|
|
|
find_package(unofficial-angle REQUIRED CONFIG)
|
|
|
|
endif()
|
|
|
|
|
2020-05-06 18:40:06 +03:00
|
|
|
set(SOURCES
|
2023-11-05 10:20:10 -07:00
|
|
|
Animations/Animatable.cpp
|
2023-11-06 15:17:19 +00:00
|
|
|
Animations/Animation.cpp
|
2023-11-06 15:17:15 +00:00
|
|
|
Animations/AnimationEffect.cpp
|
2023-11-04 12:20:39 -07:00
|
|
|
Animations/AnimationPlaybackEvent.cpp
|
2023-11-04 08:16:37 -07:00
|
|
|
Animations/AnimationTimeline.cpp
|
2023-11-04 08:32:30 -07:00
|
|
|
Animations/DocumentTimeline.cpp
|
2023-11-04 13:09:57 -07:00
|
|
|
Animations/KeyframeEffect.cpp
|
2024-11-08 15:41:49 +00:00
|
|
|
Animations/PseudoElementParsing.cpp
|
2023-02-25 15:50:34 -06:00
|
|
|
ARIA/AriaData.cpp
|
2023-01-28 22:23:16 +00:00
|
|
|
ARIA/ARIAMixin.cpp
|
2024-12-05 08:33:26 -05:00
|
|
|
ARIA/AttributeNames.cpp
|
2023-01-28 22:23:16 +00:00
|
|
|
ARIA/Roles.cpp
|
2023-05-21 08:59:08 -05:00
|
|
|
ARIA/RoleType.cpp
|
2023-04-23 11:07:01 -05:00
|
|
|
ARIA/StateAndProperties.cpp
|
2022-02-26 10:34:08 +00:00
|
|
|
Bindings/AudioConstructor.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Bindings/HostDefined.cpp
|
2021-03-20 05:22:27 +00:00
|
|
|
Bindings/ImageConstructor.cpp
|
2022-09-24 15:39:23 -06:00
|
|
|
Bindings/Intrinsics.cpp
|
2022-04-05 17:54:04 -03:00
|
|
|
Bindings/LocationConstructor.cpp
|
2021-02-03 10:41:07 +01:00
|
|
|
Bindings/MainThreadVM.cpp
|
2022-04-03 22:07:03 -03:00
|
|
|
Bindings/OptionConstructor.cpp
|
2022-08-27 13:53:31 +02:00
|
|
|
Bindings/PlatformObject.cpp
|
2024-10-26 21:02:28 +13:00
|
|
|
Bindings/PrincipalHostDefined.cpp
|
2024-10-26 19:46:13 +13:00
|
|
|
Bindings/SyntheticHostDefined.cpp
|
2023-11-10 13:29:20 -05:00
|
|
|
Clipboard/Clipboard.cpp
|
2024-08-20 18:26:55 -04:00
|
|
|
Clipboard/ClipboardEvent.cpp
|
2024-11-30 20:23:38 -08:00
|
|
|
Clipboard/ClipboardItem.cpp
|
2025-05-01 11:38:31 -04:00
|
|
|
Clipboard/SystemClipboard.cpp
|
2024-11-15 11:11:47 -05:00
|
|
|
Compression/CompressionStream.cpp
|
2024-11-15 14:40:04 -05:00
|
|
|
Compression/DecompressionStream.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
ContentSecurityPolicy/BlockingAlgorithms.cpp
|
2024-11-25 16:17:17 +00:00
|
|
|
ContentSecurityPolicy/Directives/Directive.cpp
|
|
|
|
ContentSecurityPolicy/Directives/DirectiveFactory.cpp
|
2024-11-25 17:22:08 +00:00
|
|
|
ContentSecurityPolicy/Directives/DirectiveOperations.cpp
|
2024-11-25 16:17:17 +00:00
|
|
|
ContentSecurityPolicy/Directives/Names.cpp
|
|
|
|
ContentSecurityPolicy/Directives/SerializedDirective.cpp
|
|
|
|
ContentSecurityPolicy/Policy.cpp
|
|
|
|
ContentSecurityPolicy/PolicyList.cpp
|
2024-11-26 15:43:02 +00:00
|
|
|
ContentSecurityPolicy/SecurityPolicyViolationEvent.cpp
|
2024-11-25 16:17:17 +00:00
|
|
|
ContentSecurityPolicy/SerializedPolicy.cpp
|
2024-11-25 17:22:08 +00:00
|
|
|
ContentSecurityPolicy/Violation.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Cookie/Cookie.cpp
|
|
|
|
Cookie/ParsedCookie.cpp
|
2025-01-30 22:29:26 +01:00
|
|
|
CredentialManagement/Credential.cpp
|
|
|
|
CredentialManagement/CredentialsContainer.cpp
|
|
|
|
CredentialManagement/FederatedCredential.cpp
|
|
|
|
CredentialManagement/PasswordCredential.cpp
|
2021-09-30 20:02:55 +03:00
|
|
|
Crypto/Crypto.cpp
|
2024-03-06 16:53:50 -07:00
|
|
|
Crypto/CryptoAlgorithms.cpp
|
2024-03-13 21:19:57 -06:00
|
|
|
Crypto/CryptoBindings.cpp
|
2023-12-15 20:25:35 +01:00
|
|
|
Crypto/CryptoKey.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Crypto/KeyAlgorithms.cpp
|
2021-12-13 22:09:55 +00:00
|
|
|
Crypto/SubtleCrypto.cpp
|
2022-02-21 17:43:30 +00:00
|
|
|
CSS/Angle.cpp
|
2023-11-04 14:00:09 -07:00
|
|
|
CSS/AnimationEvent.cpp
|
2025-03-14 10:31:27 +00:00
|
|
|
CSS/BooleanExpression.cpp
|
2023-03-30 16:57:49 +01:00
|
|
|
CSS/CalculatedOr.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/CascadedProperties.cpp
|
2022-07-31 18:47:09 +02:00
|
|
|
CSS/Clip.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/ComputedProperties.cpp
|
2024-07-17 11:46:08 +01:00
|
|
|
CSS/CountersSet.cpp
|
2023-03-15 10:55:53 -04:00
|
|
|
CSS/CSS.cpp
|
2023-11-04 13:57:57 -07:00
|
|
|
CSS/CSSAnimation.cpp
|
2021-09-28 16:53:15 +01:00
|
|
|
CSS/CSSConditionRule.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/CSSFontFaceDescriptors.cpp
|
|
|
|
CSS/CSSFontFaceRule.cpp
|
2021-09-28 16:20:32 +01:00
|
|
|
CSS/CSSGroupingRule.cpp
|
2021-02-21 18:36:34 +02:00
|
|
|
CSS/CSSImportRule.cpp
|
2023-05-26 23:30:54 +03:30
|
|
|
CSS/CSSKeyframeRule.cpp
|
|
|
|
CSS/CSSKeyframesRule.cpp
|
2024-09-02 16:45:25 +01:00
|
|
|
CSS/CSSLayerBlockRule.cpp
|
|
|
|
CSS/CSSLayerStatementRule.cpp
|
2021-09-29 12:48:04 +01:00
|
|
|
CSS/CSSMediaRule.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/CSSNamespaceRule.cpp
|
2024-10-15 15:59:31 +01:00
|
|
|
CSS/CSSNestedDeclarations.cpp
|
2023-07-05 20:07:24 +01:00
|
|
|
CSS/CSSNumericType.cpp
|
2024-10-17 23:28:09 +01:00
|
|
|
CSS/CSSPropertyRule.cpp
|
2021-02-21 13:45:26 +02:00
|
|
|
CSS/CSSRule.cpp
|
2021-09-28 15:17:11 +01:00
|
|
|
CSS/CSSRuleList.cpp
|
2021-03-13 20:11:33 +01:00
|
|
|
CSS/CSSStyleDeclaration.cpp
|
LibWeb/CSS: Merge style declaration subclasses into CSSStyleProperties
We previously had PropertyOwningCSSStyleDeclaration and
ResolvedCSSStyleDeclaration, representing the current style properties
and resolved style respectively. Both of these were the
CSSStyleDeclaration type in the CSSOM. (We also had
ElementInlineCSSStyleDeclaration but I removed that in a previous
commit.)
In the meantime, the spec has changed so that these should now be a new
CSSStyleProperties type in the CSSOM. Also, we need to subclass
CSSStyleDeclaration for things like CSSFontFaceRule's list of
descriptors, which means it wouldn't hold style properties.
So, this commit does the fairly messy work of combining these two types
into a new CSSStyleProperties class. A lot of what previously was done
as separate methods in the two classes, now follows the spec steps of
"if the readonly flag is set, do X" instead, which is hopefully easier
to follow too.
There is still some functionality in CSSStyleDeclaration that belongs in
CSSStyleProperties, but I'll do that next. To avoid a huge diff for
"CSSStyleDeclaration-all-supported-properties-and-default-values.txt"
both here and in the following commit, we don't apply the (currently
empty) CSSStyleProperties prototype yet.
2025-03-17 17:50:49 +00:00
|
|
|
CSS/CSSStyleProperties.cpp
|
2021-03-07 15:00:02 +01:00
|
|
|
CSS/CSSStyleRule.cpp
|
2021-03-07 16:14:04 +01:00
|
|
|
CSS/CSSStyleSheet.cpp
|
2024-08-14 11:10:54 +01:00
|
|
|
CSS/CSSStyleValue.cpp
|
2021-10-08 17:48:14 +01:00
|
|
|
CSS/CSSSupportsRule.cpp
|
2024-02-19 18:59:58 -07:00
|
|
|
CSS/CSSTransition.cpp
|
2025-04-02 17:05:48 +01:00
|
|
|
CSS/Descriptor.cpp
|
2022-02-13 01:02:00 +01:00
|
|
|
CSS/Display.cpp
|
2023-03-30 14:22:39 +01:00
|
|
|
CSS/EdgeRect.cpp
|
2024-12-20 15:53:18 +00:00
|
|
|
CSS/Fetch.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/Flex.cpp
|
2024-05-07 10:05:29 -06:00
|
|
|
CSS/FontFace.cpp
|
2024-05-07 14:49:31 -06:00
|
|
|
CSS/FontFaceSet.cpp
|
2022-02-21 17:49:47 +00:00
|
|
|
CSS/Frequency.cpp
|
2022-08-24 12:21:58 +02:00
|
|
|
CSS/GridTrackPlacement.cpp
|
2022-08-24 12:21:15 +02:00
|
|
|
CSS/GridTrackSize.cpp
|
2024-09-19 12:58:38 +01:00
|
|
|
CSS/Interpolation.cpp
|
2025-01-12 18:38:05 +03:00
|
|
|
CSS/InvalidationSet.cpp
|
2020-06-07 17:55:46 +02:00
|
|
|
CSS/Length.cpp
|
2022-09-13 17:42:39 +02:00
|
|
|
CSS/LengthBox.cpp
|
2021-09-29 12:08:09 +01:00
|
|
|
CSS/MediaList.cpp
|
2021-09-27 17:12:33 +01:00
|
|
|
CSS/MediaQuery.cpp
|
2021-09-12 16:55:10 +01:00
|
|
|
CSS/MediaQueryList.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
CSS/MediaQueryListEvent.cpp
|
2025-01-27 10:39:00 +00:00
|
|
|
CSS/Number.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/ParsedFontFace.cpp
|
2022-04-12 11:14:12 +01:00
|
|
|
CSS/Parser/ComponentValue.cpp
|
2025-04-02 17:05:48 +01:00
|
|
|
CSS/Parser/DescriptorParsing.cpp
|
2023-08-17 15:27:38 +01:00
|
|
|
CSS/Parser/GradientParsing.cpp
|
2023-07-09 11:48:45 +03:30
|
|
|
CSS/Parser/Helpers.cpp
|
2023-08-17 14:56:00 +01:00
|
|
|
CSS/Parser/MediaParsing.cpp
|
2021-03-22 17:41:47 +01:00
|
|
|
CSS/Parser/Parser.cpp
|
2025-02-06 14:08:26 +00:00
|
|
|
CSS/Parser/PropertyParsing.cpp
|
2025-04-14 17:10:20 +01:00
|
|
|
CSS/Parser/RuleContext.cpp
|
2024-10-31 16:03:06 +00:00
|
|
|
CSS/Parser/RuleParsing.cpp
|
2023-08-17 15:18:41 +01:00
|
|
|
CSS/Parser/SelectorParsing.cpp
|
2021-03-09 17:18:08 +01:00
|
|
|
CSS/Parser/Token.cpp
|
|
|
|
CSS/Parser/Tokenizer.cpp
|
2024-10-11 11:17:10 +01:00
|
|
|
CSS/Parser/Types.cpp
|
2025-02-06 14:08:26 +00:00
|
|
|
CSS/Parser/ValueParsing.cpp
|
2021-10-31 17:27:35 +00:00
|
|
|
CSS/PreferredColorScheme.cpp
|
2024-06-13 01:03:56 +02:00
|
|
|
CSS/PreferredContrast.cpp
|
2024-06-13 16:15:59 +02:00
|
|
|
CSS/PreferredMotion.cpp
|
2022-03-06 13:48:32 +00:00
|
|
|
CSS/Ratio.cpp
|
2022-02-21 17:51:01 +00:00
|
|
|
CSS/Resolution.cpp
|
2021-04-04 00:14:39 +02:00
|
|
|
CSS/Screen.cpp
|
2024-04-02 22:44:05 +02:00
|
|
|
CSS/ScreenOrientation.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
CSS/Selector.cpp
|
|
|
|
CSS/SelectorEngine.cpp
|
2022-02-21 17:34:07 +00:00
|
|
|
CSS/Serialize.cpp
|
2022-09-25 15:13:09 +02:00
|
|
|
CSS/Size.cpp
|
2024-09-09 17:16:25 +01:00
|
|
|
CSS/Sizing.cpp
|
2021-09-24 13:49:57 +02:00
|
|
|
CSS/StyleComputer.cpp
|
2024-03-19 12:02:06 +01:00
|
|
|
CSS/StyleInvalidation.cpp
|
2025-01-12 18:38:05 +03:00
|
|
|
CSS/StyleInvalidationData.cpp
|
2023-05-08 07:51:03 +02:00
|
|
|
CSS/StyleProperty.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
CSS/StyleSheet.cpp
|
2024-08-23 10:42:35 +01:00
|
|
|
CSS/StyleSheetIdentifier.cpp
|
2020-06-04 16:06:32 +02:00
|
|
|
CSS/StyleSheetList.cpp
|
2023-03-23 17:26:13 +00:00
|
|
|
CSS/StyleValues/AngleStyleValue.cpp
|
2023-03-23 17:44:13 +00:00
|
|
|
CSS/StyleValues/BackgroundRepeatStyleValue.cpp
|
2023-03-23 17:54:05 +00:00
|
|
|
CSS/StyleValues/BackgroundSizeStyleValue.cpp
|
2024-05-25 23:06:47 +01:00
|
|
|
CSS/StyleValues/BasicShapeStyleValue.cpp
|
2023-03-25 00:33:20 +00:00
|
|
|
CSS/StyleValues/BorderRadiusStyleValue.cpp
|
2024-12-11 15:05:56 +00:00
|
|
|
CSS/StyleValues/CalculatedStyleValue.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
CSS/StyleValues/ColorFunctionStyleValue.cpp
|
|
|
|
CSS/StyleValues/ColorMixStyleValue.cpp
|
2025-01-02 12:59:09 +11:00
|
|
|
CSS/StyleValues/ColorSchemeStyleValue.cpp
|
2023-03-24 16:09:41 +00:00
|
|
|
CSS/StyleValues/ConicGradientStyleValue.cpp
|
2023-03-23 21:17:43 +00:00
|
|
|
CSS/StyleValues/ContentStyleValue.cpp
|
2024-07-24 15:47:11 +01:00
|
|
|
CSS/StyleValues/CounterDefinitionsStyleValue.cpp
|
2024-07-24 14:56:16 +01:00
|
|
|
CSS/StyleValues/CounterStyleValue.cpp
|
2024-08-14 16:37:02 +01:00
|
|
|
CSS/StyleValues/CSSColorValue.cpp
|
2024-08-16 16:42:16 +01:00
|
|
|
CSS/StyleValues/CSSHSL.cpp
|
|
|
|
CSS/StyleValues/CSSHWB.cpp
|
2024-08-14 11:46:56 +01:00
|
|
|
CSS/StyleValues/CSSKeywordValue.cpp
|
2024-10-26 16:14:04 -04:00
|
|
|
CSS/StyleValues/CSSLabLike.cpp
|
2024-10-27 20:04:18 -04:00
|
|
|
CSS/StyleValues/CSSLCHLike.cpp
|
2025-01-05 09:51:58 +11:00
|
|
|
CSS/StyleValues/CSSLightDark.cpp
|
2024-08-16 16:42:16 +01:00
|
|
|
CSS/StyleValues/CSSRGB.cpp
|
2025-02-21 13:04:20 +00:00
|
|
|
CSS/StyleValues/CursorStyleValue.cpp
|
2023-04-26 21:05:38 +02:00
|
|
|
CSS/StyleValues/DisplayStyleValue.cpp
|
2023-07-06 02:29:36 +03:30
|
|
|
CSS/StyleValues/EasingStyleValue.cpp
|
2023-04-02 22:56:45 +01:00
|
|
|
CSS/StyleValues/EdgeStyleValue.cpp
|
2023-03-23 21:26:03 +00:00
|
|
|
CSS/StyleValues/FilterValueListStyleValue.cpp
|
2025-04-02 17:01:16 +01:00
|
|
|
CSS/StyleValues/FontSourceStyleValue.cpp
|
2025-05-02 13:55:58 +01:00
|
|
|
CSS/StyleValues/FontStyleStyleValue.cpp
|
2023-08-17 20:25:18 +02:00
|
|
|
CSS/StyleValues/GridAutoFlowStyleValue.cpp
|
2023-03-24 14:25:00 +00:00
|
|
|
CSS/StyleValues/GridTemplateAreaStyleValue.cpp
|
2023-03-24 14:53:08 +00:00
|
|
|
CSS/StyleValues/GridTrackPlacementStyleValue.cpp
|
2023-04-29 17:59:07 +02:00
|
|
|
CSS/StyleValues/GridTrackSizeListStyleValue.cpp
|
2023-03-24 15:17:11 +00:00
|
|
|
CSS/StyleValues/ImageStyleValue.cpp
|
2023-06-01 17:01:09 +01:00
|
|
|
CSS/StyleValues/IntegerStyleValue.cpp
|
2023-03-24 17:04:04 +00:00
|
|
|
CSS/StyleValues/LengthStyleValue.cpp
|
2023-03-24 16:17:50 +00:00
|
|
|
CSS/StyleValues/LinearGradientStyleValue.cpp
|
2023-09-07 15:29:54 +01:00
|
|
|
CSS/StyleValues/MathDepthStyleValue.cpp
|
2023-06-01 16:16:15 +01:00
|
|
|
CSS/StyleValues/NumberStyleValue.cpp
|
2024-09-30 17:05:52 +01:00
|
|
|
CSS/StyleValues/OpenTypeTaggedStyleValue.cpp
|
2023-03-24 17:35:31 +00:00
|
|
|
CSS/StyleValues/PositionStyleValue.cpp
|
2023-03-24 16:35:18 +00:00
|
|
|
CSS/StyleValues/RadialGradientStyleValue.cpp
|
2023-03-25 00:02:50 +00:00
|
|
|
CSS/StyleValues/RectStyleValue.cpp
|
2023-03-24 17:45:25 +00:00
|
|
|
CSS/StyleValues/ShadowStyleValue.cpp
|
2023-09-19 12:21:15 +01:00
|
|
|
CSS/StyleValues/ShorthandStyleValue.cpp
|
2023-03-25 00:12:21 +00:00
|
|
|
CSS/StyleValues/StyleValueList.cpp
|
2023-03-24 17:59:33 +00:00
|
|
|
CSS/StyleValues/TransformationStyleValue.cpp
|
2024-02-19 19:01:34 -07:00
|
|
|
CSS/StyleValues/TransitionStyleValue.cpp
|
2025-03-27 17:35:06 +00:00
|
|
|
CSS/StyleValues/UnicodeRangeStyleValue.cpp
|
2023-03-24 23:53:41 +00:00
|
|
|
CSS/StyleValues/UnresolvedStyleValue.cpp
|
2021-10-08 15:40:19 +01:00
|
|
|
CSS/Supports.cpp
|
2021-10-21 21:29:10 +01:00
|
|
|
CSS/SyntaxHighlighter/SyntaxHighlighter.cpp
|
2023-08-23 17:17:15 +01:00
|
|
|
CSS/SystemColor.cpp
|
2022-02-21 19:29:43 +00:00
|
|
|
CSS/Time.cpp
|
2023-10-13 17:25:23 +01:00
|
|
|
CSS/Transformation.cpp
|
2024-12-22 15:12:13 -05:00
|
|
|
CSS/TransitionEvent.cpp
|
2025-04-08 14:33:01 +01:00
|
|
|
CSS/URL.cpp
|
2023-06-17 16:40:35 +02:00
|
|
|
CSS/VisualViewport.cpp
|
2021-09-02 02:12:49 +01:00
|
|
|
DOM/AbortController.cpp
|
|
|
|
DOM/AbortSignal.cpp
|
2022-08-09 01:06:47 +02:00
|
|
|
DOM/AbstractRange.cpp
|
2022-12-11 12:38:27 -06:00
|
|
|
DOM/AccessibilityTreeNode.cpp
|
2024-03-08 19:27:24 +01:00
|
|
|
DOM/AdoptedStyleSheets.cpp
|
2022-09-18 01:03:58 +02:00
|
|
|
DOM/Attr.cpp
|
2022-06-27 21:20:59 +01:00
|
|
|
DOM/CDATASection.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/CharacterData.cpp
|
|
|
|
DOM/Comment.cpp
|
2021-09-27 16:10:56 +01:00
|
|
|
DOM/CustomEvent.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/Document.cpp
|
2020-08-17 19:14:30 +01:00
|
|
|
DOM/DocumentFragment.cpp
|
2021-09-26 01:03:42 +02:00
|
|
|
DOM/DocumentLoadEventDelayer.cpp
|
2023-05-04 08:48:53 -04:00
|
|
|
DOM/DocumentLoading.cpp
|
|
|
|
DOM/DocumentObserver.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/DocumentType.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
DOM/DOMEventListener.cpp
|
|
|
|
DOM/DOMImplementation.cpp
|
|
|
|
DOM/DOMTokenList.cpp
|
LibWeb: Separate text control input events handling from contenteditable
This input event handling change is intended to address the following
design issues:
- Having `DOM::Position` is unnecessary complexity when `Selection`
exists because caret position could be described by the selection
object with a collapsed state. Before this change, we had to
synchronize those whenever one of them was modified, and there were
already bugs caused by that, i.e., caret position was not changed when
selection offset was modified from the JS side.
- Selection API exposes selection offset within `<textarea>` and
`<input>`, which is not supposed to happen. These objects should
manage their selection state by themselves and have selection offset
even when they are not displayed.
- `EventHandler` looks only at `DOM::Text` owned by `DOM::Position`
while doing text manipulations. It works fine for `<input>` and
`<textarea>`, but `contenteditable` needs to consider all text
descendant text nodes; i.e., if the cursor is moved outside of
`DOM::Text`, we need to look for an adjacent text node to move the
cursor there.
With this change, `EventHandler` no longer does direct manipulations on
caret position or text content, but instead delegates them to the active
`InputEventsTarget`, which could be either
`FormAssociatedTextControlElement` (for `<input>` and `<textarea>`) or
`EditingHostManager` (for `contenteditable`). The `Selection` object is
used to manage both selection and caret position for `contenteditable`,
and text control elements manage their own selection state that is not
exposed by Selection API.
This change improves text editing on Discord, as now we don't have to
refocus the `contenteditable` element after character input. The problem
was that selection manipulations from the JS side were not propagated
to `DOM::Position`.
I expect this change to make future correctness improvements for
`contenteditable` (and `designMode`) easier, as now it's decoupled from
`<input>` and `<textarea>` and separated from `EventHandler`, which is
quite a busy file.
2024-10-23 21:26:58 +02:00
|
|
|
DOM/EditingHostManager.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/Element.cpp
|
2025-03-25 17:30:52 +00:00
|
|
|
DOM/ElementByIdMap.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/ElementFactory.cpp
|
2020-11-21 18:32:39 +00:00
|
|
|
DOM/Event.cpp
|
2020-09-06 14:28:41 +02:00
|
|
|
DOM/EventDispatcher.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/EventTarget.cpp
|
2021-05-20 12:30:27 +04:30
|
|
|
DOM/HTMLCollection.cpp
|
2022-08-08 14:12:01 +02:00
|
|
|
DOM/IDLEventListener.cpp
|
2021-10-02 20:33:45 +01:00
|
|
|
DOM/LiveNodeList.cpp
|
2022-07-11 16:37:51 +01:00
|
|
|
DOM/MutationObserver.cpp
|
|
|
|
DOM/MutationRecord.cpp
|
|
|
|
DOM/MutationType.cpp
|
2021-10-16 15:30:21 -04:00
|
|
|
DOM/NamedNodeMap.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/Node.cpp
|
2022-08-08 14:12:01 +02:00
|
|
|
DOM/NodeFilter.cpp
|
2022-03-09 14:34:32 +01:00
|
|
|
DOM/NodeIterator.cpp
|
2022-09-01 16:30:26 +02:00
|
|
|
DOM/NodeList.cpp
|
2022-01-29 20:23:48 +00:00
|
|
|
DOM/NodeOperations.cpp
|
2020-08-17 21:04:46 +01:00
|
|
|
DOM/ParentNode.cpp
|
2020-08-02 11:47:27 +02:00
|
|
|
DOM/Position.cpp
|
2021-04-06 17:06:23 +01:00
|
|
|
DOM/ProcessingInstruction.cpp
|
2022-02-19 12:31:39 +01:00
|
|
|
DOM/QualifiedName.cpp
|
2021-05-20 12:30:27 +04:30
|
|
|
DOM/Range.cpp
|
2020-11-21 18:32:39 +00:00
|
|
|
DOM/ShadowRoot.cpp
|
2023-09-05 14:49:30 -04:00
|
|
|
DOM/Slot.cpp
|
2023-09-05 13:07:35 -04:00
|
|
|
DOM/Slottable.cpp
|
2021-10-02 20:33:45 +01:00
|
|
|
DOM/StaticNodeList.cpp
|
2022-01-30 23:37:42 +00:00
|
|
|
DOM/StaticRange.cpp
|
2023-06-08 16:07:12 +01:00
|
|
|
DOM/StyleElementUtils.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
DOM/Text.cpp
|
2022-03-09 14:37:48 +01:00
|
|
|
DOM/TreeWalker.cpp
|
2024-07-21 15:06:05 +02:00
|
|
|
DOM/Utils.cpp
|
2023-04-05 23:00:08 +01:00
|
|
|
DOM/XMLDocument.cpp
|
2024-02-11 19:48:56 +13:00
|
|
|
DOMURL/DOMURL.cpp
|
|
|
|
DOMURL/URLSearchParams.cpp
|
|
|
|
DOMURL/URLSearchParamsIterator.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
Dump.cpp
|
2024-11-27 11:57:12 +01:00
|
|
|
Editing/CommandNames.cpp
|
|
|
|
Editing/Commands.cpp
|
|
|
|
Editing/ExecCommand.cpp
|
|
|
|
Editing/Internal/Algorithms.cpp
|
2022-02-15 14:16:21 +03:30
|
|
|
Encoding/TextDecoder.cpp
|
2021-12-12 18:05:11 +00:00
|
|
|
Encoding/TextEncoder.cpp
|
2025-02-07 12:40:26 +00:00
|
|
|
Encoding/TextEncoderCommon.cpp
|
2025-02-05 19:51:33 +00:00
|
|
|
Encoding/TextEncoderStream.cpp
|
2024-08-23 19:41:19 +01:00
|
|
|
EntriesAPI/FileSystemEntry.cpp
|
2024-09-22 15:12:55 -04:00
|
|
|
EventTiming/PerformanceEventTiming.cpp
|
2022-09-25 19:30:24 +01:00
|
|
|
Fetch/Body.cpp
|
2022-09-22 00:04:06 +01:00
|
|
|
Fetch/BodyInit.cpp
|
2022-09-25 19:33:13 +01:00
|
|
|
Fetch/Enums.cpp
|
2022-10-23 18:36:31 +02:00
|
|
|
Fetch/Fetching/Checks.cpp
|
2024-05-26 08:03:29 -04:00
|
|
|
Fetch/Fetching/FetchedDataReceiver.cpp
|
2022-10-23 22:16:14 +01:00
|
|
|
Fetch/Fetching/Fetching.cpp
|
|
|
|
Fetch/Fetching/PendingResponse.cpp
|
|
|
|
Fetch/Fetching/RefCountedFlag.cpp
|
2022-10-23 22:20:25 +01:00
|
|
|
Fetch/FetchMethod.cpp
|
2022-07-19 00:19:24 +01:00
|
|
|
Fetch/Headers.cpp
|
|
|
|
Fetch/HeadersIterator.cpp
|
2022-10-13 19:23:43 +02:00
|
|
|
Fetch/Infrastructure/FetchAlgorithms.cpp
|
2022-10-13 19:21:50 +02:00
|
|
|
Fetch/Infrastructure/FetchController.cpp
|
2022-10-13 19:24:23 +02:00
|
|
|
Fetch/Infrastructure/FetchParams.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Fetch/Infrastructure/FetchRecord.cpp
|
2022-10-13 19:20:27 +02:00
|
|
|
Fetch/Infrastructure/FetchTimingInfo.cpp
|
2022-07-10 19:25:42 +02:00
|
|
|
Fetch/Infrastructure/HTTP.cpp
|
2022-07-12 18:04:24 +01:00
|
|
|
Fetch/Infrastructure/HTTP/Bodies.cpp
|
2022-07-11 21:42:14 +01:00
|
|
|
Fetch/Infrastructure/HTTP/Headers.cpp
|
2022-07-10 19:28:47 +02:00
|
|
|
Fetch/Infrastructure/HTTP/Methods.cpp
|
2022-07-14 00:51:42 +01:00
|
|
|
Fetch/Infrastructure/HTTP/Requests.cpp
|
2022-07-16 17:55:29 +01:00
|
|
|
Fetch/Infrastructure/HTTP/Responses.cpp
|
2022-07-12 17:51:58 +01:00
|
|
|
Fetch/Infrastructure/HTTP/Statuses.cpp
|
2024-05-17 22:06:27 +02:00
|
|
|
Fetch/Infrastructure/IncrementalReadLoopReadRequest.cpp
|
2022-10-13 19:57:40 +02:00
|
|
|
Fetch/Infrastructure/MimeTypeBlocking.cpp
|
2024-05-31 18:44:49 +01:00
|
|
|
Fetch/Infrastructure/NetworkPartitionKey.cpp
|
2022-10-23 21:58:18 +01:00
|
|
|
Fetch/Infrastructure/NoSniffBlocking.cpp
|
2022-10-13 18:30:15 +02:00
|
|
|
Fetch/Infrastructure/PortBlocking.cpp
|
2022-10-25 19:36:50 +01:00
|
|
|
Fetch/Infrastructure/Task.cpp
|
2022-09-25 19:33:13 +01:00
|
|
|
Fetch/Infrastructure/URL.cpp
|
|
|
|
Fetch/Request.cpp
|
2022-09-25 19:36:30 +01:00
|
|
|
Fetch/Response.cpp
|
2022-07-10 18:31:17 +02:00
|
|
|
FileAPI/Blob.cpp
|
2023-08-01 18:29:54 -04:00
|
|
|
FileAPI/BlobURLStore.cpp
|
2022-07-24 21:32:18 +02:00
|
|
|
FileAPI/File.cpp
|
2022-10-03 21:10:39 -06:00
|
|
|
FileAPI/FileList.cpp
|
2023-09-09 13:29:01 +12:00
|
|
|
FileAPI/FileReader.cpp
|
2025-02-22 07:15:40 +00:00
|
|
|
FileAPI/FileReaderSync.cpp
|
2023-02-27 18:04:51 +00:00
|
|
|
Geometry/DOMMatrix.cpp
|
|
|
|
Geometry/DOMMatrixReadOnly.cpp
|
2022-09-03 21:32:14 +02:00
|
|
|
Geometry/DOMPoint.cpp
|
|
|
|
Geometry/DOMPointReadOnly.cpp
|
2023-08-20 22:03:41 +02:00
|
|
|
Geometry/DOMQuad.cpp
|
2022-09-04 01:59:58 +02:00
|
|
|
Geometry/DOMRect.cpp
|
2022-02-12 16:38:54 +03:00
|
|
|
Geometry/DOMRectList.cpp
|
2022-09-04 01:59:58 +02:00
|
|
|
Geometry/DOMRectReadOnly.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HighResolutionTime/Performance.cpp
|
|
|
|
HighResolutionTime/TimeOrigin.cpp
|
2024-09-01 12:52:14 +01:00
|
|
|
HTML/AbstractWorker.cpp
|
2023-05-20 16:11:36 +02:00
|
|
|
HTML/AnimatedBitmapDecodedImageData.cpp
|
2024-10-30 20:13:31 -04:00
|
|
|
HTML/AnimationFrameCallbackDriver.cpp
|
2020-08-12 13:22:59 +02:00
|
|
|
HTML/AttributeNames.cpp
|
2023-06-12 13:52:30 -04:00
|
|
|
HTML/AudioTrack.cpp
|
|
|
|
HTML/AudioTrackList.cpp
|
2025-02-09 15:56:54 +01:00
|
|
|
HTML/AutocompleteElement.cpp
|
2025-03-04 22:51:08 +01:00
|
|
|
HTML/BarProp.cpp
|
2024-11-02 09:22:13 -04:00
|
|
|
HTML/BeforeUnloadEvent.cpp
|
2024-07-13 14:51:28 +01:00
|
|
|
HTML/BroadcastChannel.cpp
|
2021-11-18 15:01:28 +01:00
|
|
|
HTML/BrowsingContext.cpp
|
2022-09-19 12:28:46 +02:00
|
|
|
HTML/BrowsingContextGroup.cpp
|
2022-08-12 17:28:54 +01:00
|
|
|
HTML/Canvas/CanvasDrawImage.cpp
|
2022-08-11 16:10:04 +01:00
|
|
|
HTML/Canvas/CanvasPath.cpp
|
2022-08-12 14:00:00 +01:00
|
|
|
HTML/Canvas/CanvasState.cpp
|
2022-02-03 20:08:27 +01:00
|
|
|
HTML/CanvasGradient.cpp
|
2023-02-02 20:47:46 +00:00
|
|
|
HTML/CanvasPattern.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/CanvasRenderingContext2D.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/CloseEvent.cpp
|
2024-06-21 22:53:05 +01:00
|
|
|
HTML/CloseWatcher.cpp
|
|
|
|
HTML/CloseWatcherManager.cpp
|
2025-04-04 12:35:20 +02:00
|
|
|
HTML/CommandEvent.cpp
|
2023-01-14 19:00:42 +05:30
|
|
|
HTML/CORSSettingAttribute.cpp
|
2022-09-24 14:02:47 +01:00
|
|
|
HTML/CrossOrigin/AbstractOperations.cpp
|
2022-03-08 19:32:35 +01:00
|
|
|
HTML/CrossOrigin/Reporting.cpp
|
2024-03-11 19:12:52 +01:00
|
|
|
HTML/CustomElements/CustomElementDefinition.cpp
|
2023-03-23 04:27:18 -04:00
|
|
|
HTML/CustomElements/CustomElementName.cpp
|
2023-03-29 23:46:18 +01:00
|
|
|
HTML/CustomElements/CustomElementReactionNames.cpp
|
|
|
|
HTML/CustomElements/CustomElementRegistry.cpp
|
2024-07-08 18:33:12 +02:00
|
|
|
HTML/DataTransfer.cpp
|
2024-08-15 12:18:56 -04:00
|
|
|
HTML/DataTransferItem.cpp
|
2024-08-15 12:20:22 -04:00
|
|
|
HTML/DataTransferItemList.cpp
|
2023-12-11 15:36:59 +01:00
|
|
|
HTML/Dates.cpp
|
2023-05-10 19:36:43 +02:00
|
|
|
HTML/DecodedImageData.cpp
|
2024-07-09 15:54:22 -06:00
|
|
|
HTML/DedicatedWorkerGlobalScope.cpp
|
2022-12-12 20:55:34 +01:00
|
|
|
HTML/DocumentState.cpp
|
2021-07-05 05:20:31 +01:00
|
|
|
HTML/DOMParser.cpp
|
2024-07-14 12:31:50 +01:00
|
|
|
HTML/DOMStringList.cpp
|
2021-09-26 15:24:41 +01:00
|
|
|
HTML/DOMStringMap.cpp
|
2024-08-16 13:31:42 -04:00
|
|
|
HTML/DragDataStore.cpp
|
2024-07-08 18:33:12 +02:00
|
|
|
HTML/DragEvent.cpp
|
2024-06-24 21:54:42 +01:00
|
|
|
HTML/ElementInternals.cpp
|
2024-07-08 22:54:49 +01:00
|
|
|
HTML/EmbedderPolicy.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/ErrorEvent.cpp
|
2022-08-08 14:12:01 +02:00
|
|
|
HTML/EventHandler.cpp
|
2021-09-08 23:09:18 +02:00
|
|
|
HTML/EventLoop/EventLoop.cpp
|
|
|
|
HTML/EventLoop/Task.cpp
|
|
|
|
HTML/EventLoop/TaskQueue.cpp
|
2020-11-21 19:15:57 +00:00
|
|
|
HTML/EventNames.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/EventSource.cpp
|
2024-03-14 12:26:00 -04:00
|
|
|
HTML/FileFilter.cpp
|
2022-11-05 14:30:49 +00:00
|
|
|
HTML/Focus.cpp
|
2021-04-20 11:50:29 +02:00
|
|
|
HTML/FormAssociatedElement.cpp
|
2023-02-03 21:50:05 +01:00
|
|
|
HTML/FormControlInfrastructure.cpp
|
2023-02-03 21:50:10 +01:00
|
|
|
HTML/FormDataEvent.cpp
|
2021-02-03 22:47:50 +01:00
|
|
|
HTML/GlobalEventHandlers.cpp
|
2024-04-15 04:25:24 +02:00
|
|
|
HTML/HashChangeEvent.cpp
|
2021-09-11 23:43:34 +01:00
|
|
|
HTML/History.cpp
|
2024-04-01 08:44:24 +02:00
|
|
|
HTML/HTMLAllCollection.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLAnchorElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLAreaElement.cpp
|
|
|
|
HTML/HTMLAudioElement.cpp
|
|
|
|
HTML/HTMLBaseElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLBodyElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/HTMLBRElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLButtonElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLCanvasElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLDataElement.cpp
|
|
|
|
HTML/HTMLDataListElement.cpp
|
|
|
|
HTML/HTMLDetailsElement.cpp
|
|
|
|
HTML/HTMLDialogElement.cpp
|
2020-11-12 04:16:41 +00:00
|
|
|
HTML/HTMLDirectoryElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLDivElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/HTMLDListElement.cpp
|
2023-06-21 13:53:09 +02:00
|
|
|
HTML/HTMLDocument.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLEmbedElement.cpp
|
|
|
|
HTML/HTMLFieldSetElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLFontElement.cpp
|
2024-11-02 09:22:13 -04:00
|
|
|
HTML/HTMLFormControlsCollection.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLFormElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLFrameElement.cpp
|
|
|
|
HTML/HTMLFrameSetElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLHeadElement.cpp
|
|
|
|
HTML/HTMLHeadingElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/HTMLHRElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLHtmlElement.cpp
|
2021-10-03 19:39:12 +02:00
|
|
|
HTML/HTMLHyperlinkElementUtils.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLIFrameElement.cpp
|
|
|
|
HTML/HTMLImageElement.cpp
|
|
|
|
HTML/HTMLInputElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLLabelElement.cpp
|
|
|
|
HTML/HTMLLegendElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/HTMLLIElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLLinkElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLMapElement.cpp
|
|
|
|
HTML/HTMLMarqueeElement.cpp
|
|
|
|
HTML/HTMLMediaElement.cpp
|
|
|
|
HTML/HTMLMenuElement.cpp
|
|
|
|
HTML/HTMLMetaElement.cpp
|
|
|
|
HTML/HTMLMeterElement.cpp
|
|
|
|
HTML/HTMLModElement.cpp
|
2020-08-12 13:22:59 +02:00
|
|
|
HTML/HTMLObjectElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/HTMLOListElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLOptGroupElement.cpp
|
|
|
|
HTML/HTMLOptionElement.cpp
|
2022-03-16 12:58:28 +01:00
|
|
|
HTML/HTMLOptionsCollection.cpp
|
2024-10-29 11:07:02 +01:00
|
|
|
HTML/HTMLOrSVGElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLOutputElement.cpp
|
|
|
|
HTML/HTMLParagraphElement.cpp
|
|
|
|
HTML/HTMLParamElement.cpp
|
|
|
|
HTML/HTMLPictureElement.cpp
|
|
|
|
HTML/HTMLPreElement.cpp
|
|
|
|
HTML/HTMLProgressElement.cpp
|
|
|
|
HTML/HTMLQuoteElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLScriptElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLSelectElement.cpp
|
|
|
|
HTML/HTMLSlotElement.cpp
|
|
|
|
HTML/HTMLSourceElement.cpp
|
|
|
|
HTML/HTMLSpanElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLStyleElement.cpp
|
2023-06-02 21:08:14 +02:00
|
|
|
HTML/HTMLSummaryElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLTableCaptionElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLTableCellElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLTableColElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLTableElement.cpp
|
|
|
|
HTML/HTMLTableRowElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLTableSectionElement.cpp
|
|
|
|
HTML/HTMLTemplateElement.cpp
|
|
|
|
HTML/HTMLTextAreaElement.cpp
|
|
|
|
HTML/HTMLTimeElement.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/HTMLTitleElement.cpp
|
2020-08-09 17:10:41 +01:00
|
|
|
HTML/HTMLTrackElement.cpp
|
|
|
|
HTML/HTMLUListElement.cpp
|
|
|
|
HTML/HTMLUnknownElement.cpp
|
|
|
|
HTML/HTMLVideoElement.cpp
|
2024-04-04 21:48:58 -04:00
|
|
|
HTML/ImageBitmap.cpp
|
2020-07-26 15:08:16 +02:00
|
|
|
HTML/ImageData.cpp
|
2023-05-10 19:36:43 +02:00
|
|
|
HTML/ImageRequest.cpp
|
2023-05-11 06:12:45 +02:00
|
|
|
HTML/ListOfAvailableImages.cpp
|
2023-01-18 17:41:12 +00:00
|
|
|
HTML/Location.cpp
|
2023-04-22 14:39:20 -04:00
|
|
|
HTML/MediaError.cpp
|
2021-09-19 22:12:31 +02:00
|
|
|
HTML/MessageChannel.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/MessageEvent.cpp
|
2021-09-19 22:12:31 +02:00
|
|
|
HTML/MessagePort.cpp
|
2023-02-28 00:23:53 +00:00
|
|
|
HTML/MimeType.cpp
|
|
|
|
HTML/MimeTypeArray.cpp
|
2022-12-12 11:46:54 +01:00
|
|
|
HTML/Navigable.cpp
|
2022-12-12 12:20:02 +01:00
|
|
|
HTML/NavigableContainer.cpp
|
2023-08-23 18:40:42 -06:00
|
|
|
HTML/NavigateEvent.cpp
|
2023-08-23 10:57:12 -06:00
|
|
|
HTML/Navigation.cpp
|
2023-08-23 10:53:11 -06:00
|
|
|
HTML/NavigationCurrentEntryChangeEvent.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/NavigationDestination.cpp
|
2023-08-23 10:47:05 -06:00
|
|
|
HTML/NavigationHistoryEntry.cpp
|
2024-10-25 10:26:01 -04:00
|
|
|
HTML/NavigationObserver.cpp
|
2024-04-21 19:57:33 +00:00
|
|
|
HTML/NavigationParams.cpp
|
2023-08-23 15:34:02 -06:00
|
|
|
HTML/NavigationTransition.cpp
|
2022-10-08 20:53:08 -06:00
|
|
|
HTML/Navigator.cpp
|
2023-09-18 18:29:51 +02:00
|
|
|
HTML/NavigatorBeacon.cpp
|
2022-10-08 20:53:08 -06:00
|
|
|
HTML/NavigatorID.cpp
|
2023-07-23 19:38:04 +03:00
|
|
|
HTML/Numbers.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/PageTransitionEvent.cpp
|
2020-07-28 19:18:23 +02:00
|
|
|
HTML/Parser/Entities.cpp
|
2021-05-12 10:47:12 +02:00
|
|
|
HTML/Parser/HTMLEncodingDetection.cpp
|
2021-09-25 23:15:48 +02:00
|
|
|
HTML/Parser/HTMLParser.cpp
|
2020-07-28 19:18:23 +02:00
|
|
|
HTML/Parser/HTMLToken.cpp
|
|
|
|
HTML/Parser/HTMLTokenizer.cpp
|
|
|
|
HTML/Parser/ListOfActiveFormattingElements.cpp
|
|
|
|
HTML/Parser/StackOfOpenElements.cpp
|
2022-08-11 16:50:23 +01:00
|
|
|
HTML/Path2D.cpp
|
2023-02-28 00:23:53 +00:00
|
|
|
HTML/Plugin.cpp
|
|
|
|
HTML/PluginArray.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/PolicyContainers.cpp
|
|
|
|
HTML/PopoverInvokerElement.cpp
|
|
|
|
HTML/PopStateEvent.cpp
|
2023-01-14 19:00:42 +05:30
|
|
|
HTML/PotentialCORSRequest.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/PromiseRejectionEvent.cpp
|
2024-11-02 09:22:13 -04:00
|
|
|
HTML/RadioNodeList.cpp
|
2025-02-25 04:07:53 +01:00
|
|
|
HTML/RenderingThread.cpp
|
2025-01-04 23:12:55 +13:00
|
|
|
HTML/Scripting/Agent.cpp
|
2021-09-09 18:03:01 +02:00
|
|
|
HTML/Scripting/ClassicScript.cpp
|
2021-10-14 16:12:53 +01:00
|
|
|
HTML/Scripting/Environments.cpp
|
2024-03-05 09:42:10 -07:00
|
|
|
HTML/Scripting/EnvironmentSettingsSnapshot.cpp
|
2022-02-07 15:12:41 +01:00
|
|
|
HTML/Scripting/ExceptionReporter.cpp
|
2022-10-03 21:04:15 +02:00
|
|
|
HTML/Scripting/Fetching.cpp
|
2024-04-13 21:22:05 +01:00
|
|
|
HTML/Scripting/ImportMap.cpp
|
|
|
|
HTML/Scripting/ImportMapParseResult.cpp
|
2022-10-03 20:58:36 +02:00
|
|
|
HTML/Scripting/ModuleMap.cpp
|
2022-10-03 21:01:59 +02:00
|
|
|
HTML/Scripting/ModuleScript.cpp
|
2021-09-09 18:03:01 +02:00
|
|
|
HTML/Scripting/Script.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/Scripting/SerializedEnvironmentSettingsObject.cpp
|
2025-04-24 15:04:13 +12:00
|
|
|
HTML/Scripting/SimilarOriginWindowAgent.cpp
|
2024-10-26 19:46:13 +13:00
|
|
|
HTML/Scripting/SyntheticRealmSettings.cpp
|
2023-07-06 07:37:29 -04:00
|
|
|
HTML/Scripting/TemporaryExecutionContext.cpp
|
2021-10-14 16:12:53 +01:00
|
|
|
HTML/Scripting/WindowEnvironmentSettingsObject.cpp
|
2025-04-24 15:22:25 +12:00
|
|
|
HTML/Scripting/WorkerAgent.cpp
|
2023-11-08 11:47:41 -07:00
|
|
|
HTML/Scripting/WorkerEnvironmentSettingsObject.cpp
|
2024-02-25 13:02:47 -05:00
|
|
|
HTML/SelectedFile.cpp
|
2023-12-07 15:53:49 +01:00
|
|
|
HTML/SelectItem.cpp
|
2024-11-25 14:30:12 +00:00
|
|
|
HTML/SerializedPolicyContainer.cpp
|
2022-12-12 10:58:30 +01:00
|
|
|
HTML/SessionHistoryEntry.cpp
|
2024-04-10 04:43:51 +02:00
|
|
|
HTML/SessionHistoryTraversalQueue.cpp
|
2024-10-26 21:35:21 +13:00
|
|
|
HTML/ShadowRealmGlobalScope.cpp
|
2024-08-03 15:27:08 +12:00
|
|
|
HTML/SharedResourceRequest.cpp
|
2025-05-02 12:06:41 -04:00
|
|
|
HTML/SharedWorker.cpp
|
|
|
|
HTML/SharedWorkerGlobalScope.cpp
|
2023-05-11 16:56:01 +02:00
|
|
|
HTML/SourceSet.cpp
|
2024-11-25 14:30:12 +00:00
|
|
|
HTML/SourceSnapshotParams.cpp
|
2022-02-08 19:38:29 +01:00
|
|
|
HTML/Storage.cpp
|
2024-12-23 22:45:19 +13:00
|
|
|
HTML/StorageEvent.cpp
|
2022-04-05 02:24:10 +02:00
|
|
|
HTML/StructuredSerialize.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
HTML/SubmitEvent.cpp
|
2021-05-20 23:15:33 +04:30
|
|
|
HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
|
2020-12-13 15:57:09 +01:00
|
|
|
HTML/TagNames.cpp
|
2021-12-30 22:15:38 +00:00
|
|
|
HTML/TextMetrics.cpp
|
2024-06-09 10:32:20 +01:00
|
|
|
HTML/TextTrack.cpp
|
2024-09-19 19:41:57 +01:00
|
|
|
HTML/TextTrackCue.cpp
|
2024-09-20 23:06:51 +01:00
|
|
|
HTML/TextTrackCueList.cpp
|
2024-06-09 11:07:41 +01:00
|
|
|
HTML/TextTrackList.cpp
|
2022-03-07 23:54:56 +01:00
|
|
|
HTML/Timer.cpp
|
2023-04-18 16:19:37 -04:00
|
|
|
HTML/TimeRanges.cpp
|
2023-08-31 13:28:49 -04:00
|
|
|
HTML/ToggleEvent.cpp
|
2024-05-27 15:54:11 -06:00
|
|
|
HTML/TokenizedFeatures.cpp
|
2023-04-04 09:28:59 -04:00
|
|
|
HTML/TrackEvent.cpp
|
2022-12-12 12:01:09 +01:00
|
|
|
HTML/TraversableNavigable.cpp
|
2024-11-08 16:35:16 +13:00
|
|
|
HTML/UniversalGlobalScope.cpp
|
2024-05-25 12:40:44 +01:00
|
|
|
HTML/UserActivation.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
HTML/ValidityState.cpp
|
2023-04-04 09:26:02 -04:00
|
|
|
HTML/VideoTrack.cpp
|
|
|
|
HTML/VideoTrackList.cpp
|
2024-01-30 20:05:00 -07:00
|
|
|
HTML/WebViewHints.cpp
|
2022-03-07 23:08:26 +01:00
|
|
|
HTML/Window.cpp
|
2022-06-27 19:48:54 +01:00
|
|
|
HTML/WindowEventHandlers.cpp
|
2023-03-05 23:58:47 +00:00
|
|
|
HTML/WindowOrWorkerGlobalScope.cpp
|
2022-09-24 16:24:41 +01:00
|
|
|
HTML/WindowProxy.cpp
|
2022-02-17 13:31:09 +01:00
|
|
|
HTML/Worker.cpp
|
2025-04-24 14:08:39 +12:00
|
|
|
HTML/WorkerAgentParent.cpp
|
2022-02-17 13:31:09 +01:00
|
|
|
HTML/WorkerDebugConsoleClient.cpp
|
2022-02-06 19:12:57 -07:00
|
|
|
HTML/WorkerGlobalScope.cpp
|
|
|
|
HTML/WorkerLocation.cpp
|
2022-09-04 14:37:49 +02:00
|
|
|
HTML/WorkerNavigator.cpp
|
2024-11-30 19:27:53 +13:00
|
|
|
HTML/WorkletGlobalScope.cpp
|
2025-03-03 13:04:14 +00:00
|
|
|
HTML/XMLSerializer.cpp
|
2024-11-07 18:49:31 +01:00
|
|
|
IndexedDB/IDBCursor.cpp
|
2025-01-08 23:55:08 +01:00
|
|
|
IndexedDB/IDBDatabase.cpp
|
2024-05-19 17:58:06 +12:00
|
|
|
IndexedDB/IDBFactory.cpp
|
2024-11-07 18:52:59 +01:00
|
|
|
IndexedDB/IDBIndex.cpp
|
2024-11-07 19:04:11 +01:00
|
|
|
IndexedDB/IDBKeyRange.cpp
|
2024-11-07 18:56:26 +01:00
|
|
|
IndexedDB/IDBObjectStore.cpp
|
2025-01-08 23:55:08 +01:00
|
|
|
IndexedDB/IDBOpenDBRequest.cpp
|
2024-05-19 18:03:00 +12:00
|
|
|
IndexedDB/IDBRequest.cpp
|
2024-11-07 19:00:20 +01:00
|
|
|
IndexedDB/IDBTransaction.cpp
|
2024-11-04 19:17:54 +01:00
|
|
|
IndexedDB/IDBVersionChangeEvent.cpp
|
2025-01-08 23:55:08 +01:00
|
|
|
IndexedDB/Internal/Algorithms.cpp
|
|
|
|
IndexedDB/Internal/Database.cpp
|
2025-04-01 18:26:13 +02:00
|
|
|
IndexedDB/Internal/Index.cpp
|
2025-01-08 23:55:08 +01:00
|
|
|
IndexedDB/Internal/Key.cpp
|
2025-03-24 20:29:33 +01:00
|
|
|
IndexedDB/Internal/ObjectStore.cpp
|
2025-01-08 23:55:08 +01:00
|
|
|
IndexedDB/Internal/RequestList.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Infra/ByteSequences.cpp
|
|
|
|
Infra/JSON.cpp
|
|
|
|
Infra/Strings.cpp
|
2024-03-27 15:30:54 +00:00
|
|
|
Internals/InternalAnimationTimeline.cpp
|
2023-07-21 11:59:49 +02:00
|
|
|
Internals/Internals.cpp
|
2025-03-16 09:32:07 -04:00
|
|
|
Internals/InternalsBase.cpp
|
2025-03-24 09:27:36 -04:00
|
|
|
Internals/WebUI.cpp
|
2021-10-13 14:20:50 -04:00
|
|
|
IntersectionObserver/IntersectionObserver.cpp
|
2023-07-06 23:44:07 +01:00
|
|
|
IntersectionObserver/IntersectionObserverEntry.cpp
|
2023-06-12 13:55:43 -04:00
|
|
|
Layout/AudioBox.cpp
|
2022-09-29 20:05:28 +02:00
|
|
|
Layout/AvailableSpace.cpp
|
2021-10-13 14:20:50 -04:00
|
|
|
Layout/BlockContainer.cpp
|
2020-11-22 13:38:18 +01:00
|
|
|
Layout/BlockFormattingContext.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/Box.cpp
|
|
|
|
Layout/BreakNode.cpp
|
|
|
|
Layout/CanvasBox.cpp
|
|
|
|
Layout/CheckBox.cpp
|
2024-11-05 08:07:13 +00:00
|
|
|
Layout/FieldSetBox.cpp
|
2021-01-18 17:33:46 +01:00
|
|
|
Layout/FlexFormattingContext.cpp
|
2020-11-22 13:38:18 +01:00
|
|
|
Layout/FormattingContext.cpp
|
2022-08-23 10:36:27 +02:00
|
|
|
Layout/GridFormattingContext.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/ImageBox.cpp
|
2024-02-18 20:10:37 -05:00
|
|
|
Layout/ImageProvider.cpp
|
2020-11-22 13:38:18 +01:00
|
|
|
Layout/InlineFormattingContext.cpp
|
2022-01-17 15:07:19 +01:00
|
|
|
Layout/InlineLevelIterator.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/InlineNode.cpp
|
2021-04-03 21:32:16 -04:00
|
|
|
Layout/Label.cpp
|
2022-03-10 22:46:35 +01:00
|
|
|
Layout/LabelableNode.cpp
|
2022-07-16 23:30:32 +02:00
|
|
|
Layout/LayoutState.cpp
|
2024-11-05 08:07:13 +00:00
|
|
|
Layout/LegendBox.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
Layout/LineBox.cpp
|
|
|
|
Layout/LineBoxFragment.cpp
|
2022-01-19 11:57:58 +01:00
|
|
|
Layout/LineBuilder.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/ListItemBox.cpp
|
|
|
|
Layout/ListItemMarkerBox.cpp
|
2024-11-26 12:00:15 +01:00
|
|
|
Layout/NavigableContainerViewport.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/Node.cpp
|
2021-04-03 09:07:45 -04:00
|
|
|
Layout/RadioButton.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/ReplacedBox.cpp
|
|
|
|
Layout/SVGBox.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Layout/SVGClipBox.cpp
|
2024-04-25 20:21:12 +02:00
|
|
|
Layout/SVGForeignObjectBox.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Layout/SVGFormattingContext.cpp
|
2022-02-11 12:37:22 +00:00
|
|
|
Layout/SVGGeometryBox.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/SVGGraphicsBox.cpp
|
2024-08-20 15:12:55 +01:00
|
|
|
Layout/SVGImageBox.cpp
|
2024-03-11 18:26:58 +00:00
|
|
|
Layout/SVGMaskBox.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Layout/SVGSVGBox.cpp
|
2023-06-08 21:32:33 +03:00
|
|
|
Layout/SVGTextBox.cpp
|
2023-12-17 18:35:21 +00:00
|
|
|
Layout/SVGTextPathBox.cpp
|
2020-11-22 13:38:18 +01:00
|
|
|
Layout/TableFormattingContext.cpp
|
2023-08-20 03:08:38 +00:00
|
|
|
Layout/TableGrid.cpp
|
2023-01-14 14:48:20 +01:00
|
|
|
Layout/TableWrapper.cpp
|
2020-11-22 15:53:01 +01:00
|
|
|
Layout/TextNode.cpp
|
2020-11-25 20:29:03 +01:00
|
|
|
Layout/TreeBuilder.cpp
|
2023-04-04 18:32:09 -04:00
|
|
|
Layout/VideoBox.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Layout/Viewport.cpp
|
2021-05-20 12:30:27 +04:30
|
|
|
Loader/ContentFilter.cpp
|
2022-02-26 17:50:31 +01:00
|
|
|
Loader/FileRequest.cpp
|
2023-09-21 17:32:31 +02:00
|
|
|
Loader/GeneratedPagesLoader.cpp
|
2021-04-14 10:34:18 -04:00
|
|
|
Loader/LoadRequest.cpp
|
2022-04-08 01:46:47 +04:30
|
|
|
Loader/ProxyMappings.cpp
|
2020-06-01 21:33:23 +02:00
|
|
|
Loader/Resource.cpp
|
2020-06-01 20:42:50 +02:00
|
|
|
Loader/ResourceLoader.cpp
|
2023-07-05 20:24:51 -05:00
|
|
|
MathML/MathMLElement.cpp
|
2023-07-05 20:25:52 -05:00
|
|
|
MathML/TagNames.cpp
|
2024-09-04 23:52:21 +01:00
|
|
|
MediaCapabilitiesAPI/MediaCapabilities.cpp
|
2024-11-01 14:03:15 +01:00
|
|
|
MediaSourceExtensions/BufferedChangeEvent.cpp
|
2024-11-18 12:13:48 +13:00
|
|
|
MediaSourceExtensions/EventNames.cpp
|
2024-11-01 14:03:15 +01:00
|
|
|
MediaSourceExtensions/ManagedMediaSource.cpp
|
|
|
|
MediaSourceExtensions/ManagedSourceBuffer.cpp
|
|
|
|
MediaSourceExtensions/MediaSource.cpp
|
|
|
|
MediaSourceExtensions/MediaSourceHandle.cpp
|
|
|
|
MediaSourceExtensions/SourceBuffer.cpp
|
|
|
|
MediaSourceExtensions/SourceBufferList.cpp
|
2022-02-11 20:53:47 +00:00
|
|
|
MimeSniff/MimeType.cpp
|
2023-10-05 21:24:13 -07:00
|
|
|
MimeSniff/Resource.cpp
|
2024-05-29 19:01:06 +01:00
|
|
|
MixedContent/AbstractOperations.cpp
|
2020-10-10 02:48:05 +01:00
|
|
|
Namespace.cpp
|
2023-03-22 19:12:57 +00:00
|
|
|
NavigationTiming/EntryNames.cpp
|
2024-08-01 19:50:52 -06:00
|
|
|
NavigationTiming/PerformanceNavigation.cpp
|
2021-01-18 15:06:13 +01:00
|
|
|
NavigationTiming/PerformanceTiming.cpp
|
2024-08-17 13:29:55 -04:00
|
|
|
Page/DragAndDropEventHandler.cpp
|
2021-05-20 12:30:27 +04:30
|
|
|
Page/EventHandler.cpp
|
2024-03-05 17:06:32 -05:00
|
|
|
Page/InputEvent.cpp
|
2020-07-28 19:27:41 +02:00
|
|
|
Page/Page.cpp
|
2023-06-12 13:55:43 -04:00
|
|
|
Painting/AudioPaintable.cpp
|
2021-09-19 15:58:26 +01:00
|
|
|
Painting/BackgroundPainting.cpp
|
2024-06-25 16:43:39 +02:00
|
|
|
Painting/BackingStore.cpp
|
2020-12-04 18:02:21 +01:00
|
|
|
Painting/BorderPainting.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/BorderRadiiData.cpp
|
2022-06-15 21:15:29 +01:00
|
|
|
Painting/BorderRadiusCornerClipper.cpp
|
2023-11-19 22:03:48 +01:00
|
|
|
Painting/BordersData.cpp
|
2025-02-17 13:54:36 +01:00
|
|
|
Painting/BoxModelMetrics.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/CanvasPaintable.cpp
|
|
|
|
Painting/CheckBoxPaintable.cpp
|
2024-08-10 14:24:25 +02:00
|
|
|
Painting/ClipFrame.cpp
|
2024-04-27 14:26:42 +02:00
|
|
|
Painting/ClippableAndScrollable.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/Command.cpp
|
2024-06-23 18:16:46 +02:00
|
|
|
Painting/DisplayList.cpp
|
2024-06-23 18:42:39 +02:00
|
|
|
Painting/DisplayListPlayerSkia.cpp
|
2024-06-23 18:40:10 +02:00
|
|
|
Painting/DisplayListRecorder.cpp
|
2024-11-23 15:47:32 +00:00
|
|
|
Painting/FieldSetPaintable.cpp
|
2022-07-17 19:47:43 +01:00
|
|
|
Painting/GradientPainting.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/ImagePaintable.cpp
|
2022-03-10 22:46:35 +01:00
|
|
|
Painting/LabelablePaintable.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/MarkerPaintable.cpp
|
2023-06-12 08:21:35 -04:00
|
|
|
Painting/MediaPaintable.cpp
|
2024-11-26 12:04:14 +01:00
|
|
|
Painting/NavigableContainerViewportPaintable.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/Paintable.cpp
|
2022-03-10 23:13:37 +01:00
|
|
|
Painting/PaintableBox.cpp
|
2024-01-12 21:25:05 +01:00
|
|
|
Painting/PaintableFragment.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/PaintContext.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/RadioButtonPaintable.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/ScrollFrame.cpp
|
|
|
|
Painting/ScrollState.cpp
|
|
|
|
Painting/ShadowPainting.cpp
|
|
|
|
Painting/StackingContext.cpp
|
|
|
|
Painting/SVGClipPaintable.cpp
|
2024-04-25 20:21:12 +02:00
|
|
|
Painting/SVGForeignObjectPaintable.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/SVGGraphicsPaintable.cpp
|
2024-04-25 20:08:40 +02:00
|
|
|
Painting/SVGMaskable.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/SVGMaskPaintable.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/SVGPaintable.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Painting/SVGPathPaintable.cpp
|
2022-03-10 14:02:25 +01:00
|
|
|
Painting/SVGSVGPaintable.cpp
|
2023-07-01 03:06:21 +00:00
|
|
|
Painting/TableBordersPainting.cpp
|
2022-07-17 19:47:43 +01:00
|
|
|
Painting/TextPaintable.cpp
|
2023-04-04 18:32:09 -04:00
|
|
|
Painting/VideoPaintable.cpp
|
2023-08-18 15:52:40 +02:00
|
|
|
Painting/ViewportPaintable.cpp
|
2023-03-22 19:12:57 +00:00
|
|
|
PerformanceTimeline/EntryTypes.cpp
|
2025-02-26 15:51:05 +00:00
|
|
|
PerformanceTimeline/EventNames.cpp
|
2023-03-22 19:12:57 +00:00
|
|
|
PerformanceTimeline/PerformanceEntry.cpp
|
2023-08-25 01:26:47 +01:00
|
|
|
PerformanceTimeline/PerformanceObserver.cpp
|
|
|
|
PerformanceTimeline/PerformanceObserverEntryList.cpp
|
2023-04-17 13:21:19 -04:00
|
|
|
PermissionsPolicy/AutoplayAllowlist.cpp
|
2023-07-23 01:09:39 +02:00
|
|
|
PixelUnits.cpp
|
2023-06-12 13:44:10 -04:00
|
|
|
Platform/AudioCodecPlugin.cpp
|
2023-07-04 05:02:19 -05:00
|
|
|
Platform/AudioCodecPluginAgnostic.cpp
|
2022-09-07 20:30:31 +02:00
|
|
|
Platform/EventLoopPlugin.cpp
|
2022-09-21 19:33:57 +01:00
|
|
|
Platform/EventLoopPluginSerenity.cpp
|
2022-09-08 11:55:12 +02:00
|
|
|
Platform/FontPlugin.cpp
|
2022-09-16 15:01:47 +02:00
|
|
|
Platform/ImageCodecPlugin.cpp
|
2022-09-07 20:30:31 +02:00
|
|
|
Platform/Timer.cpp
|
2022-09-21 19:33:57 +01:00
|
|
|
Platform/TimerSerenity.cpp
|
2022-10-13 19:10:27 +02:00
|
|
|
ReferrerPolicy/AbstractOperations.cpp
|
2023-03-29 12:46:50 +01:00
|
|
|
ReferrerPolicy/ReferrerPolicy.cpp
|
2021-09-17 01:42:36 +02:00
|
|
|
RequestIdleCallback/IdleDeadline.cpp
|
2024-02-19 05:06:39 +01:00
|
|
|
ResizeObserver/ResizeObservation.cpp
|
2021-10-11 00:18:07 +02:00
|
|
|
ResizeObserver/ResizeObserver.cpp
|
2024-02-19 05:06:39 +01:00
|
|
|
ResizeObserver/ResizeObserverEntry.cpp
|
|
|
|
ResizeObserver/ResizeObserverSize.cpp
|
2025-02-26 15:51:05 +00:00
|
|
|
ResourceTiming/PerformanceResourceTiming.cpp
|
2022-10-13 19:08:39 +02:00
|
|
|
SecureContexts/AbstractOperations.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Selection/Selection.cpp
|
2025-04-25 17:41:05 +12:00
|
|
|
ServiceWorker/EventNames.cpp
|
2024-10-03 20:17:49 -06:00
|
|
|
ServiceWorker/Job.cpp
|
2024-10-07 20:18:33 -06:00
|
|
|
ServiceWorker/Registration.cpp
|
2024-11-30 18:01:40 +13:00
|
|
|
ServiceWorker/ServiceWorker.cpp
|
|
|
|
ServiceWorker/ServiceWorkerContainer.cpp
|
2024-11-30 18:35:45 +13:00
|
|
|
ServiceWorker/ServiceWorkerGlobalScope.cpp
|
2024-11-30 17:27:25 +13:00
|
|
|
ServiceWorker/ServiceWorkerRecord.cpp
|
2024-11-30 18:01:40 +13:00
|
|
|
ServiceWorker/ServiceWorkerRegistration.cpp
|
2023-04-20 16:52:01 +01:00
|
|
|
SRI/SRI.cpp
|
2024-08-13 20:56:19 +01:00
|
|
|
StorageAPI/NavigatorStorage.cpp
|
2024-12-26 11:56:03 +13:00
|
|
|
StorageAPI/StorageBottle.cpp
|
|
|
|
StorageAPI/StorageEndpoint.cpp
|
2024-09-14 20:02:27 -06:00
|
|
|
StorageAPI/StorageKey.cpp
|
2024-08-13 20:54:58 +01:00
|
|
|
StorageAPI/StorageManager.cpp
|
2024-12-26 11:56:03 +13:00
|
|
|
StorageAPI/StorageShed.cpp
|
|
|
|
StorageAPI/StorageShelf.cpp
|
2022-09-21 23:27:13 +01:00
|
|
|
Streams/AbstractOperations.cpp
|
2023-06-18 20:26:19 +12:00
|
|
|
Streams/ByteLengthQueuingStrategy.cpp
|
2023-06-18 19:43:56 +12:00
|
|
|
Streams/CountQueuingStrategy.cpp
|
2024-11-15 07:32:57 -05:00
|
|
|
Streams/GenericTransformStream.cpp
|
2023-04-11 16:33:32 -07:00
|
|
|
Streams/ReadableByteStreamController.cpp
|
2022-09-21 23:27:13 +01:00
|
|
|
Streams/ReadableStream.cpp
|
2025-04-12 13:19:05 -04:00
|
|
|
Streams/ReadableStreamAsyncIterator.cpp
|
2023-04-08 12:01:49 -07:00
|
|
|
Streams/ReadableStreamBYOBReader.cpp
|
2023-04-10 18:37:27 -07:00
|
|
|
Streams/ReadableStreamBYOBRequest.cpp
|
2023-03-28 18:56:11 -07:00
|
|
|
Streams/ReadableStreamDefaultController.cpp
|
2023-03-28 18:30:22 -07:00
|
|
|
Streams/ReadableStreamDefaultReader.cpp
|
2023-03-28 17:43:34 -07:00
|
|
|
Streams/ReadableStreamGenericReader.cpp
|
2025-04-17 15:47:53 -04:00
|
|
|
Streams/ReadableStreamOperations.cpp
|
|
|
|
Streams/ReadableStreamPipeTo.cpp
|
|
|
|
Streams/ReadableStreamTee.cpp
|
2023-07-02 21:42:02 +02:00
|
|
|
Streams/Transformer.cpp
|
2023-07-06 19:37:12 +02:00
|
|
|
Streams/TransformStream.cpp
|
2023-07-07 15:49:22 +02:00
|
|
|
Streams/TransformStreamDefaultController.cpp
|
2025-04-17 20:02:23 -04:00
|
|
|
Streams/TransformStreamOperations.cpp
|
2023-04-02 15:15:53 -07:00
|
|
|
Streams/UnderlyingSink.cpp
|
2023-03-28 18:58:41 -07:00
|
|
|
Streams/UnderlyingSource.cpp
|
2023-04-02 15:15:53 -07:00
|
|
|
Streams/WritableStream.cpp
|
2023-04-01 19:53:28 -07:00
|
|
|
Streams/WritableStreamDefaultController.cpp
|
2023-03-30 19:27:45 -07:00
|
|
|
Streams/WritableStreamDefaultWriter.cpp
|
2025-04-17 17:21:29 -04:00
|
|
|
Streams/WritableStreamOperations.cpp
|
2021-09-15 00:26:16 +02:00
|
|
|
SVG/AttributeNames.cpp
|
2022-02-11 13:08:27 +00:00
|
|
|
SVG/AttributeParser.cpp
|
2024-06-23 17:05:47 +02:00
|
|
|
SVG/SVGAElement.cpp
|
2025-02-21 13:22:15 +01:00
|
|
|
SVG/SVGAnimatedEnumeration.cpp
|
2022-03-21 14:33:11 -04:00
|
|
|
SVG/SVGAnimatedLength.cpp
|
2023-04-18 18:51:00 +01:00
|
|
|
SVG/SVGAnimatedNumber.cpp
|
2024-01-24 22:54:16 +01:00
|
|
|
SVG/SVGAnimatedRect.cpp
|
2023-11-14 00:18:09 +00:00
|
|
|
SVG/SVGAnimatedString.cpp
|
2024-03-31 15:21:00 +01:00
|
|
|
SVG/SVGAnimatedTransformList.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGCircleElement.cpp
|
2022-04-10 19:05:12 +02:00
|
|
|
SVG/SVGClipPathElement.cpp
|
2023-05-20 16:34:52 +02:00
|
|
|
SVG/SVGDecodedImageData.cpp
|
2022-04-11 16:59:03 +02:00
|
|
|
SVG/SVGDefsElement.cpp
|
2024-04-15 18:43:01 +01:00
|
|
|
SVG/SVGDescElement.cpp
|
2022-04-10 19:05:12 +02:00
|
|
|
SVG/SVGElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGEllipseElement.cpp
|
|
|
|
SVG/SVGFilterElement.cpp
|
|
|
|
SVG/SVGForeignObjectElement.cpp
|
2021-09-18 00:04:19 +02:00
|
|
|
SVG/SVGGElement.cpp
|
2020-07-23 09:44:42 -07:00
|
|
|
SVG/SVGGeometryElement.cpp
|
2023-04-21 18:51:00 +01:00
|
|
|
SVG/SVGGradientElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGGraphicsElement.cpp
|
2024-08-20 15:12:55 +01:00
|
|
|
SVG/SVGImageElement.cpp
|
2022-03-21 14:20:48 -04:00
|
|
|
SVG/SVGLength.cpp
|
2023-04-22 18:51:00 +01:00
|
|
|
SVG/SVGLinearGradientElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGLineElement.cpp
|
2023-08-10 09:55:15 +02:00
|
|
|
SVG/SVGMaskElement.cpp
|
2024-08-16 17:27:32 +01:00
|
|
|
SVG/SVGMetadataElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGPathElement.cpp
|
2022-02-11 17:36:05 +00:00
|
|
|
SVG/SVGPolygonElement.cpp
|
2022-02-11 17:28:24 +00:00
|
|
|
SVG/SVGPolylineElement.cpp
|
2023-05-02 23:11:58 +01:00
|
|
|
SVG/SVGRadialGradientElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGRectElement.cpp
|
2023-09-23 08:56:49 +12:00
|
|
|
SVG/SVGScriptElement.cpp
|
2023-04-20 18:51:00 +01:00
|
|
|
SVG/SVGStopElement.cpp
|
2023-06-08 17:48:33 +01:00
|
|
|
SVG/SVGStyleElement.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
SVG/SVGSVGElement.cpp
|
2023-05-31 00:50:12 +01:00
|
|
|
SVG/SVGSymbolElement.cpp
|
2022-03-20 11:20:06 +01:00
|
|
|
SVG/SVGTextContentElement.cpp
|
2023-07-22 19:24:55 +01:00
|
|
|
SVG/SVGTextElement.cpp
|
2023-12-17 18:35:21 +00:00
|
|
|
SVG/SVGTextPathElement.cpp
|
2023-07-22 19:24:55 +01:00
|
|
|
SVG/SVGTextPositioningElement.cpp
|
2023-06-08 11:46:44 -04:00
|
|
|
SVG/SVGTitleElement.cpp
|
2024-03-31 14:41:00 +01:00
|
|
|
SVG/SVGTransform.cpp
|
2024-03-31 14:54:00 +01:00
|
|
|
SVG/SVGTransformList.cpp
|
2023-07-22 19:34:51 +01:00
|
|
|
SVG/SVGTSpanElement.cpp
|
2023-05-30 21:23:52 +01:00
|
|
|
SVG/SVGUseElement.cpp
|
2020-07-23 09:44:42 -07:00
|
|
|
SVG/TagNames.cpp
|
2021-09-15 01:06:57 +02:00
|
|
|
SVG/ViewBox.cpp
|
2024-07-18 20:22:44 +01:00
|
|
|
UIEvents/CompositionEvent.cpp
|
2020-11-21 19:15:57 +00:00
|
|
|
UIEvents/EventNames.cpp
|
2022-02-07 00:04:10 +01:00
|
|
|
UIEvents/FocusEvent.cpp
|
2024-07-18 19:35:14 +01:00
|
|
|
UIEvents/InputEvent.cpp
|
2024-02-24 06:08:26 +01:00
|
|
|
UIEvents/InputTypes.cpp
|
2021-09-27 23:22:21 +02:00
|
|
|
UIEvents/KeyboardEvent.cpp
|
2020-11-21 18:32:39 +00:00
|
|
|
UIEvents/MouseEvent.cpp
|
2024-04-07 19:51:02 +02:00
|
|
|
UIEvents/PointerEvent.cpp
|
2024-10-05 14:44:59 +01:00
|
|
|
UIEvents/TextEvent.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
UIEvents/UIEvent.cpp
|
2022-10-17 20:54:01 +03:00
|
|
|
UIEvents/WheelEvent.cpp
|
2025-01-05 23:33:26 +13:00
|
|
|
URLPattern/URLPattern.cpp
|
2023-03-23 17:07:52 +00:00
|
|
|
UserTiming/PerformanceMark.cpp
|
2023-05-13 13:34:28 +01:00
|
|
|
UserTiming/PerformanceMeasure.cpp
|
2024-12-23 14:47:25 -07:00
|
|
|
WebAssembly/Global.cpp
|
2023-03-15 18:15:28 -04:00
|
|
|
WebAssembly/Instance.cpp
|
2023-03-15 19:29:57 -04:00
|
|
|
WebAssembly/Memory.cpp
|
2023-03-15 14:47:54 -04:00
|
|
|
WebAssembly/Module.cpp
|
2023-03-15 20:16:22 -04:00
|
|
|
WebAssembly/Table.cpp
|
2023-03-16 12:59:32 -04:00
|
|
|
WebAssembly/WebAssembly.cpp
|
2024-09-18 09:09:18 -04:00
|
|
|
WebAudio/AnalyserNode.cpp
|
2024-04-25 15:13:51 +12:00
|
|
|
WebAudio/AudioBuffer.cpp
|
2024-07-21 15:24:25 +03:00
|
|
|
WebAudio/AudioBufferSourceNode.cpp
|
2023-05-21 20:36:22 +01:00
|
|
|
WebAudio/AudioContext.cpp
|
2024-07-24 16:44:49 +12:00
|
|
|
WebAudio/AudioDestinationNode.cpp
|
2024-10-17 21:26:01 +02:00
|
|
|
WebAudio/AudioListener.cpp
|
2024-04-28 12:46:07 +12:00
|
|
|
WebAudio/AudioNode.cpp
|
2024-04-28 12:26:30 +12:00
|
|
|
WebAudio/AudioParam.cpp
|
2024-04-28 13:17:44 +12:00
|
|
|
WebAudio/AudioScheduledSourceNode.cpp
|
2023-05-21 20:36:22 +01:00
|
|
|
WebAudio/BaseAudioContext.cpp
|
2024-07-21 21:25:14 +03:00
|
|
|
WebAudio/BiquadFilterNode.cpp
|
2024-11-25 14:30:36 +01:00
|
|
|
WebAudio/ChannelMergerNode.cpp
|
2025-01-01 22:00:52 +00:00
|
|
|
WebAudio/ChannelSplitterNode.cpp
|
2025-01-02 10:14:31 +00:00
|
|
|
WebAudio/ConstantSourceNode.cpp
|
2025-01-03 23:42:22 +00:00
|
|
|
WebAudio/DelayNode.cpp
|
2024-05-05 10:53:34 +12:00
|
|
|
WebAudio/DynamicsCompressorNode.cpp
|
2024-05-28 15:42:07 +12:00
|
|
|
WebAudio/GainNode.cpp
|
2025-01-15 23:07:00 +00:00
|
|
|
WebAudio/MediaElementAudioSourceNode.cpp
|
2024-04-27 07:45:57 +12:00
|
|
|
WebAudio/OfflineAudioContext.cpp
|
2024-04-28 13:29:14 +12:00
|
|
|
WebAudio/OscillatorNode.cpp
|
2024-12-13 21:40:25 +00:00
|
|
|
WebAudio/PannerNode.cpp
|
2024-04-28 12:19:19 +12:00
|
|
|
WebAudio/PeriodicWave.cpp
|
2025-01-17 14:56:20 +00:00
|
|
|
WebAudio/StereoPannerNode.cpp
|
2024-09-26 16:33:21 -04:00
|
|
|
WebDriver/Actions.cpp
|
2022-11-17 12:57:14 -05:00
|
|
|
WebDriver/Capabilities.cpp
|
2022-11-12 23:23:37 -05:00
|
|
|
WebDriver/Client.cpp
|
2023-04-20 17:41:32 +01:00
|
|
|
WebDriver/Contexts.cpp
|
2022-11-09 15:01:28 -05:00
|
|
|
WebDriver/ElementLocationStrategies.cpp
|
2024-09-13 19:34:47 -04:00
|
|
|
WebDriver/ElementReference.cpp
|
2022-11-08 10:10:27 -05:00
|
|
|
WebDriver/Error.cpp
|
2022-11-02 18:02:19 +00:00
|
|
|
WebDriver/ExecuteScript.cpp
|
2024-10-25 11:02:31 -04:00
|
|
|
WebDriver/HeapTimer.cpp
|
2024-09-26 13:17:18 -04:00
|
|
|
WebDriver/InputSource.cpp
|
|
|
|
WebDriver/InputState.cpp
|
2024-11-02 14:29:37 -04:00
|
|
|
WebDriver/JSON.cpp
|
2025-02-07 13:52:41 -05:00
|
|
|
WebDriver/Proxy.cpp
|
2022-11-08 09:42:36 -05:00
|
|
|
WebDriver/Response.cpp
|
2022-11-10 14:57:16 -05:00
|
|
|
WebDriver/Screenshot.cpp
|
2022-11-11 14:22:03 -05:00
|
|
|
WebDriver/TimeoutsConfiguration.cpp
|
2025-02-05 11:36:19 -05:00
|
|
|
WebDriver/UserPrompt.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
WebGL/EventNames.cpp
|
2025-01-10 14:27:03 +00:00
|
|
|
WebGL/Extensions/ANGLEInstancedArrays.cpp
|
2025-04-07 16:47:26 +01:00
|
|
|
WebGL/Extensions/EXTBlendMinMax.cpp
|
2025-03-05 17:13:52 +00:00
|
|
|
WebGL/Extensions/EXTColorBufferFloat.cpp
|
2025-01-10 14:27:03 +00:00
|
|
|
WebGL/Extensions/OESVertexArrayObject.cpp
|
2025-01-28 18:25:26 +00:00
|
|
|
WebGL/Extensions/WebGLCompressedTextureS3tc.cpp
|
2025-01-10 16:36:00 +00:00
|
|
|
WebGL/Extensions/WebGLDrawBuffers.cpp
|
2025-01-10 14:27:03 +00:00
|
|
|
WebGL/Extensions/WebGLVertexArrayObjectOES.cpp
|
2024-01-18 20:29:09 +01:00
|
|
|
WebGL/OpenGLContext.cpp
|
2024-12-05 20:56:18 -07:00
|
|
|
WebGL/WebGL2RenderingContext.cpp
|
2024-11-13 10:15:42 +01:00
|
|
|
WebGL/WebGLActiveInfo.cpp
|
2024-11-13 09:35:57 +01:00
|
|
|
WebGL/WebGLBuffer.cpp
|
2022-06-04 04:22:42 +01:00
|
|
|
WebGL/WebGLContextAttributes.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
WebGL/WebGLContextEvent.cpp
|
2024-11-13 09:46:25 +01:00
|
|
|
WebGL/WebGLFramebuffer.cpp
|
2024-11-13 09:31:46 +01:00
|
|
|
WebGL/WebGLObject.cpp
|
2024-11-13 09:59:10 +01:00
|
|
|
WebGL/WebGLProgram.cpp
|
2024-12-05 17:53:50 -07:00
|
|
|
WebGL/WebGLQuery.cpp
|
2024-11-13 10:03:53 +01:00
|
|
|
WebGL/WebGLRenderbuffer.cpp
|
2022-06-04 04:22:42 +01:00
|
|
|
WebGL/WebGLRenderingContext.cpp
|
2024-12-05 19:12:40 -07:00
|
|
|
WebGL/WebGLSampler.cpp
|
2024-11-13 10:06:07 +01:00
|
|
|
WebGL/WebGLShader.cpp
|
2024-11-13 10:18:51 +01:00
|
|
|
WebGL/WebGLShaderPrecisionFormat.cpp
|
2024-12-05 19:18:40 -07:00
|
|
|
WebGL/WebGLSync.cpp
|
2024-11-13 10:08:30 +01:00
|
|
|
WebGL/WebGLTexture.cpp
|
2024-12-05 19:23:19 -07:00
|
|
|
WebGL/WebGLTransformFeedback.cpp
|
2024-11-13 10:11:08 +01:00
|
|
|
WebGL/WebGLUniformLocation.cpp
|
2024-12-05 19:25:39 -07:00
|
|
|
WebGL/WebGLVertexArrayObject.cpp
|
2022-09-24 16:14:37 +01:00
|
|
|
WebIDL/AbstractOperations.cpp
|
2025-04-12 13:18:02 -04:00
|
|
|
WebIDL/AsyncIterator.cpp
|
2023-11-23 20:07:25 +13:00
|
|
|
WebIDL/Buffers.cpp
|
2022-09-24 16:02:41 +01:00
|
|
|
WebIDL/CallbackType.cpp
|
2022-09-25 17:28:46 +01:00
|
|
|
WebIDL/DOMException.cpp
|
2024-03-07 23:29:25 +01:00
|
|
|
WebIDL/ObservableArray.cpp
|
2022-09-24 16:18:31 +01:00
|
|
|
WebIDL/OverloadResolution.cpp
|
2022-09-22 23:36:09 +01:00
|
|
|
WebIDL/Promise.cpp
|
2024-04-16 14:39:57 +02:00
|
|
|
WebIDL/Tracing.cpp
|
2022-02-18 17:35:45 +00:00
|
|
|
WebSockets/WebSocket.cpp
|
2024-09-19 21:49:54 +01:00
|
|
|
WebVTT/VTTCue.cpp
|
2024-09-19 19:18:00 +01:00
|
|
|
WebVTT/VTTRegion.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
Worker/WebWorkerClient.cpp
|
2021-01-23 17:50:22 +00:00
|
|
|
XHR/EventNames.cpp
|
2023-02-03 21:50:05 +01:00
|
|
|
XHR/FormData.cpp
|
2023-03-05 17:29:11 +01:00
|
|
|
XHR/FormDataIterator.cpp
|
2022-08-08 22:29:40 +02:00
|
|
|
XHR/ProgressEvent.cpp
|
2021-01-23 11:51:36 +01:00
|
|
|
XHR/XMLHttpRequest.cpp
|
2021-09-19 01:41:55 +02:00
|
|
|
XHR/XMLHttpRequestEventTarget.cpp
|
2023-02-28 18:27:52 +00:00
|
|
|
XHR/XMLHttpRequestUpload.cpp
|
2023-10-01 14:59:51 +13:00
|
|
|
XLink/AttributeNames.cpp
|
2025-05-02 12:02:41 -04:00
|
|
|
XML/XMLDocumentBuilder.cpp
|
2020-05-06 18:40:06 +03:00
|
|
|
)
|
|
|
|
|
2023-11-08 11:47:41 -07:00
|
|
|
compile_ipc(Worker/WebWorkerClient.ipc Worker/WebWorkerClientEndpoint.h)
|
|
|
|
compile_ipc(Worker/WebWorkerServer.ipc Worker/WebWorkerServerEndpoint.h)
|
|
|
|
|
2023-05-21 08:59:08 -05:00
|
|
|
invoke_generator(
|
2024-11-23 15:47:32 +00:00
|
|
|
"AriaRoles.cpp"
|
|
|
|
Lagom::GenerateAriaRoles
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
|
|
|
|
"ARIA/AriaRoles.h"
|
|
|
|
"ARIA/AriaRoles.cpp"
|
|
|
|
arguments -j "${CMAKE_CURRENT_SOURCE_DIR}/ARIA/AriaRoles.json"
|
2023-05-21 08:59:08 -05:00
|
|
|
)
|
|
|
|
|
2022-04-30 12:50:51 +02:00
|
|
|
generate_css_implementation()
|
2022-03-08 15:00:27 +00:00
|
|
|
|
LibWeb: Make named character references more spec-compliant & efficient
There are two changes happening here: a correctness fix, and an
optimization. In theory they are unrelated, but the optimization
actually paves the way for the correctness fix.
Before this commit, the HTML tokenizer would attempt to look for named
character references by checking from after the `&` until the end of
m_decoded_input, which meant that it was unable to recognize things like
named character references that are inserted via `document.write` one
byte at a time. For example, if `∉` was written one-byte-at-a-time
with `document.write`, then the tokenizer would only check against `n`
since that's all that would exist at the time of the check and therefore
erroneously conclude that it was an invalid named character reference.
This commit modifies the approach taken for named character reference
matching by using a trie-like structure (specifically, a deterministic
acyclic finite state automaton or DAFSA), which allows for efficiently
matching one-character-at-a-time and therefore it is able to pick up
matching where it left off after each code point is consumed.
Note: Because it's possible for a partial match to not actually develop
into a full match (e.g. `¬indo` which could lead to `⋵̸`),
some backtracking is performed after-the-fact in order to only consume
the code points within the longest match found (e.g. `¬indo` would
backtrack back to `¬`).
With this new approach, `document.write` being called one-byte-at-a-time
is handled correctly, which allows for passing more WPT tests, with the
most directly relevant tests being
`/html/syntax/parsing/html5lib_entities01.html`
and
`/html/syntax/parsing/html5lib_entities02.html`
when run with `?run_type=write_single`. Additionally, the implementation
now better conforms to the language of the spec (and resolves a FIXME)
because exactly the matched characters are consumed and nothing more, so
SWITCH_TO is able to be used as the spec says instead of RECONSUME_IN.
The new approach is also an optimization:
- Instead of a linear search using `starts_with`, the usage of a DAFSA
means that it is always aware of which characters can lead to a match
at any given point, and will bail out whenever a match is no longer
possible.
- The DAFSA is able to take advantage of the note in the section
`13.5 Named character references` that says "This list is static and
will not be expanded or changed in the future." and tailor its Node
struct accordingly to tightly pack each node's data into 32-bits.
Together with the inherent DAFSA property of redundant node
deduplication, the amount of data stored for named character reference
matching is minimized.
In my testing:
- A benchmark tokenizing an arbitrary set of HTML test files was about
1.23x faster (2070ms to 1682ms).
- A benchmark tokenizing a file with tens of thousands of named
character references mixed in with truncated named character
references and arbitrary ASCII characters/ampersands runs about 8x
faster (758ms to 93ms).
- The size of `liblagom-web.so` was reduced by 94.96KiB.
Some technical details:
A DAFSA (deterministic acyclic finite state automaton) is essentially a
trie flattened into an array, but it also uses techniques to minimize
redundant nodes. This provides fast lookups while minimizing the
required data size, but normally does not allow for associating data
related to each word. However, by adding a count of the number of
possible words from each node, it becomes possible to also use it to
achieve minimal perfect hashing for the set of words (which allows going
from word -> unique index as well as unique index -> word). This allows
us to store a second array of data so that the DAFSA can be used as a
lookup for e.g. the associated code points.
For the Swift implementation, the new NamedCharacterReferenceMatcher
was used to satisfy the previous API and the tokenizer was left alone
otherwise. In the future, the Swift implementation should be updated to
use the same implementation for its NamedCharacterReference state as
the updated C++ implementation.
2024-12-22 07:09:31 -08:00
|
|
|
generate_html_implementation()
|
|
|
|
|
2024-11-29 22:34:46 +01:00
|
|
|
invoke_generator(
|
|
|
|
"WebGLRenderingContextImpl.cpp"
|
|
|
|
Lagom::GenerateWebGLRenderingContext
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/WebGL/WebGLRenderingContextBase.idl"
|
|
|
|
"WebGL/WebGLRenderingContextImpl.h"
|
|
|
|
"WebGL/WebGLRenderingContextImpl.cpp"
|
|
|
|
arguments -b "${CMAKE_CURRENT_SOURCE_DIR}" -b "${CMAKE_CURRENT_BINARY_DIR}" -i "${CMAKE_CURRENT_SOURCE_DIR}/WebGL/WebGLRenderingContext.idl"
|
|
|
|
# NOTE: GeneratedCSSStyleProperties.idl is listed because it's transitively included by WebGLRenderingContextBase.idl
|
|
|
|
# and we need to make sure it's generated before we generate the WebGLRenderingContext implementation.
|
|
|
|
dependencies WebGL/WebGLRenderingContextBase.idl WebGL/WebGLRenderingContextOverloads.idl CSS/GeneratedCSSStyleProperties.idl
|
|
|
|
)
|
|
|
|
|
2024-12-05 20:56:18 -07:00
|
|
|
invoke_generator(
|
|
|
|
"WebGL2RenderingContextImpl.cpp"
|
|
|
|
Lagom::GenerateWebGLRenderingContext
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/WebGL/WebGL2RenderingContextBase.idl"
|
|
|
|
"WebGL/WebGL2RenderingContextImpl.h"
|
|
|
|
"WebGL/WebGL2RenderingContextImpl.cpp"
|
|
|
|
arguments -b "${CMAKE_CURRENT_SOURCE_DIR}" -b "${CMAKE_CURRENT_BINARY_DIR}" -i "${CMAKE_CURRENT_SOURCE_DIR}/WebGL/WebGL2RenderingContext.idl"
|
|
|
|
# NOTE: GeneratedCSSStyleProperties.idl is listed because it's transitively included by WebGLRenderingContextBase.idl
|
|
|
|
# and we need to make sure it's generated before we generate the WebGLRenderingContext implementation.
|
|
|
|
dependencies WebGL/WebGL2RenderingContextBase.idl WebGL/WebGL2RenderingContextOverloads.idl WebGL/WebGLRenderingContextBase.idl WebGL/WebGLRenderingContextOverloads.idl CSS/GeneratedCSSStyleProperties.idl
|
|
|
|
)
|
|
|
|
|
2022-04-30 12:50:51 +02:00
|
|
|
set(GENERATED_SOURCES
|
2023-05-21 08:59:08 -05:00
|
|
|
ARIA/AriaRoles.cpp
|
2022-04-30 12:50:51 +02:00
|
|
|
CSS/DefaultStyleSheetSource.cpp
|
2025-03-24 17:34:20 +00:00
|
|
|
CSS/DescriptorID.cpp
|
2022-04-30 12:50:51 +02:00
|
|
|
CSS/Enums.cpp
|
2024-11-14 16:57:14 +00:00
|
|
|
CSS/GeneratedCSSStyleProperties.cpp
|
2024-11-15 14:46:52 +00:00
|
|
|
CSS/GeneratedCSSStyleProperties.idl
|
2024-08-14 14:06:03 +01:00
|
|
|
CSS/Keyword.cpp
|
2023-07-13 14:59:31 +01:00
|
|
|
CSS/MathFunctions.cpp
|
2022-04-30 12:50:51 +02:00
|
|
|
CSS/MediaFeatureID.cpp
|
|
|
|
CSS/PropertyID.cpp
|
2023-08-12 13:27:24 +01:00
|
|
|
CSS/PseudoClass.cpp
|
2025-03-19 14:58:22 +00:00
|
|
|
CSS/PseudoElement.cpp
|
2022-04-30 12:50:51 +02:00
|
|
|
CSS/QuirksModeStyleSheetSource.cpp
|
|
|
|
CSS/TransformFunctions.cpp
|
2023-07-30 17:35:10 -05:00
|
|
|
MathML/MathMLStyleSheetSource.cpp
|
2023-09-23 14:23:47 +01:00
|
|
|
SVG/SVGStyleSheetSource.cpp
|
2024-12-05 20:56:18 -07:00
|
|
|
WebGL/WebGL2RenderingContextImpl.cpp
|
2024-11-29 22:34:46 +01:00
|
|
|
WebGL/WebGLRenderingContextImpl.cpp
|
2023-11-08 11:47:41 -07:00
|
|
|
Worker/WebWorkerClientEndpoint.h
|
|
|
|
Worker/WebWorkerServerEndpoint.h
|
LibWeb: Make named character references more spec-compliant & efficient
There are two changes happening here: a correctness fix, and an
optimization. In theory they are unrelated, but the optimization
actually paves the way for the correctness fix.
Before this commit, the HTML tokenizer would attempt to look for named
character references by checking from after the `&` until the end of
m_decoded_input, which meant that it was unable to recognize things like
named character references that are inserted via `document.write` one
byte at a time. For example, if `∉` was written one-byte-at-a-time
with `document.write`, then the tokenizer would only check against `n`
since that's all that would exist at the time of the check and therefore
erroneously conclude that it was an invalid named character reference.
This commit modifies the approach taken for named character reference
matching by using a trie-like structure (specifically, a deterministic
acyclic finite state automaton or DAFSA), which allows for efficiently
matching one-character-at-a-time and therefore it is able to pick up
matching where it left off after each code point is consumed.
Note: Because it's possible for a partial match to not actually develop
into a full match (e.g. `¬indo` which could lead to `⋵̸`),
some backtracking is performed after-the-fact in order to only consume
the code points within the longest match found (e.g. `¬indo` would
backtrack back to `¬`).
With this new approach, `document.write` being called one-byte-at-a-time
is handled correctly, which allows for passing more WPT tests, with the
most directly relevant tests being
`/html/syntax/parsing/html5lib_entities01.html`
and
`/html/syntax/parsing/html5lib_entities02.html`
when run with `?run_type=write_single`. Additionally, the implementation
now better conforms to the language of the spec (and resolves a FIXME)
because exactly the matched characters are consumed and nothing more, so
SWITCH_TO is able to be used as the spec says instead of RECONSUME_IN.
The new approach is also an optimization:
- Instead of a linear search using `starts_with`, the usage of a DAFSA
means that it is always aware of which characters can lead to a match
at any given point, and will bail out whenever a match is no longer
possible.
- The DAFSA is able to take advantage of the note in the section
`13.5 Named character references` that says "This list is static and
will not be expanded or changed in the future." and tailor its Node
struct accordingly to tightly pack each node's data into 32-bits.
Together with the inherent DAFSA property of redundant node
deduplication, the amount of data stored for named character reference
matching is minimized.
In my testing:
- A benchmark tokenizing an arbitrary set of HTML test files was about
1.23x faster (2070ms to 1682ms).
- A benchmark tokenizing a file with tens of thousands of named
character references mixed in with truncated named character
references and arbitrary ASCII characters/ampersands runs about 8x
faster (758ms to 93ms).
- The size of `liblagom-web.so` was reduced by 94.96KiB.
Some technical details:
A DAFSA (deterministic acyclic finite state automaton) is essentially a
trie flattened into an array, but it also uses techniques to minimize
redundant nodes. This provides fast lookups while minimizing the
required data size, but normally does not allow for associating data
related to each word. However, by adding a count of the number of
possible words from each node, it becomes possible to also use it to
achieve minimal perfect hashing for the set of words (which allows going
from word -> unique index as well as unique index -> word). This allows
us to store a second array of data so that the DAFSA can be used as a
lookup for e.g. the associated code points.
For the Swift implementation, the new NamedCharacterReferenceMatcher
was used to satisfy the previous API and the tokenizer was left alone
otherwise. In the future, the Swift implementation should be updated to
use the same implementation for its NamedCharacterReference state as
the updated C++ implementation.
2024-12-22 07:09:31 -08:00
|
|
|
HTML/Parser/NamedCharacterReferences.cpp
|
2022-04-17 15:33:50 +01:00
|
|
|
)
|
|
|
|
|
2022-04-30 12:50:51 +02:00
|
|
|
serenity_lib(LibWeb web)
|
2022-06-04 04:22:42 +01:00
|
|
|
|
2025-02-25 04:07:53 +01:00
|
|
|
target_link_libraries(LibWeb PRIVATE LibCore LibCompress LibCrypto LibJS LibHTTP LibGfx LibIPC LibRegex LibSyntax LibTextCodec LibUnicode LibMedia LibWasm LibXML LibIDL LibURL LibTLS LibRequests LibGC LibThreading skia)
|
2020-12-15 20:39:09 +01:00
|
|
|
|
2024-11-29 19:26:57 +01:00
|
|
|
if (APPLE)
|
|
|
|
target_link_libraries(LibWeb PRIVATE unofficial::angle::libEGL unofficial::angle::libGLESv2)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
# FIXME: https://github.com/microsoft/vcpkg/issues/42324
|
|
|
|
target_include_directories(LibWeb PRIVATE ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include)
|
|
|
|
|
2022-09-21 18:22:16 +01:00
|
|
|
generate_js_bindings(LibWeb)
|
2020-05-06 18:40:06 +03:00
|
|
|
|
2024-08-06 21:58:38 -06:00
|
|
|
if (ENABLE_SWIFT)
|
2024-08-23 17:39:53 -06:00
|
|
|
include(collections)
|
|
|
|
|
2024-08-06 21:58:38 -06:00
|
|
|
set(generated_headers ${GENERATED_SOURCES})
|
|
|
|
list(FILTER generated_headers INCLUDE REGEX "\\.h$")
|
|
|
|
list(TRANSFORM generated_headers PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
|
|
|
|
list(APPEND LIBWEB_ALL_GENERATED_HEADERS ${generated_headers})
|
|
|
|
|
|
|
|
generate_clang_module_map(LibWeb GENERATED_FILES ${LIBWEB_ALL_GENERATED_HEADERS})
|
2024-08-17 20:16:16 -06:00
|
|
|
|
|
|
|
target_sources(LibWeb PRIVATE
|
|
|
|
HTML/Parser/HTMLToken.swift
|
2024-08-23 17:39:53 -06:00
|
|
|
HTML/Parser/HTMLTokenizer.swift
|
|
|
|
HTML/Parser/HTMLTokenizerHelpers.cpp
|
2025-03-22 19:12:30 -06:00
|
|
|
HTML/Parser/SpeculativeHTMLParser.swift
|
2024-08-17 20:16:16 -06:00
|
|
|
)
|
2024-08-23 17:39:53 -06:00
|
|
|
target_link_libraries(LibWeb PRIVATE AK Collections)
|
2025-04-04 07:04:10 -06:00
|
|
|
add_swift_target_properties(LibWeb LAGOM_LIBRARIES AK LibGfx LibGC)
|
2024-08-06 21:58:38 -06:00
|
|
|
endif()
|