diff --git a/BrowserAddon/app.js b/BrowserAddon/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/BrowserAddon/background.js b/BrowserAddon/background.js
new file mode 100644
index 0000000000000000000000000000000000000000..1a2993f86383a5b231e699b59799ce6cf0521e82
--- /dev/null
+++ b/BrowserAddon/background.js
@@ -0,0 +1,135 @@
+let socket;
+let trackingAktiv = false;
+let isConnected = false;
+let distraktions;
+
+function connectWebSocket() {
+    if (isConnected) {
+        console.log("Bereits verbunden.");
+        return;
+    }
+
+    // Versuche, eine Verbindung herzustellen
+    socket = new WebSocket("ws://localhost:8080");
+
+    // Timeout für die Verbindung (z.B. 5 Sekunden)
+    let connectionTimeout = setTimeout(() => {
+        console.log("Verbindung timeout, Server reagiert nicht.");
+        socket.close();  // Schließt den WebSocket
+        isConnected = false; // Setzt isConnected auf false
+    }, 5000); // Timeout nach 5 Sekunden
+
+    socket.onopen = function() {
+        console.log("Verbunden mit der WPF-Anwendung.");
+        clearTimeout(connectionTimeout);
+        isConnected = true; // Markiere als verbunden
+        socket.send("Hallo vom Addon");
+    };
+
+    // Empfang von Nachrichten
+    socket.onmessage = function(event) {
+        const message = parseMessage(event.data);
+        console.log("Nachricht empfangen: ", message);
+        //navigator.clipboard.writeText(message);
+
+        if(message.action === "sendJsonContent") {
+           //navigator.clipboard.writeText(message);
+           distraktions = createDistractionList(message);
+        }
+
+        if (message.action === "startTracking" && message.status === true) {
+            console.log("Tracking gestartet.");
+            addTabListeners();
+            trackingAktiv = true;
+        } else if (message.action === "stopTracking" && message.status === false) {
+            console.log("Tracking gestoppt.");
+            removeTabListeners();
+            trackingAktiv = false;
+        }
+    };
+
+    socket.onclose = function() {
+        console.log("Verbindung geschlossen.");
+        isConnected = false;
+        // Versuche, nach einer kurzen Zeit erneut eine Verbindung herzustellen
+        setTimeout(connectWebSocket, 5000); // 5 Sekunden warten, bevor erneut versucht wird
+    };
+
+    socket.onerror = function(error) {
+        console.error("WebSocket Fehler:", error);
+        socket.close(); // Schließe den Socket, um den Fehler zu behandeln und es erneut zu versuchen
+    };
+
+}
+
+connectWebSocket();
+addTabListeners();
+
+function createDistractionList(message) {
+    const result = {};
+    for (content in message) {
+        const distractingUrls = message["content"]["Games"].filter(item => item.distracting).map(item => item.url);
+        
+        if (distractingUrls.length > 0) {
+            result[content] = distractingUrls;
+        }
+    }
+    return result;
+}
+
+function parseMessage(message) {
+    try {
+        return JSON.parse(message);
+    } catch {
+        return message;
+    }
+}
+
+
+// Funktion zum Hinzufügen der Event-Listener
+function addTabListeners() {
+    browser.tabs.onCreated.addListener(handleTabCreated);
+    browser.tabs.onUpdated.addListener(handleTabUpdated);
+    browser.tabs.onActivated.addListener(handlerTabActiv);
+    console.log("Tab-Listener hinzugefügt.");
+}
+
+// Funktion zum Entfernen der Event-Listener
+function removeTabListeners() {
+    browser.tabs.onCreated.removeListener(handleTabCreated);
+    browser.tabs.onUpdated.removeListener(handleTabUpdated);
+    browser.tabs.onActivated.removeListener(handlerTabActiv);
+    console.log("Tab-Listener entfernt.");
+}
+
+function handleTabCreated(tab) {
+    checkUrl(tab.url, tab.tabId);
+};
+
+
+function handleTabUpdated(tabId, changeInfo, tab) {
+    if (changeInfo.status === 'complete') {
+        checkUrl(tab.url, tabId);
+    }
+};
+
+function handlerTabActiv(activeInfo) {
+    browser.tabs.get(activeInfo.tabId).then((tab) => {
+        checkUrl(tab.url, tab.tabId);
+    });
+}
+
+
+function checkUrl(url, tabId) {
+    for (content in distraktions.content) {
+    //const content = "youtube.com";
+        if (url.includes(distraktions["content"][content])) {
+            socket.send(`Distraktion Bemerkt: ${url}`);
+
+            browser.tabs.query({ active: true, currentWindow: true }).then((tabs) => {
+                const activeTab = tabs[0];
+                browser.tabs.sendMessage(activeTab.id, { action: "showOverlay", tabId: tabId });
+            });
+        }
+    }
+};
\ No newline at end of file
diff --git a/BrowserAddon/content.js b/BrowserAddon/content.js
new file mode 100644
index 0000000000000000000000000000000000000000..97a7aa548570a1a2807a6a582f2ee8bcca984c3a
--- /dev/null
+++ b/BrowserAddon/content.js
@@ -0,0 +1,51 @@
+function showOverlay() {  
+    // Erstelle das Overlay
+    let overlay = document.createElement('div');
+    overlay.style.position = 'fixed';
+    overlay.style.top = '0';
+    overlay.style.left = '0';
+    overlay.style.width = '100vw';
+    overlay.style.height = '100vh';
+    overlay.style.backgroundColor = 'rgba(70, 65, 65, 0.8)';
+    overlay.style.zIndex = '9999';
+    overlay.style.display = 'flex';  // Wende Flexbox auf das Overlay an
+    overlay.style.justifyContent = 'center';  // Horizontale Zentrierung
+    overlay.style.alignItems = 'center';      // Vertikale Zentrierung
+    //overlay.style.pointerEvents = 'none'; // Klicks durchlassen, wenn nötig
+    //document.body.appendChild(overlay);
+
+    // Erstelle das Text-Element
+    let overlayText = document.createElement('div');
+    overlayText.innerText = "Diese Seite wird von CoFlow geblockt";
+    overlayText.style.textAlign  = "Center";
+    overlayText.style.color = 'red';
+    overlayText.style.fontSize = '40px';
+    overlayText.style.padding = '5rem';
+    overlayText.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
+    overlayText.style.borderRadius = '10px';
+
+    // Füge den Text zum Overlay hinzu
+    overlay.appendChild(overlayText);
+
+    // Füge das Overlay zum Body hinzu
+    document.body.appendChild(overlay);
+
+    document.body.style.overflow = 'hidden';
+    document.documentElement.style.overflow = 'hidden';
+}
+
+chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
+    if (message.action === "showOverlay") {
+        showOverlay();
+        pauseVideo();
+    }
+});
+
+// Funktion zum Pausieren des Videos im Ziel-Tab
+function pauseVideo(tabId) {
+    let video = document.querySelector('video');
+    if (video && !video.paused) {
+        video.pause(); // Pausiert das Video
+        console.log('Video auf Tab ' + document.title + ' pausiert.');
+    }
+}
diff --git a/BrowserAddon/manifest.json b/BrowserAddon/manifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..1252b8c3cdbc432b57c8d77ddc3a91d23e46e965
--- /dev/null
+++ b/BrowserAddon/manifest.json
@@ -0,0 +1,25 @@
+{
+    "manifest_version": 3,
+    "name": "URL-Kopierer",
+    "version": "1.0",
+    "description": "Kopiert die URL des aktiven Tabs in die Zwischenablage.",
+    "permissions": ["tabs", "activeTab", "scripting", "clipboardWrite"],
+    "host_permissions": ["<all_urls>"],
+    "background": {
+    "scripts": ["background.js"],
+    "persistent": false
+  },
+    "action": {
+      "default_popup": "popup.html",
+      "default_icon": "icon.png"
+    },
+    "content_security_policy": {
+    "extension_pages": "script-src 'self'; object-src 'self'; connect-src 'self' ws://localhost:8080"
+  },
+  "content_scripts": [
+        {
+            "matches": ["<all_urls>"],
+            "js": ["content.js"]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/BrowserAddon/popup.html b/BrowserAddon/popup.html
new file mode 100644
index 0000000000000000000000000000000000000000..a56e446cccb278d8d8bc56920791e6f01561771b
--- /dev/null
+++ b/BrowserAddon/popup.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <title>URL Kopierer</title>
+  <script src="app.js"></script>
+  <style>
+    body { font-family: Arial, sans-serif; margin: 10px; text-align: center; }
+    button { padding: 10px 20px; margin-top: 20px; cursor: pointer; }
+  </style>
+</head>
+<body>
+  <h1>URL kopieren</h1>
+  <button id="copy-url">Kopiere URL</button>
+
+  <!-- Overlay HTML -->
+<div id="block-overlay" style="position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: black; z-index: 9999; pointer-events: auto; display: none;">
+  <!-- Optional: Text oder Ladebalken anzeigen -->
+</div>
+
+</body>
+</html>
diff --git a/BrowserAddon/vOG.xpi b/BrowserAddon/vOG.xpi
new file mode 100644
index 0000000000000000000000000000000000000000..220d0bc7702f6f8d3f72933bb053ea09f91adaa5
Binary files /dev/null and b/BrowserAddon/vOG.xpi differ