@@ -194,12 +194,26 @@ async function handleGreasyForkInstall(url) {
194194}
195195
196196async function handleCrossOriginXmlhttpRequest ( details , tabId , sendResponse ) {
197+ const { url, method = "GET" , headers, data } = details ;
198+
199+ if ( ! url ) {
200+ console . error ( "CodeTweak: Cross-origin XMLHttprequest failed: No URL provided." ) ;
201+ sendResponse ( { error : "No URL provided." } ) ;
202+ return ;
203+ }
204+
205+ const requestOptions = {
206+ method,
207+ headers,
208+ } ;
209+
210+ // Only add body for methods that support it
211+ if ( data && ! [ "GET" , "HEAD" ] . includes ( method . toUpperCase ( ) ) ) {
212+ requestOptions . body = data ;
213+ }
214+
197215 try {
198- const response = await fetch ( details . url , {
199- method : details . method || "GET" ,
200- headers : details . headers ,
201- body : details . data ,
202- } ) ;
216+ const response = await fetch ( url , requestOptions ) ;
203217
204218 const responseHeaders = { } ;
205219 response . headers . forEach ( ( value , name ) => {
@@ -242,7 +256,12 @@ async function handleCrossOriginXmlhttpRequest(details, tabId, sendResponse) {
242256 } ;
243257 sendResponse ( { result } ) ;
244258 } catch ( error ) {
245- console . error ( "CodeTweak: Cross-origin XMLHttprequest failed:" , error ) ;
259+ console . error ( "CodeTweak: Cross-origin XMLHttprequest failed:" , {
260+ error : error ,
261+ url : url ,
262+ method : method ,
263+ headers : headers
264+ } ) ;
246265 sendResponse ( { error : error . message } ) ;
247266 }
248267}
@@ -307,7 +326,12 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
307326 console . log ( "[CodeTweak] Message received:" , message . type || message . action ) ;
308327
309328 if ( message . type === "GM_API_REQUEST" ) {
310- const { action, payload } = message . payload ;
329+ if ( ! message . payload ) {
330+ console . error ( "[CodeTweak] GM_API_REQUEST received with no payload." ) ;
331+ sendResponse ( { error : "Request payload is missing." } ) ;
332+ return true ;
333+ }
334+ const { action, ...payload } = message . payload ;
311335
312336 if ( action === "xmlhttpRequest" ) {
313337 // Still not working properly....
@@ -406,7 +430,9 @@ chrome.runtime.onConnect.addListener((port) => {
406430const navigationEvents = [ "onCommitted" , "onDOMContentLoaded" , "onCompleted" ] ;
407431navigationEvents . forEach ( ( event , index ) => {
408432 chrome . webNavigation [ event ] . addListener ( ( details ) => {
409- console . log ( `CodeTweak: webNavigation.${ event } event fired for tab ${ details . tabId } ` , details ) ;
433+ if ( event === "onCommitted" && details . frameId === 0 ) {
434+ clearInjectedCoreScriptsForTab ( details . tabId ) ;
435+ }
410436 injectScriptsForStage (
411437 details ,
412438 Object . values ( INJECTION_TYPES ) [ index ] ,
0 commit comments