Commit Graph

5905 Commits

Author SHA1 Message Date
Aaron Hill 583caa3389
avm2: Implement DisplayObject.blendShader (#12238) 2023-07-26 23:25:26 +00:00
Aaron Hill 99ed2c6d4a
avm2: Fix handling of default domain memory (#12308) 2023-07-26 18:26:26 +00:00
Nathan Adams 55906c22fa desktop: Change 'socket mode' text to 'TCP Connections' 2023-07-26 19:44:39 +02:00
Nathan Adams 0f4edf9574 avm2: Implement fscommand() 2023-07-26 17:00:15 +02:00
Nathan Adams 1a0a82d898 core: Move fscommand execution outside of ExternalInterfaceProvider, so it can be implemented without causing ExternalInterface.available to become true 2023-07-26 17:00:15 +02:00
sleepycatcoding c8b6a1cb4c core: Send data directly to socket task
This improves socket latency. Sometimes the ping is better in Ruffle than
in Flash Player!
2023-07-26 14:01:03 +02:00
sleepycatcoding f3917c8c62 core: Run async tasks until stalled
Previously it used run which tries to run until completion, but we can't do
that if we are testing socket behavior.
2023-07-26 14:01:03 +02:00
TÖRÖK Attila 365f6bee6e avm2: Clamp filter quality to (0, 15) instead of (1, 15) 2023-07-26 13:03:11 +02:00
Aaron Hill a91b0cf5cb avm2: Don't error in DisplayObject.removeChildren when `to` is max
Our previous special-case wasn't broad enough
2023-07-25 21:44:23 -04:00
Aaron Hill 3c64e8e249 avm2: Implement AMF Vector serialization/deserialization
Some of the tests are currently disabled because (separate from this PR)
we can't actually run `toString()` on a Vector.<Object>, due to our
broken vector handling.
2023-07-25 09:35:50 -04:00
Lord-McSweeney 38b4357f59 avm1: Implement Button.filters 2023-07-25 14:20:36 +02:00
CUB3D 7346f9f6cb avm1: Differentiate between clips with no name set and empty string names 2023-07-25 08:25:37 +02:00
renovate[bot] 3e63a88c34 chore(deps): lock file maintenance rust dependencies 2023-07-25 08:23:28 +03:00
TÖRÖK Attila cee19c5735 core: Fix dirty region set by bitmap::set_pixel 2023-07-25 00:38:08 -04:00
sleepycatcoding f2c9237ea1
avm2: Allow setting prototype to undefined (#12282)
* avm2+tests: Allow setting prototype to undefined

This is used internally by Adobe Flex in many places. Also add test.

* avm2: Set prototype when constructing a Function with null prototype

* tests: Expand prototype_set_null test

* chore: fmt
2023-07-24 20:41:38 +00:00
Aaron Hill 7a5c729d63 core: Use a slightly better DefineFont4 stub
This makes a Character available for a SymbolClass to link with
2023-07-24 14:58:01 -04:00
Nathan Adams 92e3e44453 avm1: Reverse iteration when applying filters - fixes #12272 2023-07-24 13:44:02 +02:00
Aaron Hill 8941a0bb79 avm2: Clamp ByteArray.position when ByteArray.length is set
Note that ByteArray.position can manually be set out-of-range
afterwards.
2023-07-23 14:51:30 -04:00
Aaron Hill 005fdffd05 avm2: Correctly set fields on ShaderInput and ShaderParameter
The special meta key `defaultValue` should be used to set
the default `value` field. Also, `index` is the position
within *just* the image or texture params, not within
all of the params.
2023-07-23 13:52:26 -04:00
sleepycatcoding 6c4f707e36 chore: fmt 2023-07-23 09:13:01 +02:00
sleepycatcoding 48fcc5ffe9 avm2: Check is_connected in flush() and close() 2023-07-23 09:13:01 +02:00
sleepycatcoding 5218bbf32f chore: fmt 2023-07-23 09:13:01 +02:00
sleepycatcoding adeb50a3d7 avm2: Check if socket is open before trying to read or write 2023-07-23 09:13:01 +02:00
sleepycatcoding 74b66fdd73 core+desktop: Rename SocketBehavior to SocketMode
Also change command line flag from --socket to --socket-mode
2023-07-23 09:13:01 +02:00
sleepycatcoding 2c79d22578 avm2: Do not panic when SocketHandle does not exist 2023-07-23 09:13:01 +02:00
sleepycatcoding 68fd0ce73c core: Differentiate between TimedOut and Failed connection 2023-07-23 09:13:01 +02:00
sleepycatcoding ac1badc64f core: remove Option for connection timeout 2023-07-23 09:13:01 +02:00
sleepycatcoding 5144162e68 avm2: Set timeout in AS3 constructor 2023-07-23 09:13:01 +02:00
sleepycatcoding 568d8dfe11 core: Fix panic when socket is closed before connecting 2023-07-23 09:13:01 +02:00
sleepycatcoding 6e6205d20d core: Use timeout in Navigator::connect_socket 2023-07-23 09:13:01 +02:00
sleepycatcoding f54e0e9097 avm2: Make get/setTimeout native 2023-07-23 09:13:01 +02:00
sleepycatcoding a3a49335eb chore: Fmt 2023-07-23 09:13:01 +02:00
sleepycatcoding 6c3b6e5109 avm2: Implement read/writeObject() 2023-07-23 09:13:01 +02:00
sleepycatcoding ea3d6e2a5c avm2: Implement set/getobjectEncoding() 2023-07-23 09:13:01 +02:00
sleepycatcoding 9de2912765 avm2: Implement read/writeMultiByte() 2023-07-23 09:13:01 +02:00
sleepycatcoding 5ed9dbc16b avm2: Implement read/writeUTF 2023-07-23 09:13:01 +02:00
sleepycatcoding 6ca6bb1d78 avm2: Implement read/writeUTFBytes 2023-07-23 09:13:01 +02:00
sleepycatcoding ad51041457 avm2: Implement readBytes() 2023-07-23 09:13:01 +02:00
sleepycatcoding e1a82570fe avm2: small cleanup 2023-07-23 09:13:01 +02:00
sleepycatcoding 22eb150756 desktop: add SocketBehavior and host whitelist
This adds a way to modify socket behavior to restrict, ask, or allow all
connections. Also adds a whitelist which can be used to allow specific hosts
without enabiling ask or allow all behaviors.
2023-07-23 09:13:01 +02:00
sleepycatcoding 4c540c9f17 avm2: Implement read/writeBoolean() 2023-07-23 09:13:01 +02:00
sleepycatcoding 45d3e141f8 avm2: Improve IOErrorEvent for Socket
IOErrorEvent now uses a error message and ID.
2023-07-23 09:13:01 +02:00
sleepycatcoding 0699c34881 chore: Fmt 2023-07-23 09:13:01 +02:00
sleepycatcoding 676516a99c core: use get instead of get_mut
We did not need mutability for this.
2023-07-23 09:13:01 +02:00
sleepycatcoding ea7264eab5 core: Dispatch IOErrorEvent when connection fails 2023-07-23 09:13:01 +02:00
sleepycatcoding d1a17ebeb1 chore: Fix clippy lint 2023-07-23 09:13:01 +02:00
sleepycatcoding 5080c19d11 core: Make socket connection async
Changes socket system to use asynchronous means to not generate lagspikes
when connecting to servers.
2023-07-23 09:13:01 +02:00
sleepycatcoding 2da61bc57f avm2: Some nits
Use ProgressEvent for socketData event instead of a bare event.
Remove unwraps and use correct errors/exceptions.
Correct name in make_error_2008 call.
Use expect() for getting ByteArray instead of an error.
Correct some get_*() calls
2023-07-23 09:13:01 +02:00
sleepycatcoding fc06dcbed6 avm2: Add SecurityError to globals 2023-07-23 09:13:01 +02:00
sleepycatcoding f64ca6aa85 avm2: Use ParametersExt 2023-07-23 09:13:01 +02:00