41 Commits

Author SHA1 Message Date
am0
3512386b2b refactor: migracja wywołań API przeglądarki do abstrakcji browserAPI
Zmigrowano wszystkie bezpośrednie wywołania browser.* API do zunifikowanej abstrakcji browserAPI, umożliwiając budowanie rozszerzenia zarówno dla Firefox (browser.browserAction) jak i Chrome (chrome.action) z jednego kodu źródłowego.

## Zmigrowane pliki aplikacji (4):

### 1. memory.ts
Dodano import:
- import browserAPI from ./lib/browser-api

Zastąpiono wywołania API:
- browser.browserAction.setBadgeText → browserAPI.badge.setBadgeText
- browser.browserAction.setTitle → browserAPI.badge.setTitle
- browser.browserAction.setBadgeBackgroundColor → browserAPI.badge.setBadgeBackgroundColor
- browser.webRequest.onBeforeRequest.addListener → browserAPI.webRequest.onBeforeRequest.addListener
- browser.webRequest.onBeforeSendHeaders.addListener → browserAPI.webRequest.onBeforeSendHeaders.addListener
- browser.cookies.getAll → browserAPI.cookies.getAll
- browser.cookies.remove → browserAPI.cookies.remove
- browser.extension.getBackgroundPage() → browserAPI.extension.getBackgroundPage()

Dodano obsługę null:
- Funkcja getMemory() sprawdza teraz czy getBackgroundPage() nie zwraca null

### 2. components/toolbar/toolbar.tsx
Dodano import:
- import browserAPI from ../../lib/browser-api

Zastąpiono wywołania API:
- browser.tabs.query → browserAPI.tabs.query
- browser.windows.WINDOW_ID_CURRENT → browserAPI.windows.WINDOW_ID_CURRENT
- browser.tabs.onUpdated.addListener → browserAPI.tabs.onUpdated.addListener
- browser.tabs.onUpdated.removeListener → browserAPI.tabs.onUpdated.removeListener

Zachowano całą funkcjonalność:
- Wszystkie sekcje UI (header, summary z licznikami, details, about, actions)
- Wszystkie hooki React i logika biznesowa
- Funkcje pomocnicze (getCurrentTab, isDomainHighlySuspicious, autoMark)

### 3. components/tab-dropdown.tsx
Zmieniono importy:
- Usunięto: import { Tab } from ../../util
- Dodano: import browserAPI, { Tab } from ../../lib/browser-api

Zastąpiono wywołania API:
- browser.tabs.query({ currentWindow: true }) → browserAPI.tabs.query({ currentWindow: true })

Poprawka typów:
- Typ Tab teraz pochodzi z browserAPI, zapewniając zgodność typów

### 4. util.ts
Dodano import:
- import browserAPI from ./lib/browser-api

Zastąpiono wywołania API:
- Typ Tab pochodzi teraz z browserAPI.tabs.query zamiast browser.tabs.query
- browser.tabs.query({ currentWindow: true }) → browserAPI.tabs.query({ currentWindow: true }) w funkcji getTabByID

Zachowano wszystkie funkcje:
- getshorthost, useEmitter, parseCookie, getTabByID
- parseToObject, isJSONObject, isURL, hyphenate, unique
- allSubhosts, reduceConcat, getDate, toBase64, makeThrottle
- isSameURL, isBase64, isBase64JSON
- flattenObject, flattenObjectEntries
- maskString, safeDecodeURIComponent, normalizeForClassname
- wordlist, dataLocationToText, downloadText

## Rozszerzenie abstrakcji browserAPI:

### lib/browser-api/types.ts
Dlaczego rozszerzono:
Początkowy minimalny interfejs RequestDetails był niewystarczający, ponieważ brakowało kluczowych właściwości wymaganych przez konstruktor ExtendedRequest. Gdy listenery webRequest są wywoływane, przekazują kompletny obiekt Request do ExtendedRequest, a nie tylko podstawowe szczegóły.

Co zostało dodane:
Pełny typ Request z util.ts, zawierający:
- Właściwości główne: requestId, tabId, url, method, type
- Nawigacja ramek: frameId, parentFrameId, documentUrl, originUrl
- Opcjonalne metadane: cookieStoreId, incognito, thirdParty, timeStamp
- Szczegóły żądania: requestHeaders, urlClassification, proxyInfo

Przyczyna źródłowa błędów TypeScript:
Konstruktor ExtendedRequest oczekiwał właściwości takich jak frameId, method,
originUrl, parentFrameId, documentUrl, urlClassification, etc. Minimalny
interfejs powodował błędy:
- Argument of type RequestDetails is not assignable to parameter of type Request
- Type RequestDetails is missing properties: frameId, method, originUrl, parentFrameId, and 4 more

Rozwiązanie:
Używając pełnej definicji typu Request, abstrakcja browserAPI poprawnie typuje callbacki webRequest, zapewniając bezpieczeństwo typów zarówno dla buildu Firefox jak i Chrome, przy zachowaniu kompatybilności z istniejącą implementacją ExtendedRequest.

Zmiana w RequestListener:
- Było: (details: RequestDetails) => void
- Jest: (details: Request) => void

