From 2d2a76dd0ada087c168134c0a873e0f9a98eea05 Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Tue, 19 Nov 2019 00:54:46 +0200 Subject: tdf#128523: drop cache directory when restart manager initiates restart This would allow to re-create cached elements that could be broken. Restarts include those after a version upgrade (with bugfixes); using safe mode dialog (after crashes/problems); some configuration changes. An example of issue fixed by this is bad cached icons from versions affected by tdf#119020, that still make troubles to users after a year after the reason of generation of bad icons had been fixed [1, 2, 3]. [1] https://ask.libreoffice.org/en/question/211759 [2] https://ask.libreoffice.org/en/question/215263 [3] https://ask.libreoffice.org/en/question/217831 Change-Id: I2362547c25f8f265915efafa4e224435eda03e20 Reviewed-on: https://gerrit.libreoffice.org/83138 Reviewed-by: Mike Kaganski Tested-by: Mike Kaganski --- desktop/source/app/app.cxx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx index 31f7abbf9b4e..82422c835210 100644 --- a/desktop/source/app/app.cxx +++ b/desktop/source/app/app.cxx @@ -96,6 +96,7 @@ #include #include #include +#include #include #include #include @@ -327,6 +328,15 @@ void DoRestartActionsIfNecessary(bool quickstart) { } } +void RemoveIconCacheDirectory() +{ + // See getIconCacheUrl in vcl/source/image/ImplImageTree.cxx + OUString sUrl = "${$BRAND_BASE_DIR/" LIBO_ETC_FOLDER + "/" SAL_CONFIGFILE("bootstrap") ":UserInstallation}/cache"; + rtl::Bootstrap::expandMacros(sUrl); + utl::UCBContentHelper::Kill(sUrl); +} + } namespace { @@ -1678,6 +1688,9 @@ int Desktop::doShutdown() if (pExecGlobals->bRestartRequested) { + // tdf#128523 + RemoveIconCacheDirectory(); + // a restart is already requested, usually due to a configuration change // that needs a restart to get active. If this is the case, do not try // to use SecureUserConfig to safe this still untested new configuration -- cgit