commit f56ae7514e2109013686a1a77cc26ae1740ba04f
Author: clerie <git@clerie.de>
Date:   Fri Jul 3 20:54:27 2020 +0200

    Init repository

diff --git a/js/background.js b/js/background.js
new file mode 100644
index 0000000..4b4a9f7
--- /dev/null
+++ b/js/background.js
@@ -0,0 +1,12 @@
+function replaceTileserver(request) {
+  var url = request.url.replace("tile.openstreetmap.org", "tiles.demostat.de");
+  console.log("custom-openstreetmap-tile-server: " + request.url + " -> " + url);
+  return {redirectUrl: url};
+}
+
+urls = [
+  "*://*.tile.openstreetmap.org/*"
+]
+
+
+chrome.webRequest.onBeforeRequest.addListener(replaceTileserver, {urls: urls}, ["blocking"]);
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..f553a9c
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,26 @@
+{
+
+  "manifest_version": 2,
+  "name": "Custom OpenStreetMap Tile Server",
+  "version": "0.0.1",
+
+  "description": "Set a custom OpenStreetMap Tile Server, to speed up map loading.",
+  "homepage_url": "https://git.clerie.de/clerie/custom-openstreetmap-tile-server/",
+  "icons": {
+    "73": "media/icon-73.png",
+    "228": "media/icon-228.png"
+  },
+
+  "author": "https://clerie.de/",
+
+  "background": {
+    "scripts": ["js/background.js"]
+  },
+
+  "options_ui": {
+    "page": "settings/index.html"
+  },
+
+  "permissions": ["webRequest", "webRequestBlocking", "<all_urls>", "storage"]
+
+}
diff --git a/settings/index.html b/settings/index.html
new file mode 100644
index 0000000..c94289e
--- /dev/null
+++ b/settings/index.html
@@ -0,0 +1,21 @@
+<html>
+  <head>
+    <meta charset="utf-8">
+  </head>
+
+  <body>
+    <form>
+      <h2>Tileserver</h2>
+      <label>
+        <input type="text" id="tileserver">
+      </label>
+      <br>
+      <br>
+      <button type="submit">Save</button>
+    </form>
+
+    <script src="settings.js"></script>
+
+  </body>
+
+</html>
diff --git a/settings/settings.js b/settings/settings.js
new file mode 100644
index 0000000..93e1259
--- /dev/null
+++ b/settings/settings.js
@@ -0,0 +1,23 @@
+function saveOptions(e) {
+  e.preventDefault();
+  browser.storage.local.set({
+    tileserver: document.querySelector("#tileserver").value
+  });
+}
+
+function restoreOptions() {
+
+  function setCurrentChoice(result) {
+    document.querySelector("#tileserver").value = result.tileserver;
+  }
+
+  function onError(error) {
+    console.log(`Error: ${error}`);
+  }
+
+  var getting = browser.storage.local.get("tileserver");
+  getting.then(setCurrentChoice, onError);
+}
+
+document.addEventListener("DOMContentLoaded", restoreOptions);
+document.querySelector("form").addEventListener("submit", saveOptions);