diff --git a/src/org/thoughtcrime/securesms/WebxdcActivity.java b/src/org/thoughtcrime/securesms/WebxdcActivity.java index 6edeac9be..159a38f8c 100644 --- a/src/org/thoughtcrime/securesms/WebxdcActivity.java +++ b/src/org/thoughtcrime/securesms/WebxdcActivity.java @@ -33,8 +33,6 @@ import java.io.InputStream; public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcEventDelegate { private static final String TAG = WebxdcActivity.class.getSimpleName(); - private static final String INTERNAL_SCHEMA = "webxdc"; - private static final String INTERNAL_DOMAIN = "local.app"; private DcContext dcContext; private DcMsg dcAppMsg; @@ -74,7 +72,11 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE webSettings.setAllowUniversalAccessFromFileURLs(false); webView.addJavascriptInterface(new InternalJSApi(), "InternalJSApi"); - webView.loadUrl(INTERNAL_SCHEMA + "://" + INTERNAL_DOMAIN + "/index.html"); + // `msg_id` in the subdomain makes sure, different apps using same files do not share the same cache entry + // (WebView may use a global cache shared across objects). + // (a random-id would also work, but would need maintenance and does not add benefits as we regard the file-part interceptRequest() only, + // also a random-id is not that useful for debugging) + webView.loadUrl("webxdc://msg" + appMessageId + ".localhost/index.html"); Util.runOnAnyBackgroundThread(() -> { JSONObject info = this.dcAppMsg.getWebxdcInfo();