Adds a more robust mechanism to manage virtual background support, including:
- Displaying a warning message when the browser does not support virtual backgrounds.
- Disabling background selection buttons when virtual backgrounds are not supported.
- Optimizing background processor initialization and attachment for different browsers (handling lazy loading for Firefox).
- Centralizing the check for virtual background support in the OpenViduService.
This change ensures a better user experience by clearly indicating when virtual backgrounds are unavailable and preventing users from attempting to use an unsupported feature.
Simplifies the logic for attaching and detaching the background processor in Firefox.
Ensures the processor is stopped when background effects are disabled, optimizing performance.
- Added LayoutDimensionsCache for caching dimension calculations to optimize layout rendering.
- Implemented LayoutRenderer for handling DOM manipulation and rendering of layout elements.
- Created layout-types model to define various layout-related types and constants.
- Developed OpenViduLayout class to orchestrate layout calculations and rendering, maintaining backward compatibility.
- Updated document and layout services to reference new layout model structure.
- Updated @livekit/track-processors from 0.6.1 to 0.7.0 in openvidu-components-angular/package.json
- Updated livekit-client from 2.15.15 to 2.16.0 in openvidu-components-angular/package.json
- Updated livekit-client from ^2.15.0 to ^2.16.0 in openvidu-components-angular/projects/openvidu-components-angular/package.json
- Updated @livekit/track-processors from ^0.6.0 to ^0.7.0 in openvidu-components-angular/projects/openvidu-components-angular/package.json
- Refactored OpenViduService to change roomOptions.e2ee to roomOptions.encryption for E2EE configuration
- Reorganized import statements in OpenViduService for better readability
Ensures consistent identification of participant elements by using the participant identity, facilitating easier manipulation and tracking of elements.
Improves component updates by storing the remote participants value locally.
- Extracted permission strategies into a separate method for better readability.
- Created a method to handle permission strategy attempts and return valid devices.
- Added a utility method to filter out invalid devices.
- Improved error handling in getMediaDevicesFirefox method.
test: Add unit tests for DocumentService
- Implemented comprehensive tests for DocumentService methods including toggleFullscreen, isSmallElement, and fullscreen handling.
- Mocked document and element interactions to ensure proper functionality.
feat: Implement E2EE service with encryption and decryption capabilities
- Developed E2eeService to handle end-to-end encryption with methods for encrypting and decrypting data.
- Added caching for decrypted strings to optimize performance.
- Included tests for various scenarios including encryption failures and binary data handling.
test: Add unit tests for PanelService
- Created tests for PanelService to validate panel opening, closing, and state management.
- Ensured proper emissions from panelStatusObs during panel state changes.
fix: Initialize externalType in PanelService to avoid undefined state
- Set default value for externalType to an empty string to prevent potential issues.