1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 03:48:13 +00:00
Commit graph

10322 commits

Author SHA1 Message Date
Linus Groh
be28a6142b LibJS: Convert to_integer_or_infinity() to ThrowCompletionOr 2021-10-18 21:24:30 +01:00
Linus Groh
ffee3890a7 LibJS: Remove a bunch of forgotten exception checks after TRY_OR_DISCARD
Not quite sure how that happened :^)
2021-10-18 21:24:30 +01:00
Dana Burkart
4f9aefadef LibWeb: Ensure parent is not null in DOMTreeModel::index_for_node()
Fix a crash when inspecting empty pages or areas of the page with no
elements.
2021-10-18 18:14:06 +01:00
Sam Atkins
fd8c94c094 LibWeb: Make 'auto' LengthStyleValues return 'auto' identifier
I think I broke this in my previous StyleValue clean-up. This prevented
properties like `foo: auto;` from parsing, if they did not accept
Lengths.
2021-10-18 19:01:41 +02:00
Sam Atkins
58a0ca41a7 LibWeb: Use east const in StyleValue.{h,cpp} 2021-10-18 19:01:41 +02:00
thankyouverycool
5d09f4abce Welcome: Save startup preference to user's SystemServer session
Off by default.
2021-10-18 15:55:11 +02:00
Andreas Kling
957f98805a LibWeb: Update <object> style on resource load/failure 2021-10-18 10:40:30 +02:00
Andreas Kling
177320ee9c LibWeb: Update <img> style on resource load/failure 2021-10-18 10:40:30 +02:00
Andreas Kling
f72a37b9d4 LibWeb: Coalesce nested repaint requests instead of swallowing them
Previously we would ignore repaint requests that came in via OOPWV while
the WebContent process was busy with a previous paint request.

This caused some easy-to-trigger bugs where the painted content would be
"one paint behind", especially noticeable when scrolling.
2021-10-18 10:40:30 +02:00
Andreas Kling
f9e814826f LibWeb: Only update layout if actually needed when scrolling to anchor 2021-10-18 10:40:30 +02:00
Timothy Flynn
b67f6daf05 LibWeb: Weakly store NamedNodeMap's & Attribute's associated Element
This is similar to how Gecko avoids a reference cycle, where both the
NamedNodeMap and Attribute would otherwise store a strong reference to
their associated Element. Gecko manually clears stored raw references
when an Element is destroyed, whereas we use weak references to do so
automatically.

