Commit Graph

5784 Commits

Author SHA1 Message Date
Tal Hayon 7ed38850fd core: implement displayState for Stage in avm1/2 2021-11-11 16:20:05 -07:00
relrelb 7b95441874 core: Re-use `EditText::html_text` in `EditText::propagate_text_binding` 2021-11-11 08:05:33 +02:00
relrelb cf05137c1f core: `EditText::html_text` cannot fail 2021-11-11 08:05:33 +02:00
relrelb 848b721165 xml: Remove `XmlNode::walk` 2021-11-11 08:05:33 +02:00
relrelb c4729d733c core: Avoid one usage of `FormatSpans::replace_text`
Use `FormatSpans::from_text` instead.
2021-11-11 08:05:33 +02:00
relrelb 3cab464026 core: Use `quick-xml` directly when creating `FormatSpans` 2021-11-11 08:05:33 +02:00
relrelb 8c64951b15 core: Remove unused `EditText::document` 2021-11-11 08:05:33 +02:00
relrelb a900aae63e core: Make `EditText::set_html_text` accept a `&str` 2021-11-11 08:05:33 +02:00
relrelb 0787662079 core: Make `EditText::set_text` accept a `&str` 2021-11-11 08:05:33 +02:00
David Wendt c4b680fef9 tests: Add test for `EventDispatcher.toString` 2021-11-10 18:16:26 -07:00
David Wendt 67e7526517 avm2: `EventDispatcher` contains an undocumented `toString` method. 2021-11-10 18:16:26 -07:00
David Wendt 360ae1f044 avm2: Private classes in different scripts are allowed to share the same name without conflicting. 2021-11-10 17:43:02 -07:00
David Wendt 60eb88b326 avm2: Note currently incorrect behavior intended to be fixed in a future PR. 2021-11-09 17:28:33 -07:00
David Wendt 4cfa3253d5 avm2: Impl `Proxy`'s enumeration-related methods. 2021-11-09 17:28:33 -07:00
David Wendt 4289f89350 avm2: Split out enumerant values into a separate method as well. 2021-11-09 17:28:33 -07:00
David Wendt 297526269c avm2: Allow objects to assign arbitrary enumerant indexes, by having objects drive the enumeration process rather than just counting from one 2021-11-09 17:28:33 -07:00
David Wendt 5b58301795 tests: Fix all remaining test bugs caused by discrepancies between how Ruffle and Flash Player handle dynamic `Namespace`s.
For some reason, in Flash Player, `RTQName`s that use a dynamic namespace do *not* pick the same namespace that you would ordinarily get if declaring or referencing that namespace statically. My suspicion is that this has something to do with E4X namespaces, which are flagged as a separate space from ES4 namespaces.
2021-11-09 17:28:33 -07:00
David Wendt 1170385c3b avm2: Implement `Proxy.hasproperty` 2021-11-09 17:28:33 -07:00
David Wendt 427b2bf17a avm2: Implement `Proxy.deleteproperty` 2021-11-09 17:28:33 -07:00
David Wendt 503dc08594 avm2: Refactor `Object.delete_property` to work similar to get/set 2021-11-09 17:28:33 -07:00
David Wendt e67ca1afe0 avm2: Implement `Proxy.callproperty` 2021-11-09 17:28:33 -07:00
David Wendt 301fd1020f avm2: Implement `Proxy.setproperty` 2021-11-09 17:28:33 -07:00
David Wendt 8f47f494e7 avm2: Implement `Proxy`'s `getproperty` behavior. 2021-11-09 17:28:33 -07:00
David Wendt f05e92c974 avm2: Fix `RTQNameL`'s parameters being popped backwards 2021-11-09 17:28:33 -07:00
David Wendt 452a87da84 tests: In the `getproperty` test, test each multiname type directly to rule out any funny business.
For some reason, Flash Player treats `getlex`ing `flash.utils.flash_proxy` as a separate namespace from `pushnamespace`ing it. Don't ask why.
2021-11-09 17:28:33 -07:00
David Wendt d225d03043 avm2: Implement `flash.utils.Proxy` 2021-11-09 17:28:33 -07:00
David Wendt 685d386389 tests: Add a test for every part of `Proxy` that does not involve E4X. 2021-11-09 17:28:33 -07:00
David Wendt 51af0f708f core: Remove commented-out helper methods. 2021-11-09 16:48:29 -07:00
David Wendt c78e5e31fd core: Store `DisplayObjectBase` in `InteractiveObjectBase`.
This also necessitated removing the `impl_display_object` family of macros, as you cannot name a field of a field in a macro expression. I tried. So instead I've reverted to standard default method inheritance, in the same way we did with AVM2 objects.
2021-11-09 16:48:29 -07:00
David Wendt 2ea35dcbb1 avm2: Enforce the `mouseEnabled` flag. 2021-11-09 16:48:29 -07:00
David Wendt b2e0586252 docs: Document the current event-handling flow in `Player`. 2021-11-09 16:48:29 -07:00
David Wendt bb8ca8f136 core: Move `handle_clip_event` to `TInteractiveObject`, and split it into three pieces.
`handle_clip_event` is now a default trait method that calls three methods in order:

 * `filter_clip_event`, to determine which events that either this object or it's children may handle
 * `propagate_to_children`, to check if any children of this object want to handle an event. (This also includes AVM2 button states, which are not technically "children" in the usual sense...)
 * `event_dispatch`, which does the actual "object reacts to an event" bit if no child handles the object.

