71 lines
1.8 KiB
JavaScript
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;
|
|
}
|
|
});
|