Commit Graph
100 Commits
Author SHA1 Message Date
andrew 96cf0d9763 Add macOS build helper script
Adds a root-level `build.sh` for configuring and building Nebula Browser with CMake on macOS, including clean and configure-only modes. Also removes an unused `Trim` helper from the extension manager.
2026-07-13 11:53:47 +12:00
andrew b7596674ab Add host platform detection and macOS styles
Expose host platform to the UI and apply platform-specific styling. Backend: add CurrentPlatformName() and include "platform" in the JSON sent from NebulaController so the frontend can know the host OS. Frontend: detectHostPlatform() initializes state.platform, applyPlatform() sets a platform-* body class, and applyState() applies it. CSS: add .platform-macos rules to adjust title padding and hide window controls on macOS. Also fix FilePathToUrl to avoid producing an extra slash when the encoded path already starts with '/'.
2026-05-22 10:55:16 +12:00
andrew 29908646ea Add macOS Cocoa port and CEF helper support
Introduce a macOS Cocoa-based UI and CEF helper subprocess support. CMake: enable OBJCXX on Apple, treat mac sources as .mm, set -fobjc-arc, link Cocoa frameworks, and generate helper app targets using a mac Info.plist template; keep libcef logical target off macOS. Implementation: add Objective-C++ implementations for browser_host and nebula_window, convert startup to ObjC++ (prepare NSApplication), add process_helper_mac (CEF helper entry) and load CEF library from main/main_bigpicture on mac. Tooling/docs: add .clangd fallback flags, compile_commands symlink helper, update cross-platform docs for mac status. Misc: add menu-popup UI page, define UNREFERENCED_PARAMETER in platform/types.h, small code cleanups (use (void)layout, include platform/types.h) and update .gitignore.
2026-05-19 12:57:26 +12:00
andrew 8cf9b50690 Add MPL-2.0 & asset licenses; expand README
Add a full Mozilla Public License v2.0 (LICENSE) and a new ASSETS-LICENSE.md that clarifies Nebula branding, artwork, and other non-code assets are not covered by MPL and are All Rights Reserved unless stated otherwise. Update README.md with a detailed project overview: CEF migration, project status, goals, distribution direction, planned features, architecture notes, build instructions, and explicit licensing guidance separating source code (MPL-2.0) from branding assets and documentation.
2026-05-19 10:25:37 +12:00
andrew 54216aa133 Persist site history to disk and integrate with settings
Add persistent site history storage and plumbing between the renderer settings UI and the native app. The app now loads/saves site_history.txt in the user data directory (max 200 entries, http/https-only, stored one URL per line) and records visited sites on navigation. Settings pages receive the history via injected JavaScript when the settings page finishes loading, and a "clear-site-history" message from the settings UI clears the on-disk history and updates the renderer.

