Commit graph

27885 commits

Author SHA1 Message Date
Andreas Kling
68d1f5965a LibWeb: Add HTML::Task::Source::PostedMessage
This is the task source used by MessagePort.postMessage().
2021-09-19 22:34:44 +02:00
Andreas Kling
dd29abe4d6 Meta: Bump default VM memory size to 1 GiB 2021-09-19 22:34:43 +02:00
David Isaksson
122f440672 AudioApplet: Refactor window resizing 2021-09-19 21:52:32 +02:00
David Isaksson
df32f1b7de AudioApplet: Get values from AudioServer instead of the config file 2021-09-19 21:52:32 +02:00
David Isaksson
bd48abab8b AudioApplet: Make sure to set the internal volume on slider change
This fixes the issue that the percent label doesn't update.
2021-09-19 21:52:32 +02:00
David Isaksson
3f6ccf63fe AudioApplet: Round the volume to the nearest integer 2021-09-19 21:52:32 +02:00
David Isaksson
c1458e8061 AudioApplet: Update the volume slider on update from audio server 2021-09-19 21:52:32 +02:00
David Isaksson
3c8493c667 LibGUI: Add option to disable on_change call for sliders set_value()
This makes it possible to avoid messy situations where a slider
controlled value can be changed from multiple sources.
2021-09-19 21:52:32 +02:00
David Isaksson
5a91f5b320 Utilities: Fix asctl volume units
A while back the internal volume representation was changed from int to
double, but asctl was apparently never changed. This patch fixes that
issue.
2021-09-19 21:52:32 +02:00
Idan Horowitz
574a1c522d Kernel: Store device class name as member of VirtIO devices
This ensures we dont try to hold the PCI Access mutex under IRQ when
printing VirtIO debug logs (which is not allowed and results in an
assertion). This is also relatively free, as it requires no allocations
(we're just storing a pointer to the rodata section).
2021-09-19 21:51:03 +02:00
Idan Horowitz
53cf28c47c Kernel: Use StringView literals in VirtIO::determine_device_class()
Since the return type is StringView we can just create them at compile
time and avoid the run-time construction.
2021-09-19 21:51:03 +02:00
Ali Mohammad Pur
35116c9117 Base: Add a quote to the fortunes database 2021-09-19 23:51:34 +04:30
Karol Kosek
65a5d66387 PixelPaint: Use main window's icon in the 'Create new image' widget 2021-09-19 20:05:58 +02:00
Ali Mohammad Pur
bd4f7421cf LibCore: Don't double-check select() in Socket's read notifier callback
This was used to work around a possible bug where select() would mark a
socket readable, but another user of the same socket would read before
the notifier's callback is run; let's remove this and fix any issues
regarding that specific situation later when they pop up.
2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
81a0301d4d LibCore+RequestServer: Ignore callbacks for cancelled network jobs
Also cancel the jobs when they're destroyed.
This makes sure that jobs whose owners have discarded don't end up
crashing because of a did_fail().
2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
436693c0c9 LibTLS: Use a setter for on_tls_ready_to_write with some more smarts
The callback should be called as soon as the connection is established,
and if we actually set the callback when it already is, we expect it to
be called immediately.
2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
d3ea0818f3 LibTLS: Don't close the underlying socket on EOF 2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
e780ee2832 LibWeb: Avoid introducing a reference cycle in ResourceLoader::load()
Previously we were kinda sorta resolving the reference cycle, but let's
just keep the requests in a hashtable instead of relying on hard to
track refcount tricks.
Fixes #7314.
2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
65f7e45a75 RequestServer+LibHTTP+LibGemini: Cache connections to the same host
This makes connections (particularly TLS-based ones) do the handshaking
stuff only once.
Currently the cache is configured to keep at most two connections evenly
balanced in queue size, and with a grace period of 10s after the last
queued job has finished (after which the connection will be dropped).
2021-09-19 21:10:23 +04:30
Ali Mohammad Pur
c5d7eb8618 LibHTTP: Exit the read loop early when there cannot be any further data 2021-09-19 21:10:23 +04:30
Kenneth Myhra
6819193671 Ports/glib: Bump GLib to 2.70.0 2021-09-19 18:18:47 +02:00
Kenneth Myhra
83a4c1732b Ports/glib: Maintain compatibility with meson < 0.57.0 2021-09-19 18:18:47 +02:00
brapru
b5f812d11d LibVT: Add movemouse support for triple click
When moving the mouse after a triple click, the selected buffer does not
maintain the whole line selection. This patch will allow triple click
highlighting to hold the whole line selection.
2021-09-19 20:28:09 +04:30
brapru
7a673f5aa3 LibVT: Keep track of the buffer postiion on mousedown events 2021-09-19 20:28:09 +04:30
Nico Weber
697e6ccb89 Kernel: Add a Mailbox class for aarch64
As a demo, query the firmware version. `Meta/serenity.sh gdb aarch64`
can be used to observe that qemu puts 0x548E1 in x0 in response
to this mailbox message.
2021-09-19 17:45:59 +02:00
Nico Weber
d0b9c7a20b Kernel: Add a MMIO class for aarch64
It doesn't do anything yet except figure out the peripheral base
address.

Very likely belongs in Kernel, not Prekernel, eventually.
2021-09-19 17:45:59 +02:00
Nico Weber
3a24eb323f Kernel: Use new halt() for all our halting needs in aarch64 Prekernel 2021-09-19 17:45:59 +02:00
Nico Weber
0319aa315a Kernel: Add __stack_chk_fail to aarch64 Prekernel init
This is needed for some functions with local variables. We'll grow
such a function soon.
2021-09-19 17:45:59 +02:00
Andreas Kling
58f6bf8a4d CrashReporter: Add some margin around the backtrace & register views 2021-09-19 17:25:52 +02:00
Kenneth Myhra
177765642e Ports/glib: Remove patch 0008-add-missing-macro-IN6_IS_ADDR_V4MAPPED
Since we now have the 'IN6_IS_ADDR_V4MAPPED' macro in LibC this patch
is no longer needed.
2021-09-19 15:53:43 +02:00
Kenneth Myhra
c7422dcef7 LibC: Declare IN6_IS_ADDR_V4MAPPED correctly
When using the IN6_IS_ADDR_V4MAPPED macro in Serenity's LibC it would
fail when compiling with the error message:
'invalid type argument of '->''.

This patch corrects the macro so that e.g. GLib port can compile again.
2021-09-19 15:53:43 +02:00
Andreas Kling
e649144a90 LibWeb: Replace ScriptExecutionContext::interpreter() with realm()
Here goes another step towards Document not having a JS::Interpreter.
2021-09-19 15:39:40 +02:00
Andreas Kling
7a6ad1b19c LibWeb: Use an enumerator macro for XMLHttpRequestEventTarget accessors 2021-09-19 15:08:01 +02:00
Andreas Kling
ee8a1a9b3f LibWeb: Keep XMLHttpRequest alive while handling load/error events
A weakly held XHR object is not guaranteed to remain alive after
running arbitrary JavaScript, so let's make sure we take a strong
reference in the ResourceLoader callbacks here.
2021-09-19 15:02:27 +02:00
Andreas Kling
398a95c3c9 LibWeb: Remove unnecessary WeakPtr creation in XMLHttpRequest::send() 2021-09-19 14:59:02 +02:00
Andreas Kling
57f3535c4a LibWeb: Remove duplicated event handler attribute code in WebSocket
This functionality is now inherited from EventTarget, so we can simply
remove the whole thing in WebSocket. :^)
2021-09-19 13:44:58 +02:00
Andreas Kling
51b33b5678 LibWeb: Implement basic retargeting of body/frameset event handlers
The HTML spec tells has some special rules for <body> and <frameset>
elements' onfoo event handler attributes. In some cases, the implicitly
generated event listeners should end up on the relevant global object
instead of the element itself.

