Commit graph

17465 commits

Author SHA1 Message Date
Adam Hodgen 53c4be926b LibWeb: Set link cursor via the default CSS
This removes the custom handling of cursor for the link element, which
also allows overriding the cursor on a link element via CSS
2021-02-28 18:19:52 +01:00
Adam Hodgen bedcd9cd88 LibWeb: Support setting the cursor in OutOfProcessWebView 2021-02-28 18:19:52 +01:00
Adam Hodgen fc9225db33 LibWeb: Call page_did_request_cursor_change with CSS cursor 2021-02-28 18:19:52 +01:00
Adam Hodgen e169e24104 LibWeb: Parese the CSS "cursor" property 2021-02-28 18:19:52 +01:00
Andrew Kaster a375133cc5 CI: Allow run step of on target tests to fail
As documented in #5541, there are some Kernel issues that can
sporadically cause the test run to fail. Add continue on error with a
loud comment to let readers know what the issue(s) might be.
2021-02-28 18:19:37 +01:00
Andrew Kaster dc6485cfcb LibRegex: VERIFY that string builder in print_header is not null.
I don't know why g++ thinks this is the case with
ENABLE_ALL_DEBUG_MACROS when building for serenity. Adding an assert to
placate it seems reasonable
2021-02-28 18:19:37 +01:00
Andrew Kaster 87a47de613 Documentation: Add RunningTests document
This page explains how to run host tests with Lagom and on-target tests
with run-tests-and-shutdown.sh
2021-02-28 18:19:37 +01:00
Andrew Kaster 611bbc43be Base/CI: Boot serenity in CI in a mode that runs tests on target
Build a new version of Serenity in CI that doesn't have all the debug
symbols on, or we'd be waiting a very long time to boot.

Insert a TestRunner entry into SystemServer.ini that will run a shell
script that runs tests in /bin and /usr/Tests and shuts down the system
in the new self-test boot mode. Also make sure enough basic services are
started in self-test such that the tests will actually run properly.
2021-02-28 18:19:37 +01:00
Andrew Kaster 5046213556 Kernel: Add self-test boot mode, an alias for text mode
Add a special boot mode for running tests, rather than using the system
as a general purpose OS. We'll use this in SystemServer to specify
only services needed to run tests and exit.
2021-02-28 18:19:37 +01:00
Andrew Kaster ca8319f800 Meta: Add run target for CI
This invocation of qemu has no VGA, no sound, no graphics, debug output
going to a file, and defaults to printing /dev/ttyS0 to stdout.
2021-02-28 18:19:37 +01:00
Andrew Kaster c2d8b8ec14 Userland: Don't leak buffer from getline in shuf program
Probably doesn't matter too too much since the program exits almost
immediately after, but there's the principle of the thing to consider.
2021-02-28 18:19:37 +01:00
Andrew Kaster 2930014c2a Shell: Remove WAITID_ONCE workaround
This hashmap is no longer necessary, and the shell works just fine
without it now. Remove the conditionally compiled code.
2021-02-28 18:19:37 +01:00
Andrew Kaster 8fc862f710 Userland: Install shell tests on Serenity
Also make them runnable anywhere. Previously they required $PWD to be
the directory containing test-commons.inc, and for $PWD to be writable.
2021-02-28 18:19:37 +01:00
Andrew Kaster e787738c24 Meta: Build AK and LibRegex tests in Lagom and for Serenity
These tests were never built for the serenity target. Move their Lagom
build steps to the Lagom CMakeLists.txt, and add serenity build steps
for them. Also, fix the build errors when building them with the
serenity cross-compiler :^)
2021-02-28 18:19:37 +01:00
Ben Wiederhake 860a3bbce3 Kernel: Use default con/de-structors
This may seem like a no-op change, however it shrinks down the Kernel by a bit:
.text -432
.unmap_after_init -60
.data -480
.debug_info -673
.debug_aranges 8
.debug_ranges -232
.debug_line -558
.debug_str -308
.debug_frame -40

