-
Notifications
You must be signed in to change notification settings - Fork 791
Comparing changes
Open a pull request
base repository: RocketChat/Rocket.Chat.Electron
base: 4.9.2
head repository: RocketChat/Rocket.Chat.Electron
compare: 4.10.0
- 12 commits
- 77 files changed
- 1 contributor
Commits on Nov 22, 2025
-
feat: Voice Notifications (#3136)
* feat(notifications): introduce CustomNotificationOptions type and dispatchNotification function - Added a new type, CustomNotificationOptions, to define notification structure for voice and text types. - Implemented dispatchNotification function in preload.ts to handle custom notifications, enhancing notification management. - Updated preload API to include dispatchNotification for better integration with notification handling. This change improves the flexibility and clarity of notification options within the application. * feat(notifications): enhance notification options with requireInteraction and id fields - Added `requireInteraction` property to `ExtendedNotificationOptions` and `CustomNotificationOptions` to allow notifications to stay active until the user interacts with them. - Introduced an optional `id` field in `CustomNotificationOptions` for better notification management. - Updated `createNotification` and `updateNotification` functions to handle the new properties, improving notification behavior and flexibility. - Refactored `dispatchNotification` to `dispatchCustomNotification` for clarity in handling custom notifications. These changes enhance the user experience by providing more control over notification interactions. * feat(notifications): introduce attention drawing service for voice notifications - Added a new `AttentionDrawingService` to manage visual attention cues for voice notifications, enhancing user engagement. - Integrated attention drawing setup and teardown in the main application flow. - Updated notification handling to trigger attention drawing based on notification type, allowing for distinct behaviors for voice and text notifications. - Enhanced `ExtendedNotificationOptions` to include a `notificationType` field, facilitating the differentiation between voice and text notifications. These changes improve the user experience by providing visual cues for important notifications, ensuring users are more likely to respond to critical alerts. * feat(preload): extend IRocketChatDesktop with custom notification methods - Introduced `dispatchCustomNotification` and `closeCustomNotification` methods to the `IRocketChatDesktop` interface, enhancing the notification handling capabilities. - Updated the global `Window` interface to use the extended type, ensuring compatibility with the new notification methods. These changes improve the flexibility and functionality of the notification system within the application. * chore: update version to 4.10.0 in package.json
Configuration menu - View commit details
-
Copy full SHA for b0e794e - Browse repository at this point
Copy the full SHA b0e794eView commit details -
chore: Improve Media Permissions (#3135)
* feat(mediaPermissions): Implement media permission handling for microphone and camera - Added `handleMediaPermissionRequest` function to manage media access requests for audio and video on macOS and Windows. - Introduced `showMicrophonePermissionDeniedMessage` to inform users when microphone access is denied, with options to open system settings. - Refactored media permission checks in `serverView` and `videoCallWindow` to utilize the new handling functions, improving code clarity and user experience. - Removed outdated media registration logic from `rootWindow`. This update enhances the application's ability to handle media permissions more gracefully, providing users with clear guidance on how to resolve permission issues. * chore: Add initial worktree setup configuration - Introduced a new `worktrees.json` file to define the setup command for worktree management, specifically including `yarn install` for dependency installation. - This addition streamlines the setup process for developers working with the project. * feat(i18n): Add microphone permission denied messages in multiple languages - Introduced localized messages for the "microphonePermissionDenied" key across various language files, including German, English, Spanish, Finnish, French, Hungarian, Japanese, Norwegian, Polish, Portuguese, Russian, Swedish, Turkish, and Chinese. - This enhancement improves user experience by providing clear instructions on microphone access requirements in the user's preferred language. * feat(i18n): Update microphone permission denied messages in multiple languages - Localized the "microphonePermissionDenied" messages in German, Spanish, French, Hungarian, Swedish, Turkish, and Chinese to enhance user experience by providing clear instructions on microphone access requirements in the user's preferred language. - This update ensures consistency across various language files, improving accessibility for users globally. * refactor(mediaPermissions): Simplify media permission handling logic - Refactored the `handleMediaPermissionRequest` function to streamline the checks for microphone and camera access on macOS and Windows. - Removed the `showMicrophonePermissionDeniedMessage` function call and integrated its logic into the main permission handling flow. - Improved clarity by consolidating permission checks and reducing redundancy in the code. - Enhanced user experience by ensuring appropriate system settings are opened based on the specific permission type denied. * feat(i18n): Localize microphone permission denied messages in Finnish - Updated the "microphonePermissionDenied" messages in the Finnish language file to provide clear instructions on microphone access requirements. - Enhanced user experience by ensuring that the messages are accurately translated and consistent with other language files. * fix(mediaPermissions): Update camera permission link to use 'webcam' instead of 'camera' - Changed the external link for camera permissions from 'ms-settings:privacy-camera' to 'ms-settings:privacy-webcam' to align with updated system settings terminology. - This adjustment improves clarity and ensures users are directed to the correct settings page for webcam access. * refactor(mediaPermissions): Enhance media permission handling logic - Refactored the `handleMediaPermissionRequest` function to improve clarity and maintainability by breaking it into smaller functions: `computeMediaNeeds`, `readMediaStatusesAndInitializeAllowed`, and `handleDeniedPermissions`. - Updated the handling of media types to use `ReadonlyArray<'audio' | 'video'>` for better type safety. - Improved error handling in the video call window to catch and log errors during media permission requests. - This refactor streamlines the permission request process and enhances user experience by providing clearer feedback on permission status. * fix(mediaPermissions): Remove unused rootWindow variable in media permission handling - Eliminated the `rootWindow` variable from the `attachGuestWebContentsEvents` function as it was not utilized in the media permission request handling. - This cleanup enhances code clarity and reduces unnecessary variable declarations. * feat(mediaPermissions): Add Linux support for media permission handling - Implemented handling for media permission requests on Linux, allowing the browser and OS to manage permission flows through native prompts and system-level audio configuration. - This enhancement ensures consistent behavior across platforms and improves user experience by delegating permission management to the appropriate systems. * feat(i18n): Localize microphone permission denied messages in Japanese, Norwegian, Polish, Portuguese, and Russian - Updated the "microphonePermissionDenied" messages in Japanese, Norwegian, Polish, Portuguese, and Russian language files to provide clear instructions on microphone access requirements. - This enhancement ensures consistency across various language files, improving accessibility and user experience for speakers of these languages.
Configuration menu - View commit details
-
Copy full SHA for 76c6997 - Browse repository at this point
Copy the full SHA 76c6997View commit details -
fix(serverView): Improve error handling during URL loading (#3141)
* fix(serverView): Improve error handling during URL loading - Wrapped the `loadURL` call in a try-catch block to prevent unhandled promise rejections. This change ensures that any errors during the loading process are managed appropriately, leveraging existing error handling mechanisms in the application. * fix(serverView): Enhance error logging for URL loading failures - Added console error logging for failed URL loading attempts in the `loadURL` calls within the `attachGuestWebContentsEvents` function. This improves visibility into loading issues by providing specific error messages when URL loading fails, ensuring better debugging and user experience. * fix(serverView): Prevent loading URL for non-existent guest web contents - Added checks to ensure that the `loadURL` function is only called if the `guestWebContents` exists. This prevents potential errors and improves the robustness of the URL loading process in the `attachGuestWebContentsEvents` function. * fix(serverView): Ensure URL loading only proceeds with valid guest web contents - Added a check to prevent the `loadURL` function from being called if `guestWebContents` is not found, enhancing error handling and preventing potential crashes. The dispatch for `WEBVIEW_SERVER_RELOADED` is now executed unconditionally after the URL loading attempt, ensuring consistent state updates.
Configuration menu - View commit details
-
Copy full SHA for e457303 - Browse repository at this point
Copy the full SHA e457303View commit details
Commits on Nov 26, 2025
-
chore: Update Electron version to 39.2.3 in package.json and yarn.lock (
#3144) - Upgraded Electron dependency from version 37.6.0 to 39.2.3 to ensure compatibility with the latest features and improvements. - Updated corresponding entries in yarn.lock to reflect the new Electron version.
Configuration menu - View commit details
-
Copy full SHA for 643a04a - Browse repository at this point
Copy the full SHA 643a04aView commit details -
fix: Showing notifications when downloads were cancelled (#3145)
* refactor(downloads): Remove notification on download completion and enhance notification handling - Removed the notification creation logic from the `done` event handler in the download process to streamline user experience. - Updated the notification handling in `preload.ts` to dispatch a new action for sidebar downloads when the 'Downloads' title is clicked, improving user interaction and feedback. * fix(downloads): Update event handler parameters for clarity - Changed the parameter names in the 'done' event handler from `state` to `_state` to indicate that the parameter is unused, improving code readability and consistency.
Configuration menu - View commit details
-
Copy full SHA for 06c7765 - Browse repository at this point
Copy the full SHA 06c7765View commit details -
fix: Settings scrollbar and select not using Fuselage components (#3146)
* refactor(AvailableBrowsers): Replace SelectLegacy with Select component and update browser change handler - Switched from `SelectLegacy` to `Select` for improved UI consistency. - Updated the `handleChangeBrowser` function to accept a `Key` type and convert it to a string for dispatching the selected browser change. - Adjusted the width of the Select component for better layout. * refactor(SettingsView): Replace Box with Scrollable for improved tab content display - Updated the SettingsView component to use Scrollable instead of Box for better handling of overflow content. - Adjusted the layout to maintain consistent margins while ensuring a smoother user experience when navigating between tabs.
Configuration menu - View commit details
-
Copy full SHA for 220992c - Browse repository at this point
Copy the full SHA 220992cView commit details
Commits on Nov 27, 2025
-
feat(videoCall): Enhance video call window functionality and UI
- Added support for auto-opening developer tools based on state settings in the video call window. - Updated the video call window to load HTML files with query parameters for URL and auto-open devtools. - Refactored ScreenSharePicker component to improve UI consistency by changing background color and adjusting color logic for selected sources. - Improved state management in VideoCallWindow to initialize URL and auto-open devtools settings from query parameters, enhancing user experience. - Adjusted loading and visibility logic for better handling of error and loading states in the video call interface.
Configuration menu - View commit details
-
Copy full SHA for 4663dcc - Browse repository at this point
Copy the full SHA 4663dccView commit details
Commits on Dec 3, 2025
-
chore: Add transparent mode for macOS (#3107)
* testing * macOS: keep Sidebar transparent only; restore normal backgrounds for Shell, content, and webviews. Make body/shell transparent on macOS and paint main content instead; Sidebar uses transparent bg on darwin. Revert global transparent CSS injection. * transparent topbar * feat: Add transparent window feature with settings and internationalization support - Introduced a new feature to enable a transparent window effect, enhancing the visual experience on macOS. - Updated the state management to include `isTransparentWindowEnabled`. - Added a new settings component for toggling the transparent window effect. - Implemented internationalization for the new feature in multiple languages (en, de, es, fr, hu, no, pt-BR, ru, sv). - Updated the root window creation logic to respect the transparent window setting. * feat: Enhance transparent window feature with state management and styling updates - Added support for `isTransparentWindowEnabled` state in the Shell component to manage the transparent window effect. - Updated GlobalStyles to conditionally set the background color based on the transparency setting and platform. - Refactored the Wrapper component to apply the transparent background style when enabled. - Improved the reducer for `isTransparentWindowEnabled` to handle invalid payload types gracefully. - Introduced platform detection utility to streamline platform-specific logic across components. * feat(i18n): Add transparent window effect localization for multiple languages - Introduced translations for the new transparent window effect feature in Arabic, Finnish, Italian, Japanese, Norwegian, Polish, Swedish, Turkish, Ukrainian, and Chinese (Simplified and Traditional). - Updated the settings structure in each language file to include titles and descriptions for the transparent window option, enhancing user experience across different locales. * feat(i18n): Add transparent window effect localization in Turkish - Added Turkish translations for the transparent window effect feature, including title and description. - Removed the previous settings structure for the transparent window from the settings section, streamlining the localization file. * fix: Resolve lint errors from master merge Fixed formatting issues in videoCallWindow files that were introduced in recent master commits.
Configuration menu - View commit details
-
Copy full SHA for b64105e - Browse repository at this point
Copy the full SHA b64105eView commit details -
fix: Windows executable not being signed (#3150)
* feat: Implement Windows executable signing in afterPack hook - Added functionality to sign Windows executables using jsign and Google Cloud KMS during the afterPack process. - Introduced environment variable validation for signing credentials and tools. - Enhanced the build process to ensure executables are signed post-build, improving security and compliance. - Updated the Windows packaging workflow to include signing steps, ensuring all built packages are properly signed before distribution. * fix: Update key alias extraction logic in afterPack.js - Refactored the `extractKeyAlias` function to trim whitespace and adjust the index for extracting the key alias from the KMS resource, ensuring correct parsing of the resource string. - Improved readability of the code by consolidating the environment variable handling in the signing process for Windows executables. * refactor: Update afterPack.js to improve Windows executable signing process - Changed comments for clarity regarding the application path determination for builds. - Moved Windows executable signing logic to occur before applying security fuses, ensuring proper signing of executables. - Enhanced error handling during the signing process to prevent build failures if signing fails, improving build resilience. - Updated logging to provide clearer information about the signing and fusing processes. * refactor: Revise Windows signing and fusing process in afterPack and notarize scripts - Consolidated Windows executable signing logic to occur before applying security fuses, ensuring proper signing order. - Introduced a new function to apply fuses after signing, enhancing clarity in the build process. - Updated comments and logging for better understanding of the signing and fusing workflow. - Adjusted environment variable handling to align with the new signing process, improving overall build resilience.
Configuration menu - View commit details
-
Copy full SHA for 84de523 - Browse repository at this point
Copy the full SHA 84de523View commit details -
fix: Freezing video call window on loading inside RDP sessions (#3143)
* feat(video-call): Enhance Windows Graphics Capture handling in RDP sessions - Implemented comprehensive disabling of Windows Graphics Capture (WGC) features to ensure fallback to the Desktop Duplication API during RDP sessions. - Updated smart restart behavior to provide clearer user guidance when toggling settings in RDP environments. - Enhanced UI to reflect the current state of WGC settings, including disabling the toggle when in RDP sessions. - Added technical details on the implementation of disabled Chrome features and their impact on screen capture reliability. This update improves the user experience and ensures consistent behavior across different session types. * fix(rollup): Update output directory for preload files - Changed the output directory for preload files from 'app' to 'app/preload' in the Rollup configuration. This adjustment improves project structure and organization for better clarity in file management. * fix(i18n): Update Russian translation for video call screen capture fallback - Revised the forced description for the video call screen capture fallback to enhance clarity and user understanding regarding its behavior in RDP sessions. The new translation provides a more accurate explanation of the feature's functionality and its impact on local launches. * refactor(videoCall): Clean up code formatting and improve readability - Reformatted the `loadFile` method call in `ipc.ts` for better readability. - Removed unnecessary blank line in `video-call-window.tsx`. - Adjusted visibility logic in `videoCallWindow.tsx` for improved clarity. * refactor(videoCall): Migrate video call window to TypeScript and enhance error/loading UI - Renamed `video-call-window.tsx` to `video-call-window.ts` and refactored the component to TypeScript for better type safety. - Introduced new loading and error overlay components with corresponding CSS for improved user experience during loading and error states. - Updated the Rollup configuration to reflect the new input file name. - Adjusted documentation to match the new file naming conventions. * refactor(videoCall): Simplify ScreenSharePicker component and improve IPC handling - Removed the onUnmount prop from ScreenSharePicker to keep the component mounted for reuse, enhancing performance. - Updated IPC event handling to ensure proper visibility management without unmounting the component. - Cleaned up code formatting for better readability in screenSharePickerMount and video-call-window files. * refactor(videoCall): Update preload script path in video call window - Changed the preload script path from using `path.join` to a relative path for improved compatibility and simplicity in the video call window component. * refactor(videoCall): Enhance ScreenSharePicker and improve preload script handling - Updated ScreenSharePicker to accept an onMounted prop for better visibility management. - Improved IPC event handling in screenSharePickerMount to ensure proper visibility state when the component is mounted. - Refactored video-call-window to construct an absolute path for the preload script, enhancing compatibility with Electron's webview requirements. * feat(videoCall): Add prewarm capturer cache functionality and enhance video call handling - Introduced a new IPC event 'video-call-window/prewarm-capturer-cache' to prewarm the desktop capturer cache for improved performance during video calls. - Updated the video call window to invoke the prewarm cache function on setup, ensuring a smoother user experience. - Enhanced the ScreenSharePicker and related components for better visibility management and optimized preload script handling. * feat(videoCall): Enhance video call window and screen sharing flow - Implemented a vanilla JavaScript bootstrap architecture for the video call window, improving performance and reducing initial load times. - Introduced a stale-while-revalidate caching mechanism for the desktop capturer, ensuring instant access to cached data while refreshing in the background. - Enhanced the ScreenSharePicker component with deferred loading, allowing for faster user interactions during screen sharing. - Updated documentation to reflect architectural changes and improved user experience features, including cache pre-warming and error handling strategies. * refactor(videoCall): Improve video call webview detection and preload handling - Enhanced the logic for identifying video call webviews using strict URL parsing and partition checks. - Implemented a function to resolve and validate preload file paths, ensuring fallback options are available if the primary preload file is missing. - Updated the ScreenSharePicker component to optimize the useEffect hook for better performance. - Revised documentation to reflect changes in caching architecture and performance characteristics. * feat(videoCall): Update screen picker IPC handling and improve URL retrieval logic - Modified the IPC event for opening the screen picker to return a success status, enhancing error handling. - Improved URL retrieval logic in the video call window to request the URL via IPC if not provided in query parameters, ensuring a smoother user experience. - Added comments for clarity and better understanding of the code flow in the video call window and screen share picker components. * fix(videoCall): Reset screen picker promise on error to prevent stale state - Added a line to set `screenPickerModulePromise` to null in the error handling block of the screen picker opening function, ensuring that the promise state is reset if an error occurs while attempting to open the screen picker. * fix(videoCall): Add missing type import for screenPickerModulePromise - Included a type import for `screenPickerModulePromise` to ensure proper type checking and consistency in the video call window component. * fix(videoCall): Ensure visibility state is reset on screen share picker mount - Moved the reset of `shouldShowOnMount` to the callback function to maintain proper visibility management when the screen share picker is shown. * Fix markdownlint MD040: Add language identifiers to code blocks * feat(videoCall): Enhance video call webview handling and URL validation - Added support for both `persist:jitsi-session` and `persist:pexip-session` partitions in video call webviews to ensure proper identification and preload script application. - Introduced a URL validation function to enforce strict checks on video call URLs, allowing only specific protocols and known hosts, improving security and reliability. - Updated the preload script path handling for consistency and clarity across components. - Enhanced the ScreenSharePicker module with a new type definition for better type safety. * feat(videoCall): Revise video call window documentation and enhance provider support - Updated the video call window documentation to clarify support for any video conferencing provider, emphasizing the generic, provider-agnostic architecture. - Enhanced URL validation to remove provider-specific patterns, allowing seamless integration with various video call services. - Improved the handling of webview partitions to use a generic partition name for all providers, ensuring consistent behavior across different video call implementations. - Added detailed sections on provider-specific requirements for Jitsi and PEXIP, highlighting necessary components and integration steps. * fix(videoCall): Simplify webview webpreferences attribute - Removed the 'nativeWindowOpen=true' option from the webview's webpreferences attribute, streamlining the configuration for improved clarity and consistency. * feat(notifications): Add category field to notifications for better classification - Introduced a 'category' field in notification options, allowing notifications to be classified as 'DOWNLOADS' or 'SERVER'. - Updated various notification creation points across the application to include the new category field, enhancing the organization and handling of notifications. - Adjusted tests to verify the inclusion of the category in notification payloads, ensuring consistency in notification behavior. * fix(videoCall): Update webview preferences and partition naming - Added 'nativeWindowOpen=true' back to the webview's webpreferences attribute for improved popup handling. - Changed the webview partition name from 'persist:video-call-session' to 'persist:jitsi-session' for better clarity and consistency in session management. * feat(videoCall): Enhance screen sharing documentation and implement source validation caching - Updated the screen sharing documentation to include illustrative timings in the example flow. - Added a new source validation cache mechanism to improve performance by caching the validation of selected sources for 30 seconds. - Modified the video call window HTML to provide a label for the reload button, enhancing user experience. - Refactored the video call window logic to limit automatic reload attempts, improving error handling during video call initialization. * fix(videoCall): Update video call webview handling by removing unused parameters - Removed the unused `_params.src` parameter from the `isVideoCallWebview` function call to streamline the logic. - Adjusted the function call to ensure it only uses necessary parameters, improving code clarity and maintainability.
Configuration menu - View commit details
-
Copy full SHA for a70dfc6 - Browse repository at this point
Copy the full SHA a70dfc6View commit details -
fix: Skip signing non-singnable file types like appx (#3151)
* feat(winSignKms): Skip non-signable file types during Authenticode signing process - Added logic to skip files with extensions `.appx` and `.zip` in both `signWindowsOnLinux` and `signWindowsOnWindows` functions, improving the efficiency of the signing process by avoiding unnecessary operations on unsupported file types. - Included console logging to inform users when a file is skipped, enhancing transparency in the signing workflow. * refactor(winSignKms): Improve console logging for skipped file types - Enhanced the console logging in both `signWindowsOnLinux` and `signWindowsOnWindows` functions to improve readability by formatting the log messages across multiple lines. This change maintains clarity when informing users about skipped file types during the Authenticode signing process.
Configuration menu - View commit details
-
Copy full SHA for 8ba4976 - Browse repository at this point
Copy the full SHA 8ba4976View commit details
Commits on Dec 5, 2025
-
chore: Update Electron version to 39.2.5 in package.json and yarn.lock (
#3153) - Upgraded Electron dependency from version 39.2.3 to 39.2.5 to incorporate the latest bug fixes and improvements. - Updated corresponding entries in yarn.lock to reflect the new Electron version.
Configuration menu - View commit details
-
Copy full SHA for 3b1c7c3 - Browse repository at this point
Copy the full SHA 3b1c7c3View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 4.9.2...4.10.0