- Added the `sandbox="allow-scripts"` attribute to iframes to improve security by restricting their capabilities.
- Replaced `src` attributes with `srcdoc` for better control over iframe content and to avoid potential security risks associated with data URIs.
- Updated the `silent` option in the vitest configuration to `true` for improved test output control.
- Introduced a `loadFixture` helper function to streamline loading HTML content into Puppeteer pages, replacing direct navigation calls in tests.
- Adjusted iframe readiness checks to ensure they wait for non-empty body content, improving reliability in test scenarios.
- Changed the `silent` option from `true` to `false` in the vitest configuration to allow logging during test execution, improving visibility into test processes.
- Introduced helper functions `waitForIframeReady` and `waitForNestedIframeReady` to streamline iframe readiness checks in Puppeteer tests.
- Removed debug logging statements to clean up test output and improve readability.
- Updated test cases to utilize the new helper functions for better iframe management and synchronization.
- Enhanced logging in the Puppeteer tests to provide clearer output before and after navigating to complex fixture URLs and waiting for iframe elements. This change aids in debugging and understanding the test flow.
- Updated the CI workflow to consolidate test commands into a single step, improving clarity and efficiency.
- Added debug logging in Puppeteer tests to track the loading of complex fixture URLs and the visibility of iframe elements, aiding in troubleshooting and test visibility.
- Modified the CI configuration to set the working directory for Puppeteer tests, ensuring the correct context for executing tests. Updated the test command to target specific Puppeteer test files in the automation directory, enhancing clarity and organization in the testing process.
- Updated the CI workflow to change the testing step for core packages, specifically targeting @aipexstudio/aipex-core, @aipexstudio/dom-snapshot, and @aipexstudio/aipex-react. This adjustment enhances the clarity of the testing process by explicitly defining which packages are tested in the core step.
- Updated the CI workflow to separate testing for the browser-runtime package, introducing distinct steps for non-Puppeteer tests, browser-runtime unit tests, and Puppeteer tests executed sequentially. This enhances clarity and control over the testing process.
- Updated the CI configuration to set the working directory for the Chrome installation step, ensuring proper execution context for the Puppeteer installation script.
- Added path replacements for dom-snapshot in Vite configuration to streamline module resolution.
- Updated snapshot-provider to include frameId in chrome.tabs.sendMessage for improved messaging context.
- Refactored integration tests to utilize async mocks for storage operations, enhancing test reliability and clarity.
- Added support for iframe elements in the DOM collector to ensure accurate role resolution.
- Add recursive iframe search in queryByUid to find elements across iframes
- Use duck typing instead of instanceof for cross-iframe type checks
- Add helper functions isHTMLElement, isInputElement, isTextAreaElement
- Support both message formats for DOM snapshot collection in content script
- Use vi.mock with class syntax for IndexedDBStorage mock
- Import ConversationStorage after mocks are set up
- Use vi.importActual for migration integration test to test real behavior
- Fix dom-locator.test.ts to match new API
- DomLocator now only takes tabId, methods require uid parameter
- DomElementHandle is now imported from dom-element-handle.ts
- DomElementHandle constructor takes (tabId, node: TextSnapshotNode)
- Implemented a new applyHighlight function to visually highlight elements during DOM actions.
- Integrated highlight application in runDomAction, fillElement, and hoverElement functions to enhance user interaction.
- Ensured that original styles are restored after highlighting, maintaining the element's appearance post-interaction.
- Added a new test file for DOM snapshot testing, including various iframe scenarios.
- Implemented tests to verify interactions with buttons across multiple iframes, ensuring correct event handling.
- Enhanced existing tests to check for cross-origin iframe access and element collection capabilities.
- Improved structure and clarity of test cases to cover complex iframe content interactions.
- Revised sections in README.md for browser-runtime to clarify automation helpers and introduce DOM-based automation.
- Enhanced README.md for dom-snapshot to detail same-origin iframe support, including recursive traversal and coordinate tracking.
- Improved organization and clarity of automation-related content across both packages.
- Added support for collecting DOM snapshots, including handling of same-origin iframes and nested iframes.
- Introduced new types and functions for managing serialized DOM snapshots and querying capabilities.
- Updated SnapshotManager to utilize the new DOM snapshot strategy, allowing for more comprehensive element interactions.
- Enhanced the browser extension's manifest to support additional permissions and features.
- Improved test coverage for DOM snapshot functionality, ensuring robust handling of various scenarios.
- Introduced comprehensive integration tests for SmartLocator using Puppeteer, covering interactions with elements inside iframes.
- Enhanced the SmartLocator class to manage iframe offsets and ensure accurate bounding box calculations.
- Updated SnapshotManager and types to include frameId for better context in snapshot handling.
- Improved error handling and fallback mechanisms for element interactions, including JS click and hover methods.
- Added exclusion patterns for node_modules and dist directories in vitest.config.ts files for aipex-react, browser-ext, browser-runtime, core, and dom-snapshot packages.
- Improved code readability by formatting multiline conditions and function parameters in various files.
- Refactored error handling in iframe-manager.ts to maintain consistency.
- Added Puppeteer-based integration tests for IframeManager and SnapshotManager.
- Updated README with testing instructions and CI considerations.
- Introduced vitest configuration for testing.
- Enhanced DebuggerManager to handle Chrome API more robustly.
- Updated package dependencies to include Puppeteer.
- Refactored snapshot management to ensure iframe content is included in tests.