()
| 16 | |
| 17 | // Import modules |
| 18 | async function initializeContentScript() { |
| 19 | try { |
| 20 | console.log('Step 1: Importing xpath_utils...'); |
| 21 | const { getXpaths } = await import(chrome.runtime.getURL('util/xpath_utils.js')); |
| 22 | console.log('Step 1: SUCCESS'); |
| 23 | |
| 24 | console.log('Step 2: Importing communication_utils...'); |
| 25 | const { initPageCommunication, initBackgroundCommunication, notifyContentScriptReady } = await import(chrome.runtime.getURL('util/communication_utils.js')); |
| 26 | console.log('Step 2: SUCCESS'); |
| 27 | |
| 28 | console.log('Step 3: Importing api_injection...'); |
| 29 | const { initAPIInjection } = await import(chrome.runtime.getURL('inject/api_injection.js')); |
| 30 | console.log('Step 3: SUCCESS'); |
| 31 | |
| 32 | console.log('Step 4: Importing action tracking...'); |
| 33 | const { initializeActionTracking } = await import(chrome.runtime.getURL('modules/action/index.js')); |
| 34 | console.log('Step 4: SUCCESS'); |
| 35 | |
| 36 | console.log('Step 5: Getting safeSendMessage...'); |
| 37 | const { safeSendMessage } = await import(chrome.runtime.getURL('util/communication_utils.js')); |
| 38 | console.log('Step 5: SUCCESS'); |
| 39 | |
| 40 | |
| 41 | // Initialize API injection for Selenium communication |
| 42 | initAPIInjection(); |
| 43 | |
| 44 | // Initialize communication channels |
| 45 | initPageCommunication(); |
| 46 | initBackgroundCommunication((recording) => { |
| 47 | // Just log recording state changes |
| 48 | // Enhanced handlers in click.js/input.js already check recState internally |
| 49 | // No need for extra listeners from startRecording() |
| 50 | console.log('Recording state changed:', recording); |
| 51 | }); |
| 52 | |
| 53 | // Initialize comprehensive action tracking system |
| 54 | await initializeActionTracking(safeSendMessage, getXpaths); |
| 55 | |
| 56 | |
| 57 | // Send ready message to background |
| 58 | notifyContentScriptReady(); |
| 59 | |
| 60 | console.log('InverseUI: Content script fully initialized'); |
| 61 | |
| 62 | } catch (error) { |
| 63 | console.error('Failed to initialize content script modules:', error); |
| 64 | console.error('Error message:', error.message); |
| 65 | console.error('Error stack:', error.stack); |
| 66 | console.error('Error name:', error.name); |
| 67 | console.error('Full error object:', error); |
| 68 | // Fallback to inline implementation |
| 69 | await initializeFallbackTracking(); |
| 70 | } |
| 71 | } |
| 72 | |
| 73 | |
| 74 | // Fallback to inline implementation if modules fail |
no test coverage detected