Commit graph

135 commits

Author SHA1 Message Date
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
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
376fb9ae40 LibWeb/HTML: Hook up WindowOrWorkerGlobalScopeMixin to Window
This prepares us to use the shared implementations from this class.
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
Linus Groh
437a7c977e LibWeb/HTML: Port Window.self to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
d57876306c LibWeb/HTML: Port Window.window to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
eb2425040b LibWeb/HTML: Port Window.navigator to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
c219e6d9c1 LibWeb/HTML: Port Window.postMessage() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
eb4842dfa1 LibWeb/HTML: Port Window.prompt() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
bbffda5f55 LibWeb/HTML: Port Window.confirm() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
a0b73eb5f7 LibWeb/HTML: Port Window.alert() to IDL 2023-03-07 23:33:34 +00:00
Linus Groh
a6f8b18649 LibWeb/HTML: Define Window's {Global,Window}EventHandlers via IDL 2023-03-07 23:33:34 +00:00
Linus Groh
c130fd6993 LibWeb: Start generating code for the Window object from IDL :^) 2023-03-07 23:33:34 +00:00
Andreas Kling
689ca370d4 Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
Andreas Kling
8a48246ed1 Everywhere: Stop using NonnullRefPtrVector
This class had slightly confusing semantics and the added weirdness
doesn't seem worth it just so we can say "." instead of "->" when
iterating over a vector of NNRPs.

This patch replaces NonnullRefPtrVector<T> with Vector<NNRP<T>>.
2023-03-06 23:46:35 +01:00
Linus Groh
cc1e8a4e9f LibWeb/HTML: Propagate errors from Window::initialize_web_interfaces() 2023-03-05 21:22:34 +00:00
Luke Wilde
7b635998a8 LibWeb: Make Window.screen a replaceable attribute
Required by Shadertoy.
2023-03-03 22:27:49 +00:00
Luke Wilde
4d0277cd9a LibWeb: Implement navigator.{plugins,mimeTypes} 2023-02-28 12:36:14 +01:00
Luke Wilde
1c918e826c LibWeb: Define navigator/clientInformation with define_native_accessor
Defining it as a direct property causes it to have no getter/setter
function, which causes an empty Optional crash when attempting to
access such getter on a cross-origin iframe.

Fixes amazon.com crashing on this particular crash.
2023-02-28 08:45:23 +00:00
Kenneth Myhra
3e834636a6 LibWeb: Make factory method of HTML::Window fallible 2023-02-18 00:52:47 +01:00
Linus Groh
afc055c088 LibWeb: Convert the Location object to IDL
This includes:

- Moving it from Bindings/ to HTML/
- Renaming it from LocationObject to Location
- Removing the manual definitions of the constructor and prototype
- Removing special handling of the Location interface from the bindings
  generator
- Converting the JS_DEFINE_NATIVE_FUNCTIONs to regular functions
  returning DeprecatedString instead of PrimitiveString
- Adding missing (no-op) setters for the various attributes, which are
  expected to exist by the bindings generator
2023-01-18 17:36:39 -05:00
Cameron Youell
204257526c LibWeb: Define window.isSecureContext 2023-01-18 09:52:47 +00:00
Timothy Flynn
f3db548a3d AK+Everywhere: Rename FlyString to DeprecatedFlyString
DeprecatedFlyString relies heavily on DeprecatedString's StringImpl, so
let's rename it to A) match the name of DeprecatedString, B) write a new
FlyString class that is tied to String.
2023-01-09 23:00:24 +00:00
Linus Groh
6e19ab2bbc AK+Everywhere: Rename String to DeprecatedString
We have a new, improved string type coming up in AK (OOM aware, no null
state), and while it's going to use UTF-8, the name UTF8String is a
mouthful - so let's free up the String name by renaming the existing
class.
Making the old one have an annoying name will hopefully also help with
quick adoption :^)
2022-12-06 08:54:33 +01:00
Daniel Ehrenberg
09841f56ed LibWeb: Add initial implementation of structured clone
This implementation only works for cloning Numbers, and does not try to
do all the spec steps for structured serialize and deserialize.

Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
2022-11-26 00:47:23 +01:00
Idan Horowitz
a63c7549e1 LibWeb: Implement window.open
This implementation is some-what complete, with the most common missing
/broken feature being opening pages in new tabs using the "_blank"
target.

This is currently broken due to 2 reasons:
 - We currently always claim the Window does not have transient
   activation, as we do not track the transient activation timestamp
   yet. This means that all such window.open calls are detected as
   pop-ups, and as such they are blocked. This can be easily bypassed
   by unchecking the 'Block Pop-ups' checkbox in the debug menu.
 - There is currently no mechanism for the WebContent process to
   request a new tab to be created by the Browser process, and as
   such the call to BrowsingContext::choose_a_browsing_context does not
   actually open another tab.
2022-11-15 21:48:19 +00:00
Luke Wilde
a569d02b0d LibWeb: Implement Window.focus 2022-11-07 14:10:41 +01:00
Timothy Flynn
5eeb6bbee3 LibWeb: Define window.outerWidth and window.outerHeight 2022-11-01 21:16:50 +00:00
Andreas Kling
b1c73b3605 Revert "LibWeb: Use OrderedHashMap to store pending idle callbacks"
This reverts commit dc15cacfc3.

It appears to be causing some assertions, so let's revert it.
2022-10-27 17:25:52 +02:00
networkException
794dc2e16b LibWeb: Expose an import map and import maps allowed on Window 2022-10-24 23:06:56 +01:00
Andreas Kling
58522f5088 LibWeb: Make window.{window,self,frames} return the WindowProxy
These now follow the spec and return the WindowProxy rather than the
Window itself.
2022-10-20 16:01:26 +02:00
Andreas Kling
8fd59fce9c LibWeb: Remove unnecessary hack in HTML::Window::initialize()
We don't need to force-set the realm's global object during
initialization anymore, now that intrinsics are set up elsewhere.
2022-10-20 15:31:12 +02:00
Andreas Kling
dc15cacfc3 LibWeb: Use OrderedHashMap to store pending idle callbacks
This removes the need for a separate IdleCallback object per
registration, since the handles are now used as map keys.
2022-10-20 15:16:23 +02:00
Andreas Kling
24510b0845 LibWeb: Make window.parent and window.top return WindowProxy
These functions were previously ad-hoc and returned the active
document's window. They now correctly teturn the browsing context's
WindowProxy instead.
2022-10-20 15:16:23 +02:00
Andreas Kling
a2348ebcc0 LibWeb: Make Window.getSelection() forward to Document.getSelection()
(And have document create the Selection object on demand.)
2022-10-10 21:23:03 +02:00