Other changes: allow settings-related process messages from content frames in the CEF client, introduce OnContentLoadFinished to trigger history injection, expose electronAPI.send/sendToHost (and reuse the native postMessage handler) in the V8 context, and remove the BigPicture in-app history UI/refresh/clear handlers (history is now managed by the native app). Also cleaned up includes and added helper utilities for JSON escaping, lowercasing, and file path handling. The initial tab restore logic was simplified to always create an initial tab (home or initial_url) and persist the session.
2026-05-14 20:57:17 +12:00
andrew 8eb5c1a3b2 Persist session state and single-instance
Add session persistence and single-instance handling. Introduces browser/session_state.{h,cpp} to load/save a simple JSON session_state.json (limits restored tabs to 50, basic JSON parsing, atomic write via a .tmp rename). TabManager gains RestoreTabs and ActiveTabIndex to restore and track tabs. NebulaController now calls PersistSession on tab/title/activate/close events, flushes cookies on shutdown, and sets CEF runtime style to Alloy for embedded child browsers and devtools. run.cpp adds a named mutex to prevent multiple instances, enables persistent session cookies, and tweaks initial URL handling. Added GetSessionStatePath() to ui/paths and updated CMakeLists.txt to include the new source file.
2026-05-14 20:48:48 +12:00
andrew 406d73c10f Fullscreen and Fullscreen YouTube video fixes 2026-05-14 19:52:38 +12:00
andrew 6fac7e320b Made GPU diagnostics page more functional 2026-05-14 19:42:08 +12:00
andrew a32940a3f3 Enable GPU/WebGL and add persistent cache dirs
Enable hardware-accelerated rendering and persist GPU/cache data. Added a BrowserSettings() helper that enables WebGL and use it when creating Chrome/Content/MenuPopup browsers (src/app/nebula_controller.cpp). Configure CefSettings to use a persistent user data and cache directory (src/app/run.cpp) by calling nebula::ui::GetUserDataDirectory() and GetCacheDirectory(). Add command-line switches to initialize the GPU process and avoid sandbox/blocklist fallbacks (disable GPU sandbox, in-process-gpu, ignore-gpu-blocklist, enable-accelerated-video-decode, use ANGLE D3D11) to prevent GPU crashes and Chromium falling back to software rendering (src/cef/nebula_app.cpp). Implement GetUserDataDirectory() and GetCacheDirectory() (preferring %LOCALAPPDATA% with an executable-directory fallback) and expose them in the header (src/ui/paths.cpp, src/ui/paths.h). These changes ensure GPU shader caching, WebGL support, and smoother video/graphics behavior.
2026-05-14 19:37:49 +12:00
andrew 10180b7109 Support nebula:// internal pages & GPU tools
Introduce support for an internal nebula:// URL scheme and internal page routing (ResolveInternalUrl / ToInternalUrl), including dedicated slugs for home, settings, downloads, big-picture, gpu-diagnostics, insecure and a 404 fallback. Wire internal resolution into browser creation and tab navigation so internal pages load from local UI files. Add an insecure-warning interstitial flow with a navigate-insecure command and a one-shot bypass set (ShouldBypassInsecureWarning) so content can request navigating to an HTTP target after user confirmation. Harden BrowserClient handling to resolve Chromium new-tab and nebula internal URLs, redirect HTTP to the insecure warning when appropriate, and handle 404 responses by loading the internal 404 page. Update chrome UI behavior to hide internal home URLs, accept nebula:// in navigation input checks, and add a GPU Diagnostics page (revamped UI + diagnostic scripts) plus menu entry. Misc: improve URL utilities (scheme checks, percent-encoding, decorations), fix 404 display text, adjust menu popup size, tweak window frame styling (DWM attributes) and remove branding block from chrome UI CSS.
2026-05-14 19:11:06 +12:00
andrew adefa1706e Added OS context menu for linux 2026-02-25 11:57:31 +13:00
andrew 8b87a07d1b Merge remote-tracking branch 'origin/main' 2026-02-25 11:21:04 +13:00
andrew a101899d9c Add RGB CSS variables for theme colors
Introduce --primary-rgb, --accent-rgb, --success-rgb and --warning-rgb and replace hardcoded rgba(...) usages in CSS with rgba(var(--*-rgb), alpha) to allow dynamic alpha blending from theme colors. Add a hexToRgb helper in setup.js and populate these RGB variables in applyThemeToSetupPage (handles 3- and 6-digit hex and validates input), so runtime theme changes can drive translucent shadows, backgrounds and highlights.
2026-02-24 21:00:38 +13:00
andrew 0b51d133a4 Archive Steam docs; add itch.io upload guide
Move legacy Steam-related docs into documentation/archived and add a new UPLOAD-ITCH.md describing how to publish builds to itch.io with Butler. Update top-level README to state official releases will be on itch.io. Remove Steam-specific UI/features: drop steamCloudOptIn from first-run preferences, remove the Steam Cloud teaser and summary from the setup flow, and adjust settings/setup copy to reference handheld devices and non‑Steam distribution. Also make a small wording tweak in the plugins doc about rendererPreload.
2026-02-24 20:50:00 +13:00
andrew 6b2a7c8404 Hide default linux task buttons
The electron app now uses the built in menu bar on linux
2026-02-24 15:19:41 +13:00
andrew 618ea7d12d Prefer usr/user-data for portable data
Rename and consolidate portable user-data to usr/user-data and update tooling and runtime to match. Updated appdir-example/run-nebula.sh to point at usr/user-data; make-appdir.sh and update-appdir.sh now patch/copy the launcher, create the usr/user-data directory and set secure permissions (mkdir -p, chmod 700), and remove sed backups. portable-data.js now defaults to app-local user-data and prefers <AppDir>/usr/user-data on Linux AppDir builds (with safe fs checks). Also minor UI change in renderer/setup.css to make the footer background transparent and disable the backdrop blur.
2026-02-19 17:33:26 +13:00
andrew 0137df60dd Updated create and update appdir files to include Nebula-Desktop and Nebula-Controller files 2026-02-01 21:29:13 +13:00
andrew 9df3dbeab0 Update README.md 2026-01-31 17:07:09 +13:00
andrew 8d41692f03 Improve zoom handling and setup UI layout
Enhanced zoom target selection to better support parent windows in desktop mode and improved menu popup zoom refresh. Updated setup.css to refine layout, scrolling, and visual effects, including better handling for small screen heights and improved sticky footer appearance.
2026-01-22 13:11:41 +13:00
andrew 28d2daf06d Improve default browser handling and protocol support
Adds explicit AppUserModelID for Windows, robust single-instance and protocol URL handling, and protocol registration for http/https in package.json. Enhances default browser logic to handle OS-specific requirements, provides user feedback in the setup UI, and allows opening system settings for default browser selection. Updates preload and renderer logic to support these changes.
2026-01-21 21:11:59 +13:00
andrew 97150ce2c4 Update setup.html 2026-01-21 11:44:46 +13:00
andrew c8c6397192 Update linux sh files and appdir folder 2026-01-21 11:26:26 +13:00
andrew 1c24b914b3 Update theme-manager.js 2026-01-21 10:59:21 +13:00
andrew e9cf7b29ae Create README-linux-upload.md 2026-01-21 10:46:23 +13:00
andrew 48ae196c4c Improve portable data path resolution logic
Updated getPortableDataPath to prefer storing 'user-data' in Documents/My Games/<AppName>, with a fallback to the app directory if necessary. This enhances data portability and aligns with common user data storage conventions.
2026-01-21 10:23:53 +13:00
andrew 6ea31e7f80 Add first-time setup onboarding flow
Introduces a multi-step onboarding process for first-time users, including theme selection and default browser setup. Adds setup.html, setup.js, and setup.css for the new UI, updates main.js and preload.js to support onboarding logic and IPC handlers, and adjusts theme-manager.js for correct theme directory resolution.
2026-01-20 22:07:22 +13:00
andrew a0e76e623d Add BrowserView tab system and overlay menu for desktop mode
Introduces a BrowserView-based tab management system for desktop mode, replacing webview elements for tab content. Adds IPC handlers and state management for creating, activating, destroying, and communicating with BrowserViews. Implements an overlay menu popup window for tab actions and zoom controls. Updates renderer UI to use a dedicated view host container, and refactors tab creation and navigation logic to use BrowserViews. Improves focus styling in CSS and updates preload and IPC messaging to support BrowserView contexts.
2026-01-19 20:57:24 +13:00
andrew 03a99b7d46 Improve tab navigation and gamepad D-pad support
Enhanced directional navigation logic to prioritize active tab panel content when moving from tab links, improving keyboard and controller accessibility. Added robust D-pad detection for gamepads, supporting both button and axis-based D-pads for broader controller compatibility. Updated settings tab logic to allow ArrowDown/ArrowRight to move focus from tabs to the active panel, with global fallback for improved accessibility.
2026-01-19 19:50:51 +13:00
andrew de64ae21c0 Add bookmark management UI and logic
Introduces UI buttons for adding bookmarks and current page bookmarks in bigpicture.html. Implements bookmark creation, editing, and saving logic in bigpicture.js, including OSK integration for bookmark input, persistent storage support, and improved rendering of bookmark tiles.
2026-01-19 14:55:37 +13:00
andrew ee548b2053 Add search history and zoom controls to settings
Implemented search history tracking and display using localStorage, with options to clear history from the settings page. Replaced the display scale slider with interactive zoom controls and preset buttons, applying zoom changes immediately. Updated styles and HTML structure to support these new features.
2026-01-18 16:22:39 +13:00
andrew 8df3e8bfe8 Improve tab history navigation and internal page handling
Refactors tab history management to prevent duplicate entries and ensure correct navigation for internal nebula:// pages. Updates back/forward navigation to use custom history tracking, properly converting between home and webview tabs, and disables navigation buttons based on history state instead of webview methods.
2026-01-18 16:06:55 +13:00
andrew a59209a40f Hide tab favicon on image load error
Adds an onerror handler to tab favicon images to hide them if the favicon fails to load, improving the appearance of tabs with missing or broken favicon URLs.
2026-01-18 15:55:22 +13:00
andrew 59118da998 Redesign 404 page with improved UI and UX
Revamps the 404.html page with a modern dark-themed design, enhanced layout, and improved messaging. Adds responsive styles, a prominent error icon, clearer action buttons, and displays the attempted URL. Refactors JavaScript for better navigation handling and integration with Electron or parent window messaging.
2026-01-18 15:52:41 +13:00
andrew 681b087f7a Rename internal URL scheme from browser:// to nebula://
Replaces all occurrences of the 'browser://' internal URL scheme with 'nebula://' across main process, plugin manager, and renderer files. This change standardizes the internal page scheme to 'nebula://' for improved clarity and branding.
2026-01-18 13:38:26 +13:00
andrew 0eb9ec0c9a Redesign settings UI and update Electron to v40
Revamps the settings page with improved layout, modernized CSS, and enhanced accessibility, including new layout helpers, better grouping, and consistent styling. Updates Electron from v39.2.7 to v40.0.0 in dependencies. Adds dynamic theme application to the settings page, ensuring user-selected themes are reflected immediately.
2026-01-18 13:22:46 +13:00
andrew bb4cbabb76 Redesign Electron updater UI and restrict updates to dev mode
Revamps the Electron update section in settings with a new UI, status banner, and clearer messaging. The updater logic is now only available in development mode; the main process disables update attempts in packaged builds. Updates to the renderer and main process ensure users on Steam or packaged builds are informed that updates are handled externally, while developers can check and install Electron updates during development.
2026-01-18 12:46:55 +13:00
andrew 00fccfdc1b Fix double zoom bug in Big Picture Mode display scaling
Removed unconditional CSS zoom call that was causing zoom to be applied
twice (Electron zoom + CSS zoom), resulting in squared scaling values.
Now correctly uses Electron zoom as primary with CSS as fallback only.
2026-01-18 12:17:51 +13:00
andrew 52a4d877a1 Enable portable user data on all platforms
Portable mode now works on Windows, macOS, and Linux, storing user data in a 'user-data' folder within the app directory by default. The mode is enabled by default and can be disabled via NEBULA_PORTABLE=0. All file operations for history and search data now respect portable mode, using secure file writes where appropriate. Updated .gitignore and package.json to exclude portable data from versioning and packaging. Also fixed Bing icon filename case in home.html.
2026-01-02 17:36:43 +13:00
andrew 9c8b334133 Update home.js 2026-01-01 22:24:48 +13:00
andrew 26126982e2 Implement custom Windows title bar and theme refactor
Adds a frameless window with custom title bar controls for Windows, including minimize, maximize/restore, and close buttons. Refactors theme color application to use CSS variables and color-mix for improved consistency and dynamic theming across home, settings, and main UI. Updates renderer and styles to support the new title bar, platform detection, and improved color handling. No changes to lock files.
2026-01-01 15:25:45 +13:00
andrew 1b71a4001d Refactor Big Picture Mode to use main window
Big Picture Mode now launches in the main application window instead of a separate Electron window. This reduces resource usage, prevents SteamOS desktop mode conflicts, and enables seamless switching between Desktop and Big Picture modes. Updated documentation, main process logic, and preload API to reflect the new architecture.
2026-01-01 12:17:35 +13:00
andrew 76f5ef188a Refactor Steam callback cleanup on app exit
Simplified the cleanup logic for Steam callback pump by removing unnecessary try-catch and optional chaining. The cleanup is now directly registered after requiring Electron modules.
2026-01-01 00:34:57 +13:00
andrew 72438af1b6 Improve Steam Input handling and update documentation
Updated main.js to better manage Steam Input environment variables, explicitly initialize and shutdown Steam Input, and regularly pump Steam callbacks to ensure proper controller support. Enhanced README-STEAM.md with detailed instructions for configuring Steam Input on Windows, Linux, and Steam Deck, including guidance for software/app limitations and launch options.
2025-12-31 23:58:38 +13:00
andrew 3d07b85706 Added more steam controller configs 2025-12-30 22:21:59 +13:00
andrew ddf5bf49be Improve Steam Deck controller support and documentation
Adds environment variable setup and early gamepad initialization to main.js and preload.js to ensure native controller support on Steam Deck and SteamOS. Updates README-STEAM.md and BIG_PICTURE_MODE.md with detailed instructions for disabling Steam Input emulation and troubleshooting. Introduces start-steamdeck.sh launcher script to automate environment configuration for Steam Deck users.
2025-12-30 21:47:40 +13:00
andrew 705efa04e0 Delete nebula-appdir.tar.gz 2025-12-30 21:02:35 +13:00
andrew ec08213563 Steam Controller Reg 2025-12-30 19:48:04 +13:00
andrew 47970eb0cd Create setup.sh 2025-12-30 18:53:41 +13:00
andrew b9f7779fc5 Save user data to internal folder (Linux) 2025-12-30 18:31:55 +13:00
andrew 4bd2ef0e2d Create update-appdir.sh 2025-12-30 18:22:51 +13:00
andrew f59f4576b9 Revert "Add Steam Input support for Big Picture Mode"
This reverts commit 8994b9b2d3.
2025-12-30 18:15:14 +13:00
andrew 8994b9b2d3 Add Steam Input support for Big Picture Mode
Introduces a Steam Input bridge using steamworks.js, enabling native controller support in Big Picture Mode and on Steam Deck. Adds a new steam-input-manager.js module, integrates IPC handlers in main.js, exposes a steamInputAPI in preload.js, and updates bigpicture.js to use Steam Input when available with fallback to legacy Gamepad API. Updates dependencies and scripts in package.json for Steam Deck and Big Picture profiles.
2025-12-30 17:52:17 +13:00
andrew 55858f13ac some logos added 2025-12-29 15:18:57 +13:00
andrew a77de1d38e Merge branch 'SteamOS' of https://github.com/NebulaZMG/NebulaBrowser into SteamOS 2025-12-29 15:18:06 +13:00
andrew 63f8a22e5c Add nebula-appdir archive via Git LFS 2025-12-29 15:09:20 +13:00
andrew b1c12bbe2d Configure Git LFS for large archives 2025-12-29 15:08:57 +13:00
andrew d60d5e6049 Merge branch 'SteamOS' of https://github.com/NebulaZMG/NebulaBrowser into SteamOS 2025-12-29 12:14:41 +13:00
andrew 87fe66f082 got gpu rendering working, also removed plugins 2025-12-29 12:01:24 +13:00
andrew 464f1f376f Merge branch 'SteamOS' of https://github.com/NebulaZMG/NebulaBrowser into SteamOS 2025-12-28 22:40:39 +13:00
andrew d85a8754d9 started adding Screen Scale 2025-12-28 22:38:19 +13:00
andrew cfbfe5ea6f Merge branch 'SteamOS' of https://github.com/NebulaZMG/NebulaBrowser into SteamOS 2025-12-28 22:14:17 +13:00
andrew 60d382a135 Game Mode compatability
- Browser will now launch into big picture mode if device is in game mode

