Age | Commit message (Collapse) | Author |
|
operations
This change introduces `AK_ENUM_BITWISE_OPERATORS(..)` which when
enabled for an enum, will automatically declare all the necessary
bitwise operators for that enum.
This allows bit masks enums to be used as first class, type safe, citizens.
|
|
This just returns "text/css" on CSSStyleSheet, nothing exciting.
|
|
DOMString, CSSOMString and USVString can all map to AK::String for now,
until we figure something better out.
|
|
This allows CSSLoader to set up the style sheet owner node internally,
and avoids an awkward weak link between CSSLoader and Document.
|
|
|
|
By making the Time constructor constexpr we can optimize creating a
Time instance from hardcoded values.
Also add more functions to convert between Time and various time units.
|
|
Since we tell the compiler to provide a default constructor we
need to initialize the member variables.
|
|
|
|
This patch adds bindings for the following objects:
- StyleSheet
- StyleSheetList
- CSSStyleSheet
You can get to a document's style sheets via Document.styleSheets
and iterate through them using StyleSheetList's item() and length().
That's it in terms of functionality at this point, but still neat. :^)
|
|
The "ImplementedAs" extended attribute can now be specified on IDL
attributes to provide the name of a custom C++ implementation instead
of assuming it will have the same name as the attribute.
|
|
This makes it possible to use "long" and "unsigned long" in IDL.
|
|
|
|
|
|
|
|
It _may_ return nullptr if there's nothing to return.
Fixes #5691.
|
|
This makes it also check man pages and keymap files. :^)
|
|
|
|
|
|
|
|
The error as seen from chromium's devtools:
Uncaught ReferenceError: I is not defined
at (index):455
|
|
This is a Basic Genesis / MegaDrive Emulator, that only requires
SDL2 to run it.
Usage: genemu /path/to/game.bin
|
|
According to the Intel manual: "After reset, all bits (except bit 0) in
XCR0 are cleared to zero; XCR0[0] is set to 1."
Sadly we can't trust this, for example VirtualBox starts with
bits 0-4 set, so let's do it ourselves.
Fixes #5653
|
|
|
|
|
|
There cannot be more unused bits than the entirety of the input.
Found by OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31706#c1
|
|
|
|
|
|
|
|
This is a little convoluted but matches the CSSOM specification.
|
|
This matches the CSSOM specification.
|
|
We can't always rely on the initial URL's path(), so use either the
user-specified argument or the URL path for determining the realpath,
depending on whether we got a file:// URL argument.
Fixes #4950.
|
|
The expression
(u8*)params.m_stack_location + stack_size
… causes UBSan to spit out the warning
KUBSAN: addition of unsigned offset to 0x00000002 overflowed to 0xb0000003
… even though there is no actual overflow happening here.
This can be reproduced by running:
$ syscall create_thread 0 [ 0 0 0 0 0xb0000001 2 ]
Technically, this is a true-positive: The C++-reference is incredibly strict
about pointer-arithmetic:
> A pointer to non-array object is treated as a pointer to the first element
> of an array with size 1. […] [A]ttempts to generate a pointer that isn't
> pointing at an element of the same array or one past the end invoke
> undefined behavior.
https://en.cppreference.com/w/cpp/language/operator_arithmetic
Frankly, this feels silly. So let's just use FlatPtr instead.
Found by fuzz-syscalls. Undocumented bug.
Note that FlatPtr is an unsigned type, so
user_esp.value() - 4
is defined even if we end up with a user_esp of 0 (this can happen for example
when params.m_stack_size = 0 and params.m_stack_location = 0). The result would
be a Kernelspace-pointer, which would then be immediately flagged by
'MM.validate_user_stack' as invalid, as intended.
|
|
As expected, Checked<unsigned> works as intended. However, we didn't have a
test for that, so I added one.
See also 90c070cb1d90d77ba461017e609b9f8ee6326de1.
|
|
|
|
This makes it easier to find UB, for example when fuzzing the Kernel.
This can be enabled by default, thanks to @boricj's work in
32e1354b9b0050dd2920c8506cef2841789e14df.
|
|
Closes #3556.
|
|
|
|
..instead of a tool window. Tool windows are meant as accessories to
an application's main/primary windows, not to be primary windows
themselves.
Fixes #5667.
|
|
|
|
|
|
If it is not resizable, the "What's new" page may be hard to read.
|
|
Previously the page background was always draw relative to the viewport
instead of following with the content. This should eventually become
an opt-in mode (via CSS "background-attachment") but for now let's have
the default behavior be that backgrounds scroll with content.
Also take this opportunity to move the background painting code from
the two web views to a shared location in InitialContainingBlockBox.
|
|
|
|
This adds 2 more flags, that help with the "select on start" invocation.
-s - makes us open the parent directory of the entry, and select it.
-r - makes FileManager to skip real path resolution for cases when we
want to select the symlink in parent directory.
Also, if the file path is passed as argument, not it will open parent
with the file selected.
|
|
This is basically the same version as const char *, but it's a nice
helper that allows us to handle strings without casting.
|
|
If we set selection before the IconView is laid out, it has no size.
So it can't correctly calculate where to scroll. Forcing scroll after
the first resize fixes that.
|
|
|
|
Now that we use fragment for specifying starting selection in
FileManager we would benefit from providing it as argument instead of
setting it each time separately.
|
|
Fixes two TODOs in that file :^)
|
|
With some odd syntax to boot:
```sh
$ for index i x in $whatever {}
```
|