summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-09-12LibWeb: Tidy up CSS parser loggingSam Atkins
2021-09-12LibWeb: Ignore CSS properties with vendor-prefixed valuesSam Atkins
For example, this CSS previously produced a lot of log spam about the `display` properties having invalid values: ```css .foo { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; } ``` Now, it just ignores them, because we don't need to know about it. :^)
2021-09-12LibWeb: Rename CSS::Parser::SelectorParsingResult => ParsingResultSam Atkins
I'm going to use it for non-selector purposes too, so the name needed to change.
2021-09-12LibWeb: Ignore vendor-prefixed at-rulesSam Atkins
I don't know if I have ever seen one, but they are mentioned in the spec, so we might as well do this. https://wiki.csswg.org/spec/vendor-prefixes#css-vendor-prefixes
2021-09-12LibWeb: Ignore vendor-prefixed pseudo-element/classes in selectorsSam Atkins
Our debug logging when we fail to parse a legitimate selector, is less useful when it's hidden among selectors that don't parse because they contain vendor-prefixed pseudo-elements and classes. So, now we specifically ignore these and don't produce a log message.
2021-09-12LibWeb: Return SelectorParsingResult from all selector parsing functionsSam Atkins
This will allow us to know why a selector failed to parse, in situations where that matters. (Like, when a selector includes vendor prefixes...)
2021-09-12LibWeb: Reduce CSS_PARSER_DEBUG spamSam Atkins
Having every single function emit a debug message was useful at the time, but now makes it impossible to spot important things.
2021-09-12LibWeb: Ignore CSS properties with other people's vendor prefixesSam Atkins
This removes some `Property '-webkit-foo' has no value.` log spam. :^)
2021-09-12LibGUI: Remove Indices with dangling FileSystemModel::Node on deletionItamar
When a file deletion event happens, we now iterate over all views of the FileSystemModel and remove any selection & cursor indices that hold dangling references do the deleted filesystem node. This fixes #9602.
2021-09-12LibWeb: Implement CSSStyleDeclaration.getPropertyValue(property)Andreas Kling
2021-09-12LibWeb: Log a FIXME when unimplemented computed style is requestedAndreas Kling
This will help us know which properties to compute next. :^)
2021-09-12LibWeb: Add ComputedCSSSstyleDeclaration and support 2 properties :^)Andreas Kling
getComputedStyle(element) now returns a ComputedCSSStyleDeclaration object, which is a live view of the computed style of a given element. This works by ComputedCSSStyleDeclaration being a wrapper around an element pointer. When you ask it for a CSS property, it gets the latest computed style values from the element and returns them as a CSS::StyleProperty object. This first cut adds support for computed 'color' and 'display'. In case the element doesn't have a corresponding node in the layout tree, we fall back to using specified style instead. This is achieved by performing an on-the-fly style resolution for the individual element and then grabbing the requested property from that resolved style.
2021-09-12Base: Add a very simple test page for getComputedStyle()Andreas Kling
2021-09-12LibWeb: Make CSSStyleDeclaration an abstract classAndreas Kling
This patch moves the CSS property+value storage down to a new subclass of CSSStyleDeclaration called PropertyOwningCSSStyleDeclaration. The JavaScript wrapper for CSSStyleDeclaration now calls virtual functions on the C++ object. This is preparation for supporting computed style CSSStyleDeclaration objects which won't have internal property storage, but rather an internal element pointer. :^)
2021-09-12CI: Batch master builds in Azure DevOps to help with CI latencyBrian Gianforcaro
The CI system often develops a significant backlog when we have a lot of PRs in the queue, and folks are pushing to master directly, or other PRs are getting merged. The individual pushes to master or PR merges to master each end up creating a dedicated master CI build. These builds complete for machines with the normal PR validation builds. To aid with this, Azure DevOps has a feature where they allow the CI builds to "batch" multiple changes together, instead of running multiple builds for each change. Azure DevOps defines batching as: When a pipeline is running, the system waits until the run is completed, then starts another run with all changes that have not yet been built. Documentation Reference: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#batching-ci-runs
2021-09-12LibGUI: Make the Open button always active in the OpenFolder modeKarol Kosek
We can just use the current opened directory as a path in that mode. :^)
2021-09-12LibGUI: Enable/Disable the Open button on text change in FilePickerKarol Kosek
Prior this change, the button was updated on user selection change in the file view. This isn't quite right, as you could remove the text from the text box or (even worse) start typing a filename there and the button state wouldn't change.
2021-09-12Kernel: Add a class to wrap aarch64 MIDR_EL1Nico Weber
We'll need part_num() to determine the MMIO address base. It's 0x3F000000 on rpi3 but 0xFE000000 on rpi4.
2021-09-12Kernel: Put boot.S first in aarch64 Prekernel source listNico Weber
The better fix is to have a linker script. We'll need this to set the entry point to 0x80000 for bare-metal builds anyways. But I'd like to get some UART output in qemu before I add this (otherwise I can't check if the bare-metal version does anything), so put in this temporary kludge for now.
2021-09-12Kernel: Define __stack_chk_guard for aarch64 PrekernelNico Weber
Needed for functions that have local variables. In time we need to share this between aarch64 and intel, but while we figure out what exactly the aarch64 Prekernel should do, let's duplicate this.
2021-09-12Kernel: Build Prekernel with -fno-threadsafe-staticsNico Weber
Else, function-local statics create calls to __cxa_guard_acquire / __cxa_guard_release on aarch64, which we don't (yet?) implement. Since Prekernel is single-threaded, just sidestep that for now.
2021-09-12Assistant: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-123DFileViewer: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-12Fire: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-12Cube: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-12LibJS: Use ElapsedTimer::start_new();Brian Gianforcaro
2021-09-12ChessEngine: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-12Shell: Use ElapsedTimer::start_new()Brian Gianforcaro
2021-09-12Utilities: Use ElapsedTimer::start_new in allocateBrian Gianforcaro
2021-09-12Utilities: Use ElapsedTimer::start_new() in disk_bechmarkBrian Gianforcaro
2021-09-12LibCore: Add factory to create and start a new ElapsedTimerBrian Gianforcaro
Simplifies one of the main usage patterns of the timer class.
2021-09-12Core/SecretString: Use `memset_s` instead of `explicit_bzero` on MacOSMustafa Quraish
MacOS doesn't have `explicit_bzero`, so this was causing errors when compiling LibCore on the host.
2021-09-12AK+LibCore: Standardize on AK_OS_MACOS instead of __APPLE__Brian Gianforcaro
We use our custom platform definitions in most places, remove the few remaining places we weren't using `AK_OS_MACOS`.
2021-09-12LibWeb: Implement window.matchMedia()Linus Groh
2021-09-12LibWeb: Start implementing the MediaQueryList interfaceLinus Groh
2021-09-12Kernel: Use AK::to_underlying in lock rank trackingBrian Gianforcaro
AK::to_underlying simplifies the code a bit, instead of having to manually cast to the underlying type.
2021-09-12PixelPaint: Let PickerTool optionally sample all layersMustafa Quraish
Previously, only the color from the selected layer would be picked. Now, we allow the user to select if they want to sample the color from all layers.
2021-09-12LibWeb: Parse CSS selectors with no space before a combinatorSam Atkins
Previously selectors like `.foo>.bar` did not parse, because there is no whitespace between `.foo` and `>`. Now we correctly parse these. :^)
2021-09-12Base: Add `~/.config/PixelPaint.ini` sample fileMustafa Quraish
This is just a config file with the default options that PixelPaint recognizes and reads so far. Adding this in since the options are not really documented anywhere so at least the user can now know what options are available.
2021-09-12PixelPaint: Write changed settings back to config fileMustafa Quraish
In a previous commit we read default values from a commit file, this commit now also writes back any changes to those settings made by the user. Persistent settings always feel good :^)
2021-09-12PixelPaint: Use config to get default values for Guides/Rulers/PixelGridMustafa Quraish
Someone may not want to have these things enabled by default on every startup, but toggle them on manually. So instead of having hard-coded everything to be enabled by default, we now query LibConfig to find out what the preference is. These values can still always be changed from the Menus / with shortcuts. It's not really ideal querying LibConfig twice, but when initializing the menu we may not have an active editor, so we need to get the value for both the menu checkbox as well as the internal property. This shouldn't be too much of a big deal since LibConfig caches the values anyway :^)
2021-09-12PixelPaint: Allow panning when right-clicking with MoveToolMustafa Quraish
The MoveTool now lets you pan if you're dragging with a right click. Previously, right-clicking did not perform any actions at all, so this isn't removing any old functionality.
2021-09-12PixelPaint: Add setter/getter for ImageEditor::m_pan_originMustafa Quraish
This allows us to use tools to change the panned position, since right now this is only accessible internally to the editor.
2021-09-12LibWeb: Log resource loading success, failure, and durationBrian Gianforcaro
When debugging why your website isn't loading in LibWeb the resource loader is a blind spot as we don't have much logging except on certain error paths. This can lead to confusing situations where the browser just appears to hang. This changes attempts to fix that by adding common success and failure logging handlers so all resource loading outcomes can are logged.
2021-09-12LibWeb: Start tracking elapsed time when a resource is loadedBrian Gianforcaro
2021-09-12LibCore: Enable elapsed time as AK::Time on a ElapsedTimerBrian Gianforcaro
2021-09-12LibWeb: Include headers HashMap in the LoadRequest::hash() calculationBrian Gianforcaro
2021-09-12AK: Add the ability to hash the contents of a AK::HashMapBrian Gianforcaro
2021-09-12LibCore: Make Account::authenticate take a SecretStringBrian Gianforcaro
To encourage users to use the SecretString API, change the API so that Account::authenticate only accepts a SecretString.
2021-09-12LibCore: Make get_password return SecretString instead of StringBrian Gianforcaro
We shouldn't let secrets sit around in memory, as they could potentially be retrieved by an attacker, or left in memory during a core dump.