divinity76
7bc51ae2cb
web: Make panicText readonly
...
it's not supposed to be editable. ref https://github.com/ruffle-rs/ruffle/pull/10819#issuecomment-1529977894
2023-05-02 06:53:44 +00:00
Adrian Wielgosik
e1d47e3527
web: Avoid array.at() for browser compatibility
2023-05-02 01:00:20 +02:00
nosamu
91bc57c67f
web: Fix panic error details display
...
Fix regression caused by #10819
2023-05-01 08:52:46 +03:00
Toad06
ee7403952a
avm1: Allow `button.enabled` to hold any value
2023-04-30 21:08:27 +03:00
Toad06
86c27078d3
avm1: `button.enabled = undefined` doesn't disable the button
2023-04-30 21:08:27 +03:00
Lord-McSweeney
822c845d83
avm2: Stub Socket.connected
2023-04-30 20:16:24 +03:00
iwannabethedev
7b10052c26
extension: Add UI presentation for playerVersion default value.
2023-04-30 07:45:19 +03:00
Tom Schuster
69134d7d8d
tests: Test XML.hasOwnProperty
2023-04-29 16:34:10 -05:00
Tom Schuster
791081051f
avm2: Alternative implementation of XML hasOwnProperty @attribute
2023-04-29 16:34:10 -05:00
relrelb
24079518d9
tests: Expand `Matrix` unit tests to cover `PointDelta`s
2023-04-29 22:29:37 +03:00
relrelb
ef79d556b4
tests: Allow trailing commas in `Matrix` unit tests
2023-04-29 22:29:37 +03:00
relrelb
3046d68da1
swf: Introduce `PointDelta`
...
Generally, when transforming a difference between two points, `p1`
and `p2`, with a matrix `m`, we would like the following property
to hold:
```
m * (p1 - p2) == m * p1 - m * p2
```
Unfortunately, it wasn't like this before, because matrices have a
translation component, which is non-linear. In `m * p1 - m * p2`,
the translations of `m * p1` and `m * p2` are the same and therefore
cancel out each other. However, in `m * (p1 - p2)` the translation
stays.
In order to preserve this property, introduce a new `PointDelta`
type which is not subject to translation when transformed by a matrix.
For now, the following operations are supported:
* `Point - Point -> PointDelta`
* `Point + PointDelta -> Point`
* `Point += PointDelta`
* `Point - PointDelta -> Point`
* `Point -= PointDelta`
As a consequence, the expression `position + global_to_local_matrix * mouse_delta`
in `update_drag()` now ignores translation, which fixes #817 .
2023-04-29 22:29:37 +03:00
Lord-McSweeney
d1e4cccabb
avm2: Stub flash.net.Socket
2023-04-29 22:18:06 +03:00
iwannabethedev
1f956ffe55
web: Add extension option for setting 'playerVersion'.
...
Basic input validation UI and logic is also added and improved.
2023-04-29 01:09:09 +03:00
relrelb
5eb14572ac
core: Fix moving objects while being dragged
...
`startDrag()` used to capture the offset between the mouse cursor
and dragged object. This is buggy when the dragged object position
is changed *while* being dragged, as the original offset no longer
holds.
Change the dragging mechanism to be based purely on mouse deltas,
eliminating said offset completely.
Fixes #10775 .
2023-04-28 11:55:33 +03:00
relrelb
e5808b14a8
core: Use `Twips` in `DisplayObject::{,set_}{x,y}`
...
Instead of `f64`.
2023-04-28 11:55:33 +03:00
iwannabethedev
e211f57f81
extension: Fix popup setting changed reload detection.
...
The problem seems to have been the inclusion of setting values
that the previous equality function did not handle correctly.
This function broadens the kinds of setting values that can
be handled correctly.
2023-04-28 11:06:52 +03:00
relrelb
60ffe07ae7
chore: Use `swf::Point` in many places
...
Convert nearly all instances of `(Twips, Twips)` (maybe besides in
`shape_utils.rs`) to `swf::Point<Twips>`.
2023-04-27 22:14:03 +03:00
Lord-McSweeney
ba5a456d11
avm2: Implement XMLDocument.createElement
2023-04-27 13:16:00 -05:00
iwannabethedev
b01e797e99
extension: Add option for setting max. exec. time
...
Add an option to the 'options' menu for the extension
for setting the maximum execution time for Actionscript
code.
2023-04-27 09:47:56 +00:00
Moulins
e5caf0fda8
core: use unified repr for non-static `AvmString`s, interned and not
...
This shrinks the size of `AvmString` back from 3 to 2 usizes.
2023-04-27 00:17:31 +02:00
Moulins
2868333c05
avm2: require AvmAtom in Namespaces
2023-04-27 00:17:31 +02:00
Moulins
68fc567f7f
core: add `AvmAtom` to represent interned strings
...
Makes `AvmString`s grow from 2 to 3 usizes, but this
will be reverted later.
2023-04-27 00:17:31 +02:00
Moulins
011cdd96ba
core: don't keep strong references to interned strings in the interner.
...
This is done by implementing a simple WeakSet which clears its stale
entries during tracing.
2023-04-27 00:17:31 +02:00
Moulins
889a9bd009
avm2: Intern strings in constant pools
...
Strings belonging to multinames are interned too, but
the multinames themselves aren't.
2023-04-27 00:17:31 +02:00
Moulins
09c729074c
avm1: Intern strings in constant pools
2023-04-27 00:17:31 +02:00
Moulins
27521e145c
avm1: Thread GcContext through all globals initialization
2023-04-27 00:17:31 +02:00
Moulins
c40fd2b17a
core: Add (very) simple AvmString interner
...
Pass it to AVM1/2 initilization functions *via* the new `GcContext` type.
2023-04-27 00:17:31 +02:00
Moulins
90d5515d47
wstr: fix `wstr_impl_traits` macro not working without `use ruffle_wstr::*`
2023-04-26 23:49:18 +02:00
Moulins
cfde53cde2
core: replace `string::decode_swf_str` by a `SwfStrExt` extention trait
2023-04-26 23:49:18 +02:00
Moulins
e9a16ff5fe
wstr: cleanup and expose the `ptr` module
...
- move `WStr` declaration to `common`;
- move `MAX_STRING_LEN` to the `WStr` type;
- split `ptr` methods into `*const` and `*mut` variants;
- add safe methods `WStrMetadata::new32/len32`;
- add `WString::{from, into}_raw_parts`.
2023-04-26 23:49:18 +02:00
Moulins
34f2c45441
core: add `string::decode_swf_str` for SwfStr -> WString conversions
2023-04-26 23:49:18 +02:00
Moulins
604a15f957
wstr: add `WStr::make_ascii_lowercase`
2023-04-26 23:49:18 +02:00
Moulins
83f7bfc0c2
wstr: improve `Cow<WStr>` support
...
This adds missing `From` implementations, and utf8 conversion methods
returning `Cow<WStr>`.
2023-04-26 23:49:18 +02:00
Moulins
ab0f9b9fc2
wstr: Inline more `WString` methods
2023-04-26 23:49:18 +02:00
iwannabethedev
eaee14c7de
web: Use default configuration in extension.
2023-04-26 23:24:53 +02:00
Toad06
f3a0652aea
extension: Close `popup.html` when opening/reloading a window
2023-04-26 22:08:12 +03:00
Nathan Adams
b12db0ac3a
avm2: Support data, method and content-type in URLLoader by reusing code from Loader
2023-04-26 13:44:46 -05:00
relrelb
81dcc66c01
tests: Expand `as_broadcaster`
...
Verify that `AsBroadcaster` is actually a usable constructor.
2023-04-26 21:21:57 +03:00
relrelb
1c0c25b521
avm1: Make `AsBroadcaster` a function
...
Previously, `AsBroadcaster` was defined as a plain object. However,
it seems like in Flash it is defined as an empty function instead.
This means expressions like `new AsBroadcaster()` should return a
newly-created object. This is in opposition to the documentation
that says there is no constructor function for the `AsBroadcaster`
class.
Fixes #10673 .
2023-04-26 21:21:57 +03:00
Lord-McSweeney
4a50f9f31e
avm2: Add make_error_2008() function and use it
2023-04-26 18:49:35 +03:00
Daniel Jacobs
24dfb82d12
web: Address save manager styling review comments
2023-04-26 14:36:49 +02:00
Daniel Jacobs
902911745b
web: Use different heights for save manager
2023-04-26 14:36:49 +02:00
Daniel Jacobs
5e31ce992e
web: Fix save manager styling
2023-04-26 14:36:49 +02:00
Toad06
526fe98ffb
extension: Display favicon
2023-04-26 13:46:12 +02:00
Nathan Adams
cc731a78ee
avm2: Respect data, method and contentType in Loader.load()
2023-04-26 12:46:23 +02:00
Lord-McSweeney
3bf78d43f9
fmt
2023-04-26 11:20:24 +03:00
Lord-McSweeney
f947351f40
Fix #10817
...
Create a child element instead of setting innerHTML.
2023-04-26 11:20:24 +03:00
Lord-McSweeney
f412f62127
avm2/tests: use try_get_object in JSON/Add test for undefined receiver
2023-04-26 00:17:44 +02:00
Lord-McSweeney
319886587d
avm2: Use ParametersExt in JSON
2023-04-26 00:17:44 +02:00