From 86bd7f72b6412d3c150a574186a05c1ce8da8a63 Mon Sep 17 00:00:00 2001 From: Kuba Orlik Date: Sun, 7 Nov 2021 15:45:26 +0100 Subject: [PATCH] Checkpoint --- background.ts | 2 -- extended-request.ts | 10 +++++++ report-window/report-window.html | 5 ++++ report-window/report-window.tsx | 49 +++++++++++++++++++++++++++++--- request-cluster.ts | 23 +++++++++++---- sidebar/stolen-data.tsx | 2 +- util.ts | 7 ++++- 7 files changed, 85 insertions(+), 13 deletions(-) diff --git a/background.ts b/background.ts index 9707bd5..4e2e800 100644 --- a/background.ts +++ b/background.ts @@ -1,5 +1,3 @@ import { init } from "./memory"; init(); - -alert("memory initialized!"); diff --git a/extended-request.ts b/extended-request.ts index 0f70832..26a1a5f 100644 --- a/extended-request.ts +++ b/extended-request.ts @@ -14,6 +14,7 @@ const whitelisted_cookies = [ export default class ExtendedRequest { public tabId: number; public url: string; + public shorthost: string; public requestHeaders: Request["requestHeaders"]; public origin: string; public initialized = false; @@ -153,5 +154,14 @@ export default class ExtendedRequest { this.tabId = data.tabId; this.url = data.url; this.requestHeaders = data.requestHeaders; + this.shorthost = getshorthost(data.url); + } + + hasMark() { + return this.stolenData.some((data) => data.hasMark()); + } + + getMarkedEntries() { + return this.stolenData.filter((data) => data.hasMark()); } } diff --git a/report-window/report-window.html b/report-window/report-window.html index 50dd91b..8a59dca 100644 --- a/report-window/report-window.html +++ b/report-window/report-window.html @@ -6,6 +6,11 @@
+ diff --git a/report-window/report-window.tsx b/report-window/report-window.tsx index 69f890d..c24b121 100644 --- a/report-window/report-window.tsx +++ b/report-window/report-window.tsx @@ -1,13 +1,54 @@ import React from "react"; import ReactDOM from "react-dom"; -import { Memory } from "../memory"; - -const memory = (window as any).memory as Memory; +import { getMemory } from "../util"; function Report() { + const origin = new URL(document.location.toString()).searchParams.get( + "origin" + ); + const clusters = getMemory().getClustersForOrigin(origin); + const marked_entries = Object.values(clusters) + .map((cluster) => cluster.getMarkedRequests()) + .reduce((a, b) => a.concat(b), []) + .map((request) => request.getMarkedEntries()) + .reduce((a, b) => a.concat(b), []); return (
-

Raport

+

Generuj treść maila dla {origin}

+ + + + + + + + + + + {marked_entries.map((entry) => ( + + + + + + + ))} + +
Adres docelowyŹródło danychTreść danych Klasyfikacja
{entry.request.shorthost} + {entry.source}:{entry.name} + {entry.markedKeys.join(",")} + {entry.value} + +
); } diff --git a/request-cluster.ts b/request-cluster.ts index 98fe72a..dd5dec5 100644 --- a/request-cluster.ts +++ b/request-cluster.ts @@ -5,7 +5,6 @@ export type Sources = "cookie" | "pathname" | "queryparams" | "header"; import { TCString, TCModel } from "@iabtcf/core"; import { getMemory, isJSONObject, isURL, parseToObject } from "./util"; -import memory from "./memory"; const id = (function* id() { let i = 0; @@ -37,9 +36,15 @@ export class StolenDataEntry { getPriority() { let priority = 0; - priority += Math.min(this.value.length, 100); + priority += Math.min(this.value.length, 50); const url = new URL(this.request.getOrigin()); - if (this.value.includes(url.host) || this.value.includes(url.pathname)) { + if (this.value.includes(url.host)) { + priority += 100; + } + if (this.value.includes(url.pathname)) { + priority += 100; + } + if (this.source === "cookie") { priority += 100; } return priority; @@ -90,8 +95,12 @@ export class StolenDataEntry { getMemory().emit("change"); // to trigger rerender } - hasMark(key: string) { - return this.markedKeys.some((k) => k == key); + hasMark(key?: string) { + if (key) { + return this.markedKeys.some((k) => k == key); + } else { + return this.markedKeys.length > 0; + } } removeMark(key: string) { @@ -244,4 +253,8 @@ export class RequestCluster extends EventEmitter { } } } + + getMarkedRequests() { + return this.requests.filter((request) => request.hasMark()); + } } diff --git a/sidebar/stolen-data.tsx b/sidebar/stolen-data.tsx index b6e4e1a..aa4891d 100644 --- a/sidebar/stolen-data.tsx +++ b/sidebar/stolen-data.tsx @@ -51,7 +51,7 @@ export function StolenData({