summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-01-18LibWeb: Parse the CSS "flex-direction" propertyAndreas Kling
2021-01-18LibWeb: Add a very naive Layout::FlexFormattingContext :^)Andreas Kling
This is very dumb and only lays out its child boxes on a horizontal line with their shrink-to-fit widths. You have to start somewhere! :^)
2021-01-18LibWeb: Add Layout::Box::margin_box_width()Andreas Kling
2021-01-18LibWeb: Parse "display: flex" and create BlockBox layout nodes for themAndreas Kling
I'm not 100% sure that BlockBox is the right layout node for flex containers, but it's the most obviously fitting one we already have.
2021-01-18LibELF: Remove unused m_global_symbol_lookup_func from DynamicObjectLinus Groh
This was refactored in 3e815ad, leaving this unused member behind.
2021-01-18LibWeb: Stub out the PerformanceTiming object from Navigation TimingAndreas Kling
Just have all the timing functions return 0 for now. We can now run the Shynet JS on https://linus.dev/ although the XHR is rejected by our same-origin policy.
2021-01-18LibWeb: Add support for XMLHttpRequest request headersAndreas Kling
Implement XMLHttpRequest.setRequestHeader() and include the headers in the outgoing HTTP request.
2021-01-18LibWeb: Make the Window object "inherit" from EventTarget :^)Andreas Kling
Since Web::Bindings::WindowObject inherits from JS::GlobalObject, it cannot also inherit from Web::Bindings::EventTargetWrapper. However, that's not actually necessary. Instead, we simply set the Window object's prototype to the EventTargetPrototype, and add a little extra branch in the impl_from() function that turns the JS "this" value into a DOM::EventTarget*. With this, you can now call window.addEventListener()! Very cool :^) Fixes #4758.
2021-01-18LibWeb: Move IDL attributes and functions to the prototypeAndreas Kling
Instead of each IDL interface wrapper having its own set of all the attributes and functions, they are moved to the prototype. This matches what we already do in LibJS. Also, this should be spec compliant with the web as well, though there may be *some* content out there that expects some things to be directly on the wrapper since that's how things used to work in major browsers a long time ago. But let's just not worry about that for now. More work towards #4789
2021-01-18LibWeb: Construct the IDL interface prototype chains automaticallyAndreas Kling
Have each IDL prototype trigger the construction of its own prototype.
2021-01-18LibWeb: Actually instantiate all the web constructors/prototypesAndreas Kling
We now instantiate all the generated web API constructors and expose them on the window object. We also set the generated prototypes on instantiated wrappers. Also, we should obviously find a way to generate this code. :^)
2021-01-18LibWeb: Generate constructor and prototype classes for IDL interfacesAndreas Kling
This patch adds a FooPrototype and FooConstructor class for each IDL interface we generate JS bindings for. These classes are very primitive and don't do everything they should yet, but we have to start somewhere. :^) Work towards #4789
2021-01-18LibJS: Add JS::NativeFunction to the forwarding headerAndreas Kling
2021-01-18LibWeb: Move HTML::SubmitEvent functions out of lineAndreas Kling
2021-01-18Base: Remove irrelevant example from Shell's `loop` manpage sectionAnotherTest
Seems like it was copied one too many times.
2021-01-18Base: Mention that the `if` condition is a commandAnotherTest
Sorta closes #4991.
2021-01-18Shell: Allow newlines between `else` and `if`'s closing braceAnotherTest
This is more flexible and intuitive. Fixes #4992.
2021-01-17Kernel: Assert on attempt to mark inode metadata dirty on read-only FSAndreas Kling
2021-01-17Kernel: Remove /proc/PID/vmobjectsAndreas Kling
This file was useful for debugging a long time ago, but has bitrotted at this point. Instead of updating it, let's just remove it since nothing is using it.
2021-01-17Kernel: Remove unused /proc/mm fileAndreas Kling
This was a file I used very early on to dump information about kernel VM objects. It's long since superseded by other JSON-based files.
2021-01-17Kernel: Unbreak /proc/PID/root symlinkAndreas Kling
The generator callback for this file was mistakenly returning false on success, which caused the kernel to fail sys$readlink() with ENOENT.
2021-01-17Kernel: Some futex improvementsTom
This adds support for FUTEX_WAKE_OP, FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_REQUEUE, and FUTEX_CMP_REQUEUE, as well well as global and private futex and absolute/relative timeouts against the appropriate clock. This also changes the implementation so that kernel resources are only used when a thread is blocked on a futex. Global futexes are implemented as offsets in VMObjects, so that different processes can share a futex against the same VMObject despite potentially being mapped at different virtual addresses.
2021-01-17AK: Add Vector::remove overload for removing entire rangesTom
2021-01-17Kernel: Add safe atomic functionsTom
This allows us to perform atomic operations on potentially unsafe user space pointers.
2021-01-17Kernel: Limit exec arguments and environment to 1/8th of stack eachAndreas Kling
This sort-of matches what some other systems do and seems like a generally sane thing to do instead of allowing programs to spawn a child with a nearly full stack.
2021-01-17Ext2FS: Update block group directory count after directory removalAndreas Kling
When freeing an inode, we were checking if it's a directory *after* wiping the inode metadata. This caused us to forget updating the block group descriptor with the new directory count.
2021-01-17LibGfx: Make Painter take the scale factor as constructor argumentNico Weber
I want to give Bitmap an intrinsic scale factor and this is a step in that direction. No behavior change.
2021-01-17LibGfx: Convert all the dbg() in BMPLoader to dbgln()Andreas Kling
Also get rid of the awkward IF_BMP_DEBUG macro while we're here.
2021-01-17Kernel: Remove a bunch of no-longer-necessary SmapDisablersAndreas Kling
We forgot to remove the automatic SMAP disablers after fixing up all this code to not access userspace memory directly. Let's lock things down at last. :^)
2021-01-17LibWeb: Add fast_is<T>() for some DOM and layout node subclassesAndreas Kling
The generic is<T>() uses dynamic_cast which is fine in the majority of cases, but when one of them shows up in profiles, we can make it faster by answering the is-a question manually.
2021-01-17AK: Make is<T>(input) use input.fast_is<T>() if availableAndreas Kling
This allows classes to provide an optimized is<T> via the fast_is<T>() member function.
2021-01-17LibJS: Replace ASTNode::class_name() with RTTIAndreas Kling
This is only used for debugging anyway, so performance doesn't matter too much.
2021-01-17Kernel: Prune uninteresting kernel frames from profiling samplesAndreas Kling
Start capturing the sample stacks at the EIP/EBP of the pre-empted thread instead of capturing EBP in the sampling function itself.
2021-01-17Kernel+Userland: Remove shared buffers (shbufs)Andreas Kling
All users of this mechanism have been switched to anonymous files and passing file descriptors with sendfd()/recvfd(). Shbufs got us where we are today, but it's time we say good-bye to them and welcome a much more idiomatic replacement. :^)
2021-01-17AudioServer+LibAudio: Pass audio buffers as Core::AnonymousBufferAndreas Kling
This was the last remaining user of shbufs! :^)
2021-01-17Everywhere: Remove a bunch of now-unnecessary shared_buffer pledgesAndreas Kling
2021-01-17LibC: Change a couple of ASSERT_NOT_REACHED() to TODO()Linus Groh
Just for semantic correctness and better visibility of those unimplemented stub functions.
2021-01-17SpaceAnalyzer: Change tabs to spaces in GML fileLinus Groh
This is a four-spaces-for-indentation project! :^)
2021-01-17Ports: Rename a few .diff files to .patchLinus Groh
Let's keep things consistent, .diff is the name we use pretty much everywhere. Also tweak the glob in .port_includes.sh to be 'patches/*.patch' rather than just 'patches/*'.
2021-01-17LibGfx: Let PNGLoader handle failed chunk decoding gracefullyLinus Groh
decode_png_chunks() is not handling "critical" chunks, unlike decode_png_size() for example. When we encounter a chunk decoding failure, e.g. because not enough bytes were left to read, just continue with decoding the bitmap - which will fail on its own, if we're missing some required chunk(s). Fixes #4984.
2021-01-17Documentation: Add `patch` to fedora build deps (#4968)Andrew Thurman
2021-01-17WindowServer: Put default ScaleFactor in ini fileNico Weber
No behavior change. Matches Width and Height which also explicitly have their default value in the ini file.
2021-01-17DisplaySettings: Add more resolution choicesNico Weber
These are 2x the smallest 4 resolutions. When picking one of these in 1x and then half the size in 2x, the window server adjust the ui scale factor, but the actual framebuffer size doesn't change. 2560x1440 also happens to be 5k resolution and monitors with that resolution do exist -- so that seems like a good upper limit :)
2021-01-17DisplaySettings: Add UI for switching the scale factorNico Weber
For now, only support 1x and 2x scale. I tried doing something "smarter" first where the UI would try to keep the physical resolution constant when toggling between 1x and 2x, but many of the smaller 1x resolutions map to 2x logical resolutions that Compositor rejects (e.g. 1024x768 becomes 512x384, which is less than the minimum 640x480 that Compositor wants) and it felt complicated and overly magical. So this instead just gives you a 1x/2x toggle and a dropdown with logical (!) resolutions. That is, 800x600 @ 2x gives you a physical resolution of 1600x1200. If we don't like this after trying it for a while, we can change the UI then.
2021-01-17Kernel: Remove sys$shbuf_seal() and userland wrappersAndreas Kling
There are no remaining users of this syscall so let it go. :^)
2021-01-17Clipboard+LibGUI: Move clipboard service to anonymous filesAndreas Kling
2021-01-17Everywhere: Remove more <AK/SharedBuffer.h> includesAndreas Kling
2021-01-17LibGfx: Remove remaining SharedBuffer support in Gfx::BitmapAndreas Kling
2021-01-16ImageDecoder: Use Core::AnonymousBuffer and Gfx::ShareableBitmapAndreas Kling
...instead of sending shbufs back and forth. :^)
2021-01-16LibGfx+LibGUI: Make Gfx::ShareableBitmap transmit indexed palettesAndreas Kling