Commit graph

1916 commits

Author SHA1 Message Date
Andreas Kling
295cc123c7 LibGUI: Rename UndoStack internals
Since we keep a stack of command combos, let's call entries on the
stack "Combo" instead of "UndoCommandsContainer".

And since it has a vector of commands, let's call it "commands"
instead of "m_undo_vector".
2021-05-08 08:53:37 +02:00
Brian Gianforcaro
4b8b8b91c2 LibTest: Convert Crash test runner to outln(..) 2021-05-08 00:04:10 +01:00
Brian Gianforcaro
7f51754780 LibTest: Expose new EXPECT_CRASH(..) macro for unit test assertions
Utilize the Crash type we imported into LibTest to support testing
of crash scenarios when testing all other components.
2021-05-08 00:04:10 +01:00
Brian Gianforcaro
4c0d3f47e1 LibTest: Move Crash testing facility from crash.cpp to LibTest 2021-05-08 00:04:10 +01:00
Idan Horowitz
2119e0fb3f LibCompress: Add a method that describes a Gzip Header
This can be used to display information about a gzip file that is
stored in it's header.
2021-05-07 23:22:07 +02:00
Tobias Christiansen
1b6824d296 LibWeb: Make frames nesting-aware and disallow deep nesting
A Frame now knows about its nesting-level.

The FrameLoader checks whether the recursion level of the current
frame allows it to be displayed and if not doesn't even load the
requested resource.

The nesting-check is done on a per-URL-basis, so there can be many many
nested Frames as long as they have different URLs.
If there are however Frames with the same URL nested inside each other
we only allow this to happen 3 times.

This mitigates infinetely recursing <iframe>s in an HTML-document
crashing the browser with an OOM.
2021-05-07 22:34:34 +02:00
Egor Ananyin
d2b6148787 LibWeb: Make painting order more spec-compliant
Now our painting order inside stacking contexts is closer to the
algorithm specified by CSS 2.1 (see section 9.9 and Appendix E)
2021-05-07 22:27:48 +02:00
Andreas Kling
406c876fce LibCore: Remove Core::IODevice::printf() 2021-05-07 22:11:50 +02:00
Andreas Kling
05dbf3891a LibCrypto: Fix a mistake in appendff() conversion 2021-05-07 21:57:29 +02:00
Andreas Kling
730ed465fe LibMarkdown: Convert StringBuilder::appendf() => AK::Format
These are the last ones in the codebase. :^)
2021-05-07 21:12:09 +02:00
Andreas Kling
32080452e3 LibX86: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
c1967fca0d LibLine: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
c7e9b6d00f LibWeb: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
eb05931ab5 LibGfx: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
ea027834df LibELF: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
79ff1902aa LibRegex: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
8d5eb075d8 LibGUI: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
5b87276841 LibDiff: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
f1c6288803 LibC: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
72259d5cee LibJS: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
e76956f712 LibCrypto: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
c2a8869c1f LibGemini: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
Andreas Kling
24c149b013 LibCore: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:08 +02:00
Valtteri Koskivuori
00de3b53c8 LibCore+Userland: Add more detectable types
More binary format detectors and descriptions
2021-05-07 11:46:53 +01:00
Valtteri Koskivuori
cf5f3a9874 LibCore: Implement basic mime type guessing based on binary patterns
This attempts to guess the mime-type from a given set of bytes from the
start of a file. It only supports a few well-defined patterns for now,
but it's a start!
2021-05-07 11:46:53 +01:00
Luke
df52040ce9 LibWeb: Implement replacing the current body when setting document.body
Also adds an exception check to the append at the end.
2021-05-07 08:53:37 +02:00
Luke
b6004a4ce1 LibWeb: Add non-const variants of Document::{html_element,body,head}() 2021-05-07 08:53:37 +02:00
Luke
46f2c278b0 LibWeb: Implement Node.replaceChild
The `if (child->parent())` check seems to be redundant, but I'm keeping
it just to match the spec.
2021-05-07 08:53:37 +02:00
Max Wipfli
228c1f4968 LibGUI: Remove line-is-empty check in TextDocument return-early
This patch removes an incorrect way for TextDocument::text_in_range
to return early when the first line of the selection was empty. This
fixes an issue in TextEditor where the status bar showed that 0
characters are selected when the selection started on an empty line.
2021-05-06 23:00:43 +01:00
Gunnar Beutner
017da44ac2 LibC: Make malloc(0) return a non-null pointer
Legally we could just return a null pointer, however returning a
pointer other than the null pointer is more compatible with
improperly written software that assumes that a null pointer means
allocation failure.
2021-05-06 21:25:37 +02:00
Gunnar Beutner
0615a4d42a LibC: Make scanf() not increment the assignment count for %n 2021-05-06 20:36:17 +02:00
Brian Gianforcaro
6e918e4e02 Tests: Move LibRegex tests to Tests/LibRegex 2021-05-06 17:54:28 +02:00
Brian Gianforcaro
070cba9b0d Tests: Move LibCompress tests to Tests/LibCompress 2021-05-06 17:54:28 +02:00
Brian Gianforcaro
597de3356f Tests: Move LibSQL tests to Tests/LibSQL 2021-05-06 17:54:28 +02:00
Linus Groh
877996465a LibC: Update forkpty() master fd before fork()'s child branch 2021-05-06 14:04:07 +01:00
Linus Groh
5391836468 LibC: Remove 'int* aslave' parameter from forkpty()
Only keep track of that (and eventually close() it) internally instead.
This argument is not present on other systems, so we were running into
compatibility issues with ports.
Also bring the implementation closer to Linux and OpenBSD by making sure
to close the slave pty fd in the fork()'d child as well as _exit()'ing
on login_tty() failure - it's non-POSIX, so those are our references
here. :^)
2021-05-06 13:52:46 +01:00
Andreas Kling
dfd8598bf7 LibGUI: Don't show resize corner in non-resizable window's statusbar
Fixes #6886.
2021-05-06 12:08:00 +02:00
Gunnar Beutner
3438829431 LibC: Lazily initialize malloc chunks
By default malloc manages memory internally in larger blocks. When
one of those blocks is added we initialize a free list by touching
each of the new block's pages, thereby committing all that memory
upfront.

This changes malloc to build the free list on demand which as a
bonus also distributes the latency hit for new blocks more evenly
because the page faults for the zero pages now don't happen all at
once.
2021-05-06 10:38:46 +02:00
Tom
3aaffa2c47 LibGUI: Move widget registration to LibCore
This also moves Widget::load_from_json into Core::Object as a virtual
function in order to allow loading non-widget objects in GML (e.g.
BoxLayout).

Co-authored-by: Gunnar Beutner <gbeutner@serenityos.org>
2021-05-06 08:50:39 +02:00
Carlos César Neves Enumo
928f16d360 LibGUI: Remember modified state on undo/redo actions 2021-05-06 08:40:26 +02:00
Carlos César Neves Enumo
67537bfc80 LibGUI: Clear undo stack when opening a new document 2021-05-06 08:40:26 +02:00
Andreas Kling
18d344609f LibGUI: Add ScrollableContainerWidget :^)
This widget provides a scrollable view onto another (child) widget.
If the child is larger than the parent, scrollbars are provided for
panning around the child.
2021-05-05 22:17:33 +02:00
Andreas Kling
89f5f92b7e LibMarkdown: Convert a bunch of StringBuilder::appendf() => appendff() 2021-05-05 22:17:33 +02:00
Gunnar Beutner
beae2d5caa LibSQL: Fix incorrect return types
Right now RefPtr<T> is way more lenient than it should be. That might
change in the future though.
2021-05-05 22:00:57 +02:00
Timothy Flynn
ee1a4a06e0 LibGUI: Allow specifying GUI::Statusbar segment count in GML 2021-05-05 21:38:45 +02:00
Sergey Bugaev
78459b92d5 Kernel: Implement IP multicast support
An IP socket can now join a multicast group by using the
IP_ADD_MEMBERSHIP sockopt, which will cause it to start receiving
packets sent to the multicast address, even though this address does
not belong to this host.
2021-05-05 21:16:17 +02:00
Idan Horowitz
37903db2b4 LibWeb: Remove double comma in FrameLoader debug logging 2021-05-05 16:37:26 +01:00
Linus Groh
346560d7c8 LibJS/Tests: Use hasOwnProperty() for duplicate test check
The current way of doing this would also traverse the prototype chain,
and therefore yield false positive results for keys like "toString".
2021-05-05 15:58:53 +01:00
setepenre
56010379f9 LibCore: Call setgrent before looping on groups in get_extra_gids 2021-05-05 15:12:30 +01:00
Luke
2cc6b919f7 LibWeb: Implement EventTarget.dispatchEvent
Used by Web Platform Tests to test events
2021-05-04 23:41:44 +01:00