summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-10FileManager: Added menu to show dotfiles in directory context menuKesse Jones
2020-10-10LibWeb: Create LayoutNodes for each SVG elementMatthew Olsson
This brings the SVG API closer to the rest of LibWeb
2020-10-10LibWeb: Add a basic SVGContext object, add to PaintContextMatthew Olsson
This will be used to transmit any svg-relevant data between svg nodes. This is prep for moving a lot of the SVG logic into Layout nodes.
2020-10-10LibWeb: Add {before,after}_children_paint() methodsMatthew Olsson
This allows layout nodes to do some setup before their children paint, and cleanup after their children paint. This will be used for SVG components, where their attributes (like stroke width, fill color, etc) need to be correctly propogated to layout nodes down the line.
2020-10-10LibGfx: Add ability to get a bounding box from a PathMatthew Olsson
2020-10-10LibWeb: Cache the default font if we fail to find the specified fontLuke
This is a hack to stop chewing CPU on sites that use a font we don't have and have a lot of text or changes text often. Examples are the Serenity 2nd birthday page and the JS specification.
2020-10-10LibJS: Don't change offset when reconfiguring property in unique shapeLinus Groh
When changing the attributes of an existing property of an object with unique shape we must not change the PropertyMetadata offset. Doing so without resizing the underlying storage vector caused an OOB write crash. Fixes #3735.
2020-10-10FileManager: Fix file creation error messageLinus Groh
s/String::format/String::formatted/ - the error message was not being formatted properly.
2020-10-10HackStudio: Fix running JavaScript filesLinus Groh
s/String::format/String::formatted/ - the command was not being formatted properly.
2020-10-10Spreadsheet: Fix rendering of documentation examplesLinus Groh
s/String::format/String::formatted/ - the Markdown source was not being formatted properly.
2020-10-09LibWeb: Don't collapse blocks into the previous sibling's paddingAndreas Kling
We were forgetting to account for the padding-bottom of the previous relevant sibling when placing blocks vertically.
2020-10-09LibWeb: Ignore non-URL values for background-image for nowAndreas Kling
2020-10-09HackStudio: Use new format functions.asynts
2020-10-09LibGfx: Add formatter for Rect.asynts
2020-10-09AK: Add formatter for LexcialPath.asynts
2020-10-09AK+Format: Remove new_dbg(dbg) and raw_dbg.asynts
We are adding the process name as prefix and a newline as suffix to any message written to debug. Thus, the following doesn't make any sense: for (u8 byte : bytes) dbg("{:02x} ", byte); dbgln(); Which function call would put the prefix? This doesn't make any sense, thus these functions must go. The example above could be converted to: StringBuilder builder; for (u8 byte : bytes) builder.appendff("{:02x} ", byte); dbgln("{}", builder.build());
2020-10-09LibWeb: In the HTML tokenizer, pretty up ON_WHITESPACE a tiny bitNico Weber
No behavior change.
2020-10-08Endian: constexpr constructors and conversion operatorsLenny Maiorani
Problem: - Constructors and conversion operators are not `constexpr`, but they can be. - `constexpr` is needed here so that other classes can add `constexpr` evaluation. Solution: - Add the `constexpr` keyword to the constructors and conversion operators. - Add `static_assert` tests which ensure the capability works.
2020-10-08LibJS: break or continue with nonexistent label is a syntax errorMatthew Olsson
2020-10-08AK: Make StringView hashableMatthew Olsson
2020-10-08LibJS: Fix return statements not working properly in loopsMatthew Olsson
Previously, when a loop detected an unwind of type ScopeType::Function (which means a return statement was executed inside of the loop), it would just return undefined. This set the VM's last_value to undefined, when it should have been the returned value. This patch makes all loop statements return the appropriate value in the above case.
2020-10-08LibJS: Handle unwinding in while and do-while statementsMatthew Olsson
For some reason, this was never added. So something like "while (true) { return }" would loop infinitely.
2020-10-08LibGUI: Make arrow-left/right with selection move cursor to edge of selectionNico Weber
This matches behavior on Linux, macOS, Windows, and it makes it possible to hit ctrl-L arrow-right ctrl-backspace to edit the last component of an URL in browser, or of the current path in File Manager. Also make it so that ctrl-left/right does a word movement that starts at the edge of the selection. This matches Linux and macOS, but not Windows (which instead does a word movement relative to the cursor, not the selection edge).
2020-10-08LibWeb: Apply the CSS background-image property to elementsAndreas Kling
Previously we'd only pick up background-image when it was part of the background shorthand. CSS property application remains hackish, lots of room for improvement in this area. :^)
2020-10-08LibGUI: Set initial AbstractButton background/foreground color rolesAndreas Kling
Widgets should respect the background/foreground roles in a way that makes sense for the widget.
2020-10-08Demos: Stop using Widget::foreground_color()Andreas Kling
2020-10-08LibWeb: Handle theme change event in OutOfProcessWebViewLinus Groh
2020-10-08Help: Replace InProcessWebView with OutOfProcessWebViewLinus Groh
2020-10-08LibWeb: Add OutOfProcessWebView::load_empty_document()Linus Groh
This is cheating a little bit as we don't set the document to a nullptr as in InProcessWebView, but the observable outcome is the same. :^)
2020-10-08HackStudio: Replace InProcessWebView with OutOfProcessWebViewLinus Groh
2020-10-08html: Replace InProcessWebView with OutOfProcessWebViewLinus Groh
2020-10-08html: Create URL from filename, if anyLinus Groh
This makes it possible for the WebView to resolve relative paths in documents loaded from a file.
2020-10-08TextEditor: Replace InProcessWebView with OutOfProcessWebViewLinus Groh
2020-10-08LibWeb: Register the OutOfProcessWebView widgetLinus Groh
2020-10-08LibWeb: Add OutOfProcessWebView::load_html()Linus Groh
2020-10-08LibWeb: Handle PageClient::page_did_change_title() in Frame::set_document()Linus Groh
2020-10-08LibWeb: Add FrameLoader::load_html()Linus Groh
This moves responsibility for parsing and loading the document from InProcessWebView to FrameLoader, so can be re-used easily.
2020-10-08LibJS: Disallow 'continue' & 'break' outside of their respective scopesMatthew Olsson
'continue' is no longer allowed outside of a loop, and an unlabeled 'break' is not longer allowed outside of a loop or switch statement. Labeled 'break' statements are still allowed everywhere, even if the label does not exist.
2020-10-08Build: Emit paths in macros and debug sections relative to repo rootTibor Nagy
To avoid including paths from the build environment in the binaries. A step towards having reproducible builds.
2020-10-08LibJS: Disallow 'return' outside of a functionMatthew Olsson
2020-10-08LibJS: Use PropertyName::from_value() in ↵Linus Groh
MemberExpression::computed_property_name() No need for duplicating this logic.
2020-10-08LibJS: Fix PropertyName::from_value() for negative and non-int numbersLinus Groh
It was converting *any* number to an i32 index, which obviously is not correct for negative ints, doubles, infinity and nan. Fixes #3712.
2020-10-08TCP: Remove unnecessarily defined constructor and destructorLenny Maiorani
Problem: Defining the destructor violates the "rule of 0" and prevents the copy/move constructor/assignment operators from being provided by the compiler. Solution: Change the constructor and destructor to be the default compiler-provided definition.
2020-10-08DHCPClient: Remove unused UPDSocket.h includeNico Weber
2020-10-08Kernel: Add some CPU feature flags related to TSCNico Weber
In case we want to rely more on TSC in time keeping in the future, idk This adds: - RDTSCP, for when the RDTSCP instruction is available - CONSTANT_TSC, for when the TSC has a constant frequency, invariant under things like the CPU boosting its frequency. - NONSTOP_TSC, for when the TSC doesn't pause when the CPU enters sleep states. AMD cpus and newer intel cpus set the INVSTC bit (bit 8 in edx of extended cpuid 0x8000000008), which implies both CONSTANT_TSC and NONSTOP_TSC. Some older intel processors have CONSTANT_TSC but not NONSTOP_TSC; this is set based on cpu model checks. There isn't a ton of documentation on this, so this follows Linux terminology and http://blog.tinola.com/?e=54 CONSTANT_TSC: https://github.com/torvalds/linux/commit/39b3a7910556005a7a0d042ecb7ff98bfa84ea57 NONSTOP_TSC: https://github.com/torvalds/linux/commit/40fb17152c50a69dc304dd632131c2f41281ce44 qemu disables invtsc (bit 8 in edx of extended cpuid 0x8000000008) by default even if the host cpu supports it. It can be enabled by running with `SERENITY_QEMU_CPU=host,migratable=off` set.
2020-10-08AK: Use new format functions.asynts
2020-10-08Demos: Use new format functions.asynts
2020-10-08AK: Add formatter for StringImpl.asynts
2020-10-08Kernel: Add KBufferBuilder::appendff.asynts
Why does this class exist anyways? What is wrong with using StringBuilder?
2020-10-08AK+Format: Make it possible to format characters as integers.asynts