summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
2021-05-29LibWasm: Fix logic error in Limits::parse()Ali Mohammad Pur
The check was negated, and it errored out when the read actually succeeded.
2021-05-29LibJS: Add tests for destructuring assignments and function parametersAli Mohammad Pur
2021-05-29LibJS: Implement destructuring assignments and function parametersAli Mohammad Pur
2021-05-29Userland: Check sudoers file perms and owner in plsJesse Buhagiar
As per comment found in #6319 by @bcoles, `pls` should check the permissions and owner of the sudoers file to ensure that it hasn't been compromised.
2021-05-29Userland: Implement `pls`, a sudo cloneJesse Buhagiar
2021-05-29LibC: Don't leak memory for realloc(p, 0)Gunnar Beutner
Previously we'd leak memory when the user called realloc(p, 0). Instead this call should behave as if the user had called free(p).
2021-05-29LibGUI/TreeView: Implement Home/End/PageUp/PageDn navigationJelle Raaijmakers
This adds an implementation for the Home, End, Page Up and Page Down cursor movements for TreeView. Also, the Up and Down movement implementations are replaced by a more efficient traversal mechanism: whereas the old code would walk over all visible nodes every time, the new code only evaluates relevant sibling and parent indices.
2021-05-29LibCore: Do not write disabled spwd values in generate_shadow_filebrapru
When LibC/shadow.cpp parses shadow entries in getspent, it sets the spwd member value to disabled (-1) if the value is empty. When Core::Account::sync calls getspent to generate a new shadow file, it would recieve the -1 values and write them in the shadow file. This would cause the /etc/shadow file to be cluttered with disabled values after any password change. This patch checks if the spwd member value is disabled, and prints the appropriate value to the shadow file.
2021-05-29LibGL: Rewrite error handling according to specStephan Unverwerth
Following https://www.khronos.org/registry/OpenGL/specs/gl/glspec15.pdf errors are now only recorded if m_error is GL_NO_ERROR m_error is reset to GL_NO_ERROR after a successful call to glGetError()
2021-05-29LibGL: Update rasterizer options in glDisable()Stephan Unverwerth
This bug must have been introduced by copy-pasting.
2021-05-29LibGL: Add macro for error checkingStephan Unverwerth
This adds a macro `RETURN_WITH_ERROR_IF` to SoftwareGLContext to remove a lot of noise from the interface implementation.
2021-05-29LibGfx: Switch to modern dbgln logging in ICOLoaderIdan Horowitz
2021-05-29LibGfx: Reject ICOs with height == NumericLimits<i32>::min()Idan Horowitz
Bitmap files use negative height values to signify that the image should be rendered top down, but if the height value equals to the minimum value, negating it to get the actual height results in UB.
2021-05-29LibJS: Instrument HeapBlock cell allocation for ASANAndrew Kaster
Mark the entirety of a heap block's storage poisoned at construction. Unpoison all of a Cell's memory before allocating it, and re-poison as much as possible on deallocation. Unfortunately, the entirety of the FreelistEntry must be kept unpoisoned in order for reallocation to work correctly. Decreasing the size of FreelistEntry or adding a larger redzone to Cells would make the instrumentation even better.
2021-05-29LibJS: Expose minimum possible cell size of JS::HeapAndrew Kaster
Use this to avoid creating a 16 byte cell allocator on x86_64, where the size of FreelistEntry is 24 bytes. Every JS::Cell must be at least the size of the FreelistEntry or things start crashing, so the 16 byte allocator was wasted on that platform.
2021-05-29LibJS: Remove unused HeapBlock private member functionAndrew Kaster
FreelistEntries are constructed manually in deallocate() instead of using this helper.
2021-05-29Kernel: Make sure we free the thread stack on thread exitGunnar Beutner
This adds two new arguments to the thread_exit system call which let a thread unmap an arbitrary VM range on thread exit. LibPthread uses this functionality to unmap the thread stack. Fixes #7267.
2021-05-29LibPthread: Make some variables staticGunnar Beutner
2021-05-29LibVT: Add missing cursor movement escape sequencesDaniel Bertalan
This commit adds support for the following ANSI escape sequences: - `CNL` - Cursor Next Line - `CPL` - Cursor Previous Line - `VPR` - Line Position Relative - `HPA` - Character Position Absolute - `HPR` - Character Position Relative
2021-05-29LibGUI: Distribute remaining pixels in BoxLayout to fill the entire areaMart G
Previously, the layout algorithm preferred to give every item an equally sized slice of the remaining space. This meant that not the entire area was used when the remaining size did not divide evenly by the number of items. This caused, for example, the ResizeCorner in HexEditor to be a couple of pixels left of the actual corner for some sizes of the window. Now, the remaining pixels are distributed on a first come, first served basis. However, only one pixel is distributed at a time. This means items towards the left might me a pixel larger than their siblings towards the right.
2021-05-29DisplaySettings: Set monitor widget color if no image is selectedJesse Buhagiar
The monitor widget now displays the selected colour if no background image has been selected. Resolves #7491
2021-05-29HexEditor: Add find_all_strings() functionBrendan Coles
2021-05-29Everywhere: Use s.unverwerth@serenityos.org :^)Stephan Unverwerth
2021-05-29Browser: Add title to go back/forward context menuMarcus Nilsson
Adds page title to the context menu for go back/forward.
2021-05-29LibGUI: Make HeaderView act only on the visible sectionsAli Mohammad Pur
i.e. Drawing them, or handling mouse events on them. Fixes #7505.
2021-05-29LibTLS: Allow using other hash algorithms for HMACDexesTTP
The standard allows for ciphers to define which hash to use. Fixes #7348
2021-05-29LibTLS: Use a more precise KeyExchangeAlgorithm enumDexesTTP
The old enumeration didn't allow discriminating the key exchange algorithms used, but only allowed the handshake with the server. With this new enumeration, we can know which key exchange algorithm we are actually supposed to use :^)
2021-05-29LibTLS: Add IANA Hex codes for all recommended cipher suitesDexesTTP
Also sort the existing cipher suites, and remove the unsupported ones. We don't support any of these recommended ciphers, but at least we now know which ones we should focus on :^)
2021-05-29LibWeb: Also call page_did_start_loading() for FrameLoader::Type::ReloadLinus Groh
Surprisingly this is not used by the browser's page reload functionality but only JS's location.reload() - that's probably why this hasn't been noticed yet. Make sure we notify the page client about the load start in that case as well. :^)
2021-05-29LibWeb: Call page_did_start_loading() before load_resource()Linus Groh
Otherwise we would sometimes (dependent on the load time, I believe) end up setting the document and eventually calling title change callbacks before communicating that the page started loading.
2021-05-29Browser: Pass Tab::on_title_change title argument as const referenceLinus Groh
2021-05-29Browser: Remove redundant parameter names from Tab::on_{g,s}et_cookieLinus Groh
2021-05-29LibWeb: Improve performance of CSS custom property resolutionTobias Christiansen
By memoizing already resolved custom properties in the DOM::Element, we achieve a notable speed increase when loading SerenityOS on GitHub.
2021-05-29LibWeb: Avoid unnecessary String copy in parsing CSS custom propertiesTobias Christiansen
2021-05-28SystemMonitor: Disable menu items for inaccessible processMarcus Nilsson
Disable the context menu items if user cannot access the process. Fixes #7486
2021-05-28SystemMonitor: Use u64 for disk sizesJesse Buhagiar
This fixes #7288, which was being caused by unsigned 32-bit integer overflow
2021-05-28LibGUI: Add u64 type to LibGUI::VariantJesse Buhagiar
`uint` has also been more appropriately renamed to u32.
2021-05-28LibWeb: Resolve custom propertiesTobias Christiansen
The way to get the custom properties is pretty weird and this code is as far from optimized as it gets but somehow it works :^)
2021-05-28LibWeb: StyleResolver: Keep track of specificity of matched selectorTobias Christiansen
This way it gets easier to compare matches.
2021-05-28LibWeb: Add parsing for custom propertiesTobias Christiansen
This parses 'some-property: var(--some-name)' and stores its findings in a CustomStyleValue. It also parses the custom properties like '--some-name: some-value' and puts them into the StyleProperty.
2021-05-28LibWeb: Store custom properties in CSSStyleDeclarationTobias Christiansen
Keep them around when parsing and store them in the CSSStyleDeclaration when done.
2021-05-28LibWeb: Add CustomStyleValueTobias Christiansen
This extends StyleValue and can hold the identifier of the custom property.
2021-05-28LibWeb: Add PropertyID::Custom to code generatorTobias Christiansen
2021-05-28Profiler: Use a more reasonable default event maskGunnar Beutner
Previously Profiler (e.g. when started via the context menu in SystemMonitor) would request logging _all_ event types. While this might be useful at a later point in time the lack of event type filtering in the profile viewer makes this less useful because showing different event types in the same timeline shows an inaccurate picture of what was really going on. Some event types (like kmalloc) happen more frequently than others (e.g. CPU samples) and while they don't carry the same weight they would still dominate the samples graph. This changes the Profiler app to just do CPU sampling for now.
2021-05-28LibJS: Poison unused heap blocks until they are re-allocatedAndrew Kaster
This is the coarsest grained ASAN instrumentation possible for the LibJS heap. Future instrumentation could add red-zones to heap block allocations, and poison the entire heap block and only un-poison used cells at the CellAllocator level.
2021-05-28LibGfx: Make sure we use unique class namesGunnar Beutner
Previously there were different definitions for classes with the same name. This is a violation of the C++ ODR.
2021-05-28UE: Make sure signal_trampoline_dummy is not optimized away with -fltoGunnar Beutner
This adds __attribute__((used)) to the function declaration so the compiler doesn't discard it. It also makes the function NEVER_INLINE so that we don't end up with multiple copies of the function. This is necessary because the function uses inline assembly to define some unique labels.
2021-05-28LibJS: Add inline capacity to BlockAllocator's blocks VectorIdan Horowitz
There's no need to dynamically allocate a constant sized vector :^)
2021-05-27HexEditor: Add 'Find All' option to Find Dialog to find all matchesBrendan Coles
2021-05-27Userland: Treat inet_pton returning 0 as an errorTim Schumacher
The POSIX man-page states that inet_pton returns 0 if the input is not a valid IPv4 dotted-decimal string or a valid IPv6 address string. This is also how it is implemented in SerenityOS. This means that we should treat a return value of 0 as an error to avoid using an invalid address (or 0.0.0.0).