This patch implements the first part of that behavior.
2021-09-19 13:08:30 +02:00
Andreas Kling
5fbd0c5ea0 LibWeb: Add DOM::Document::is_active()
This is a spec concept that means a document is the associated document
of its browsing context's active window.
2021-09-19 13:08:30 +02:00
Tobias Christiansen
79c2762a0d LibWeb: Flexbox: Use maximum size of container as available size
This previously wouldn't work well with flex-grow.
2021-09-19 13:07:53 +02:00
Eric Seifert
edbc5489a8 Kernel: Add support for O_NONBLOCK in pipe syscall
While working on a port, I saw a pipe creation fail due to missing
nonblock support in pipe syscall.
2021-09-19 12:20:16 +02:00
Sahan Fernando
2e079c6d69 Kernel/VirtIO: Remove lazy allocation of VirtIO::Device BAR regions
This fixes a Kernel Panic where the lazy allocation triggers inside an
ISR and grabs a mutex, which isn't allowed when interrupts are
disabled. This also fixes a bug where the mapping for VirtIO device
BARs is never allocated. #9876
2021-09-19 11:46:09 +03:00
Andreas Kling
6b03d18d95 LibWeb: Add event handler attributes to XMLHttpRequestEventTarget
This patch adds the following event handler attributes to XHR's
EventTarget base class:

- onloadstart
- onprogress
- onabort
- onerror
- onload
- ontimeout
- onloadend
2021-09-19 01:43:27 +02:00
Andreas Kling
dc8707527f LibWeb: Implement XMLHttpRequest.onreadystatechange 2021-09-19 01:43:27 +02:00
Andreas Kling
824be02cb0 LibWeb: Move onfoo attribute handling to EventTarget
This logic was kept in the GlobalEventHandlers mixing for sharing
between Document and HTMLElement, but there are other interfaces who
need to support `onfoo` attribute event listeners as well.
2021-09-19 01:43:27 +02:00
thankyouverycool
ae59d8a728 LibGfx: Paint replacement character, 0xFFFD, for unknown glyphs
Note: most systems now use a font's .notdef character for unknown
glyphs (commonly the tofu box) and reserve 0xFFFD for encoding
errors. Until Serenity supports tofu, 0xFFFD is a preferable, if
deprecated, alternative to '?' to reduce ambiguity.
2021-09-19 00:58:59 +02:00
thankyouverycool
41ce6d0cd0 Tests: Conform font tests to new font format 2021-09-19 00:58:59 +02:00
thankyouverycool
dc65535b7c FontEditor: Add new tools to navigate code points
Visible glyphs can now be cycled through, or a code point specified
and jumped to directly.
2021-09-19 00:58:59 +02:00
thankyouverycool
a486415f03 FontEditor: Update editor to handle new font format
The editor now unmasks fonts on load, mapping their glyphs to the
complete unicode character set, and masks them upon saving to
reduce disk space. This is a naive approach in terms of memory
usage and can be improved but whose immediate goal is to allow
editing any glyph without concern for range allocation.
2021-09-19 00:58:59 +02:00
thankyouverycool
9bcfdfc03b Base: Convert fonts to new header format
Type has been replaced with a bit mask size whose value corresponds
to the number of u8 ranges of 256 characters per bit. Given 0x110000
possible glyphs in Unicode 13.0, its maximum size is currently 544
and can be expanded if needed.

Adds the 0xFFFD replacement character to Csilla/KaticaRegular fonts
and fixes dozens of alignment errors in the Latin character sets.
2021-09-19 00:58:59 +02:00
thankyouverycool
bb592aef8a LibGfx: Extend Unicode support for BitmapFonts
Removes the concept of Type enumeration in favor of a bitmask which
represents 544 potential byte ranges of 256 characters per bit,
supporting the current unicode code point set (0x0000-0x10FFFF).
Range positions are indexed in a vector for code point lookup and
conversion.

Co-authored-by: Lynn <lynn@foldr.moe>
2021-09-19 00:58:59 +02:00