Allowing relative URLs as values for the "URL" parameter, in the
applet mode.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2524 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/java/src/com/tightvnc/rfbplayer/README b/java/src/com/tightvnc/rfbplayer/README
index a021ca4..5497520 100644
--- a/java/src/com/tightvnc/rfbplayer/README
+++ b/java/src/com/tightvnc/rfbplayer/README
@@ -17,10 +17,11 @@
Value: URL of the session file to play.
Default: none (required parameter).
- This parameter tells the player which session file to play. Please note
- that if the player operates as an unsigned applet, it is able to play
- only files from the host where the applet was loaded from. It's a usual
- JVM security limitation.
+ This parameter tells the player which session file to play. The URL can
+ be either a complete one (e.g. "file:/your/path/session.fbs") or relative
+ (e.g. "session.fbs"). Please note that if the player operates as an
+ unsigned applet, it is able to play only files from the host where the
+ applet was loaded from. It's a usual JVM security limitation.
--> "Position"
diff --git a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
index 3256804..0a7838c 100644
--- a/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
+++ b/java/src/com/tightvnc/rfbplayer/RfbPlayer.java
@@ -120,7 +120,11 @@
}
try {
- url = new URL(sessionURL);
+ if (inAnApplet) {
+ url = new URL(getCodeBase(), sessionURL);
+ } else {
+ url = new URL(sessionURL);
+ }
rfb = new RfbProto(url);
vc = new VncCanvas(this);
diff --git a/java/src/com/tightvnc/rfbplayer/index.html b/java/src/com/tightvnc/rfbplayer/index.html
index f5e0eea..303bc5d 100644
--- a/java/src/com/tightvnc/rfbplayer/index.html
+++ b/java/src/com/tightvnc/rfbplayer/index.html
@@ -3,7 +3,7 @@
<BODY>
<APPLET CODE=RfbPlayer.class ARCHIVE=RfbPlayer.jar
WIDTH=800 HEIGHT=640>
-<param name=FILE value="./session.fbs">
+<param name=URL value="session.fbs">
</APPLET>
</BODY>
</HTML>