diff --git a/src/de/tudbut/tryumph/example/FileServer.java b/src/de/tudbut/tryumph/example/FileServer.java index ff6903a..6f38d3f 100644 --- a/src/de/tudbut/tryumph/example/FileServer.java +++ b/src/de/tudbut/tryumph/example/FileServer.java @@ -94,7 +94,9 @@ public class FileServer implements IRequestCatcher, RequestHandler.Listener { @Override public Task processBrowserContext(BrowserContext context) { if(data.getBoolean("noscript") != null) - context.useJavaScript = !data.getBoolean("noscript"); + context.addJavaScript = !data.getBoolean("noscript"); + if(data.getBoolean("cookies") != null) + context.addState = data.getBoolean("cookies"); return IRequestCatcher.super.processBrowserContext(context); } diff --git a/src/de/tudbut/tryumph/server/BrowserContext.java b/src/de/tudbut/tryumph/server/BrowserContext.java index 5eed747..c6ca0bd 100644 --- a/src/de/tudbut/tryumph/server/BrowserContext.java +++ b/src/de/tudbut/tryumph/server/BrowserContext.java @@ -27,8 +27,9 @@ public class BrowserContext { public final UUID uuid = UUID.randomUUID(); public TCN data; private final IRequestCatcher requestCatcher; - public boolean useJavaScript = false; private boolean needsChange = false; + public boolean addState = true; + public boolean addJavaScript = true; private BrowserContext(IRequestCatcher requestCatcher) { this.requestCatcher = requestCatcher; @@ -65,7 +66,8 @@ public class BrowserContext { private Task init() { return t((res, rej) -> { requestCatcher.processBrowserContext(this).err(rej).then(res).ok(); - needsChange = true; + if(addState) + needsChange = true; }); } @@ -78,7 +80,7 @@ public class BrowserContext { public Task onSend(Response response) { return AsyncJSON.write(data) .compose((resp, res, rej) -> { - if(response.isHTML) { + if(addJavaScript && response.isHTML) { Document document = response.getHTML(); Element element = document.createElement("script"); Node text = document.createTextNode( @@ -110,11 +112,13 @@ public class BrowserContext { head.appendChild(element); response.updateHTMLData(); } - if(needsChange) { - response.cookiesToSet.put("tryumph.data", resp); - needsChange = false; + if(addState) { + if(needsChange) { + response.cookiesToSet.put("tryumph.data", resp); + needsChange = false; + } + response.cookiesToSet.put("tryumph.uuid", uuid.toString()); } - response.cookiesToSet.put("tryumph.uuid", uuid.toString()); res.call(response); }); } @@ -148,14 +152,13 @@ public class BrowserContext { return builder.toString(); } stream = new FileInputStream(file); - } - - int i = 0; - while((i = stream.read()) != -1) { - builder.append((char) i); - } + int i = 0; + while((i = stream.read()) != -1) { + builder.append((char) i); + } - stream.close(); + stream.close(); + } if(!TryConfig.nocache) cache.put(file, builder.toString()); @@ -184,18 +187,17 @@ public class BrowserContext { return builder.toString(); } stream = new FileInputStream(file); + ByteArrayOutputStream s = new ByteArrayOutputStream(); + + int i = 0; + while((i = stream.read()) != -1) { + s.write(i); + } + + stream.close(); + s.close(); + st = new String(s.toByteArray()); } - - ByteArrayOutputStream s = new ByteArrayOutputStream(); - - int i = 0; - while((i = stream.read()) != -1) { - s.write(i); - } - - stream.close(); - s.close(); - st = new String(s.toByteArray()); if(!TryConfig.nocache) cache.put(file, st); } catch (IOException e) {