Commit Graph

10834 Commits

Author SHA1 Message Date
Nathan Adams 63f85446b7 Renamed builtins to globals, `_global` is a reference to the globals object 2019-09-02 20:45:19 +02:00
Nathan Adams 200129452a Pass along `ActionContext` to functions 2019-09-02 19:28:38 +02:00
David Wendt 9dd01494f3 build.sh should be executable 2019-09-01 11:49:27 -06:00
David Wendt 406cc746ce The MimeType for `application/x-shockwave-flash` should list it's extension as `swf`, not `spl`. 2019-08-31 18:57:26 -04:00
Nathan Adams 002272d7b5 Functions return `[type Function]` when converted to strings 2019-08-31 18:28:28 +02:00
Nathan Adams 7a18ece455 `DisplayObject`s all have a AVM1 `Value`. Added `toString()` default method for Objects (but not functions) 2019-08-31 17:54:15 +02:00
Nathan Adams bd63a82e9e Split off `Value` into its own file, for slightly less code clutter 2019-08-31 14:29:46 +02:00
Nathan Adams 2eca394a58 Implemented `typeof` for movieclips and functions 2019-08-31 14:09:37 +02:00
David Wendt fc67f0872f Don't break Ruffle if we encounter an embed or object without a size. 2019-08-30 22:27:51 -04:00
David Wendt adc1a79155 Place the extension related build system back .
Built extension files now live in `web/extension/build`.
2019-08-30 22:27:51 -04:00
David Wendt b4b38057e4 Add checks for the Ruffle element being connected.
When a Ruffle player element is disconnected, attempts to play SWF files
fail semi-silently.

We also check for nested objects, since only the top should be
successful in loading.
2019-08-30 22:27:50 -04:00
David Wendt f01f479f54 Don't forget random bits of object tag contents! 2019-08-30 22:27:50 -04:00
David Wendt 2b2f27afad Falsify a better-sounding version of Flash.
This is at least the version Chrome claims to have.
2019-08-30 22:27:50 -04:00
David Wendt 0d8b72acce Don't try to wrap text nodes, it won't end well. 2019-08-30 22:27:50 -04:00
David Wendt 190666fe91 Interdict Flash tags that use ActiveX. 2019-08-30 22:27:50 -04:00
David Wendt 21454b327b Fix incorrect centering on homestarrunner.net its dot com 2019-08-30 22:27:49 -04:00
David Wendt 61171037cd Recognize really old FutureSplash era tags as Flash 2019-08-30 22:27:49 -04:00
David Wendt 9ec4892ae7 Fix regression caused by the extension file move 2019-08-30 22:27:49 -04:00
David Wendt de00145755 Add icons for the extension 2019-08-30 22:27:49 -04:00
David Wendt cdf50e29bd Move the build system and package files out of the extension directory.
This keeps the node_modules out of the extension package.
2019-08-30 22:27:49 -04:00
David Wendt ce5ab95a9a Compatibility with Chrome's extension environment 2019-08-30 22:27:48 -04:00
David Wendt fa5a3164ea should be executable on unixlikes 2019-08-30 22:27:48 -04:00
David Wendt c02b4c111b Overwrite navigator.plugins to defeat flash detects 2019-08-30 22:27:48 -04:00
David Wendt 101b1e5715 Fix not being able to handle multiple embeds.
This is caused by `HTMLCollection` being too smart for it's own good and
removing elements behind the loop's back.
2019-08-30 22:27:48 -04:00
David Wendt 6fbdc6f1f4 Respect the page's width and height settings in our custom elements 2019-08-30 22:27:47 -04:00
David Wendt 8060802465 Kill `bootstrap.js`, load the WASM ourselves.
Instead of forcing a chunk load on Webpack just so we can have Webpack prepare the WASM for us, we're now using the `no-modules` mode of `wasm-pack` manually and loading the resulting files ourselves.

