summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-12LibWeb: Fix #include <LibWeb/{DOM => HTML}/AttributeNames.h>Linus Groh
This file has been moved from DOM/ to HTML/ in a784090b91139776b26fbac2a8426de3abdea308.
2020-08-12LibCore: Add support for double on argparseDiego Iastrubni
Code is pretty trivial. If someone needs "float" support, a copy-paste will be in place. Build system was confused between math.h from rootfs, and toolchain. I fixed the problem caused by `math.h` by locally using the builtin `isnan()` from the compiler. It's ugly - but works. I am looking for other alternatives.
2020-08-12LibWeb: Until an image has loaded or failed, don't occupy layout sizeAndreas Kling
This patch makes images have an implicit zero intrinsic size before they have either loaded or failed to load. This is tracked by the ImageLoader object. This fixes a long-standing issue with images occupying empty 150x150 rectangles of space.
2020-08-12Base: Increase saturation of HackStudio icons somewhatAndreas Kling
2020-08-12LibWeb: Move HTML::AttributeNames file into HTML/ directoryAndreas Kling
2020-08-12HackStudio: Use adopt_own(*new T) instead of OwnPtr(new T)Andreas Kling
2020-08-12Shell: Add create() factory function for PathRedirectionAndreas Kling
2020-08-12Shell: Fix another FdRedirection reference leakAndreas Kling
Add a create() factory function to prevent this from happening again.
2020-08-12Shell: Wait for the parent to deal with the PGID stuff before execvp()AnotherTest
2020-08-12Shell: Do not assume that the job has exited after unblock in fgAnotherTest
2020-08-12Shell: Eliminate possible use-after-free in builtin_fg()AnotherTest
This fixes a possible UAF where the job might be destroyed in block_on_job().
2020-08-12Shell: Eliminate reference leak in AST::Execute::run()AnotherTest
2020-08-12Shell: Moves pipelined processes to one process groupAnotherTest
2020-08-12Shell: Show the job id instead of the pid when a job exits in backgroundAnotherTest
2020-08-12Kernel: Allow moving a process to a new pgrp via setpgid()AnotherTest
2020-08-12SystemMonitor: Show PPID, PGID, SIDBen Wiederhake
With this information, it's a bit easier to intuit the current 'process tree'. If you're reading this, can I convince you to implement a nice process tree for SystemMonitor? It could be via PPID (unbounded depth), or SID+PGID (depth 3). Or something else entirely :D
2020-08-12SystemMonitor: Display the stack of only the selected threadBen Wiederhake
This uses the new ProcFS interface at /proc/<pid>/stacks/<tid>
2020-08-12Kernel: Expose thread stacks as separate filesBen Wiederhake
This breaks SystemMonitor, which the next commit fixes.
2020-08-12Userland: Make 'tt t' spawn a thread and stand stillBen Wiederhake
This is useful to test SystemMonitor and /proc, because all other multi-threaded processes tend to be moving targets.
2020-08-12LibWeb: Initialize tag/attribute name globals in init-time constructorsAndreas Kling
2020-08-12ScrollBar: Let clicking the gutter scroll by one pageNico Weber
Shift-clicking has the old behavior of jumping to the click position. This matches scrollbar behavior in macOS and Windows, and in many Linux apps.
2020-08-12ScrollBar: Simplify ScrollBar::scroll_to_position()Nico Weber
2020-08-12GUI: Rename ScrollBar::scrubber_size() to ScrollBar::visibile_scrubber_size()Nico Weber
2020-08-12GUI: Give MouseEvent shift() / ctrl() / alt() / logo() functionsNico Weber
2020-08-12GUI: Extract a ScrollBar::scroll_to_position methodNico Weber
2020-08-12LibTLS: Re-silence a debug log Ali Mohammad Pur
https://github.com/SerenityOS/serenity/commit/bc7a149039538f26e10444f38db6682d5df57333#r41386045
2020-08-11LibTLS: Avoid extra initialisation of buffers that are initialisedAnotherTest
A trace for proof: buffer: L91: 0:(packet.size() - header_size) L98: (packet.size() - header_size):(packet.size() - header_size + mac_size) L102: (packet.size() - header_size + mac_size):buffer.size() (asserted at L103) ct: L88: 0:(header_size - 2) L123: (header_size - 2):(header_size) L111: (header_size):(header_size + iv_size) L117: (header_size + iv_size):(header_size + iv_size + length) (asserted at L113)
2020-08-11LibCrypto+LibTLS+Kernel: Switch the Cipher::Mode interface to use SpanAnotherTest
This shaves 2.5 more runtime seconds off 'disasm /bin/id', and makes the Mode<T> interface a lot more allocation-friendly.
2020-08-11AK: Span<T>::operator=(const T&) => Span<T>::operator=(const Span<T>&)AnotherTest
2020-08-11LibC: Add sa_family_t and in_port_t typesAndreas Kling
2020-08-11LibJS: Assert when exception is not cleared before Interpreter::run()Linus Groh
This is to prevent bugs like #3091 (fixed in 9810f8872c21eaf2aefff25347d957cd26f34c2d) in the future; we generally don't want Interpreter::run() to be called if the interpreter still has an exception stored. Sure, it could clear those itself but letting users of the interpreter do it explicitly seems sensible.
2020-08-11LibWeb: Clear exceptions in each Document::run_javascript() callLinus Groh
We don't want to carry over exceptions across multiple Document::run_javascript() calls as Interpreter::run() and every of its exception checks will get confused - in this case there would be an exception, but not because a certain action failed. Real-life example: <script>var a = {}; a.test()</script> <script>alert("It worked!")</script> The above HTML will invoke Document::run_javascript() twice, the first call will result in a TypeError, which is still stored during the second call. The interpreter will eventually call the following functions (in order) for the alert() invocation: - Identifier::execute() - Interpreter::get_variable() - Object::get() (on the global object) That last Object::get() call has an exception check which is triggered as we still carry around the exception from earlier - and eventually returns an empty value. Long story short, the second script will wrongly fail with "ReferenceError, 'alert' is not defined". Fixes #3091.
2020-08-11UserspaceEmulator: Remove some silly semicolonsNico Weber
2020-08-11UserspaceEmulator: Log unimplemented instructions with proper backtraceAndreas Kling
2020-08-11Kernel: Make Inode::read_entire() return a KBuffer (not ByteBuffer)Andreas Kling
ByteBuffer is backed by kmalloc heap memory which is a scarce resource. This fixes an OOM panic when traversing a large directory.
2020-08-11LibC: Add in6_addr and sockaddr_in6 structsAndreas Kling
2020-08-11LibC: Declare sockaddr_storageAndreas Kling
This type is guaranteed to fit the largest sockaddr_foo supported by the system. In our case, that's sockaddr_un.
2020-08-11LibC: Make sure assert() expands to *something* in non-DEBUG buildsAndreas Kling
Sometimes people write strange things like "assert(x), something();" and this will not work if "assert(x)" expands to "". So make it expand to ((void)0) instead.
2020-08-11Kernel: Forward declare struct stat in the syscall API headerAndreas Kling
2020-08-11LibC: Move stat(), lstat() and fstat() to <sys/stat.h>Andreas Kling
Dr. POSIX says that's where they belong.
2020-08-11mv: Accept (but ignore) -fAndreas Kling
Many scripts seem to use "mv -f", so let's support that.
2020-08-11rm: Implement a basic -f modeAndreas Kling
2020-08-11LibELF: Remove unused cruft in ELF::LoaderAndreas Kling
2020-08-11Crypto: Make AES call malloc much less oftenNico Weber
ByteBuffer::slice_view() allocates a new ByteBuffer object, which as a RefPtr and everything. Nowadays it should probably return a Bytes / Span<u8>, but AES was only using slice_view() to extract the pointer again. So just add ady a range check at the top, and do pointer arithmetic to do the same thing faster. Reduces time to run `disasm /bin/id` by a bit under 40%, from ~8.3s to ~5s (min-of-3 runs).
2020-08-11TextEditor: Show pageview URLs in statusbar on hoverLinus Groh
2020-08-11TextEditor: Open links from Web::PageView using Desktop::LauncherLinus Groh
So far, clicking on a link from the Markdown/HTML preview Web::PageView did nothing - now we pass that link to Desktop::Launcher, which will then open it in Browser, FileManager, another TextEditor instance etc.
2020-08-11Kernel: Always return from Thread::wait_onTom
We need to always return from Thread::wait_on, even when a thread is being killed. This is necessary so that the kernel call stack can clean up and release references held by it. Then, right before transitioning back to user mode, we check if the thread is supposed to die, and at that point change the thread state to Dying to prevent further scheduling of this thread. This addresses some possible resource leaks similar to #3073
2020-08-11Meta: Fix typo in NotesOnWSL.md (#3086)Andrew Mbugua
2020-08-11LibELF: Set ELF::Loader::m_symbol_count in constructorAndreas Kling
Setting it in load() excludes users of ELF::Loader that don't actually call load() but only use the Loader for symbolication purposes. Perhaps the factoring here is not ideal.
2020-08-10Help: Spruce up the UI with some tasteful layout marginsAndreas Kling