summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-07LibWeb: Add HTML::TagNames namespace for global tag name FlyStringsAndreas Kling
Instead of "iframe", we can now say HTML::TagNames::iframe and avoid a FlyString lookup.
2020-06-07LibWeb: Add (stub) HTMLTable{,Cell,Row}Element C++ classesAndreas Kling
We'll need a place to implement the various presentational attributes for table parts, and more stuff.
2020-06-07LibIPC+Services: Support URL as a native IPC typeAndreas Kling
2020-06-07LibGUI: Don't scroll cursor into view while reflows are deferredAndreas Kling
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.
2020-06-07AK: Add basic percent encoder/decoder (urlencode and urldecode)Andreas Kling
2020-06-07AK: Add StringView::{begin,end} so we can range-for over StringViewsAndreas Kling
2020-06-07LibJS: Fix big int division lexing as UnterminatedRegexLiteralMatthew Olsson
2020-06-07LibJS: Add BigIntLinus Groh
2020-06-07Meta: Run Crypto tests in CIAnotherTest
We skip the tests that are not self-contained (TLS) to avoid adding extra variables to the tests.
2020-06-07test-crypto: Return 1 if any test failedAnotherTest
2020-06-07LibCrypto: Add bitwise operations (and/or/xor)AnotherTest
2020-06-07LibCrypto: Make ModularFunctions.h compile as part of LagomLinus Groh
Compiler was complaining about two ambiguous overloads. Also make some functions "inline" to fix warnings about unused functions.
2020-06-07LibCrypto: Fix to_base10() for zero-value BigIntegersLinus Groh
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.
2020-06-07LibJS: Move Value::as_accessor() to Value.hLinus Groh
2020-06-07LibJS: Use switch/case for Value::to_{string{_w/o_side_effects},boolean}Linus Groh
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.
2020-06-07LibJS: Remove reduntant set_prototype() callsLinus Groh
If we're inheriting from Object() we already call its constructor which sets the prototype - no need to do it again.
2020-06-07LibWeb: Fix codepoint_from_entity() never returning an errorAndreas Kling
If we don't find a matching entity, return an empty Optional.
2020-06-07AK: Don't try to complete relative data: URLsAndreas Kling
2020-06-07LibWeb: Fix tokenizer swallowing an extra token after a named entityAndreas Kling
2020-06-07LibWeb: Unbreak <a title> tooltips in the main frameAndreas Kling
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.
2020-06-07LibJS: Lex and parse regex literals, add RegExp objectsMatthew Olsson
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!
2020-06-07LibGUI: Fix broken clip rect when scrolling a TextEditorAndreas Kling
2020-06-07LibWeb: Start fleshing out support for relative CSS unitsAndreas Kling
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.
2020-06-07LibWeb: Fix broken paint invalidation after subframe changesAndreas Kling
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.
2020-06-07LibWeb: Let subframes propagate paint invalidations via host elementAndreas Kling
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.
2020-06-07LibWeb: Remove unused Document::on_layout_updated hookAndreas Kling
2020-06-07LibWeb: Open subframe links inside the subframe itselfAndreas Kling
We now only delegate to the Web::PageView embedded when clicking links in the main frame. Links in subframes are handled internally.
2020-06-07LibWeb: Add per-Frame EventHandler, handle mouse events recursivelyAndreas Kling
We now handle mouse events by recursing into subframes. This makes links, tooltips, etc, work inside <iframe> content.
2020-06-07LibWeb: Move Frame.{cpp,h} into a new Frame/ directoryAndreas Kling
2020-06-06LibWeb: Whine in debug log instead of asserting on partial layout FIXMEAndreas Kling
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.
2020-06-06LibJS: Add Proxy objectsMatthew Olsson
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.
2020-06-06LibJS: Value.in uses has_property instead of get().is_empty()Matthew Olsson
2020-06-06LibJS: Object.setPrototypeOf throws error on too few argumentsMatthew Olsson
2020-06-06LibJS: Add PropertyDescriptor objectMatthew Olsson
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.
2020-06-06LibJS: Distinguish between omitted descriptor attributes and false onesMatthew Olsson
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.
2020-06-06LibGUI: Fix TextEditor painting glitch after add_clip_rect() changeAndreas Kling
2020-06-06LibGfx: Make Painter::add_clip_rect() use logical coordinatesAndreas Kling
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. :^)
2020-06-06LibWeb: Make Frame::page_view() always go via main_frame()Andreas Kling
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.
2020-06-06LibWeb: Handle EOF tokens during "text" insertionAndreas Kling
2020-06-06LibWeb: Delay sub-Frame construction until host Document is attachedAndreas Kling
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.
2020-06-06LibWeb: Add Node notifications for Document<=>Frame attach/detachAndreas Kling
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.
2020-06-06Base: Add "Discord" theme (#2515)nanoproductions
A new theme for Serenity which brings colors from the Discord theme colors. Some colors were modified to ensure great looks on Serenity.
2020-06-06Base: Document find(1)Sergey Bugaev
2020-06-06Userland: Add find(1)Sergey Bugaev
This is a somewhat incomplete implementation of the Unix find command :^) Closes https://github.com/SerenityOS/serenity/issues/272
2020-06-06AK: Fix printf("%c", 0)Sergey Bugaev
It was me who has broken this, sorry ;(
2020-06-06LibWeb: Show error page if we can't handle a frame's main resourceAndreas Kling
If we can't figure out how to make a Document for the main resource in a Frame, just show an error page.
2020-06-06LibWeb: Let Resource figure out its own encoding and MIME typeAndreas Kling
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 :^)
2020-06-06LibWeb: Always scroll PageView to top when a new document is setAndreas Kling
2020-06-06LibWeb: Turn FrameLoader into a ResourceClientAndreas Kling
We now use the new resource-based loader for the main resource in each Frame. This gives us access to caching and sharing. :^)
2020-06-06LibWeb: Make Document::url() return URL by valueAndreas Kling
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.