From ec20e1ece2a97476f4c51682f71cbe6e6253411f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 5 Feb 2020 16:35:23 +0000 Subject: [PATCH] Embed CSP meta tag and stop using script-src unsafe-inline --- src/vector/app.js | 5 +++-- src/vector/index.html | 11 ++--------- src/vector/index.js | 5 +++++ 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/vector/app.js b/src/vector/app.js index c77049f51..00699dc52 100644 --- a/src/vector/app.js +++ b/src/vector/app.js @@ -162,14 +162,15 @@ function onTokenLoginCompleted() { } export async function loadApp() { - if (window.vector_indexeddb_worker_script === undefined) { + const vectorIndexeddbWorkerScript = document.body.dataset.vectorIndexeddbWorkerScript; + if (!vectorIndexeddbWorkerScript) { // If this is missing, something has probably gone wrong with // the bundling. The js-sdk will just fall back to accessing // indexeddb directly with no worker script, but we want to // make sure the indexeddb script is present, so fail hard. throw new Error("Missing indexeddb worker script!"); } - MatrixClientPeg.setIndexedDbWorkerScript(window.vector_indexeddb_worker_script); + MatrixClientPeg.setIndexedDbWorkerScript(vectorIndexeddbWorkerScript); CallHandler.setConferenceHandler(VectorConferenceHandler); window.addEventListener('hashchange', onHashChange); diff --git a/src/vector/index.html b/src/vector/index.html index fc880633e..60e7a1199 100644 --- a/src/vector/index.html +++ b/src/vector/index.html @@ -22,6 +22,7 @@ + <% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) { var file = htmlWebpackPlugin.files.css[i]; var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/); @@ -34,18 +35,10 @@ <% } } %> -
+ - - diff --git a/src/vector/index.js b/src/vector/index.js index 278c62107..3f34f2c1d 100644 --- a/src/vector/index.js +++ b/src/vector/index.js @@ -29,6 +29,11 @@ require('highlight.js/styles/github.css'); import './rageshakesetup'; import './modernizr'; +// load service worker if available on this platform +if ('serviceWorker' in navigator) { + navigator.serviceWorker.register('sw.js'); +} + // Ensure the skin is the very first thing to load for the react-sdk. We don't even want to reference // the SDK until we have to in imports. console.log("Loading skin...");