summaryrefslogtreecommitdiff
path: root/Userland
AgeCommit message (Collapse)Author
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 :^)
2021-07-11LibJS: Implement parsing and evaluation for AssignmentPatternsAli Mohammad Pur
e.g. `[...foo] = bar` can now be evaluated :^)
2021-07-11LibJS: Allow 'name = value' in object literals as the spec doesAli Mohammad Pur
Currently, these are _always_ a syntax error, future commits will make it valid in certain contexts.
2021-07-11LibJS: Fix computed property ending token in binding pattern parsingAli Mohammad Pur
The syntax is supposed to be '[expression]', not '[expression['.
2021-07-11LibJS: Treat default parameter values as being in function contextAli Mohammad Pur
e.g. `new.target` should be permitted in `function foo(x = new.target) {}`.
2021-07-11TableView: Do not select input on keydownJelle Raaijmakers
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-11SoundPlayer: Show the context menu right under the cursorKarol Kosek
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-11Userland+Tests: Convert test_io to be LibTest basedAndrew Kaster
Add a few extra tests as well, to make sure we don't have any future TmpFs regressions.
2021-07-11Utilities+Tests: Convert test_efault to be LibTest basedAndrew Kaster
This test exposed a kernel panic in is_user_range calculations, so let's convert it to be a LibTest test so we can prevent regressions in mmap, the page allocator, and the memory manager.
2021-07-11DynamicLoader+LibC: Make _start a naked functionHendiadyoin1
2021-07-11LibWeb: Fix syntax for Table testAdam Hodgen
The parser fixes this by inserting the <tr> tags, but for this test it's better to have perfect syntax - we're not testing the parser here.
2021-07-11LibWeb: Fix HTMLTable Element attributesAdam Hodgen
`Element::tag_name` return an uppercase version of the tag name. However the `Web::HTML::TagNames` values are all lowercase. This change fixes that using `Element::local_name`, which returns a lowercase value.
2021-07-11LibTTF: Port width calculation changes from BitmapFontLuK1337
2021-07-11LibGfx: Try to get TTF font when query is not in name->font mapLuK1337
This change allows us to select TTF fonts in display settings again :^)
2021-07-11TextEditor: Show an error message when opening a file failedTimothy
2021-07-11TextEditor: Open files with ReadOnly when we're just reading themGunnar Beutner
2021-07-11TextEditor: Avoid calling realpath()Gunnar Beutner
We can't use realpath() at that point because we've already called unveil(nullptr, nullptr).
2021-07-11Pong: Only paint areas that needs to be updatedKarol Kosek
2021-07-11TextEditor: Show an error dialog when failing to open/save a fileAdam Hodgen
2021-07-11FileSystemAccessServer: Return user_picked_value even on errorAdam Hodgen
If a user picks a file which can't be opened for some reason, we should still return the value, so client applications can report the error along with the chosen filepath.
2021-07-10FlappyBug: Only paint areas which need to be paintedTimothy Flynn
Drawing the entire PNG background is rather expensive. Instead, only draw the rects that are updating.
2021-07-10LibCpp: Use fast_is<T> and verify_cast<T> to replace C-style castsItamar
Thanks to @alimpfard for suggesting this :)
2021-07-10LibCpp: Make the fields of AST node types privateItamar
Previously almost all fields were public and were directly accessed by the Parser and CppComprehensionEngine. This commit makes all fields of AST node types private. They are now accessed via getters & setters.
2021-07-10LibVideo/VP9: Implement MV reading & rectify MV storage issuesFalseHonesty
With this patch we are finally done with section 6.4.X of the spec :^) The only parsing left to be done is 6.5.X, motion vector prediction. Additionally, this patch fixes how MVs were being stored in the parser. Originally, due to the spec naming two very different values very similarly, these properties had totally wrong data types, but this has now been rectified.
2021-07-10LibVideo/VP9: Finish implementing block decoding (6.4.4)FalseHonesty
Though technically block decoding calls into some other incomplete methods, so it isn't functionally complete yet. However, we are very close to being done with the 6.4.X sections :)
2021-07-10LibVideo/VP9: Implement parsing Token and MoreCoefs treesFalseHonesty
These elements were being used in the new tokens implementation, so support for them in the TreeParser has been added. Additionally, this uncovered a bug where the nonzero contexts were being cleared with the wrong size.
2021-07-10LibVideo/VP9: Implement token parsing (6.4.24-6.4.26)FalseHonesty
Note that this now requires a couple new syntax types to be parsed in the TreeParser, so a follow-up commit will implement that behavior.
2021-07-10LibVideo/VP9: Implement sections 6.1.2 and 8.4.1-8.4.4FalseHonesty
These section implement the behavior to refresh the probability tables after parsing a frame.
2021-07-10LibVideo/VP9: Begin reference frame update process (8.10)FalseHonesty
This was required for correctly parsing more than one frame's height/width data properly. Additionally, start handling failure a little more gracefully. Since we don't fully parse a tile before starting to parse the next tile, we will now no longer make it past the first tile mark, meaning we should not handle that scenario well.
2021-07-10LibVideo/VP9: Rename Decoder -> Parser & create an actual Decoder classFalseHonesty
The class that was previously named Decoder handled section 6.X.X of the spec, which actually deals with parsing out the syntax of the data, not the actual decoding logic which is specified in section 8.X.X. The new Decoder class will be in charge of owning and running the Parser, as well as implementing all of the decoding behavior.
2021-07-10LibVideo/VP9: Start parsing residuals (6.4.21-6.4.23)FalseHonesty
Additionally, this uncovered a couple bugs with existing code, so those have been fixed. Currently, parsing a whole video does fail because we are now using a new calculation for frame width, but it hasn't been fully implemented yet.
2021-07-10LibVideo/VP9: Refactor how above & left contexts are stored & clearedFalseHonesty
These make more sense as Vectors, and it makes it much easier to manage their sizing.
2021-07-10LibVideo/VP9: Specify which spec section defines certain behaviorsFalseHonesty
2021-07-10LibVideo/VP9: Clean up formatting & use range-based for loopsFalseHonesty
2021-07-10LibVideo/VP9: Implement simple FIXMEs that use now supported dataFalseHonesty