Age | Commit message (Collapse) | Author |
|
Instead of "iframe", we can now say HTML::TagNames::iframe and avoid
a FlyString lookup.
|
|
We'll need a place to implement the various presentational attributes
for table parts, and more stuff.
|
|
|
|
We don't have up-to-date visual line rects until after reflow, and we
already do a "scroll cursor into view" when deferral ends anyway.
Fixes #2524.
|
|
|
|
|
|
|
|
|
|
We skip the tests that are not self-contained (TLS) to avoid adding
extra variables to the tests.
|
|
|
|
|
|
Compiler was complaining about two ambiguous overloads.
Also make some functions "inline" to fix warnings about unused
functions.
|
|
All the magic is happening in a "while != 0" loop, so we ended up with
an empty string for zero-value BigIntegers. Now we just check that
upfront and return early.
|
|
|
|
This makes them a bit more compact and improves consistency as
to_boolean() and to_number() already use this style as well.
Also re-order the types to match the table in the spec document.
|
|
If we're inheriting from Object() we already call its constructor which
sets the prototype - no need to do it again.
|
|
If we don't find a matching entity, return an empty Optional.
|
|
|
|
|
|
The main frame doesn't have a host element, so we can't go trying to
offset things by the host element's layout rect.
|
|
This adds regex parsing/lexing, as well as a relatively empty
RegExpObject. The purpose of this patch is to allow the engine to not
get hung up on parsing regexes. This will aid in finding new syntax
errors (say, from google or twitter) without having to replace all of
their regexes first!
|
|
|
|
This patch introduces support for more than just "absolute px" units in
our Length class. It now also supports "em" and "rem", which are units
relative to the font-size of the current layout node and the <html>
element's layout node respectively.
|
|
Now that PageView actually respects the invalidation rect provided by
the layout system, it turns out we were invalidating too little.
Unfortunately, this is not really fixable until the initial containing
block starts having the right size (same as viewport), but that will
require a bunch of work to make overflow work again. So it's a FIXME
for now, and we'll return to this.
|
|
When a paint invalidation occurs inside a subframe, it bubbles up to
Frame::set_needs_display(). From there, we call PageView if this is
the main frame, or otherwise invalidate the subframe host element.
|
|
|
|
We now only delegate to the Web::PageView embedded when clicking links
in the main frame. Links in subframes are handled internally.
|
|
We now handle mouse events by recursing into subframes. This makes
links, tooltips, etc, work inside <iframe> content.
|
|
|
|
We don't support incremental relayout of subtrees (only single nodes)
but let's not crash the browser just because this happens. We can keep
the browser up and just complain in the debug log instead.
|
|
Includes all traps except the following: [[Call]], [[Construct]],
[[OwnPropertyKeys]].
An important implication of this commit is that any call to any virtual
Object method has the potential to throw an exception. These methods
were not checked in this commit -- a future commit will have to protect
these various method calls throughout the codebase.
|
|
|
|
|
|
This new struct is now returned from get_own_property_descriptor. To
preserve the old functionality of returning an object, there is now a
get_own_property_descriptor_object method, for use in
{Object,Reflect}.getOwnPropertyDescriptor().
This change will be useful for the implementation of Proxies, which do a
lot of descriptor checks. We want to avoid as many object gets and puts
as possible.
|
|
When calling Object.defineProperty, there is now a difference between
omitting a descriptor attribute and specifying that it is false. For
example, "{}" and "{ configurable: false }" will have different
attribute values.
|
|
|
|
It was really confusing that add_clip_rect() didn't apply transforms
to the new clip rect, but instead interpreted it as an absolute rect.
This makes web pages with <iframe> render correctly when scrolled.
Something might break from this, but we'll find it soon enough. :^)
|
|
When you ask a subframe for its PageView, you'll now always get the
main frame's PageView. Subframes don't have a PageView of their own.
|
|
|
|
While we're parsing a new document, we don't have a Frame to grab at.
We now use the Node::document_did_attach_to_frame() notification hook
to delay subframe construction.
With this, subframes now always have a valid reference to their
enclosing main frame.
|
|
Some DOM nodes will want to do stuff when we attach/detach from a Frame
and this seems like a simple enough way to let them know.
|
|
A new theme for Serenity which brings colors from the Discord theme
colors. Some colors were modified to ensure great looks on Serenity.
|
|
|
|
This is a somewhat incomplete implementation of the Unix find command :^)
Closes https://github.com/SerenityOS/serenity/issues/272
|
|
It was me who has broken this, sorry ;(
|
|
If we can't figure out how to make a Document for the main resource
in a Frame, just show an error page.
|
|
Also, if the request URL is a data: URL, use the MIME type from the URL
itself if available. This makes it possible to load arbitrary MIME type
data: URLs in the browser :^)
|
|
|
|
We now use the new resource-based loader for the main resource in each
Frame. This gives us access to caching and sharing. :^)
|
|
Returning it by reference can lead to unpleasant situations if we use
this getter when the document may go away. Better to make the getter
return a copy than have to think about this everywhere.
|