* NEWS item
* added `onStop` arg to `shinyApp()` (and renamed our internal `onEnd` - which is what was calling `on.exit()` already - to `onStop` as well)
* added onStop() function
* add entry for documentation
* make it work for all possible app structures (interactive, saved as app.R, saved as ui.R and server.R)
* fix#1772: make sure `onStart` works in all scenarios
* update NEWS
* improved wording
* more wording
* and more wording
* don't stop execution if a `onStop` callback function results in an error
* remove "(all sessions have been disconnected)" because it's misleading
* add @seealso documentation
* shamefully forgot to Cmd Shift D
* change code place
* Code review feedback
* onStop: use session argument instead of scope
Squashed commit of the following:
commit bdc4080032ff6b5b2de0f799aa307272f3905003
Author: Dean Attali <daattali@gmail.com>
Date: Mon Oct 17 18:18:03 2016 -0700
add PR link to news item
commit 22c695cde2b270ba8ec37d4862ad1f30de76ce68
Author: Dean Attali <daattali@gmail.com>
Date: Mon Oct 17 15:01:24 2016 -0700
update NEWS for #1422 fix
commit e669548c13f84f0929e4131c641a8333e08baa26
Author: Dean Attali <daattali@gmail.com>
Date: Sat Oct 15 12:45:49 2016 -0700
allow shiny.trace option to specify which type of messages to relay; fixes#1422
* Check whether hosting environment supports bookmarking
* Show notification on startup if hosting environment doesn't support saved-to-server bookmarking
* Rename invalidateReactiveValue to freezeReactiveValue
* Make onFlush and onFlushed use 'once' argument
* session$flushOutput: schedule another flush if needed
* Catch all errors before they propagate to websocket
* Restore original logic for progressKeys
It is dangerous to set this on a per-process basis. If we even
still want the ability to have observer errors not kill the
session (debatable) we should do so by having an option on the
session object that is set when the shiny server function runs.
Not only does this remove support for the option, but now we
will refuse to connect and will abort the session if the option
is set to a non-NULL value. This is to prevent apps from moving
forward with the assumption that their option will work, when
it really won't. (I doubt anyone is using it anyway, it's so
obscure...)