Debugging and Configuring Shumway

Yury Delendik edited this page Feb 5, 2015 · 22 revisions

Using the Extension

The additional configuration parameters can be set in the about:config to change the default Shumway behavior (when a parameter is absent, create a new one):

  • shumway.ignoreCTP (boolean) - for Firefox 21 and up, the extension is shown only when the click-to-play is enabled (see the setting below). Set the value of this key to true to bypass this check and always show the Shumway extension instead of the plug-in (the browser must be restarted when this setting is modified);
  • plugins.click_to_play (boolean) - enables click-to-play (requires native Flash plug-in to be installed), also for Firefox 23, on about:addons plugins tab, set "Shockwave Flash" to "Ask to Activate";
  • shumway.turboMode (boolean) - if true is specified, overrides frame rate to 60 fps;
  • shumway.whitelist (string) - comma-separated list for the sites/domains that can be accessed using URLStream/NetStream objects, if the request originated to the different URL than movie domain;
  • shumway.appCompiler (boolean) - if true is specified, enables compiler for the flash AVM2 byte code in the SWF files (default is true);
  • shumway.sysCompiler (boolean) - if true is specified, enables compiler for the system libraries (default is false);
  • shumway.verifier (boolean) - if true is specified, enables variable type verification and execution optimization for the compiler (default is true);
  • shumway.force_hidpi (boolean) - if true is specified, always uses devicePixelRatio to scale canvas, e.g. looks sharper on retina displays (default is false);
  • shumway.hud (boolean) - if true is specified, shows frame/performance counters;
  • shumway.enableForPrivate (boolean) - if true is specified, enables Shumway in Private Browsing mode;
  • shumway.externalInterface.trace - if true is specified, traces external interface calls;
  • shumway.swf.whitelist (string) - (starting Firefox 38, see bug 870553) comma-separated list of the patterns for urls of the SWFs or/and pages. An example for SWF url pattern is http://example.org/*.swf and an example for page url pattern is @http://example.org/movies/*. The space can be use to combine these two, e.g. @http://example.org/movies/* http://example.org/*.swf. Multiple entries can be used as @http://example.com/movies/*,http://example.org/*.swf;
  • dom.mozBrowserFramesEnabled (boolean) - if true, enables mozBrowser attribute for iframe, and allows Shumway instances to be opened out-of-process;
  • shumway.rtmp.enabled (boolean) - if true, RTMP communications is enabled.
  • dom.mozTCPSocket.enabled (boolean) - if true, enables mozTCPSocket, when RTMP is used this object is needed for "rtmp" and "rtmps" protocols;

Using the Inspector

The inspector provided as one of the examples. The local web server shall be used to open the inspector web page -- the files/resources are loaded using XMLHttpRequest, which is not working for local file system. The local web server can be created by the grunt server (or python -m SimpleHTTPServer) command.

The inspector is located in the examples/inspector folder and can be opened in the browser using e.g. http://localhost:8000/examples/inspector/inspector.html url. The "Open File" button can be used to open SWF and ABC files from the local system.

The inspector has "Setting" tab on the right to specify various operation modes and settings.

Also the inspector accepts number of arguments in the query string:

  • rfile - loads and opens specified SWF file, e.g. http://localhost:8000/examples/inspector/inspector.html?rfile=../examples/racing/race3.swf will automatically open and run race3 file. rfile can accept sanity tests or ABC files as an input;
  • flashvars - flash movie parameters;
  • yt - allows to specify video ID and open youtube video by sniffing flashvars from the HTML page, requires systemXHR permission (see how to enable permissions at https://github.com/mozilla-b2g/gaia/blob/master/apps/email/README.md).