With '= default', the compiler can do more inlining, hence the savings.
I intentionally omitted some opportunities for '= default', because they
would increase the Kernel size.
2021-02-28 18:09:12 +01:00
Idan Horowitz 2dea887e8f Base: Add mktemp(1) man page 2021-02-28 15:30:49 +01:00
Idan Horowitz c940fd6b7d Userland: Add a simple mktemp(1) utility 2021-02-28 15:30:49 +01:00
Brandon Scott 269ec8b1f9 Browser: Implemented out of process JS console
Added input hook into console widget to allow input to be captured and
sent to the external JS console via IPC.

Output from the external JS console is fed into the console widget
via handle_js_console_output().
2021-02-28 15:30:17 +01:00
Brandon Scott 0682af7b65 LibWeb: Add in all of the plumbing required to use the JS console over IPC 2021-02-28 15:30:17 +01:00
Brandon Scott 51f073ff39 WebContent: Added IPC calls for initializing JS console and sending input 2021-02-28 15:30:17 +01:00
thislooksfun 225baa3cb7 Profiler: remove unimplemented Profile::LibraryMetadata::symbolicate() definition
The implementation of Profile::LibraryMetadata::symbolicate() was
removed in 340180ba05, but the
corresponding public declaration was not.
2021-02-28 15:28:08 +01:00
Tom cbc450c24e Kernel: Fix KUBSAN warnings due to unaligned APIC variables 2021-02-28 15:27:53 +01:00
Tom 32d9534c67 Kernel: Fix GenericInterruptHandler problems with virtual functions
Because registering and unregistering interrupt handlers triggers
calls to virtual functions, we can't do this in the constructor
and destructor.

Fixes #5539
2021-02-28 15:27:53 +01:00
Sviatoslav Peleshko 183ebaee91 LibWeb: Add actual document loading for the CSS (at)import rule 2021-02-28 10:27:32 +01:00
Sviatoslav Peleshko 54617e1a91 LibWeb: Added simple parsing for (at)import rules
For now, the parsing is very crude, and parses only the document url.
The meta queries for the import are ignored.
2021-02-28 10:27:32 +01:00
Sviatoslav Peleshko 04d67d0239 LibWeb: Create base class CSSRule for all CSS rules
This is a foundation for handling other ("at") CSS rules.
2021-02-28 10:27:32 +01:00
Stephan Unverwerth b807d51598 LibTTF: Fix glyph rasterizer coverage calculation 2021-02-28 10:01:41 +01:00
Andreas Kling 1fb1279cfd Profiler: Add a new "Samples" view to the main UI
You can now view the individual samples in a profile one by one with
the new "Samples" view. The "old" main view moves into a "Call Tree"
tab (but it remains the default view.)

When you select a sample in the samples view, we show you the full
symbolicated backtrace in a separate view on the right hand side. :^)
2021-02-27 18:34:21 +01:00
Andreas Kling 2c1f71055f LibVT: Put TerminalWidget in the VT namespace :^) 2021-02-27 17:49:08 +01:00
Andreas Kling 340180ba05 Profiler: Move ELF object name to its own profile graph column
This way you don't have to look at all the library names if you don't
want to. Since we're pretty good about namespacing our things, the
library names are slightly redundant information.
2021-02-27 17:45:41 +01:00
Andreas Kling 2f0ea9ae33 Profiler: Unbreak DisassemblyModel after shared library introduction
This was failing to take the library base address into account when
tallying up the samples at each instruction.
2021-02-27 17:26:57 +01:00
Andreas Kling 19fc62f445 Kernel: Use get_fast_random() for MAP_RANDOMIZED addresses
Let's not block sys$mmap() on kernel randomness.
2021-02-27 16:56:50 +01:00
thankyouverycool d8fa479d05 LibGUI: Remove ControlBoxButton widget
ComboBoxes and SpinBoxes were still relying on ascii-to-bitmap
icons instead of PNGs. This makes it easier to theme in the future.
2021-02-27 16:38:36 +01:00
Linus Groh 24120d9dca Lagom: Build with -Wno-literal-suffix when using GCC
This is already set in the root CMakeLists.txt as well as here for Clang
(-Wno-user-defined-literals), but was forgotten for GCC which made an
Lagom-only build (cmake ../Meta/Lagom [...]) fail.
2021-02-27 16:38:21 +01:00
Linus Groh 590ae7a36d Lagom: CMakeLists.txt housekeeping
- Remove unused LIBM_SOURCES
- Some cosmetic and whitespace changes
2021-02-27 16:38:21 +01:00
Itamar 54bc9114b3 HackStudio: Support searching symbol declarations in the Locator
The Locator now keeps a cache of the declared symbol in a document.
The language client updates that cache whenever it gets an update from
the language server about declared symbols.

