1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00
serenity/Userland/Libraries/LibWeb
Timothy Flynn 18b9d02edd LibWeb: Implement setTimeout/setInterval with ESO according to the spec
Our setInterval implementation currently crashes on DuckDuckGo when it's
invoked with a string argument. In this path, we were creating a native
function to evaluate and execute that string. That evaluation was always
returning a Completion, but NativeFunction expects ThrowCompletionOr.
The conversion from Completion to ThrowCompletionOr would fail a VERIFY
because that conversion is only valid if the Completion is an error; but
we would trigger this conversion even on success.

This change re-implements setTimeout & setInterval in direct accordance
with the spec. So we avoid making that NativeFunction altogether, and
DDG can progress past its invocation to the timer. With this change, we
also have other features we did not previously support, such as passing
any number of arguments to the timers. This does not implement handling
of nesting levels yet.
2022-03-04 19:51:26 +01:00
..
Bindings LibWeb: Implement setTimeout/setInterval with ESO according to the spec 2022-03-04 19:51:26 +01:00
Cookie Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2022-01-31 18:23:22 +00:00
Crypto LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
CSS LibWeb: Preserve z-index:auto in CSS::ComputedValues 2022-03-04 15:52:42 +01:00
DOM LibWeb: Implement setTimeout/setInterval with ESO according to the spec 2022-03-04 19:51:26 +01:00
DOMParsing LibWeb: Clean up static function in header 2021-10-06 23:52:40 +01:00
DumpLayoutTree Everywhere: Remove unused ArgsParser header 2021-11-01 21:12:58 +01:00
Encoding LibWeb: Implement a very basic version of TextDecoder 2022-02-16 22:48:32 +03:30
Fetch LibWeb: Implement spec-compliant MIME type struct and parser 2022-02-12 12:53:28 +01:00
Geometry LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
HighResolutionTime LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
HTML LibWeb: Include cookies in form submission 2022-03-03 15:08:35 +01:00
IntersectionObserver LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
Layout LibWeb: Implement hit testing a bit closer to spec 2022-03-04 15:52:42 +01:00
Loader LibWeb: Check for valid names in Document.createElement() & friends 2022-02-26 10:03:07 +01:00
MimeSniff LibWeb: Fix comparing current position to quote in Mime Type quote parse 2022-02-12 17:13:14 +00:00
NavigationTiming LibWeb: Use RefCountForwarder for NavigationTiming::PerformanceTiming 2021-12-09 21:28:52 +01:00
Page LibWeb: Add key code 'Esc' to ignored Keydown Events in EventHandler 2022-02-20 10:57:30 +01:00
Painting LibWeb: Make stacking context tree dumps more readable 2022-03-04 15:52:42 +01:00
RequestIdleCallback LibWeb: Add the IdleDeadline interface from the RequestIdleCallback spec 2021-09-17 13:20:18 +02:00
ResizeObserver LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
Scripts Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Selection LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
SVG LibWeb: Make SVGSVGElement's view_box() const 2022-02-28 16:49:24 +01:00
Tests LibWeb: Capture <script> element's node document on execution 2021-12-21 13:50:00 -08:00
UIEvents LibWeb: Implement UIEvent.initUIEvent() 2022-02-25 19:38:31 +01:00
URL LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
WebAssembly LibWeb: Don't check for get().is_empty() in WebAssemblyMemoryConstructor 2022-02-16 22:48:32 +03:30
WebSockets LibWeb: Send Origin on WebSocket connection 2022-03-02 21:38:17 +01:00
XHR LibWeb: Separate "event listener" from "EventListener" 2022-02-16 22:21:45 +01:00
CMakeLists.txt LibWeb: Move some of PaintContext out of line 2022-02-28 14:17:44 +01:00
DOMTreeModel.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
DOMTreeModel.h AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
Dump.cpp LibWeb: Align actual baselines, not just bottoms 2022-03-03 12:57:53 +01:00
Dump.h LibWeb: Small improvements to layout tree dumps 2022-03-03 12:57:53 +01:00
FontCache.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FontCache.h Everywhere: Fully qualify font names by including their slope 2022-02-01 10:06:26 +01:00
Forward.h LibWeb: Forward-declare FormattingState as a struct 2022-03-03 13:56:37 +01:00
ImageDecoding.cpp LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
ImageDecoding.h LibWeb: Move ImageDecoder client connection singleton to its own file 2021-11-20 10:56:31 +01:00
InProcessWebView.cpp LibWeb: Rename Layout::Box::size() to content_size() 2022-02-06 01:07:47 +01:00
InProcessWebView.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Namespace.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Namespace.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Origin.h LibWeb: Add origin property to window object 2022-03-01 13:38:20 +00:00
OutOfProcessWebView.cpp LibWeb: Plumb OOPWV focus state across the IPC boundary 2022-02-06 22:13:13 +01:00
OutOfProcessWebView.h LibWeb: Plumb OOPWV focus state across the IPC boundary 2022-02-06 22:13:13 +01:00
StylePropertiesModel.cpp Everywhere: Use my shiny new serenityos.org email :^) 2021-09-03 12:22:36 +02:00
StylePropertiesModel.h AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
TreeNode.h LibWeb: Make Range.setStart and Range.setEnd spec compliant 2022-02-26 12:53:32 +01:00
WebContentClient.cpp Userland: Rename IPC::ServerConnection=>IPC::ConnectionToServer 2022-02-25 22:35:12 +01:00
WebContentClient.h Userland: Rename IPC::ServerConnection=>IPC::ConnectionToServer 2022-02-25 22:35:12 +01:00
WebViewHooks.h Browser+LibWeb+WebContent: Add variables display to Inspector 2021-12-10 06:52:17 +01:00