1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-08-18 15:37:36 +00:00
Commit graph

32230 commits

Author SHA1 Message Date
Andreas Kling
a1b7bd6fea SystemMonitor: Add ability to open process properties from context menu 2021-04-04 22:43:43 +02:00
Andreas Kling
af06eac364 SystemMonitor: Remove "Process" context menu from menu bar
This menu is only relevant while interacting with the process list,
so let's not have it in the menu bar where its presence implies
universal relevance.
2021-04-04 22:43:43 +02:00
Andreas Kling
58ae8aabea SystemMonitor: Show process-specific details in a separate window
When double-clicking a process in the process list, we now open the
detailed information in a new window instead of showing it in a view
below the process list.

This declutters the main UI, and allows you to view details for
multiple processes at the same time.

This is just a first cut, there are many refinements possible here. :^)
2021-04-04 22:43:43 +02:00
Andreas Kling
5fcce5c7e2 SystemMonitor: Start capturing CPU/memory graphs on startup
It felt really weird that the graphs didn't start filling in before
you opened the graph tab for the first time.
2021-04-04 22:43:43 +02:00
Andreas Kling
0f7443f010 SystemMonitor: Add a status bar to the main window
To get us started, this shows the number of processes and threads in
the last captured state.
2021-04-04 22:43:43 +02:00
Marco Cutecchia
1e912fb5a1 PixelPaint: Avoid notifying image when creating a layer's snapshot
This fixes a bug where the application would crash if the user
changed the default values for opacity or visibility of a layer
and then tried to draw on it.
2021-04-04 22:43:30 +02:00
Idan Horowitz
e8d2d73d55 DHCPClient: Store current IP address instead of relaying on the yiaddr
Real DHCP servers might decide to send the DHCPAck directly to the
specified ciaddr instead of as a unicast or multicast, resulting in
the ack being ignored by the network adapter when we are requesting
a new IPv4 address instead of renewing an existing lease, as the
yiaddr (and as a result the ciaddr) is set to the offered address in
that case instead of the current ip address.
2021-04-04 22:38:27 +02:00
Idan Horowitz
6b360834f2 DHCPClient: Dont set DHCPOption::ServerIdentifier on DHCPRequest
Some real DHCP servers dont set the siaddr field in the DHCPOffer to
their IPv4 (and instead leave it blank - 0.0.0.0), which results in
the server assuming the DHCPRequest is not directed at him when it
has the ServerIdentifier option attached that specifies 0.0.0.0 as
the targeted server. So instead we just omit the option and let the
DHCP servers decipher the target themselves based on the requested IP.
2021-04-04 22:38:27 +02:00
Idan Horowitz
47fa8d83bb DHCPClient: Parse MacAddress parts using StringUtils
The current parsing code assumed the ascii lowercase letters came after
the ascii numbers, which is not the case, and as such corrupted any mac
address that included hex letters (a-f). We likely did not notice this
as QEMU's emulated MAC is made up of only hex digits.
2021-04-04 21:22:25 +02:00
Dawid Wolosowicz
863bc35399 WindowServer: Propagate theme change to the applet area
Fixes: #6056
2021-04-04 20:52:39 +02:00
Dawid Wolosowicz
182f9582d2 WindowServer: Use non-translated rect to fill the applet area's store
Fixes #6061
2021-04-04 20:52:39 +02:00
Andreas Kling
0b8226811f Kernel+CrashReporter: Add metadata about page faults to crash reports
Crash reports for page faults now tell you what kind of memory access
failed and where. :^)
2021-04-04 20:13:55 +02:00
Andreas Kling
e238435c4f CrashReporter: Only create coredump metadata hash map once
We were rebuilding the metadata map a bunch of times on startup.
2021-04-04 20:13:55 +02:00
Andreas Kling
436a1dce34 ResourceGraph.Applet: Host both CPU and memory applet in one process
No reason we can't host these in the same process, and then we have
one less process to dynamically link at boot. :^)
2021-04-04 20:13:55 +02:00
Timothy Flynn
1b2123af80 LibWeb: Convert ButtonBox to be a LabelableNode
This also adds an API to Label to determine if the Label itself or its
child TextNode is hovered. This allows ButtonBox to render in a hovered
state when the label is hovered.
2021-04-04 18:30:15 +02:00
Timothy Flynn
e074fc70e1 LibWeb: Convert CheckBox to be a LabelableNode 2021-04-04 18:30:15 +02:00
Timothy Flynn
1380dbeef3 LibWeb: Protect RadioButton and TextNode against mutating DOM
RadioButton had some protection, but also needed to be protected against
click events originating from its associated label.
2021-04-04 18:30:15 +02:00
Andreas Kling
0069020e6c WindowServer+LibGUI: Rename WindowType::MenuApplet => Applet 2021-04-04 17:55:50 +02:00
Oleg Sikorskiy
b34f194168 LibGfx: Avoid float->double->float when converting from linear to gamma
Benchmark shows 5x speedup (from 644ms to 110ms).
2021-04-04 17:33:35 +02:00
Oleg Sikorskiy
c0eacf4cc1 LibGfx: Add benchmarks for line drawing and rectangle filling 2021-04-04 17:33:35 +02:00
Andreas Kling
23cc88f83b Userland: Rename *.MenuApplet => *.Applet
These are no longer displayed in the menu, so it doesn't make sense to
call them menu applets. :^)
2021-04-04 16:29:55 +02:00
Manuel Palenzuela
13315a6ef1 LibC: Added strtoimax() and strtoumax()
They are the same as strtol() and strtoul() but if there is
overflow/underflow then the maximum integer val/lower integer
val/maximum uint val will be returned while also setting errno to
ERANGE.
2021-04-04 16:14:23 +02:00
Luke
4fa59baafe LibWeb: Remove document_setter from Window.document
It is readonly: https://html.spec.whatwg.org/multipage/window-object.html#the-window-object:dom-document-2
2021-04-04 16:13:38 +02:00
Timothy Flynn
e193cb0f11 LibWeb: Convert RadioButton to be a LabelableNode 2021-04-04 16:13:25 +02:00
Timothy Flynn
e1b5613142 LibWeb: Defer mouse events from TextNode to Label
A label's format is: <label>Label text</label>

