Yeah, it is related to my changes. I saw this message too, and I dismissed it. I was hoping that it would only happen the one time.
Firefox has a "helpful" feature where if you installed it a long time ago, and you haven't used it in a while, it suggests that you do a "refresh". Sometimes, old Firefox profiles can make an up-to-date version of Firefox unstable. It think that because the <royaleunit> Ant task is forcing Firefox to exit, it is detecting this as being a situation where a refresh can help. I suspect that if we do what it suggests, it will stop nagging us. However, since I disabled the JS tests, this isn't strictly necessary right now. I'll look into it more next month. I also have some ideas to try that might help the <royaleunit> Ant task properly release its port when done with a WebSocket on macOS. - Josh On 2019/05/24 03:32:30, Alex Harui <[email protected]> wrote: > Also note that when I Remote Desktop into apacheroyaleci, I have seen a > "Firefox closed unexpectedly when starting" dialog a couple of times. I've > not seen that before, so might be related to your changes. > > -Alex > > On 5/23/19, 7:47 PM, "Alex Harui" <[email protected]> wrote: > > First off, this sounds like a great new capability for Royale, so thanks > for working on it. > > Regarding JS test issues, did you rule out using Selenium? I haven't had > problems with it on Mac or Win for Mustella. > > HTH, > -Alex > > On 5/23/19, 4:20 PM, "Josh Tynjala" <[email protected]> wrote: > > Unfortunately, I had to disable the JS tests automatically running on > the royale-asjs main build because they intermittently fail on macOS. It > seems that the port that the WebSocket server uses isn't released until some > time after the <royaleunit> task completes. So, after one Royale library is > tested, the next might fail. I haven't figured out what's causing it yet. > Additionally, this issue does not affect Windows. > > The JS tests are still available, if you'd like to run them manually. > The following commands will run tests for CoreJS: > > cd frameworks/js/projects/CoreJS > ant test > > We currently have JS tests for CoreJS, BasicJS, and RoyaleUnitJS. > > - Josh > > On 2019/05/23 19:18:21, Josh Tynjala <[email protected]> wrote: > > Hey Royale team, > > > > Over the last several days, I've been working on RoyaleUnit again, > and I wanted to share a bit about what I've completed this week. > > > > ## New <royaleunit> Ant task > > > > Until now, we've been using the <flexunit> Ant task to run > RoyaleUnit tests on our SWF output in the Ant builds. The RoyaleUnit library > is similar to FlexUnit, but it's a completely new implementation that works > on both SWF and JS. When I first created RoyaleUnit, I could only get SWF > output successfully communicating with the <flexunit> Ant task. JS tests > could be run manually, but they could not be automated in Ant yet, for > technical reasons. > > > > On the SWF side, FlexUnit uses XMLSocket to communicate with the > <flexunit> Ant task. That was easy enough to port over to RoyaleUnit. > However, JS in the browser doesn't have a simple socket implementation that > would allow it to speak the same protocol. The closest thing is WebSocket, > but the <flexunit> Ant task doesn't know how to talk to WebSockets. So, I > created a new <royaleunit> Ant task that can still speak XMLSocket with SWF, > but also supports WebSocket for JS. > > > > Previously, you could specify "flash" or "air" for the player value > in the Ant task: > > > > <royaleunit player="flash" /> > > <royaleunit player="air" /> > > > > I added a new one, "html", that tells the Ant task to use > WebSockets. > > > > <royaleunit player="html" /> > > > > Then, you can use the swf property to specify the HTML file to > launch: > > > > <royaleunit player="html" swf="bin/js-debug/index.html" /> > > > > (It was already called "swf" in <flexunit>, but maybe we should > rename it or provide an alias) > > > > By default, it should use your default web browser. However, if > you'd prefer a different browser, you can use the command property: > > > > <royaleunit player="html" swf="bin/js-debug/index.html" > command="c:/Program Files/Mozilla Firefox/firefox.exe" /> > > > > ## Ant builds run JS tests > > > > After I got the <royaleunit> Ant task work, I updated our > royale-asjs Ant builds to run both SWF and JS tests. This was interesting > because it needs to launch a web browser, and there are some gotchas that I > discovered. > > > > In particular, Internet Explorer always requires the user to > manually click a button to allow JavaScript content to run in a local HTML > file. Likewise, the first time a local file is launched in Safari, it asks to > confirm if you want to open it or not. When you try to open the file again > later, Safari opens it without asking, but that first time isn't ideal. > > > > With the two default browsers not really good candidates, I decided > to try Chrome and Firefox. I found that both will run scripts without a > prompt, but they aren't necessarily installed on everyone's systems. So, > first it looks for Chrome (which is the most popular browser these days), and > then it falls back to Firefox. If it can't find either one, the build fails > with an error. > > > > In the case where a browser cannot be found automatically, there is > the option to specify a royaleunit.browser property when running the Ant > build script. You can either add it to your *env.properties* file in the root > of royale-asjs, or you can specify it on the command line like this: > > > > ant -Droyaleunit.browser=path/to/browser.exe > > > > (On macOS, I think that you need to point to the native executable > instead of the .app file, like > /Applications/Firefox.app/Contents/MacOS/firefox) > > > > When <royaleunit> finishes running JS tests in the browser, it will > automatically close the browser — except when that browser was already open > before you started running the tests. In that case, it will simply open a new > tab, which will remain open after the tests complete. So, it won't make you > lose all of your existing tabs or anything. However, it may be annoying to > have a bunch of extra tabs that you need to manually close every time that > you run the build script. In that case, just like I explained above, you can > use the royaleunit.browser property in env.properties or via the command line > to tell the build to run JS tests in a different browser that you prefer. As > I mentioned, if that browser isn't already open, the build script will exit > the browser automatically after running tests. > > > > I confirmed that apacheroyaleci on Azure has Firefox installed, and > at least one build has completed successfully on this server. > > > > Please let me know if this has disrupted anything. However, I think > that I covered the edge cases pretty well. > > > > - Josh > > > > > > >
