Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ci sanitizer separate step #1

Closed
wants to merge 397 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
397 commits
Select commit Hold shift + click to select a range
506e490
LibWeb+LibCrypto: Remove OID constants scattered around
devgianlu Nov 24, 2024
08b7e83
Tests: Make `TestLibCoreFileWatcher` more reliable
yyny Nov 23, 2024
be3a941
LibWeb: Add ChannelMergerNode interface
gmta Nov 25, 2024
aa33acf
LibWeb: Update existing style object when setting style attribute
milotier Nov 25, 2024
a7652d5
Tests: Import WPT tests for X448 curves
awesomekling Nov 25, 2024
5a8b0a2
LibWeb: Implement the generateKey algorithm for X448
awesomekling Nov 25, 2024
4a73422
LibWeb: Implement the exportKey algorithm for X448
awesomekling Nov 25, 2024
96ddccd
LibWeb: Implement the importKey algorithm for X448
awesomekling Nov 25, 2024
d625e12
LibWeb: Implement the deriveBits algorithm for X448
awesomekling Nov 25, 2024
4bec023
LibWeb/Animation: Cancel pending play task on pause
skyz1 Nov 25, 2024
0d15cc4
LibWeb/Animation: Fall back to discrete animation in more cases
skyz1 Nov 25, 2024
1e67b85
LibWeb/Animation: Support progress values outside of [0,1]
skyz1 Nov 25, 2024
dbfe5be
LibGfx: Delete DeprecatedPainter
shlyakpavel Nov 25, 2024
af9d855
LibGfx: Delete DeprecatedPath
shlyakpavel Nov 25, 2024
4ae3a0d
LibJS: Make a __JS_ENUMERATE comment more informative
shlyakpavel Nov 25, 2024
3f7affa
LibCore/System: Add mmap, munmap for Windows
stasoid Nov 20, 2024
153dc66
LibCore/MappedFile: Remove unnecessary fcntl call
stasoid Nov 14, 2024
b3464d0
LibCore: Port MappedFile to Windows
stasoid Nov 16, 2024
2c7e730
LibWeb/HTML: Consume user activation when choosing a Navigable
AtkinsSJ Nov 25, 2024
310cdc3
LibWeb: Fill-in some fixmes around sandboxing flag sets
AtkinsSJ Nov 25, 2024
1549d39
LibIPC: Remove socket path from IPC Client connections
ADKaster Nov 21, 2024
0075048
LibCore: Remove SessionManagement utilities
ADKaster Nov 21, 2024
d953c6b
Tests: Annotate configurationJSON in SwiftTestMain with noisolate
ADKaster Nov 21, 2024
fc3ebd7
AK: Add workaround for older Xcode versions in Swift.h
ADKaster Nov 25, 2024
8ab765a
LibJS: Invoke CalendarDateToISO recursively correctly
trflynn89 Nov 25, 2024
8c73cae
LibJS: Implement the Temporal.ZonedDateTime constructor
trflynn89 Nov 25, 2024
3e6133c
LibJS: Handle ZonedDateTime in the various Temporal factories
trflynn89 Nov 25, 2024
18f9543
LibJS: Implement the Temporal.Duration relative-to ZonedDateTime options
trflynn89 Nov 25, 2024
c0150ac
LibJS: Implement Temporal.*.prototype.toZonedDateTimeISO and friends
trflynn89 Nov 25, 2024
4ef2161
LibJS: Implement stringification Temporal.ZonedDateTime prototypes
trflynn89 Nov 25, 2024
336efa5
LibJS: Implement Temporal.ZonedDateTime.prototype.add/subtract/equals
trflynn89 Nov 25, 2024
eadd0c4
LibJS: Implement Temporal.ZonedDateTime.prototype.since/until
trflynn89 Nov 25, 2024
f2ab9e1
LibJS: Implement Temporal.ZonedDateTime.prototype.round
trflynn89 Nov 25, 2024
3d0f384
LibJS: Implement Temporal.ZonedDateTime.prototype.with*
trflynn89 Nov 25, 2024
6d78f13
LibJS: Implement Temporal.ZonedDateTime.prototype.startOfDay
trflynn89 Nov 25, 2024
b95528d
LibJS: Stub out Temporal.ZonedDateTime.prototype.getTimeZoneTransition
trflynn89 Nov 25, 2024
58828ff
LibJS: Implement Temporal.ZonedDateTime.prototype.to*
trflynn89 Nov 25, 2024
2f51e9a
LibWeb/HTML: Use default input size (20) when value is 0
khaledev Nov 25, 2024
74645fa
LibWeb/HTML: Implement cite attribute according to spec
skyz1 Nov 25, 2024
74614a1
LibJS: Correct spec table number for FunctionObject
gmta Nov 26, 2024
872a214
LibJS: Make FunctionPrototype's name empty per the spec
gmta Nov 26, 2024
db43ed0
Meta: Use namespaced `JS::call` invocations in IDLGenerators
gmta Nov 26, 2024
614b93b
Meta: Set constructor prototype in IDLGenerators
gmta Nov 26, 2024
71772d9
LibWeb: Add IDBCursor
stelar7 Nov 7, 2024
297c775
LibWeb: Add IDBIndex
stelar7 Nov 7, 2024
16ce2b9
LibWeb: Add IDBObjectStore
stelar7 Nov 7, 2024
20a92a8
LibWeb: Add IDBTransaction
stelar7 Nov 7, 2024
48fae7b
LibWeb: Add IDBKeyRange
stelar7 Nov 7, 2024
a4b876b
LibWeb: Implement IDBRequest::source()
stelar7 Nov 7, 2024
29ddaa7
LibWeb: Implement IDBRequest::ready_state()
stelar7 Nov 7, 2024
204d776
LibWeb: Properly implement IDBRequest::error()
stelar7 Nov 7, 2024
49ad278
LibWeb: Properly implement IDBRequest::result()
stelar7 Nov 7, 2024
bb31b68
LibWeb: Implement IDBDatabase::close()
stelar7 Nov 7, 2024
9aebe5f
LibWeb: Dont take a reference to the request in IDBFactory::open()
stelar7 Nov 7, 2024
ca25f76
LibWeb: Remove old FIXMEs
stelar7 Nov 7, 2024
1656d8f
LibWeb: Implement most of upgrade_a_database for IndexedDB
stelar7 Nov 7, 2024
932fb20
LibWeb: Store IndexedDB Databases mappings properly
stelar7 Nov 7, 2024
4357c32
LibWeb: Implement legacyOutputDidListenersThrowFlag
stelar7 Nov 7, 2024
6c9a836
LibWeb: Implement the wait step for `open_a_database_connection`
stelar7 Nov 8, 2024
74828bb
LibWeb: Import WPT for idbfactory.open
stelar7 Nov 25, 2024
0686347
LibWeb: Fix various local names for custom elements
gmta Nov 26, 2024
2d9405e
LibJS: Use the TimeDuration alias a bit less in Temporal
trflynn89 Nov 26, 2024
ade510f
LibJS: Pass ISO types by value vs. const-reference more correctly
trflynn89 Nov 26, 2024
6a9aec2
LibJS: Remove unused property names and error types
trflynn89 Nov 26, 2024
a93d32a
LibJS: Alphabetically sort property keys and error types
trflynn89 Nov 26, 2024
eadeec8
Tests: Import some svg-in-object-element tests from WPT
awesomekling Nov 26, 2024
443a853
LibWeb: Rename Layout::FrameBox => NavigableContainerViewport
awesomekling Nov 26, 2024
11d966f
LibWeb: Make NavigableContainerViewport always have a NavigableContainer
awesomekling Nov 26, 2024
dd7623e
LibWeb: Rename NestedBrowsingContextP => NavigableContainerViewportP
awesomekling Nov 26, 2024
3ebc7fb
LibWeb: Create layout node for HTMLObjectElement navigable containers
awesomekling Nov 26, 2024
b859a6f
LibWeb: Recurse into NavigableContentViewport in layout dumps
awesomekling Nov 26, 2024
e88286b
LibWeb: Mark HTMLObjectElement as potentially delaying the load event
awesomekling Nov 26, 2024
2405805
LibWeb: Delay load event in more HTMLObjectElement situation
awesomekling Nov 26, 2024
733c6b1
LibWeb: Teach HTMLObjectElement to negotiate natural size with SVGs
awesomekling Nov 26, 2024
12fc1de
LibWeb: Implement `HTMLElement.inputMode`
tcl3 Nov 26, 2024
d73f809
LibWeb: Implement `HTMLElement.enterKeyHint`
tcl3 Nov 26, 2024
8ad3479
LibWeb: Update `Screen` IDL definition to not inherit from `EventTarget`
tcl3 Nov 26, 2024
67d05b0
LibWeb: Use `[URL]` extended attribute for `HTMLVideoElement.poster`
tcl3 Nov 26, 2024
a61883a
LibWeb: Use correct integer parsing rules in `HTMLLIElement::value()`
tcl3 Nov 26, 2024
9face18
LibWeb: Use correct integer parsing rules in `HTMLOListElement::start()`
tcl3 Nov 26, 2024
7aee254
LibJS: Use correct epoch offset in InterpretISODateTimeOffset
trflynn89 Nov 26, 2024
8e8c133
LibJS: Use Temporal for the Date constructor and Date.now()
trflynn89 Nov 26, 2024
5110298
LibJS: Implement Date.prototype.toTemporalInstant
trflynn89 Nov 26, 2024
fc6155c
LibJS: Differentiate between failed ISO8601 parsing and invalid values
trflynn89 Nov 26, 2024
0d63510
LibJS: Port Date.parse string arguments to String
trflynn89 Nov 26, 2024
e176871
LibWeb: Use [Reflect] to implement `HTMLImageElement.decoding`
tcl3 Nov 26, 2024
0adf261
LibWeb: Don't end parsing after reaching the insertion point
Gingeh Nov 26, 2024
24069d5
LibWeb: Partially implement `MediaSource.isTypeSupported()`
gmta Nov 26, 2024
cc0ad0d
LibWeb: Use `[URL]` extended attribute for `HTMLInputElement.src`
tcl3 Nov 26, 2024
1647893
LibWeb/Streams: Update comments for resolved spec bug
shannonbooth Nov 27, 2024
9eea94a
LibCrypto+LibWeb: Support passing parameters to ASN.1 wrappers
devgianlu Nov 26, 2024
f897af3
LibCrypto: Add `SECPxxxr1` methods to work with points
devgianlu Nov 26, 2024
6e54baa
LibCrypto: Add `secpxxxr1` OIDs
devgianlu Nov 26, 2024
a252217
LibCrypto: Expose `parse_ec_parameters`
devgianlu Nov 26, 2024
5f3f089
LibCrypto: Implement `ECPrivateKey` and `ECPublicKey`
devgianlu Nov 26, 2024
6cf89e4
LibCrypto: Parse EC private key when parsing an ASN.1 `PrivateKeyInfo`
devgianlu Nov 26, 2024
fd336ed
LibWeb: Define `EcKeyImportParams`
devgianlu Nov 26, 2024
4fb1991
LibWeb: Switch ECDH.generateKey to use internal keys instead of bytes
devgianlu Nov 26, 2024
e6056ab
LibWeb: Implement ECDH.deriveBits
devgianlu Nov 26, 2024
228276a
LibWeb: Implement ECDH.importKey
devgianlu Nov 26, 2024
6fa53a4
LibWeb: Implement ECDH.exportKey
devgianlu Nov 26, 2024
601eae4
LibWeb: Import WebCryptoAPI ECDH tests from WPT
devgianlu Nov 26, 2024
e5c99b4
IDLGenerators: Set reflected unsigned long value according to spec
tcl3 Nov 26, 2024
a8719a7
LibWeb: Limit HTMLMarqueeElement attributes to allowed values
tcl3 Nov 26, 2024
7fe3bf0
LibWeb: Limit HTMLTextAreaElement attributes to allowed values
tcl3 Nov 26, 2024
3975790
LibWeb: Add search element to list of Special tags
Psychpsyo Nov 26, 2024
e602578
LibWeb: Add handling for 'an end tag whose tag name is sarcasm'
Psychpsyo Nov 26, 2024
630028d
Tests: Import SVG-in-iframe sizing tests from WPT
awesomekling Nov 27, 2024
a7b7910
LibWeb: Only negotiate NavigableContainerViewport size with objects
awesomekling Nov 27, 2024
5deb2b4
LibWeb: Do not give the HTML namespace to elements when parsing XML
milotier Nov 25, 2024
e43e4d3
LibWeb: Add `NullOrError` to NavigationParamsVariant
dlarocque Nov 14, 2024
a74954e
LibWeb: Don't treat auto insets as definite for child of abspos element
awesomekling Nov 27, 2024
13c9874
LibWeb: Be spec compliant by comparing WebCryptoAPI strings with case
devgianlu Nov 27, 2024
6ebc812
LibWeb: Rename `EcdhKeyDerivePrams` to `EcdhKeyDeriveParams`
devgianlu Nov 27, 2024
46e7247
LibWeb: Match algorithm names case-insensitive
devgianlu Nov 27, 2024
971c04d
Tests: Disable a worker test that's flaky on macOS
AtkinsSJ Nov 28, 2024
aeaa284
CI: Increase the default ctest timeout to 1 hour
trflynn89 Nov 28, 2024
20899d7
Revert "CI: Increase the default ctest timeout to 1 hour"
trflynn89 Nov 28, 2024
08812a1
LibRequests: Clean up #include directives
shlyakpavel Nov 28, 2024
ae0c87c
LibWeb: Limit `HTMLInputElement.size` to allowed values
tcl3 Nov 28, 2024
aafc829
LibWeb: Don't allow `HTMLTextAreaElement` rows and cols to be set to 0
tcl3 Nov 28, 2024
4ad8ba1
LibWeb: Use the [Reflect] attribute to implement `HTMLLinkElement.as`
tcl3 Nov 28, 2024
ea503a4
LibJS+LibUnicode: Integrate Temporal into Intl.DateTimeFormat
trflynn89 Nov 27, 2024
964f41b
LibJS: Implement the ECMA-402 Instant.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
697e68e
LibJS: Implement the ECMA-402 PlainDate.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
bca7058
LibJS: Implement the ECMA-402 PlainMonthDay.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
ac0292b
LibJS: Implement the ECMA-402 PlainYearMonth.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
224304c
LibJS: Implement the ECMA-402 PlainTime.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
c96f6c3
LibJS: Implement the ECMA-402 PlainDateTime.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
0468463
LibJS: Implement the ECMA-402 ZonedDateTime.prototype.toLocaleString.js
trflynn89 Nov 27, 2024
d224d1f
LibCore: Fix pthread-related errors on Windows
stasoid Nov 16, 2024
67db10f
LibCore/System: Do not translate \n <-> \r\n when reading/writing files
stasoid Nov 24, 2024
ac590fe
AK: Don't include winsock2.h in Time.h
stasoid Nov 18, 2024
ab83540
Tests: Fix 404 at Element-text-transform-fullwidth.html
shlyakpavel Nov 7, 2024
577ca65
Tests: Fix 404 at input-text-to-image.html
shlyakpavel Nov 7, 2024
dcca248
Tests: Fix 404 at css-grid alignment tests
shlyakpavel Nov 7, 2024
1d2ceaf
Tests: Fix 404 at css selector test
shlyakpavel Nov 27, 2024
c00b97a
Tests: Fix 404 at css selector test
shlyakpavel Nov 27, 2024
314e5d6
LibWeb: Compute accessible names for hidden/hidden-but-referenced nodes
sideshowbarker Nov 11, 2024
6bfc35b
LibWeb: Fix aria-label precedence in accessible-name computation
sideshowbarker Nov 17, 2024
6218f1a
LibWeb: Limit `HTMLSelectElement.size` to allowed values
tcl3 Nov 29, 2024
81f8866
LibWeb: Lay out the fieldset's rendered legend
kostyafarber Nov 23, 2024
99f8972
LibWeb: Ignore negative values when setting `HTMLProgressElement.max`
tcl3 Nov 29, 2024
a90b702
LibWeb/Layout: Account for box-sizing in table width/height calculations
stasoid Nov 25, 2024
ec42570
Build: Fix libpxbackend dependency mismatch
PiyushXCoder Nov 28, 2024
d223cf2
LibWeb: Fix LegacyNullToEmptyString flag handler in IDL
shlyakpavel Nov 28, 2024
a25ff8d
Tests: Import WPT inputevent constructor test
shlyakpavel Nov 28, 2024
f2a406f
Tests: Import WPTs to prevent optional string argument regressions
shlyakpavel Nov 29, 2024
12442ca
LibWeb: Remove a misleading duplicate comment in HTMLParser
jcs Nov 30, 2024
2fc164c
Tests: Import WPT CSSOM tests about serialization
AtkinsSJ Nov 28, 2024
5bcd9ab
LibWeb/CSS: Serialize background-repeat correctly
AtkinsSJ Nov 28, 2024
8cdb8ca
LibWeb/CSS: Add missing commas to rect() serialization
AtkinsSJ Nov 28, 2024
917d659
LibWeb/CSS: Remove unwanted newline from list serialization
AtkinsSJ Nov 28, 2024
bc17a3c
LibWeb: Correctly skip "decimal" in counter() serialization
AtkinsSJ Nov 28, 2024
e4d55a6
LibWeb/CSS: Use ShorthandStyleValue to serialize shorthands
AtkinsSJ Nov 29, 2024
0c39d07
LibWeb/CSS: Serialize overflow correctly
AtkinsSJ Nov 29, 2024
9453c25
LibWeb/CSS: Don't repeat CSS-wide keywords when serializing shorthands
AtkinsSJ Nov 29, 2024
fa1e102
Tests: Import text-decoration WPT tests
AtkinsSJ Nov 29, 2024
671d3e8
LibWeb/CSS: Sort text-decoration-line values in spec order
AtkinsSJ Nov 29, 2024
c405c4b
LibWeb: Allow calling property_initial_value() without a Realm
AtkinsSJ Nov 29, 2024
8e3adbe
LibWeb: Serialize text-decoration closer to spec
AtkinsSJ Nov 29, 2024
45a2823
LibWeb: Implement the `HTMLInputElement.width` attribute
tcl3 Nov 29, 2024
b39fdcf
LibWeb: Implement the `HTMLInputElement.height` attribute
tcl3 Nov 29, 2024
ab2960e
LibCrypto+LibWeb: Reorganize OID ASN1 constants
devgianlu Nov 29, 2024
51f69be
LibCrypto: Move ASN1 constants to `Crypto::ASN1`
devgianlu Nov 29, 2024
40f17d9
LibCrypto: Move ASN1 macros to `Crypto::ASN1`
devgianlu Nov 29, 2024
0280838
LibCrypto: Use ASN1 macros for EC key parsing
devgianlu Nov 29, 2024
57ecd72
LibCrypto: Return PEM type when decoding and sanity check footer
devgianlu Nov 29, 2024
ee50a8c
LibCrypto: Do not parse PKCS#8 in `RSA::parse_rsa_key`
devgianlu Nov 29, 2024
1f7586c
LibCrypto: Use ASN1 macros for RSA key parsing
devgianlu Nov 29, 2024
399b3d2
LibCrypto+LibWeb: Parse EC public key in `parse_subject_public_key_info`
devgianlu Nov 29, 2024
c6e6847
LibWeb: Remove useless bytes conversion in ECDH.exportKey
devgianlu Nov 29, 2024
53a5073
LibJS: Prevent extensions of TypedArray exotic objects
trflynn89 Nov 29, 2024
0450884
LibWeb: Fix indent of the IDL generator using namespace hack
shannonbooth Nov 30, 2024
2918405
LibWeb: Rename ServiceWorker::ServiceWorker to ServiceWorkerRecord
shannonbooth Nov 30, 2024
4417f63
LibWeb: Move ServiceWorker classes to ServiceWorker namespace
shannonbooth Nov 30, 2024
cc11dcc
LibWeb: Add stubbed implementation for ServiceWorkerGlobalScope
shannonbooth Nov 30, 2024
286c177
LibWeb: Support 'Worklet' exposed
shannonbooth Nov 30, 2024
b39f4f0
LibWeb: Add stub definition for WorkletGlobalScope
shannonbooth Nov 30, 2024
27f1e36
LibWeb: Visit proper base class in SyntheticHostDefined
shannonbooth Nov 26, 2024
bb10b0e
LibWeb: Always assert that principal realm returns a principal realm
shannonbooth Nov 27, 2024
d5aaff8
LibWeb: Adjust 'resolve a module specifier' to shadow realm proposal
shannonbooth Nov 27, 2024
bc10729
LibWeb: Add relevant principal helper abstract operations
shannonbooth Nov 27, 2024
fb17f8f
LibWeb: Get document for cookies usage from principal realm
shannonbooth Nov 27, 2024
6a668f2
LibWeb: Push promise rejection handling onto UniversalGlobalScopeMixin
shannonbooth Nov 27, 2024
218ac86
LibWeb: Use relevant principal settings for HighResolutionTime
shannonbooth Nov 27, 2024
91007eb
LibWeb: Ensure principal realm returned for nested Shadow Realms
shannonbooth Nov 27, 2024
edcdcea
LibWebView: Simplify string joining in GeneratePublicSuffixData
AtkinsSJ Nov 26, 2024
3124dca
LibURL+LibWebView: Move public suffix data to LibURL
AtkinsSJ Nov 26, 2024
8b984c0
LibURL: Clarify whether an Origin is opaque
AtkinsSJ Nov 27, 2024
90e763d
LibURL: Replace Host's Empty state with making Url's Host optional
AtkinsSJ Nov 27, 2024
6368814
LibURL: Promote Host to a proper class
AtkinsSJ Nov 27, 2024
7f7f6e4
LibURL: Implement Host::public_suffix() and registrable_domain()
AtkinsSJ Nov 27, 2024
2e64e0b
LibURL: Migrate Origin scheme from ByteString to String
AtkinsSJ Nov 27, 2024
b83f015
LibURL: Implement Site concept
AtkinsSJ Nov 27, 2024
70c8535
LibWeb: Update "window open steps" to current spec
AtkinsSJ Nov 27, 2024
900c131
LibURL: Make URL::serialized_host() infallible
AtkinsSJ Nov 28, 2024
3ce8151
LibWeb/HTML: Make WorkerLocation methods infallible
AtkinsSJ Nov 28, 2024
bf724ba
LibWeb: Bring HTMLHyperlinkElementUtils::hostname() closer to spec
AtkinsSJ Nov 28, 2024
c87960f
LibWeb: Use GC::Ref<Node> in Range for start/end containers
gmta Nov 30, 2024
7bb8650
LibWeb: Implement document.execCommand("delete")
gmta Nov 27, 2024
4a64557
LibWeb: Implement document.execCommand("defaultParagraphSeparator")
gmta Nov 29, 2024
bb61873
LibWeb: Use default paragraph separator in delete command
gmta Nov 29, 2024
4b0d8cb
LibWeb: Implement document.execCommand("styleWithCSS")
gmta Nov 30, 2024
033cd9c
LibWeb: Add test for document.execCommand("delete")
gmta Nov 30, 2024
d743fcb
LibWeb: Take namespace into account when matching attribute
netanel-haber Nov 27, 2024
3947c6d
LibWeb: Disable Text/input/wpt-import/css/cssom/serialize-values.html
trflynn89 Nov 30, 2024
49eeaaf
headless-browser: Store each test's relative path on the Test object
trflynn89 Nov 30, 2024
ad5de9d
headless-browser: Add an option to log per-test durations
trflynn89 Nov 30, 2024
c107ffa
CI: Enable verbose logging of LibWeb tests
trflynn89 Nov 30, 2024
941e25b
CI: Slightly increase the test timeout of LibWeb tests to 30 minutes
trflynn89 Nov 30, 2024
124a4f1
LibWeb/Editing: Fix small copy-paste error
0x4261756D Nov 30, 2024
9648c83
LibDNS: Don't purge lookup entries that are not yet fully resolved
alimpfard Nov 30, 2024
6de4f75
Meta: Update vcpkg to the November 2024 release
beeman Nov 29, 2024
cfb00ba
LibJS: Stop lazily coercing numeric `PropertyKey`s
yyny Nov 30, 2024
58631e9
LibJS: Add missing `CommonPropertyNames`s and `StringMayBeNumber::No`s
yyny Dec 1, 2024
3f5e32e
LibWeb: Stop allocating `Token`s and `ComponentValue`s unnecessarily
yyny Nov 30, 2024
4a16c89
LibDNS: Fix deadlock when receiving invalid lookup result
rmg-x Nov 29, 2024
9b8987e
RequestServer: Use existing type for buffered UDP socket
rmg-x Nov 29, 2024
32358df
RequestServer: Remove unused global "g_dns_cache"
rmg-x Nov 30, 2024
c490118
RequestServer: Free curl string lists and check result before setting
rmg-x Nov 30, 2024
431faa1
LibWeb: Throw an error on DynamicImport for Worklets or ServiceWorkers
shannonbooth Nov 30, 2024
1a15e2c
LibJS: Allow comparing module records by equality
shannonbooth Dec 1, 2024
5af613a
LibWeb: Implement early validation of modules
shannonbooth Dec 1, 2024
bb68f09
LibWeb: Remove irrelevant FIXMEs about implementing some module hooks
shannonbooth Dec 1, 2024
2ff03ea
LibWeb: Remove module validation in "create a JavaScript module script"
shannonbooth Dec 1, 2024
30c8510
LibWeb: Ensure requests modules is not empty before indexing into it
shannonbooth Dec 1, 2024
c94b431
LibWeb: Use separate restore() for each ApplyFilters display list item
kalenikaliaksandr Dec 1, 2024
b05bc71
LibWeb: Limit `HTMLImageElement` width and height to allowed values
tcl3 Nov 29, 2024
a486c86
LibWeb: Limit `HTMLCanvasElement` width and height to allowed values
tcl3 Nov 29, 2024
a7bd370
LibWeb: Use separate restore() for each ApplyOpacity display list item
kalenikaliaksandr Dec 1, 2024
c59363e
flake: Update `flake.lock`
ttrssreal Nov 19, 2024
43746ca
flake: Fix broken dev-shell
ttrssreal Nov 20, 2024
f4cc9c6
Docs: Update Nixos build instructions
ttrssreal Dec 1, 2024
86f1c03
LibWeb: Fix CSS filters painting
kalenikaliaksandr Dec 1, 2024
e02fd4c
Tests: Reimport Event-constants WPT
shlyakpavel Dec 1, 2024
4d5acc7
LibWeb: Remove IDBRequest.idl FIXME
shlyakpavel Dec 1, 2024
1915574
LibWeb: Fix NavigationType enum to string conversion
zetslief Dec 1, 2024
163ec18
LibCore: Fix link error in EventLoopImplementationWindows.cpp
stasoid Nov 28, 2024
40d6b9d
LibWeb: Restrict `HTMLInputElement::max_length` to the range of `i32`
tcl3 Nov 30, 2024
bc48425
LibWeb: Restrict `HTMLInputElement::min_length` to the range of `i32`
tcl3 Nov 30, 2024
ac7fad5
LibWeb: Restrict `HTMLTextAreaElement::max_length` to the range of `i32`
tcl3 Nov 30, 2024
7097152
LibWeb: Restrict `HTMLTextAreaElement::min_length` to the range of `i32`
tcl3 Nov 30, 2024
d02b763
LibWeb: Add `parse_integer_digits` methods
tcl3 Dec 1, 2024
4630b1a
LibWeb: Limit `HTMLTableCellElement` colSpan to allowed values
tcl3 Nov 30, 2024
9fc2a63
LibWeb: Limit `HTMLTableCellElement` rowSpan to allowed values
tcl3 Nov 30, 2024
44cf457
LibWeb: Limit `HTMLTableColElement` span to allowed values
tcl3 Nov 30, 2024
079fdf5
Meta+Documentation: Update config for QtCreator
BenWiederhake Dec 2, 2024
1b3f8e1
LibJS: Cache source code positions more often
yyny Dec 1, 2024
1d51ccd
CI: Move sanitizer output into a separate CI step
AtkinsSJ Nov 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
LibWeb: Add ChannelMergerNode interface
  • Loading branch information
