Commit graph

59 commits

Author SHA1 Message Date
Tim Ledbetter
89b6cd3fb1 LibWeb: Expose crypto object to workers
This change moves the `crypto()` getter from `Window` to
`WorkerOrWindowGlobalScope`. This aligns our implementation with the
WebCrypto specification.
2024-09-18 10:09:01 +02:00
Tim Ledbetter
c4d5ae28ea LibWeb: Implement a minimal version of Window.find()
This is a non-standard API that other browsers implement, which
highlights matching text in the current window.

This is just a thin wrapper around our find in page functionality, the
main motivation for adding this API is that it allows us to write tests
for our find in page implementation.
2024-06-27 10:09:39 +02:00
Tim Ledbetter
88f3145f8a LibWeb: Add methods to Window that must do nothing
This change adds the `captureEvents()` and `releaseEvents()` methods to
the window object. These methods are obsolete, but are still included
in the HTML specification, which says they must do nothing.
2024-04-14 10:45:43 +02:00
Tim Ledbetter
3876875bd8 LibWeb: Stub out missing cross origin properties on the window object
Previously, trying to access the `close`, `closed` or `blur` properties
on a cross origin window would cause a crash.
2024-04-02 07:46:16 +02:00
Tim Ledbetter
eebdc7bc88 LibWeb: Allow the Performance object to be used by workers 2024-04-02 07:46:16 +02:00
Tim Ledbetter
fc1f037cd1 LibWeb: Implement the window.opener attribute
This returns a reference to the window that opened the current window.
2024-03-13 08:06:00 +00:00
auipc
6a662e0d43 LibWeb: Add various window transformation methods 2024-02-21 15:53:27 +00:00
Reimar
4299fb604b LibWeb: Add window.status property 2023-12-07 11:02:50 -07:00
Matthew Olsson
1a94241f58 IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
Luke Wilde
fc42c75a0c LibWeb: Make Window.postMessage closer to the spec
The main issues are using Structured{Serialize,Deserailize} instead of
Structured{Serialize,Deserialize}WithTransfer and the temporary
execution context usage for StructuredDeserialize.

Allows Discord to load once again, as it uses a postMessage scheduler
to render components, including the main App component. The callback
checked the (previously) non-existent source attribute of the
MessageEvent and returned if it was not the main window.

Fixes the Twitch cookie consent banner saying "failed integrity check"
for unknown reasons, but presumably related to the source and origin
attributes.
2023-11-08 09:55:24 +01:00
Andrew Kaster
247f12d7b0 LibWeb: Insert WindowProperties object into Window's prototype chain
And implement WindowProperties, the "named properties object" for Window
according to the spec.

This involves moving an AO out of LegacyPlatformObject and into a common
place that the WindowProperties class can access.

This doesn't implement the AOs on Window that actually name lookup for
the unenumerable named properties on the window yet, just the
scaffolding.
2023-09-22 19:55:59 -06:00
Shannon Booth
d4a890080d LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString
NewAKString is effectively the default for any new IDL interface, so
let's mark this as the default behavior. It also makes it much easier to
figure out whatever interfaces are still left to port over to new AK
String.
2023-09-02 19:23:41 +01:00
Andrew Kaster
7f043e3083 LibWeb: Add window.navigation property 2023-08-24 11:03:57 -06:00
Andreas Kling
9f6ceff7cf LibWeb: Implement basic version of CSSOM View's VisualViewport
We got some errors while loading https://twinings.co.uk/ about this
interface missing, and it looked fairly simple so I sketched it out.
Note that I did leave some FIXMEs where it's not clear exactly which
metrics we should be returning.
2023-08-06 16:29:24 +02:00
Luke Wilde
034aaf3f51 LibWeb: Introduce CustomElementRegistry and creating custom elements
The main missing feature here is form associated custom elements.
2023-04-06 11:36:56 +02:00
Linus Groh
a31c561a5a LibWeb/HTML: Port Window.sessionStorage to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
37e9302dd9 LibWeb/HTML: Port Window.localStorage to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
211e6c1fbc LibWeb/HTML: Port Window.requestAnimationFrame() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
86589f09dc LibWeb/HTML: Port Window.cancelIdleCallback() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
b410804f54 LibWeb/HTML: Port Window.requestIdleCallback() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
606b9ff6f3 LibWeb/HTML: Port Window.getSelection() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
56550b6ec0 LibWeb/HTML: Port Window.focus() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
b59505aba5 LibWeb/HTML: Port Window.getComputedStyle() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
8454eb874f LibWeb/HTML: Port Window.devicePixelRatio to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
46e547d774 LibWeb/HTML: Port Window.outer{Width,Height} to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
80acf03278 LibWeb/HTML: Port Window.screen{X,Y} / Window.screen{Left,Top} to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
3d075e55f5 LibWeb/HTML: Port Window.scrollBy() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
2b6d9cca1a LibWeb/HTML: Port Window.scroll() to IDL
...with various changes required due to ScrollBehavior / ScrollOptions
moving from Element.idl to Window.idl.
2023-03-07 23:33:34 +00:00
Linus Groh
40b4ee88de LibWeb/HTML: Port Window.scroll{X,Y} / Window.page{X,Y}Offset to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
25f53a577d LibWeb/HTML: Port Window.inner{Width,Height} to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
0c691087ca LibWeb/HTML: Port Window.screen to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
2beb99b76e LibWeb/HTML: Port Window.matchMedia() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
198db2ebd9 LibWeb/HTML: Port Window.crypto to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
7de9179a6d LibWeb/HTML: Port Window.performance to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
95ce5735ce LibWeb/HTML: Port Window.event to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
8c0f0726d1 LibWeb/HTML: Include the WindowOrWorkerGlobalScope mixin in Window.idl 2023-03-07 23:33:34 +00:00
Linus Groh
6dd1934ed8 LibWeb/HTML: Port Window.atob() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
192f5e61f6 LibWeb/HTML: Port Window.btoa() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
94f1eff291 LibWeb/HTML: Port Window.isSecureContext to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
188aac5077 LibWeb/HTML: Port Window.origin to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
b2409517bd LibWeb/HTML: Port Window.open() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
efa48142d2 LibWeb/HTML: Port Window.frameElement to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
c6353ac8cd LibWeb/HTML: Port Window.parent to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
dba8dbe07d LibWeb/HTML: Port Window.top to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
baaf891c64 LibWeb/HTML: Port Window.length to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
c42496187b LibWeb/HTML: Port Window.history to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
eccc0d90de LibWeb/HTML: Port Window.location to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
0e40841990 LibWeb/HTML: Port Window.name to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
0e587420a8 LibWeb/HTML: Port Window.document to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
dcff775ab1 LibWeb/HTML: Port Window.frames to IDL 2023-03-07 23:33:34 +00:00