summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-05-23Browser: Add "Paste & Go" action to the location boxFalseHonesty
2020-05-23LibWeb: Teach HTMLTokenizer how to tokenize attributesAndreas Kling
Properly tokenize single-quoted, double-quoted and unquoted attributes!
2020-05-23LibJS: Add missing exception check to ArrayPrototype's for_each_item()Linus Groh
Object::get_by_index() cannot throw for positive indices *right now*, but once we implement descriptors for array index properties, it can.
2020-05-23LibJS: Fix Array.prototype.lastIndexOf() implementationLinus Groh
2020-05-23LibJS: Treat missing arg in Array.prototype.{indexOf,lastIndexOf}() as undefinedLinus Groh
2020-05-22AK: Fix .. handling in FileSystemPathSergey Bugaev
We shouldn't just drop leading ..-s for relative paths. At the same time, we should handle paths like ../foo/../../bar correctly: the first .. after the foo cancels out the foo, but the second one should get treated as a leading one and not get dropped. Note that since this path resolution is purely lexical, it's never going to be completely correct with respect to symlinks and other filesystem magic. Better don't use it when dealing with files.
2020-05-22LibC: Add (empty) netinet/tcp.h backLinus Groh
This file is required for building the git port. It was already added before and then removed again when the CI script for license header checks was added as it seemed irrelevant.
2020-05-22LibWeb: Minor tweaks to HTMLToken declarationAndreas Kling
2020-05-22Userland: Add a missing license headerAndreas Kling
2020-05-22LibWeb: Begin work on a spec-compliant HTML parserAndreas Kling
In order to actually view the web as it is, we're gonna need a proper HTML parser. So let's build one! This patch introduces the Web::HTMLTokenizer class, which currently operates on a StringView input stream where it fetches (ASCII only atm) codepoints and tokenizes acccording to the HTML spec tokenization algo. The tokenizer state machine looks a bit weird but is written in a way that tries to mimic the spec as closely as possible, in order to make development easier and bugs less likely. This initial version is far from finished, but it can parse a trivial document with a DOCTYPE and open/close tags. :^)
2020-05-22LibWeb: Move Attribute to its own header fileAndreas Kling
This will allow us to use it without including Element.h
2020-05-22LibC: Sync file position when dropping read ahead bufferSergey Bugaev
When we flush a FILE, we behave differently depending on whether we reading from the file or writing to it: * If we're writing, we actually write out the buffered data. * If we're reading, we just drop the buffered (read ahead) data. After flushing, there should be no additional buffered state stdio keeps about a FILE, compared to what is true about the underlying file. This includes file position (offset). When flushing writes, this is taken care of automatically, but dropping the buffer is not enough to achieve that when reading. This commit fixes that by seeking back explicitly in that case. One way the problem manifested itself was upon fseek(SEEK_CUR) calls, as the position of the underlying file was oftentimes different to the logical position of the FILE. Since FILE::seek() already calls FILE::flush() prior to actually modifying the position, fixing FILE::flush() to sync the positions is enough to fix that issue.
2020-05-22Kernel: Return ESPIPE when seeking an unseekableSergey Bugaev
This is what Dr. POSIX says it should do.
2020-05-22Browser: Pop up a context menu when requested on a bookmark buttonFalseHonesty
This right click context menu currently allows for the removal of bookmarks as well as opening them in a new tab.
2020-05-22LibGUI: Add hook when a context menu is requested on a buttonFalseHonesty
2020-05-22LibJS: Make Array.prototype.{join,toString}() genericLinus Groh
2020-05-22LibJS: Make Array.prototype.pop() genericLinus Groh
2020-05-22LibJS: Make Array.prototype.push() genericLinus Groh
2020-05-22LibJS: Let Array.prototype.join() ignore additional argumentsLinus Groh
I.e. array.join("x", "y", "z") === array.join("x") rather than array.join("x", "y", "z") === array.join()
2020-05-22PixelPaint: Make the EllipseTool previews work while zoomed inAndreas Kling
2020-05-22PixelPaint: Make the RectangleTool previews work while zoomed inAndreas Kling
2020-05-22PixelPaint: Make the LineTool previews work while zoomed inAndreas Kling
2020-05-22Kernel: Remove some now-unnecessary casts in ProcFSAndreas Kling
Now that we can pass arbitrary integer types to the JSON serialization code, we don't have to cast to u32 as much!
2020-05-22AK: Make JsonValue and JsonObjectSerializer speak int/long/long longAndreas Kling
While width-oriented integer types are nicer from the programmer's perspective, we have to accept that C++ thinks in int/long/long long.
2020-05-22Kernel: Remove outdated FIXME's in the static ACPI parserAndreas Kling
We no longer blindly use PAGE_SIZE here. :^)
2020-05-22Kernel: Simplify scanning BIOS/EBDA and MP parser initializationAndreas Kling
Add a MappedROM::find_chunk_starting_with() helper since that's a very common usage pattern in clients of this code. Also convert MultiProcessorParser from a persistent singleton object to a temporary object constructed via a failable factory function.
2020-05-22Kernel: Add convenient ways to map whole BIOS and EBDA into memoryAndreas Kling
This patch adds a MappedROM abstraction to the Kernel VM subsystem. It's basically the read-only byte buffer equivalent of a TypedMapping. We use this in the ACPI and MP table parsers to scan for interesting stuff in low memory instead of doing a bunch of address arithmetic.
2020-05-22Kernel: Clean up and simplify MP table parsingAndreas Kling
Use map_typed<T> to map physically addressed structs into kernel VM. This is so much easier than doing address arithmetic everywhere. :^)
2020-05-22LibJS: Add object literal getter/setter shorthandMatthew Olsson
Adds support for the following syntax: let foo = { get x() { // ... }, set x(value) { // ... } }
2020-05-22Ext2FS: Fix indirect-blocks iterationYonatan Goldschmidt
For singly-indirect blocks, "callback" is just "add_block". For doubly-indirect blocks, "callback" is the lambda function iterating on singly-indirect blocks: so instead of adding itself to the list, the doubly-indirect block will add all its childs, but they add themselves again when they run the callback of singly-indirect blocks. And nothing adds the doubly-indirect block itself :( This leads to a double free of all child blocks of the doubly-indirect block, which is the failed assert described in #1549. Closes: #1549.
2020-05-22Build: Add DockerfileYonatan Goldschmidt
2020-05-22LibJS: Disallow multiple parameters in paren-less arrow functionLinus Groh
Fixes #2323.
2020-05-21PixelPaint: Rename original_event => image_eventAndreas Kling
These events are in image coordinates, not really original coordinates.
2020-05-21LibJS: Add getter/setter supportMatthew Olsson
This patch adds a GetterSetterPair object. Values can now store pointers to objects of this type. These objects are created when using Object.defineProperty and providing an accessor descriptor.
2020-05-21LibJS: Refactor Array.prototype callback functions and make them genericLinus Groh
2020-05-21LibJS: Treat missing arg in Array.prototype.includes() as undefinedLinus Groh
2020-05-21LibLine: Hide debug output behind SUGGESTIONS_DEBUG defineLinus Groh
2020-05-21Browser: Pop up a context menu when one is requested on a tabFalseHonesty
Currently, the tab's context menu only has options to reload and close, but this patch allows for those options to be quickly expanded!
2020-05-21LibGUI: Add hook when a context menu is requested on a tabFalseHonesty
2020-05-21LibGUI: Fix view column auto-sizing of icon-only columnsAndreas Kling
For icon columns, just use the item height as the auto width for now. This gives us 16x16 icons, which is always what we want anyway.
2020-05-21LibGUI: Remove Model::row_name() since nothing used itAndreas Kling
2020-05-21LibGUI: Make all views use CenterLeft as the default text alignmentAndreas Kling
If a model doesn't specify a text alignment for a given field, we now fall back to CenterLeft. This will look better than Center in the vast majority of cases.
2020-05-21LibGUI: Get rid of Model::ColumnMetadata and always use auto-sizingAndreas Kling
Auto-sizing of view columns is now enabled by default. This removes the last remaining need for ColumnMetadata, so this patch gets rid of it.
2020-05-21LibGUI: Replace ColumnMetadata::sortable => Model::is_column_sortable()Andreas Kling
Now there's only one thing left in ColumnMetadata: the initial width.
2020-05-21LibGUI: Add Model::Role::TextAlignment and remove from ColumnMetadataAndreas Kling
2020-05-21Applications: Sort CMakeLists.txt alphabetically :^)Andreas Kling
2020-05-21LibGUI: Models should always specify font via Model::Role::FontAndreas Kling
This gets rid of one field in ColumnData. The goal is to get rid of all fields and lose ColumnData entirely.
2020-05-21LibJS: Add Array.prototype.everyLuke
2020-05-21LibGUI: Always paint the cursor visible when focusing a TextEditorAndreas Kling
If the cursor happened to be blinking in the invisible state, it would take 500ms before we actually see the cursor in a newly focused editor widget. This patch makes it show up right away.
2020-05-21LibGUI: Focus the first focusable widget added to a windowAndreas Kling
It feels really awkward if nothing is focused when opening a window.