summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-07-12LibGUI: Redraw widgets when default font changesLuK1337
2021-07-12LibGUI: Add FontsChanged event and deliver it to windows and widgetsLuK1337
2021-07-12Kernel: Fix allocating VMObject from page arrayTom
The VMObject constructor takes the size in bytes. Fixes #8670
2021-07-12Kernel: Move new process registration out of Space spinlock scopeBrian Gianforcaro
There appears to be no reason why the process registration needs to happen under the space spin lock. As the first thread is not started yet it should be completely uncontested, but it's still bad practice.
2021-07-12Kernel: Avoid unnecessary context switch when no other thread is readyTom
If no other thread is ready to be run we don't need to switch to the idle thread and wait for the next timer interrupt. We can just give the thread another timeslice and keep it running.
2021-07-12HackStudio: Disable debug specific context entriesMaurice Hieronymus
Context menu entries like evaluate expression and move execution to line action should only be enabled when a debug session is running. Otherwise they should be disabled.
2021-07-12HackStudio: Disable run button while debuggingMaurice Hieronymus
This commit disables the run button while we are in debug mode. Otherwise the stop button gets disabled when we run the program while we are in debug mode. This would prevent us from exiting the debug mode.
2021-07-11Meta: Only use -display sdl for multiple screens when it's availableGunnar Beutner
2021-07-11LibWeb: Correct parsing invalid list of declarationsSam Atkins
We were only discarding at most one token when a declaration is invalid, when we should discard all until we see a ; or EOF.
2021-07-11LibWeb: Correct escape handling in CSS TokenizerSam Atkins
Calling is_valid_escape_sequence() with no arguments hides what it is operating on, so I have removed that, so that you must explicitly tell it what you are testing. The call from consume_a_token() was using the wrong tokens, so it returned false incorrectly. This was resulting in corrupted output when faced with this code from Acid2. (Abbreviated) ```css .parser { error: \}; } .parser { } ```
2021-07-11LibWeb: Add more logging to CSS parserSam Atkins
2021-07-11LibWeb: Implement CSS::Parse::parse_nth_child_pattern()Sam Atkins
This is a modified copy of the code from Selector.cpp, to work on a TokenStream instead of a String.
2021-07-11LibWeb: Convert StyleFunctionRule.m_values to ComponentValuesSam Atkins
The input is ComponentValues, and the output is too, so storing as a String in the middle was inefficient and unnecessary.
2021-07-11LibWeb: Increase clarity with CSS token debug loggingSam Atkins
Had to adjust some places that were using Token.to_string() for non-debug-logging purposes. Changed its name to to_debug_string() to make the usage clearer.
2021-07-11LibWeb: Fix CSS attribute and ID selector parsingSam Atkins
There were several crashes here from out-of-bounds memory access.
2021-07-11LibWeb: Remove non-compliant whitespace stripping in CSS ParserSam Atkins
2021-07-11LibWeb: Fix whitespace handling in CSS selectorsSam Atkins
Whitespace marks the end of a compound-selector, no matter where it occurs. `check_for_eof_or_whitespace()` reconsumes the whitespace token for convenience.
2021-07-11LibWeb: Implement remaining CSS parse_as...() entry pointsSam Atkins
2021-07-11LibWeb: Enabling @import in new CSS parserSam Atkins
2021-07-11LibWeb: Implement CSS::parse_css_value()Sam Atkins
A lot of this is not spec-compliant and copied from the old parser. In future PRs, we can revise it.
2021-07-11LibWeb: Remove unnecessary CSS:: namespace from CSS Parser codeSam Atkins
It's feeling unwieldy having it everywhere.
2021-07-11LibWeb: Convert style declarations and at rules into CSSRulesSam Atkins
2021-07-11LibWeb: Add accessors to CSS::DeclarationOrAtRuleSam Atkins
2021-07-11LibWeb: Use TokenStream in CSS ParserSam Atkins
Each method can either be called with a TokenStream, or with no arguments to replicate the previous behaviour.
2021-07-11LibWeb: Add TokenStream class to CSS ParserSam Atkins
The entry points for CSS parsing in the spec are defined as accepting any of a stream of Tokens, or a stream of ComponentValues, or a String. TokenStream is an attempt to reduce the duplication of code for that.
2021-07-11LibWeb: Give CSS Token and StyleComponentValueRule matching is() funcsSam Atkins
The end goal here is to make the two classes mostly interchangeable, as the CSS spec requires that the various parser algorithms can take a stream of either class, and we want to have that functionality without needing to duplicate all of the code.
2021-07-11LibWeb: Rename CSS::Token::TokenType -> TypeSam Atkins
2021-07-11LibWeb: Add direct StyleComponentValueRule constructorsSam Atkins
Rather than passing a ComponentType, and then manually modifying the data fields, we now create them initialized. The constructor that takes a Token is intentionally left implicit, so that we can automatically convert when using the TokenStream later.
2021-07-11LibWeb: Merge CSS Parser's QualifiedStyleRule and AtStyleRuleSam Atkins
AtStyleRule being a subclass of QualifiedStyleRule was causing problems when trying to distinguish between them. Combining them and then distinguishing between them with a Type enum makes that check simpler, and is in line with how similar checks are done elsewhere in the parser.
2021-07-11LibWeb: Implement CSS selector parsing entry pointsSam Atkins
They're still using the same parsing code, so there's a lot of room for improvement, but it's good for now.
2021-07-11LibWeb: Add context to new CSS parser, and deprecate the old oneSam Atkins
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-11LibWeb: Bring CSS::Parser::parse_as_comma_separated_list...() to specSam Atkins
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-11LibWeb: Use EOF code point instead of Optional in CSS TokenizerSam Atkins
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-11LibWeb: Convert CSS::Parser methods to return desired typesSam Atkins
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-11LibWeb: Remove broken CSS:Parser::is_combinator()Sam Atkins
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-11LibWeb: Fix greedy CSS Tokenizer whitespace parsingSam Atkins
Whitespace parsing was too greedy, consuming the first non- whitespace character after it.
2021-07-11LibWeb: Fix Off-by-one error in CSS::Parser::next_token()Sam Atkins
2021-07-11LibWeb: Convert QualifiedStyleRule to a RefPtr type in new ParserSam Atkins
2021-07-11LibWeb: Add new CSS attribute match types to new parserSam Atkins
2021-07-11LibWeb: Add remaining CSS AttributeMatchTypesSam Atkins
This adds: - ContainsString [att*=val] - StartsWithSegment [att|=val] - StartsWithString [att^=val] - EndsWithString [att$=val] Renamed AttributeMatchType::Contains to ::ContainsWord for clarity.
2021-07-11LibWeb: Use StyleComponentValueRules for StyleBlockRule's valuesSam Atkins
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-11LibWeb: Convert some CSS parser *Rule classes to using pointersSam Atkins
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-11LibWeb: Make CSS selector parsing use StyleComponentValueRulesSam Atkins
Also added some pseudo-classes that were handled in the deprecated parser: - :disabled - :enabled - :checked - :nth-child - :nth-last-child - :not
2021-07-11LibWeb: Add convenience methods to CSS::Parser::TokenSam Atkins
Some of these will be removed later, when we move to using is() exclusively.
2021-07-11LibWeb: Make CSS::QualifiedStyleRule's prelude StyleComponentValueRuleSam Atkins
2021-07-11LibJS: Uncomment Number.isInteger() tests that now pass :^)Linus Groh
2021-07-11LibJS: Uncomment Object.{freeze,seal}() tests that now pass :^)Linus Groh
2021-07-11LibJS: Use expected() instead of syntax_error("Expected ...")Ali Mohammad Pur
2021-07-11LibJS: Rework Identifier parsing to match the spec more closelyAli Mohammad Pur
2021-07-11LibJS: Add support for binding patterns in catch clausesAli Mohammad Pur
`try { ... } catch({a=foo}) {}` is valid, and now we parse and evaluate it correctly :^)