## Wpływ zmian:
- memory.ts, toolbar.tsx, tab-dropdown.tsx, util.ts działają z TARGET=firefox i TARGET=chrome
- Zachowano bezpieczeństwo typów w całym kodzie
- Brak zmian funkcjonalnych - tylko warstwa abstrakcji
- Gotowość do kompatybilności z Chrome Manifest V3 (chrome.action vs browser.browserAction)

## Następne kroki:
- Aktualizacja esbuild.config.js dla budowania z TARGET=chrome do dist-chrome/
- Aktualizacja manifestu Chrome zgodnie z regułami Manifest v3
- Skrypt konwertujący SVG na PNG dla Chrome
- Testowanie rozszerzenia w przeglądarce Chrome
2025-09-30 12:17:18 +02:00
1106e86b41 Merge pull request 'Problem: nieznany cel. Dodanie narzędzi diagnostycznych' (#99) from unknown-purpose into develop
Reviewed-on: #99
2022-09-12 09:47:52 +02:00
e3f4f8858d Fix rentgen being fooled with a "=" in cookie value (e.g. the NID cookie on google.com) 2022-08-31 09:50:37 +02:00
ea59a506f8 Problem: nieznany cel. Fixes #68 #97 2022-08-13 22:42:50 +02:00
416a6aa340 Fix typechecks. Closes #54 2022-07-09 15:51:34 +02:00
e1d97f0411 typecheck fixes checkpoint 2022-07-09 15:28:37 +02:00
Arkadiusz Wieczorek
1ba2bea2fb Handle dead objects 2022-04-22 13:00:02 +02:00
Kuba Orlik
473424d88d Formatting and wording 2022-02-10 19:54:51 +01:00
Kuba Orlik
7330ebf9f2 Improve performance by limiting renders 2022-02-07 15:28:01 +01:00
Kuba Orlik
894391aaa3 Zrobiłem już większość logiki formularza.
Trzeba jeszcze zrobić tak, aby pytania dla kolejnych hostów pojawiały
się po kolei - tzn dopiero jak dla poprzedniego hosta
hostNeedsQuestions jest false, to pokazujemy następnego. Potem trzeba
popracować nad samym generowaniem treści na podstawie wszystkich tych
odpowiedzi
2022-01-30 21:03:49 +01:00
Kuba Orlik
46e6c448b2 Simplify React import in preparation from using a version from CDN 2022-01-29 20:50:44 +01:00
Kuba Orlik
9c1eb31224 Fix typescript errors 2022-01-29 20:41:03 +01:00
Arkadiusz Wieczorek
09b00eff03 Add base styles, two views, plugins, esbuild script 2022-01-17 19:50:14 +01:00
Kuba Orlik
1ec726f52e Expand google subdomains, as well 2021-12-12 10:58:47 +01:00
97dc99dba9 Use the new flattening across other sources of data. Remove leading "." for entries one level deep 2021-11-28 12:31:51 +01:00
1d31b79f1e Better, recursive FlattenObject that now also parses recursively 2021-11-26 22:07:33 +01:00
02a30a4831 fix safedecodeURI 2021-11-26 20:59:24 +01:00
928effa1ad Add support for POST body inspection 2021-11-26 20:58:31 +01:00
b0dd58fa9c Report improvements 2021-11-25 21:14:55 +01:00
7527288d95 extract longer shorthost when dealing with doubleclick to distinguish
stats from ads
2021-11-24 23:58:12 +01:00
922d5da074 Handle hosts with double-tld better in shorthost method 2021-11-24 22:03:03 +01:00
cc0e91ee56 Better string masking method 2021-11-22 18:56:36 +01:00
68078546fa Flatten the stolen data 2021-11-22 17:54:15 +01:00
c9f3876cf4 Add automatic bas64 translation. Now I'll experiment with slicing the
objects into separate string entries
2021-11-22 15:08:29 +01:00
492332802f Fix parsed json values not previewing properly 2021-11-22 13:28:31 +01:00
edfde535d2 Shorter HAR files. More precise controls over what's missing in the
consent popup
2021-11-22 12:03:55 +01:00
3eb5dc6f9d Improve marking performance 2021-11-21 23:00:55 +01:00
b98a061d96 Make render throttled so they don't block the thread 2021-11-21 18:19:58 +01:00
2bcf72f652 Add option to include a screenshot of the popup 2021-11-11 11:10:52 +01:00
a859d0239f Add possibility to generate a trimmed HAR file 2021-11-09 17:47:42 +01:00
c9bc0c3a41 Basic email summary 2021-11-07 19:03:00 +01:00
0960006a5a Add automatic classification 2021-11-07 17:44:22 +01:00
729a60a998 Move getMemory where it belongs 2021-11-07 17:23:48 +01:00
7fdc2a3660 Print all the full hosts so they are easier to visit and get tainted
with cookies
2021-11-07 17:18:17 +01:00
86bd7f72b6 Checkpoint 2021-11-07 15:45:26 +01:00
66272fa318 Delegate memory to background process 2021-11-07 13:57:24 +01:00
3f61445831 Parse URLs in data value display, make the layout denser 2021-11-07 10:09:41 +01:00
fa42e848ea Reorder files into smaller components 2021-11-07 09:17:19 +01:00
8fc1b33977 Add option to clear cookies 2021-11-06 21:48:25 +01:00
43e0c6c7f8 Add README and dedupe data entries 2021-10-04 18:51:51 +02:00
9441ddd98e Working sidebar 2021-10-03 09:03:56 +02:00