1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-08-17 18:27:49 +00:00
Commit graph

32230 commits

Author SHA1 Message Date
Hendiadyoin1
7f60090c43 Kernel: Add Test for munmap of multiple regions
Tests: Improve munmap-test

We now Unmap page aligned and check if the regions were really unmappped etc.

Tests: Cleanup Munmap-test

added a cleanup and removed a useless cast
2021-03-13 10:00:46 +01:00
Brendan Coles
7b22fb70a2 Terminal: Add support for fullscreen view 2021-03-13 09:55:11 +01:00
Jean-Baptiste Boric
56ecb55d9f Userland: Create stress-truncate test program 2021-03-13 09:27:18 +01:00
Linus Groh
2d8362cceb LibJS: Implement 'Relative Indexing Method' proposal (.at())
Still stage 3, but already implemented in major engines and unlikely to
change - there isn't much to change here anyway. :^)

See:

- https://github.com/tc39/proposal-relative-indexing-method
- https://tc39.es/proposal-relative-indexing-method/
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at
2021-03-12 19:01:08 +01:00
Andreas Kling
d3f112f9a2 AK+LibCore: Remove empty files 2021-03-12 17:38:17 +01:00
Andreas Kling
ef1e5db1d0 Everywhere: Remove klog(), dbg() and purge all LogStream usage :^)
Good-bye LogStream. Long live AK::Format!
2021-03-12 17:29:37 +01:00
Brendan Coles
8c0723960b QuickShow: Replace posix_spawn with LibDesktop::Launcher
When multiple images are dragged and dropped onto the image widget,
QuickShow will use LibDesktop::Launcher to launch a new instance
of QuickShow for each item, rather than spawn a child QuickShow
process for each item with posix_spawn.

This allows `proc` and `exec` pledges to be removed :^)
2021-03-12 15:22:12 +01:00
Andreas Kling
0c35c664e6 UserspaceEmulator: Convert a weird klog(!) to dbgln() 2021-03-12 11:23:26 +01:00
Brendan Coles
ec1fdef818 UserspaceEmulator: SoftCPU: Add support for several x86 FPU instructions
F2XM1
FYL2X
FYL2XP1
FDECSTP
FINCSTP
FSCALE
2021-03-12 09:59:45 +01:00
thankyouverycool
35897651af WidgetGallery: Convert layout to GML and add new Icons gallery 2021-03-12 09:59:03 +01:00
thankyouverycool
0fc81d23f4 LibGUI: Add variable padding and center bitmaps in TableViews
This lets us make nicer looking bitmap tables and fixes a content
rect issue in TreeView. Also makes key column highlighting optional
2021-03-12 09:59:03 +01:00
thankyouverycool
142ca4b818 WindowServer+LibGfx: Enumerate Disallow cursor 2021-03-12 09:59:03 +01:00
thankyouverycool
bc26d1093f LibGUI: Clear inactive selections in DisplayOnly TextEditors 2021-03-12 09:59:03 +01:00
thankyouverycool
bf432f8a3a LibGUI: Add opacity to ImageWidget 2021-03-12 09:59:03 +01:00
thankyouverycool
0e63141a19 LibGUI: Set override cursor to none when widget is disabled 2021-03-12 09:59:03 +01:00
thankyouverycool
cf866cc75a LibGUI: Register more GML properties and widgets
Register "placeholder" for TextEditor and ComboBox; "models_only"
for ComboBox; Vertical/HorizontalSeparator for SeparatorWidget
2021-03-12 09:59:03 +01:00
thankyouverycool
5806630cf4 LibGfx+LibGUI: Add support for vertical ProgressBars 2021-03-12 09:59:03 +01:00
thankyouverycool
bd34cdbbb3 LibGUI: Ignore scroll length multiplier in SpinBoxes & Sliders
Prevents discrete values from being skipped when using the mouse
wheel on SpinBoxes and proportional Sliders. Wheel delta can be
accelerated by holding Ctrl.
2021-03-12 09:59:03 +01:00
Andreas Kling
6e2a29d038 WindowServer: Don't open system menu on super key press while dragging 2021-03-11 19:00:24 +01:00
Andreas Kling
38f11cc1ba Everywhere: Rename "logo" key to "super" key
This seems to be the most common way to refer to this key, so let's
call it what people actually call it.
2021-03-11 18:55:16 +01:00
Vyacheslav Pukhanov
4b99dbe644 FileManager: Accept TreeView drop event 2021-03-11 18:54:52 +01:00
AnotherTest
eb1ca965c7 LibLine: Cleanup the suggestions before inserting a new code point
Otherwise `reposition_cursor()` will move the cursor one character too
far to the right, and since we don't redraw the entire buffer when
the character is inserted at the end, the mistake won't be immediately
fixed by a complete redraw.
Fixes #5722
2021-03-11 14:47:56 +01:00
Ben Wiederhake
f38a6b18b5 crash: Fix more typos in check logic
These caused no test to run for '-f' and mmap to fail, respectively.
2021-03-11 12:32:53 +01:00
Ben Wiederhake
798dea7a49 crash: Fix typo in check logic
The remainder of the code assumes that the mmap was successful,
so the 'unexpected error' case is that we see MAP_FAILED.
2021-03-11 12:32:53 +01:00
Ben Wiederhake
bceb98e2df Userland: Remove superfluous headers
Userland has no reason to access 'kmalloc'.
2021-03-11 12:32:53 +01:00
Ben Wiederhake
2cd0793578 xargs: Fix boring memory leak
It's only 1K (BUFSIZ), and it's immediately before xargs finishes anyway.
However, I ran into it and know how to fix it, so let's clean this up.
2021-03-11 12:32:53 +01:00
Ben Wiederhake
292871c4bc UserspaceEmulator: Handle MAP_FIXED with invalid addresses better
Old behavior: Crash due to VERIFY, unless we're completely and entirely out of
memory (m_available_ranges being empty), in which case it would return -ENOMEM.

