Commit Graph

7344 Commits

Author SHA1 Message Date
Kamil Jarosz 9912141114 core: Use swf_is_whitespace where possible 2024-07-24 17:12:54 +02:00
TÖRÖK Attila 9e3035a8bb chore: Fix new beta lint `clippy::manual_inspect` 2024-07-23 18:54:04 +02:00
dependabot[bot] e9c610816b build(deps): bump enumset from 1.1.3 to 1.1.4 in the cargo-minor group
Bumps the cargo-minor group with 1 update: [enumset](https://github.com/Lymia/enumset).


Updates `enumset` from 1.1.3 to 1.1.4
- [Changelog](https://github.com/Lymia/enumset/blob/main/RELEASES.md)
- [Commits](https://github.com/Lymia/enumset/compare/v1.1.3...v1.1.4)

---
updated-dependencies:
- dependency-name: enumset
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 23:42:23 +02:00
TÖRÖK Attila bff15397d3 chore: Switch to the `image::ImageReader` alias from the deprecated `image::io::Reader` 2024-07-22 20:13:02 +02:00
dependabot[bot] 88b5fafd7d build(deps): bump the cargo-minor group with 10 updates
Bumps the cargo-minor group with 10 updates:

| Package | From | To |
| --- | --- | --- |
| [image](https://github.com/image-rs/image) | `0.25.1` | `0.25.2` |
| [thiserror](https://github.com/dtolnay/thiserror) | `1.0.62` | `1.0.63` |
| [tokio](https://github.com/tokio-rs/tokio) | `1.38.0` | `1.38.1` |
| [syn](https://github.com/dtolnay/syn) | `2.0.71` | `2.0.72` |
| [toml_edit](https://github.com/toml-rs/toml) | `0.22.15` | `0.22.16` |
| [embed-resource](https://github.com/nabijaczleweli/rust-embed-resource) | `2.4.2` | `2.4.3` |
| [gloo-net](https://github.com/rustwasm/gloo) | `0.5.0` | `0.6.0` |
| [zip](https://github.com/zip-rs/zip2) | `2.1.3` | `2.1.5` |
| [libloading](https://github.com/nagisa/rust_libloading) | `0.8.4` | `0.8.5` |
| [toml](https://github.com/toml-rs/toml) | `0.8.14` | `0.8.15` |


Updates `image` from 0.25.1 to 0.25.2
- [Changelog](https://github.com/image-rs/image/blob/main/CHANGES.md)
- [Commits](https://github.com/image-rs/image/compare/v0.25.1...v0.25.2)

Updates `thiserror` from 1.0.62 to 1.0.63
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.62...1.0.63)

Updates `tokio` from 1.38.0 to 1.38.1
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1)

Updates `syn` from 2.0.71 to 2.0.72
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.71...2.0.72)

Updates `toml_edit` from 0.22.15 to 0.22.16
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.15...v0.22.16)

Updates `embed-resource` from 2.4.2 to 2.4.3
- [Release notes](https://github.com/nabijaczleweli/rust-embed-resource/releases)
- [Commits](https://github.com/nabijaczleweli/rust-embed-resource/compare/v2.4.2...v2.4.3)

Updates `gloo-net` from 0.5.0 to 0.6.0
- [Release notes](https://github.com/rustwasm/gloo/releases)
- [Changelog](https://github.com/rustwasm/gloo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/gloo/compare/0.5.0...0.6.0)

Updates `zip` from 2.1.3 to 2.1.5
- [Release notes](https://github.com/zip-rs/zip2/releases)
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zip-rs/zip2/compare/v2.1.3...v2.1.5)

Updates `libloading` from 0.8.4 to 0.8.5
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.4...0.8.5)

Updates `toml` from 0.8.14 to 0.8.15
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.14...toml-v0.8.15)

---
updated-dependencies:
- dependency-name: image
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: toml_edit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: embed-resource
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: gloo-net
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: zip
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: libloading
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: toml
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-22 20:13:02 +02:00
Kamil Jarosz 92b94d133c avm2: Stub orientation-related Stage API 2024-07-22 19:41:50 +03:00
Kamil Jarosz c6fb941da1 avm2: Add flash.display.StageOrientation 2024-07-22 19:41:50 +03:00
Kamil Jarosz 55cf29c864 avm2: Remove unused imports from Stage 2024-07-22 19:41:50 +03:00
Paulo Medeiros ead80a98a3 avm2: Stub flash.display.Stage.setAspectRatio 2024-07-22 11:53:02 +02:00
Paulo Medeiros f978a0c2e7 avm2: Add flash.display.StageAspectRatio 2024-07-22 11:53:02 +02:00
Aaron Hill 71c3245d14 avm2: Add static methods to XML in public namespace
'My Champion Oliver' relies on being able to call these methods
without the AS3 namespace.
2024-07-19 17:06:41 +03:00
Kamil Jarosz a6d321e1de avm2: Implement `TextField.alwaysShowSelection` 2024-07-19 14:15:58 +02:00
Kamil Jarosz 842f310fe7 core: Add option of rendering gray selection when text field is not focused 2024-07-19 14:15:58 +02:00
Kamil Jarosz f8577a843d core: Use non-zero winding rule for fonts 2024-07-19 12:40:12 +02:00
Kamil Jarosz aab4f7122b avm2: Support non-zero winding rule when drawing paths 2024-07-19 12:40:12 +02:00
Kamil Jarosz b160dd6dd9 core: Add support for non-zero winding rule 2024-07-19 12:40:12 +02:00
Lord-McSweeney 74b5c24b51 avm2: Fix regression with unreachable exceptions 2024-07-17 21:30:13 +03:00
Lord-McSweeney d9ce8ef9ca avm2: Only look at valid Exceptions in verifier 2024-07-16 23:03:30 +03:00
Lord-McSweeney c0565d81e6 core: Log an error when a URLLoader load fails 2024-07-16 12:24:40 +02:00
Kamil Jarosz b8fe2b5cba avm2: Fix EventDispatcher.dispatchEvent return value
This fixes a regression introduced in 250bf64.
2024-07-16 10:53:42 +03:00
Aaron Hill 6e93927f63 web: Check for locked 'Player' mutex and reschedule with setTimeout
We use 'wasm-bindgen-futures' as our futures executor on web, which
in turn uses 'queueMicroTask'. This can result in the browser executing
one of our futures while we're still inside our `requestAnimationFrame`
callback (in particular, while we still have the `Player` mutex locked).

We now detect this condition by attempting the lock the Player mutex
inside of our `spawn_local` future. If this fails, we `await`
a `setTimeout`-based promise, which ensures that our code runs in
a new top-level `setTimeout` javascript 'task' (outside of our
`requestAnimationFrame` callback).
2024-07-15 22:46:22 +02:00
Adrian Wielgosik c9fedb2cf6 avm2: Add a fast path in coerce_s 2024-07-15 22:30:46 +02:00
Adrian Wielgosik 131b2c21f4 avm2: Use small string cache when stringifying ints < 10 2024-07-15 22:30:46 +02:00
Kamil Jarosz 1c3128c8e1 avm2: Use click index for double click detection 2024-07-15 21:51:18 +02:00
Kamil Jarosz 0b64bc681a core: Add click index to ClipEvent::Release 2024-07-15 21:51:18 +02:00
Kamil Jarosz 4ec36d5b3a avm2: Dispatch mouseWheel event on mouse wheel 2024-07-15 21:36:37 +02:00
Kamil Jarosz 922e281395 core: Implement keyboard navigation
This patch implements keyboard navigation, i.e. changing focus using
arrows when an object is highlighted.
2024-07-15 21:19:21 +02:00
Kamil Jarosz fdf28ccc6e core: Refactor tab ordering code 2024-07-15 21:19:21 +02:00
dependabot[bot] 51e868d8ac build(deps): bump the cargo-minor group with 3 updates
Bumps the cargo-minor group with 3 updates: [clap](https://github.com/clap-rs/clap), [thiserror](https://github.com/dtolnay/thiserror) and [syn](https://github.com/dtolnay/syn).


Updates `clap` from 4.5.8 to 4.5.9
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.8...v4.5.9)

Updates `thiserror` from 1.0.61 to 1.0.62
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62)

Updates `syn` from 2.0.70 to 2.0.71
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.70...2.0.71)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-15 13:26:34 +02:00
Lord-McSweeney bed5a2fd86 avm2: Add several AIR classes and version-gate `ImageDecodingPolicy` to SWF13+
`NativeProcess`, `NativeProcessStartupInfo`, and `File` classes
2024-07-14 23:25:57 +02:00
Lord-McSweeney 2a38a2caf2 avm2: Fix the globals ordering a little 2024-07-14 23:25:57 +02:00
Lord-McSweeney ceebf2bf64 avm2: Add `flash.net::NetGroup` class 2024-07-14 17:28:27 +03:00
Adrian Wielgosik 48db0e23c4 core: Fix panic on unsetting self-referential masker 2024-07-12 22:35:07 +02:00
Adrian Wielgosik 261ba7374e avm2: Correct setting builtins' types on classes 2024-07-12 21:56:37 +02:00
Kamil Jarosz bd98f72b96 core: Return from handle_event() whether the event has been handled 2024-07-12 15:41:08 +02:00
Kamil Jarosz 7621553a34 avm2: Properly detect whether the event has been handled in event_dispatch_to_avm2 2024-07-12 15:41:08 +02:00
Kamil Jarosz 250bf64a92 avm2: Return whether the event has been handled from dispatch_event
Before that, dispatch_event returned whether the event has been
canceled, but the value has never been used.
It's possible to check whether the event has been canceled
by invoking is_cancelled() on the event.
2024-07-12 15:41:08 +02:00
Kamil Jarosz 57e90d947b avm2: Fire right & middle click events 2024-07-12 15:41:08 +02:00
Kamil Jarosz c7f1f33843 avm2: Add more specific mouse event constructors 2024-07-12 15:41:08 +02:00
Kamil Jarosz 010310dd1b avm2: Add an option to simulate event dispatch 2024-07-12 15:41:08 +02:00
Kamil Jarosz ebfff6aea1 core: Fire clip events on right & middle clicks 2024-07-12 15:41:08 +02:00
Kamil Jarosz 62254d7532 core: Add clip events related to right and middle clicks 2024-07-12 15:41:08 +02:00
Kamil Jarosz 392101611e core: Add support for pressing multiple mouse buttons 2024-07-12 15:41:08 +02:00
Kamil Jarosz 368a95cf3b core: Add button parameter to is_mouse_down() 2024-07-12 15:41:08 +02:00
Kamil Jarosz 7a52360965 avm2: Parameterize mouse button in mouse_event() 2024-07-12 15:41:08 +02:00
Kamil Jarosz d625c0a779 avm2: Add API versions to MouseEvent constants 2024-07-12 15:41:08 +02:00
Kamil Jarosz 01ad20f8a3 core: Hide focus highlight on invalid and empty bounds 2024-07-12 14:44:49 +02:00
Kamil Jarosz 9a88496763 core: Reset focus on player focus loss
FP resets focus when the window (or the element on web) loses its focus.
2024-07-12 14:20:35 +02:00
Kamil Jarosz 6b0bbb85b1 avm2: Implement TextField.condenseWhite 2024-07-12 14:01:24 +02:00
Kamil Jarosz 12edbc8b75 avm1: Implement TextField.condenseWhite 2024-07-12 14:01:24 +02:00
Kamil Jarosz 83179129e3 core: Implement condensing whitespace in HTML 2024-07-12 14:01:24 +02:00
Kamil Jarosz 96468a4445 core: Use CR as the newline character in HTML
Tests show that CR is the newline character internally used in FP
both on Linux and on Windows.
2024-07-12 14:01:24 +02:00
Lord-McSweeney d7a46b1eb2 avm2: Add `flash.text.engine::TextLineMirrorRegion` class 2024-07-12 13:10:15 +02:00
Lord-McSweeney af6a66b8cf avm2: Partially implement `flash.trace::Trace` 2024-07-12 13:10:15 +02:00
Lord-McSweeney ea0bbce184 avm2: Use return type of `ConstructProp` in optimizer 2024-07-12 09:50:58 +03:00
Lord-McSweeney 604ac514b8 avm2: Properly push return value of `getsuper` in optimizer 2024-07-12 09:50:58 +03:00
Lord-McSweeney 08b2c5d0d6 avm2: Function's c_class should be named `Function$`, not `Function` 2024-07-12 09:50:58 +03:00
Lord-McSweeney f15128f6a2 avm2: Add `CallProperty` -> `Coerce(I/U/D)SwapPop` optimization, propagate types from `AsTypeLate` 2024-07-12 09:50:58 +03:00
Tom Schuster f788586e22 avm2: Add flash.events.NetFilterEvent 2024-07-12 00:20:16 +02:00
Kamil Jarosz ac9b39a652 core: Fix double caret rendering in justified text
The condition

  visible_selection.start() >= *start && visible_selection.end() <= *end

was inaccurate, because the end of the selection is exclusive.
That caused the condition to be true for two adjacent boxes.
For instance:

  box 1: from 0 to 6,  "hello "
  box 2: from 6 to 11, "world"

The caret was rendered for both boxes when it was at position 6.

When applying a correct condition (i.e. treating the end as exclusive)
there is a problem with rendering the caret at the very end of the text,
because the condition will not be triggered for any box
(position 11 in the example above).

That is why a condition specific to this case is added, i.e.

  *end == text_len

When the box is the last box in the text, we are forcing
the caret to be rendered.
2024-07-10 14:36:27 +02:00
Tom Schuster 8768143d7e avm2: Throw error for missing end tag in E4X 2024-07-09 01:01:15 +02:00
Tom Schuster 5aeae40bc5 avm2: Ignore mismatched end tags in E4X 2024-07-09 01:01:15 +02:00
dependabot[bot] 69abfa4528 build(deps): bump the cargo-minor group with 3 updates
Bumps the cargo-minor group with 3 updates: [bitstream-io](https://github.com/tuffy/bitstream-io), [syn](https://github.com/dtolnay/syn) and [toml_edit](https://github.com/toml-rs/toml).


Updates `bitstream-io` from 2.4.2 to 2.5.0
- [Commits](https://github.com/tuffy/bitstream-io/compare/v2.4.2...v2.5.0)

Updates `syn` from 2.0.69 to 2.0.70
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.69...2.0.70)

Updates `toml_edit` from 0.22.14 to 0.22.15
- [Commits](https://github.com/toml-rs/toml/compare/v0.22.14...v0.22.15)

---
updated-dependencies:
- dependency-name: bitstream-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: toml_edit
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-09 00:42:31 +02:00
dependabot[bot] 54ce439a5b build(deps): bump quick-xml in the cargo-minor group
Bumps the cargo-minor group with 1 update: [quick-xml](https://github.com/tafia/quick-xml).


Updates `quick-xml` from 0.35.0 to 0.36.0
- [Release notes](https://github.com/tafia/quick-xml/releases)
- [Changelog](https://github.com/tafia/quick-xml/blob/master/Changelog.md)
- [Commits](https://github.com/tafia/quick-xml/compare/v0.35.0...v0.36.0)

---
updated-dependencies:
- dependency-name: quick-xml
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-08 21:38:42 +02:00
Lord-McSweeney 62fd898c0d avm2: Remove two unused `Class` functions
`define_builtin_class_properties` and `define_slot_number_instance_traits`
2024-07-08 12:59:15 +03:00
Lord-McSweeney fffcd5184e avm2: Don't mark a class created from `Class::custom_new` as having its traits already loaded 2024-07-08 12:59:15 +03:00
Lord-McSweeney 1b5daf5981 avm2: Initialize global scope object earlier and remove `set_instance_class` 2024-07-08 12:59:15 +03:00
Lord-McSweeney 0d637d34dd avm2: Remove `void`'s ClassObject 2024-07-08 12:59:15 +03:00
Lord-McSweeney f81136af2c avm2: De-optionify ScriptObjectData.instance_class 2024-07-08 12:59:15 +03:00
Lord-McSweeney 6cc1488f73 avm2: Remove all classless objects 2024-07-08 12:59:15 +03:00
Lord-McSweeney 953a02533f avm2: Fix created receiver value when constructing function 2024-07-08 12:59:15 +03:00
Lord-McSweeney 73e3728c03 avm2: Merge `init_instance_vtable` into `ClassObject::from_class_partial` 2024-07-08 12:59:15 +03:00
Lord-McSweeney 01bdbd20d6 avm2: Pass a `Mutation` to `VTable::init_vtable` instead of an `UpdateContext` 2024-07-08 12:59:15 +03:00
Lord-McSweeney 343ea346d2 avm2: Rename `Class::instance_vtable` to `Class::vtable` 2024-07-08 12:59:15 +03:00
Lord-McSweeney a68c48037b avm2: Remove `class_vtable` field from `ClassObject` 2024-07-08 12:59:15 +03:00
Lord-McSweeney b67dafb93c avm2: Convert `i_class` and `c_class` to a single enum 2024-07-08 12:59:15 +03:00
Lord-McSweeney 4442350912 avm2: Push correct type in optimizer for `NewClass` op 2024-07-08 12:59:15 +03:00
Lord-McSweeney efbaf6a0b0 avm2: Use proper slot type for `TraitKind::Class` 2024-07-08 12:59:15 +03:00
Lord-McSweeney e222a1646c avm2: Remove `Class::class_init` 2024-07-08 12:59:15 +03:00
Lord-McSweeney 13ee356b8c avm2: Fix function prototype 2024-07-08 12:59:15 +03:00
Lord-McSweeney bac18c1a84 avm2: Simplify `ClassObject::link_type` 2024-07-08 12:59:15 +03:00
Lord-McSweeney 9c872860e9 avm2: Actually apply class refactor to ClassObject and describeType
This requires changing the AVM2 ClassObject symbol registry to use Classes
2024-07-08 12:59:15 +03:00
Lord-McSweeney bb50a6f926 avm2: Split `Class` into a i_class `Class` and a c_class `Class` 2024-07-08 12:59:15 +03:00
TÖRÖK Attila acc84769b6 desktop,chore: Bump `egui` to `v0.28.1` 2024-07-08 01:29:40 +02:00
Nathan Adams dd7692b211 core: Document audio+DO methods slightly 2024-07-07 23:57:24 +02:00
Nathan Adams 229697fbbd core: Correctly handle sound events attached to buttons. Fixes #2473 2024-07-07 23:57:24 +02:00
Nathan Adams 1ffb9d2ab9 avm1: Remove sounds when their clip is unloaded, fixes #7447, #14663 2024-07-07 23:57:24 +02:00
Nathan Adams 84df034f84 core: When stopping sounds associated with movieclips, go by path instead of pointer - fixes #9795 2024-07-07 23:57:24 +02:00
Kamil Jarosz dda4cbfd62 core: Use existing methods for rounding twips
Replace `round_to_pixel_half_even` and `round_down_to_pixel` with
existing methods used for rounding twips to pixels.
2024-07-07 21:45:52 +02:00
Lord-McSweeney 1c1fc099cb avm2: Add `flash.net.drm::LoadVoucherSetting` class 2024-07-07 16:03:52 +03:00
Lord-McSweeney 2d650faec0 avm2: Implement `flash.events::AVStatusEvent` and `flash.media::AVCaptionStyle` 2024-07-07 16:03:52 +03:00
Aaron Hill f0d224d88e avm2: Make 'Loader.unloadAndStop' call 'Loader.unload'
We still need to implement the 'stop' behavior, but this should
bring us closer to matching Flash Player.
2024-07-07 08:13:10 -04:00
dependabot[bot] cb8770663f build(deps): bump the cargo-minor group with 3 updates
Bumps the cargo-minor group with 3 updates: [serde](https://github.com/serde-rs/serde), [syn](https://github.com/dtolnay/syn) and [gilrs](https://gitlab.com/gilrs-project/gilrs).


Updates `serde` from 1.0.203 to 1.0.204
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204)

Updates `syn` from 2.0.68 to 2.0.69
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.68...2.0.69)

Updates `gilrs` from 0.10.7 to 0.10.8
- [Commits](https://gitlab.com/gilrs-project/gilrs/compare/v0.10.7...v0.10.8)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: gilrs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-07 13:10:44 +02:00
Lord-McSweeney 62f0e07171 avm2: Implement `flash.media::AVResult` 2024-07-07 13:10:33 +03:00
Polo da4eccfc68 avm2: Implement AuthenticationMethod 2024-07-06 22:23:00 +02:00
Polo e015695f47 avm2: Implement NetStreamAppendBytesAction 2024-07-06 22:23:00 +02:00
Polo 430c799e9d avm2: API versioning added for NetStreamPlayTransitions 2024-07-06 22:23:00 +02:00
Polo 3f0c693793 avm2: Implement NetStreamPlayTransitions 2024-07-06 22:23:00 +02:00
Kamil Jarosz 594201adc8 text: Implement double/triple click selection
This patch implements selecting words by double-clicking and
selecting lines by triple-clicking.
It also includes support for selecting words and lines while dragging.
2024-07-06 18:32:10 +02:00
Kamil Jarosz dc4ea60d13 text: Add TODO related to opening links 2024-07-06 18:32:10 +02:00
Kamil Jarosz d770422724 core: Calculate click index when not supplied 2024-07-06 18:32:10 +02:00
Kamil Jarosz 9f9d462381 core: Add click index to PlayerEvent::MouseDown 2024-07-06 18:32:10 +02:00
Kamil Jarosz 9188005820 core: Add click index to ClipEvent::Press 2024-07-06 18:32:10 +02:00
Nathan Adams f8cba925c3 core: Update flash-lso, removes cookie-factory 2024-07-06 12:27:26 +02:00
dependabot[bot] 26ee124eb7 build(deps): bump the cargo-minor group across 1 directory with 2 updates
Bumps the cargo-minor group with 2 updates in the / directory: [ttf-parser](https://github.com/RazrFalcon/ttf-parser) and [fontdb](https://github.com/RazrFalcon/fontdb).


Updates `ttf-parser` from 0.21.1 to 0.24.0
- [Changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/RazrFalcon/ttf-parser/compare/v0.21.1...v0.24.0)

Updates `fontdb` from 0.18.0 to 0.20.0
- [Changelog](https://github.com/RazrFalcon/fontdb/blob/master/CHANGELOG.md)
- [Commits](https://github.com/RazrFalcon/fontdb/compare/v0.18.0...v0.20.0)

---
updated-dependencies:
- dependency-name: ttf-parser
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: fontdb
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-05 01:41:48 +02:00
Tom Schuster 7884a35e87 avm2: Properly enumerate Proxy objects for AMF serialization
Fixes #16931:
2024-07-04 18:43:01 +02:00
TÖRÖK Attila 4dd77f903e desktop: Update `egui` to `v0.28.0` 2024-07-04 11:32:48 +02:00
Aaron Hill c65033aa37 avm2: Ignore errors when setting properties in amf deserializer
Flash Player *traces* any errors that occur during setting properties
on the newly-constructed object durting AMf deserialization, and
continues deserializing.
2024-07-03 17:42:02 -04:00
Kamil Jarosz 5aaff966aa text: Render caret using lines
This patch makes the caret be drawn using lines.
This ensures that the width of the caret is always 1px.

Additionally, it improves caret positioning, so that it's closer to FP.
2024-07-03 15:09:31 +02:00
Kamil Jarosz 59c0bcf073 core: Improve EditText's border and background rendering
This patch removes the drawing used for rendering the border and
the background and renders them using primitives instead.

It provides two methods for drawing the border and the background:
* draw_device_text_box -- when device fonts are used,
* draw_text_box -- when fonts are embedded.

Updated expected images in tests as they are closer to FP now:
* text/auto_size/height,
* text/auto_size/return,
* text/auto_size/width,
* visual/shumway_acid_tests/acid_color_0.

For the test avm2/stage3d_texture it's hard to say whether the current
output is closer to FP or not, as FP renders it with a different scale.
However, I have confirmed that there exists a scale at which FP renders
the text fields exactly as Ruffle after this patch.
2024-07-02 23:40:50 +02:00
Kamil Jarosz 23f01e0dd9 render: Add Matrix::create_box_with_rotation
This patch splits the current method of create_box into
1. create_box -- without rotation, and
2. create_box_with_rotation -- with rotation.

The reason for that refactor is that create_box was often used without
rotation, and always passing 0.0 as rotation and having
a dedicated condition for 0.0 was superfluous.
2024-07-02 23:40:50 +02:00
Marco Bartoli fe08638d26
Implement ImportAssets/ImportAssets2 (#16420) 2024-07-02 11:41:48 +00:00
Aaron Hill 617cb3330d avm2: Ignore ClassObject call receiver
This allows a class to be used with `callproplex`
2024-07-02 07:18:22 -04:00
Lord-McSweeney 83d0316ac3 avm2: Add stub notices for reusing Loader 2024-07-02 06:58:37 +03:00
Lord-McSweeney d2e3de4cc4 avm2: Unload the contents of a Loader before `load` and `loadBytes` 2024-07-02 06:58:37 +03:00
Aaron Hill ebab349458 avm2: Stub Stage.mouseLock 2024-07-01 23:13:02 -04:00
dependabot[bot] 28aa2e65a9 build(deps): bump the cargo-minor group across 1 directory with 7 updates
Bumps the cargo-minor group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.7` | `4.5.8` |
| [bitflags](https://github.com/bitflags/bitflags) | `2.5.0` | `2.6.0` |
| [log](https://github.com/rust-lang/log) | `0.4.21` | `0.4.22` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.117` | `1.0.120` |
| [num-bigint](https://github.com/rust-num/num-bigint) | `0.4.5` | `0.4.6` |
| [id3](https://github.com/polyfloyd/rust-id3) | `1.13.1` | `1.14.0` |
| [either](https://github.com/rayon-rs/either) | `1.12.0` | `1.13.0` |



Updates `clap` from 4.5.7 to 4.5.8
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.7...v4.5.8)

Updates `bitflags` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/2.5.0...2.6.0)

Updates `log` from 0.4.21 to 0.4.22
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.21...0.4.22)

Updates `serde_json` from 1.0.117 to 1.0.120
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.120)

Updates `num-bigint` from 0.4.5 to 0.4.6
- [Changelog](https://github.com/rust-num/num-bigint/blob/master/RELEASES.md)
- [Commits](https://github.com/rust-num/num-bigint/compare/num-bigint-0.4.5...num-bigint-0.4.6)

Updates `id3` from 1.13.1 to 1.14.0
- [Changelog](https://github.com/polyfloyd/rust-id3/blob/main/CHANGELOG.md)
- [Commits](https://github.com/polyfloyd/rust-id3/compare/v1.13.1...v1.14.0)

Updates `either` from 1.12.0 to 1.13.0
- [Commits](https://github.com/rayon-rs/either/compare/1.12.0...1.13.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: log
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: num-bigint
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: id3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: either
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-02 01:04:52 +02:00
Lord-McSweeney 67c9936bf4 avm2: Use proper coercion in XMLList prototype methods 2024-07-01 18:40:47 +02:00
Tom Schuster 58c231588d core: Stop searching after finding the first default font 2024-06-30 11:32:06 +02:00
TÖRÖK Attila 6aa2dde859 chore: Update quick-xml to 0.35.0 2024-06-30 11:17:38 +02:00
Tom Schuster 5618a3d048 avm2: FP10 version DisplayObject rotationX/Y/Z and scaleZ
Fixes #16910
2024-06-30 09:48:40 +02:00
Kamil Jarosz 19649cc69b text: Do not clamp font size for SWF13+ 2024-06-29 22:57:55 +02:00
Kamil Jarosz c350be43b8 avm2: Implement TextField.getTextRuns() 2024-06-29 22:57:55 +02:00
Kamil Jarosz bcbf3ba3d1 text: Support TextFormat.display 2024-06-29 22:57:55 +02:00
Kamil Jarosz 3bf5e28348 avm2: Implement TextRun 2024-06-29 22:57:55 +02:00
Kamil Jarosz 95cc3c52f3 avm2: Fix highlight bounds for buttons
Similarly to AVM1, AVM2 buttons also use their
hit bounds as highlight bounds.
2024-06-29 22:42:25 +02:00
Kamil Jarosz a3dddbd80d avm2: Roughly implement `TextField.*IndexAtPoint`
Both implementations currently use `screen_position_to_index`, which
is inaccurate, and that's why these methods still produce a stub warning.
However, this implementation makes some games work, is a lot better than
a perfect implementation which would require a lot of work and time,
and infinitely better than no implementation at all.
2024-06-29 22:28:16 +02:00
Kamil Jarosz a9708a8017 debug_ui: Draw bounds on hover
When the user hovers on world bounds and highlight bounds,
debug rects signifying their positions are automatically drawn.
2024-06-29 21:57:32 +02:00
Kamil Jarosz 59a8d1e8a1 debug_ui: Improve debug rect bounds calculation
Before this patch, it was possible that some objects did not have a
debug rect despite existing on the stage and interacting with the user.
That was the case for instance for buttons with hit bounds and no up state.

This patch ensures that debug rect is at least as big as highlight bounds,
which are used to highlight focused objects on the stage.
2024-06-29 21:57:32 +02:00
Kamil Jarosz 056650337e chore: Remove unnecessary returns 2024-06-29 11:29:02 +02:00
Kamil Jarosz ee8c9e21fa avm2: Implement TextField.getLineIndexOfChar() 2024-06-29 11:29:02 +02:00
Kamil Jarosz b55d4d1021 avm2: Fix TextField.getLineText()
This patch makes the implementation more performant, simpler, and
fixes its behavior related to returning the line delimiter and tabs.
2024-06-27 22:02:41 +02:00
Kamil Jarosz 9a6708f4b1 avm2: Implement TextField.getLineOffset() 2024-06-27 22:02:41 +02:00
Kamil Jarosz 57b371900b avm2: Implement TextField.getLineLength() 2024-06-27 22:02:41 +02:00
Kamil Jarosz 8569df9503 text: Add start and end text positions to LayoutLine
By adding start and end positions to LayoutLine, it's now easy to
calculate the line length, get its text, or search through lines.
2024-06-27 22:02:41 +02:00
Kamil Jarosz dcafb3d291 text: Assume at least one span is present during layout
After some past refactors, it's true now that during layout there's
at least one text span, which is ensured by the span normalization.
This refactor simplifies code.
2024-06-27 22:02:41 +02:00
Kamil Jarosz a606fcc8ed text: Implement Debug for LayoutContent 2024-06-27 22:02:41 +02:00
Kamil Jarosz 47ea369047 text: Add text positions to all layout boxes
This refactor adds positions to all layout boxes, not only texts.
Positions for bullets and drawings are used only for obtaining
information about their location relative to other layout boxes,
so that searching and other various operations on boxes are easier.
2024-06-27 22:02:41 +02:00
Aaron Hill 8bea6d4ef9 avm2: Parse and load DoAbc/DoAbc2 tags during frame execution
Parsing and loading the definitions from an DoAbc/DoAbc2 tag
is visible to ActionScript - any definitions will become accessible,
and the script initializer will be run when accessing any of those
definitions.

We now delay the actual parsing/loading traits from DoAbc2 tags.
This is run before we process any SymbolClass tags, and only runs
the first time that we execute a frame.

This also fixes an issue where we would incorrectly produce a
`VerifyError` during preloading when trying to load a superclass
for a `Class` for a tag in a future frame. That frame might require
other class definitions to be populated first (e.g. by a `Loader`
in the first frame).
2024-06-27 21:44:40 +02:00
TÖRÖK Attila e75299702b chore: Bump bitstream-io to 2.4.2 2024-06-27 21:19:36 +02:00
Kornelius Rohrschneider 4d6dd38616 core: Make the form loader use Windows-1252 if SWF version <= 5
The form loader now loads files using Windows-1252 if the SWF version is
smaller than 6. This roughly matches Flash's behaviour (Flash uses
Windows-1252 on Windows, on macOS a slightly different custom encoding
is used).
Previously, UTF-8 has been (wrongly) used for all SWF files if
System#useCodepage hasn't been set to true, leading to incorrectly
displayed characters.
2024-06-26 02:37:44 +02:00
Kornelius Rohrschneider 0b30b7fdda core: Use HTTP response encoding if existing
If System#useCodepage has been set to true, the form loader now uses the
encoding specified in the HTTP response content type field, if existing,
to decode remote text files. chardetng is now (only) used if the HTTP
response doesn't specify any encoding or if the file is local.
2024-06-26 02:37:44 +02:00
Kornelius Rohrschneider 870bdae6fd core: Add support of non-UTF-8 encodings to the form loader
Flash's form loader loads text files in the local system codepage if
System#useCodepage has been set to true. Previously, Ruffle always
(wrongly) used UTF-8, leading to incorrectly displayed characters.
This has been fixed. Ruffle now supports loading files with an encoding
other than UTF-8.
As Ruffle doesn't always have access to the system codepage and as it's
not reliably the correct encoding, the crate chardetng has been added.
It's used instead of the system codepage to detect the encoding, and the
data is converted into UTF-8.
2024-06-26 02:37:44 +02:00
Crowdin Bot e83e39ad27 chore: Update translations from Crowdin 2024-06-25 00:26:30 +02:00
dependabot[bot] 8877eebdb2 build(deps): bump the cargo-minor group across 1 directory with 4 updates
Bumps the cargo-minor group with 4 updates in the / directory: [bytemuck](https://github.com/Lokathor/bytemuck), [syn](https://github.com/dtolnay/syn), [proc-macro2](https://github.com/dtolnay/proc-macro2) and [libloading](https://github.com/nagisa/rust_libloading).


Updates `bytemuck` from 1.16.0 to 1.16.1
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md)
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.16.0...v1.16.1)

Updates `syn` from 2.0.66 to 2.0.68
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.66...2.0.68)

Updates `proc-macro2` from 1.0.85 to 1.0.86
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.85...1.0.86)

Updates `libloading` from 0.8.3 to 0.8.4
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.3...0.8.4)

---
updated-dependencies:
- dependency-name: bytemuck
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: proc-macro2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: libloading
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-25 00:08:16 +02:00
Tom Schuster fe754d7fed avm2: Change map().unwrap_or() to map_or() 2024-06-24 16:36:25 +02:00
Tom Schuster 0a513f273e avm2: Cleanup some Value::Object matching 2024-06-24 16:36:25 +02:00
Kamil Jarosz 04dfd1f22f avm2: Do not fire roll over events on focus change (yet)
This patch bypasses AVM2 conditionally when firing roll over events
triggered by a focus change until a proper support for AVM2 events
is implemented.
2024-06-23 13:30:27 +02:00
Lord-McSweeney 9271618185 avm2: Properly import stub_getter and stub_setter in Shader 2024-06-22 13:28:01 -07:00
Aaron Hill dc03f541db avm2: Match Flash behavior for DoAbc/SymbolClass script initializers
Flash Player handles SymbolClass tags and eager (non-lazy) DoAbc2 tags in an unusual way:
During the first time that a given frame is executed:
1. All SymbolClass tags are processed in order, triggering ClassObject loading (and the associated
   script initializer execution, if it hasn't already been run)
2. All eager (non-lazy) DoAbc/DoAbc2 tags have their *final* script initializer executed.

To implement this, we now cache the needed `Script` and symbol class
data during preloading. The first time we execute a frame, we run
the symbolclass class lookup and assignment, followed by the final
script initializer for each DoAbc2 tag in the frame.

This fixes 'minidash' (and probably other crossbridge games as well).
2024-06-21 16:57:06 +02:00
Kamil Jarosz adea7ae743 text: Refactor EditText.line_text
This refactor takes advantage of the
new layout structure to simplify code.
2024-06-21 16:41:56 +02:00
Kamil Jarosz bfbd2dbd19 text: Refactor EditText.layout_metrics
This refactor takes advantage of the
new layout structure to simplify code.
2024-06-21 16:41:56 +02:00
Kamil Jarosz 50ade23779 text: Implement Layout.bounds 2024-06-21 16:41:56 +02:00
Kamil Jarosz ba13386788 text: Restructure layout to include text lines
This patch removes `LineData` & `get_line_data` and incorporates
their logic into layout calculation adding `Layout` and `LayoutLine`.
The goal is to simplify operations on the layout, as now
line data is always present and integrated with the layout.
Specialized methods may be added to `Layout` and `LayoutLine`
in the future.
2024-06-21 16:41:56 +02:00
Kamil Jarosz d2f5b78503 text: Move lower_from_text_spans to module level 2024-06-21 16:41:56 +02:00
Lord-McSweeney 1164dd747a avm2: Merge locals better 2024-06-20 17:02:13 -07:00
Lord-McSweeney 1389f5fa67 avm2: Record all jump sources in verifier 2024-06-20 17:02:13 -07:00
Kamil Jarosz 8b2c9d8157 avm2: Add stub for winding behavior of drawing triangles in Graphics
Currently, even-odd winding rule is used to render triangles,
but FP uses non-zero.
2024-06-19 23:24:55 +02:00
Kamil Jarosz 14ac29e435 avm2: Handle wrong number of coords when drawing triangles in Graphics
FP throws an error when the number of coordinates is odd for the indexed
version, and when is not divisible by 6 for the non-indexed version.
2024-06-19 23:24:55 +02:00
Kamil Jarosz 86a3086808 avm2: Fix errors thrown when culling has wrong value in Graphics
The errors differ between Graphics.drawTriangles and GraphicsTrianglePath.
The former throws 2004, whereas the latter throws 2008.
2024-06-19 23:24:55 +02:00
Kamil Jarosz 64acc7b3ad avm2: Ignore out of range and non-integer triangle indices in Graphics
This behavior imitates FP's behavior.
2024-06-19 23:24:55 +02:00
Kamil Jarosz 2b9289e1b2 avm2: Implement culling for drawing triangles in Graphics 2024-06-19 23:24:55 +02:00
Kamil Jarosz 4993d70594 avm2: Unify drawing triangles in graphics.rs
There were two implementations for drawing triangles: one for
Graphics.drawTriangles, and the other for GraphicsTrianglePath.
However, they behave almost identically, so this patch uses
draw_triangles_internal for both.
2024-06-19 23:24:55 +02:00
Kamil Jarosz 9e1248d130 avm2: Add make_error_1125 2024-06-19 23:24:55 +02:00
Nathan Adams 4d12e0e5b4 core: Implement LocalConnection 2024-06-19 21:54:25 +02:00
Kamil Jarosz 0f534c837f avm2: Improve drawing paths in Graphics
This patch improves drawing paths in Graphics:
* no error is thrown when there are 0 commands,
* no error is thrown when there are missing data points,
* an error is thrown when the number of coordinates is odd,
* no error is thrown and command processing is stopped
  when an unknown command is encountered,
* the vector with parsed commands is removed, as it's not needed.
2024-06-19 20:58:33 +02:00
Kamil Jarosz fae1500cc6 avm2: Add make_error_2004 2024-06-19 20:58:33 +02:00
Kamil Jarosz 687e049dc1 debug_ui: Add option to draw layout boxes for EditText 2024-06-19 20:12:43 +02:00
TÖRÖK Attila 35f5227e2d core,desktop: Update `wgpu` to `v0.20.1`, bump `egui` 2024-06-18 23:10:43 +02:00
Lord-McSweeney 9c8e4d7dce core: Remove `DataFormat` for `URLLoader` loads since we can just check the string field
Also, don't set the data as variables if there is no data to set.
2024-06-18 20:56:50 +02:00
Lord-McSweeney 7a1ee0e109 core: `URLLoader` should check the data format after loading finishes, not when starting a load 2024-06-18 20:56:50 +02:00
Crowdin Bot a731b82b54 chore: Update translations from Crowdin 2024-06-17 14:57:20 +02:00
Adrian Wielgosik cacfb5a6a4 avm2: Fix and unify converting SWF's 1-based to 0-based slot indexing 2024-06-16 16:11:17 -07:00
Tom Schuster 4463a69c87 avm2: Implement namespace support for flash.xml 2024-06-15 22:26:57 +02:00
Crowdin Bot 8fb214ea71 chore: Update translations from Crowdin 2024-06-14 22:41:19 +02:00
Lord-McSweeney 18c50df838 avm2: Don't get the `Class` class by using `instance_of` in `into_finished_class` 2024-06-13 23:49:52 +02:00
Lord-McSweeney 1705870951 avm2: Class initializers will be called twice when constructing two `ClassObject`s for one `Class` 2024-06-13 23:49:52 +02:00
Lord-McSweeney 7e7032d908 avm2: Remove `constructor`, `native_constructor`, and `call_handler` fields from `ClassObject`
They were already present on `Class`
2024-06-13 23:49:52 +02:00
dependabot[bot] 52404bc3aa build(deps): bump the cargo-minor group with 6 updates
Bumps the cargo-minor group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap) | `4.5.4` | `4.5.7` |
| [url](https://github.com/servo/rust-url) | `2.5.0` | `2.5.1` |
| [linkme](https://github.com/dtolnay/linkme) | `0.3.26` | `0.3.27` |
| [regex](https://github.com/rust-lang/regex) | `1.10.4` | `1.10.5` |
| [zip](https://github.com/zip-rs/zip2) | `2.1.2` | `2.1.3` |


Updates `clap` from 4.5.4 to 4.5.7
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.4...v4.5.7)

Updates `url` from 2.5.0 to 2.5.1
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.5.0...v2.5.1)

Updates `linkme` from 0.3.26 to 0.3.27
- [Release notes](https://github.com/dtolnay/linkme/releases)
- [Commits](https://github.com/dtolnay/linkme/compare/0.3.26...0.3.27)

Updates `regex` from 1.10.4 to 1.10.5
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.10.4...1.10.5)

Updates `zip` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/zip-rs/zip2/releases)
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zip-rs/zip2/compare/v2.1.2...v2.1.3)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: url
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: linkme
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: quick-xml
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cargo-minor
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
- dependency-name: zip
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cargo-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-13 01:05:26 +02:00
Crowdin Bot 4fa5853f88 chore: Update translations from Crowdin 2024-06-13 00:44:49 +02:00
Nathan Adams c9b111996f web: Make serde (more-)optional in core 2024-06-13 00:22:33 +02:00
Kamil Jarosz e8dbd58306 core: Use DisplayObject.movie() instead of context.swf where applicable
This prevents problems in case of mixed-AVM content.
2024-06-13 00:06:10 +02:00
Kamil Jarosz 39e8a15db5 core: Update focus after handling press, not before
Updating focus before handling press caused onRollOut
to be fired before onPress, but it should be fired after.
2024-06-12 23:49:06 +02:00
TÖRÖK Attila 516c56db15 chore: Suppress a `clippy::doc_lazy_continuation` beta lint false positive 2024-06-12 23:09:39 +02:00
TÖRÖK Attila 0d25b5dba8 chore: Fix `clippy::needless_borrows_for_generic_args` beta lint 2024-06-12 22:42:18 +02:00
TÖRÖK Attila 6b4ee7dfde chore: Fix most `clippy::doc_lazy_continuation` beta lints 2024-06-12 22:42:18 +02:00
Lord-McSweeney 0e062c4b9b avm2: Replace two more uses of `instance_of` with `instance_class` 2024-06-12 19:46:32 +02:00
Lord-McSweeney 97f75cc0b4 avm2: Move interface logic from `ClassObject` to `Class` 2024-06-12 19:46:32 +02:00
Lord-McSweeney 90c370d61b avm2: Always store a Class on vtable 2024-06-12 19:46:32 +02:00
Lord-McSweeney 2c9028d2f9 avm2: Replace most uses of `instance_of` with `instance_class`
Also store a Class -> alias mapping instead of a ClassObject -> alias mapping for AMF.
2024-06-12 19:46:32 +02:00
Crowdin Bot 3b9bb3f5db chore: Update translations from Crowdin 2024-06-10 00:02:16 +02:00
Adrian Wielgosik bc85638920 avm2: Port registerClassAlias logic to Rust 2024-06-09 09:14:20 -07:00
Kamil Jarosz 142fc1d232 core: Prevent copying and cutting text from a password field 2024-06-09 15:38:35 +02:00
Kamil Jarosz c23ec0782a core: Prevent pasting empty string when the clipboard is empty 2024-06-09 15:38:35 +02:00
Kamil Jarosz a2751c3c0f core: Add English translations for copy/paste context menu 2024-06-09 15:38:35 +02:00
Kamil Jarosz 6117c3c68e core: Add copy/paste context menu for EditText
This menu is shown when the EditText is focused and the mouse hovers over it.
It has the following elements, which may be disabled
when e.g. the field is not editable / selectable:
* Cut,
* Copy,
* Paste,
* Delete,
* Select All.
2024-06-09 15:38:35 +02:00
Kamil Jarosz 0910104c3b core: Add EditText::is_text_control_applicable
This method is useful for checking whether the given text control code
may be applied to the current state of the EditText.
2024-06-09 15:38:35 +02:00
Kamil Jarosz 1f3c230691 core: Pass UpdateContext to ContextMenuState::build_builtin_items
This simplifies code, as we do not have to access
the same elements over and over.
2024-06-09 15:38:35 +02:00
Adrian Wielgosik 2955add845 avm2: In Array.sortOn, behave better in presence of nonsense args 2024-06-09 11:11:57 +02:00
Lord-McSweeney 1d1eb6c966 avm2: Fix `NewClass` not popping the base class and better null propagation in optimizer 2024-06-08 14:25:43 -07:00