Files
eship/Extension/content-script.js

71 lines
1.8 KiB
JavaScript

// Content Script läuft auf der Web-App-Seite
// Lauscht auf window.postMessage von der Web-App und leitet an Background weiter
const MESSAGE_SOURCE = "eship-webapp";
// Markiere Extension als verfügbar
// #region agent log
try {
console.log('[ESHIP-CONTENT] Content script loaded');
if (typeof window !== 'undefined') {
window.__EBAY_EXTENSION__ = true;
console.log('[ESHIP-CONTENT] window.__EBAY_EXTENSION__ set to true');
} else {
console.error('[ESHIP-CONTENT] window is undefined!');
}
} catch (e) {
console.error('[ESHIP-CONTENT] Error setting flag:', e);
}
// #endregion
window.addEventListener("message", (event) => {
// Sicherheitscheck: Nur Nachrichten von derselben Origin akzeptieren
if (event.data?.source !== MESSAGE_SOURCE) return;
// Auth Messages (JWT)
if (event.data.type === "AUTH_JWT" || event.data.type === "AUTH_CLEARED") {
chrome.runtime.sendMessage(
{
type: event.data.type,
jwt: event.data.jwt,
},
(response) => {
// Antwort zurück an Web-App senden
window.postMessage(
{
source: "eship-extension",
type: event.data.type,
response: response,
},
"*"
);
}
);
return;
}
// eBay Parsing Request (PARSE_URL)
if (event.data.action === "PARSE_URL" && event.data.url) {
chrome.runtime.sendMessage(
{
action: "PARSE_URL",
url: event.data.url,
},
(response) => {
// Antwort zurück an Web-App senden
window.postMessage(
{
source: "eship-extension",
messageId: event.data.messageId,
ok: response?.ok,
data: response?.data,
error: response?.error,
},
"*"
);
}
);
return;
}
});