The bug being worked around appears to be fixed either in CodeMirror or Firefox (tested with FF 29).
Importantly, the workaround appears to *introduce* incorrect behavior
closes#5192closes#5364
can fail with SecurityError,
depending on browser privacy settings
disable UI Tour menu entry if tour instantiation fails
ref: sorich87/bootstrap-tour#262
If the test controller tries to read the file while the server it has
started is in the middle of writing it, it gets invalid JSON and fails.
This just loops again until we have valid JSON to read.
this way those running the test suite can discover that there are a
bunch of js test groups. New output of `iptest -j` looks like this
```
Test group: kernel.inprocess -------------------------------------- OK
Test group: config ------------------------------------------------ OK
Test group: extensions -------------------------------------------- OK
Test group: lib --------------------------------------------------- OK
Test group: testing ----------------------------------------------- OK
Test group: core -------------------------------------------------- OK
Test group: terminal ---------------------------------------------- OK
Test group: utils ------------------------------------------------- OK
Test group: kernel ------------------------------------------------ OK
Test group: nbformat ---------------------------------------------- OK
Test group: qt ---------------------------------------------------- OK
Test group: autoreload -------------------------------------------- OK
Test group: html -------------------------------------------------- OK
Test group: nbconvert --------------------------------------------- OK
Test group: parallel ----------------------------------------- NOT RUN
Test group: js/base ------------------------------------------ NOT RUN
Test group: js/notebook -------------------------------------- NOT RUN
Test group: js/widgets --------------------------------------- NOT RUN
Test group: js/tree ------------------------------------------ NOT RUN
Test group: js/casperjs -------------------------------------- NOT RUN
Test group: js/services -------------------------------------- NOT RUN
```
both requests take:
- code (up to full cell)
- cursor_pos (cursor offset in unicode characters)
and object_info_replies return a mime-bundle, instead of structured data
- set linger on sockets (avoid hang on exit)
- actually close sockets, not just zmq streams (blame pyzmq, aka me)
seems to be necessary for js/notebook/shutdown test to avoid hanging on Python 3.4.