Petal GeckoView 157

Releases

Changelog

What changed in every Petal release, newest first.

Latest release: v4.4 · 60 Petal releases

v4.4Latest🌸 Material 3 Expressive 3-Dot Menus, Feature Explainers & Smooth Performance

"Major UI & UX milestone introducing Material 3 Expressive 3-dot menus with bouncy rotation physics, animated live feature explainer dialogs, Android 14 predictive back with blur across viewers, full Petal Autofill redesign, and zero-allocation anti-jank rendering."

🎨 Material 3 Expressive 3-Dot Menus & Bouncy Motion

  • Unified Expressive Menus (PetalPopupMenu): Redesigned all secondary and item action menus app-wide (Bookmarks, Downloads, Extensions, File Picker, PDF Viewer, Tab Switcher, and Custom Tabs) with:
    • 28dp rounded container shapes and tonal surface container elevation.
    • Interactive squircle icon badges, bold typography, and destructive action tints.
    • Tactile bouncy physics: Spring-driven 180° rotation on the 3-dot trigger button (Spring.DampingRatioMediumBouncy) plus scale and fade entrance on menu popup surfaces.

💡 Interactive Material 3 Expressive Feature Explainers

  • Info Icon System (PetalFeatureInfoButton): Embedded tactile info icon buttons beside complex feature sections in Settings.
  • Animated Explainer Dialogs (PetalFeatureExplainerDialog): Interactive modal dialogs with live animated micro-previews:
    • Apple Duo (BETA): Live 3D dual-pane foldable preview with real-time perspective tilt and frosted glass crease blur.
    • Address Bar Position: Top vs. bottom floating island one-handed reachability demonstration.
    • Ad & Tracker Shield: Sub-millisecond Trie algorithm firewall visualization routing clean web traffic while intercepting tracking packets.
    • Morphing Shapes & Scroll Motion Blur: Live continuous ambient polygon morphing and velocity-based directional blur demo.

🔙 Android 14 Predictive Back Navigation

  • Predictive Back with Live Blur: Upgraded all full-screen viewers (PDF viewer, Image viewer, File viewer, and Recently Closed Vault) to adhere strictly to Android 14 predictive back guidelines with real-time scaling and frosted background blur snapshots.

🔐 Petal Autofill Expressive Redesign

  • Expressive Credential Overhaul: Full Material 3 Expressive UI and UX redesign of password, credit card, and identity autofill prompts with fluid animations, biometrics, and living color harmony.

⚡ Performance & Anti-Jank Optimizations

  • Zero-Allocation Canvas Rendering: Pre-allocated and reused scratch matrices inside M3ExpressiveVariableBackground, eliminating hundreds of short-lived heap allocations per second and eradicating GC pause stutters.
  • Compose Compiler Stability: Added @Immutable stability annotations across core data models (TabModel, DownloadItem, PetalShortcut, HistoryListItem), allowing Compose to skip recomposition during high-speed fling scrolling.
  • Recomposition Pruning: Wrapped dynamic search queries and filter pipelines in derivedStateOf, and added explicit contentType tags across lazy lists to prevent measure thrashing.
  • Calibrated Spring Curves: Standardized PetalSpring.dialog() and PetalSpring.sheet() curves for crisp, snappy settles without sluggish settle times.

v4.3⚡ Latest GeckoView 157 Engine & Expressive Connected Pickers

"Major engine upgrade to Mozilla GeckoView & Android Components 157.0.1, coupled with a full redesign of pick-one selectors to Material 3 Expressive connected button groups."

🌐 Engine & Core Upgrades

  • Mozilla GeckoView 157.0.1: Upgraded quantum browser engine to 157.0.20261005135250 with enhanced web standards compliance, security enhancements, and optimized multi-process rendering.
  • Mozilla Android Components 157.0.1: Bumped all components (browser-engine-gecko, concept-engine, feature-readerview, feature-session, feature-customtabs, feature-pwa, feature-media, etc.) to stable 157.0.1.

🎨 Material 3 Expressive UI Modernization

  • Unified Connected Button Groups (PetalChoiceButtonGroup): Replaced all segmented buttons and pick-one selectors with Material 3 Expressive connected toggle buttons:
    • Full-pill morphing shape transitions with spring dynamics.
    • Generous 56dp touch targets, tactile haptic feedback, and accessibility radio button semantics.
    • Seamless horizontal scrolling when options exceed 4 or labels are long, eliminating text clipping.

v4.0.1🚀 Hotfix: Link Navigation & External App Intent Handling

"Hotfix release restoring seamless link opening from external apps and fixing blank page issues on website link taps."

🐛 Bug Fixes & Improvements

  • External App Link Opening: Fixed links opened from other apps and browsers (via ACTION_VIEW) failing to load in Petal. Added robust fallback URL extraction from EXTRA_TEXT, added petal:// scheme intent support, and prevented duplicate lifecycle dispatch collisions in onNewIntent.
  • Website Link Navigation & Blank Pages: Fixed tapping on links in websites (e.g. target="_blank", popups, and JavaScript windows) opening blank pages instead of the target website. Correctly preserved adopted popup window requests and prevented the browser from misclassifying new window sessions as the home page and calling stopLoading().

v3.9🌸 Material 3 Expressive Extensions & Find in Page Milestone

"Material 3 Expressive Extensions Manager with dedicated Built-in & Firefox Add-on tabs, real AMO icons, Petal Dark Webpages with whitelist, and website-exclusive floating Find in Page."

🧩 Extensions Ecosystem Modernization

  • Expressive Multi-Tab Architecture: Completely redesigned PetalExtensionsScreen using Material 3 Expressive design tokens, pill tabs, fluid elevation, and responsive container cards.
    • Tab 1 — Petal Built-in Extensions: Dedicated ecosystem for browser-native capabilities:
      • Dark Webpages: Native CSS/DOM inversion dark mode engine replacing legacy Dark Reader, featuring per-site whitelist controls and real-time contrast adjustment.
      • Clean Link: Automatic real-time stripping of URL marketing trackers, analytics parameters (utm_*, fbclid, gclid, etc.).
      • Universal Copy: Enables text selection and copying on sites that aggressively restrict user selection.
      • AI Overview Blocker: Filters out intrusive search engine AI-generated preview widgets.
    • Tab 2 — Firefox Add-ons (AMO): Combined Installed and Recommended sections on a single unified canvas with real AMO icons fetched live via Mozilla CDN URLs with disk caching.
  • Dedicated Extension Settings: Built-in extensions now feature detailed configuration sheets with toggles, domain whitelists, and parameter controls.
  • Menu Simplification: Consolidated disparate tool toggles from the overflow menu into Petal Built-in Extensions.

🔍 Material 3 Expressive Find in Page

  • Floating Expressive Pill Bar: Replaced legacy Android search bar with PetalFindInPageBar built entirely with Material 3 Expressive styling, soft rounded corners, tonal elevation, and smooth slide animations.
  • Website-Exclusive Display: Find in Page is now strictly available only while browsing web content, automatically hidden on homepage, bookmarks, and internal views.
  • Fluid Keyboard & Match Traversal: Instant auto-focus, ime navigation actions, match jumping with directional indicator controls, and responsive dismiss gesture handling.

🛠️ Core Stability & GeckoView Integration

  • Legacy WebView Cleanup: Resolved residual conditional references to legacy components, unifying all browser tabs under Mozilla GeckoView.
  • Build & Interop Optimization: Verified Java/Kotlin Composable SAM conversions and Compose lifecycle bindings.

v3.7GeckoView 156 & Browser Polish

Stabilized the Gecko engine dependency and synchronized the latest scanner, popup, tab, diagnostics, and Material You improvements.

Engine

  • Kept the latest published compatible GeckoView 155.0.20260903215306 and Mozilla Android Components 155.0.1 coordinates so CI can resolve the release classpath.

Improvements

  • Added smoother tab transitions and expressive Material 3 popup/undo surfaces.
  • Improved omnibox selection, incognito tab continuity, and tab numbering.
  • Fixed extension popup dismissal restoring browser touch/input focus.
  • Kept diagnostic capture disabled by default while fixing crash handling.
  • Continued the Petal QR Scanner, Google Lens, Quick Settings, and adaptive icon improvements.

v3.3Address Bar & Search Customization

Compact address bar, dedicated customization settings, improved bottom positioning, and unlimited custom search engines.

v3.1.2🔧 Extensions, Media & Pull-to-Refresh Fixed

"Tap an extension, see its popup. Detect media, see the overlay. Pull to refresh, actually refresh."

🐛 Bug Fixes

  • Extension Popup Not Showing: Fixed extension browser/page-action popups (uBlock Origin, Bitwarden, AdGuard, 1Password, etc.) never appearing when tapping the extension button. The PopupRequestListener bridge was never registered in BrowserActivity, so popup sessions were created but silently discarded.
  • Media Grabber Overlay Missing: Fixed the media-detected banner ("Media found — X sources on this page") never appearing even when the media grabber extension correctly detected playable video/audio. The media_sniffer_compose ComposeView existed in the layout but PetalMediaSnifferOverlayBridge.bind() was never called.
  • Pull-to-Refresh Permanently Blocked: Fixed pull-to-refresh being permanently disabled after any GeckoView scroll. GeckoView calls requestDisallowInterceptTouchEvent(true) during scroll which was never reset on the next finger-down, blocking all subsequent refresh attempts. Also reduced the pull trigger distance from an unreachable 300dp to a natural 120dp.

⚡ Improvements

  • Extension Popup Responsive Layout: Extension popup sessions now inject a mobile-responsive CSS + viewport meta tag fix on page load, matching omni's behavior. Extensions that previously overflowed at their desktop fixed-widths (uBlock Origin, Bitwarden, etc.) now render correctly on phone screen widths.
  • Direct Popup Sessions: openDirectPopup (fallback for extensions without a live action delegate) now uses VIEWPORT_MODE_MOBILE + allowJavascript(true) GeckoSession settings and also injects the responsive CSS fix.

v3.1.1🧭 Address Bar Polish & Navigation Harmony 🪄✨

"Pixel-perfect address bar positioning, zero navbar overlap, and seamless scroll dynamics."

🐛 Bug & UI/UX Fixes

  • Bottom Address Bar Navigation Offset: Fixed bottom address bar overlapping bottom navigation bars (both floating and non-floating styles). Corrected dynamic margin calculations incorporating system navigation bar insets and scheduled layout settle listeners.
  • Address Bar Scroll Visibility: Fixed address bar not restoring or failing to show after scrolling in web sessions. Synchronized GeckoView and WebView scroll change listeners to properly animate collapse and expansion together with bottom navigation.
  • State Reset on Page Load: Guaranteed address bar visibility and uncollapsed state resets on page navigation, reload, and tab switching, hiding orphaned floating bubble toggles.

v3.1📑 Tab Sorcery & Seamless Flow 🪄✨

"Instant previews, persistent tabs, and unbreakable navigation flow."

🐛 Bug & Stability Fixes

  • Persistent Tab Thumbnails: Fixed Tab Manager preview thumbnail cache eviction. Thumbnails are no longer wiped on background memory trimming (onTrimMemory), persisting in memory (32-entry LRU) and disk cache until tabs are explicitly closed or cleared.
  • Tab Navigation & Site Restore: Resolved issue where tapping tabs in the Tab Manager unexpectedly navigated to "Petal Home" instead of their intended website. Pre-evaluates target and restored URLs before home page checks.
  • Subframe Metadata Isolation: Prevented invisible about:blank subframes and third-party payment widgets (Stripe, PayPal, Ko-fi) in PetalGeckoView from mutating the parent tab's title or address to the homepage.
  • Back Gesture Architecture: Seamless predictive and system back gesture navigation with robust Gecko session history synchronization.

⚡ Performance & Interoperability

  • WebExtension Popup & Delegate Plumbing: Fixed GeckoView ContentDelegate and NavigationDelegate coordination for Firefox add-on popups, enabling native window close and external link dispatch into foreground tabs.
  • PWA & Offline Web App Architecture: Hardened background thread favicon resolution and domain extraction for Progressive Web Apps.
  • Build & CI Pipeline Resilience: Clean Java/Kotlin interoperability SAM conversions and robust artifact delivery.

