Commit graph

41812 commits

Author SHA1 Message Date
Andrew Kaster
62a8c26b73 LibWeb: Remove unecessary dependence on Window from Geometry classes
These classes only needed Window to get at its realm. Pass a realm
directly to construct Geometry classes.
2022-10-01 21:05:32 +01:00
Andrew Kaster
f0c5f77f99 LibWeb: Remove unecessary dependence on Window from HTML classes
These classes only needed Window to get at its realm. Pass a realm
directly to construct HTML classes.
2022-10-01 21:05:32 +01:00
Andrew Kaster
a2ccb00e1d LibWeb: Remove unecessary dependence on Window from CSS classes
These classes only needed Window to get at its realm. Pass a realm
directly to construct CSS classes.
2022-10-01 21:05:32 +01:00
Andrew Kaster
8de7e49a56 LibWeb: Remove unecessary dependence on Window from DOM and WebIDL
These classes only needed Window to get at its realm. Pass a realm
directly to construct DOM and WebIDL classes.

This change importantly removes the guarantee that a Document will
always have a non-null Window object. Only Documents created by a
BrowsingContext will have a non-null Window object. Documents created by
for example, DocumentFragment, will not have a Window (soon).

This incremental commit leaves some workarounds in place to keep other
parts of the code building.
2022-10-01 21:05:32 +01:00
Andrew Kaster
8407bf60c5 LibWeb: Introduce new construct_impl method for bound classes
In this generator change, we introduce a new factory method for bound
LibWeb objects that takes a JS::Realm instead of Web::HTML::Window.

The two methods are allowed to co-exist at this point, but the option to
take an HTML::Window will be removed once all clases are converted to
the new API.

We also start using the new Bindings::ensure_web_[prototype/constructor]
helpers from the Bindings/Intrinsics class so that we can eventually
remove the helpers from Window.h for the same.
2022-10-01 21:05:32 +01:00
Andrew Kaster
c61a4f35dc LibWeb: Move Web prototypes and constructors to new Intrinsics object
This Intrinsics object hangs off of a new HostDefined struct that takes
the place of EnvironmentSettingsObject as the true [[HostDefined]] slot
on JS::Realm objects created by LibWeb.

This gets the intrinsics off of the GlobalObject, Window, similar to the
previous refactor of LibJS to move the intrinsics into the Realm's
[[Intrinics]] internal slot.

A side effect of this change is that we cannot fully initialize a Window
object until the [[HostDefined]] slot has been installed into the realm,
which happens with the creation of the WindowEnvironmentSettingsObject.

As such, any Window usage that has not been funned through a WindowESO
will not have any cached Web prototyped or constructors, and will not
have Window APIs available to javascript code. Currently this seems
limited to usage of Window in the CSS parser, but a subsequent commit
will clean those up to take Realm as well. However, this commit compiles
so let's cut it off here :^).
2022-10-01 21:05:32 +01:00
Daniel Bertalan
01c2cffcca AK: Fix naming conflict with compiler builtin
Clang patch D116203 added various builtin functions for type traits,
`__decay` being one of them. This name conflicts with our
`AK::Detail::__decay`, leading to compiler warnings with Clang 16.
2022-10-01 20:39:48 +02:00
Daniel Bertalan
41a8f3f40f Lagom: Link LibMain statically
This matches how LibMain is used within Serenity. This commit makes it
possible to build Lagom with LTO. Previously, `serenity_main` functions
would be dead-stripped away, as the linker could prove that nothing from
the executable ever called them.
2022-10-01 20:39:48 +02:00
DJtheRedstoner
add7dd66f6 Ports/OpenJDK: Use posix_fallocate 2022-10-01 19:17:50 +01:00
DJtheRedstoner
bd08587ac9 Ports/OpenJDK: Update for the removal of StringView(char const*) 2022-10-01 19:17:50 +01:00
Xexxa
8b2683a070 Base: Adjust size of emoji U+1F1F8_U+1F1EF
🇸🇯 - U+1F1F8 U+1F1EF FLAG: SVALBARD & JAN MAYEN
2022-10-01 19:02:53 +01:00
Tim Schumacher
eb6c911b3a Toolchain: Hardcode the results of LLVM runtime library detection
This keeps us from accidentally building toolchains that don't make it
through a clean build if we build them using a populated sysroot, as it
would otherwise detect libpthread and friends and try to pull them in
while LibC is not yet built.
2022-10-01 18:59:51 +01:00
Xexxa
47c428dbe3 Base: Adjust size of emoji U+1F1F5_U+1F1E6
🇵🇦 - U+1F1F5 U+1F1E6 FLAG: PANAMA
2022-10-01 18:58:30 +01:00
Xexxa
d336dbc514 Base: Adjust size of emoji U+1F1EF_U+1F1F2
🇯🇲 - U+1F1EF U+1F1F2 FLAG: JAMAICA
2022-10-01 18:44:05 +01:00
Tim Schumacher
b52b6e8739 Toolchain: Only reextract GCC-related tarballs if patches change
This brings the behaviour in line with Clang, which already does this
since a few revisions.
2022-10-01 18:43:29 +01:00
Tim Schumacher
1faca15193 Toolchain: Move the binutils patch into its own folder
This makes binutils compatible with `./package.sh dev`, so that we can
regenerate patches more easily, and neatly stack (temporary) patches on
top.
2022-10-01 18:43:29 +01:00
Idan Horowitz
7578039188 LibHTTP: Use 'close' as the default value for Connection in HTTP/1.0
Unlike HTTP/1.1 and above, the default behaviour for HTTP/1.0 servers
is to close the connection after sending the response.
2022-10-01 19:37:01 +02:00
Liav A
66bde66f49 Kernel/aarch64: Use adopt_lock_ref to instantiate an InterruptController 2022-10-01 19:36:04 +02:00
Xexxa
dd6e70afd6 Base: Adjust size of emoji U+1F1E7_U+1F1FE
🇧🇾 - U+1F1E7 U+1F1FE FLAG: BELARUS
2022-10-01 17:04:12 +01:00
Mykola
47e0c2b11c Base: Add some emojis
New:
    🎏 - U+1F38F CARP STREAMER
    🇮🇲 - U+1F1EE U+1F1F2 FLAG: ISLE OF MAN
    🇰🇭 - U+1F1F0 U+1F1ED FLAG: CAMBODIA
    🇱🇾 - U+1F1F1 U+1F1FE FLAG: LIBYA
    🇲🇴 - U+1F1F2 U+1F1F4 FLAG: MACAO SAR CHINA
    🇲🇵 - U+1F1F2 U+1F1F5 FLAG: NORTHERN MARIANA ISLANDS
    🇲🇽 - U+1F1F2 U+1F1FD FLAG: MEXICO
    🇵🇰 - U+1F1F5 U+1F1F0 FLAG: PAKISTAN
    🇵🇹 - U+1F1F5 U+1F1F9 FLAG: PORTUGAL
    🇸🇦 - U+1F1F8 U+1F1E6 FLAG: SAUDI ARABIA
    🇹🇲 - U+1F1F9 U+1F1F2 FLAG: TURKMENISTAN
    🇹🇳 - U+1F1F9 U+1F1F3 FLAG: TUNISIA
    🇻🇦 - U+1F1FB U+1F1E6 FLAG: VATICAN CITY
    🇻🇮 - U+1F1FB U+1F1EE FLAG: U.S. VIRGIN ISLANDS
    🇻🇺 - U+1F1FB U+1F1FA FLAG: VANUATU
    🇼🇫 - U+1F1FC U+1F1EB FLAG: WALLIS & FUTUNA
    🇾🇹 - U+1F1FE U+1F1F9 FLAG: MAYOTTE
Modified:
    🇪🇪 - U+1F1EA U+1F1EA FLAG: ESTONIA
2022-10-01 16:09:50 +01:00
Idan Horowitz
5c814e66b3 LibJS: Store symbols in a Handle inside PropertyKey
If the stored symbol is custom (non-global), it is allocated on the
heap, and may not be visited by anyone else, so we must register it in
order to keep it alive.
2022-10-01 15:36:20 +01:00
Idan Horowitz
4aade74b91 LibJS: Include Environment.h directly in ClassFieldDefinition.h
This was previously indirectly forcing Heap/Handle.h to include it
instead. This will let us include Handle.h from PropertyKey, which will
allow us to solve a different issue.
2022-10-01 15:36:20 +01:00
Joel Hansen
cd07521ed8 Base: Add new emoji
🛰️ - U+1F6F0 Satellite
🦆 - U+1F986 Duck
🦜 - U+1F99C Parrot
🦞 - U+1F99E Lobster
🧽 - U+1F9FD Sponge
🩵 - U+1FA75 Light Blue Heart
🩶 - U+1FA76 Grey Heart
🩷 - U+1FA77 Pink Heart
🪕 - U+1FA95 Banjo
🫨 - U+1FAE8 Shaking Face
2022-10-01 13:26:26 +01:00
Timon Kruiper
779a1d1232 Kernel/aarch64: Get framebuffer data from BootFramebufferConsole
The BootFramebufferConsole class maps the framebuffer using the
MemoryManager, so to be able to draw the logo, we need to get this
mapped framebuffer. This commit adds a unsafe API for that.
2022-10-01 14:09:01 +02:00
Timon Kruiper
15b818cd57 Kernel/aarch64: Remove specific aarch64 code in BootFramebufferConsole
The MemoryManager now works, so we can use the same code as on x86 to
map the framebuffer. Since it uses the MemoryManager, the initialization
of the BootFramebufferConsole has to happen after the MemoryManager is
working.
2022-10-01 14:09:01 +02:00
Timon Kruiper
57b1369475 Kernel/aarch64: Put correct memory size in multiboot_mmap
Also enable the MMU earlier in the boot process.
2022-10-01 14:09:01 +02:00
Timon Kruiper
c2e410195a Kernel/aarch64: Set up pointer to kernel page directory
The MemoryManager uses this pointer to adds its newly created page
tables to the kernel page directory.
2022-10-01 14:09:01 +02:00
Timon Kruiper
96f73c9289 Kernel/aarch64: Set up quickmap infrastructure in initial page tables
With this change the quickmap related functions in MemoryManager
actually work. :^)
2022-10-01 14:09:01 +02:00
Timon Kruiper
a62732ee2f Kernel/aarch64: Only identity map kernel image, instead of all of RAM
For the initial page tables we only need to identity map the kernel
image, the rest of the memory will be managed by the MemoryManager. The
linker script is updated to get the kernel image start and end
addresses.
2022-10-01 14:09:01 +02:00
Timon Kruiper
cdf59c86ac Kernel: Make PageDirectory.h architecture specific
The page table and page directory formats are architecture specific, so
move the headers into the Arch directory. Also move the aarch64 page
table constants from aarch64/MMU.cpp to aarch64/PageDirectory.h.
2022-10-01 14:09:01 +02:00
Timon Kruiper
ad5e8bbb4f Kernel: Add ability to dump backtrace from provided frame pointer
When an exception happens it is sometimes hard to figure out where
exactly the exception happened, so use the frame pointer of the trap
frame to print a backtrace.
2022-10-01 14:09:01 +02:00
Timon Kruiper
57901a6f62 Kernel/aarch64: Implement tlb flushing
This initial implementation flushes the complete tlb cache. A FIXME is
added to implement the partial tlb flushing.
2022-10-01 14:09:01 +02:00
Timon Kruiper
424a974e01 Kernel: Don't reserve Low Memory (0-1MB) on non-x86 architectures
This memory is only reserved on x86(-64) and is usable on other
architectures.
2022-10-01 14:09:01 +02:00
Timon Kruiper
1b60126d93 Kernel/aarch64: Stub Inode::{read,write}_bytes
Recent changes caused the build to fail for aarch64, with these
functions stubbed it builds again.
2022-10-01 14:09:01 +02:00
MacDue
240fb93cf1 LibWeb: Remove FIXME for double-position linear-gradient() color stops
I added these in #14977, but forgot to remove this FIXME.
2022-10-01 14:08:01 +02:00
Luke Wilde
082abf9998 Base: Add rotateX, rotateY, rotateZ and matrix3d examples for transform 2022-10-01 14:07:47 +02:00
Luke Wilde
dbe12662b8 LibWeb: Implement matrix3d transform function from css-transforms-2 2022-10-01 14:07:47 +02:00
Luke Wilde
0fdd924db2 LibWeb: Implement rotation transform functions from css-transforms-2 2022-10-01 14:07:47 +02:00
MacDue
ddfe18783b Magnifier: Don't error if cancelling capture save 2022-10-01 14:06:53 +02:00
Luke Wilde
540c307009 LibWeb: Implement Element.insertAdjacentText 2022-10-01 14:06:40 +02:00
Luke Wilde
d540e2ec98 LibWeb: Implement Element.insertAdjacentElement 2022-10-01 14:06:40 +02:00
thankyouverycool
f27f2e0d3b Welcome: Use StandardPaths to load README.md 2022-10-01 13:39:10 +03:30
thankyouverycool
12b9c0ce7f Welcome: Add new tips 2022-10-01 13:39:10 +03:30
thankyouverycool
a6b8ac10f7 Welcome: Use fallible try_create_default_icon() 2022-10-01 13:39:10 +03:30
thankyouverycool
9fe5cadcc8 Welcome: Update GML
Moves more settings to GML to simplify construction and replaces
deprecated GML properties.
2022-10-01 13:39:10 +03:30
thankyouverycool
ca54a965a0 Welcome: Port to Core::Stream 2022-10-01 13:39:10 +03:30
thankyouverycool
bd66453e8d LibCore: Add documents_directory() to StandardPaths 2022-10-01 13:39:10 +03:30
thankyouverycool
72c0414a58 Welcome: Remove unnecessary include 2022-10-01 13:39:10 +03:30
thankyouverycool
929f31f564 Welcome: Add/remove SystemServer group entry to toggle startup
Previously Welcome relied on a bogus executable key value to disable
startup. This always printed an error on login and littered the config
file with a useless entry. Adding/removing the group as needed seems
a bit nicer.
2022-10-01 13:39:10 +03:30
thankyouverycool
be3cc756fc config: Enable adding and removing groups 2022-10-01 13:39:10 +03:30