summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-16AK: Avoid the unnecessarily confusing bunch of casts in IntrusiveListAnotherTest
And use bit_cast instead. Also explain what it does, because it's not at all trivial to understand :^)
2021-04-16Ports: SDL2: Use correct CMAKE_TOOLCHAIN_FILE in configoptsBrendan Coles
2021-04-16CI: Use clang-12 instead of clang-10 when building fuzzersAnotherTest
oss-fuzz uses clang-12 anyway, so this patch shouldn't be breaking anything, just letting us use more modern C++ without the CI being sad.
2021-04-16LibGUI+WindowServer: Fix some misaligned CMakeLists.txt SOURCES entriesLinus Groh
2021-04-16Meta: lint-ports: Check package files for required propertiesBrendan Coles
2021-04-16Ports: Add auth_type verification to all package.sh filesBrendan Coles
2021-04-16HexEditor: Use debgln_ifHendiadyoin1
2021-04-16UserspaceEmulator: use outln_ifHendiadyoin1
2021-04-16AK: Add outln_if and warnln_ifHendiadyoin1
This uses the same gating mechanism as dbgln_if and should be equivalent to #define flag etc
2021-04-16PixelPaint: Add keyboard zoom shortcutsJagger De Leo
You can now use Ctrl+= and Ctrl+- to zoom in and out.
2021-04-16PixelPaint: Add Zoom Reset button to new View Menubar.Jagger De Leo
If you lose your image while panning and zooming around, it is handy to have a reset function to get back home. :^)
2021-04-16LibJS: Dont try to serialize symbol-keyed propertiesIdan Horowitz
As per the specification: "All Symbol-keyed properties will be completely ignored, even when using the replacer function."
2021-04-16LibJS: Accept symbol property in ObjectPrototype::hasOwnPropertyIdan Horowitz
This is used by discord.com and allowed by the specification (https://tc39.es/ecma262/#sec-topropertykey)
2021-04-16Browser+LibWeb+WebContent: Parse cookies in the OOP tabTimothy Flynn
To protect the main Browser process against nefarious cookies, parse the cookies out-of-process and then send the parsed result over IPC to the main process. This way, if the cookie parser blows up, only that tab will be affected.
2021-04-16LibCore+LibIPC: Add IPC coder for Core::DateTimeTimothy Flynn
Since LibCore cannot depend on LibIPC, the coders are defined in LibIPC just like they are for Core::AnonymousBuffer.
2021-04-16AK: Add type alias for AK::OptionalTimothy Flynn
2021-04-16LibWeb: Impose a sane max cookie sizeTimothy Flynn
Drop cookies larger than 4KiB. This value is the RFC's recommendation: https://tools.ietf.org/html/rfc6265#section-6.1
2021-04-16Ports: Build shared libraries for a few more portsGunnar Beutner
This manually builds shared libraries for a bunch of ports. Using libtool would be preferable but that's currently broken so I'm linking the shared libraries manually.
2021-04-16Ports: Make sure ports are installed into /usr/localGunnar Beutner
2021-04-16LibELF: Add support for loading libraries from /usr/localGunnar Beutner
2021-04-16Toolchain+Ports: Move the CMake toolchain file into a subdirectoryGunnar Beutner
2021-04-16Toolchain: Add platform definition for CMakeGunnar Beutner
This also ensures that pkg-config finds packages in /usr/local and changes the install prefix to /usr/local.
2021-04-16Everywhere: Add `-Wdouble-promotion` warningNicholas-Baron
This warning informs of float-to-double conversions. The best solution seems to be to do math *either* in 32-bit *or* in 64-bit, and only to cross over when absolutely necessary.
2021-04-16LibDebug/Dwarf: Use dbgln_if() instead of '#if DWARF_DEBUG'AnotherTest
2021-04-16UserspaceEmulator: Print stacktrace for unhandled exceptionsGunnar Beutner
2021-04-16LibDebug: Add support for StandardOpcodes::FixAdvancePcGunnar Beutner
2021-04-16LibDebug: Add array bounds check for m_source_filesGunnar Beutner
2021-04-16LibJS: Remove #if !defined(KERNEL)Linus Groh
AK::JsonValue::{is,as}_double() is not available in the kernel, but that doesn't affect LibJS.
2021-04-16Kernel: Add some missing socket ioctlssin-ack
This patch adds a few missing ioctls which were required by Wine. SIOCGIFNETMASK, SIOCGIFBRDADDR and SIOCGIFMTU are fully implemented, while SIOCGIFFLAGS and SIOCGIFCONF are stubs.
2021-04-16man: Update SystemServer(5) documentation with new Socket stylesin-ack
This patch adds new information about the usage of multiple sockets with eager services and the new socket takeover mechanism exposed by SystemServer.
2021-04-16Ports: Update the gcc port to 10.3.0Gunnar Beutner
2021-04-16Ports: Remove obsolete patch for mrshGunnar Beutner
2021-04-16LibC: Don't call initializers in crt0Gunnar Beutner
The dynamic linker is already taking care of this for us. Now that crt0 is statically linked into each executable and shared library this breaks things because initializers are invoked twice. Before this PR this didn't crash because crt0 and its _start() function was contained in LibC and thus only LibC's initializers were invoked several times which wasn't as much of a problem because these initializers didn't have any side effects (such as malloc/free). However, user programs are more likely to have constructors with side effects, e.g.: std::string g_test("hello!"); This would allocate memory when the constructor is invoked. When it is invoked again the original allocation would be leaked and another copy of the string would get allocated. Worse still, when the destructors are invoked twice the memory would get free'd twice which would likely crash the program.
2021-04-16Toolchain+LibC: Don't link LibC against crt0Gunnar Beutner
Instead GCC should be used to automatically link against crt0 and crt0_shared depending on the type of object file that is being built. Unfortunately this requires a rebuild of the toolchain as well as everything that has been built with the old GCC.
2021-04-16LibC: Shared libraries shouldn't have an entry pointGunnar Beutner
The _start() function attempts to call main() which is a problem when trying to build a shared library with --no-undefined: $ echo > t.c $ gcc -shared -Wl,--no-undefined -o t.so t.c /usr/local/lib/gcc/i686-pc-serenity/10.2.0/../../../../i686-pc-serenity/bin/ld: /usr/lib/crt0_shared.o: in function `_start': ./Build/i686/../../Userland/Libraries/LibC/crt0_shared.cpp:56: undefined reference to `main' collect2: error: ld returned 1 exit status Also, unless explicitly requested by the user shared libraries should not have an entry point (e.g. _start) at all.
2021-04-16AK: Fix incorrect formatter signing of numbers between -1.0 and 0.0Matthew Olsson
Floating point numbers are casted to i64 and passed to the integer formatting logic, and the floating point portion of the number is handled separately. However, casting to i64 when the number is between -1.0 and 0.0 produces 0, so the sign would be lost. This commit fixes that by using put_u64 instead, which allows us to manually provide the is_negative flag.
2021-04-16Documentation: Fix the path to the disk image on WSLJoão Moreno
2021-04-16LibDebug: Fix typo in handle_special_opcode method nameFalseHonesty
handle_sepcial_opcode -> handle_special_opcode :)
2021-04-16Ports: Bump git to 2.31.1Federico Guerinoni
2021-04-16WindowServer: Recalculate window rect when toggling menubarLinus Groh
This is important when the window is maximized or tiled (which recalculate_rect() will both check), as we otherwise create a gap above the window frame (when hiding the menubar) or push the frame off the screen (when showing the menubar).
2021-04-16WindowServer: Replace window menu action magic numbers with enumLinus Groh
This makes it a lot easier to find where the action handling is happening, just 1, 2, 3, 4 isn't very discoverable. :^)
2021-04-15SystemServer+LibCore: Allow service to request multiple socketssin-ack
SystemServer only allowed a single socket to be created for a service before this. Now, SystemServer will allow any amount of sockets. The sockets can be defined like so: [SomeService] Socket=/tmp/portal/socket1,/tmp/portal/socket2,/tmp/portal/socket3 SocketPermissions=660,600 The last item in SocketPermissions is applied to the remainder of the sockets in the Socket= line, so multiple sockets can have the same permissions without having to repeat them. Defining multiple sockets is not allowed for socket-activated services at the moment, and wouldn't make much sense anyway. This patch also makes socket takeovers more robust by removing the assumption that the socket will always be passed in fd 3. Now, the SOCKET_TAKEOVER environment variable carries information about which endpoint corresponds to which socket, like so: SOCKET_TAKEOVER=/tmp/portal/socket1:3 /tmp/portal/socket2:4 and LocalServer/LocalService will parse this automatically and select the correct one. The old behavior of getting the default socket is preserved so long as the service only requests a single socket in SystemServer.ini.
2021-04-15Welcome: Fix build breakageAndreas Kling
2021-04-15Everything: Add `-Wnon-virtual-dtor` flagNicholas-Baron
This flag warns on classes which have `virtual` functions but do not have a `virtual` destructor. This patch adds both the flag and missing destructors. The access level of the destructors was determined by a two rules of thumb: 1. A destructor should have a similar or lower access level to that of a constructor. 2. Having a `private` destructor implicitly deletes the default constructor, which is probably undesirable for "interface" types (classes with only virtual functions and no data). In short, most of the added destructors are `protected`, unless the compiler complained about access.
2021-04-15WindowServer: Clean up some of the code around menu item hoveringAndreas Kling
We were writing to the currently hovered menu item index in a bunch of places, which made it very confusing to follow how it changes. Rename Menu::set_hovered_item() to set_hovered_index() and use it in more places instead of manipulating m_hovered_item_index.
2021-04-15Applications: Rename Serendipity => WelcomeAndreas Kling
Let's stick to the theme of "the most obvious name possible"
2021-04-15Applets: Remove unused UserName appletAndreas Kling
2021-04-15LibWeb: Expose the MouseEvent::{clientX, clientY} attributesIdan Horowitz
These provide the cursor coordinate within the viewport at which the event occurred (as opposed to the page relative coordinates exposed via offsetX, offsetY).
2021-04-15LibWeb: Expose the HTMLElement::{offsetLeft, offsetTop} attributesIdan Horowitz
These describe the border box of an element relative to their parent.
2021-04-15LibWeb: Check radius sign in CanvasRenderingContext2D::{arc, ellipse}Idan Horowitz
As required by the specification: 'If either radiusX or radiusY are negative, then throw an "IndexSizeError" DOMException.'