[prev in list] [next in list] [prev in thread] [next in thread]
List: openjdk-distro-pkg-dev
Subject: /hg/icedtea-web: Added protection against to small applets. Enha...
From: jvanek () icedtea ! classpath ! org
Date: 2019-02-07 15:50:31
Message-ID: hg.daea55188c54.1549554631.8643924302249223276 () icedtea ! classpath ! org
[Download RAW message or body]
changeset daea55188c54 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=daea55188c54
author: Jiri Vanek <jvanek@redhat.com>
date: Thu Feb 07 16:50:07 2019 +0100
Added protection against to small applets. Enhanced understanding of properties like \
width/height
* netx/net/sourceforge/jnlp/AppletDesc.java: (getWidth) and (getHeight) now query \
proeprties for new keys and resize acodringly to them and/
* netx/net/sourceforge/jnlp/config/Defaults.java: new keys made validated by \
integer. Treshold must be positive
* netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added keys of \
deployment.small.size.treshold to allow value since which applet is to small (default \
10), deployment.small.size.override.{width,height} to set new size negative values to \
enforce it, positive to be used as fallback, if no width/heigh (lower/upper/cammel) \
parameter found default is set to search for width/height param and enforce 800x600 \
if not present
diffstat:
ChangeLog | 11 ++
netx/net/sourceforge/jnlp/AppletDesc.java | 53 +++++++++++
netx/net/sourceforge/jnlp/config/Defaults.java | 15 +++
netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java | 6 +
4 files changed, 85 insertions(+), 0 deletions(-)
diffs (141 lines):
diff -r 87556fa6a511 -r daea55188c54 ChangeLog
--- a/ChangeLog Thu Feb 07 14:12:39 2019 +0100
+++ b/ChangeLog Thu Feb 07 16:50:07 2019 +0100
@@ -1,3 +1,14 @@
+2019-02-07 Jiri Vanek <jvanek@redhat.com>
+
+ Added protection against to small applets. Enhanced understanding of properties \
like width/height + * netx/net/sourceforge/jnlp/AppletDesc.java: (getWidth) and \
(getHeight) now query proeprties for new keys + and resize acodringly to them and/
+ * netx/net/sourceforge/jnlp/config/Defaults.java: new keys made validated by \
integer. Treshold must be positive + * \
netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java: added keys of \
deployment.small.size.treshold to allow + value since which applet is to small \
(default 10), deployment.small.size.override.{width,height} to set new size \
+ negative values to enforce it, positive to be used as fallback, if no width/heigh \
(lower/upper/cammel) parameter found + default is set to search for width/height \
param and enforce 800x600 if not present +
2019-02-07 Jiri Vanek <jvanek@redhat.com>
Desktop sortcuts name is now based on title. And only if missing, then on file
diff -r 87556fa6a511 -r daea55188c54 netx/net/sourceforge/jnlp/AppletDesc.java
--- a/netx/net/sourceforge/jnlp/AppletDesc.java Thu Feb 07 14:12:39 2019 +0100
+++ b/netx/net/sourceforge/jnlp/AppletDesc.java Thu Feb 07 16:50:07 2019 +0100
@@ -18,6 +18,9 @@
import java.net.*;
import java.util.*;
+import net.sourceforge.jnlp.config.DeploymentConfiguration;
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
+import net.sourceforge.jnlp.util.logging.OutputController;
/**
* The applet-desc element.
@@ -91,6 +94,12 @@
* @return the width
*/
public int getWidth() {
+ if (width < \
Integer.valueOf(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_TRESHOLD))) \
{ + Integer nww = fixWidth();
+ if (nww != null) {
+ return nww;
+ }
+ }
return width;
}
@@ -98,6 +107,12 @@
* @return the height
*/
public int getHeight() {
+ if (height < \
Integer.valueOf(JNLPRuntime.getConfiguration().getProperty(DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_TRESHOLD))) \
{ + Integer nwh = fixHeight();
+ if (nwh != null) {
+ return nwh;
+ }
+ }
return height;
}
@@ -120,4 +135,42 @@
parameters.put(name, value);
}
+ private Integer fixHeight() {
+ return fixSize(DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_HEIGHT, \
"Height", "height", "HEIGHT"); + }
+ private Integer fixWidth() {
+ return fixSize(DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_WIDTH, \
"Width", "width", "WIDTH"); + }
+
+ private Integer fixSize(String depKey, String... keys) {
+ OutputController.getLogger().log("Found to small applet!");
+ try {
+ Integer depVal = \
Integer.valueOf(JNLPRuntime.getConfiguration().getProperty(depKey)); + if \
(depVal == 0) { + OutputController.getLogger().log("using its size");
+ return null;
+ }
+ if (depVal < 0) {
+ OutputController.getLogger().log("enforcing " + depVal);
+ return Math.abs(depVal);
+ }
+ for (String key : keys) {
+ String sizeFromParam = parameters.get(key);
+ if (sizeFromParam != null) {
+ try {
+ OutputController.getLogger().log("using its "+key+"=" + \
sizeFromParam); + return Integer.valueOf(sizeFromParam);
+ } catch (NumberFormatException ex) {
+ OutputController.getLogger().log(ex);
+ }
+ }
+ }
+ OutputController.getLogger().log("defaulting to " + depVal);
+ return depVal;
+ } catch (NumberFormatException | NullPointerException ex) {
+ OutputController.getLogger().log(OutputController.Level.ERROR_ALL, ex);
+ return null;
+ }
+ }
+
}
diff -r 87556fa6a511 -r daea55188c54 netx/net/sourceforge/jnlp/config/Defaults.java
--- a/netx/net/sourceforge/jnlp/config/Defaults.java Thu Feb 07 14:12:39 2019 +0100
+++ b/netx/net/sourceforge/jnlp/config/Defaults.java Thu Feb 07 16:50:07 2019 +0100
@@ -450,6 +450,21 @@
DeploymentConfiguration.KEY_SYSTEM_CONFIG_MANDATORY,
BasicValueValidators.getBooleanValidator(),
String.valueOf(false)
+ } ,
+ {
+ DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_WIDTH,
+ BasicValueValidators.getRangedIntegerValidator(-9999, \
+9999), + String.valueOf(800)//0 is disabling it; negative is \
enforcing it + },
+ {
+ DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_HEIGHT,
+ BasicValueValidators.getRangedIntegerValidator(-9999, \
+9999), + String.valueOf(600)//0 is disabling it; negative is \
enforcing it + },
+ {
+ DeploymentConfiguration.KEY_SMALL_SIZE_OVERRIDE_TRESHOLD,
+ BasicValueValidators.getRangedIntegerValidator(0, 1000),
+ String.valueOf(10)// treshold when applet is considered as \
too small }
};
diff -r 87556fa6a511 -r daea55188c54 \
netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java
--- a/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Feb 07 \
14:12:39 2019 +0100
+++ b/netx/net/sourceforge/jnlp/config/DeploymentConfiguration.java Thu Feb 07 \
16:50:07 2019 +0100 @@ -244,6 +244,12 @@
public static final String KEY_SYSTEM_CONFIG = "deployment.system.config";
public static final String KEY_SYSTEM_CONFIG_MANDATORY = \
"deployment.system.config.mandatory";
+ /**
+ * Possibility to control hack which resizes very small applets
+ */
+ public static final String KEY_SMALL_SIZE_OVERRIDE_TRESHOLD = \
"deployment.small.size.treshold"; + public static final String \
KEY_SMALL_SIZE_OVERRIDE_WIDTH = "deployment.small.size.override.width"; + public \
static final String KEY_SMALL_SIZE_OVERRIDE_HEIGHT = \
"deployment.small.size.override.height";
public static final String TRANSFER_TITLE = "Legacy configuration and cache \
found. Those will be now transported to new locations";
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic