From 512eb14d946167ab1ba2b7c25b40b2a4367aaaca Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 18 Oct 2019 18:11:34 +0200 Subject: [PATCH] make sure that the urls for theming images are valid In some circumstances the url generation seems to fail, resulting in an empty image url which causes the browser to load the main page multiple times, leading to issues with state tokens Signed-off-by: Robin Appelman --- apps/theming/lib/ThemingDefaults.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 8e65fafe850..ec96889fdeb 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -334,11 +334,12 @@ class ThemingDefaults extends \OC_Defaults { $customFavicon = null; } + $route = false; if ($image === 'favicon.ico' && ($customFavicon !== null || $this->imageManager->shouldReplaceIcons())) { - return $this->urlGenerator->linkToRoute('theming.Icon.getFavicon', ['app' => $app]) . '?v=' . $cacheBusterValue; + $route = $this->urlGenerator->linkToRoute('theming.Icon.getFavicon', ['app' => $app]); } if ($image === 'favicon-touch.png' && ($customFavicon !== null || $this->imageManager->shouldReplaceIcons())) { - return $this->urlGenerator->linkToRoute('theming.Icon.getTouchIcon', ['app' => $app]) . '?v=' . $cacheBusterValue; + $route = $this->urlGenerator->linkToRoute('theming.Icon.getTouchIcon', ['app' => $app]); } if ($image === 'manifest.json') { try { @@ -347,11 +348,16 @@ class ThemingDefaults extends \OC_Defaults { return false; } } catch (AppPathNotFoundException $e) {} - return $this->urlGenerator->linkToRoute('theming.Theming.getManifest') . '?v=' . $cacheBusterValue; + $route = $this->urlGenerator->linkToRoute('theming.Theming.getManifest'); } if (strpos($image, 'filetypes/') === 0 && file_exists(\OC::$SERVERROOT . '/core/img/' . $image )) { - return $this->urlGenerator->linkToRoute('theming.Icon.getThemedIcon', ['app' => $app, 'image' => $image]); + $route = $this->urlGenerator->linkToRoute('theming.Icon.getThemedIcon', ['app' => $app, 'image' => $image]); } + + if ($route) { + return $route . '?v=' . $cacheBusterValue; + } + return false; } -- 2.39.5