Commit graph

34581 commits

Author SHA1 Message Date
thankyouverycool
6704bc0072 CharacterMap: Add a ListView to sort glyphs by their Unicode block 2022-02-15 10:13:19 -05:00
thankyouverycool
170afc2f47 LibGUI: Allow GlyphMapWidget to filter by code point ranges 2022-02-15 10:13:19 -05:00
thankyouverycool
5658524aa3 Tests: Add Unicode tests for CharacterType block properties 2022-02-15 10:13:19 -05:00
thankyouverycool
0505e031f1 Meta+LibUnicode: Download and parse Unicode block properties
This parses Blocks.txt for CharacterType properties and creates
a global display array for use in apps.
2022-02-15 10:13:19 -05:00
Andreas Kling
32b8023ad1 LibWeb: Don't delay document load event forever with cached style sheets
If we try to <link> a stylesheet that was already cached, we'll get a
synchronous resource_did_load() callback. Because of this, it's
necessary to set up the document load event delayer *before* calling
set_resource(), as otherwise we'd be stuck without a load event forever.
2022-02-15 14:14:02 +01:00
Andreas Kling
9f02afd8fe LibWeb: Don't delay document load event forever with cached CSS imports
If we try to @import a stylesheet that was already cached, we'll get a
synchronous resource_did_load() callback. Because of this, it's
necessary to set up the document load event delayer *before* calling
set_resource(), as otherwise we'd be stuck without a load event forever.
2022-02-15 14:14:02 +01:00
Andreas Kling
4708a65160 LibWeb: Force a relayout when scrolling to anchor
This ensures that the layout information is current, even when the
scroll request happens immediately upon page load.

This fixes an issue where reloading ACID2 wouldn't scroll down to the
"#top" anchor point.
2022-02-15 14:14:02 +01:00
Andreas Kling
1b2e1c19e1 LibWeb: Don't trigger page load for fragment navigation within same URL 2022-02-15 13:51:17 +01:00
Andreas Kling
b34dd0fb24 LibWeb: Repaint entire viewport after document layout
This fixes an issue with the eyes on ACID2 not appearing until the
page is repainted after loading.
2022-02-15 13:41:19 +01:00
Vitaly Dyachkov
93f656119c LibIPC: Always shutdown() the Connection if reached EOF 2022-02-15 12:27:21 +01:00
electrikmilk
8fea7d9752 Spreadsheet: Improve 'Functions Help' button
Add icon and tooltip to 'Functions Help' button.
2022-02-15 12:16:23 +01:00
electrikmilk
ffa140c613 Spreadsheet: Insert missing icons
Add icons where they are missing.
2022-02-15 12:16:23 +01:00
electrikmilk
df084b48e6 Base: Add color to Spreadsheet file type icon 2022-02-15 12:16:23 +01:00
Lady Gegga
92aa1a3da0 Base: Add Old Hungarian to font Katica Regular 10
10C80-10CFF https://www.unicode.org/charts/PDF/U10C80.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
6c3121ceb6 Base: Add Geometric Shapes Extended to font Katica Regular 10
1F7CC, 1F7D0, 1F7D5-1F7D8, 1F7F0, 1F780-1F783
https://www.unicode.org/charts/PDF/U1F780.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
1e4a11e8a4 Base: Add Transport and Map Symbols to font Katica Regular 10
1F6A9, 1F6AA, 1F6AB, 1F6B9, 1F6BF, 1F6C6, 1F6C7, 1F6CF, 1F6E1, 1F6E3,
1F6F7, 1F6A1, 1F6F6, 1F6F8, 1F6A0, 1F69D, 1F69E, 1F69F, 1F682, 1F683,
1F6A2
https://www.unicode.org/charts/PDF/U1F680.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
183b1c3b4e Base: Add Ornamental Dingbats to font Katica Regular 10
1F67C-1F67F, 1F67A, 1F676-1F679, 1F672, 1F673, 1F670
https://www.unicode.org/charts/PDF/U1F650.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
13db9d6b06 Base: Add Khojki characters to font Katica Regular 10
1123A, 1123B https://www.unicode.org/charts/PDF/U11200.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
6f6a760cc4 Base: Add Hatran characters to font Katica Regular 10
108E0-108FF https://www.unicode.org/charts/PDF/U108E0.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
6f3829e891 Base: Add Lao character to font Katica Regular 10
0ED0 https://www.unicode.org/charts/PDF/U0E80.pdf
2022-02-15 12:13:23 +01:00
Lady Gegga
60c8bdea7c Base: Allow font-files be "Open with" Hex Editor
This is way more useful then the default "Open with" option which
is Text Editor.
2022-02-15 12:13:23 +01:00
Lady Gegga
1b64ee43e8 Base: Add 10CD1E-10CD21 emojis to PUA codepoints
10CD1E (Yakmeasure), 10CD1F (Yakcowboy), 10CD20 (Yakspeed),
10CD21 (Yakmando)
2022-02-15 12:13:23 +01:00
electrikmilk
ba0a5a2cd3 Base+Piano: Insert missing icons into menubar
Inserts icons for 'Export', 'Add Track' and 'Next Track'.
2022-02-15 12:10:14 +01:00
Anonymous
f55d7bf6f3 LibJS: Fix cases where we incorrectly allowed 'in' in for loops
We needed to propagate the forbidden token set to all parsing functions
that can call back into parse_expression.
2022-02-15 10:31:41 +00:00
ForLoveOfCats
5da3063a39 DisplaySettings: Include aspect ratio in resolution list text 2022-02-15 10:44:37 +01:00
michiell1
2f555f1b7d LibWeb: Compute some height of BlockFormattingContexts earlier
In some cases the height of the parent is needed in computations
of the height for the child. This patch attempts to fix these cases.
2022-02-15 10:41:08 +01:00
electrikmilk
97ce19bc68 Base+PixelPaint: Use Merge Active Layer Up/Down Icons
The icons for these actions were added in a previous commit but never
used, now they are.
2022-02-15 10:40:49 +01:00
electrikmilk
7e5b3ce26b PixelPaint: Implement Merge Active Layer Up
Implements 'Merge Active Layer Up' and adds it to the 'Layer' menu.
2022-02-15 10:40:49 +01:00
Karol Kosek
db299e9804 Playground: Add editor actions to the window menu 2022-02-15 02:32:52 +01:00
Andreas Kling
dcc2568439 LibWeb: Make IFC register absolutely positioned descendants with BFC
This allows BFC to position all absolutely positioned descendants in the
same pass.
2022-02-15 02:05:53 +01:00
Andreas Kling
6444525edc LibWeb: Make InlineLevelIterator skip over positioned elements 2022-02-15 02:05:53 +01:00
Andreas Kling
e842e955e5 LibWeb: Implement HTMLElement.click()
This doesn't send the correct type of click event, but it does send
something, so it's already somewhat useful. :^)
2022-02-15 02:05:53 +01:00
Andreas Kling
1347c5032b LibWeb: Add spec comments to the StackOfOpenElements class 2022-02-15 02:05:53 +01:00
Andreas Kling
5cdbea4ae0 LibWeb: Rename element_before() => element_immediately_above()
This matches the spec terminology around the "stack of open elements".
2022-02-15 02:05:53 +01:00
Andreas Kling
6fe333607d LibWeb: Add spec comments to find_appropriate_place_for_inserting_node() 2022-02-15 02:05:53 +01:00
davidot
da374a82bc LibJS: Correct an include in PrimitiveString 2022-02-15 00:51:25 +00:00
davidot
c114be95f5 LibJS: Use CopyDataProperties when spreading in object expressions
Before this was a mix of different strategies but copy_data_properties
does all of that in a spec way.
This fixes numeric properties in object spreading. And ensures that any
new properties added during spreading are not taken into account.
2022-02-15 00:51:25 +00:00
davidot
eac3c4c127 LibJS: Use entire array of SimpleIndexedPropertyStorage before growing
A common use case in JS is pushing items in an array in a loop.
A simple test case of 100_000 pushes took around ~20 seconds.
This is due to the fact that any pushed element per definition is beyond
the current size of the array. This meant calling grow_storage_if_needed
which then grew the storage by 25%. But this was done on every single
push, growing the array just a little bigger than its current capacity.

