Upgrade notes for Shiny 1.7.2
Full changelog
Breaking changes
- Closed #3626:
renderPlot()
(andplotPNG()
) now usesragg::agg_png()
by default when the{ragg}
package is installed. To restore the previous behavior, setoptions(shiny.useragg = FALSE)
. (#3654)
New features and improvements
Closed #1545:
insertUI()
now executes<script>
tags. (#3630)fileInput()
can set thecapture
attribute to facilitates user access to a device’s media capture mechanism, such as a camera, or microphone, from within a file upload control (W3C HTML Media Capture). (Thanks to khaled-alshamaa, #3481)Closed tidyverse/dplyr#5552: Compatibility of dplyr 1.0 (and rlang chained errors in general) with
req()
,validate()
, and friends.Closed tidyverse/dplyr#6154: Values from an
actionButton()
had S3 classes in the incorrect order.Closed #3346: Default for
ref
input inrunGithub()
changed from"master"
to"HEAD"
. (#3564)Closed #3619: In R 4.2,
splitLayout()
no longer raises warnings about incorrect length in anif
statement. (Thanks to @dmenne, #3625)
Bug fixes
Closed #3250:rlang/
{tidyeval}
conditions (i.e., warnings and errors) are no longer filtered from stack traces. (#3602)Closed #3581: Errors in throttled/debounced reactive expressions no longer cause the session to exit. (#3624)
Closed #3657:
throttle.ts
and theThrottler
typescript objects it provides now function as intended. (Thanks gto @dvg-p4, #3659)The auto-reload feature (
options(shiny.autoreload=TRUE)
) was not being activated bydevmode(TRUE)
, despite a console message asserting that it was. (#3620)Closed #2297: If an error occurred in parsing a value in a bookmark query string, an error would be thrown and nothing would be restored. Now a message is displayed and that value is ignored. (Thanks to @daattali, #3385)
Restored the previous behavior of automatically guessing the
Content-Type
header fordownloadHandler
functions when no explicitcontentType
argument is supplied. (#3393)Previously, updating an input value without a corresponding Input binding element did not trigger a JavaScript
shiny:inputchanged
event. Now, if no Input binding element is found, theshiny:inputchanged
event is triggered onwindow.document
. (#3584)Closed #2955: Input and output bindings previously attempted to use
el['data-input-id']
, but that never worked. They now useel.getAttribute('data-input-id')
instead. (#3538)
Minor improvements
When taking a test snapshot, the sort order of the json keys of the
input
,output
, andexport
fields is currently sorted using the locale of the machine. This can lead to inconsistent test snapshot results. To opt-in to a consistent ordering of snapshot fields with shinytest, please set the global optionoptions(shiny.snapshotsortc = TRUE)
. shinytest2 users do not need to set this value. (#3515)Closed rstudio/shinytest2#222: When restoring a context (i.e., bookmarking) from a URL, Shiny now better handles a trailing
=
after_inputs_
and_values_
. (#3648)Shiny’s internal HTML dependencies are now mounted dynamically instead of statically. (#3537)
HTML dependencies that are sent to dynamic UI now have better type checking, and no longer require a
dep.src.href
field. (#3537)