New behavior: Return ENOMEM (and don't crash). In the case of nullptr,
also emit a helpful diagnostic.

Note that MAP_FIXED with nullptr is technically okay, but tends to be a sign
that something went wrong.

Also, this should improve mmap performance marginally, as it pulls the check out
of a loop that does not modify any parts of the check.

UE is now self-hosting! Fixes #5709.

However, this still needs some love: "ue UserspaceEmulator true" spits out tons
of error messages, probably false-positives, and takes about 229 seconds to run.
Then again, true-in-ue-in-ue-in-Qemu is three levels of emulation, so no wonder
it takes a long time! :D
2021-03-11 08:54:54 +01:00
Ben Wiederhake
22d9bd0c45 UserspaceEmulator: Do not pass MAP_FIXED to Kernel
Since there is usually no correlation between guest memory-layout and UE memory-layout,
this option does not make any sense. Especially since we provide nullptr.
2021-03-11 08:54:54 +01:00
Ben Wiederhake
d5925f33aa UserspaceEmulator: Implement set_process_name syscall 2021-03-11 08:54:54 +01:00
Ben Wiederhake
ec8e3edd05 UserspaceEmulator: Split large file into logical pieces 2021-03-11 08:54:54 +01:00
Luke
4477a0d6fd LibWeb: Remove FIXME in is_javascript_mime_type_essence_match
This was misleading. The spec just wants us to check a string matches
a string in the JavaScript MIME type essence list. It doesn't want us
to parse the string as a MIME type to then use its essence for the
check.

Renames "mime_type" to "string" to make this less misleading.
2021-03-11 08:30:02 +01:00
Andreas Kling
a77ecac900 fuzz-syscalls: Mark sys$emuctl() as someone who returns ENOSYS
This syscall is only relevant inside UserspaceEmulator and the kernel
will just return ENOSYS for it.
2021-03-10 16:36:11 +01:00
Andreas Kling
ced8dfa037 UserspaceEmulator: Remove debug spam about tracked malloc blocks 2021-03-10 15:21:26 +01:00
Ben Wiederhake
a265ea98b9 Utilities: Add a quotes database and 'fortunes' program
I told you, we need a quotes ~~page~~ file! :D
2021-03-09 22:10:30 +01:00
Andreas Kling
df621b9415 LibWeb: Run clang-format on CSS/Parser/StyleComponentValueRule.h 2021-03-09 20:06:52 +01:00
Andreas Kling
7c222d1bdf LibWeb: Run clang-format on CSS/Parser/Token.h 2021-03-09 20:06:23 +01:00
Andreas Kling
5a050cb8d1 LibX86: Don't use "if (foo) [[unlikely]] { }" for now (to please clang) 2021-03-09 17:47:28 +01:00
Andreas Kling
ad152bfa59 LibWeb: Add a whole bunch of rule classes for the new CSS parser
Original work by @stelar7.
2021-03-09 17:36:21 +01:00
Andreas Kling
16cde3f14a LibWeb: Rename CSSParser => DeprecatedCSSParser 2021-03-09 17:35:57 +01:00
Andreas Kling
078f0a5c67 LibWeb: Add specification-based CSS tokenizer
Original work by @stelar7 for #2628.
2021-03-09 17:35:38 +01:00
Andreas Kling
82aea65bd3 UserspaceEmulator: Add fast-path for is<MmapRegion>()
Don't use default RTTI for these since they are performance-sensitive.
2021-03-09 15:17:15 +01:00
Andreas Kling
656cd477c2 UserspaceEmulator+LibX86: Sprinkle some [[unlikely]] and ALWAYS_INLINE 2021-03-09 15:10:08 +01:00
Andreas Kling
c192b6c61d Emulator: Use libc.so bounds to fast-reject non-malloc addresses
The auditing code always starts by checking if we're in one of the
ignored code ranges (malloc, free, realloc, syscall, etc.)

To reduce the number of checks needed, we can cache the bounds of
the LibC text segment. This allows us to fast-reject addresses that
cannot possibly be a LibC function.
2021-03-09 15:01:08 +01:00
Brendan Coles
0c46918b73 UserspaceEmulator: Support FLDL2E / FLDPI, fix typos, use M_LN2 constant 2021-03-09 14:57:55 +01:00
Andreas Kling
54bd2ee738 UserspaceEmulator: Add Emulator::dump_regions() helper function 2021-03-09 14:44:54 +01:00
Andreas Kling
397f564144 UserspaceEmulator: Honor alignment requests in virt$mmap(MAP_RANDOMIZED) 2021-03-09 14:42:49 +01:00
Andreas Kling
0bf457f715 UserspaceEmulator: Add partial support for some more x87 instructions
Patch by @bcoles
2021-03-09 14:30:30 +01:00
Andreas Kling
57142a29a0 UserspaceEmulator: Don't set the MmapRegion malloc-block bit too early
We were setting it before the malloc metadata had been instantiated.

Fixes #5707.
2021-03-09 13:57:17 +01:00
Andreas Kling
1381720d1d UserspaceEmulator: Don't assume entire malloc block is chunked
Accesses in the header (or trailing padding) of a malloc block should
not be associated with any mallocation since only the chunk-sized slots
actually get returned by malloc.

Basically, allow address-to-chunk lookup to fail, and handle such
failures gracefully at call sites.

Fixes #5706.
2021-03-09 13:29:41 +01:00
Andreas Kling
38fc522f5d UserspaceEmulator: Don't audit accesses in calloc() and libsystem.so
These generate a lot of false positives and nothing of value.
2021-03-09 13:24:03 +01:00