Now we now first use capacity of the array and only grow if the array
is actually full.
This decreases the time for 100_000 to around 0.35 seconds.
One problem is that we never shrink the capacity of the array but this
was already an issue before this.
2022-02-15 00:51:25 +00:00
Linus Groh
24d5ca4a9d LibWeb: Remove non-standard ReturnNullIfCrossOrigin IDL attribute
This is no longer needed as BrowsingContextContainer::content_document()
now does the right thing, and HTMLIFrameElement.contentDocument is the
only user of this attribute. Let's not invent our own mechanisms for
things that are important to get right, like same origin comparisons.
2022-02-15 01:31:03 +01:00
Linus Groh
75dd4fbd16 LibWeb: Implement BCC's "content document" concept according to spec 2022-02-15 01:31:03 +01:00
Linus Groh
5e8bfb5efc LibWeb: Implement Origin's "same origin-domain" concept
Check of domains is left as a FIXME as our Origin class doesn't support
those yet.
2022-02-15 01:31:03 +01:00
Linus Groh
6d0e6e3811 LibWeb: Rename Origin::is_same() to Origin::is_same_origin()
The HTML Origin spec has two similar but slightly different concepts of
origin equality: "same origin" and "same origin-domain". Let's be
explicit with the naming here :^)
Also add spec comments.
2022-02-15 01:31:03 +01:00
Linus Groh
f2ee62e268 LibWeb: Rename Origin::is_null() to Origin::is_opaque()
This is what the HTML Origin spec calls it.
2022-02-15 01:31:03 +01:00
u9g
7590c0fff8 Spreadsheet: Make ranges vertically end-inclusive
With the spreadsheet:
```
A0:1
B0:2
A1:2
B1:3
```
Before: sum(range("A0","B1")) === 3
After: sum(range("A0","B1")) === 8
2022-02-15 03:03:21 +03:30
Linus Groh
8eb936538f LibJS: Add missing include for 'u32' to CanonicalIndex.h 2022-02-14 23:02:56 +00:00
Lenny Maiorani
160bda7228 Applications: Use default constructors/destructors
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules

"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler."
2022-02-14 22:06:55 +00:00
Idan Horowitz
6be75bd5e4 Meta: Use clang-13 instead of clang-12 in Azure CI
This should hopefully resolve a clang ICE seen in PR #12523.
2022-02-14 23:55:23 +02:00
Anonymous
745b998774 LibJS: Get rid of unnecessary work from canonical_numeric_index_string
The spec version of canonical_numeric_index_string is absurdly complex,
and ends up converting from a string to a number, and then back again
which is both slow and also requires a few allocations and a string
compare.

Instead this patch moves away from using Values to represent canonical
a canonical index. In most cases all we need to know is whether a
PropertyKey is an integer between 0 and 2^^32-2, which we already
compute when we construct a PropertyKey so the existing is_number()
check is sufficient.

The more expensive case is handling strings containing numbers that
don't roundtrip through string conversion. In most cases these turn
into regular string properties, but for TypedArray access these
property names are not treated as normal named properties.
TypedArrays treat these numeric properties as magic indexes that are
ignored on read and are not stored (but are evaluated) on assignment.

For that reason there's now a mode flag on canonical_numeric_index_string
so that only TypedArrays take the cost of the ToString round trip test.
In order to improve the performance of this path this patch includes
some early returns to avoid conversion in cases where we can quickly
know whether a property can round trip.
2022-02-14 21:06:49 +00:00
Steven Schmoll
7c4d42279d LibWeb: Add stacking contexts to Node::for_each_child_in_paint_order
The existing implementation, which is used by Node::hit_test() and
sub-classes, does not include stacking contexts which prevents hit
testing from returning elements contained by those stacking contexts
in some situations.

This is quite rough and definitely not optimal. The stacking contexts
are not retrieved in the correct order. They should be sorted by
z-index then tree order.

This change makes DuckDuckGo technically usable with all the absolute
and relative positioning they use.
2022-02-14 21:33:05 +01:00
Andreas Kling
f7f7aa6986 LibGfx/PNG: Respect the tRNS chunk transparency with color type 2
For PNG color type 2 (TrueColor), if there's a tRNS chunk, it specifies
an R/G/B triplet in the image bit depth. This triplet acts as the
transparency value, and should yield transparent pixels wherever that
specific color value is present.

We now support this. :^)
2022-02-14 18:39:20 +01:00