- Controllers work
2025-12-28 22:13:07 +13:00
andrew fa04dc4e32 Update bigpicture.js
Make gamepad work via steam launch
2025-12-28 21:53:14 +13:00
andrew 21da448e8f Initial commit (without build artifacts) 2025-12-28 21:36:50 +13:00
andrew 921ab9642f Revert "Add SteamOS GPU fixes and launch script"
This reverts commit 27cb97ac00.
2025-12-28 12:01:32 +13:00
andrew 8843185fd6 Revert "Improve SteamOS/GPU detection and Linux packaging"
This reverts commit a92e3e4652.
2025-12-28 12:01:29 +13:00
andrew ba40586910 Revert "Refactor GPU config: move critical Linux flags to main.js"
This reverts commit 80622e63fb.
2025-12-28 12:01:17 +13:00
andrew 8b9e97c292 Revert "Update package.json"
This reverts commit 9898d8248e.
2025-12-28 12:01:14 +13:00
andrew 3a551867aa Revert "Update GPU flags for SteamOS and improve updater logging"
This reverts commit 541c974397.
2025-12-28 12:01:11 +13:00
andrew a95d7678c7 Revert "Update SteamOS GPU flags for improved compatibility"
This reverts commit e77bdfd962.
2025-12-28 12:01:08 +13:00
andrew 7d210f528b Revert "Switch SteamOS to software rendering for webview stability"
This reverts commit 10b6f11cf0.
2025-12-28 12:01:05 +13:00
andrew 538785b98d Revert "Update style.css"
This reverts commit 1b0869ea69.
2025-12-28 12:01:02 +13:00
andrew a4a7ac4fa9 Revert "Update home webview display style"
This reverts commit b70473cc92.
2025-12-28 12:00:59 +13:00
andrew b70473cc92 Update home webview display style
Changed #home-webview display from flex to block and removed the flex property to improve layout consistency when the home container is active.
2025-12-28 11:59:43 +13:00
andrew 1b0869ea69 Update style.css 2025-12-28 11:58:05 +13:00
andrew 10b6f11cf0 Switch SteamOS to software rendering for webview stability
Replaces hardware acceleration and ANGLE-based GPU flags with software rendering on SteamOS to address webview rendering issues under Gamescope. Updates both main.js and the start:steamos script in package.json to disable GPU compositing and enforce software rendering.
2025-12-28 11:56:23 +13:00
andrew e77bdfd962 Update SteamOS GPU flags for improved compatibility
Refined GPU command line switches for SteamOS/Gamescope in main.js to use ANGLE with X11, enable VulkanFromANGLE, and adjust feature flags. Updated the start:steamos script in package.json to match these changes for better webview rendering and stability on Steam Deck.
2025-12-28 11:54:37 +13:00
andrew 541c974397 Update GPU flags for SteamOS and improve updater logging
Adjusted GPU command line switches for better SteamOS/Gamescope compatibility, including switching to egl-angle and refining feature flags. Improved auto-updater logger setup with error handling to avoid issues in unsupported environments.
2025-12-28 11:52:54 +13:00
andrew 9898d8248e Update package.json 2025-12-28 11:49:52 +13:00
andrew 80622e63fb Refactor GPU config: move critical Linux flags to main.js
Critical Linux and SteamOS GPU flags are now set immediately after loading Electron in main.js, before app.ready, to ensure proper rendering and compatibility. The GPUConfig class now only applies additional, non-critical settings. Improved SteamOS detection logic and added more detailed logging for GPU environment detection.
2025-12-28 11:47:57 +13:00
andrew a92e3e4652 Improve SteamOS/GPU detection and Linux packaging
Enhances GPU flag handling for SteamOS and Gamescope by adding early detection and flag injection in main.js. Updates the README with clearer SteamOS instructions, adds a SteamOS-optimized .desktop file, and improves Linux packaging options in package.json for AppImage and deb targets with appropriate flags and metadata.
2025-12-28 11:42:52 +13:00
andrew 27cb97ac00 Add SteamOS GPU fixes and launch script
Introduces SteamOS/Steam Deck detection and GPU configuration in gpu-config.js, adds a dedicated start-steamos.sh launch script, and updates package.json with new scripts for SteamOS and Linux GPU-safe launches. Also adds a comprehensive GPU troubleshooting guide in GPU-FIX-README.md to address rendering issues on various platforms.
2025-12-28 11:37:25 +13:00
andrew 1687f34e9b Redesign settings UI and add new settings functionality
Revamps the settings section in Big Picture mode with a tabbed interface for Themes, Display, Privacy, and About panels. Adds theme selection with live preview and persistence, display scale adjustment, privacy controls for clearing data/history/search, and an About panel showing app and environment info. Updates main process to handle theme and display scale changes, and implements corresponding renderer logic and styles.
2025-12-28 11:00:20 +13:00
andrew 399e8da5b4 Add scroll normalization for consistent scroll speed
Introduces CSS and JavaScript to normalize scroll speed across all sites by intercepting wheel events and applying a consistent scroll delta. The normalization is injected into webviews on load to ensure uniform scrolling behavior regardless of site-specific overrides.
2025-12-28 10:50:52 +13:00
andrew 37345b267b Add enhanced history management and favicons
Introduces clear and refresh buttons for browsing history, enables favicon display for history, bookmarks, and recent sites, and improves history storage with IPC support and localStorage fallback. Also updates styles for action buttons and favicons, and adds gamepad navigation for browser history.
2025-12-28 10:47:04 +13:00
andrew 8a2b7ee5e9 Enhance Big Picture Mode OSK and webview input support
Adds native input event injection for webviews via IPC, improves the on-screen keyboard (OSK) UI with a blinking cursor and label, and enables seamless text entry into webview input fields. Also refines virtual cursor click handling for better compatibility with complex sites and video players.
2025-12-28 10:35:59 +13:00
andrew 3d538a09f9 Add sidebar toggle and fullscreen webview support
Implements a sidebar hidden state and toggle functionality for fullscreen webview mode, including new CSS for sidebar transitions and a menu hint. Updates gamepad input handling to allow toggling the sidebar and scrolling in webview mode, and restricts focusable elements to the sidebar and header when browsing. Improves user experience when navigating and interacting with web content in fullscreen.
2025-12-27 23:27:03 +13:00
andrew 5c837aecd8 Add Big Picture Mode for Steam Deck and controllers
Introduces a new Big Picture Mode with a controller-friendly, console-style UI optimized for Steam Deck and handheld devices. Adds new renderer files (HTML, CSS, JS) for the mode, updates main and preload scripts to support window management and IPC for Big Picture Mode, and documents features and usage in BIG_PICTURE_MODE.md. Updates settings and navigation to allow launching and exiting Big Picture Mode.
2025-12-27 23:09:45 +13:00
andrew 43ebed0ade Add auto-update and display scale features
Integrates electron-updater for automatic app updates, including IPC and renderer APIs for update status and controls. Adds display scale (zoom) setting to settings UI, persists user preference in localStorage, and applies it on startup. Updates OAuth popup allowlist logic and upgrades Electron to v39.2.7.
2025-12-27 22:23:14 +13:00
andrew c864ca187c Add per-theme colors for URL bar and tabs
Introduces new color properties for the URL bar and tab strip in all themes, updates the theme system and CSS to support these, and ensures the renderer applies the correct colors to the main UI. This allows each theme to fully customize the appearance of the URL bar and tabs for a more cohesive look.
2025-12-27 21:59:09 +13:00
andrew 691c6c8628 Add Electron upgrade feature with UI and backend fixes
Introduces an Electron upgrade section in settings, allowing users to check for and upgrade to the latest stable or nightly Electron versions. Implements backend logic to read the installed Electron version directly from package.json, properly handles switching between stable and nightly builds, and improves error handling and UI feedback during upgrade operations. Includes documentation of the upgrade process and bug fixes related to version display and upgrade reliability.
2025-11-09 14:33:55 +13:00
andrew 3bf0458ede Route window.open popups to new tabs with OAuth allowlist
Window.open and <webview> popups are now intercepted and routed into new tabs, except for OAuth/SSO flows (Google, Microsoft, etc.) which are allowed to open real popups to preserve authentication semantics. Renderer logic is updated to handle 'open-url-new-tab' IPC events and consistently open external http(s) links in tabs, improving user experience and security.
2025-11-09 14:18:50 +13:00
andrew 3e47980d22 Merge branch 'main' of https://github.com/NebulaZMG/NebulaBrowser 2025-10-09 13:16:58 +13:00
andrew e665ab2d9f Some plugin work 2025-10-09 13:16:40 +13:00
andrew ff41944f2c Add HTTP interstitial warning and bypass support
Introduces an insecure.html interstitial page that warns users before navigating to unencrypted HTTP sites, except for localhost and previously bypassed hosts. Updates script.js to intercept HTTP navigations, display the warning, and allow session-based bypasses when the user chooses to proceed.
2025-10-08 19:16:52 +13:00
andrew f02a78b958 Add malware scanning to downloads with Windows Defender
Integrates post-download malware scanning using Windows Defender on Windows platforms. Adds scan status tracking, rescan and delete actions for infected files, and updates the downloads UI to display scan results and actions. Non-Windows platforms show scan as unavailable.
2025-09-20 22:05:55 +12:00
andrew 36a4e58017 tried to add formatting to nebot page 2025-09-12 19:16:34 +12:00
andrew 70cd3571d1 Add Nebot plugin with chat UI and adaptive typing
Introduces the Nebot plugin, including main process logic for chat session management, IPC handlers, and Ollama API integration. Adds a dedicated chat UI with adaptive typing animation, markdown rendering, settings modal, and supporting assets (CSS, HTML, JS, markdown bundle). Includes documentation for model selection and testing instructions.
2025-09-12 18:23:34 +12:00
andrew 71462d83de Replace Nebot plugin with Return YouTube Dislike
Removed the Nebot chat plugin and its files, and added the Return YouTube Dislike plugin with main process logic, renderer preload, and manifest. Updated plugin manager and main process to support internal plugin pages and improved plugin event handling. Minor updates to renderer and documentation.
2025-09-11 20:42:43 +12:00
andrew 0a26ecccd5 Add categories and authors metadata to plugins
Introduces optional 'categories' and 'authors' fields to plugin manifests, updates plugin-manager.js to normalize and expose these fields, and enhances the settings UI to display plugin tags and authors. Also updates documentation and an example plugin manifest to demonstrate the new fields.
2025-09-09 21:13:27 +12:00