v3.0🌸 Petal: The Grand Milestone (v2.0 to v3.0 Evolution) 🚀🦎

"Personal Window to the Web — Completely Gecko-Powered, Zero Trackers, Native Viewers & Seamless Custom Tabs."

Welcome to Petal 3.0! This monumental milestone celebrates Petal's complete evolutionary journey from a lightweight browser shell into a modern, privacy-first flagship powerhouse powered by Mozilla GeckoView. Here is everything built, perfected, and unified across the entire v2.0 → v3.0 era:


🦎 1. The GeckoView Quantum Leap (v2.8 – v3.0)

  • Bye Bye WebView, Hello Gecko 154!: Full migration from Android System WebView to Mozilla GeckoView 154. True modern web standards compliance, sandboxed multi-process tab architecture, and zero Google WebView tracking.
  • Gecko MediaSession & Picture-in-Picture: Bidirectional HTML5 media session bridge supporting lock-screen controls, notification scrubbers, speed controls, and smooth PiP transitions with dynamic aspect ratio tracking.
  • Chrome-Style Session Rehydration: Bulletproof session restoration preserving open tabs, tab groupings, scroll positions, and navigation history across app restarts.
  • Rock-Solid Gestures & Touch Streams: Clean edge-swipe back navigation, predictive back gesture support, and touch arbitration across pull-to-refresh containers and GeckoView.

🚀 2. AndroidX Custom Tabs Provider & Lightweight Shell (New in v3.0)

  • Official Custom Tabs Provider: Petal now acts as an Android Custom Tabs provider via androidx.browser:browser. External apps (Twitter/X, Reddit, Gmail, etc.) can now launch Petal as their native in-app browser overlay.
  • Bound Provider Service (PetalCustomTabsService): Implements session negotiation, warm handshakes, and pre-render signals (android.support.customtabs.action.CustomTabsService).
  • Dedicated Overlay Activity (PetalCustomTabActivity): Lightweight, distraction-free overlay hosting an isolated PetalGeckoView session with full tracking protection, secure HTTPS indicator, and a one-tap "Open in Petal" button to promote sessions into full multi-tab browsing.

🎨 3. Native Media, File & Document Viewers (v2.7 – v2.9.9)

  • Native Video Player & Wavy Seekbar (v2.7): mpvEx-inspired native video overlay featuring an animated squiggly seekbar, vertical gesture HUDs for brightness and volume, 10s skip intervals, and playback speed selectors (with smart bypass for YouTube).
  • Material 3 Expressive Image Viewer (v2.9.8): Full-screen offline image viewer with pinch-to-zoom (0.8×–5.0×), double-tap spring zoom, gallery mode, wallpaper setter, image info bottom sheet, and web long-press integration ("View in Petal Viewer").
  • Featherweight PDF Engine (v2.9.9): Zero-dependency, native PdfRenderer-powered document viewer featuring continuous vertical scrolling, thumbnail skimmer drawer, jump-to-page slider, system printing integration, and metadata inspection.
  • Universal File Viewer 60 FPS Engine (v3.0): Smooth virtualized text rendering with horizontal single-scroll containment, dynamic Word Wrap toggle, and optimized rendering for DOCX and XLSX tables.

🕵️ 4. Incognito Stealth & Privacy Redefined (New in v3.0)

  • Material 3 Expressive Incognito Redesign: Chrome-inspired clean layout featuring an ambient-glowing detective fedora hero badge, bulleted privacy breakdowns, and an interactive privacy safeguards dialog.
  • Decoy Omnibox Search Bar: Pill-shaped search bar with tactile haptic bounce, Google Lens visual search, and voice search integration.
  • Isolated Incognito Session Suggester: Segregated omnibox query suggestions that vanish completely upon closing private tabs.
  • Expressive Cookie Shield: One-tap card toggle for blocking third-party tracking cookies with animated thumb transitions.

⚡ 5. Speed, Downloads & Network Privacy (v2.6 – v2.9)

  • High-Speed Segmented Downloader: 12-thread segmented downloading powered by Fetch2 and OkHttp with auto-resume, RFC 5987 UTF-8 filename decoding, and smart network recovery.
  • Instant External Download Dispatch (v2.9): Instant URL handoff to 1DM, ADM, AB Download Manager, and Navi without confirmation dialog interruptions.
  • Advanced Content Blocker: High-performance request interceptor equipped with EasyList, HaGeZi, and uAssets host filter engines alongside dynamic cosmetic filters.
  • Custom DNS-over-HTTPS (DoH): Built-in encrypted DNS support for Cloudflare, NextDNS, and custom user-defined DoH endpoints.
  • Smart Background Navigation: Automatically open intrusive link redirects in background tabs without disrupting active reading sessions.

🌸 6. Material 3 Expressive UI, Animations & Shell

  • Interactive Address Bar Pill: Horizontal swipe gestures to cycle tabs, inline loading indicator, and long-press quick action bottom sheet (clean URL copy, paste & go, bookmark, hard refresh).
  • Cinematic Cold-Start Intros: Optional 3D Prism & Optical Laser Sweep and Blooming Petal splash animations with synchronized micro-haptics.
  • Unified Settings Hub: Cohesive M3 Expressive container cards, rounded position-aware icon badges, and dynamic keyword search indexing across all preference pages.
  • Tactile Tab Management: Long-press bottom bar tab pill for instant tab creation, clean 3-dot overflow menu, and grid/vertical tab manager layouts.
  • Zero Data Loss Guarantee: Strict backward compatibility preserving bookmarks, history, settings, and session tabs across every single release.

v2.9.9📄 Featherweight PDF Engine & Crystal Security ✨

🎨 UI/UX — Pure Material 3 Expressive PDF Viewer (Inspired by ImageToolbox)

  • Built-in Pure M3 Expressive PDF Viewer: Native, zero-bloat PDF viewing experience powered entirely by Android's native android.graphics.pdf.PdfRenderer — no heavy external binary dependencies or tracking.
  • Multi-Page Continuous Scroll & Gestures: Smooth, hardware-accelerated continuous vertical scrolling with LazyColumn, responsive pinch-to-zoom (0.8× to 5.0×), pan gestures, and double-tap zoom toggle (1× ↔ 2.4×) with spring dynamics.
  • Expressive Floating App Bars: Floating translucent glassmorphism top and bottom action bars with auto-hide timer (4s) and tap-to-toggle gesture.
  • Top Bar Controls: Quick document title, interactive page indicator pill ("Page X of Y • Tap to jump"), one-tap Android PrintManager integration (print to wireless printer or save as PDF), system share sheet, and document info sheet.
  • Thumbnail Skimmer Drawer: Bottom sheet modal grid (GridCells.Fixed(3)) rendering live asynchronous page thumbnails for rapid visual skimming and direct page hopping.
  • Jump to Page Modal: Interactive page navigation dialog featuring an expressive M3 slider alongside direct numerical input.
  • Document Metadata Inspector: Detailed modal bottom sheet displaying file name, page count, formatted file size, modification timestamp, MIME type, and local URI path.
  • Integrated System Ingress:
    • Automatically handles application/pdf and .pdf file intents via ACTION_VIEW and ACTION_SEND.
    • Downloads page integration: Tapping any downloaded .pdf file opens it instantly in Petal's built-in PDF viewer.

🔍 Omnibox & Search UX Enhancements

  • Intelligent Start Truncation (...) for Long Queries: Long search suggestion strings now gracefully hide starting words with a leading ellipsis while preserving trailing query words, ensuring what you are actively typing and searching remains fully visible.
  • Incognito Search Privacy Isolation: Omnibox search suggestions in Incognito tabs are strictly segregated into independent session storage, never exposed to regular browsing tabs, and fully wiped on closing Incognito tabs.

🔒 Security & Live Connection Status Fix

  • Live Connection Status: Fixed the "Connection status unavailable" issue in the site information bottom sheet by resolving currentAlbumController and inspecting GeckoView's real-time SecurityInformation (currentSecurityInfo), HTTPS transport state, and local internal page schemes (petal:, about:).
  • CI/CD Build Fix: Restored missing PreferenceManager import in BackupUnit.java.

v2.9.8🖼️ Peek-a-Petal: The Image Viewer Arrives!

🎨 UI/UX — Built-in Image Viewer

  • Native Material 3 Expressive Image Viewer: Full-screen offline-capable viewer using HorizontalPager, detectTransformGestures, and Compose animation — zero new dependencies for local images
  • Pinch-to-zoom (0.8×–5×), pan when zoomed, double-tap toggle zoom (1× ↔ 2.5×) with spring animation
  • Gallery mode: swipe left/right between downloaded images in a session
  • Auto-hide controls: single tap shows/hides top bar + bottom bar with a 3.5s countdown
  • Top bar: back button, filename + "X of Y" counter, Share, Copy URL, Open in external app (⋮ menu)
  • Bottom bar: translucent pill with Rotate (90° CW, animated), Delete (with Undo snackbar), Set as Wallpaper, Info
  • Image Info bottom sheet: dimensions, file size, modified date, full path, source URL
  • Predictive back swipe-to-dismiss via PetalPredictiveBackSurface

🌐 Web Image Support

  • Long-press any image on a website → new "View in Petal Viewer" option added as the first item in the image context menu
  • Remote images loaded via Coil with crossfade — works on any HTTP/HTTPS image URL, with loading/error states