These roughly correspond to phases of existing event-handling objects pre-`InteractiveObject`.
2021-11-09 16:48:29 -07:00
David Wendt 95f105aadd core: `Stage`, `EditText`, and `Avm2Button` should also be interactive objects. 2021-11-09 16:48:29 -07:00
David Wendt e71c749db5 avm2: Implement accessors for new `InteractiveObject` flags. 2021-11-09 16:48:29 -07:00
David Wendt 618c32f859 core: Add `InteractiveObject` trait for objects that can receive input events 2021-11-09 16:48:29 -07:00
relrelb 89718475df avm2: Introduce `TextFormatObject` 2021-11-09 16:21:35 -07:00
relrelb 9308513ae8 chore: Appease clippy 2021-11-06 10:44:01 +02:00
David Wendt 6c7d10e4d4 avm2: Requests for instance traits instead resolve to an associated public-namespace method 2021-11-02 16:54:38 -06:00
David Wendt 9d3e249cf9 tests: Add test for interface namespaces (accessed via coercion semantic sugar) 2021-11-02 16:54:38 -06:00
dependabot[bot] 867ad14302 build(deps-dev): bump @typescript-eslint/eslint-plugin in /web
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 4.32.0 to 4.33.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.33.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 09:10:08 +02:00
dependabot[bot] 1f73314e44 build(deps-dev): update ts-node requirement in /web
Updates the requirements on [ts-node](https://github.com/TypeStrong/ts-node) to permit the latest version.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v10.2.1...v10.4.0)

---
updated-dependencies:
- dependency-name: ts-node
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 09:09:53 +02:00
dependabot[bot] 6927ed8064 build(deps-dev): update style-loader requirement in /web
Updates the requirements on [style-loader](https://github.com/webpack-contrib/style-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/style-loader/releases)
- [Changelog](https://github.com/webpack-contrib/style-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/style-loader/compare/v3.3.0...v3.3.1)

---
updated-dependencies:
- dependency-name: style-loader
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 09:09:39 +02:00
dependabot[bot] b902d42529 build(deps-dev): bump @wdio/mocha-framework in /web
Bumps [@wdio/mocha-framework](https://github.com/webdriverio/webdriverio) from 7.13.2 to 7.16.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.13.2...v7.16.3)

---
updated-dependencies:
- dependency-name: "@wdio/mocha-framework"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:58:12 +02:00
dependabot[bot] 50d6e34933 build(deps-dev): bump eslint-plugin-jsdoc from 36.1.1 to 37.0.3 in /web
Bumps [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) from 36.1.1 to 37.0.3.
- [Release notes](https://github.com/gajus/eslint-plugin-jsdoc/releases)
- [Commits](https://github.com/gajus/eslint-plugin-jsdoc/compare/v36.1.1...v37.0.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-jsdoc
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:02:19 +02:00
dependabot[bot] 0ef702d415 build(deps): bump syn from 1.0.80 to 1.0.81
Bumps [syn](https://github.com/dtolnay/syn) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/1.0.80...1.0.81)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:02:06 +02:00
dependabot[bot] 9d8c7ab91c build(deps-dev): bump @types/firefox-webext-browser in /web
Bumps [@types/firefox-webext-browser](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/firefox-webext-browser) from 82.0.1 to 94.0.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/firefox-webext-browser)

---
updated-dependencies:
- dependency-name: "@types/firefox-webext-browser"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:01:02 +02:00
dependabot[bot] 0e947bb368 build(deps-dev): update css-loader requirement in /web
Updates the requirements on [css-loader](https://github.com/webpack-contrib/css-loader) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.3.0...v6.5.0)

---
updated-dependencies:
- dependency-name: css-loader
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:00:47 +02:00
dependabot[bot] 0948753e89 build(deps-dev): update typedoc requirement in /web
Updates the requirements on [typedoc](https://github.com/TypeStrong/TypeDoc) to permit the latest version.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.4...v0.22.7)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 07:00:28 +02:00
dependabot[bot] 195b0118c2 build(deps-dev): update webpack-dev-server requirement in /web
Updates the requirements on [webpack-dev-server](https://github.com/webpack/webpack-dev-server) to permit the latest version.
- [Release notes](https://github.com/webpack/webpack-dev-server/releases)
- [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.3.0...v4.4.0)

---
updated-dependencies:
- dependency-name: webpack-dev-server
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 06:59:47 +02:00
dependabot[bot] b3839f2199 build(deps-dev): bump @wdio/local-runner from 7.13.2 to 7.16.3 in /web
Bumps [@wdio/local-runner](https://github.com/webdriverio/webdriverio) from 7.13.2 to 7.16.3.
- [Release notes](https://github.com/webdriverio/webdriverio/releases)
- [Changelog](https://github.com/webdriverio/webdriverio/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webdriverio/webdriverio/compare/v7.13.2...v7.16.3)

---
updated-dependencies:
- dependency-name: "@wdio/local-runner"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-02 06:59:18 +02:00