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 thecaptureattribute 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
refinput inrunGithub()changed from"master"to"HEAD". (#3564)Closed #3619: In R 4.2,
splitLayout()no longer raises warnings about incorrect length in anifstatement. (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.tsand theThrottlertypescript 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-Typeheader fordownloadHandlerfunctions when no explicitcontentTypeargument is supplied. (#3393)Previously, updating an input value without a corresponding Input binding element did not trigger a JavaScript
shiny:inputchangedevent. Now, if no Input binding element is found, theshiny:inputchangedevent 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, andexportfields 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.hreffield. (#3537)