From b2263efaf09bacb93cee7741d8cb03db9f7b7944 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 2 Sep 2011 17:24:14 +0000 Subject: [PATCH] cache user-agent processing --- .../src/net/i2p/router/web/CSSHelper.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java index 7f6f9455fe..269f0c7768 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/CSSHelper.java @@ -1,10 +1,16 @@ package net.i2p.router.web; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + /** * Copied and modded from I2PTunnel IndexBean (GPL) * @author zzz */ public class CSSHelper extends HelperBase { + + private static final Map<String, Boolean> _UACache = new ConcurrentHashMap(); + public CSSHelper() {} public static final String PROP_THEME_NAME = "routerconsole.theme"; @@ -69,7 +75,18 @@ public class CSSHelper extends HelperBase { * @since 0.8.5 */ public boolean allowIFrame(String ua) { - return ua == null || + if (ua == null) + return true; + Boolean brv = _UACache.get(ua); + if (brv != null) + return brv.booleanValue(); + boolean rv = shouldAllowIFrame(ua); + _UACache.put(ua, Boolean.valueOf(rv)); + return rv; + } + + private static boolean shouldAllowIFrame(String ua) { + return // text !(ua.startsWith("Lynx") || ua.startsWith("w3m") || ua.startsWith("ELinks") || ua.startsWith("Links") || -- GitLab