Attribute's ownerElement getter and setter are moved out of line to
avoid an #include cycle between Element and Attribute.
2021-10-18 09:58:52 +02:00
Rodrigo Tobar
356d5821e7 SystemMonitor: Request symbolication wihout source positions
The Stack tab doesn't display this information anyway, so there's no
need to have it calculated and returned to us.
2021-10-17 22:07:10 -07:00
Rodrigo Tobar
08428aadad LibSymbolication: Skip source position calculation if requested
Calculating source code positions can be expensive, and some
applications (like SystemMonitor's Stack tab) don't even show this
information, making these calculations wasteful.

This commit adds a new enumerated flag to the `symbolicate` functions
for callers to specify whether source positions should be included in
the results; it defaults to "Yes" to preserve old behavior for existing
applications.
2021-10-17 22:07:10 -07:00
Idan Horowitz
85a28a6555 LibJS: Convert to_index() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
aad12b050b LibJS: Convert to_length() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
750da61c0f LibJS: Convert to_u8_clamp() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
99287afc99 LibJS: Convert to_u8() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
1b7dbb6b3b LibJS: Convert to_i8() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
7bbb92dfe9 LibJS: Convert to_u16() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
627b1205ce LibJS: Convert to_i16() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
cc94bba5c0 LibJS: Convert to_u32() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
f6a5ff7b00 LibJS: Convert to_i32() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Idan Horowitz
20d990563c LibJS: Convert to_number() to ThrowCompletionOr 2021-10-18 08:01:38 +03:00
Jelle Raaijmakers
a36ee213b9 LibGL: Implement glIsEnabled() 2021-10-17 21:01:52 -07:00
Jelle Raaijmakers
b2627c8b74 LibGL: Implement disabling GL_FOG 2021-10-17 21:01:52 -07:00
Jelle Raaijmakers
abaac02c88 LibGL: Correct GL_MODELVIEW and GL_PROJECTION values
According to the Khronos group, GL enum values are in the spec:

https://www.khronos.org/registry/OpenGL/docs/enums.html

Not adhering to their values will cause issues with projects that ship
their own copy of `gl.h`, such as ScummVM.
2021-10-17 21:01:52 -07:00
Andreas Kling
ca4276db77 LibWeb: Fill page background with the "base" palette color
This fixes an issue where you'd see black (or ghost) pixels when
painting web pages with content smaller than the viewport.
2021-10-18 03:04:01 +02:00
Andreas Kling
b78a69f7dd LoginServer: Use the verb "log in" for window title & submit button 2021-10-18 03:04:01 +02:00
L Pereira
f4ea3b0168 LibC: Define ULLONG_MAX
Some ports require this constant to be defined as it is specified in
the standard[1].

[1] https://www.cplusplus.com/reference/climits/
2021-10-17 23:43:43 +01:00
Andreas Kling
dabbade05c LibWeb: Factor out creation of independent formatting contexts
This patch breaks FormattingContext::layout_inside() into two functions,
one that creates an independent formatting context (if needed), and
another that calls the former and then performs the inside layout within
the appropriate context.

The main goal here was to make layout_inside() return the independent
formatting context if one was created. This will allow us to defer
certain operations in child contexts until the parent context has
finished formatting the child root box.
2021-10-17 22:18:59 +02:00
Andreas Kling
f2d0e8d0ee LibWeb: Expose FormattingContext type
Instead of having a virtual is_block_formatting_context(), let's have a
type() that can tell you exactly which type of formatting context it is.
2021-10-17 22:18:59 +02:00
Peter Elliott
b77dad5ba3 LoginServer: Add --auto-login switch
Auto login will automatically log in a user without prompting for a
password, but will still allow logouts and subsequent password logins.
2021-10-17 22:18:48 +02:00
Peter Elliott
c19d868a3e LibGUI: Don't render placeholders as secret
before my placeholder 'password' showed up as '********'.
2021-10-17 22:18:48 +02:00
Peter Elliott
92b6e4fd76 TaskBar+Utilities: Add logout(1) command, and call it in ShutdownDialog
logout kills the session that SystemServer --user was started with.
2021-10-17 22:18:48 +02:00
Peter Elliott
7283b0b214 Utilities: Show PGID and SID in ps -f 2021-10-17 22:18:48 +02:00
Peter Elliott
e3ed7f76c5 LoginServer: Process logins and start SystemServer in user mode 2021-10-17 22:18:48 +02:00
Peter Elliott
9e3d6d161b LoginServer: Layout a basic login window 2021-10-17 22:18:48 +02:00
Peter Elliott
f8fb0359ae SystemServer: Add per user mode (--user)
System server running in user mode will form the basis of a "session"
for login purposes in serenity.
2021-10-17 22:18:48 +02:00
Hediadyoin1
3ad6d87a45 LibX86: Add SSE support
This only adds the decodeing support for SSE, not SSE2, etc.
may contain traces of SSE2.
2021-10-17 13:06:23 -07:00
Karol Kosek
d91f194ddd LibGUI: Remember the maximized value if a window hasn't been created yet
d0fb511d75 set the maximized window value
in the File Manager before a window was created, which resulted in crash
everytime you tried to open the program that was closed while it was
maximized. ugh

Here we do more-or-less what GUI::Window::set_rect() does, except we
don't add it to the WindowServer::create_window() IPC call.
That's because the Window Server knows nothing about menus at this
point and just assumes they don't need to be visible.
So if we try to maximize the window then, it could be slightly taller
and a titlebar could be hidden.

So even though it looks how it looks like, it does work and it doesn't
show in the startup size, as described in the mentioned commit (the call
is put a few lines before the initial update()). :^)
2021-10-17 21:39:54 +02:00
SeekingBlues
9705580c53 rev: Unbreak reading from standard input
Since Core::File does not handle streaming input properly (see #5093
and #4198), we use the LibC APIs instead.
2021-10-17 12:07:09 -07:00
SeekingBlues
6d4e58efea tac: Unbreak reading from standard input
Since Core::File does not handle streaming input properly (see #5093
and #4198), we use the LibC APIs instead.
2021-10-17 12:07:09 -07:00
SeekingBlues
c63bdba955 shuf: Fix division by zero when no lines are read 2021-10-17 12:07:09 -07:00
Sam Atkins
0588db5c30 LibWeb: Make the CSS serialization functions actually output things :^)
Pro tip: If your function takes a StringBuilder by value, it doesn't
actually append anything to the caller's StringBuilder. On the plus
side, I probably won't make this mistake for a while? I hope?
2021-10-17 19:59:27 +01:00
Daniel Bertalan
06fc64be13 Toolchain+Meta: Update LLVM version to 13.0.0
This commit updates the Clang toolchain's version to 13.0.0, which comes
with better C++20 support and improved handling of new features by
clang-format. Due to the newly enabled `-Bsymbolic-functions` flag, our
Clang binaries will only be 2-4% slower than if we dynamically linked
them, but we save hundreds of megabytes of disk space.

The `BuildClang.sh` script has been reworked to build the entire
toolchain in just three steps: one for the compiler, one for GNU
binutils, and one for the runtime libraries. This reduces the complexity
of the build script, and will allow us to modify the CI configuration to
only rebuild the libraries when our libc headers change.

Most of the compile flags have been moved out to a separate CMake cache
file, similarly to how the Android and Fuchsia toolchains are
implemented within the LLVM repo. This provides a nicer interface than
the heaps of command-line arguments.

We no longer build separate toolchains for each architecture, as the
same Clang binary can compile code for multiple targets.

The horrible mess that `SERENITY_CLANG_ARCH` was, has been removed in
this commit. Clang happily accepts an `i686-pc-serenity` target triple,
which matches what our GCC toolchain accepts.
2021-10-17 17:09:58 +01:00
Daniel Bertalan
a8fefd89cd Everywhere: Make some symbols __attribute__((used)) for LTO
With these changes, the userland builds correctly with Clang's ThinLTO
enabled.
2021-10-17 17:09:58 +01:00
Daniel Bertalan
3c3df95958 LibCoredump: Show frames from Loader.so if the crash occurs in it
Previously we rejected all entries from Loader.so even if the faulting
address was located in it, i.e. the actual issue was with the dynamic
loader. We no longer do that to make debugging Loader crashes easier.
2021-10-17 17:09:58 +01:00
Daniel Bertalan
bb4bb3c2f4 LibDebug: Enable parsing libgcc_s.so
Now that our DWARF 5 support is nearly feature-complete, there is no
reason anymore to special-case this library, as we can process it just
fine.
2021-10-17 17:09:58 +01:00
Daniel Bertalan
a60d960420 LibDebug: Don't create compilation units for embedded resources
Our implementation (naively) assumes that there is a one-to-one
correspondence between compilation units and line programs, and that
their orders are identical. This is not the case for embedded resources,
as Clang only creates line programs for it, but not compilation units.

This mismatch caused an assertion failure, which made generating
backtraces for GUI applications impossible. This commit introduces a
hack that skips creating CompilationUnit objects for LinePrograms that
come from embedded resources.
2021-10-17 17:09:58 +01:00
Daniel Bertalan
622d408d82 LibDebug: Make use of the newly supported data forms
With this change, our DWARF 5 support is nearly feature-complete.
2021-10-17 17:09:58 +01:00