summaryrefslogtreecommitdiff
path: root/Services
AgeCommit message (Collapse)Author
2020-05-29Meta: Add a script check the presence of "#pragma once" in header filesEmanuele Torre
.. and make travis run it. I renamed check-license-headers.sh to check-style.sh and expanded it so that it now also checks for the presence of "#pragma once" in .h files. It also checks the presence of a (single) blank line above and below the "#pragma once" line. I also added "#pragma once" to all the files that need it: even the ones we are not check. I also added/removed blank lines in order to make the script not fail. I also ran clang-format on the files I modified.
2020-05-27ProtocolServer: Forget downloads after they are stoppedAndreas Kling
Stopping means the client no longer cares about the download, so we should just forget about it in the server.
2020-05-27Base: Replace TTYServer with text mode ShellSergey Bugaev
Now that we have SystemServer that can (re)spawn the Shell, we don't need a separate server just for that. The two shells (on tty0 and tty1) are configured to only be started when booting in text mode. This means you can now simply say boot_mode=text on the kernel command line, and SystemServer will set up the system and spawn a comfy root shell for you :^)
2020-05-27SystemServer: Add BootModes and Environment service optionsSergey Bugaev
SystemServer will now look at the boot mode, as specified on the kernel command line, and only launch the services configured for that boot mode.
2020-05-26AK: Rename FileSystemPath -> LexicalPathSergey Bugaev
And move canonicalized_path() to a static method on LexicalPath. This is to make it clear that FileSystemPath/canonicalized_path() only perform *lexical* canonicalization.
2020-05-26Userland et al: Pledge sigaction when neededSergey Bugaev
* In some cases, we can first call sigaction()/signal(), then *not* pledge sigaction. * In other cases, we pledge sigaction at first, call sigaction()/signal() second, then pledge again, this time without sigaction. * In yet other cases, we keep the sigaction pledge. I suppose these could all be migrated to drop it or not pledge it at all, if somebody is interested in doing that.
2020-05-25WindowServer: Don't crash when minimizing EyesSergey Bugaev
Or any other window that globally tracks the mouse cursor.
2020-05-21ProtocolServer: Support request headersAndreas Kling
You can now pass a dictionary of request headers when starting a new download in ProtocolServer. The HTTP and HTTPS protocol will include the headers in their requests.
2020-05-20LibGUI: Replace up and down arrows with emojiHüseyin ASLITÜRK
2020-05-20WindowServer: Remove WindowManager::invalidate(Window) API'sAndreas Kling
Instead, we now tell Windows to invalidate themselves. Window will then pass on the requests to Compositor. My basic idea here is that WindowManager should do window management, dealing with incoming events, moving, resizing, etc. Compositor should deal with painting the window stack in the right order with the least amount of effort. :^)
2020-05-20WindowServer: Move occlusion things from WindowManager to CompositorAndreas Kling
2020-05-19WindowServer: Always send mouse events to the full-screen windowAndreas Kling
Full-screen mode is pleasantly exclusive, so we only need to send the incoming mouse events to the active full-screen window. This fixes an issue where clicking on the area normally covered by the menubar while in full-screen mode would not send mouse events to the full-screen window.
2020-05-19WindowServer: Ignore overlap when compositing full-screen windowsAndreas Kling
Normally we walk the window stack to see if a given dirty rect is covered by an opaque window. When the active window is full-screened, we can skip this check and just unconditionally paint the window. This fixes an issue where windows with higher inherent z-order (like the taskbar and menu windows) would get cursor ghosting in them while a normal window was full-screened. Fixes #2289.
2020-05-19SystemMenu: Don't exit if the shutdown dialog is opened but cancelledAndreas Kling
Previously opening the shutdown dialog and cancelling out of it would cause SystemMenu to exit due to the exit-when-there-are-no-more-windows mechanism in GUI::Application. Fix this by opting out of it.
2020-05-19SystemMenu: Rename PowerDialog => ShutdownDialogAndreas Kling
2020-05-18WindowServer: Rename WindowManager wm_config() to config()Shannon Booth
It looked a little silly with all of the callers saying wm.wm
2020-05-18WindowServer: Make some WindowManager member functions constShannon Booth
2020-05-18WindowServer: Remove uneeded const_casts for getting a submenuShannon Booth
2020-05-18WindowServer: Add const version of Menu::find_menu_by_id(int menu_id)Shannon Booth
It's a little sad having two diferent versions of this function, but I don't know of any better way to do it. This also gets rid of some const casts down the line.
2020-05-18WindowServer: Add const qualified version of MenuItem::submenu()Shannon Booth
2020-05-18LaunchServer: Discover handlers from *.af files, allow launching based on a ↵Nicholas Hollett
known handler Adds metadata about apps for what file types and protocols they can handle, then consumes that in the LaunchServer. The LaunchServer can then use that to offer multiple options for what apps can open a given URL. Callers can then pass back the handler name to the LaunchServer to use an alternate app :)
2020-05-17LibGemini: Implement rendering text/gemini documents to HTMLAnotherTest
This also sets Content-Type to whatever 'meta' contains on success, to allow the browser to pick up what the document contains.
2020-05-17ProtocolServer: Put everything in the ProtocolServer namespaceAndreas Kling
2020-05-17ProtocolServer: Attach downloads and their lifecycles to clientsConrad Pankoff
Previously a download lived independently of the client connection it came from. This was the source of several undesirable behaviours, including the potential for clients to influence downloads they didn't start, and downloads living longer than their associated client connections. Now we attach downloads to client connections, which means they're cleaned up automatically when the client goes away, and there's significantly less risk of clients interfering with each other.
2020-05-17ProtocolServer: Integrate LibGemini for simple requestsConrad Pankoff
2020-05-16LibIPC: Allow opt-in UTF-8 validation on message parametersAndreas Kling
You can now mark String message parameters with the [UTF8] attribute. This will cause the generated decoder to perform UTF-8 validation and reject the message if the given parameter is not a valid UTF-8 string. This frees up the receiving side from having to do this validation at a higher level.
2020-05-16LibGUI+WindowServer: Allow applications to set custom cursor bitmapsShannon Booth
This will allow e.g PaintBrush to use custom cursors for each tool.
2020-05-15Clipboard: Remove accidentally commited fileSergey Bugaev
2020-05-15Clipboard: Add missing copyright headerAndreas Kling
2020-05-14Clipboard: Move the system clipboard to a dedicated service process :^)Andreas Kling
This commit moves the clipboard from WindowServer into a new Clipboard service program. Clipboard runs as the unprivileged "clipboard" user and with a much tighter pledge than WindowServer. To keep things working as before, all GUI::Application users now make a connection to Clipboard after making the connection to WindowServer. It could be interesting to connect to Clipboard on demand, but right now that would necessitate expanding every GUI app's pledge to include "unix" and also unveiling the clipboard portal, which I prefer not to.
2020-05-14Build: Switch to CMake :^)Sergey Bugaev
Closes https://github.com/SerenityOS/serenity/issues/2080
2020-05-13WindowServer: Invalidate the cursor when setting an override cursorDexesTTP
2020-05-13LibGUI+WindowServer: Allow apps to use the "move" cursor :^)Andreas Kling
2020-05-12LibGUI: Include keyboard modifier state with button on_click callsAndreas Kling
This will allow you us to implement special behavior when Ctrl+clicking a button.
2020-05-12LibHTTP+ProtocolServer: Use CaseInsensitiveStringTraits for headersAndreas Kling
These are supposed to be interpreted caselessly so let's just use the case insensitive traits throughout. This means we'll understand things like "Content-Length" even when they send "content-length" etc.
2020-05-12LaunchServer+LibDesktop: Add API to list handlers for a given URLAndreas Kling
You can now ask for a list of applications that can handle opening a given URL. This will be useful for creating context menus.
2020-05-12LaunchServer: Remove tab characters in LaunchServer.ipcAndreas Kling
2020-05-10WindowServer: Shade the bottom of the menu bar like a buttonAndreas Kling
This adds a row of secondary (darker) shade to the menubar, giving it a more buttonish look to match the highlight added to the Taskbar. :^)
2020-05-10Taskbar: Let's custom paint the background instead of using GUI::FrameAndreas Kling
Previously we were wasting the bottom pixel row on darkness. Use the base button color all the way to the bottom row and offset the top highlight by one pixel instead.
2020-05-10WindowServer: Add 2px of tasteful space above maximized windowsAndreas Kling
This makes the visual interaction between the menu bar and the window a lot less janky looking.
2020-05-10WindowServer: Add basic search functionality in menusShannon Booth
Perform a case insensitive search through the current menu. Jump to the first item matching all keys in the current search. Backspace can clear the current search, and the search will timeout after 3 seconds.
2020-05-10WindowServer: Rework and simplify Menu event handlingShannon Booth
The menu manager will now send events directly to the current menu. Previously if a menu was opened it would always be set as the current menu. Now when opening a menu you can optionally say that you do not want to have it as the current menu. One scenerio when this happens is when a menu is popped up as part of a preview, for example, when hovering over a menu item that is a submenu. Sending the event to the current menu simplifies things and solves a few inconsistencies in bevhaviour (such as hovering over a submenu, but key events not being sent to the submenu).
2020-05-10WindowServer: Remove stray semicolonShannon Booth
2020-05-09WindowServer: Cancel any ongoing input tracking when a menu pops upAndreas Kling
When the user opens a context menu by right-clicking on something, we now immediately stop sending mouse events to whoever was doing active input window tracking before. There are probably more situations where we should do this, and maybe there's also a more generic way to express it, but this works for now.
2020-05-09LaunchServer: Add the LaunchServer to centralise file associations.Nicholas Hollett
Step one of moving DesktopServices::open handling out of process. This makes it easier to do things like read in associations for which program opens which files or protocols. This gives users the ability to modify the associations without having to rebuild :^)
2020-05-08Services: Move Taskbar and SystemMenu from Applications to ServicesAndreas Kling
2020-05-08Services: Renamed from ServersAndreas Kling
It didn't feel right to have a "DHCPClient" in a "Servers" directory. Rename this to Services to better reflect the type of programs we'll be putting in there.