Lord-McSweeney
952955099d
avm2: Add a FIXME notice on TextBlock.recreateTextLine
2023-11-09 13:38:48 +01:00
Lord-McSweeney
ef847cdbc4
avm2: Implement ContentElement.rawText
2023-11-09 13:38:48 +01:00
Lord-McSweeney
dfdd8287fb
avm2: Add a FIXME notice about DO Container methods being called on a TextLine
2023-11-09 13:38:48 +01:00
Lord-McSweeney
f5a16ad46f
chore: appease clippy
2023-11-09 13:38:48 +01:00
Lord-McSweeney
141b50d999
avm2: Implement TextLine.previousLine
2023-11-09 13:38:48 +01:00
Lord-McSweeney
2afb96c41b
avm2: Stub InteractiveObject.accessibilityImplementation
2023-11-09 13:38:48 +01:00
Lord-McSweeney
2f524463d8
avm2: Stub TextBlock.recreateTextLine
2023-11-09 13:38:48 +01:00
Lord-McSweeney
986295394b
avm2: TLF improvements (GroupElement support); TextLines' height depends on their content
2023-11-09 13:38:48 +01:00
Lord-McSweeney
a8294ff39a
avm2: Add some TODO notices
2023-11-09 13:38:48 +01:00
Lord-McSweeney
d48d2b7d4e
avm2: GroupElement stubs
2023-11-09 13:38:48 +01:00
Lord-McSweeney
597e4e8b9b
avm2: Basic TLF rendering support
2023-11-09 13:38:48 +01:00
Nathan Adams
fa7e7cc8c1
tests: Add tests for NetConnection with Flash Remoting, and fix implementation to match
2023-11-09 12:39:22 +01:00
Nathan Adams
e6b5ac9a2b
tests: Allow tests to request http://example.org/foo/bar by loading ./example.org/foo/bar
2023-11-09 12:39:22 +01:00
Nathan Adams
e6c46d22f2
avm2: Implement NetConnection.send and NetConnection.addHeader
2023-11-09 12:39:22 +01:00
Nathan Adams
508a4139ad
avm2: Implement Responder by making a ResponderObject to hold the callbacks
2023-11-09 12:39:22 +01:00
Nathan Adams
6d901a7463
avm2: Implement many NetConnection properties
2023-11-09 12:39:22 +01:00
Nathan Adams
08c707caa6
avm2: Implement NetConnection.close()
2023-11-09 12:39:22 +01:00
Nathan Adams
641a90b0d4
avm2: Implement connecting a NetConnection to flash remoting url
2023-11-09 12:39:22 +01:00
Nathan Adams
c691b32886
core: Introduce a NetConnection struct, backing AVM1/AVM2 NetConnection objects
2023-11-09 12:39:22 +01:00
sleepycatcoding
f334963b47
avm2: Handle single element XMLLists in XML.insertChildBefore/After
2023-11-07 23:23:53 +01:00
sleepycatcoding
cea636da30
avm2: Include CData nodes in XMLList.text output
2023-11-07 23:23:53 +01:00
sleepycatcoding
d5df3e27a2
avm2: Fix pretty printing of CData nodes
2023-11-07 23:23:53 +01:00
sleepycatcoding
fb34aaea40
avm2: Call toXMLString directly in EscXElem op
...
The previous method, which used `coerce_to_string`, calls `toString` on the object,
which has special handling for simple content, which is not used here.
2023-11-07 23:23:53 +01:00
Tom Schuster
e99eaafcd0
avm2: Fix two bugs in XML/XMLList set_property_local
2023-11-07 18:12:59 +01:00
renovate[bot]
acadb2b2d3
fix(deps): update wasm-bindgen
2023-11-07 12:18:50 +01:00
Tom Schuster
fca17a0061
avm2: Add a E4XNode::is_text helper
2023-11-04 21:45:31 +01:00
Tom Schuster
28476d83be
avm2: Add a E4XNode::is_element helper
2023-11-04 21:45:31 +01:00
Tom Schuster
1953ab3cf0
avm2: Add a E4XNode::is_attribute helper
2023-11-04 21:45:31 +01:00
TÖRÖK Attila
2059492d77
avm2: Remove default width and height values from BitmapData ctor
2023-11-03 21:41:39 +01:00
CUB3D
b0d88645bc
avm1: Implement FileReference
2023-11-03 19:32:24 +01:00
Nathan Adams
dad39631cf
avm2: Don't add ClassDefinition to AMF0 objects
2023-11-03 02:17:40 +01:00
Tom Schuster
8138b68919
avm2: Implement XML.setChildren
2023-11-02 13:40:16 +01:00
Tom Schuster
3572367c8e
avm2: Allow assigning XML objects without a name (eg. text)
2023-11-01 18:44:36 +01:00
Aaron Hill
8d75f98214
core: Remove unused exports (fix nightly warnings)
2023-11-01 00:21:59 -04:00
Nathan Adams
432a63250b
core: Update our xmlns/xml namespace detection for new quick-xml 0.31.0
2023-11-01 00:45:43 +01:00
renovate[bot]
1377a5b07b
fix(deps): update rust dependencies
2023-11-01 00:45:43 +01:00
Nathan Adams
36eda35197
avm2: Implement Font.registerFont
2023-10-30 15:49:07 +01:00
Nathan Adams
9ecb7d221f
avm2: Implement Font.enumerateFonts
2023-10-30 15:49:07 +01:00
Nathan Adams
8be05d8673
avm2: Made a FontObject type and switch Font to use that instead of looking up per getter
2023-10-30 15:49:07 +01:00
Tom Schuster
780489903a
amv2: Implement flash.xml.XMLDocument createTextNode
2023-10-30 14:30:59 +01:00
Tom Schuster
72965b3689
amv2: Implement flash.xml.XMLNode removeNode
2023-10-30 14:30:59 +01:00
Tom Schuster
445643fedb
amv2: Implement flash.xml.XMLNode cloneNode
2023-10-30 14:30:59 +01:00
sleepycatcoding
fb3c4cd307
avm2: Fix E4X [[Replace]] implementation bug
...
We were incorrectly returning for XML attributes. Fixes #13780 .
2023-10-30 14:05:23 +01:00
sleepycatcoding
5bebebddbe
avm2: Add SWFv21 and above XML special case
2023-10-29 09:43:14 -07:00
nosamu
6f5eb48ec2
avm2: Fix return value of SharedObject.flush
2023-10-29 16:08:24 +01:00
Nathan Adams
878f1fc64e
swf: Removed ButtonAction::key_code and fixed writing button tags
2023-10-29 14:31:45 +01:00
Lord-McSweeney
911f1c29db
avm2: Correctly set `caller_movie` in `Activation::from_script`
2023-10-28 21:30:40 -04:00
Aaron Hill
cc49aaee58
avm2: Add UTF-16 BOM handling to ByteArray.toString
...
When a UTF-16 BOM is present, ByteArray.toString automatically
strips it out, and treats the remaining data as a UTF-16 string
with the specified endianness.
2023-10-29 01:13:05 +02:00
Tom Schuster
ef627babfd
avm2: Stub undocumented XML notification functions
2023-10-28 14:17:34 -07:00
Aaron Hill
84f788c2d2
avm2: Use RawTable to implement 'public index' iteration ( #12470 )
...
* avm2: Use RawTable to implement 'public index' iteration
This makes our implementation more closely aligned with avmplus.
In particular, it's now possible to delete keys from an object
while iterating without disturbing the iteration order (as long
as those keys were already produced by the iterator).
This is based on @Bale001's work on RawTable-based iteration
A few tests had their output changed (they depend on the exact
object iteration order, and don't neccessarily match Flash Player
exactly).
* Use Cell to store index fields
* Remove outdated comment
2023-10-28 20:44:01 +00:00
Tom Schuster
33dde1eccf
avm2: Ignore a missing [[TargetProperty]] when assigning an XMLList
2023-10-28 08:18:15 -07:00
Tom Schuster
08d6a7b648
avm2: Reimplement XML.appendChild in terms of [[Get]] and [[Put]]
2023-10-28 08:18:15 -07:00
TÖRÖK Attila
0c0b86c008
core,web: Replace `instant` with `web-time`
2023-10-28 03:01:45 +02:00
sleepycatcoding
ed6fa6b2fe
avm2: Support indices in XMLList.child
2023-10-27 22:53:16 +02:00
sleepycatcoding
d9dad1109a
avm2: Fix many uses of XmlListObject::new
2023-10-27 22:53:16 +02:00
sleepycatcoding
34b80a41b5
avm2: Take Mutation instead of Activation in append
...
There is no need for a full on activation in append.
2023-10-27 22:53:16 +02:00
sleepycatcoding
9d7f0a2bcc
avm2: Add target_dirty flag and use it to reevaluate target object
2023-10-27 22:53:16 +02:00
michiel2005
333009b79f
avm1: Implement key.isToggled()
2023-10-26 17:39:14 -04:00
Tom Schuster
444af0eaf4
avm2: Add AIR flash.system::ImageDecodingPolicy
2023-10-26 08:54:31 +02:00
Aaron Hill
d5da655f8f
avm2: Fix setting frontAndBack culling
...
The name uses camel case, not snake case.
2023-10-23 18:44:48 -04:00
Aaron Hill
3a75502a36
avm2: Implement DisplayObjectContainer.getObjectsUnderPoint
2023-10-23 18:01:08 -04:00
Aaron Hill
b5097445e6
render: Add support for Context3DTextureFormat.COMPRESSED_ALPHA
...
This is our first non-rgba texture format (it uses Bc3RgbaUnorm).
ATF files store these textures in a very convoluted way - fortunately,
the 'dds2atf' tool is open-source, which allowed me to figure out
how to decode the texture back to a DXT5/DXT1 texture.
2023-10-23 11:18:27 -04:00
sleepycatcoding
bb053df30b
avm2: Implement XMLList.parent
2023-10-23 15:46:47 +02:00
sleepycatcoding
2745efe2b1
avm2: Throw error 1010 when null/undefined is given to name_to_multiname
2023-10-23 15:26:37 +02:00
renovate[bot]
cd01bfe7d6
fix(deps): update rust dependencies
2023-10-23 02:55:11 +02:00
sleepycatcoding
10cf247315
avm2: Fix incorrect XMLList method signatures
2023-10-22 15:16:51 -04:00
Tom Schuster
172c1057bb
avm2: XML objects must support lookups like "@attr"
2023-10-22 14:28:22 -04:00
Lord-McSweeney
d23346271e
core/avm2: Implement TextEvent.TEXT_INPUT
2023-10-22 08:01:18 -07:00
sleepycatcoding
0745968c49
avm2: Fix ifstricteq and ifstrictne comparisons
...
Unlike strict_equals they were comparing with just `==`, which is not entirely correct,
since objects like XmlObjects need special cases.
2023-10-22 00:23:51 -04:00
Lord-McSweeney
5f217a6b9a
avm2: Improve quick_xml to AVM2 XML error conversion
2023-10-21 11:41:57 -07:00
Lord-McSweeney
18fb1cd6d1
avm2: Fix Vector call handler error
2023-10-21 11:41:57 -07:00
Lord-McSweeney
0c6a0e80af
avm2: Add class call handlers for Boolean, Number, and (u)int
2023-10-21 11:41:57 -07:00
Lord-McSweeney
043f7cdea7
chore: appease clippy
2023-10-21 11:41:57 -07:00
Lord-McSweeney
901d84b2cf
avm2: Fix defining const slots on global object
2023-10-21 11:41:57 -07:00
Lord-McSweeney
18c53694cb
avm2: Implement Error 1070
2023-10-21 11:41:57 -07:00
Lord-McSweeney
b1056311f0
avm2: Implement Error 1112
2023-10-21 11:41:57 -07:00
Lord-McSweeney
5d2d8e080a
avm2: Pass around Mutation instead of Activation in some places
2023-10-21 11:41:57 -07:00
Aaron Hill
5d4e851a6e
avm2: Throw ArgumentError when calling function with wrong arg count
...
Some SWFs rely on catching the error.
In order to reproduce Flash's error messages, we now store a `QName`
in `FunctionObject`, which is set when we make a bound method.
2023-10-21 00:18:50 -04:00
Crowdin Bot
94174b30fe
chore: Update translations from Crowdin
2023-10-20 21:10:35 +02:00
sleepycatcoding
c87ac6f5f5
avm2: Replace culling panic messages with stub messages
...
A stub message is good enough.
2023-10-20 20:45:45 +02:00
Nathan Adams
feacbdc118
core: <font> tag in text should reset the style to Regular
2023-10-20 12:41:15 +02:00
Nathan Adams
b2a43cb1f7
core: Add style to edittext debug UI
2023-10-20 12:41:15 +02:00
Nathan Adams
64385efe48
core: Use correct embedded font fallback order + tests
2023-10-20 12:41:15 +02:00
sleepycatcoding
8b5b135a2d
avm2: Do not panic in XMLList call handler
2023-10-19 20:52:33 +02:00
sleepycatcoding
8021efaabc
avm2: Do not panic in XML call handler
...
This panic occurred when the call handler was passed zero arguments.
2023-10-19 20:52:33 +02:00
sleepycatcoding
5da09c137e
avm2: Implement QName call handler
2023-10-19 11:46:31 +02:00
Aaron Hill
fd4d6921d8
avm2: Don't stop root movie clip, even if it doesn't extend `MovieClip`
...
Normally, Flash Player will ignores frames for a movie clip with
a symbol class that doesn't extend `MovieClip` (e.g. it extends
`Sprite`). However, the root movie appears to have frame run
unconditionally, even if it only extends `Sprite`. This can
be observed by adding a Graphics child in the second frame only -
the child will flicker in and out as the player switches between
frames, but only for the root movie clip.
Seedling relies on this behavior - it has `DoAbc2` tags in the second
frame, and has a main `Preloader` class that extends `Sprite`.
2023-10-18 09:28:50 -04:00
TÖRÖK Attila
627e8c8063
core: Switch dasp from a git revision to v0.11.0
2023-10-17 21:31:18 +02:00
Adrian Wielgosik
a8ea913bf6
avm1: Store childNodes on the node itself
2023-10-16 11:25:48 +02:00
renovate[bot]
b427940431
fix(deps): update rust dependencies
2023-10-16 09:51:22 +02:00
Nathan Adams
d2541a7ff0
core: Rename Library::load_device_font to Library::get_or_load_device_font
2023-10-15 14:09:21 +02:00
Nathan Adams
e768140a1f
core: Cache the result of Library::default_font
2023-10-15 14:09:21 +02:00
Nathan Adams
ec21ad8658
core: Add default_font feature which enables the fallback font
2023-10-15 14:09:21 +02:00
Nathan Adams
74a7ab5afe
core: Implement device font lookup, and multiple default device fonts
2023-10-15 14:09:21 +02:00
Nathan Adams
909d33e12e
core: Inline Player::load_device_font in Font tests, it's just testing one specific font
2023-10-15 14:09:21 +02:00
Lord-McSweeney
93aa3a493b
avm2: Add back log_warn
2023-10-13 20:22:00 +02:00
Lord-McSweeney
4561fd3631
avm2: Move top-level functions and __ruffle__ stub functions to ActionScript
2023-10-13 20:22:00 +02:00
David Wendt
cf3c594209
docs: Correct documentation of what `execute_seek` does
2023-10-10 18:49:09 -06:00
David Wendt
759aa1e469
core: Allow seeks to process on paused streams.
...
Our list of 'playing' streams is now a list of 'active' streams. This nomenclature change also indicates a rule change: streams are activated whenever there is work for them to do, and they are only ever deactivated by themselves when they're out of work to do. We no longer deactivate streams when they are paused as they may still have a queued seek to process.
2023-10-10 18:49:09 -06:00
David Wendt
e5b59438f7
core: Swap order of parameters on `NetStream.Seek.Notify` event
2023-10-10 18:49:09 -06:00
David Wendt
4420dc8d23
core: Let each VM flag if it wants to send seek events or not
2023-10-10 18:49:09 -06:00
David Wendt
c086a6da11
chore: Fix let statements holding unnecessary borrows, *grumble grumble*
2023-10-10 18:49:09 -06:00
David Wendt
78e41b5be5
avm1: Implement `NetStream.time`
2023-10-10 18:49:09 -06:00
David Wendt
c23f346665
chore: Ensure all `NetStream` code is working in milliseconds.
...
AVM `NetStream` reports and accepts values in seconds, so all the unit conversions went there now.
2023-10-10 18:49:09 -06:00
David Wendt
a0a762ccfc
core: `NetStream` seeks are queued.
...
They do not execute until the next stream tick.
We also implement a few new status events, including some AVM2 exclusive ones.
2023-10-10 18:49:09 -06:00
David Wendt
3f13087d39
chore: Use `get_f64` for `NetStream.seek`
2023-10-10 18:49:09 -06:00
David Wendt
99de1ae154
avm2: Implement `NetStream.time`
2023-10-10 18:49:09 -06:00
David Wendt
0d886dd860
core: Add `NetStream.Pause.Notify` event
2023-10-10 18:49:09 -06:00
David Wendt
3566d7f43a
core: Fire `NetStream.SeekStart.Notify` events
2023-10-10 18:49:09 -06:00
David Wendt
1f5947912d
core: Defensively program against `flv` being broken
2023-10-10 18:49:09 -06:00
David Wendt
3be9ce4ac0
avm2: Implement `NetStream.seek`
2023-10-10 18:49:09 -06:00
David Wendt
e440e175d9
avm1: Implement `seek` method
2023-10-10 18:49:09 -06:00
David Wendt
bc6291898c
core: Add a `seek` method
2023-10-10 18:49:09 -06:00
David Wendt
4867ff1210
core: Break type sniffing out into a separate fn.
2023-10-10 18:49:09 -06:00
renovate[bot]
18796a67fe
fix(deps): update rust dependencies
2023-10-10 02:15:59 +02:00
Lord-McSweeney
7254cdeef9
avm2: Throw ArgumentError when trying to construct `new Worker()`
2023-10-10 01:20:06 +02:00
TÖRÖK Attila
602154b1b7
core,desktop: Switch to egui v0.23.0
...
Since it's compatible with wgpu 0.17.x.
2023-10-09 18:51:01 -04:00
sleepycatcoding
21a1e1f670
avm2: Small set_property_local fixup
...
Fixes a borrow panic and logic error.
2023-10-10 00:24:39 +02:00
sleepycatcoding
0b2771c23d
avm2: Implement other XMLList set_property_local path
2023-10-10 00:24:39 +02:00
sleepycatcoding
917e70086b
avm2: Throw Error 1089, if base list length bigger than 1
...
This is not mentioned in the E4X specification, but this is what avmplus
seems to be doing.
2023-10-10 00:24:39 +02:00
sleepycatcoding
ca5ba4877c
avm2: Implement one XMLList set_property path
2023-10-10 00:24:39 +02:00
sleepycatcoding
709306be81
avm2: Implement resolveValue
2023-10-10 00:24:39 +02:00
sleepycatcoding
4285d998dc
avm2: Add target property to XMLListObject
2023-10-10 00:24:39 +02:00
Nathan Adams
a3b95d9534
avm2: Fix missing stub imports in TextRenderer.as
2023-10-09 23:54:58 +02:00
Lord-McSweeney
b877a39c47
avm2: Implement SharedObject.setProperty
2023-10-07 23:49:36 +02:00
Tom Schuster
278a6ddf53
avm2: Use the localName in XMLDocument::_convertXmlNode
2023-10-07 23:46:40 +02:00
sleepycatcoding
ce2862dd45
avm2: Fix KeyboardEvent clone
...
also adds missing commandKey property.
2023-10-07 08:57:34 +02:00
Aaron Hill
3a658f5dec
avm2: Implement BitmapData.copyPixelsToByteArray
...
This basically just re-uses the implementation of getPixels
2023-10-05 17:35:54 -04:00
sleepycatcoding
5992f6b3c7
avm2: Fix handling of XMLList when set as attribute value
...
Fixes test `e11_6_1` when combined #13255 .
2023-10-05 21:26:41 +02:00
sleepycatcoding
80ccc1d8a3
avm2: Implement some obscure SWFv9 XML behavior
...
This affects appendChild, prependChild, insertChildBefore, insertChildAfter.
2023-10-05 16:12:43 +02:00
Aaron Hill
a5b4b63edc
avm2: Stub Matrix3D.pointAt
...
Unfortunately, the OpenFL implementation has a TODO
noting that their implementation doesn't match Flash,
so getting this to work will require figuring out
how Flash does things.
2023-10-04 22:27:55 -04:00
Aaron Hill
ddefac322a
avm2: Run DoAbc/DoAbc2/SymbolClass as part of their frame
...
We previously ran these tags during preloading - however,
they are actually run as part of frame execution. This is observable
by ActionScript - a SWF can load in a class from a stop()'d MoveClip,
and then advance the clip to a frame with a SymbolClass referencing
the loaded class.
2023-10-04 22:00:22 -04:00
renovate[bot]
428e89af73
fix(deps): update rust dependencies
2023-10-04 19:19:51 -04:00
Tom Schuster
6d51bc3964
avm2: Namespace support for XML.name()
2023-10-01 19:26:07 +02:00
Tom Schuster
30614bdd2f
avm2: QName constructor improvements
2023-10-01 19:26:07 +02:00
Aaron Hill
4c8f8829cb
avm2: Implement Sound.loadCompressedDataFromByteArray
2023-09-30 21:03:37 -04:00
Lord-McSweeney
bdc0985276
avm2: Correctly fire `textureReady` event for asynchronous Texture uploads
2023-09-30 16:43:38 -04:00
Aaron Hill
c5abed07c4
Fix BitmapData.clone accidentally re-using GPU texture
...
This caused the clone to be linked to the original, instead of
being a completely independent BitmapData object.
2023-09-30 09:38:38 -04:00
sleepycatcoding
f140e7a14b
core: Place jpegxr texture support behind feature flag ( #13348 )
2023-09-29 18:46:54 -04:00
Aaron Hill
ec7a8ac645
avm2: Add support for Stage3D bytearray/compressed textures ( #13180 )
2023-09-28 03:03:30 +00:00
renovate[bot]
7e4e4d4c5b
fix(deps): update rust dependencies
2023-09-25 11:14:39 +02:00
Lord-McSweeney
9833a2d19d
avm2: Resolve review comments
2023-09-24 12:11:24 +02:00
Lord-McSweeney
1adde21a9b
avm2, tests: Improve String.substr; add a complex test
2023-09-24 12:11:24 +02:00
Lord-McSweeney
6a1d0e32de
avm2: Minor fix to string_wrapping_index
...
This improves the ecma3/String/substr test.
2023-09-24 12:11:24 +02:00
Aaron Hill
c20b7b37fe
Adjust behavior
2023-09-23 14:11:24 +02:00
Aaron Hill
bb4410e387
avm2: Skip nested 'goto' frame for SWF 9
...
This fixes 'who_killed_travolta', and unblocks DeathvsMonstars and
NeoPets Lost City Lanes once some additional button fixes are merged.
This isn't 100% correct (as shown by the disabled test), but it brings
us closer to what Flash Player does.
2023-09-23 14:11:24 +02:00
nosamu
e8bbb21554
avm1: tellTarget on an undefined object targets the base clip in SWF6-
2023-09-23 13:42:03 +02:00
Tom Schuster
dc53758488
avm2: Implement support for indexes in xml.child()
2023-09-22 21:28:20 +02:00
Tom Schuster
fe8390760a
avm2: Support node namespace in XML.namespace
2023-09-21 22:12:51 +02:00
Crowdin Bot
695c2ff9f5
chore: Update translations from Crowdin
2023-09-18 00:03:15 +02:00