gmta authored and awesomekling committed Nov 25, 2024
commit be3a941f4431d0c33d0bc49cb8041150f8909f87
1 change: 1 addition & 0 deletions Libraries/LibWeb/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -764,6 +764,7 @@ set(SOURCES
WebAudio/AudioScheduledSourceNode.cpp
WebAudio/BaseAudioContext.cpp
WebAudio/BiquadFilterNode.cpp
WebAudio/ChannelMergerNode.cpp
WebAudio/DynamicsCompressorNode.cpp
WebAudio/GainNode.cpp
WebAudio/OfflineAudioContext.cpp
10 changes: 10 additions & 0 deletions Libraries/LibWeb/WebAudio/BaseAudioContext.cpp
Original file line number Diff line number Diff line change
@@ -16,6 +16,7 @@
#include <LibWeb/WebAudio/AudioDestinationNode.h>
#include <LibWeb/WebAudio/BaseAudioContext.h>
#include <LibWeb/WebAudio/BiquadFilterNode.h>
#include <LibWeb/WebAudio/ChannelMergerNode.h>
#include <LibWeb/WebAudio/DynamicsCompressorNode.h>
#include <LibWeb/WebAudio/GainNode.h>
#include <LibWeb/WebAudio/OscillatorNode.h>
@@ -80,6 +81,15 @@ WebIDL::ExceptionOr<GC::Ref<AudioBufferSourceNode>> BaseAudioContext::create_buf
return AudioBufferSourceNode::create(realm(), *this);
}

// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createchannelmerger
WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> BaseAudioContext::create_channel_merger(WebIDL::UnsignedLong number_of_inputs)
{
ChannelMergerOptions options;
options.number_of_inputs = number_of_inputs;

return ChannelMergerNode::create(realm(), *this, options);
}

// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createoscillator
WebIDL::ExceptionOr<GC::Ref<OscillatorNode>> BaseAudioContext::create_oscillator()
{
2 changes: 2 additions & 0 deletions Libraries/LibWeb/WebAudio/BaseAudioContext.h
Original file line number Diff line number Diff line change
@@ -12,6 +12,7 @@
#include <LibWeb/DOM/EventTarget.h>
#include <LibWeb/WebAudio/AudioListener.h>
#include <LibWeb/WebAudio/BiquadFilterNode.h>
#include <LibWeb/WebAudio/ChannelMergerNode.h>
#include <LibWeb/WebIDL/Types.h>

namespace Web::WebAudio {
@@ -57,6 +58,7 @@ class BaseAudioContext : public DOM::EventTarget {
WebIDL::ExceptionOr<GC::Ref<BiquadFilterNode>> create_biquad_filter();
WebIDL::ExceptionOr<GC::Ref<AudioBuffer>> create_buffer(WebIDL::UnsignedLong number_of_channels, WebIDL::UnsignedLong length, float sample_rate);
WebIDL::ExceptionOr<GC::Ref<AudioBufferSourceNode>> create_buffer_source();
WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> create_channel_merger(WebIDL::UnsignedLong number_of_inputs);
WebIDL::ExceptionOr<GC::Ref<OscillatorNode>> create_oscillator();
WebIDL::ExceptionOr<GC::Ref<DynamicsCompressorNode>> create_dynamics_compressor();
WebIDL::ExceptionOr<GC::Ref<GainNode>> create_gain();
3 changes: 2 additions & 1 deletion Libraries/LibWeb/WebAudio/BaseAudioContext.idl
Original file line number Diff line number Diff line change
@@ -4,6 +4,7 @@
#import <WebAudio/AudioBufferSourceNode.idl>
#import <WebAudio/AudioDestinationNode.idl>
#import <WebAudio/AudioListener.idl>
#import <WebAudio/ChannelMergerNode.idl>
#import <WebAudio/DynamicsCompressorNode.idl>
#import <WebAudio/GainNode.idl>
#import <WebAudio/OscillatorNode.idl>
@@ -32,7 +33,7 @@ interface BaseAudioContext : EventTarget {
BiquadFilterNode createBiquadFilter ();
AudioBuffer createBuffer(unsigned long numberOfChannels, unsigned long length, float sampleRate);
AudioBufferSourceNode createBufferSource ();
[FIXME] ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6);
ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6);
[FIXME] ChannelSplitterNode createChannelSplitter (optional unsigned long numberOfOutputs = 6);
[FIXME] ConstantSourceNode createConstantSource ();
[FIXME] ConvolverNode createConvolver ();
71 changes: 71 additions & 0 deletions Libraries/LibWeb/WebAudio/ChannelMergerNode.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/*
* Copyright (c) 2024, Jelle Raaijmakers <jelle@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/

#include <LibWeb/WebAudio/BaseAudioContext.h>
#include <LibWeb/WebAudio/ChannelMergerNode.h>

namespace Web::WebAudio {

GC_DEFINE_ALLOCATOR(ChannelMergerNode);

ChannelMergerNode::ChannelMergerNode(JS::Realm& realm, GC::Ref<BaseAudioContext> context, ChannelMergerOptions const& options)
: AudioNode(realm, context)
, m_number_of_inputs(options.number_of_inputs)
{
}

ChannelMergerNode::~ChannelMergerNode() = default;

WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> ChannelMergerNode::create(JS::Realm& realm, GC::Ref<BaseAudioContext> context, ChannelMergerOptions const& options)
{
return construct_impl(realm, context, options);
}

WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> ChannelMergerNode::construct_impl(JS::Realm& realm, GC::Ref<BaseAudioContext> context, ChannelMergerOptions const& options)
{
// https://webaudio.github.io/web-audio-api/#dom-baseaudiocontext-createchannelmerger
// An IndexSizeError exception MUST be thrown if numberOfInputs is less than 1 or is greater
// than the number of supported channels.
if (options.number_of_inputs < 1 || options.number_of_inputs > BaseAudioContext::MAX_NUMBER_OF_CHANNELS)
return WebIDL::IndexSizeError::create(realm, "Invalid number of inputs"_string);

auto node = realm.create<ChannelMergerNode>(realm, context, options);

// Default options for channel count and interpretation
// https://webaudio.github.io/web-audio-api/#BiquadFilterNode
AudioNodeDefaultOptions default_options;
default_options.channel_count_mode = Bindings::ChannelCountMode::Explicit;
default_options.channel_interpretation = Bindings::ChannelInterpretation::Speakers;
default_options.channel_count = 1;
// FIXME: Set tail-time to no

TRY(node->initialize_audio_node_options(options, default_options));

return node;
}

// https://webaudio.github.io/web-audio-api/#audionode-channelcount-constraints
WebIDL::ExceptionOr<void> ChannelMergerNode::set_channel_count(WebIDL::UnsignedLong channel_count)
{
// The channel count cannot be changed, and an InvalidStateError exception MUST be thrown for
// any attempt to change the value.
if (channel_count != 1)
return WebIDL::InvalidStateError::create(realm(), "Channel count cannot be changed"_string);

return Base::set_channel_count(channel_count);
}

WebIDL::ExceptionOr<void> ChannelMergerNode::set_channel_count_mode(Bindings::ChannelCountMode channel_count_mode)
{
// The channel count mode cannot be changed from "explicit" and an InvalidStateError exception
// MUST be thrown for any attempt to change the value.
if (channel_count_mode != Bindings::ChannelCountMode::Explicit)
return WebIDL::InvalidStateError::create(realm(), "Channel count mode cannot be changed"_string);

return Base::set_channel_count_mode(channel_count_mode);
}

}
42 changes: 42 additions & 0 deletions Libraries/LibWeb/WebAudio/ChannelMergerNode.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Copyright (c) 2024, Jelle Raaijmakers <jelle@ladybird.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/

#pragma once

#include <LibWeb/WebAudio/AudioNode.h>

namespace Web::WebAudio {

// https://webaudio.github.io/web-audio-api/#ChannelMergerOptions
struct ChannelMergerOptions : AudioNodeOptions {
WebIDL::UnsignedLong number_of_inputs { 6 };
};

// https://webaudio.github.io/web-audio-api/#ChannelMergerNode
class ChannelMergerNode final : public AudioNode {
WEB_PLATFORM_OBJECT(ChannelMergerNode, AudioNode);
GC_DECLARE_ALLOCATOR(ChannelMergerNode);

public:
virtual ~ChannelMergerNode() override;

static WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> create(JS::Realm&, GC::Ref<BaseAudioContext>, ChannelMergerOptions const& = {});
static WebIDL::ExceptionOr<GC::Ref<ChannelMergerNode>> construct_impl(JS::Realm&, GC::Ref<BaseAudioContext>, ChannelMergerOptions const& = {});

WebIDL::UnsignedLong number_of_inputs() override { return m_number_of_inputs; }
WebIDL::UnsignedLong number_of_outputs() override { return 1; }

// ^AudioNode
virtual WebIDL::ExceptionOr<void> set_channel_count(WebIDL::UnsignedLong) override;
virtual WebIDL::ExceptionOr<void> set_channel_count_mode(Bindings::ChannelCountMode) override;

private:
ChannelMergerNode(JS::Realm&, GC::Ref<BaseAudioContext>, ChannelMergerOptions const&);

WebIDL::UnsignedLong m_number_of_inputs;
};

}
13 changes: 13 additions & 0 deletions Libraries/LibWeb/WebAudio/ChannelMergerNode.idl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#import <WebAudio/AudioNode.idl>
#import <WebAudio/BaseAudioContext.idl>

// https://webaudio.github.io/web-audio-api/#ChannelMergerNode
[Exposed=Window]
interface ChannelMergerNode : AudioNode {
constructor (BaseAudioContext context, optional ChannelMergerOptions options = {});
};

// https://webaudio.github.io/web-audio-api/#ChannelMergerOptions
dictionary ChannelMergerOptions : AudioNodeOptions {
unsigned long numberOfInputs = 6;
};
1 change: 1 addition & 0 deletions Libraries/LibWeb/idl_files.cmake
Original file line number Diff line number Diff line change
@@ -358,6 +358,7 @@ libweb_js_bindings(WebAudio/BaseAudioContext)
libweb_js_bindings(WebAudio/BiquadFilterNode)
libweb_js_bindings(WebAudio/DynamicsCompressorNode)
libweb_js_bindings(WebAudio/GainNode)
libweb_js_bindings(WebAudio/ChannelMergerNode)
libweb_js_bindings(WebAudio/OfflineAudioContext)
libweb_js_bindings(WebAudio/OscillatorNode)
libweb_js_bindings(WebAudio/PeriodicWave)
1 change: 1 addition & 0 deletions Meta/gn/secondary/Userland/Libraries/LibWeb/idl_files.gni
Original file line number Diff line number Diff line change
@@ -368,6 +368,7 @@ standard_idl_files = [
"//Userland/Libraries/LibWeb/WebAudio/BiquadFilterNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/DynamicsCompressorNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/GainNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/ChannelMergerNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/OfflineAudioContext.idl",
"//Userland/Libraries/LibWeb/WebAudio/OscillatorNode.idl",
"//Userland/Libraries/LibWeb/WebAudio/PeriodicWave.idl",
1 change: 1 addition & 0 deletions Tests/LibWeb/Text/expected/all-window-properties.txt
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ CSSTransition
CanvasGradient
CanvasPattern
CanvasRenderingContext2D
ChannelMergerNode
CharacterData
Clipboard
ClipboardEvent