summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-12Ports: Remove configure option which disables getattrinfo() for curlGunnar Beutner
2021-04-12Ports: Fix for building opensshGunnar Beutner
2021-04-12LibC: Implement getaddrinfo(), freeaddrinfo(), gai_strerror() and getnameinfo()Gunnar Beutner
2021-04-12LibC: The port numbers returned by getservby*() should be in network byte orderGunnar Beutner
2021-04-12LibC: Validate the len argument for inet_ntop()Gunnar Beutner
2021-04-12LibDebug: Stop parsing unhandled variable typesFalseHonesty
Previously, when trying to debug variables with more complex types (such as String), we would crash the debugger simply because it didn't know how to handle types that were irrelevant anyways. Now we just skip data we don't yet know how to handle.
2021-04-12HackStudio: Fix debugger preview for char variablesFalseHonesty
2021-04-12LibDebug+HackStudio: Fix crashes relating to debugger variable previewFalseHonesty
For one, viewing a variable who's type contained a subprogram will no longer crash HackStudio. Additionally, the variable view will handle invalid enum values gracefully now, fixing another crash. Finally, deeply nested (nest count > 1) structures will have their memory addresses properly set, fixing the final crash I found.
2021-04-12HackStudio: Properly support Debugger's new source root conceptFalseHonesty
HackStudio's debugger instance has its source root property updated when switching projects, and breakpoints will properly canonicalize their file paths as the Debugger now expects.
2021-04-12Ports: Remove obsolete patches for <limits.h>Gunnar Beutner
2021-04-12Toolchain: Install system headers before building GCCGunnar Beutner
GCC determines whether the system's <limits.h> header is usable and installs a different version of its own <limits.h> header depending on whether the system header file exists. If the system header is missing GCC's <limits.h> header does not include the system header via #include_next. For this to work we need to install LibC's headers before attempting to build GCC. Also, re-running BuildIt.sh "hides" this problem because at that point the sysroot directory also already has a <limits.h> header file from the previous build.
2021-04-12AK: Fix StringView::find_last_of for one-character viewsTimothy Flynn
The find_last_of implementations were breaking out of the search loop too early for single-character string views. This caused a crash in CookieJar setting a cookie on google.com - CookieJar::default_path knew there was at least one "/" in a string view, but find_last_of returned nullopt, so dereferencing the optional caused a crash. Fixes #6273
2021-04-12Browser: Change value of "the latest representable date" for cookiesTimothy Flynn
Setting the year to NumericLimits<unsigned>::max() resulted in the following datetime: -2-12-31 00:00:00. Instead, set the latest datetime to the last second of the year 9999.
2021-04-12Browser: Add debug command to dump cookiesTimothy Flynn
Using document.cookie only lets the test page see the name/value pair; the value returned will not included the parsed attributes.
2021-04-12Base: Update cookie test page to set some attributesTimothy Flynn
2021-04-12Browser: Process Expires cookie attributeTimothy Flynn
2021-04-12AK: Add a predicate variant of StringView::split_viewTimothy Flynn
2021-04-12LibC: Use dbgln() in strerror() and strsignal()Gunnar Beutner
Printing error messages to stdout can have unintended side effects depending on what the program is doing.
2021-04-12LibC: Turn CRASH() into a function and add noreturn attributeGunnar Beutner
This way CRASH() can be used in functions that are themselves marked as noreturn.
2021-04-12WindowServer: Fix notification placementValtteri Koskivuori
No more top bar, no more extra padding. Spacing is equal on the top and on the left, so it looks pretty tidy.
2021-04-12Meta: Add .vim directory to .gitignoreDavid Isaksson
2021-04-12HackStudio: Allow users to drag and drop files into the editorRickySeverino
2021-04-12Kernel: Replace process' regions vector with a Red Black treeIdan Horowitz
This should provide some speed up, as currently searches for regions containing a given address were performed in O(n) complexity, while this container allows us to do those in O(logn).
2021-04-12Kernel: Remove old region from process' regions vector before splittingIdan Horowitz
This does not affect functionality right now, but it means that the regions vector will now never have any overlapping regions, which will allow the use of balance binary search trees instead of a vector in the future. (since they require keys to be exclusive)
2021-04-12AK: Implement IntrusiveRedBlackTree containerIdan Horowitz
This container is similar to the RedBlackTree container, but instead of transparently allocating tree nodes on insertion and freeing on removal this container piggybacks on intrusive node fields in the stored class
2021-04-12AK: Implement RedBlackTree containerIdan Horowitz
This container is based on a balanced binary search tree, and as such allows for O(logn) worst-case insertion, removal, and search, as well as O(n) sorted iteration.
2021-04-12UserspaceEmulator: Improve detection of memory leaksTobias Christiansen
Previous a mallocation was marked as 'reachable' when any other mallocation or memory region had a pointer to that mallocation. However there could be the situation that two mallocations have pointers to each other while still being unreachable from anywhere else. They would be marked as 'reachable' regardless. This patch replaces the old way of detemining whether a mallocation is reachable by analyzing the dependencies of the different mallocations using a graph-approach. Now mallocations are only reachable if pointed to by other reachable mallocations or other memory regions. A nice bonus is that this gets rid of a nested for_each_mallocation, so the complexity of leak finding becomes linear instead of quadratic.
2021-04-12LibWeb: Set border width to zero if style is noneEgor Ananyin
2021-04-12LibWeb: Parse border-style correctlyEgor Ananyin
2021-04-12Documentation: Fix FreeBSD usage of the pkg commandEmil Engler
2021-04-12Base: Fix a few width/height oversights in Marietathankyouverycool
Corrects punctuation width and erroneous 'Q' width reset. Adjusts height of double quote and '$'
2021-04-12WindowServer: Strip Alt-shortcut marker ('&') when measuring menu textsAndreas Kling
We were including these markers when computing the sizes of menus, causing them to get a little too much padding.
2021-04-12Ports: fallback to pro when curl is not installedPeter Elliott
2021-04-12Ports: Require less commands in .port_include.shPeter Elliott
- fallback to http with curl when https fails - add --no-gpg-verification, which will skip gpg signature verification
2021-04-12LibArchive: Support POSIX.1-1988 tar filesPeter Elliott
These old tar files didn't have magic numbers, so I've also added a checksum check to TarInputStream::valid()
2021-04-12Ports: Don't use getaddrinfo for curlPeter Elliott
serenity's getaddrinfo is a stub, but curl detects it anyway, and uses it instead of gethostbyname.
2021-04-12Userland: Add nproc utilityPeter Elliott
nproc prints the number of processors on the system. Our ports system uses it.
2021-04-12Userland: Add support for -S to env commandPeter Elliott
- Refactor env to use Core::ArgsParser - create symlink from /bin/env to /usr/bin/env for compatiability
2021-04-12Meta: Add install-ports CMake targetPeter Elliott
install-ports copys the necessary files from Ports/ to /usr/Ports. Also refactor the compiler and destiation variables from .port_include.sh into .hosted_defs.sh. .hosted_defs.sh does not exists when ports are built in serenity
2021-04-12Ports: Add DialogBrendan Coles
2021-04-12LibJS: Memoize failed calls of try_parse_arrow_function_expression()Stephan Unverwerth
2021-04-12Ports: Add GNU libtoolBrendan Coles
2021-04-12LibJS: Make Errors fully spec compliantLinus Groh
The previous handling of the name and message properties specifically was breaking websites that created their own error types and relied on the error prototype working correctly - not assuming an JS::Error this object, that is. The way it works now, and it is supposed to work, is: - Error.prototype.name and Error.prototype.message just have initial string values and are no longer getters/setters - When constructing an error with a message, we create a regular property on the newly created object, so a lookup of the message property will either get it from the object directly or go though the prototype chain - Internal m_name/m_message properties are no longer needed and removed This makes printing errors slightly more complicated, as we can no longer rely on the (safe) internal properties, and cannot trust a property lookup either - get_without_side_effects() is used to solve this, it's not perfect but something we can revisit later. I did some refactoring along the way, there was some really old stuff in there - accessing vm.call_frame().arguments[0] is not something we (have to) do anymore :^) Fixes #6245.
2021-04-12LibJS: Add Object::get_without_side_effects()Linus Groh
Similar to Value::to_string_without_side_effects() this is mostly a regular object property lookup, but with the guarantee that it will be side-effect free, i.e. no accessors or native property functions will be called. This is needed when we want to access user-controlled object properties for debug logging, for example. The specific use case will be error objects which will soon no longer have internal name/message properties, so we need to guarantee that printing an error, which may already be the result of an exception, won't blow up in our face :^)
2021-04-12LibWeb: Add Window.parent and fix Window.top attributesLuke
This returns the parent frame of the current frame. If it's the main frame, it returns itself. Also fixes the attributes of Window.top, as they were accidentally being passed in as the setter. Required by Web Platform Tests.
2021-04-12Browser: Process Secure and HttpOnly cookie attributesTimothy Flynn
2021-04-12Browser: Process Path cookie attributeTimothy Flynn
2021-04-12Browser: Process Domain cookie attributeTimothy Flynn
2021-04-12Browser: Process Max-Age cookie attributeTimothy Flynn
Note: the default expiry time should be the "the latest representable date". However, DateTime::from_timestamp(NumericLimits<time_t>::max()) isn't feasible due to the for-loops in LibC's time_to_tm. So instead, this just sets the date to the maxium year.
2021-04-12Browser: Parse cookie attribute name-value pairsTimothy Flynn
Implements the remainder of the parsing algorithm of RFC-6265 Section 5.2 to extract optional attributes. The attribute values are not processed.