📤 External Source Support

  • Open With: Petal now appears as an image viewer option when opening images from Files, Gallery, or any app (ACTION_VIEW image/*)
  • Share to Petal: receive shared images from any app directly into the viewer (ACTION_SEND image/*)
  • Supports content:// and file:// URIs with proper ContentResolver display name resolution

📥 Downloads Page Integration

  • Preview strip tap → opens full-screen image viewer instead of system opener
  • Row item tap → launches viewer for image file types
  • Long-press preview strip → "View Image" (Petal viewer) + "Open in app" (system) options

🐛 Bug Fixes & Stability

  • Merged upstream: progress bar rendering fix, GeckoView touch improvements
  • Delete button hidden for remote/external images (can't delete what wasn't downloaded)

v2.9Warp Speed Downloads & Background Magic 🚀⚡

  • ⚡ Streamlined External Download Dispatch (Issue #6):
    • Instant External Handoff: When an external download manager (1DM, ADM, AB Download Manager, Navi) is selected, Petal skips redundant in-app download confirmation prompts and dispatches download URLs, cookies, and headers directly to the external app.
    • Untouched Built-in Downloader: The built-in multi-threaded Fetch2 downloader continues to present the full download confirmation modal dialog as expected.
  • 🔄 Smart Background Redirect Navigation (Issue #6):
    • Open Redirects in Background Tab: Added setting in Settings > Privacy & Security to automatically open link redirects in new background tabs without disrupting current reading sessions.
    • GeckoView Navigation Routing: Implemented intelligent cross-origin and window-targeting redirect checks within GeckoView's navigation delegate.
  • 🛡️ Custom DNS-over-HTTPS (DoH) Endpoint:
    • Custom DoH Provider: Enhanced Private DNS Protection settings to support custom DoH URLs alongside standard Cloudflare and NextDNS providers.
  • 📑 Quick Tab Creation on Long-Press:
    • Tactile Long-Press on Tabs Button: Long-pressing the Tabs counter pill on the bottom navigation bar instantly spawns a new tab with pleasant haptic feedback.
  • 🔒 Zero Data Loss Guarantee:
    • Strictly preserves existing SQLite bookmarks, browsing history, user preferences, and session state.

v2.8.2

  • 🎬 Native GeckoView MediaSession & Picture-in-Picture Engine:
    • Gecko MediaSession Integration: Wired GeckoView's native GeckoSession.mediaSessionDelegate (MediaSession.Delegate) directly into PetalMediaBridge, detecting HTML5 play, pause, stop, position scrubbing, and track duration events across all Gecko tabs.
    • Fluid Picture-in-Picture Control & Dimension Tracking: Video aspect ratio, resolution updates, and remote PiP actions (Play/Pause, Rewind 10s, Forward 10s) route bi-directionally to active Gecko media sessions with dynamic source rect hints.
    • Foreground Media Session Service: Synchronized notification controls, scrubber progress, speed adjustments, and mute toggles with PetalMediaSessionService.
  • 🐛 Edge Back Gesture Fix (Issue #6):
    • Resolved False Overlay State: Fixed back gesture handling in BrowserActivity by properly recognizing PetalGeckoView as a primary browsing surface rather than an overlay screen, restoring edge back-swipe navigation across all tabs.
  • 🔒 Zero Data Loss Guarantee:
    • Full backward compatibility across saved tabs, bookmarks, SQLite history, and user preferences.

v2.8.1

  • 🐛 PetalMediaBridge NullPointerException & WebView Deferred Binding Fix:
    • Deferred WebView Binding: Resolved launch NullPointerException inside PetalMediaBridge by implementing safe deferred binding (attachWebView(WebView)) and null-safe bridge initialization for GeckoView tabs.
    • Dynamic Bidirectional Registration: Ensured NinjaWebView.setMediaBridge automatically registers the Javascript media interface whenever a WebView is attached, maintaining full HTML5 media controls and background media notifications.
    • GeckoView Startup Stability: Guaranteed clean app startup without crash during tab instantiation and session rehydration.
  • 🔒 Zero Data Loss Guarantee:
    • Full backward compatibility across saved tabs, bookmarks, SQLite history, and user preferences.

v2.8Bye Bye WebView, Hello Gecko Gecko! 🦎💨

  • 🦎 Full Mozilla GeckoView 154 Engine Migration:
    • Complete Engine Transition: Fully transitioned web page rendering, session management, and DOM handling across all tabs and popups to Mozilla GeckoView 154. Zero legacy Android System WebView instances are running for browsing.
    • Identified as Gecko / Firefox: Web standards test suites and browsers accurately identify Petal as powered by modern Gecko 154.
    • Chrome-Style Tab Rehydration & Zero Data Loss: Upgraded session serialization and persistence to save and restore GeckoView tabs, group titles, active indexes, and URLs seamlessly across app restarts.
  • ✨ Material 3 Expressive Context Menu:
    • Next-Gen Bottom Sheet Context Surfaces: Long-pressing web links, images, video elements, audio streams, and text selection opens a sleek Material 3 Expressive bottom sheet with rounded action cards and fluid micro-interactions.
    • Rich Action Suites: One-tap quick actions for Tab Groups, Incognito tabs, Lens visual search, Petal Scanner, media downloads, copy URL/text, and web search.
  • 🎯 Dynamic Address Bar & Gesture Integration:
    • Bound omnibox status, SSL indicators, favicons, and page progress directly to GeckoView session delegates.
    • Smooth nested scrolling physics for automatic address bar collapse/expand.
  • 🔒 Zero Data Loss Guarantee:
    • Full backward compatibility across saved tabs, bookmarks, SQLite history, and user preferences.

v2.7.4

  • 🔍 Gesture Diagnostics & Stability:
    • Back Navigation Trace Telemetry: Integrated lightweight diagnostic logging (PETAL_BACK_DEBUG) to accurately monitor system edge swipe dispatching and OnBackPressedCallback invocation states without altering native navigation flows.
  • 📜 Compliance & Documentation:
    • Privacy Policy Documentation: Added official repository Privacy Policy documentation covering zero data collection, sandboxed internal storage, and strict on-device data isolation.
  • 🔒 Zero Data Loss:
    • Full backward compatibility guaranteed across bookmarks, browsing history, saved tabs, and user preferences.

v2.7.3

  • 📦 Build & App Bundle Language Compliance:
    • Resolved Deprecated Language Qualifier: Migrated deprecated legacy values-sh resource folder to BCP-47 compliant values-b+sr+Latn (Serbian Latin), resolving Google Play App Bundle submission errors regarding unrecognized language sh.
    • Explicit Resource Configurations: Configured explicit Gradle resConfigs to whitelist all supported locales and strip any unrecognized or invalid third-party library language resources from final AAB / APK packages.
  • 🔒 Zero Data Loss:
    • All existing user settings, bookmarks, tabs, and history remain strictly intact.

v2.7.2

  • 🐛 Default Search Provider & Settings Sheet Fix:
    • Fluid Search Provider Selection: Resolved touch event interception where the Default Search Provider bottom sheet became unresponsive by removing conflicting nested surface wrappers and nested radio click handlers.
    • Accurate Selection State: Correctly synchronizes the initial and updated search engine index state between Settings and the modal sheet.
  • ⚡ Performance & Package Optimization:
    • APK Footprint Reduction: Removed duplicate drawable resources and redundant raw filter asset sources (~2.8 MB reduction in repository assets).
  • 🔒 Build & Platform Stability:
    • Zero Data Loss: User preferences, bookmarks, history, and search engine selections are strictly preserved.

v2.7.1

  • 🐛 Edge Back Gesture Navigation & WebView Touch Fixes:
    • Unblocked System Back Gestures: Prevented Chromium / WebView from claiming system gesture exclusion zones along display edges on Android 10+ (API 29+), allowing full system back gestures and predictive back navigation to fire reliably on any website.
    • Synchronous Exclusion Reset: Enforced empty system gesture exclusion rects immediately upon touch interaction (ACTION_DOWN, ACTION_UP, ACTION_CANCEL) and layout recomputation, guaranteeing smooth edge back-swipes without gesture trapping.
    • Zero Data Loss: User session tabs, bookmarks, history, and customized settings are strictly preserved.

v2.7New Webview & Video Player update

  • 🎨 Native Video Player & Fancy Wavy Seekbar:
    • Fluid Overlay Controls: Implemented modern native fullscreen video overlay controls featuring auto-hiding navigation, quick 10s rewind and forward skip, center play/pause toggle, and playback speed adjustment menu (0.5x to 2.0x).
    • Fancy Squiggly Wavy Seekbar: Integrated animated sine wave propagation seekbar inspired by mpvEx, with smooth flattening dynamics during pause/scrubbing and dual interactive time readouts.
    • Vertical Gesture HUD: Slide vertically on the left side of the player to adjust screen brightness with live percentage HUD, and on the right side to adjust audio volume.
    • YouTube Compatibility Protection: Automatically bypasses custom overlay controls on YouTube (youtube.com, youtu.be, embedded YouTube frames) to preserve YouTube's native player features and UI.
  • 📺 Rebuilt Dynamic Picture-in-Picture (PiP):
    • Upgraded Android Picture-in-Picture geometry engine using mpvEx-inspired aspect ratio calculations and letterbox/pillarbox source rect hint for fluid, seamless window transitions.
    • Added remote PiP action buttons: 10s skip backward, dynamic play/pause toggle, and 10s skip forward.
  • ⚡ High-Performance Core Web Engine & AdBlocker:
    • Re-architected WebView touch stream dispatch, smooth physics momentum scrolling, and rapid rendering pipeline.
    • Enhanced content blocking and ad filtering engines for swift, tracker-free web browsing while strictly preserving address bar collapse, context menus, and download confirmations.
  • 🌟 Open Source Credits:
    • Added mpvEx (by marlboro-advance) to the Credits section in recognition of video player UI/UX and wavy seekbar design.

v2.6.8

  • 🎨 Interactive Address Bar & Expressive Gestures:
    • Horizontal Tab Swiping: Swipe left or right directly across the address bar pill to switch between tabs with tactile micro-haptic feedback.
    • Long-Press Quick Actions: Press and hold the address bar to open a Material 3 bottom sheet with high-value actions:
      • 📋 Copy Clean URL: Automatically strips tracking and telemetry query parameters (utm_*, fbclid, gclid, etc.) before copying to clipboard.
      • 🔗 Paste & Go: One-tap search or navigation directly from your clipboard content.
      • ⭐️ Quick Bookmark: Instantly add or remove the current page from bookmarks with live state feedback.
      • 🔄 Hard Refresh: Reload the current page and bypass cache.
    • Smart Dynamic Visuals:
      • Embedded site favicon capsule chip with SSL security status icon (Tune / Lock / Incognito).
      • Subtle animated inline loading progress indicator integrated directly into the bottom curve of the address bar pill.
  • ♿ Accessibility Preferences:
    • Added dedicated toggles in Accessibility Settings for horizontal tab swiping and long-press quick actions (enabled by default).

v2.6.7

  • 🎨 Unified Settings Subpages Containment & Expressive Theming:
    • Harmonized visual containment across all sub-settings screens (Appearance & Theme, Privacy & Security, Search Engine & Home, Accessibility, Miscellaneous, Experimental, and API & Integrations) to match the design rhythm of the main Settings Hub overview.
    • Upgraded section cards to full-width elevated containers (surfaceVariant with 70% alpha, 24dp rounded corners, and zero shadow elevation) featuring integrated top headers with signature 48dp primary-accent rounded badges (12dp corner radius), crisp onPrimary icons, and semi-bold title typography separated by soft outline dividers.
    • Enhanced all toggle rows with 40dp position-aware rounded icon badges, accent primary container fills when enabled, and refined surfaceContainerHigh background surfaces.
    • Standardized slider and selection surfaces with consistent 16dp corner geometry for full visual consistency across the entire application.

v2.6.6

  • 🎨 Multi-Style Cold-Start Intro Animations & Experimental Settings:
    • Added preference option in Experimental Settings to customize the cold-start intro animation:
      • Off (Default): Instant entrance with zero splash or intro delays.
      • 3D Prism & Optical Beam: High-precision crystalline 3D isometric prism with optical laser sweep and chromatic spectral refraction waves.
      • The Blooming Petal: Organic fluid blossoming unfolding into 5 glassmorphic 3D petals with concentric harmonic light ripples.
    • Resolved Android splash screen occlusion: lengthened intro duration to ~950ms and introduced grace buffers so the entire cinematic sequence remains fully visible after the app icon splash dismisses.
    • Integrated dynamic search keyword indexing across Settings Hub for all intro animation terms.

v2.6.5

  • ⚡ 3D Prism & Optical Beam Cold-Start Intro:
    • Integrated ultra-smooth 3D isometric crystal glass prism intro powered by hardware-accelerated Compose Canvas shader passes.
    • Features real-time optical coherent laser sweep and chromatic spectral refraction across Petal's module palette (Cyan Speed, Violet Privacy, Emerald Engine).
    • Blooming 3D petal emblem transition accompanied by synchronized dual-stage micro-haptic tactile feedback.
    • Seamlessly blends into the Material 3 Expressive Home layout on cold start, skipping on warm returns for 0ms overhead.

v2.6.4 (Hotfix)

  • 🐛 Custom Scheme Handling & Home Page Resolution:
    • Resolved net::ERR_UNKNOWN_URL_SCHEME when opening or restoring the home page after browser restart.
    • Automatically intercepted petal:// and custom home URLs in NinjaWebView.loadUrl(), loading a clean blank canvas while retaining complete Compose Home UI state.
    • Added internal protocol routing in NinjaWebViewClient.shouldOverrideUrlLoading() and safeguarded session restoration in BrowserActivity.java.

v2.6.3 (Hotfix)

  • ⚡ Unified High-Speed Download Architecture:
    • Unified best-in-class multi-threaded segmented downloading powered by Fetch2 and OkHttp (12 concurrent threads, transparent retry on network change, pause/resume/cancel).
    • Integrated robust RFC 5987 / UTF-8 filename decoding, control-character stripping, and safe HTTP header sanitization.
    • Automatic P2P and torrent link routing to 1DM when installed, with seamless in-app streaming fallback.
  • 🎨 Streamlined Settings & Frictionless Downloads:
    • Removed manual download engine tweak settings from Miscellaneous Settings to streamline preferences.
    • Removed first-time download engine prompt dialog, allowing downloads to begin directly and smoothly without interruptions.

v2.6.2 (Hotfix)

  • 🛡️ Advanced Content Blocker & Multi-Layer Ad Protection Engine:
    • Integrated high-performance request interceptor with bundled EasyList, HaGeZi, and uAssets host binary indices.
    • Added procedural cosmetic rules engine (:has(), :has-text(), :matches-path()) running at document start via MutationObserver.
    • Added EasyList and overrides cookie banner removal stylesheet injected directly at page commit.
  • 🎥 Web Media & Playback Engine:
    • Added robust HTML5 video and audio media bridge tracking playback, mute states, and Picture-in-Picture sessions seamlessly.
    • Added video autoplay suppression controls and background media playback coordination.
  • 🔐 Native Passkeys & System Credentials Integration:
    • Configured native WebAuthentication (passkeys) and system autofill compatibility directly via WebSettingsCompat.
  • ⚡ Smooth Momentum Recovery & Navigation Stability:
    • Added compositor momentum recovery watchdog preventing scroll freezes on high refresh-rate displays.
    • Intelligent cross-site popup and popunder navigation arbitration defusing intrusive redirects.

v2.6.1 (Hotfix)

  • 🔄 Universal Release Inbuilt Updater:
    • Inbuilt app updater now prioritizes downloading universal APK releases across all device types and ABIs.
  • 📜 Seamless ModalBottomSheet Scrolling Physics:
    • Migrated update and changelog dialogs to pure Compose ModalBottomSheet with nested scrolling support, matching Essentials scrolling physics seamlessly without touch gesture conflicts.
  • 🏗️ Multi-Architecture Release Builds:
    • GitHub Actions and Gradle now build and release individual APKs for arm64-v8a, armeabi-v7a, x86_64, and x86, alongside the universal APK.

v2.6.0 (Official Release)

  • 🚀 Complete Removal of Gecko Engine & Extensions:
    • Completely stripped out Mozilla GeckoView (geckoview-omni:150) and all associated runtime holders, sessions, installer, and UI settings.
    • APK size drastically reduced (~100 MB lighter) with lower idle memory footprint.

v2.5.1 (Hotfix)

  • 🐛 Predictive Back Shutter Eliminated — App Lock & About Developer Screens:
    • Fixed: App Lock overlay and App Lock Config screen caused a single-frame white/black flash (shutter) when a predictive back gesture committed. Root cause: decor.removeView(composeView) was called immediately, tearing the View out while Compose's spring exit animation was still in its 200ms settle window.
    • Fix: Added a 160ms ViewPropertyAnimator alpha fade (0f) before the removeView call, so the composable has time to finish its exit choreography before the View is detached.
    • Fixed: About Developer screen was using a raw BackHandler call with no PetalPredictiveBackSurface / PetalScreenWrapper wrapper — predictive back showed a harsh tear. Now properly wrapped matching the Credits screen pattern.

v2.5 (Official Release)

  • 🔖 HTML Bookmark Import & Export (Standard Netscape Format):

    • Added full support for importing and exporting bookmarks using the industry-standard Netscape Bookmark File format (bookmarks.html), fully compatible with Google Chrome, Mozilla Firefox, Apple Safari, Microsoft Edge, and Brave.
    • Added one-tap Import (FileUpload) and Export (FileDownload) header action icons directly on the Material 3 Bookmarks screen.
    • Integrated with Storage Access Framework (CreateDocument and OpenDocument) for seamless folder and file selection across all Android versions.
    • Added dedicated HTML Bookmarks import and export controls under Settings → Data & Storage → Backup & Restore.
    • Built-in duplicate detection, timestamp parsing (ADD_DATE), and transactional database integrity guarantees.
  • ✨ Live Dynamic Predictive Back Previews & Depth Blur:

    • Replaced static/stale initial screen captures with a reactive liveSnapshotFlow stream in PetalContentSnapshot, delivering real-time underlays during active predictive back gestures.
    • Synchronized gesture spring physics with RvSystem-Monitor and PixelPlayer specs (Spring.StiffnessMedium, no bounce on commit, low bounce on cancel).
  • ⚡ Stutter-Free Website Back Navigation:

    • Removed synchronous preference re-initialization churn inside NinjaWebView.goBack() and goBackOrForward().
    • Replaced heavy web settings resets with clean domain-aware navigation with specialized domain-aware rules, ensuring smooth 60/120fps back navigation without frame drops.
  • 🧩 WebExtensions Management & Runtime Fixes:

    • Stabilized Gecko extension management, add-on discovery prompt delegation, and dynamic counter badges.

v2.4 (Official Release)

  • 🎨 Settings Inner Categories Containment Harmonization:

    • Unified all inner settings category page cards (SettingsCategoryCard) across Appearance, Privacy & Security, Accessibility, and Experimental to match the exact Material 3 surfaceContainerLow elevation, 1.dp outline borders, and 24.dp rounded shapes of the main settings overview screen.
    • Added the API & Integrations Hub directly into the main Overview categories list for seamless navigation.
  • 🌐 Dedicated Direct Web Back Navigation:

    • Replaced predictive back root-view scaling on web pages with a clean, direct web back handler, ensuring zero glitching or displacement during website browsing while strictly preserving predictive back transitions on overlay and sheet screens.
  • 🏷️ Bottom Navbar Tab Count Badge Optimization:

    • Shortened incognito tab counter text to "Tabs ($count)" to guarantee crisp visibility inside the floating navigation pill without text truncation.

v2.3 (Official Release)

  • 🎨 Settings & Account Containments & RvSystem-Monitor Icon Overhaul:

    • Replaced flat and inconsistent card backgrounds across all Settings categories, Account & Profile pages, and UI components with unified Material 3 surfaceContainerLow containers, subtle 1.dp outline borders, and 24.dp rounded shapes.
    • Replaced legacy settings category and sub-card drawables with the cohesive, expressive vector icon set from RvSystem-Monitor (settings_filled, brightness_medium_filled, layers_filled, home_filled, mobile_vibrate_filled, build_filled, translate, download_2_filled, backup_filled, update_rounded, info_filled).
  • ⚡ Buttery Smooth Floating Bottom Navigation Bar:

    • Fixed stutter and jank in the floating bottom navigation bar by eliminating recomposition tree teardown, switching to stable hoisted state holders, and tuning physics animations.
  • 🖼️ Persistent Tab Manager Thumbnail Cache:

    • Fixed tab thumbnail cache persistence across cold restarts by keying previews with unique persistent tab IDs with URL fallback lookup.
  • 🚀 High-Speed Multi-Chunk Download Engine:

    • Optimized download buffering and concurrency limits up to 12 parallel channels with instant 100ms progress dispatching and aggressive network gain retry resilience.

v2.1 (Hotfix)

  • 🎨 Compose Ripple Modernization & Compilation Hotfix:

    • Migrated deprecated rememberRipple indication in PetalBottomNavBar.kt to the official Material 3 ripple() API, resolving Kotlin compiler deprecation errors and improving touch indication performance.
    • Seamlessly unified interaction source ripple feedback across floating navigation bar items and gesture elements.
  • 📢 First-Launch Update Changelog Showcase:

    • Added a dedicated one-time "What's New in Petal" interactive bottom sheet popup displayed immediately when the browser is updated from a previous version.
    • Highlights full categorized release notes and improvements, ensuring users never miss new features.
  • 📜 Full Changelog History from Official v2.0:

    • Enriched offline fallback changelog history with complete breakdown of all major v2.0 features (Real-Time Vector Shape Morphing Background, Floating Bottom Nav, PixelPlayer Containment System, Avatar Cropper, Settings Categorization, and 100% Kotlin Modernization).

v2.0 (Official Release)

  • ✨ Real-Time Vector Shape Morphing Background (androidx.graphics.shapes.Morph):

    • Implemented organic, continuous vector shape morphing between all 35 official Material 3 Expressive shapes (Sunny, Cookie9Sided, Flower, Clover4Leaf, SoftBurst, etc.).
    • Added luminous multi-stop radial gradient halos across M3 tonal color roles (primary, primaryContainer, tertiary) with gentle kinetic breathing.
  • 🎨 Floating Bottom Navigation Bar (Zenith Parity):

    • Matched Zenith's floating navigation bar dimensions: 68.dp height, RoundedCornerShape(100) stadium pill, 36.dp bottom offset, 26.dp icons, and dynamic indicator selection height.
  • 📦 PixelPlayer Expressive Containment System Integration:

    • Integrated proper Material 3 Expressive containments (SettingsSection, SettingsItem, SwitchSettingItem, SettingsCardContainer, ContainedSelectionCard).
    • Replaced uncontained / flat toggle rows with elevated Surface container cards with 16.dp rounded shapes and animated switch thumbs.
  • 🖼️ Profile Picture & Interactive Cropper Overhaul:

    • Fixed profile picture custom avatar loading and caching: updated Coil image loader with explicit write-only cache policies and fallback handling across filesDir and content URIs so custom avatars update immediately on Home screen and Account profile screen.
    • Interactive Crop Viewport: Added precision circular crop dialog with real-time pinch-to-zoom, drag-to-align viewport, 90° rotation controls, reset button, and live preview.
    • Direct Crop & Media Picker Integration: Tapping the avatar hero card or gallery button immediately opens the photo picker and circular crop editor with instant image saving.
  • 🗂️ Clean Settings Categorization & New Miscellaneous Hub:

    • Reorganized PetalSettingsScreen.kt into dedicated, intuitive categories: Appearance & Theme, Accessibility, Privacy & Security, Experimental, and newly added Miscellaneous.
    • Moved Download Engine (1DM Integration / Embedded Native Downloader) and Auto Open External Apps into the dedicated Miscellaneous category.
    • Kept Experimental Flags and advanced developer features strictly isolated under the Experimental category.
  • ⚡ Complete Kotlin & Jetpack Compose Modernization (100% Kotlin):

    • 100% Kotlin codebase with complete Java decoupling across all 8 modular browser subsystem delegates and 42 core background managers.
    • Pure Material 3 Expressive UI design system featuring 35 customizable container shapes, fluid predictive back navigation gestures with 24.dp background depth blur, and adaptive dynamic color theming.
  • 🌐 Google Lens & In-App Multi-Volume Media Picker:

    • Full Google Lens search integration across Omnibox search bar, context menus, and home widgets.
    • Multi-volume device storage indexing supporting VOLUME_EXTERNAL_PRIMARY, VOLUME_EXTERNAL, and fallback to System Photo Picker.
  • 🔒 Advanced Privacy, Passkeys & High-Performance Web Engine:

    • Full WebAuthn & biometric passkey sign-in support via Android Credential Manager.
    • Built-in AdBlock Trie filtering engine with domain whitelist management, WebRTC IP leak protection, Canvas/Audio fingerprint shield, and strict referrer header trimming.
    • Native 120Hz/144Hz high refresh rate hardware pacing and kinetic scrolling.

v1.9.9

  • 🎨 Material 3 Expressive Color Container System (Zenith Parity):

    • Aligned Expressive Container Colors with Zenith's high-contrast container elevation model: toned-down soft background (surfaceContainerLow) with crisp floating white containers (Color.White) in Light mode, and elevated container tones (surfaceContainerHigh / AMOLED contrast ladder) in Dark mode.
    • Bound expressiveColors dynamically to SharedPreferences sp_expressive_colors default in PetalTheme.kt and reactive listeners across PetalHomeScreen.kt, PetalSettingsScreen.kt, PetalBottomNavBridge.kt, and PetalAddressBarBridge.kt.
  • 📳 Universal Touch Haptics Engine Fix:

    • Removed restrictive OS-level HAPTIC_FEEDBACK_ENABLED blocking from PetalHapticEngine.java that was disabling app haptics when system touch sounds were off.
    • Switched to direct, multi-tiered vibration execution for reliable tactile feedback on all Android devices.
    • Made LocalHapticEnabled and PetalHapticFeedback in PetalTheme.kt fully reactive to real-time sp_touch_haptics preference changes.
  • 🌐 Dynamic Per-App Language & Natural Hinglish Support (GRAMLY Inspired):

    • Added Android 13+ res/xml/locales_config.xml declaring supported in-app locales and registered AppLocalesMetadataHolderService in AndroidManifest.xml.
    • Added attachBaseContext in PetalApplication.kt and improved HelperUnit.applyLanguage() with Locale.Builder script configuration and LocaleList support.
    • Added full, conversational Hinglish (Hindi in English) translations across all 174 string resources in res/values-b+hi+Latn/strings.xml following GRAMLY's natural phrasing.
  • 📑 Tab Manager Thumbnail Isolation & Auto-Scroll:

    • Fixed tab preview thumbnails getting stuck on a single screenshot: scoped thumbnail cache keys strictly per tab instance (hashCode()) and prevented background tabs from capturing the parent container.
    • Added real-time snapshot capture of outgoing tabs before switching away in BrowserActivity.java.
    • Added automatic smooth scrolling in PetalTabGridSwitcher.kt (LazyVerticalGrid and LazyColumn) to jump straight to the active tab upon opening the tab manager.
  • ⚡ High Refresh Rate (120Hz/144Hz+) Native Hardware Synchronization:

    • Added [PetalHighRefreshRateManager.kt](file:///data/data/com.termux/files/home/petal/app/src/main/java/com/petal/browser/unit/PetalHighRefreshRateManager.kt) to lock the highest available hardware display mode (Display.Mode), preferred refresh rate bounds (preferredMinDisplayRefreshRate & preferredMaxDisplayRefreshRate), and Surface.setFrameRate() on supported devices.
    • Device refresh rate overlays (Developer Options "Show refresh rate", FPS meters, OEM gaming overlays) now immediately detect and sustain a solid 120Hz/144Hz during browsing, scrolling, and tab switching.
    • Added "High Refresh Rate (120Hz+)" preference toggle with real-time detected peak hardware refresh rate readout in Settings -> Display & Themes.
    • Synchronized NestedScrollWebView and decor surfaces with SurfaceFlinger for zero-jitter, fluid 120 FPS kinetic scrolling.

v1.9.8

  • ⚡ 100% Complete Java-to-Kotlin Migration:

    • Full, seamless conversion of the entire codebase from Java to Kotlin with 0 remaining .java files in com.petal.browser.
    • Converted core browser engines and web clients: NinjaWebViewClient.kt, NinjaWebChromeClient.kt, BrowserContainer.kt, BrowserController.kt, AlbumController.kt, WebAppInterface.kt, AdBlock.kt, BannerBlock.kt, and NinjaDownloadListener.kt.
    • Converted all Settings Activities, Fragments, and Preference widgets: Settings_Activity.kt, Settings_Backup.kt, Settings_Delete.kt, Settings_Filter.kt, Settings_Gesture.kt, Settings_Menu.kt, Settings_Profile.kt, Settings_ProfileList.kt, Fragment_settings*.kt, BasePreferenceFragment.kt, EditTextSwitchPreference.kt, and ListSwitchPreference.kt.
    • Converted all 42 Utility, Network, DNS, and Security Managers (BrowsingDataManager, CacheManager, TabSessionManager, TabThumbnailCache, SearchSuggestionsManager, ReaderModeManager, WikipediaSummaryManager, CloudflareDnssecManager, NextDnsManager, OpenDnsDoHManager, Quad9DnsManager, NetworkBenchmarkManager, DuckAssistManager, UrlScanSecurityManager, WhoisRdapManager, IpGeoAuditManager, SslHealthAuditManager, etc.).
    • Converted custom UI views: NestedScrollWebView.kt, NinjaWebView.kt, and PetalSearchWidgetProvider.kt.
  • 🎨 Material 3 Expressive UI/UX & 35 Expressive Shapes:

    • Full system-wide integration with all 35 official Material 3 Expressive Shapes catalog from PetalMaterialShapes.kt (RoundedSquare, Cookie4/6/7/9/12Sided, Arch, Hexagon, Octagon, Pill, SoftScallop, Clover4/8Leaf, Sunny, Flower, Star, Gem).
    • Native Edge-to-Edge window inset control and dynamic color extraction across all settings and browser sheets.
  • 🚀 Performance & Architecture:

    • 120Hz smooth scrolling physics with NestedScrollingChild3 and hardware-accelerated rendering.
    • Robust runtime type-safety and null-safety across all network requests and background tasks.

v1.9.7

  • ⚡ Complete Kotlin Migration & Subsystem Decoupling:

    • Fully converted BrowserActivity.java, PetalApplication.java, and ActivityShare.java to Kotlin.
    • Extracted 8 modular Kotlin subsystem delegates (BrowserContextMenuManager, BrowserNavigationDelegate, BrowserWebViewController, BrowserIntentHandler, BrowserMediaDelegate, BrowserDialogManager, BrowserGestureHandler, BrowserActivityExtensions), reducing core activity boilerplate by over 830 lines.
  • 🎨 35 Material 3 Expressive Shapes Catalog Integration:

    • Integrated the complete 35 Material 3 Expressive Shapes Catalog (RoundedSquare, Cookie6Sided, Arch, Hexagon, Octagon, Pill, SoftScallop, Clover4Leaf) from PetalMaterialShapes.kt across Jetpack Compose UI sheets and icon containers (PetalLinkContextMenuSheet.kt).
    • Saved workspace rule ~/.gemini/config/rules/material3_expressive.md enforcing Pure Material 3 Expressive components, dynamic colors, motion, and container shapes.
  • 🐛 Bug & Compilation Fixes:

    • Fixed PetalLinkContextMenuHandler interface compilation and missing method overrides (onDownloadVideo, onOpenImageInNewTab, onCopyImage, onSearchWithGoogleLens) across Web context menu handlers.

v1.9.4

  • ✨ Google Lens Integration:

    • Integrated Google Lens across Petal Browser with Camera Capture, Gallery Photo Picker, and Google Lens Search Intent.
    • Added dedicated Lens search button (CenterFocusWeak icon) to the search input field in PetalOmniboxPage.kt.
    • Added "Search image with Google Lens" option to webpage image long-press context menus (PetalLinkContextMenuSheet.kt & BrowserActivity.java).
    • Wired Lens shortcut button in Material 3 Expressive PetalExpressiveGlanceWidget.kt.
  • ⚡ High-Speed Torrent & Magnet Engines:

    • Built multi-engine Torrent & Magnet downloader supporting 1DM High-Speed P2P Engine (Official), In-App Native WebSeed & Magnet Streamer, and System Downloader.
    • Added real-time Torrent Engine switcher in PetalSettingsScreen.kt under Data & Storage.
    • Automated interception of magnet: links and .torrent files across all webpage downloads.
  • 🎨 Dynamic Morphing Background & PetalSlider:

    • Added periodic ambient background shape rotation with user-controlled timer loop (0 min to 60 min).
    • Integrated rolling scalloped PetalSlider for shape change intervals in PetalSettingsScreen.kt.
  • 🔊 System-Wide Haptics (RvSystem-Monitor & Ever-Haptics Inspired):

    • Integrated tactile haptic feedback across WebView scrolling (Pattern.TICK), bottom navigation, address bar actions, site controls, and predictive back gestures (PetalHapticEngine.java).
  • 🔤 Custom Font Tweaker Real-Time Variations:

    • Fixed font variation settings (toVariationSettings()) in Type.kt so custom .ttf/.otf font files respond immediately to Weight, Width, Optical Size, Slant, and Roundness sliders in real-time.
  • 🔐 App Lock & Profile Security Dialogs:

    • Added Material 3 Expressive Biometric & Passcode choice dialogs for App Lock and Profile Lock pages matching app-wide predictive back gesture transitions.

v1.9.3

  • 🎨 UI/UX & Predictive Back Polish:

    • Aligned Predictive Back animations and Depth Blur 1:1 with RvSystem-Monitor and PixelPlayer.
    • Applied 24.dp depth blur exclusively to background screen (isBehind = true) while keeping foreground card crisp (blur = 0.dp) with Material 3 Emphasized scaling (1.0 → 0.85), 32.dp corner clipping, 16.dp drop shadow, and horizontal slide offset.
    • Rendered real live PetalHomeScreen in background with 24.dp depth blur during in-flight back gestures (zero synthetic previews).
    • Added user settings toggles for Predictive Back Animations and Depth Blur Effects in Accessibility & Display Options.
  • 🐛 Bug & Layout Fixes:

    • Refactored legacy Java CustomRedirectsDialog.java to pure Kotlin Compose Material 3 Expressive implementation in CustomRedirectsDialog.kt.
    • Fixed Auto Clear Data on Exit to execute reliably on activity finish/stop and default to clearing Browsing History, Cache, and Cookies if no individual sub-filters are checked.
    • Enabled Force Dark Webpages dynamically with AndroidX setAlgorithmicDarkeningAllowed, setForceDark, and DARK_STRATEGY_PREFER_WEB_THEME_OVER_USER_AGENT_DARKENING.
  • ⚡ Media & Picture-in-Picture Enhancements:

    • Fixed background audio & video playback by injecting PetalMediaBridge.MEDIA_JS_INJECTION to override Page Visibility API (hidden: false, visibilityState: 'visible').
    • Enabled native OS Auto-PiP mode transition on Android 12+ (API 31+) with setPictureInPictureParams(setAutoEnterEnabled(true)) on media play.
  • 📦 Build & Infrastructure:

    • Added androidx.webkit:webkit:1.12.0, androidx.media:media:1.7.0, androidx.media3:media3-session:1.4.1, and androidx.media3:media3-exoplayer:1.4.1 dependencies to build.gradle.

v1.7.8

  • fix: Refactored website link & image context menus into Material 3 BottomSheetDialog (PetalLinkContextMenuSheet.kt) to resolve invisible touch interception overlays and wired all actions.
  • fix: Resolved ML Kit image recognition background thread state mutation issues by posting callbacks to main thread (PetalImageScanResultSheet.kt).
  • new: Integrated RvSystem-Monitor haptic feedback framework (LocalHapticEnabled, LocalVibrationIntensity, rememberHapticOnClick, hapticClickable).
  • ui: Aligned icons on Clear Browsing Data screen (PetalDeleteScreen.kt) with primary category icons in Settings.
  • fix: Bound TabThumbnailCache eviction strictly to tab closure and ensured faithful home screen snapshot rendering in tab manager.
  • fix: Audited Compose layout braces and fixed Kotlin compiler errors in ChromeAccountSyncScreen.kt and PetalTheme.kt.

v1.7.7

  • new: Made Google Sans Flex permanent as Petal Signature font and added support for loading custom .ttf/.otf font files directly from device storage.
  • new: Introduced custom font tier customizer with independent Display, Headline, and Body level tabs and expressive PetalSlider controls for Weight, Width, Optical Size, Slant, and Roundness.
  • fix: Updated search bar hint to "Search or type URL" across homepage searchbar, omnibox, and widgets.
  • fix: Hidden frequently visited shortcuts row on blank home tabs, displaying them only when opening the omnibox from an active website.
  • fix: Fixed Java-Kotlin SAM interop for onDeny callback in PetalPermissionDialogBridge site permission prompts.

v1.7.6

  • new: Reimagined PetalSearchGlanceWidget.kt with Material 3 Expressive morphing shape containers (Clover, Scallop, Burst, Cookie) rendered dynamically using RoundedPolygon and canvas bitmap drawing.
  • new: Integrated PetalAboutDeveloperSheet.kt and PetalAboutDeveloperBridge featuring expressive hero cards, developer metric badges, tech stack chips, and community hub links.
  • fix: Fixed window inset propagation in PetalTabSwitcherSheet.kt and PetalTabGridSwitcher.kt so ExpressiveHeader seamlessly includes status bar top padding.

v1.7.5

  • new: Integrated Util1DM utility class to automatically detect 1DM / 1DM+ / 1DM Lite download managers and hand off downloads, headers, cookies, and user-agent without UI changes.
  • fix: Resolved Kotlin build errors in PetalAiHubBridge.kt, PetalAiHubScreen.kt, and PetalTabGridSwitcher.kt.

v1.7.4

  • fix: Audited and balanced Compose layout braces in PetalTabGridSwitcher.kt, resolving outer BoxScope.align and syntax parser cascade errors.
  • fix: Created PetalAiHubBridge.kt, corrected Settings_Activity references in PetalAiHubScreen.kt, and aligned performResearch callback signature in PetalSettingsScreen.kt.

v1.7.3

  • new: Added dedicated Petal AI & API Keys Hub category in PetalSettingsScreen.kt for configuring Gemini, OpenRouter, OpenAI, Grok, and Groq API keys, model selections, and live connection testing.
  • new: Reimagined PetalAiHubScreen.kt as the unified home for Petal Native AI (Deep Research, AI search) and web AI tools directory, complete with API key status and 1-tap quick launchers.

v1.7.2

  • new: Upgraded Tab Manager (PetalTabGridSwitcher.kt), Chrome Flags (PetalChromeFlagsScreen.kt), and Extensions (PetalExtensionsScreen.kt) to support Material 3 ExpressiveHeader.
  • fix: Fixed double status-bar top padding issue on Bookmarks screen (PetalBookmarksScreen.kt).

v1.7.1

  • fix: Stored user custom profile picture permanently in context.filesDir to prevent deletion when clearing app cache or background tasks (GoogleAccountManager.kt).
  • new: Built interactive profile picture cropping modal sheet PetalAvatarCropSheet.kt with pinch-to-zoom, pan, rotation, and live circular mask preview.

v1.7.0

  • new: Bound PetalHapticFeedback to Compose LocalHapticFeedback in PetalTheme.kt for universal tap feedback across all components.
  • fix: Connected PetalHapticEngine with Android Accessibility (TalkBack Touch Exploration) and OS system haptic settings.
  • fix: Added instant vibrator cancellation before triggering new patterns so pattern testing in Settings switches immediately.
  • fix: Expanded multi-tiered waveform fallbacks for all haptic patterns on devices lacking hardware primitive composition.

v1.6.9

  • fix: Increased homepage greeting tagline maxLines to 4, set fontSize = 15.sp, and pruned taglines to prevent ellipsis (...) truncation on all screen sizes (PetalHomeScreen.kt).

v1.6.8

  • fix: Added androidx.compose.ui.unit.sp import to ExpressiveHeader.kt for proper TextUnit extension resolution.

v1.6.7

  • fix: Resolved Settings unresponsiveness by removing legacy nestedScroll connection from PetalSettingsScreen.kt.
  • fix: Fitted User Accounts header title cleanly onto a single line without truncation across all screen widths (ExpressiveHeader.kt & ChromeAccountSyncScreen.kt).

v1.6.6

  • fix: Restored synchronous initialization of user profile avatar, name, and preferences on app restart (BrowserActivity.java & AccountViewModel.kt).

v1.6.5

  • new: Integrated ExpressiveHeader across Settings overview and subpages with dynamic category titles and subtitles.
  • fix: Resolved double-padding layout issue on Clear Browsing Data page (PetalDeleteScreen.kt).
  • new: Enforced 1 single line for title and 1 single line for subheading on User Profile & Accounts page.

v1.6.4

  • new: Uniform Material 3 ExpressiveHeader alignment across History, Bookmarks, and Downloads pages.
  • new: Chrome-style tab card UI (0.68 aspect ratio, 18dp rounded corners, circular close X button, active accent outline).
  • new: Disk-persistent tab preview thumbnails (petal_tab_thumbnails/{tabId}.png) that restore on app relaunch.
  • fix: Restored OS predictive back edge swipe navigation on web pages via 24dp system gesture exclusion margins.
  • new: One-time version update welcome greeting tagline ("Welcome to Petal v1.6.4! 🎉") on home screen after updating.

v1.5.3

  • fix: Improved tab preview thumbnail cache management with safe memory recycling and disk persistence.
  • improved: Replaced image cropping with proportional fit scaling to display full uncropped web page previews.
  • new: Added Chrome-style bouncy zoom scale-up animation when tapping on tab grid cards.

v1.5.2

  • removed: Removed sync encryption password option from User Profile & Accounts page.
  • new: Added support for dedicated app password lock alongside biometric fingerprint authentication options.
  • new: Integrated Material 3 Expressive masked shape icons and animations (inspired by Monogram Android & Zenith) for custom app password security.

v1.5.1

  • fix: Solved WebView modal, popup, and carousel black overlay misrendering by explicitly disabling force dark mode & algorithmic darkening.
  • new: Added "View All Changelogs" history sheet in App Updates settings (ported from Zenith).
  • improved: Upgraded UI containment styling across settings screens to pure Material 3 Expressive UI specifications.

v1.5.0

  • imported: Updated PetalTabGridSwitcher with BackHandler context resolution.
  • new: Full Material 3 Expressive UI containment redesign.

Before the fork: FOSS Browser history

Petal began as a fork of FOSS Browser. These are that project’s own release notes, kept for attribution and completeness. Version numbers here belong to FOSS Browser, not Petal.

Show 89 earlier FOSS Browser releases

v 24 (WIP)

  • improved: default standard profile settings
  • improved: AdBlock download
  • improved: snackbar with clickable link
  • improved: download of blob:/data:-files
  • improved: app bar
  • improved: search bar
  • improved: gesture settings
  • improved: menu settings
  • improved: search providers
  • updated: WIKI + help links in app
  • updated: translations

v 23 Harriet Tubman

Harriet "Moses" Tubman (1822 – 1913) was an American abolitionist and social activist.

  • fix: Unable to access full tab list #1282
  • fix: Hide URL-Bar/Status Bar when Scrolling #1278
  • fix: auto hide/show control bar when scrolled up/down #1283
  • fix: Highlight entire URL #1269
  • fix: Day Mode hides clock, battery and notifications #1270
  • fix: Behavior/UI settings crashing #1265
  • fix: Update JavaScript alert dialogs #1279
  • fix: go back not work when redirect happens #1281
  • fix: Cookies Getting Disabled #1273
  • fix: Tracking protection needs improvment #1266
  • fix: Add ability to view image alt text #1000
  • fix: toasts not showing entire URL
  • updated: translations
  • improved: input of search layouts
  • improved: more snackbars instead of dialogs
  • removed: redundant settings (autofill, custom javascript)
  • removed: StartSite
  • new: menu settings

v 22 Die Edelweißpiraten

  • fix: opening UI-settings crashing
  • fix: some dialogs closing when clicking profile icon
  • fix: profile-icon showing wrong icon
  • fix: profile settings
  • improved: using of profile button
  • improved: redirects control from FastToggleDialog
  • improved: layout -> removed tab-button -> opened tabs now in overview
  • improved: layout -> using outlined style where possible for better contrast
  • new: snackbar instead of dialog on some places
  • new: gestures -> open startsite,bookmark, history
  • new: option to load default profile on start/always/never (via FastToggleDialog)

v 21 Astrid Lindgren

  • fix: edit text dialogs
  • fix: userAgent
  • fix: not detecting saved websites in some cases
  • fix: not switching to default profile, when going back in history
  • fix: Themed icon issue #1251
  • improved: moved enable/disable switching to standard profile to top of FastToggleDialog
  • improved: theme declaration in manifest
  • new: snackbar on download complete

v 20 Rudi Dutschke

  • new: disable webview diagnostic data
  • new: set render priority to high
  • new: enabling/disabling switching always to standard profile (also in in FastToggleDialog)
  • new: enabling/disabling redirects in FastToggleDialog
  • new: sort FastSearchDialog alphabetically
  • new: some app settings in FastToggleDialog
  • fix: removed unused code
  • fix: third Party Cookies
  • fix: tracking-URL-dialog
  • fix: HTTP-dialog
  • fix: removed unused strings
  • fix: (workaround): Codeberg JavaScript error only on FOSS Browser #1231

v 19.1 Henry David Thoreau

With this release, it is possible to save settings separate for each website. Look at the WIKI for more Infos: https://codeberg.org/Gaukler_Faun/FOSS_Browser/wiki

  • new: save settings per website
  • new: Error-dialog, when downloading Blob-files
  • new: gestures -> toggle redirects, switch to standard profile, open downloads
  • fix: not showing most recent entries in overview in some cases
  • fix: removed a lot of old code
  • fix: Sequences of Java Session Id's appears in URL #1187
  • fix: "show on start" doesn't show start #1206
  • fix: f-droid information shows old link to github #1204
  • fix: Navigation bar not hidden in fullscreen #1099
  • fix: Opening URL using window.open() uses default browser instead of Foss Browser #1165
  • fix: Input box blocked by the keyboard in the screen #1207
  • fix: Themed Icon Missing #1157
  • fix: custom search, when containing "#"
  • fix: Update Screenshots On F-Droid #1214
  • updated: WIKI
  • updated: layout
  • updated: settings
  • updated: translations
  • updated: build libraries
  • removed: "Open downloads" popup dialog is annoying #1196
  • removed: play audio in background, due to Android limitations
  • removed: OLED-theme

v 18.1 "Die rote Zora"

With the release of Android 15 Google introduced a feature called "window insets". Because of that feature there were many layout issues, mainly concerning the system navigation bar. I had to rewrite some layouts. The list of opened tabs, the overview and the search are moved in sidebars.

  • layout changes
  • updated translations
  • some minor code improvements
  • fix: tab issues

v 17 "Michail Alexandrowitsch Bakunin"

  • upgrade: Android target SDK
  • upgrade: dependencies
  • update: translations
  • fix: redirecting urls
  • fix: minor layout issues
  • fix: open links in background #1184
  • fix: link on readme.md (thanks to @Artemka)
  • fix: wrong menu contents in landscape orientation #1186
  • fix: rename Disable Profiles -> Custom #1178
  • fix: Update README #1176
  • fix: “Close Tab” icon too small #1156
  • fix: crash when clicking overflow with empty URL
  • fix: crash with missing notification permission
  • fix: Themed Icon Missing #1157
  • new: switched from deepl to fairtranslate
  • new: edit custom redirects

v 16 "Alexander Berkmann"

  • new: tracking-URL-popup
  • fix: context menu in tab overview
  • fix: onRenderProcessGone
  • fix: http-dialog
  • fix: dialogs with long file names
  • fix: tab-layout in overflow menu
  • updated: translations

v 15 "Kabale und Liebe"

  • new: auto deny cookie-banners (@https://github.com/woheller69/browser)
  • new: sort startsite and history by domain
  • new: highlight domains in lists and menus
  • new: highlight search term
  • fix: layout and colors
  • fix: Error downloading blob-files (@https://github.com/woheller69/browser)
  • fix: Downloading files that requires Referer header #950
  • fix: Display errors in dark theme? #1143

v 14 "Katjuscha" (Protagonistin in Leo Tolstois Auferstehung)

  • fix: redirect custom urls
  • fix: Back navigation is flawed #1121
  • fix: Open in default app #1134
  • fix: App crashes when opening settings #1128
  • fix: layout/UI improvements
  • fix: Deleting duplicated bookmark deletes both #1130
  • fix: v13 system theme - colors [re: 1105; 1119] #1126
  • fix: profiles -> wildcard support #1133
  • fix: Suggestion: Long-press on bookmark icon to save #1140
  • fix: Add initial intro #1129
  • fix: Splash screen should adapt to theme #1142
  • new: simplified receiving text dialog
  • updated: translations
  • updated: libraries

v 13 "Friedrich Hecker"

  • switched to Google rounded Material You Icons
  • fix: improvements in backup/restore
  • fix: improvements in custom redirects
  • fix: layout improvements
  • fix: open deepl.com in normal tab
  • fix: lint issues
  • fix: theme issues #1105
  • fix: WIKI-links
  • fix: cleanup strings
  • fix: updated translations
  • fix: backup on exit
  • fix: crashes related to cookie manager #1118 #1111 #1115
  • fix: tabs gets multiplied #1117
  • fix: Add Initial intro screen #1129
  • new: icons in overview menus
  • new: fast search on websites (long press search icon in toolbar)
  • new: AdBlock -> add custom domains

v 12 "Gandhi"

  • fix: Open Downloads after download complete
  • fix: Custom search engine UI/UX #1113
  • fix: Cannot import custom Bookmarks #1109
  • fix: open links in background
  • fix: notification permissions
  • fix: infinite loop verification on gitlab.com #1100
  • new: backup on exit (optional)
  • new: fast search on websites (long press search icon in toolbar)

v 11 "Bertha von Suttner"

  • new: third party cookies control
  • new: stop-loading on progress indicator click
  • fix: Writing to clipboard from JavaScript doesn't work #853
  • fix: recreation of activity on ui-mode change
  • fix: translate text from context menu with deepL
  • fix: crash on start (A14)
  • updated: translation
  • updated: layout
  • updated: build libraries

v 10.0 "Clara Zetkin"

  • moved repo from Github zu Codeberg
  • moved from crowdin to weblate
  • fix: cookie/profile settings lost on tab change #1095
  • fix: profile settings lost, when going back in history
  • fix: Not really a bug... #1075
  • fix: Menu Dialog tweaks #1086
  • fix: error warnings #1092 and #1082
  • fix: removed "open link with" from menus, since it does the same like sharing #1089
  • fix: HTTPS or HTTP dialog only asked one time per session #1083
  • fix: Gestures: added gestures for "Open Settings" and "Quit app" #1087
  • fix: Custom Redirects to sites that don't start with "www." #1097
  • fix: lint issues
  • new: translate text from context menu with deepL
  • updated translations

v 9.11 "Traven"

  • new: context menu in tab overview
  • new: icons in menus
  • new: delete entries from search
  • new: http-warning before loading
  • fix: layout in menus
  • fix: menus
  • fix: onReceivedHttpAuthRequest password showing #1069
  • fix: download names #1071

v 9.10 "Durruti"

  • new: Clipboard record preference thanks to @Bnyro
  • new: show url on link menus or when clicking menu title
  • new: show urls in lists
  • new: tab number in overview
  • fix: refactored settings
  • fix: layout issues on small devices #976
  • fix: Password field for protected sites shows entries #1039
  • fix: youtube redirects
  • fix: onReceivedError
  • fix: Settings refactor thanks to @Bnyro
  • fix: OLED theme issues #1052

v 9.6

  • removed: redirection for Instagram
  • fix: Redirect error from YouTube #991
  • fix: loading images fit screen width
  • fix: cookie manager, when going back in history
  • fix: buttons not reachable on some dialogs
  • fix: Auth-request dialog
  • fix: download dialog
  • fix: startsite is now the wiki #997
  • fix: crash when open downloads, while default file manager not installed
  • fix: issues with the file name when downloading thanks to @Bnyro
  • fix: kill the app on pressing quit thanks to @Bnyro
  • fix: theme settings
  • fix: suppress DRM notice #1019
  • fix: profile icons - red for attached profiles #999
  • fix: Youtube videos in full screen mode cropped #1015
  • fix: Twitter-to-Nitter redirector matches some unrelated urls #1022
  • fix: & not escaped in search URL #959
  • fix: lint issues
  • new: circular progress - press to stop loading
  • new: Swedish translation
  • new: material dialogs in the preferences thanks to @Bnyro
  • new: monochrome icon for Android 13+ thanks to @Bnyro
  • new: custom redirects thanks to @Bnyro
  • new: Custom error pages thanks to @Bnyro

v 9.5

  • fix: can't open URL from outside, if it was closed before
  • fix: Active button colors on OLED theme #1006
  • new: hebrew translation

v 9.4

  • new: "post on website" in sharing menu
  • new: Serbo-Croation translation
  • new: Support app split screen #937
  • fix: Restored functionality to proceed according to user selection #941
  • updated: translations
  • updated: build libraries
  • removed: swipe to reload -> use gestures instead

v 9.3.1

  • fix: Half screen after orientation change #919
  • fix: not all menu items accessible in landscape orientation
  • fix: Download dialog does not decode multibyte file name #917
  • fix: File name is not shown in the download prompt #916
  • fix: Browser crashes when switching embedded video to full screen #925
  • fix: Persistent swipe issues #924

v 9.2

  • fix: crash when sharing links #883
  • fix: no password field on webserver authentication #891
  • fix: some swiping issues #899 by Lakjdf
  • fix: support for intent scheme URLs again #898 by Lakjdf
  • fix: refactored code to make it much more readable #896 by T8RIN
  • fix: share link
  • fix: Home-screen links improvment #906
  • fix: no password field on authentication dialog #891
  • updated: layout and user experience
  • updated: settings for night view
  • updated: settings for gestures
  • updated: settings for editing profiles #909
  • updated translations: Now 21 languages are fully supported!

v 9.1

  • fix: removed unnecessary toasts in fastToggle
  • fix: Browser crash on search with "%" #861
  • fix: progressbar visible when searching
  • fix: UI of FastToggleDialog #872
  • fix: UI of edit/save as dialog #873
  • fix: https warning #863
  • fix: Images not displayed #881
  • new: gesture to copy link to clipboard #868
  • new: copy link to clipboard in context menu #878
  • new: switched license to APGL
  • new: redirect YouTube/Instagram/Twitter links
  • new: show number of tabs in overview

v 9.0

  • fix: popup menu in Overview
  • fix: searchbar not hiding in back pressing #852
  • fix: edit favorites layout not scrolling #854
  • fix: open external link shows Overview #858
  • updated: translations

v 8.9

  • fix: some webpages show half the screen #817
  • fix: Shortcut on the home screen #830
  • fix: crash on first start #829 #820
  • fix: Settings button does not open settings #823
  • fix: cannot connect to some webservices #818
  • fix: default user-agent is now received from installed webview
  • fix: long press actions on toolbar buttons #866
  • fix: https warning #863
  • fix: Images not displayed #881
  • updated: translations
  • new: moved tab-dialog in overview
  • new: permanent night mode (optional) #825
  • new: help buttons in most important UI-elements

v 8.8

  • new: Wiki integrated in settings and menus
  • new: notification when playing audio on background #800
  • new: gestures
  • fix: mailto and other intents not working
  • fix: button "reload " is hidden #803
  • fix: play audio in background #800

v 8.7

  • fix: dark theme in settings activities
  • fix: night mode (webView)
  • new: play audio on background
  • new: Quick toggle to keep screen on
  • new: gesture settings for long pressing
  • new: open links in background
  • new: swipe through menu
  • updated: F-Droid (screenshots, description)
  • updated: Privacy Policy
  • updated: translations (17 languages supported!)
  • improved: MaterialYou theme
  • improved: search in history, bookmarks, ...
  • improved: close open tabs dialog after making selection

v 8.6

  • skipped -

v 8.5.1

  • fix: camera issue #729
  • fix: profile icon in toolbar #728
  • fix: cookie settings when switching tab
  • fix: stay at night mode, when openeing bookmark
  • fix: close open tabs window after making selection #746
  • new: restart and reload tabs
  • new: Material You Design #726
  • new: OLED dark theme Feature #742
  • new: FOSS Browser in context menu of marked text #723
  • new: remember night mode per site #669
  • new: adding "copy link" button to download dialog #733
  • new: remember night mode, when opening new tabs
  • new: gesture: open start site
  • new: keep screen on
  • improved: set favicons (thanks to @woheller69)
  • updated: translations
  • updated: build libraries

v 8.4

  • new: camera use (thanks to @woheller69)
  • new: microphone use
  • new: webRTC support
  • new: DRM protected video playback (thanks to @woheller69)
  • new: support of encrypted backups (thanks to @woheller69)
  • new: profiles instead of whitelists
  • new: restore tabs on restart (optional)
  • new: restore tabs when killed by system (optional) (thanks to @woheller69)
  • fix: AutoComplete TextView (thanks to @woheller69)
  • updated: setting screens

v 8.3

  • fix: Swipe to reload not working sometimes #654
  • fix: Restoring bookmarks does not work properly #653
  • fix: some force closes #642 #643
  • fix: gestures and text-edit-scrolling collide #633
  • fix: Toolbar hides, but reappears if page is refreshed #660
  • fix: minor fixes and UIredirects webview
  • new: save dektopMode, Javascript, domStorage also for history items
  • removed: PlayStore support
  • updated: translations

v 8.2

  • fix: chip desktop, javascript, DOM should not be visible in settings when editing filter names (thanks to @woheller69)
  • fix: Sometimes Favicon is stored several times in database (thanks to @woheller69)
  • fix: permission problems
  • fix: download problems
  • new: edit startSite and history items
  • new: Privacy Enhancement #602 (thanks to @woheller69)
  • new: choose preferred theme
  • updated: Edit filter names (thanks to @woheller69)
  • updated: backup preference

v 8.1

  • new: edit bookmark-url (thanks to @woheller69)
  • new: Reload on swipeDown when at top of webpage (thanks to @woheller69)
  • new: Added GlobalPrivacyControl (thanks to @woheller69)
  • new: Remove device info from useragent, use prefixes like DuckDuckGo browser (thanks to @woheller69)
  • new: favicons in bookmarklist (thanks to @woheller69)
  • new: option to select blocked content
  • updated: do not track (thanks to @woheller69)
  • updated: translations
  • fix: sorting of tabs in overview
  • fix: DOM-storage description in settings
  • fix: apply settings on back/forward navigation
  • fix: Ad-Blocking also blocks "social" media
  • fix: open link externally

v 8.0

  • new: toggle mobile/desktop mode (thanks to @woheller69)
  • new: auto update of AdBlock-hosts (thanks to @woheller69)
  • new: save desktop mode/javascript/DOM content settings in bookmarks (thanks to @woheller69)
  • new: show colored bookmark icon when editing bookmark category (thanks to @woheller69)
  • new: Use settings stored in bookmark when a bookmark is found in search (thanks to @woheller69)
  • new: Show icon source of item (start page, bookmarks, history) in search (thanks to @woheller69)
  • new: save form data/use autofill service in settings
  • fix: correct icon colors when importing bookmarks (thanks to @woheller69)
  • fix: content hidden by toolbar
  • fix: opening new tabs on older Android versions
  • fix: Dark mode not applied to all tabs
  • fix: toolbar input handling

v 7.5

  • new: right to left layout support (thanks to @M3hdiRostami)
  • new: Farsi (Persian) language support (thanks to @M3hdiRostami)
  • updated: AdBlock
  • updated: AppIcon
  • fix: New bookmarks are not shown in red-filtered bookmark view
  • fix: Application crash when trying to watch video in full screen mode
  • fix: showing keyboard when leaving fullscreen mode
  • fix: interaction with url in address line
  • fix: tab handling
  • fix: toolbar input handling
  • even more fixes

v 7.4

  • removed: app shortcuts
  • fix: keyboard not showing on large input fields
  • fix: app crash when displaying overview on start
  • fix: app crash when showing some dialogs
  • fix: clearing data
  • fix: open fallback urls
  • fix: crashing on fullscreen on older Android versions

v 7.3

  • updated: translations (now 16 languages are supported!)
  • updated: build and theme libraries
  • updated: AdBlock-hosts
  • updated: Material Components
  • updated: settings activities
  • updated: tab handling
  • removed: multi-window support
  • removed: theme settings
  • new: support of: open target="_blank"
  • fix: Opting out of metrics collection
  • fix: export bookmarks
  • fix: tab handling
  • fix: apply javaScript, cookies and DOM content whitelists
  • fix: switching between system day/night mode
  • fix: dialogs in landscape
  • fix: alphabetical sorting of overview entries
  • fix: search in toolbar
  • fix: many other small fixes

v 7.2

  • fix: zooming on websites
  • fix: opening new tab when restarting
  • new: close search on site by back pressing

v 7.1

  • removed: ability to save password within bookmark
  • updated: AdBlock hosts
  • updated: translations
  • updated: bookmark management (sorry for removing password saving)
  • updated: overview, menus and dialogs
  • fix: searx.me search
  • new: hide overflow button
  • new: whitelist for DOM content
  • new: backup/restore bookmarks as html
  • many stability improvements -> removed ca. 5000 lines of unnecessary code!)

v 7.0

  • new: F-Droid description
  • updated: many translations (BIG THANKS TO ALL CROWDIN translators)
  • fix: leave video fullscreen with back key
  • fix: create windows inside webView

v 6.9

  • fix: custom search engine
  • new: Italian translation
  • new: custom user agent
  • new: removed storage permission for Android 10+
  • updated: some translations
  • updated: Android libraries

v 6.8

  • new: search in all overview entries
  • new: Blank target href open a new tab
  • new: removed device model and build number from user agent string
  • new: follow system theme
  • new: Amoled theme
  • new: moving to AndroidX libraries
  • new: favorite settings
  • updated: handling of ssl-errors
  • updated: adblock hosts
  • updated: themes
  • updated: Turkish translation
  • updated: Czech translation
  • updated: Brazilian translation
  • updated: Russian translation
  • updated: settings (especially filter settings)
  • updated: saving locations of backups and screenshots
  • removed: tinting of toolbar
  • removed: open links in background

v 6.7

  • new: backup and restore settings
  • fix: saving on startsite
  • fix: toolbar not showing title
  • fix: making backups

v 6.6

  • fix: storage permission problems
  • fix: location permission problems
  • fix: lint issues
  • fix: sort startsite by time
  • fix: favorite site not loading on start
  • fix: inputs not loading
  • new: add to startsite from link context menu

v 6.5

  • new: more font sizes (thanks @pbui)
  • new: ECOSIA search engine
  • new: open dialogs always expanded
  • fix: exclude notifications from recent apps
  • fix: some popup dialogs not opening
  • fix: hide nav button

v 6.4

  • new: FAQ site (thanks @HarryHeights)
  • new: long click on tab preview to close
  • new: add shortcuts to home screen (long press overview entry)
  • new: dynamic shortcuts: two last opened websites
  • updated: help dialog
  • updated: Portuguese translation (thanks @smarquespt)
  • updated: French translation (thanks @franco27)
  • updated: adblock domain list
  • improved: Overview
  • improved: rendering speed
  • fix: file upload
  • fix: input box not showing on some devices
  • fix: hide navigation bar in fullscreen mode
  • fix: can't go back in history in some cases

v 6.3

  • new: Add Cookies support for download function
  • new: option to enable Save-Data header (thanks @SkewedZeppelin)
  • new: set blank start site
  • new: fast scroll on long lists
  • new: show/hide tab preview
  • new: animations when showing/hiding views
  • new: Qwant search engine (thanks @Tobiplayer3)
  • new: option to open new tab instead of exiting app
  • new: Ukrainian translation (thanks @Roman Babiy)
  • new: Turkish translation (thanks @ali-demirtas)
  • fix: UI and minor issues
  • updated: long press menu on websites
  • updated: Help dialog
  • updated: Polish translation (thanks @gh-pmjm)
  • updated: Dutch translation (thanks @Vistaus)
  • updated: Taiwan Trad. Chinese translation (thanks @elmru)
  • updated: Portuguese translation (thanks @smarquespt)
  • updated: Overview dialog
  • updated: FastToggle dialog

v 6.2

  • new: advanced gesture settings
  • new: show overview on start
  • fix: light settings theme

v 6.1

  • new: overview instead of startPage
  • new: order and filter bookmarks
  • new: edit url of bookmark
  • new: open favorite website on start
  • new: Code of conduct site (thanks @HarryHeights)
  • new: Privacy declaration (thanks @HarryHeights)
  • updated: adBlock hosts list
  • updated: help dialog
  • updated: French translation (thanks @Hellohat)
  • updated: Portuguese translation (thanks @smarquespt)
  • removed: loginData (use bookmarks instead)
  • fix: upload files
  • fix: not clearing indexed databases on exit
  • many more fixes and improvements

v 6.0

  • updated: adBlock hosts list
  • updated: Polish translation (thanks @gh-pmjm)
  • fix: problems with characters like ä, ü, ö
  • new: Taiwan Trad. Chinese translation (thanks @elmru)
  • new: Italian translation (thanks @EnricoMonese)
  • new: Portuguese translation (thanks @Sérgio Marques)
  • many more fixes and improvements (thanks @BO41)

v 5.9

  • updated: Chinese translation (thanks @YC L)
  • updated: Russian translation (thanks @Vladimir Kosolapov)
  • new: Polish translation (thanks @gh-pmjm)
  • new: Dutch translation (thanks @gHeimen Stoffels)
  • new: adaptive icon

v 5.8

  • new: "do not track" header
  • new: + button in tab preview
  • new: save websites as PDF
  • new: show link in context menu
  • fix: not applying cookie whitelist when switching tabs
  • fix: scrolling issue
  • fix: screen rotation issues
  • updated: UI + dialogs
  • updated: Spanish translation (thanks to @Herman Nuñez)
  • updated: Chinese translation (thanks to @smallg0at)

v 5.7

  • new: delete indexed databases and local web storage
  • new: Spanish translation (thanks to Herman Nunez)
  • new: confirmation dialog before making backup
  • new: delete separate lists (Startpage, history, ...)
  • new: show unsecured connections and try reloading secure
  • new: search engines (Startpage DE, Searx)
  • new: notification when download or screenshot complete
  • new: block DOM content
  • improved Chinese translation (thanks: lishoujun)
  • removed: Snackbar (replaced with toasts)
  • removed: request desktop site
  • removed: build in file manager
  • fix: some strings (thanks: gr1sh)
  • fix: some urls opening search results

v 5.6

  • new: increase font size
  • new: close all websites from notification
  • new: desktop mode in "Fast toggle dialog"
  • improved: link sharing
  • improved: light theme
  • improved: UI
  • fix: some force closes

v 5.5

  • new: option to disable confirmation dialogs on exit (thanks: element54)
  • improved: light theme
  • improved: startpage
  • fix: dark background on some websites
  • fix: ok button on "Fast toggle dialog"
  • fix: toolbar not showing title
  • fix: back handling

v 5.4

  • new: new app name "F|L|OSS Browser"
  • new: dark and light theme
  • new: startpage with all contents
  • new: full support for cookie whitelist
  • new: more options for fullscreen browsing
  • new: more options visibility Navigation Button
  • new: night mode only while browsing
  • updated: help dialog
  • removed: different light themes
  • fix: double entries in history
  • fix: toolbar does not work on start
  • fix: keyboard issues in some cases (thanks: element54)

v 5.3.1

  • new: initial support for cookie whitelist (fast toggle)

v 5.3

  • improved: tab opening/removing
  • improved: back handling
  • improved: enter/exit fullscreen
  • other improvements and bug fixes

v 5.2

  • new: decide which tab to open on start
  • new: backup complete data and settings
  • new: double tap "Navigation Button" to hide
  • new: option to disable history (settings and fast toggle)
  • new: option to hide/show "Navigation Button"
  • new: change position of "Navigation Button"
  • new: moved menus in bottom dialog
  • new: Baidu as default search engine for Chinese users
  • new: Indonesian translation (thanks: Secangkir Kopi)
  • changed: backups on root of sd-card
  • updated: Help dialog (ENG, DE)
  • improved: applying settings from fast toggle dialog
  • improved: Chinese translation (thanks: lishoujun)

v 5.1

  • new: Chinese translation (thanks: lishoujun)
  • new: close current tab in menu
  • new: share text to browser
  • improved: hide/show toolbar
  • fix: night mode (now in UI settings)
  • fix: force close when clicking direct download link
  • fix: screenshot, when started via holder service
  • fix: some strings
  • fix: possible force close on Android > Nougat

v 5.0

With this update "Ninja Browser" is used as base for "Browser". The concept remains the old: simple but powerful with a nice looking user interface. Main advantage of this step are a better implementation of tabs. Now you can open as many tabs as you wish. Also you have a new startpage. Please read the new "Help dialog" for more information.

  • full oreo support

v 4.5

  • new: Chinese translation (Thanks: Jumping Yang)
  • new: keyboard go button actions
  • new: settings icon in toolbar (click for toggle/long click for main settings)
  • new: possibility to temporally hide navigation arrows
  • new: auto fill (authentication dialog)
  • improved: tab behavior
  • fix: load default settings on start
  • fix: force close when sharing screenshot
  • fix: not showing website title

v 4.4

  • fix: save screenshot
  • fix: saving entries containing an apostrophe
  • fix: option to restart app to apply swipe gesture
  • new: http basic authentication
  • improved: behavior of tab preview/behavior

v 4.3

  • fix: title of setting subpages
  • fix: crash when selected list at startup
  • new: swipe to switch tabs optional (settings/popup settings)

v 4.2

  • removed: backup/restore of passStorage
  • fix: hiding keyboard after searching in lists
  • fix: history - scroll to latest entry
  • improved: code and UI
  • new: swipe to switch tabs
  • new: settings on different subpages
  • new: auto orientation (sensor/device)
  • new: offer restart to apply some settings
  • new: theme support

v 4.1

  • removed: offline support (use screenshot for saving)
  • removed: unnecessary permissions
  • fix: reset menu after editing file name
  • fix: overwriting of files while renaming
  • fix: several code improvements
  • fix: delete passStorage
  • improved: layout close button
  • improved: bundled Notifications
  • new: Google encrypted search (override AMP-links)
  • new: advanced backup/restore data

v 4.0

  • removed: donation link on Github
  • removed: video thumbnail
  • improved: file manager (icons, image preview)
  • new: scroll to end of website arrow

v 3.9

  • removed: notification actions (to buggy)
  • removed: direct opening a donation website<br>
  • fix: notification behavior (open multiple links)
  • fix: force close on toolbar click
  • fix: website partially not visible
  • improved: refresh website (long click "history icon")
  • improved: help dialog (menu -> more -> Help)
  • new: switched to Picasso library to load images
  • new: homepage setup (bookmark list)
  • new: open links directly (optional)
  • new: moved from activities to fragments
  • new: bookmarks, readLater, history as startpage (settings)

v 3.8

  • removed: swipe to refresh
  • fix: some random force closes
  • fix: notifications on Lollipop/Marshmallow devices
  • fix: do not scroll to list end after editing entry
  • improved: taking screenshots
  • improved: long click menu in lists
  • new: menu -> reload website
  • new: Russian translation
  • new: show current url when starting editing mode in toolbar
  • new: close tabs from tab preview
  • new: set empty page as favorite

v 3.7

  • new: changelog after update
  • new: long click on toolbar opens tab overview
  • new: click on toolbar opens search/enter URL
  • fix: toolbar swipe (lists)
  • fix: hide navigation buttons
  • fix: contributor title
  • fix: always loading homepage when closing settings
  • fix: cancel search on site
  • improved: cookie settings
  • improved: open links in new tab

v 3.6

  • new: always hide statusbar on fullscreen videos
  • new: five tabs (@CGSLURP LLC)
  • new: toolbar and button animations
  • new: toolbar gestures in lists
  • new: save link destination
  • fix: download pictures
  • fix: startpage on javascript whitelist
  • improved: portrait layout
  • improved: Adblock integration
  • improved: Desktop site request
  • improved: sorting of lists
  • improved: code simplified
  • improved: UI (colors, strings, layouts)
  • updated: help dialog, introscreen

v 3.5

  • fix: keyboard issue
  • new: request desktop site (@CGSLURP LLC)
  • new: adblocker (@CGSLURP LLC)

v 3.4

  • improved: sorting of list entries
  • fix: keyboard not open (landscape)

v 3.3

  • removed: swipe to navigate
  • improved:opening urls
  • fixed: pin screen not showing

v3.1v 3.2

  • fix: possible crash an Android < Lollipop when opening settings
  • fix: search from toolbar
  • fix: crash when website title contains apostrophe

v 3.0

  • fix: F-Droid build error
  • lint: disable missing translation
  • updated: support libraries

v2.82.9

  • new: video thumbnails
  • fix: open links from readLater list (opened from notifications)
  • fix: error message on start

v 2.7

  • fix: directory up icon
  • fix: saving all entries lowercase

v2.42.6

  • new: new file manager
  • new: sub menus
  • removed: toolbar long click
  • improved: toolbar in lists
  • improved: removed unnecessary code
  • fix: sort readLater by date
  • fix: sort by title (needs uppercase on first letter in the entries)
  • fix: double entries in history
  • fix: app icon color
  • fix: open shortcuts
  • fix: open links from notification
  • fix: delete data on exit

v 2.3

  • new: search in lists
  • new: no duplicate bookmarks
  • improved: UI (lists, colors, buttons)
  • improved: database model

v 2.2

  • new: about screen
  • new: intro screen
  • fixed: save website (passStorage): set title
  • fixed: notification not dismissed

v 2.1

  • new: bundled notifications

v 2.0

  • improved: encryption of passStore databases
  • fixed: F-Droid build error

v 1.9

  • new: encryption of passStore databases

v 1.8.1

  • fixed: f-droid build failure

v 1.8

  • improved: pin screen layout
  • improved: sort dialog behavior
  • improved: wsitched to xml icons
  • removed: bookmark screen
  • new: second tab
  • new: set bookmark as start site (long click)
  • new: cancel button on some dialogs
  • new: cancel dialog when clearing whitelist
  • fixed: force close (links without "/")

v 1.7

  • fixed: F-Droid build error

v 1.6

  • fixed: some strings
  • improved: backup and restore databases

v 1.0+ (first public release)

  • improved: readLater notification (v1.1)
  • improved: search results in German
  • improved: settings screen
  • improved: license dialog
  • improved: minor ui/code tweaks
  • new: websearch (from shared text)
  • new: donate (settings)
  • new: changelog (settings) (v1.4)
  • new: sort lists by title and date (v1.5)
  • fixed: navigation settings (v1.2)
  • fixed: screenshot (v1.3)