summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-04-04Base: Desaturate the audio applet iconsAndreas Kling
2021-04-04ClipboardHistory: Use the "edit-copy" icon instead of a colorized oneAndreas Kling
2021-04-04Base: Tweak default shell promptAndreas Kling
2021-04-04Meta: Removed commas from command in macOS prereqs (#6109)Will
The commas cause Homebrew to attempt to install "osxfuse," instead of osxfuse. "osxfuse," doesn't exist.
2021-04-04Ports: Add ScummVMJelle Raaijmakers
2021-04-04LibC: Teach `vsscanf()` to consume the width specifierJelle Raaijmakers
Previously, `vsscanf()` would crash whenever it encountered a width specification. Now, it consumes the width specification but does not yet do anything with it.
2021-04-04LibC: Add NI_MAXHOST and NI_MAXSERV constantsJelle Raaijmakers
These are not POSIX-defined but are almost always present in <netdb.h>.
2021-04-04LibC: Use 'long long' specialisations of scanf's read_element_concreteAnotherTest
...for 'long long' and 'unsigned long long', instead of reading them as 'long's and 'unsigned long's. Also add a test for values that can only fit in (unsigned) long long. Fixes #6096.
2021-04-04Spreadsheet: Declare the extern GML variable as an array, not a pointerDawid Wolosowicz
Part of #5906 Fixes #5943
2021-04-04LibWeb: Implement the Screen interfaceLinus Groh
https://drafts.csswg.org/cssom-view/#the-screen-interface
2021-04-04LibWeb+WebContent: Keep track of screen rectLinus Groh
It is now possible to get the up-to-date screen rect from a Web::Page.
2021-04-04Everywhere: Replace uses of GUI::Desktop's on_rect_change and remove itLinus Groh
2021-04-04LibGUI: Add ScreenRectChangeEvent and deliver it to windows and widgetsLinus Groh
Having to rely on GUI::Desktop's on_rect_change is quite limiting and a bit awkward (continuing to use it would mean having to setup the callback in every application using a webview) - we need a better way of letting widgets know of a screen rect change automatically. The specific use case will be IPWV/OOPWV which need to keep track of the screen rect and notify the WebContent service of any change (which on its own deliberately can't interact with WindowServer at all). It'll also be useful for notification windows and the taskbar, which currently both rely on the GUI::Desktop callback but will now be able to listen and react to the event themselves.
2021-04-03LibGfx: Use integer version of Bresenham's algorithm.Oleg Sikorskiy
2021-04-03Ports: Added a Prince of Persia (SDLPoP) port.Manuel Palenzuela
This is a port of the dissasembly version of the DOS prince of persia game :)
2021-04-03LibC: Fix FILE::flush() passing bogus arguments to lseek()Andreas Kling
This was a regression from the 64-bit off_t changes. When dropping buffered data after a flush, we would subtract the buffered amount from zero to get the seek offset. This didn't work right since the subtraction was done with a 32-bit size_t and we ended up with e.g (i64)0xfffffffc as the offset. Fixes #6003.
2021-04-03LibGUI: Don't try to paint items in model-less IconView :^)Andreas Kling
Fixes #6079.
2021-04-03Base: Make the "little" test program compilable againAndreas Kling
2021-04-03Kernel/PCI: Introduce a new ECAM access mechanismLiav A
Now the kernel supports 2 ECAM access methods. MMIOAccess was renamed to WindowedMMIOAccess and is what we had until now - each device that is detected on boot is assigned to a memory-mapped window, so IO operations on multiple devices can occur simultaneously due to creating multiple virtual mappings, hence the name is a memory-mapped window. This commit adds a new class called MMIOAccess (not to be confused with the old MMIOAccess class). This class creates one memory-mapped window. On each IO operation on a configuration space of a device, it maps the requested PCI bus region to that window. Therefore it holds a SpinLock during the operation to ensure that no other PCI bus region was mapped during the call. A user can choose to either use PCI ECAM with memory-mapped window for each device, or for an entire bus. By default, the kernel prefers to map the entire PCI bus region.
2021-04-03Kernel: Enable PCI ECAM method again if availableLiav A
Apparently we don't enable PCI ECAM (MMIO access to the PCI configuration space) even if we can. This is a regression, as it was enabled in the past and in unknown time it was regressed. The CommandLine::is_mmio_enabled method was renamed to CommandLine::is_pci_ecam_enabled to better represent the meaning of this method and what it determines. Also, an UNMAP_AFTER_INIT macro was removed from a method in the MMIOAccess class as it halted the system when the kernel tried to access devices after the boot process.
2021-04-03Ports: Added a cmatrix portManuel Palenzuela
2021-04-03LibWeb: Defer creation of subframes until host element is connectedAndreas Kling
This allows parsing of document fragments with "<iframe>" to construct the iframe element without requiring that the fragment have a frame.
2021-04-03LibWeb: Implement XMLHttpRequest.getResponseHeader()Linus Groh
This lets jQuery's AJAX functionality progress further :^)
2021-04-03LibWeb: Implement XMLHttpRequest.statusLinus Groh
This lets jQuery's AJAX functionality progress further :^)
2021-04-03LibWeb: Make XMLHttpRequest.open() work with relative URLsLinus Groh
2021-04-03LibWeb: Pass optional status code to ResourceLoader callbacksLinus Groh
This is needed for XMLHttpRequest, and will certainly be useful for other things, too.
2021-04-03LibWeb: Set Constructor.name and Prototype.constructor of generated interfacesLinus Groh
Object introspection in the Browser's JS console is still not great, but this makes it a lot easier to find out the exact type of an object by checking its 'constructor' property. It also fixes all the things that rely on these properties being set, of course :^)
2021-04-03LibJS: Log any exception, not just the ones with a JS::Error valueLinus Groh
This was super confusing as we would check if the exception's value is a JS::Error and not log it otherwise, even with m_should_log_exceptions set. As a result, things like DOM exceptions were invisible to us with execution just silently stopping, for example.
2021-04-03LibJS: Fix returning from try statementLinus Groh
Not sure if this regressed at some point or just never worked, it definitely wasn't tested at all. We would always return undefined when returning from a try statement block, handler, or finalizer.
2021-04-03LibJS: Keep RegExp.exec() results in correct orderLinus Groh
By using regex::AllFlags::SkipTrimEmptyMatches we get a null string for unmatched capture groups, which we then turn into an undefined entry in the result array instead of putting all matches first and appending undefined for the remaining number of capture groups - e.g. for /foo(ba((r)|(z)))/.exec("foobaz") we now return ["foobaz", "baz", "z", undefined, "z"] and not [ ["foobaz", "baz", "z", "z", undefined] Fixes part of #6042. Also happens to fix selecting an element by ID using jQuery's $("#foo").
2021-04-03LibJS: ArrayBuffer.prototype.sliceJamie Mansfield
Implements the aforementioned native Javascript function, following the specification's [1] implementation. [1] https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice
2021-04-03LibWeb: Add support for HTML input type=radioTimothy Flynn
2021-04-03Base: Add test page for HTML input type=radio elementsTimothy Flynn
2021-04-03LibWeb: CSSImportRule::set_style_sheet() should take a CSSStyleSheetAndreas Kling
Spotted by @tomuta in #6086.
2021-04-03LibWeb: Add a FrameHostElement for frame/iframe common functionalityAndreas Kling
A FrameHostElement is an HTML element (<frame> or <iframe>) that may have a content frame that participates in the frame tree. This basically just moves code from <iframe> to a separate base class so we can share it with <frame> once we implement <frame>.
2021-04-03Kernel: Introduce a new HID subsystemLiav A
The end goal of this commit is to allow to boot on bare metal with no PS/2 device connected to the system. It turned out that the original code relied on the existence of the PS/2 keyboard, so VirtualConsole called it even though ACPI indicated the there's no i8042 controller on my real machine because I didn't plug any PS/2 device. The code is much more flexible, so adding HID support for other type of hardware (e.g. USB HID) could be much simpler. Briefly describing the change, we have a new singleton called HIDManagement, which is responsible to initialize the i8042 controller if exists, and to enumerate its devices. I also abstracted a bit things, so now every Human interface device is represented with the HIDDevice class. Then, there are 2 types of it - the MouseDevice and KeyboardDevice classes; both are responsible to handle the interface in the DevFS. PS2KeyboardDevice, PS2MouseDevice and VMWareMouseDevice classes are responsible for handling the hardware-specific interface they are assigned to. Therefore, they are inheriting from the IRQHandler class.
2021-04-03LibKeyboard: Mark CharacterMap::get_char as constLiav A
Also, mark character_map_name method as const and make it to return const String& instead of const String.
2021-04-03Documentation: Add supported and tested motherboards to the listLiav A
I tested both motherboards and they seem to boot Serenity correctly :)
2021-04-03Documentation: Clarify that AHCI is supported but may suffer from bugsLiav A
We do support AHCI now, but the implementation could be incomplete for some chipsets. Also, we should write the acronym "Non-volatile Memory Express" as NVMe. not NVME.
2021-04-03Revert "Kernel/PCI: Allow to set the PCI IRQ line of a device"Liav A
This reverts commit 36a82188a88c95315e03f6fcede237bc66831702. This register is write-only for the firmware (BIOS), and read-only for us so we shouldn't set the PCI IRQ line never. The firmware figured out the IRQ routing to the PIC for us, so changing it won't affect anything. I was mistaken when I thought that changing the value of this register will allow us to change its interrupt line, like when changing a PCI BAR to relocate device resources as desired with the requirements of the OS.
2021-04-03Kernel/Storage: Add support for IDE controllers in PCI native modeLiav A
Also handle native and compatibility channel modes together, so if only one IDE channel was set to work on PCI native mode, we need to handle it separately, so the other channel continue to operate with the legacy IO ports and interrupt line.
2021-04-03Kernel: NetworkTask: Remove 10.0.2.x as default IP for NIC interfacesBrendan Coles
2021-04-03LibWeb: Support rendering background images with 'background-repeat'Timothy Flynn
Update the painting of background images for both <body> nodes and other non-initial nodes. Currently, only the following values are supported: repeat, repeat-x, repeat-y, no-repeat This also doesn't support the two-value syntax which allows for setting horizontal and vertical repetition separately.
2021-04-03LibWeb: Store computed CSS value of background-repeatTimothy Flynn
2021-04-03Base: Add test page for the 'background-repeat' propertyTimothy Flynn
This page tests the following values for background-repeat: repeat, repeat-x, repeat-y, no-repeat The test is duplicated for the <body> node and for child <div> nodes, because the code that paints these nodes are in separate locations.
2021-04-03LibCrypto: Avoid overly big allocs in intermediate ModularPower resultsAnotherTest
If we don't limit the sizes of the intermediate results, they will grow indefinitely, causing each iteration to take longer and longer (in both memcpy time, and algorithm runtime). While calculating the trimmed length is fairly expensive, it's a small cost to pay for uniform iteration times.
2021-04-03LibTLS: Make the TLS connection options user-configurableAnotherTest
The user may now request specific cipher suites, the use of SNI, and whether we should validate certificates (not that we're doing a good job of that).
2021-04-03LibTLS: Remove long-outdated comment that no longer makes senseAnotherTest
2021-04-03LibTLS: Move TLS extensions to a separate 'extensions' structAnotherTest
This has no behavioural effect.
2021-04-02Taskbar: Tweak taskbar widget marginsAndreas Kling
Basically, nudge everything down 1 pixel.