Age | Commit message (Collapse) | Author |
|
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.
|
|
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.
|
|
As noted in 269a931, this has been fixed in Clang 15.
|
|
This probably didn't work before either but the option
was silently ignored by GDB. Unfortunately 7.2.0-rc0 isn't so kind.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
|
|
Unfortunately, nothing ever calls DOM::Document::set_active_element at
the moment, so this will always return ErrorCode::NoSuchElement.
|
|
The incorrect UBSan alignment check that made this test fail has been
fixed in Clang 15.
Closes #13614
|
|
This adds support for the Top, Right, Bottom and Left CSS properties
in style_value_for_property().
|
|
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.
|
|
This is to allow building some of these files from Ladybird. The Build
directory for Ladybird does not include the "Services/" path.
|
|
This is needed to construct a WebDriverConnection from outside of
PageHost itself in Ladybird.
|
|
The socket used by WebDriverConnection will be created separately for
Ladybird.
|
|
If a class defines a method named `forward` itself, the compiler isn't
able to differentiate between that method and (std::)forward.
|
|
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.
|
|
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
|
|
|
|
This allows shorcuts to be used in the Terminal app rather than
processing the terminal input first and ignoring shortcuts after.
|
|
|
|
|
|
|
|
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.
|
|
Widgets can now prevent shortcut Actions from being called, which
allows text input keydown handlers to override single key shortcuts.
|
|
This moves logic for finding a shortcut on a Window or Widget to
Action::find_action_for_shortcut instead.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
This was missed in 7972916be789e1ff7ce9ac8cadd37e512f92e11a
|
|
|
|
Trying to change this to a JS::Object didn't quite work, so let's add
a helpful comment instead.
|
|
|
|
|
|
|
|
|
|
|
|
This is what the spec calls it.
|
|
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.
|
|
|
|
|