Tags: the-ora/browser
Tags
feat: auto Picture-in-Picture handling and improve favicon handling (#… …160) * Add Auto Picture-in-Picture Feature and Settings Integration - Introduced a new setting for enabling/disabling automatic Picture-in-Picture (PiP) mode on tab switch. - Updated SettingsStore to manage the autoPiPEnabled state and persist it. - Enhanced GeneralSettingsView to include a toggle for the auto PiP feature. - Modified TabManager to trigger PiP when switching to a new tab if the setting is enabled. - Implemented JavaScript function to handle PiP requests in WebViewNavigationDelegate. * Enhance Media Playback Management and Favicon Handling - Updated Tab model to synchronize title changes with the media controller when a tab's title is set. - Refactored favicon handling in MediaPlayerCard to use AsyncImage for improved loading and display. - Modified FaviconService to cache favicons more efficiently and updated the favicon URL size for better resolution. - Enhanced MediaController to track whether media sessions were played and filter visible sessions accordingly. - Implemented session removal logic in TabManager to ensure proper cleanup of media sessions when tabs are closed. - Improved JavaScript integration for media state tracking, including handling of media play events and title updates. * Refactor Tab and Favicon Handling for Improved Code Clarity - Aligned whitespace in the Tab model for better readability. - Updated favicon handling in FaviconService to streamline fetching and caching logic. - Introduced a new method for generating favicon URLs, enhancing maintainability. - Improved asynchronous favicon fetching with better error handling and completion callbacks. - Enhanced the average color computation for favicons to ensure accurate color representation. * Refactor Favicon Handling to Use Shared Instance - Updated instances of FaviconService to use the shared singleton instance across multiple files for consistency and improved memory management. - Removed unnecessary faviconService parameters from functions in SearchEngine and LauncherView to streamline code. - Cleaned up code by eliminating redundant faviconService declarations in various views. * Enhance BrowserSplitView Opacity and Hit Testing Logic - Updated opacity handling in BrowserSplitView to use a more concise comparison for active tab identification. - Added allowsHitTesting modifier to ensure user interactions are only enabled for the active tab, improving user experience. * Fix Typo in FaviconService Completion Handler * refactor(TabManager): streamline Picture-in-Picture handling by consolidating logic into togglePiP method * fix: update favicon URL handling to include size parameter for consistency across services * refactor(Tab): standardize formatting and improve code readability by aligning variable declarations and method definitions
Replace VerticalScrollView with ScrollView (#148) * Replace VerticalScrollView with ScrollView * Update ora/Modules/Sidebar/ContainerView.swift Co-authored-by: Copilot <[email protected]> * remove scrollbars * remove scroll bar --------- Co-authored-by: Kenenisa Alemayehu <[email protected]> Co-authored-by: Copilot <[email protected]>
feat: support for duplicate tab (#129) * added duplication feature * fix : added calculation logic * fix : drag and reorder issue when duplicate tabs are located * fix : duplicate appears below duplicated tab instead of last * fix : fixed merge conflicts with main * fix : refactored duplicate method to use existing functions * fix : refactored open tab to return the tab and reordered the tabs when new tab is created using duplicate * fix : removed duplicate functions * fixed the reorder tab issue * Enhance TabManager to support silent loading of tabs. Added 'loadSilently' parameter to the tab opening method, allowing for silent initialization of web views based on user preferences. * feat : added is alive check when duplicating tab to check if the tab is dormant or not * feat : replaced is alive check with is web view ready --------- Co-authored-by: Kenenisa Alemayehu <[email protected]>
Enhance Tab Management Settings and UI (#139) * Refactor BrowserView for Improved Tab Management and UI Responsiveness - Enhanced tab handling by ensuring only active web views are displayed. - Introduced a new method for rendering web views based on the active tab. - Improved sidebar toggle functionality and UI responsiveness. - Cleaned up code formatting and removed unnecessary whitespace for better readability. * Enhance Tab Management and UI with Media Playback Indicators - Added isPlayingMedia property to Tab model for tracking media playback state. - Updated FloatingTabSwitcher and TabItem views to display media playback indicators. - Refactored BrowserView to improve tab rendering logic and maintain UI responsiveness. - Ensured MediaController updates the isPlayingMedia property in the corresponding Tab. - Improved recent tab sorting and rendering logic in TabManager for better user experience. * Add Tab Management Settings for Automatic Cleanup - Introduced settings for tab management, allowing users to configure timeouts for tab activity and removal. - Added UI elements in GeneralSettingsView for adjusting tab alive and removal timeouts. - Implemented logic in TabManager to automatically clean up and remove inactive tabs based on user-defined settings. - Enhanced Tab model with isAlive property to determine recent activity of tabs. * Enhance Tab Management Settings and UI - Updated tab management settings to allow users to configure timeouts for tab activity and removal, with new options in GeneralSettingsView. - Adjusted default timeout values for tab activity and removal to 1 hour and 1 day, respectively. - Implemented automatic cleanup logic in TabManager to manage inactive tabs based on user-defined settings. - Improved UI elements for better user experience in managing tab settings. - Cleaned up code formatting and removed unnecessary whitespace for improved readability. * Refactor BrowserView to Improve Code Readability - Removed unnecessary whitespace and cleaned up code formatting in BrowserView.swift for better readability. - Streamlined the rendering logic for active web views, enhancing overall code clarity. * Fix Typo in HistoryManager Parameter Name Across Multiple Files - Corrected the parameter name from `historyManger` to `historyManager` in the `restoreTransientState` method across `Tab.swift`, `BrowserView.swift`, and `TabManager.swift` to ensure consistency and prevent potential errors. * Refactor Window Closing Logic and Update URL Loading in Tabs - Modified the "Close Window" button to only close the Settings window when it is the active window. - Updated URL loading logic in Tab class to conditionally use savedURL based on tab type, ensuring correct URL handling. - Corrected parameter name from `historyManger` to `historyManager` in multiple files for consistency. * feat: make maximum recent tabs configurable in settings * feat: normalize tab timeout settings for improved user configuration - Introduced normalization logic for tab alive and removal timeouts, ensuring values are within supported ranges. - Updated default timeout values to enhance user experience and prevent invalid settings. - Added a helper method to streamline timeout normalization process.
Signed release generator scripts (#82) * Enhance build-release.sh with environment variable loading and security checks - Added a function to load environment variables from a .env file, ensuring required variables are set. - Updated export options for DMG signing to use Developer ID and manual signing style. - Implemented app bundle and DMG signing with Developer ID, including notarization and stapling of the notarization ticket. - Added a security check to prevent the .env file from being committed to the repository. * Add checklist for including screenshots in PRs Added checklist item for including screenshots in PRs. * feat: per-container storage isolation (#79) * feat: implement per-container storage isolation - Add per-container WKWebsiteDataStore for web data isolation - Make History.container optional for better data management - Update Tab model to use custom WKWebView config with container ID - Enhance PrivacyService to clear data per container - Add clearContainerHistory method in HistoryManager - Improve container activation logic with webView readiness check - Refactor TabScriptHandler for container-specific configurations - Clean up excessive logging in UpdateService - Add error handling for SwiftData store initialization * refactor: improve code formatting and readability in Tab and TabScriptHandler - Adjust spacing in WKWebView configuration for consistency - Simplify conditional statement formatting in TabScriptHandler * feat: update build-release.sh - Enhanced app signing process with deep codesigning and added verification steps for notarization. * chore: update .gitignore to include project.yml.bak --------- Co-authored-by: Yonathan Dejene <[email protected]>
PreviousNext