Skip to content

Conversation

@ovsky
Copy link
Owner

@ovsky ovsky commented Dec 5, 2025

This pull request introduces a session restore and crash recovery feature to the browser, along with improvements to the build system and settings infrastructure. The main changes include new settings for session management, UI enhancements for session restore notifications, and expanded build/install handling for Linux and macOS. These updates improve user experience by allowing automatic restoration of tabs after crashes or restarts, and streamline cross-platform builds.

Session Restore & Crash Recovery Features

  • Added new settings in assets/settings_catalog.json for restoring previous sessions and enabling crash recovery, allowing users to automatically reopen tabs from their last session and continuously save session state.
  • Implemented a visually styled session restore notification bar in the UI (assets/ui.html, assets/ui.css), with buttons to restore or dismiss the previous session, and event handling for user interaction. [1] [2] [3]

Build System & Installation Improvements

  • Enhanced CMakeLists.txt to properly install and copy SDK libraries and resource files for Linux and macOS, ensuring all required assets are present for runtime and packaging.
  • Added post-build commands to copy necessary assets and runtime files for Linux and macOS, supporting smoother development and deployment workflows.

Documentation & Settings System

  • Added a comprehensive refactor summary in docs/General-Codebase-Refactor.md, detailing security, privacy, UI, caching, favicon, build, and settings improvements for future reference and onboarding.

ovsky added 9 commits December 5, 2025 14:33
Added .vscode directory and tasks.json to .gitignore to prevent committing local Visual Studio Code configuration files.
Introduces docs/General-Codebase-Refactor.md, detailing major refactoring changes including security fixes, privacy features, UI improvements, page caching, favicon system, build system updates, and a new settings system. Serves as a comprehensive reference for recent architectural and feature updates.
Adds JavaScript injection to simulate the Do Not Track header and block third-party cookie access when enabled in user settings. This enhances user privacy by overriding navigator.doNotTrack and restricting cookie access in cross-origin iframes.
Expanded comments in UI::ApplySettings to clarify how privacy settings (do_not_track, block_third_party_cookies, enable_web_security) are implemented or supported. Added accessor methods in UI.h for these settings to facilitate JavaScript injection in tabs.
Implements session management for restoring tabs after crashes or normal shutdown. Adds settings for continuous session saving and restoring previous sessions on startup, with UI prompts and logic to avoid overwriting sessions before user choice. Updates tab creation, navigation, and close events to trigger session saves, and provides functions for session file handling and tab restoration.
Introduces a session restore bar to the UI, including new HTML markup, CSS styles, and JavaScript functions for showing, hiding, and handling user actions. Updates .gitignore to exclude session data and .vscode directory.
Introduces two new settings: 'Restore previous session' to reopen tabs from the last session on startup, and 'Enable crash recovery' to continuously save session state for restoring tabs after crashes or unexpected closures.
Introduces a detailed markdown document describing the Chrome-like session restore functionality, including features, UI design, implementation details, session file format, internal page filtering, and testing checklist.
This commit adds CMake install and post-build commands to include Ultralight SDK shared libraries (.so/.dylib) and resource files for Linux and macOS platforms. It ensures that required runtime files and ICU data are copied from various possible SDK layouts, improving cross-platform packaging and local development.
@ovsky ovsky merged commit 4e11536 into dev Dec 5, 2025
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants