Commit graph

22880 commits

Author SHA1 Message Date
Timothy Flynn
1bbf3f1d09 LibWeb: Do not encode "internal_id" in DOM JSON
This is now unused.
2021-07-01 19:19:46 +02:00
Timothy Flynn
447ecc2155 LibWeb: Maintain a map of child-to-parent nodes in OOPWV DOM Inspector
Currently, each time parent_index() is invoked, two depth-first searches
are incurred to find the node's parent and grandparent. This becomes
particularly expensive, for example, when trying to scroll through a
large <ul> list.

Instead, upon creation, traverse the DOM JSON and create a map of child
nodes to their parent. Then those two lookups become hash map lookups
rather than a DFS traversal.
2021-07-01 19:19:46 +02:00
Idan Horowitz
97ea192e3e CI: Cancel duplicate workflow runs for pull requests
These are created when a pull request is force-pushed to, which results
in the unneeded waste of action runners on the obsolete CI run.
2021-07-01 18:26:32 +02:00
Idan Horowitz
3265141286 Meta: Make serenity.sh pass the SERENITY_ARCH cmake argument for x86_64
This is required as our CMake config defaults to i686 if not overriden
manually via the SERENITY_ARCH argument.
2021-07-01 18:08:16 +02:00
Timothy
efcfc8ef7f InspectorServer: Use LocalSocket method to get pid 2021-07-01 17:49:18 +02:00
Timothy
972e5d7292 LibCore: Add peer pid retrieval for LocalSocket
This will allow programs connected over unix sockets to retrieve the
pid of their peers in a nice way.
2021-07-01 17:49:18 +02:00
Andreas Kling
c52ea3dad5 LibJS: Try to fix Clang build (NewClass::m_class_expression is unused) 2021-07-01 17:46:45 +02:00
Johan Dahlin
f6028c2534 LibJS: NewClass bytecode instruction
This adds a the NewClass bytecode instruction, enough of it
is implemented for it to show it in the bytecode (js -d).
2021-07-01 17:34:05 +02:00
Hendiadyoin1
3694b8b690 Kernel: Only deallocate memory when alloc succeeds
Also make AllocationHeader acquisition from pointers more verbose
2021-07-01 17:32:34 +02:00
Hendiadyoin1
5f6c513610 Kernel: Add support for 64-bit unaligned Mem-ops
Also let the compiler enforce the size and type restrictions
2021-07-01 17:32:34 +02:00
Hendiadyoin1
6b9cf8376e Kernel: Remove not needed comment in Processor.h 2021-07-01 17:32:34 +02:00
Gunnar Beutner
092ee955aa DynamicLoader: Remove obsolete comment 2021-07-01 17:22:22 +02:00
Gunnar Beutner
16b9a2d2e1 Kernel+LibPthread: Add support for usermode threads on x86_64 2021-07-01 17:22:22 +02:00
Gunnar Beutner
93c741018e Kernel+LibPthread: Remove m_ prefix for public members 2021-07-01 17:22:22 +02:00
Idan Horowitz
648b4c7d74 LibJS: Bring JSON.parse slightly closer to the specification
This PR does not fix the main issue with our current implementation:
The specification requires that we first check the JSON string for
validity with an ECMA-404 compliant parser, and then evaluate it as if
it was javascript code, of which we do neither at the moment.
2021-07-01 14:14:41 +01:00
Sam Atkins
f5e63f785a FileManager: Remove clicked breadcrumbs for non-existing directories
This fixes #8204.

In the case that we just navigated up from a directory because it was
deleted, we can detect that easily by checking if the child directory
exists, and then remove the relevant breadcrumbs immediately.

However, it's harder to notice if a child directory for a breadcrumb
is deleted at another time. Previously, clicking that breadcrumb would
crash, but now we check to see if the directory it points to actually
exists. If it doesn't, we pop that breadcrumb and any after it, off
of the breadcrumbbar.

This may not be the ideal solution - maybe it should detect that the
directory is gone automatically - but it works and doesn't involve
managing additional directory watchers.
2021-07-01 17:15:26 +04:30
Sam Atkins
d8e0535116 LibGUI: Add search/removal methods to Breadcrumbbar
Both are used by FileManager in the next commit.

find_segment_with_data() was previously a single-use lambda in
FileManager, but making it a method of Breadcrumbbar means we can
re-use it more easily.
2021-07-01 17:15:26 +04:30
Sam Atkins
17615641db LibGUI: Navigate to parent when FileSystemModel directory is deleted
Previously, FileSystemModel would not notice if the directory it has
open (or a parent one) was deleted. Now, it scans for the closest
existing parent directory and opens that.

Also, deleted files and directories that are children of the open dir
now correctly refresh their parent node instead of their own node.
2021-07-01 17:15:26 +04:30
Andreas Kling
0fa141d058 LibJS: Move Binding struct into the DeclarativeEnvironment class
Nobody on the outside needs to access this.
2021-07-01 12:31:39 +02:00
Andreas Kling
44221756ab LibJS: Drop "Record" suffix from all the *Environment record classes
"Records" in the spec are basically C++ classes, so let's drop this
mouthful of a suffix.
2021-07-01 12:28:57 +02:00
Andreas Kling
56d25d7210 LibWeb: Show "x86_64" in the user agent string on x86_64 :^) 2021-07-01 12:15:52 +02:00
Andreas Kling
33260ea99b LibC: Fix jmp_buf layout on x86_64
This struct was too small on x86_64, but setjmp() would happily write
past the end of it.

This makes `test-js` run to completion on x86_64 :^)
2021-07-01 12:05:59 +02:00
Idan Horowitz
8d50cf492e LibJS: Bring JSON.stringify closer to the specification 2021-07-01 11:44:37 +02:00
Gal Horowitz
172d81a717 LibCrypto: Add tests for SignedBigInteger bitwise operations 2021-07-01 11:37:16 +02:00
Gal Horowitz
3872c31b08 LibCrypto: Replace incorrect operator in SignedBigInteger::bitwise_and 2021-07-01 11:37:16 +02:00
Gal Horowitz
38e9e35380 LibCrypto: Replace use of negate() in SignedBigInteger::bitwise_or
Calling negate() on a big integer does not make it negative, but
rather flips its sign, so this was not actually acting as an OR.
2021-07-01 11:37:16 +02:00
Andreas Kling
3f5c9d3edb CrashReporter: Fix bogus register alignment on x86_64 2021-07-01 11:35:52 +02:00
Idan Horowitz
e37f96ccfe LibJS: Stop coercing this to object in Function's Symbol.hasInstance 2021-07-01 11:35:16 +02:00
Idan Horowitz
6ef56f79bd LibJS: Stop coercing Date.prototype[Symbol.toPrimitive] hint to string 2021-07-01 09:55:50 +01:00
Idan Horowitz
9295f1936c LibELF: Check for missing PT_LOAD alignment header value
This ensures we dont divide by zero when checking for valid alignment
values.
2021-07-01 10:50:49 +02:00
Gunnar Beutner
f9a8c6f053 LibELF: Implement support for RELA relocations 2021-07-01 10:50:00 +02:00
Gunnar Beutner
1f93ffcd72 LibELF: Simplify ELF load address calculations
These were unnecessarily complicated.
2021-07-01 10:50:00 +02:00
Gunnar Beutner
2dbd3f83c1 LibELF: Fix incorrect error message 2021-07-01 10:50:00 +02:00
Hendiadyoin1
90cd11fa8c Kernel: Support starting up secondary processors on x86_64 2021-07-01 10:50:00 +02:00
Idan Horowitz
7a1a91d7f2 LibJS: Check for DataView in ArrayBuffer.isView() 2021-07-01 09:20:00 +01:00
DoubleNegation
e992658c12 DisplaySettings: Adjust FontSettings.gml to work with dark themes
The FontSettings widget now uses background_role instead of
background_color to ensure that it displays properly independently of
the active system theme.
2021-07-01 00:10:25 +02:00
DoubleNegation
d19edb0762 LibGUI: Add foreground_role and background_role property to GUI::Widget
These properties allow GML files to specify a Gfx::ColorRole instead of
a color, so that the effective color of the Widget is resolved using the
system theme.
2021-07-01 00:10:25 +02:00
Gal Horowitz
d0c7a48186 Meta: Add environment variable for disabling qemu's gdb socket
When running QEMU on windows, the `-s` does not work, and causes QEMU to
crash, you can now use the environment variable to disable that option.
2021-06-30 18:49:04 +01:00
Gal Horowitz
eed6adb6fc Meta: Do not use gl=on if building in WSL2
The existing check only detects WSL1, this adds a new check which also
detects WSL2.
2021-06-30 18:49:04 +01:00
Idan Horowitz
dfed8f61cb LibJS: Use the GetFunctionRealm abstract-op in ArraySpeciesCreate 2021-06-30 18:41:32 +01:00
Idan Horowitz
c254e4cf10 LibJS: Get the prototype of a new String from the constructor's realm 2021-06-30 18:41:32 +01:00
Idan Horowitz
5606332ed7 LibJS: Add a [[Realm]] getter to FunctionObject and use it where needed
Defined by https://tc39.es/ecma262/#sec-ordinaryfunctioncreate step #17
and by https://tc39.es/ecma262/#sec-createbuiltinfunction step #6.
2021-06-30 18:41:32 +01:00
Idan Horowitz
38b8fa8f3e LibJS: Ensure shift values in left_shift are modded by 32
This is equivalent to 58d6a2d0192b7860ecb2edb4aa5d36b389213a15 but for
the left shift operation.
2021-06-30 19:06:01 +02:00
Hendiadyoin1
2c2cf90661 Utilities: Fix Build on x86_64 2021-06-30 19:05:51 +02:00
Hendiadyoin1
8e575d2f62 Debugger: Compile on x86_64
This is not guaranteed to work at all
2021-06-30 19:05:51 +02:00
Hendiadyoin1
59eea93d2a Userland: Disable Hackstudio and UE on x86_64 2021-06-30 19:05:51 +02:00
davidot
7a3b057a20 LibJS: Add String.prototype.split using the @@split methods on object 2021-06-30 16:08:00 +01:00
davidot
36668893a6 LibJS: Add String.prototype.indexOf position argument 2021-06-30 16:08:00 +01:00
Olivier De Canniere
a4c1666b71 HeaderView: Fix horizonal section size miscalculation
When calculating the horizonal size of a section in
`HeaderView::visible_section_range()`, the horizonal padding is now
correctly taken into account.

This fixes header missalignment issues in Spreadsheet, SystemMonitor
and maybe also the playlist tab of SoundPlayer

closes #8268
2021-06-30 15:15:25 +02:00
Max Wipfli
c1fbfdc164 LibCoreDump: Change Backtrace debug info cache to member variable
This changes the previously static s_debug_info_cache to a member
variable. This is required so the cache is not kept alive if the
Backtrace object is destroyed.

Previously, the cache object would keep alive MappedFile objects and
other data, resulting in CrashReporter and CrashDaemon using more than
100 MB of memory even after the Backtrace objects have been destroyed
(and the data is thus no longer needed). This was especially the case
when handling crashes from Browser (due to libweb.so and libjs.so).

Due to this change, object_info_for_region has been promoted to a
instance method. It has also been cleaned up somewhat.
2021-06-30 15:15:15 +02:00