summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-11-15Userland: Properly define IPC::encode and IPC::decode specializationsTimothy Flynn
In order to avoid the base encode/decode methods from being used (and failing a static assertion), we must be sure to declare/define the custom type implementations as template specializations. After this, LibIPC is no longer sensitive to include order.
2022-11-15LibIPC: Forward declare the encode() and decode() template functionsTimothy Flynn
For the most part, we try to provide specializations of these functions in various headers by including "LibIPC/Forward.h" and then declaring encode() and decode() specializations. However, without any forward declaration of these types, we aren't actually specializing anything. Rather, we are just declaring overloads, which trips up the base encode and decode template definitions. The result is that LibIPC is very sensitive to include order, and the DependentFalse<> static assertion would fail if the includes weren't perfectly ordered. By properly forward declaring these templates, we can make sure the specializations receive precedence over the base templates.
2022-11-15LibJS: Remove workaround for Clang misalignment in MathematicalValueTimothy Flynn
As noted in 269a931, this has been fixed in Clang 15.
2022-11-15Meta: Don't try to enable GDB support on WindowsGunnar Beutner
This probably didn't work before either but the option was silently ignored by GDB. Unfortunately 7.2.0-rc0 isn't so kind.
2022-11-15LibJS: Fix that functions in module did not look for var declarationsdavidot
2022-11-15LibJS: Use correct this value for tagged template callsdavidot
This has to get quite messy because we currently do evaluation to value and reference separately meaning we have to deal with a lot of edge cases here.
2022-11-15LibJS: Treat '\\' as an escaped character in template literalsdavidot
Before this change we would ignore that the second backslash is escaped and template strings ending with ` \\` would be unterminated as the second slash was used to escape the closing quote.
2022-11-15LibWeb+WebContent+WebDriver: Implement Find Elements From Shadow RootTimothy Flynn
2022-11-15LibWeb+WebContent+WebDriver: Implement Find Element From Shadow RootTimothy Flynn
2022-11-15LibWeb+WebContent+WebDriver: Implement Get Element Shadow RootTimothy Flynn
2022-11-15LibWeb+WebContent+WebDriver: Implement Get Active ElementTimothy Flynn
Unfortunately, nothing ever calls DOM::Document::set_active_element at the moment, so this will always return ErrorCode::NoSuchElement.
2022-11-15Tests/AK: Re-enable `HashTable<double>` testDaniel Bertalan
The incorrect UBSan alignment check that made this test fail has been fixed in Clang 15. Closes #13614
2022-11-14LibWeb: Handle inset properties in style_value_for_property()Itamar
This adds support for the Top, Right, Bottom and Left CSS properties in style_value_for_property().
2022-11-14WebContent+WebDriver: Move Window commands to WebContentTimothy Flynn
This moves Get Window Handle, Close Window, and Get Window Handles over to WebContent so they may be implemented closer to the spec and be used by Ladybird.
2022-11-14WebDriver: Remove "Services/" prefix from local WebDriver includesTimothy Flynn
This is to allow building some of these files from Ladybird. The Build directory for Ladybird does not include the "Services/" path.
2022-11-14WebContent: Provide access to ConnectionFromClient's PageHostTimothy Flynn
This is needed to construct a WebDriverConnection from outside of PageHost itself in Ladybird.
2022-11-14WebContent: Allow creating a WebDriverConnection with an existing socketTimothy Flynn
The socket used by WebDriverConnection will be created separately for Ladybird.
2022-11-14LibCore: Invoke `forward` from the global namespace inside C_OBJECTTimothy Flynn
If a class defines a method named `forward` itself, the compiler isn't able to differentiate between that method and (std::)forward.
2022-11-14LibCore: Allow TCPServer's port to be reused after it exitsTimothy Flynn
This hasn't been an issue on Serenity, but on Linux, if a program opens a TCPServer on some port and then exits, that program can't be re-run until the OS makes the port available again. This is usually ~2x the TCP socket's maximum segment lifetime, upwards of a minute. Add an option to TCPServer to allow re-using the port after the program exits.
2022-11-14LibWeb: Parse unknown media type in media queriesAliaksandr Kalenik
Prevent media query parser from falling back into MediaQuery::create_not_all() for queries with unknown media type. With this change following test works correctly: http://wpt.live/css/css-conditional/at-media-001.html
2022-11-14LibWeb: Support device-height and device-width media query valuesAliaksandr Kalenik
2022-11-14LibVT: Make shortcuts propagate completely before terminal inputZaggy1024
This allows shorcuts to be used in the Terminal app rather than processing the terminal input first and ignoring shortcuts after.
2022-11-142048: Call event.ignore() correctly in 2048's BoardView keydown handlerZaggy1024
2022-11-14KeyboardMapper: Call event.ignore() on keydown in the main widgetZaggy1024
2022-11-14HexEditor: Allow keydown events to propagate if they are not handledZaggy1024
2022-11-14PixelPaint: Allow keydown events to bubble from ImageEditorZaggy1024
Previously, all keydown KeyEvents were accepted, causing parent widgets not to receive them. With the addition of shortcut handling to keydown, shortcuts were not called when the ImageEditor was focused.
2022-11-14LibGUI: Handle Action keyboard shortcuts in Widget keydownZaggy1024
Widgets can now prevent shortcut Actions from being called, which allows text input keydown handlers to override single key shortcuts.
2022-11-14LibGUI: Share code for finding an Action by ShortcutZaggy1024
This moves logic for finding a shortcut on a Window or Widget to Action::find_action_for_shortcut instead.
2022-11-14Base: Mark PartitionEditor as requiring rootSamuel Bowman
2022-11-14Taskbar: Support launching apps that require rootSamuel Bowman
If an app file has RequiresRoot=true, launch the app with the requsite setuid binary. For GUI apps, this is Escalator. For app files with RunInTerminal=true, this is pls.
2022-11-14hexdump: Support truncating output with -nEli Youngs
2022-11-14hexdump: Pledge stdio and rpathEli Youngs
2022-11-14LibWeb: Respect media attribute of style tagAliaksandr Kalenik
2022-11-14seq: Fix clang-tidy warningsEli Youngs
2022-11-14seq: Add the --terminator optionEli Youngs
2022-11-14seq: Add the --separator optionEli Youngs
2022-11-14seq: Interpret parameters with ArgsParserEli Youngs
2022-11-14VideoPlayer: Make PlaybackManager use OwnPtrZaggy1024
VideoPlayerWidget was keeping a reference to PlaybackManager when changing files, so the old and new managers would both send frames to be presented at the same time, causing it to flicker back and forth between the two videos. However, PlaybackManager no longer relies on event bubbling to pass events to its parent. By changing it to send events directly to an Object, it can avoid being ref counted, so that it will get destroyed with its containing object and stop sending events.
2022-11-14Browser: Remove unused WebDriverSessionServer.ipcAndrew Kaster
This was missed in 7972916be789e1ff7ce9ac8cadd37e512f92e11a
2022-11-14LibWeb: Implement XMLHttpRequest.withCredentialsLinus Groh
2022-11-14LibWeb: Add a clarifying comment to XHR::m_response_objectLinus Groh
Trying to change this to a JS::Object didn't quite work, so let's add a helpful comment instead.
2022-11-14LibWeb: Use HeaderList from Fetch for XHR author request headersLinus Groh
2022-11-14LibWeb: Rename XHR::{m_request_headers => m_author_request_headers}Linus Groh
2022-11-14LibWeb: Rename XHR::{m_url => m_request_url}Linus Groh
2022-11-14LibWeb: Rename XHR::{m_method => m_request_method}Linus Groh
2022-11-14LibWeb: Add spec comments and links to XHR membersLinus Groh
2022-11-14LibWeb: Rename XHR's ReadyState / m_ready_state to just State / m_stateLinus Groh
This is what the spec calls it.
2022-11-13SoundPlayer: Load cover image from music filesLucas CHOLLET
When the visualization is set to "Album Cover", the player will now try to load the embedded image. On failure, it defaults to a "Cover" image file in the directory. In Player::play_file_path, file_name_changed now needs to be executed after that the loader have been set, to get the correct image.
2022-11-13LibAudio: Make `FlacLoaderPlugin` destructor virtualLucas CHOLLET
2022-11-13LibAudio: Parse the picture metadata blockLucas CHOLLET