Browse Source

Move bulk to react-sdk and reference it from riot-web land

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
pull/12292/head
Michael Telatynski 2 years ago
parent
commit
7664eb27c4
  1. 12
      src/vector/usercontent/index.html
  2. 49
      src/vector/usercontent/index.js
  3. 4
      webpack.config.js

12
src/vector/usercontent/index.html

@ -1,12 +0,0 @@
<html>
<head>
<!--
Hello! If you're reading this, perhaps you're wondering what this
file is doing and why your Riot is using it.
In short, this allows Riot to isolate potentially unsafe encrypted
attachments into their own origin, away from your Riot.
Stay curious!
-->
</head>
<body></body>
</html>

49
src/vector/usercontent/index.js

@ -1,49 +0,0 @@
var params = window.location.search.substring(1).split('&');
var lockOrigin;
for (var i = 0; i < params.length; ++i) {
var parts = params[i].split('=');
if (parts[0] === 'origin') lockOrigin = decodeURIComponent(parts[1]);
}
function remoteRender(event) {
const data = event.data;
const img = document.createElement("img");
img.id = "img";
img.src = data.imgSrc;
img.style = data.imgStyle;
const a = document.createElement("a");
a.id = "a";
a.rel = "noopener";
a.target = "_blank";
a.download = data.download;
a.style = data.style;
a.style.fontFamily = "Arial, Helvetica, Sans-Serif";
a.href = window.URL.createObjectURL(data.blob);
a.appendChild(img);
a.appendChild(document.createTextNode(data.textContent));
const body = document.body;
// Don't display scrollbars if the link takes more than one line to display.
body.style = "margin: 0px; overflow: hidden";
body.appendChild(a);
}
function remoteSetTint(event) {
const data = event.data;
const img = document.getElementById("img");
img.src = data.imgSrc;
img.style = data.imgStyle;
const a = document.getElementById("a");
a.style = data.style;
}
window.onmessage = function(e) {
if (lockOrigin === undefined || e.origin === lockOrigin) {
if (e.data.blob) remoteRender(e);
else remoteSetTint(e);
}
};

4
webpack.config.js

@ -34,7 +34,7 @@ module.exports = (env, argv) => {
"bundle": "./src/vector/index.js",
"indexeddb-worker": "./src/vector/indexeddb-worker.js",
"mobileguide": "./src/vector/mobile_guide/index.js",
"usercontent": "./src/vector/usercontent/index.js",
"usercontent": "./node_modules/matrix-react-sdk/src/vector/usercontent/index.js",
// CSS themes
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
@ -320,7 +320,7 @@ module.exports = (env, argv) => {
// This is the usercontent sandbox's entry point (separate for iframing)
new HtmlWebpackPlugin({
template: './src/vector/usercontent/index.html',
template: './node_modules/matrix-react-sdk/src/vector/usercontent/index.html',
filename: 'usercontent/index.html',
minify: argv.mode === 'production',
chunks: ['usercontent'],

Loading…
Cancel
Save