This allows searching for symbol declarations in the Locator, in
addition to file names.

Closes #5478
2021-02-27 16:37:35 +01:00
Itamar a94b5376bc LanguageServers/Cpp: Update client asynchronously about symbols
As a document is parsed, the language server updates the client
asynchronously about symbol declarations it finds.
2021-02-27 16:37:35 +01:00
Itamar 71c7597130 LanguageServers/Cpp: Add type to Declarations 2021-02-27 16:37:35 +01:00
Itamar 4b483071fb LanguageServers: Add ProjectLoaction, Declaration types and use in IPC
With this we can avoid passing (name, line, column) tuples in many
different places.
2021-02-27 16:37:35 +01:00
Andreas Kling daf18e7777 AK: Use Array iterator instead of indexing outside Array bounds 2021-02-27 11:48:25 +01:00
Andreas Kling 6817d0701e TextEditor: Initialize menubar before opening initial file
Otherwise we can't toggle the syntax highlighting actions based on the
opened file (since the actions have not been created yet.)
2021-02-27 11:10:37 +01:00
Andreas Kling 28720e9035 TextEditor: Rename open_sesame() => open_file() 2021-02-27 11:05:39 +01:00
Andreas Kling 69d8ad52c4 AK: Always do bounds checking in Array::operator[] 2021-02-27 09:23:32 +01:00
Andreas Kling b7c66233f6 LibVT: Make VT::Line use a Vector for storage
This is preparation for non-destructive terminal resizing which will
require more dynamic storage for lines.
2021-02-27 09:23:06 +01:00
speles c58570ebaf LibGUI: Make empty TextRange invalid
Having TextRange which is empty doesn't make any sense. So it confuses
the functions that rely on having valid range, and causes them to do
no action.
Fixes #5341
2021-02-27 07:58:09 +01:00
Nick Vella 2b9098f540 WidgetGallery: add a simple Wizard demo :^)
The sample Wizard subclasses WizardDialog and demonstrates a front and
back cover, as well as extracting user input from a Wizard page to
display in the interface which spawned the Wizard.
2021-02-27 07:31:55 +01:00
Nick Vella e241dba8d3 LibGUI: add a rudimentary framework for Wizards.
This patch provides the basic components needed for developers to create
consistent wizard interface experiences in their applications.
`WizardDialog` provides the dialog frame for the wizard, handling navigation
and presentation.
`AbstractWizardPage`s form the base class of Wizard pages, which are
pushed onto the `WizardDialog` page stack via `WizardDialog::push_page`.
`CoverWizardPage` and `WizardPage` are provided to ease the creation of
Wizard interfaces consistent with the Serenity visual language.
2021-02-27 07:31:55 +01:00
AnotherTest 610cec6e72 LibJS: Enable the BrowserExtended ECMA262 regexp flag by default
Fixes #5517.
2021-02-27 07:31:01 +01:00
AnotherTest e0ac85288e LibRegex: Allow missing high bound in {x,y} quantifiers
Fixes #5518.
2021-02-27 07:31:01 +01:00
AnotherTest 91bf3dc7fe LibRegex: Match the escaped part of escaped syntax characters
Previously, `\^` would've matched `\`, not `^`.
2021-02-27 07:31:01 +01:00