So, a TextNode is created as a child of the Label node, and EventHandler
will send events to the TextNode. This changes TextNode to accept mouse
events if its parent is a Label, and to forward those events upward.
2021-04-04 16:13:25 +02:00
Timothy Flynn
d8106dda73 LibWeb: Add "Label" to be the layout node for HTMLLabelElement
The HTML <label> element is special in that it may be associated with
some other <input> element. When the label element is clicked, the input
element should be activated.

To achieve this, a LableableNode base class is introduced to provide an
interface for "labelable" elements to handle mouse events on their
associated labels. This not only allows clicking the label to activate
the input, but dragging the mouse from the label to the input (and vice-
versa) while the mouse is clicked will also active the label.

As of this commit, this infrastructure is not hooked up to any elements.
2021-04-04 16:13:25 +02:00
Timothy Flynn
4f9e9c0715 LibWeb: Do not assume grouped radio buttons have the same parent
For example:

    <div>
        <input type=radio name=group value=item1 />
    </div>
    <div>
        <input type=radio name=group value=item2 />
    </div>

Is a valid DOM and clicking on of these radio buttons should uncheck
the other.
2021-04-04 16:13:25 +02:00
Tim Waterhouse
7648f6aa7b HackStudio: File search box stays opened after closing
Fix ##5061 by passing the parent widget down to the locator object
and having the locator object parent it's window to it.
2021-04-04 16:13:14 +02:00
AnotherTest
76f63c2980 LibRegex: Allocate entries for all capture groups in RegexResult
Not just the seen ones.
Fixes #6108.
2021-04-04 16:04:06 +02:00
Andreas Kling
ef8f8f47ac ClipboardHistory: Use the correct icon for ELF embedding 2021-04-04 09:59:49 +02:00
Andreas Kling
721572410e ClipboardHistory: Use the "edit-copy" icon instead of a colorized one 2021-04-04 09:53:41 +02:00
Jelle Raaijmakers
5e5f0245b6 LibC: Teach vsscanf() to consume the width specifier
Previously, `vsscanf()` would crash whenever it encountered a width
specification. Now, it consumes the width specification but does not
yet do anything with it.
2021-04-04 08:28:47 +02:00
Jelle Raaijmakers
7f1f6d96b4 LibC: Add NI_MAXHOST and NI_MAXSERV constants
These are not POSIX-defined but are almost always present in <netdb.h>.
2021-04-04 08:28:47 +02:00
AnotherTest
143c68755b LibC: Use 'long long' specialisations of scanf's read_element_concrete
...for 'long long' and 'unsigned long long', instead of reading them as
'long's and 'unsigned long's.
Also add a test for values that can only fit in (unsigned) long long.
Fixes #6096.
2021-04-04 00:40:41 +02:00
Dawid Wolosowicz
f05cca7a9a Spreadsheet: Declare the extern GML variable as an array, not a pointer
Part of #5906
Fixes #5943
2021-04-04 00:38:02 +02:00
Linus Groh
340e1f4b28 LibWeb: Implement the Screen interface
https://drafts.csswg.org/cssom-view/#the-screen-interface
2021-04-04 00:37:54 +02:00
Linus Groh
e8739ddab7 LibWeb+WebContent: Keep track of screen rect
It is now possible to get the up-to-date screen rect from a Web::Page.
2021-04-04 00:37:54 +02:00
Linus Groh
96b26ec125 Everywhere: Replace uses of GUI::Desktop's on_rect_change and remove it 2021-04-04 00:37:54 +02:00
Linus Groh
5367bbb82c LibGUI: Add ScreenRectChangeEvent and deliver it to windows and widgets
Having to rely on GUI::Desktop's on_rect_change is quite limiting and a
bit awkward (continuing to use it would mean having to setup the
callback in every application using a webview) - we need a better way of
letting widgets know of a screen rect change automatically.

