Compare commits

..

3 Commits

4 changed files with 20 additions and 18 deletions

View File

@ -16,7 +16,7 @@ export default class ExtendedRequest {
public url: string;
public shorthost: string;
public requestHeaders: Request["requestHeaders"];
public origin: string;
public originalURL: string;
public initialized = false;
public stolenData: StolenDataEntry[];
@ -34,19 +34,19 @@ export default class ExtendedRequest {
} else {
url = (this.data as any).frameAncestors[0].url;
}
this.origin = new URL(url).origin;
this.originalURL = new URL(url).origin;
}
getOrigin(): string {
getOriginalURL(): string {
if (!this.initialized) {
throw new Error("initialize first!!");
}
return this.origin;
return this.originalURL;
}
isThirdParty() {
const request_url = new URL(this.data.url);
const origin_url = new URL(this.getOrigin());
const origin_url = new URL(this.getOriginalURL());
if (request_url.host.includes(origin_url.host)) {
return false;
}
@ -65,7 +65,7 @@ export default class ExtendedRequest {
}
exposesOrigin() {
const url = new URL(this.getOrigin());
const url = new URL(this.getOriginalURL());
const host = url.host;
const path = url.pathname;
return (

View File

@ -7,19 +7,19 @@ export default class Memory extends EventEmitter {
origin_to_history = {} as Record<string, Record<string, RequestCluster>>;
async register(request: ExtendedRequest) {
await request.init();
console.log("registering request for", request.origin);
console.log("registering request for", request.originalURL);
if (!request.isThirdParty()) {
return;
}
if (!this.origin_to_history[request.origin]) {
this.origin_to_history[request.origin] = {};
if (!this.origin_to_history[request.originalURL]) {
this.origin_to_history[request.originalURL] = {};
}
const shorthost = getshorthost(new URL(request.url).host);
if (!this.origin_to_history[request.origin][shorthost]) {
if (!this.origin_to_history[request.originalURL][shorthost]) {
const cluster = new RequestCluster(shorthost);
this.origin_to_history[request.origin][shorthost] = cluster;
this.origin_to_history[request.originalURL][shorthost] = cluster;
}
this.origin_to_history[request.origin][shorthost].add(request);
this.origin_to_history[request.originalURL][shorthost].add(request);
this.emit("change");
}

View File

@ -41,7 +41,9 @@ function Report() {
style={{
width: "400px",
overflowWrap: "anywhere",
backgroundColor: entry.isRelatedToID() ? "yellow" : "white",
backgroundColor: entry.isRelatedToID()
? "#ffff0054"
: "white",
}}
>
{entry.value}

View File

@ -49,7 +49,7 @@ export class StolenDataEntry {
getPriority() {
let priority = 0;
priority += Math.min(this.value.length, 50);
const url = new URL(this.request.getOrigin());
const url = new URL(this.request.originalURL);
if (this.value.includes(url.host)) {
priority += 100;
}
@ -127,7 +127,7 @@ export class StolenDataEntry {
}
private classify(): keyof typeof Classifications {
if (this.value.includes(this.request.origin)) {
if (this.value.includes(this.request.originalURL)) {
return "history";
} else {
return "id";
@ -172,15 +172,15 @@ export class MergedStolenDataEntry {
}
getNames(): string[] {
return Array.from(new Set(this.entries.map((e) => e.name)));
return unique(this.entries.map((e) => e.name));
}
getSources(): string[] {
return Array.from(new Set(this.entries.map((e) => e.source)));
return unique(this.entries.map((e) => e.source));
}
getValues() {
return Array.from(new Set(this.entries.map((e) => e.value)));
return unique(this.entries.map((e) => e.value));
}
getParsedValues(key_path: string) {