Sam Atkins
004ae453d1
LibWeb: Add context to new CSS parser, and deprecate the old one
...
The new one is the same as the old one, just in the new Parser's
source files. This isn't the most elegant solution but it seemed
like the best option. And it's all temporary, after all.
2021-07-11 23:19:56 +02:00
Sam Atkins
390cc30a97
LibWeb: Bring CSS::Parser::parse_as_comma_separated_list...() to spec
...
Previous implementation was returning everything in a single Vector,
when what we really want is a Vector of Vectors, one for each comma-
separated part of the list.
2021-07-11 23:19:56 +02:00
Sam Atkins
985ed47a38
LibWeb: Use EOF code point instead of Optional in CSS Tokenizer
...
Optional seems like a good idea, but in many places we were not
checking if it had a value, which was causing crashes when the
Tokenizer was given malformed input. Using an EOF value along with
is_eof() makes things a lot simpler.
2021-07-11 23:19:56 +02:00
Sam Atkins
caff7fff94
LibWeb: Convert CSS::Parser methods to return desired types
...
This is very much stubbed out for now. Most notably is
Parser::convert_rule() where most of the conversion will happen
from the parser's internal rule classes to CSSRule and its children.
2021-07-11 23:19:56 +02:00
Sam Atkins
f9ffa34622
LibWeb: Remove broken CSS:Parser::is_combinator()
...
A single DELIM token is only one character long, so the check for
a "||" DELIM didn't work. We now just do the check inline.
2021-07-11 23:19:56 +02:00
Sam Atkins
9115c23bd5
LibWeb: Fix greedy CSS Tokenizer whitespace parsing
...
Whitespace parsing was too greedy, consuming the first non-
whitespace character after it.
2021-07-11 23:19:56 +02:00
Sam Atkins
06fc099310
LibWeb: Fix Off-by-one error in CSS::Parser::next_token()
2021-07-11 23:19:56 +02:00
Sam Atkins
06cd418770
LibWeb: Convert QualifiedStyleRule to a RefPtr type in new Parser
2021-07-11 23:19:56 +02:00
Sam Atkins
f690259a42
LibWeb: Add new CSS attribute match types to new parser
2021-07-11 23:19:56 +02:00
Sam Atkins
7fefe34797
LibWeb: Add remaining CSS AttributeMatchTypes
...
This adds:
- ContainsString [att*=val]
- StartsWithSegment [att|=val]
- StartsWithString [att^=val]
- EndsWithString [att$=val]
Renamed AttributeMatchType::Contains to ::ContainsWord for clarity.
2021-07-11 23:19:56 +02:00
Sam Atkins
29d78bba4b
LibWeb: Use StyleComponentValueRules for StyleBlockRule's values
...
Noticed while doing this that attribute selectors have two different
ways of saying "starts with", and so AttributeMatchType::StartsWith
needs a better name. But I'll change that when I add the missing
types.
These class names are a mouthful to fit in a commit message. :^)
2021-07-11 23:19:56 +02:00
Sam Atkins
89bfde29dc
LibWeb: Convert some CSS parser *Rule classes to using pointers
...
Previously these were all passed around by value, but some of them
(StyleComponentValueRule and StyleBlockRule) want to include each
other as fields, so this had to change.
2021-07-11 23:19:56 +02:00
Sam Atkins
a558916e1f
LibWeb: Make CSS selector parsing use StyleComponentValueRules
...
Also added some pseudo-classes that were handled in the deprecated
parser:
- :disabled
- :enabled
- :checked
- :nth-child
- :nth-last-child
- :not
2021-07-11 23:19:56 +02:00
Sam Atkins
f7c79de0c5
LibWeb: Add convenience methods to CSS::Parser::Token
...
Some of these will be removed later, when we move to using is()
exclusively.
2021-07-11 23:19:56 +02:00
Sam Atkins
d6b4022b58
LibWeb: Make CSS::QualifiedStyleRule's prelude StyleComponentValueRule
2021-07-11 23:19:56 +02:00
Linus Groh
54e1180f61
LibJS: Uncomment Number.isInteger() tests that now pass :^)
2021-07-11 22:03:04 +01:00
Linus Groh
1856400547
LibJS: Uncomment Object.{freeze,seal}() tests that now pass :^)
2021-07-11 21:58:14 +01:00
Ali Mohammad Pur
dfb7e716f7
LibJS: Use expected() instead of syntax_error("Expected ...")
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
049e210cfa
LibJS: Rework Identifier parsing to match the spec more closely
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
77a5144264
LibJS: Add support for binding patterns in catch clauses
...
`try { ... } catch({a=foo}) {}` is valid, and now we parse and evaluate
it correctly :^)
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
1a9518ebe3
LibJS: Implement parsing and evaluation for AssignmentPatterns
...
e.g. `[...foo] = bar` can now be evaluated :^)
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
7fc6cd6b20
LibJS: Allow 'name = value' in object literals as the spec does
...
Currently, these are _always_ a syntax error, future commits will make
it valid in certain contexts.
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
7dae25eceb
LibJS: Fix computed property ending token in binding pattern parsing
...
The syntax is supposed to be '[expression]', not '[expression['.
2021-07-11 21:41:54 +01:00
Ali Mohammad Pur
b5b84029ab
LibJS: Treat default parameter values as being in function context
...
e.g. `new.target` should be permitted in
`function foo(x = new.target) {}`.
2021-07-11 21:41:54 +01:00
Jelle Raaijmakers
0f35912bd7
TableView: Do not select input on keydown
...
In the Spreadsheet app, selecting a cell and typing something (like
"1") would create an empty editing delegate, set "1" as its value and
immediately select the entire contents of the text box. If your goal
was to type "123", that "1" was selected and will be replaced by "23".
This changes the behavior of TableView to not select the editing
delegate's contents if its creation was a result of a keydown event.
2021-07-11 22:07:57 +02:00
Gunnar Beutner
bc5d50e78b
Meta: Use gl=off for QEMU by default
2021-07-11 22:07:47 +02:00
Gunnar Beutner
8e4978fe04
Meta: Use the SDL backend for QEMU on Windows
2021-07-11 22:07:47 +02:00
Andreas Kling
2dfdaafb23
Kernel: Use "new (nothrow)" for SharedInodeVMObject
2021-07-11 21:56:26 +02:00
Brian Gianforcaro
425195e93f
Kernel: Standardize the header include style to 'include <Kernel/...>'
...
This is the overwhelming standard in the project, but there were some
cases in the kernel which were not following it, lets fix those cases!
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
6f408e7f0d
Kernel: Remove unused header includes in root kernel tree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
28cf9ffe90
Kernel: Remove unused header includes in Bus subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
187a8f6896
Kernel: Remove unused header includes in ACPI subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
661809408e
Kernel: Remove unused header includes in Heap subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
abe72ede7a
Kernel: Remove unused header includes in Graphics subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
9814082b5e
Kernel: Remove unused header includes in Interrupts subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
8211aee4b5
Kernel: Remove unused header includes in TTY subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
e18be7f5c7
Kernel: Remove unused header includes in Storage subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
da665077ce
Kernel: Remove unused header includes in Arch subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
1c43836990
Kernel: Remove unused header includes in FileSystem subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
5743561d32
Kernel: Remove unused header includes in Net subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
ea238e7ac3
Kernel: Remove unused header includes in Devices subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
b1740e410b
Kernel: Remove unused header includes in Time subtree
2021-07-11 21:37:38 +02:00
Brian Gianforcaro
9044e21ed4
Kernel: Remove unused header includes in VM subtree
2021-07-11 21:37:38 +02:00
x-yl
642aa65310
Meta: Only try to use SDL when there are multiple displays
...
SDL brings with it an annoying issue whereby trying to resize the window
before Serenity starts up prevents it from automatically resizing to fit
the screen.
This patch makes the previous behavior (i.e using the GTK backend) the
default unless SERENITY_SCREENS is greater than 1.
2021-07-11 21:16:56 +02:00
Liav A
a8c35b6a93
Kernel: Fix condition on whether to initialize a display adapter or not
2021-07-11 21:16:33 +02:00
Liav A
b882e5ff6b
Kernel/Graphics: Move Intel graphics related code to a separate folder
2021-07-11 21:16:33 +02:00
Karol Kosek
9d36369c58
SoundPlayer: Show the context menu right under the cursor
...
The context menu used the mouse position by window,
which resulted in a pop-up menu in the upper left corner of the screen.
2021-07-11 21:15:56 +02:00
Andrew Kaster
da0095855e
Kernel: Print end-inclusive ranges in MemoryManager initialization
...
This brings the physical and virtual addresses printed to dmesg more in
line with inclusive ranges printed elsewhere in the project.
2021-07-11 19:42:00 +02:00
Andrew Kaster
2ca1193d9a
Userland+Tests: Convert test_io to be LibTest based
...
Add a few extra tests as well, to make sure we don't have any future
TmpFs regressions.
2021-07-11 19:42:00 +02:00
Andrew Kaster
3f0dcd63dc
Kernel: Fix TmpFS resize behavior around INT32_MAX for 32-bit systems
...
We need some overflow checks due to the implementation of TmpFS.
When size_t is 32 bits and off_t is 64 bits, we might overflow our
KBuffer max size and confuse the KBuffer set_size code, causing a VERIFY
failure. Make sure that resulting offset + size will fit in a size_t.
Another constraint, we make sure that the resulting offset + size will
be less than half of the maximum value of a size_t, because we double
the KBuffer size each time we resize it.
2021-07-11 19:42:00 +02:00