The specific use case will be IPWV/OOPWV which need to keep track of the
screen rect and notify the WebContent service of any change (which on
its own deliberately can't interact with WindowServer at all).

It'll also be useful for notification windows and the taskbar, which
currently both rely on the GUI::Desktop callback but will now be able to
listen and react to the event themselves.
2021-04-04 00:37:54 +02:00
Oleg Sikorskiy
a5db11c1f0 LibGfx: Use integer version of Bresenham's algorithm. 2021-04-03 23:59:37 +02:00
Andreas Kling
bf1ad16078 LibC: Fix FILE::flush() passing bogus arguments to lseek()
This was a regression from the 64-bit off_t changes.

When dropping buffered data after a flush, we would subtract the
buffered amount from zero to get the seek offset. This didn't work
right since the subtraction was done with a 32-bit size_t and we
ended up with e.g (i64)0xfffffffc as the offset.

Fixes #6003.
2021-04-03 23:01:14 +02:00
Andreas Kling
64d4921f35 LibGUI: Don't try to paint items in model-less IconView :^)
Fixes #6079.
2021-04-03 20:36:43 +02:00
Andreas Kling
5c67b2cb8f LibWeb: Defer creation of subframes until host element is connected
This allows parsing of document fragments with "<iframe>" to construct
the iframe element without requiring that the fragment have a frame.
2021-04-03 16:54:33 +02:00
Linus Groh
57ead17d54 LibWeb: Implement XMLHttpRequest.getResponseHeader()
This lets jQuery's AJAX functionality progress further :^)
2021-04-03 16:34:34 +02:00
Linus Groh
288b90a297 LibWeb: Implement XMLHttpRequest.status
This lets jQuery's AJAX functionality progress further :^)
2021-04-03 16:34:34 +02:00
Linus Groh
e02270c5cc LibWeb: Make XMLHttpRequest.open() work with relative URLs 2021-04-03 16:34:34 +02:00
Linus Groh
000ef96613 LibWeb: Pass optional status code to ResourceLoader callbacks
This is needed for XMLHttpRequest, and will certainly be useful for
other things, too.
2021-04-03 16:34:34 +02:00
Linus Groh
975b209b9b LibWeb: Set Constructor.name and Prototype.constructor of generated interfaces
Object introspection in the Browser's JS console is still not great, but
this makes it a lot easier to find out the exact type of an object by
checking its 'constructor' property.
It also fixes all the things that rely on these properties being set, of
course :^)
2021-04-03 16:34:34 +02:00
Linus Groh
55d9f1cced LibJS: Log any exception, not just the ones with a JS::Error value
This was super confusing as we would check if the exception's value is a
JS::Error and not log it otherwise, even with m_should_log_exceptions
set.

As a result, things like DOM exceptions were invisible to us with
execution just silently stopping, for example.
2021-04-03 16:34:34 +02:00
Linus Groh
f1fde01025 LibJS: Fix returning from try statement
Not sure if this regressed at some point or just never worked, it
definitely wasn't tested at all. We would always return undefined when
returning from a try statement block, handler, or finalizer.
2021-04-03 16:34:34 +02:00