From 45cb976292b6caabe5b748c87b476de2b9970dbc Mon Sep 17 00:00:00 2001 From: NotMyFault Date: Fri, 18 Feb 2022 23:11:51 +0100 Subject: [PATCH] Plugins may read icons from an URL --- core/src/main/java/hudson/Functions.java | 4 ++++ test/src/test/java/lib/layout/IconTest.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/hudson/Functions.java b/core/src/main/java/hudson/Functions.java index 720312c88c..cefe42a14c 100644 --- a/core/src/main/java/hudson/Functions.java +++ b/core/src/main/java/hudson/Functions.java @@ -2336,6 +2336,10 @@ public class Functions { } if (iconMetadata == null) { + if (!iconGuess.startsWith("/") && !iconGuess.startsWith("http")) { + iconGuess = "/" + iconGuess; + } + iconSource = rootURL + (iconGuess.startsWith("/images/") || iconGuess.startsWith("/plugin/") ? getResourcePath() : "") + iconGuess; } diff --git a/test/src/test/java/lib/layout/IconTest.java b/test/src/test/java/lib/layout/IconTest.java index b54ffffd80..478cf76da4 100644 --- a/test/src/test/java/lib/layout/IconTest.java +++ b/test/src/test/java/lib/layout/IconTest.java @@ -151,7 +151,7 @@ public class IconTest { assertIconToSymbolOkay(taskDivs.get(5).getElementsByTagName("svg").get(0)); assertIconToImageOkay(taskDivs.get(6).getElementsByTagName("img").get(0), "/plugin/xxx/icon.png"); - assertIconToImageOkay(taskDivs.get(7).getElementsByTagName("img").get(0), "plugin/xxx/icon.png"); + assertIconToImageOkay(taskDivs.get(7).getElementsByTagName("img").get(0), "/plugin/xxx/icon.png"); } @TestExtension("testTasks")