summaryrefslogtreecommitdiff
path: root/Services
AgeCommit message (Collapse)Author
2020-11-29AudioServer: Mixer: limit max volume to 100Brendan Coles
2020-11-22LibWeb: Rename LayoutNode classes and move them into Layout namespaceAndreas Kling
Bring the names of various boxes closer to spec language. This should hopefully make things easier to understand and hack on. :^) Some notable changes: - LayoutNode -> Layout::Node - LayoutBox -> Layout::Box - LayoutBlock -> Layout::BlockBox - LayoutReplaced -> Layout::ReplacedBox - LayoutDocument -> Layout::InitialContainingBlockBox - LayoutText -> Layout::TextNode - LayoutInline -> Layout::InlineNode Note that this is not strictly a "box tree" as we also hang inline/text nodes in the same tree, and they don't generate boxes. (Instead, they contribute line box fragments to their containing block!)
2020-11-15Everywhere: Add missing <AK/ByteBuffer.h> includesAndreas Kling
All of these files were getting ByteBuffer.h from someone else and then using it. Let's include it explicitly.
2020-11-10WindowServer: Show modal window's cursor over blocked windowsAndreas Kling
When a window is blocked by a modal window from the same application, we now prefer the modal window's cursor instead of the hovered window.
2020-11-10AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safeTom
This makes most operations thread safe, especially so that they can safely be used in the Kernel. This includes obtaining a strong reference from a weak reference, which now requires an explicit call to WeakPtr::strong_ref(). Another major change is that Weakable::make_weak_ref() may require the explicit target type. Previously we used reinterpret_cast in WeakPtr, assuming that it can be properly converted. But WeakPtr does not necessarily have the knowledge to be able to do this. Instead, we now ask the class itself to deliver a WeakPtr to the type that we want. Also, WeakLink is no longer specific to a target type. The reason for this is that we want to be able to safely convert e.g. WeakPtr<T> to WeakPtr<U>, and before this we just reinterpret_cast the internal WeakLink<T> to WeakLink<U>, which is a bold assumption that it would actually produce the correct code. Instead, WeakLink now operates on just a raw pointer and we only make those constructors/operators available if we can verify that it can be safely cast. In order to guarantee thread safety, we now use the least significant bit in the pointer for locking purposes. This also means that only properly aligned pointers can be used.
2020-11-08LibGUI+WindowServer: Make DragOperation hold a MimeData instanceAnotherTest
...instead of maybe bitmap + a single mime type and its corresponding data. This allows drag&drop operations to hold multiple different kinds of data, and the views/applications to choose between those. For instance, Spreadsheet can keep the structure of the dragged cells, and still provide text-only data to be passed to different unrelated editors.
2020-11-02WindowServer+LibGfx: Add Gfx::StandardCursor::Hidden cursorBrendan Coles
2020-11-02ChessEngine: Use pledge and unveilBrendan Coles
2020-10-30LibProtocol+LibGemini+LibHTTP: Provide root certificates to LibTLSAnotherTest
Now we (almost) verify all the sites we browse. Certificate verification failures should not be unexpected, as the existing CA certificates are likely not complete.
2020-10-30LibHTTP+ProtocolServer+LibGemini: Remove Request::schedule()AnotherTest
This API is only used for HttpRequest, but replicated in GeminiRequest without an actual user, so remove it and construct the job like the rest of the protocols.
2020-10-30WindowServer+LibGfx: Added Crosshair cursorUma Sankar Yedida
2020-10-27LibGUI+LibGfx+WindowServer: Auto-generate disabled action icons :^)Andreas Kling
This patch adds a simple filter that makes button and menu item icons have that "'90s disabled" look when disabled. It's pretty awesome.
2020-10-27WindowServer: Improve look of drag&drop items somewhatAndreas Kling
This just adds a bit of padding around items. There's lots of room for improvement here.
2020-10-25LookupServer: Support multiple nameserversLinus Groh
The configuration key [DNS] Nameserver has been renamed to Nameservers and accepts a comma-separated list of nameserver addresses, which will be queried in the given order until a response has been received. The new default value is still Cloudflare's 1.1.1.1 as well as their secondary DNS server 1.0.0.1.
2020-10-25LookupServer: Replace unused 'did_timeout' with 'did_get_response'Linus Groh
did_timeout is a bool& parameter of lookup() that used to be set when the UDP connection timed out, but this behaviour was broken in e335d73. I replaced it with a more useful 'did_get_response' parameter that is being set after the UDP socket connected, sent its request and got a response - it might still be bogus data but we know the communication was successful.
2020-10-25LookupServer: Replace dbg()/dbgprintf() with dbgln()Linus Groh
2020-10-25WindowServer: Raise menu item icons slightly when hovered :^)Andreas Kling
Same effect as LibGUI toolbar buttons.
2020-10-25Taskbar: Make quicklaunch buttons larger and reduce spacingAndreas Kling
The end result is almost identical, but now it's a little easier to hit the buttons with the cursor. :^)
2020-10-24LibGfx+WindowServer: Handle taller window title fonts betterAndreas Kling
If the window title font is taller than the theme's specified title height, compute the title height based on the font instead. :^)
2020-10-21LibCore+WebServer+LibWeb: Make MIME type guesser take a StringViewAndreas Kling
This reverts my previous commit in WebServer and fixes the whole issue in a much better way. Instead of having the MIME type guesser take a URL (which we don't actually have in the WebServer at that point), just take a path as a StringView. Also, make use of the case-insensitive StringView::ends_with() :^)
2020-10-21WebServer: Force "text/html" mimetype for directories with index.htmlAndreas Kling
When you GET a directory with an index.html file, we were using the mime type guessing logic from LibCore on the "/" filename, which gave us "text/plain". Force the mime type to "text/html" in these cases so browsers actually interpret it as HTML. :^)
2020-10-20WindowServer: Return some event members by const referenceAndreas Kling
2020-10-08LibWeb: Add OutOfProcessWebView::load_html()Linus Groh
2020-10-08DHCPClient: Remove unused UPDSocket.h includeNico Weber
2020-10-05Services: Remove unused includes of {LibCore,WindowServer}/EventLoop.hNico Weber
2020-10-04AK: Don't add newline for outf/dbgf/warnf.asynts
In the future all (normal) output should be written by any of the following functions: out (currently called new_out) outln dbg (currently called new_dbg) dbgln warn (currently called new_warn) warnln However, there are still a ton of uses of the old out/warn/dbg in the code base so the new functions are called new_out/new_warn/new_dbg. I am going to rename them as soon as all the other usages are gone (this might take a while.) I also added raw_out/raw_dbg/raw_warn which don't do any escaping, this should be useful if no formatting is required and if the input contains tons of curly braces. (I am not entirely sure if this function will stay, but I am adding it for now.)
2020-10-03Everywhere: Fix more typosLinus Groh
2020-10-02AK: Add trivial structure validation to SharedBufferTom
If we're sharing buffers, we only want to share trivial structures as anything else could potentially share internal pointers, which most likely is going to cause problems due to different address spaces. Fix the GUI::SystemTheme structure, which was not trivial, which is now caught at compile time. Fixes #3650
2020-09-30LibCore: Add ensure_parent_directories to LibCore::FileItamar
Moved the implementation in SystemServer/Service.cpp to LibCore.
2020-09-28LibCore: Make TCPServer::listen() report failure instead of assertingAndreas Kling
2020-09-28ProtocolServer+LibWeb: Support more detailed HTTP requestsAndreas Kling
This patch adds the ability for ProtocolServer clients to specify which HTTP method to use, and also to include an optional HTTP request body.
2020-09-25Meta+Services: Make clang-format-10 cleanBen Wiederhake
2020-09-21TelnetServer: Use OutputMemoryStream instead of BufferStream.asynts
I could not test these changes because I could not get my telnet client (on Linux) to connect to the telnet server running in Serenity. I tried the follwing: # Serenity su TelnetServer # Linux telnet localhost 8823 The server then immediatelly closes the connection: Connection closed by foreign host. In the debug logs the following message appears: [NetworkTask(5:5)]: handle_tcp: unexpected flags in FinWait2 state [NetworkTask(5:5)]: handle_tcp: unexpected flags in Closed state [NetworkTask(5:5)]: handle_tcp: unexpected flags in Closed state This seems to be an unrelated bug in the TCP implementation.
2020-09-21LookupServer: Use DuplexMemoryStream instead of BufferStream.asynts
2020-09-21AudioServer: Use OutputMemoryStream instead of BufferStream.asynts
2020-09-19WindowServer: Shrink menubar menu text rects slightlyAndreas Kling
We don't want the menu titles to cover the entire menubar.
2020-09-16WindowServer: Make SetWindowTaskbarRect tolerant to non-existing windowsTom
There is a window between windows disappearing (e.g. closing or crashes) and the Taskbar process being notified. So it is entirely possible that it may call SetWindowTaskbarRect() for a window and/or client id that no longer exists. As the Taskbar process does not own these windows, this should not be treated as a misbehaving application request. Instead, just silently ignore the request. The Taskbar will be notified shortly after that the window no longer exist and remove it from its list. Fixes #3494
2020-09-15LibCore: Make Core::Object properties more dynamicAndreas Kling
Instead of everyone overriding save_to() and set_property() and doing a pretty asymmetric job of implementing the various properties, let's add a bit of structure here. Object properties are now represented by a Core::Property. Properties are registered with a getter and setter (optional) in constructors. I've added some convenience macros for creating and registering properties, but this does still feel a bit bulky. We'll have to iterate on this and see where it goes.
2020-09-12LibWeb: Support window.alert() in multi-process contextAndreas Kling
Alerts are now delegated to the embedding GUI process.
2020-09-12LibIPC: Share most of the code between {Client,Server}ConnectionAndreas Kling
This patch introduces IPC::Connection which becomes the new base class of ClientConnection and ServerConnection. Most of the functionality has been hoisted up to the base class since almost all of it is useful on both sides. This gives us the ability to send synchronous messages in both directions, which is needed for the WebContent server process. Unlike other servers, WebContent does not mind blocking on a response from its client.
2020-09-11LibGUI+WindowServer: Rename window "override cursor" to just "cursor"Andreas Kling
Let's just say each window has a cursor, there's not really overriding going on.
2020-09-10LibGfx: Move StandardCursor enum to LibGfxAndreas Kling
This enum existed both in LibGUI and WindowServer which was silly and error-prone.
2020-09-08WindowServer: Draw minimize animation invertedTom
Inverting the pixels makes the animation visible over most colors.
2020-09-07WindowServer: Fix invalidating window frameTom
When invalidating the frame we need to properly flag that so that we trigger rendering the frame, even if "all" was flagged as being invalidated. Otherwise it will only get rendered if anything else happens to trigger it (such as focus change). Fixes #3427
2020-09-05Clipboard: Add a key-value map alongside the clipboard storageAndreas Kling
A clipping now consists of three things: - The raw clip data - A MIME type - A key-value map (String, String) for anything you like
2020-08-31WindowServer: Return correct IsMaximized responsethankyouverycool
2020-08-30Everywhere: Port to String::copy_characters_to_buffer()Sergey Bugaev
2020-08-30WindowServer: Unbreak building with extra debug macrosBen Wiederhake
2020-08-28ChessEngine: Move from Applications to ServicesAndreas Kling
This is not a stand-alone application. :^)
2020-08-27WindowServer: Fix minor flicker with transparent windowsTom
Do not fill the backing store mismatch area with the solid window color if the window is transparent. This caused some minor flicker when such a window is e.g. snapped to the left/right or maximized.