I still have to force Ruffle to load outside of the extension sandbox though...
2019-08-30 22:27:47 -04:00
David Wendt 7c6ad57443 Let's completely force webpack to run outside of the extension sandbox.
This idea was stolen from @devsnek, whom I'm currently writing an explanation for.
2019-08-30 22:27:47 -04:00
David Wendt 7a6169275d Tell webpack about the extension resource URLs 2019-08-30 22:27:47 -04:00
David Wendt 385b9f807e Fix most (though not all) of our extension bugs.
I still can't figure out how to keep Webpack from making requests to the
injected site...
2019-08-30 22:27:47 -04:00
David Wendt de5a2c31c0 Add embed support. 2019-08-30 22:27:47 -04:00
David Wendt 9529893437 Add console error logging for failed SWF loads 2019-08-30 22:27:46 -04:00
David Wendt ee8b6d57ba Don't pull params until after we've been connected.
Otherwise, we don't have any params yet...
2019-08-30 22:27:46 -04:00
David Wendt 5655ad44a3 It turns out, we don't need to wait for DOMContentLoaded. 2019-08-30 22:27:46 -04:00
David Wendt c0e6866745 Fix the demo file upload option 2019-08-30 22:27:46 -04:00
David Wendt be21a0dbbb Configure the `<ruffle-object>` tag to style as a
block element, like `<object>`
2019-08-30 22:27:45 -04:00
David Wendt 2a2dbba21f Use a custom element to actually house the Ruffle
instance, even though we can't really upgrade `<object>` directly...
2019-08-30 22:27:45 -04:00
David Wendt 6f32fc022c Copy attributes from hijacked Flash objects 2019-08-30 22:27:45 -04:00
David Wendt 0414e24ce2 First start on extension packaging 2019-08-30 22:27:45 -04:00
David Wendt bac5ecfe8d Alter the demo a bit so that it latches onto an
already-existing object tag and replaces it with ruffle.
2019-08-30 22:27:45 -04:00
Nathan Adams 14786aeba6 Implemented more movie clip methods + added a basic macro to cut down on boilerplate for movie clip methods 2019-08-31 01:25:14 +02:00
Nathan Adams 543419abee Added `Object::set_function` helper method 2019-08-30 20:49:56 +02:00
Nathan Adams 2fd7d456a4 Movie clip access from AS. Functions are now callable objects, and receive `this`. 2019-08-30 20:37:48 +02:00
Mike Welsh 35652ae87e chore: Update dependencies
Run cargo update. Remove git dependency on jpeg-decoder (the latest
version was published to crates.io). Update swf-rs to latest to
disable smoothing in SWFv7 and lower (addresses #28).
2019-08-29 14:57:12 -07:00
Mike Welsh 1f85a779ac Bitmap smoothing is only an option in SWFv8+ 2019-08-29 14:01:59 -07:00
Nathan Adams 87e6b766c2 Use named functions for builtins 2019-08-28 21:43:20 -05:00
Nathan Adams 2378ea3881 Shuffled around some avm1 builtins & types 2019-08-28 21:43:20 -05:00
Nathan Adams a74d1734af Initial work on avm1 method calling, local and global variables.
This contains just enough AS1 support for early trivial loading screens to not crash (ie badgers badgers badgers)
2019-08-28 21:43:20 -05:00
Mike Welsh f41470129d desktop: Skip path on tessellation error
lyon vomits a lot on various tessellations. Previously this would
bail out immediately for the entire shape, resulting in missing art.
Now we just skip that particular path, and the rest of the shape
should get tessellated as normal.
2019-08-26 18:06:10 -07:00
Mike Welsh 0b72ad1c00 core: Fix text position with multiple text blocks
The text x position would not be remembered between text blocks,
so the positioning of such text would be incorrect. Now the x position
is properly advanced.

Fixes #42.
2019-08-26 17:46:38 -07:00
Mike Welsh 6a5c5ab1df chore: Add rustfmt.toml and rustfmt pass 2019-08-26 16:38:48 -07:00