Releases: fazza-abiyyu/Yue-Browser
Releases · fazza-abiyyu/Yue-Browser
Release list
v1.1.9
[1.1.9] - 2026-08-29
🐛 Bug Fixes
- Consent Popup False Positives: Expanded semantic dialog detection (
role="dialog",aria-modal) and text-based consent matching (cookie, privacy, preferences, TCF, GPC, Google Funding Choices). Consent popups are now protected from adblock CSS and restored viadata-yue-popupattribute. - Layout Breakage on CDN Sites: Added Brave-style static asset bypass for
.js,.css, fonts, and images on multi-purpose CDNs likecdnsolutions.media. Layout assets are no longer blocked at host level, only explicit ad paths. - In-Page Script Redirects (Judol): Silent
window.locationredirects to third-party ad/judol hosts are now blocked on the main frame without triggering blank pages. - Video Speed Stuck After Release: Rewrote
cancelHold()with deferred native setter restoration, prototype-chain fallback, and multi-video sweep to prevent playbackRate from staying stuck at 2x. - Ad Loader CORS Fallback: Blocked responses now return
403 ForbiddenwithoutAccess-Control-Allow-Originheaders, causing ad config endpoints to fail preflight instead of falling back.
🔧 Adblock Engine Improvements
- Minimal CSS Hiding: Replaced aggressive
height:0 / overflow:hidden / z-index:-1withdisplay:none / visibility:hidden / opacity:0to prevent permanent layout corruption. - Expanded Consent Patterns: Cookie banner and cosmetic filter engines now reject selectors containing generic consent words (
cookie,consent,gdpr,preference,privacy,policy,fundingchoices, etc.) across class, id, and aria-label attributes.
v1.1.8
[1.1.8] - 2026-08-29
🐛 Bug Fixes
- Reload Not Working on Blank Pages: Pull-to-refresh failed to reload pages stuck in a blank loading state.
shouldOverrideUrlLoadingwas intercepting the reload and re-postingloadUrlviamainHandler.post, introducing a delay/race condition. Nowreload()setslastOverrideTime/lastOverrideUrlso the navigation is not intercepted. - CSS Missing Due to cdnsolutions.media Blocked: Domain
cdnsolutions.mediaremoved fromad_domains.txtandknownAdHoststo prevent CSS/JS requests from being blocked at the network level. Retained in JS-level detection to hide ad elements from that domain. - Ads Leaking (hevexiximyzywy.com): Domain
hevexiximyzywy.comadded toad_domains.txt,knownAdHosts, andadDomainsJS detection.
🔧 Yue-AdBlock Updates
- Remote Adblock Rule Expansion: Added
video_ads.txt(152 lines),popup_ads.txt(223 lines),anti_adblock_selectors.txt(128 selectors), andstreaming.jsonpolicy profile. Ad domain list expanded by +2485 domains. - Streaming Profile: New policy profile optimized for video streaming sites with balanced ad blocking.
v1.1.7
[1.1.7] - 2026-08-28
✨ New Features
- QR/Barcode Scanner: Built-in scanner reader powered by CameraX + ML Kit Barcode Scanning. Accessible via the scanner icon on the New Tab home page search bar and the search overlay bar. Scanned URLs open directly; non-URL results (text, numbers) are sent through the default search engine. Features a dimmed overlay with a transparent scan window and corner brackets for precise framing.
- Themed Scanner Icon: Scanner icon follows the browser's accent color — pink for normal mode, red (
#FF002C) for incognito mode.
🐛 Bug Fixes
- Ghost Ads / Popunders: Blocked cross-domain popup windows via
window.open(), popunder redirects vialocation.assign()/location.replace(), clicks on ad-network<a>links, and auto-removed ad iframes and video ad players from the DOM. - Back Navigation Opening Ads: Added
markRedirectUrlForSkip()to track ad redirect URLs. ThegoBack()method now checks the history stack and skips ad-domain entries, navigating directly to the previous legitimate page. - Video Ads: Expanded VAST/VPAID blocking patterns (25+ new signatures including
ad_break,adplayer,video_ads, etc.), added detection for ad iframes and video ad players, and blocked 100+ additional video ad networks (Brightcove, Brid.tv, Teads, Connatix, Playwire, etc.). - Aggressive Cosmetic Filtering: Switched from
el.remove()to CSS-only hiding (display:none,visibility:hidden) to prevent JavaScript errors on ad-heavy sites. Added periodic DOM rescan (5s interval) to catch dynamically injected ads.
🔧 Adblock Engine Improvements
- Expanded Ad Domain Blocklist: Added 200+ ad domains across popup networks (shrinkearn, linkvertise, adsco.re), video networks (brightcove, teads, brid.tv, vidoomy), and ad networks (popads, propellerads, adsterra, exoclick, etc.).
- Enhanced JS-Level Ad Blocking:
blockAdIframes()removessrcattributes from iframes loading ad domains.blockVideoAdPlayers()hides elements with ad player classes (preroll, midroll, vast-player, instream). - Improved Popup Detection: Better detection of cross-domain window openings and
<a>link clicks targeting ad networks.
v1.1.6
[1.1.6] - 2026-08-27
✨ New Features
- Remote Adblock Engine: Modular adblock with remote policy sync via Yue-AdBlock Strategy Center (https://github.com/fazza-abiyyu/Yue-AdBlock). Four policy profiles (Balanced, Aggressive, Minimal, Anti-Judol), dynamic filter updates without app rebuild, hash-based change detection to minimize bandwidth, and 6-hour cooldown sync on app open.
- Three-Layer Adblock Architecture: Strategy (BE policy/rules) → Rules (filter data) → Engine (native Android implementation with HostBlocker, CosmeticService, RedirectService).
- Host Blocking: Parses
easylist.txtandabpindo.txtdomain patterns (||domain.com^,|https://domain.com/) for network-level ad blocking with whitelist support and fallback domains. - Redirect Bypass: Detects ad-network redirect chains (e.g., shrinkearn.com → tpi.li) and extracts final target URLs directly, bypassing intermediate ad pages for download links.
🏗️ Refactored
- AdBlockManager → AdBlockEngine: Full modularization into services —
BlockingService,RedirectService,CosmeticService, with clear separation of concerns for maintainability. - BE Pattern: Yue-AdBlock backend follows cp-center/elysia pattern — Elysia + OData v4 + Zod validation, deployed on Vercel with Bun runtime.
🐛 Bug Fixes
- Blank/White Screens: Switched from aggressive DOM removal (
el.remove()) to CSS-only hiding (display:none,visibility:hidden,height:0) to prevent site JavaScript errors. - Permission Popups Not Showing: Fixed
onPermissionRequest()andonGeolocationPermissionsShowPrompt()to not prematurely deny before system permission dialogs complete. - Clicks Not Working: Removed
pointer-events: noneCSS injection and stoppedbreakAdTimers()from blocking legitimate click handlers. - Back Navigation Broken: Removed HTTPS upgrade for IP addresses and added
suppressAutoSaveflag to prevent corrupted WebView state from being saved during error page loads. - State JSON Corruption: Added
stateWriteLock(write lock) to prevent concurrent JSON file write race conditions during tab state restoration. - Adsco.re Ads Not Blocked: Added
parseHostPatternsFromList()to parse easylist.txt domain patterns into HostBlocker. - Cleartext Traffic Blocked: Set
cleartextTrafficPermitted=truein network security config and AndroidManifest for all domains.
v1.1.5
[1.1.5] - 2026-08-20
✨ New Features
- Set Default Browser Setting: Added an option under General settings to set Yue Browser as the default system browser with dynamic status check using
RoleManager(Android 10+) and system settings fallback. Fully localized in English and Indonesian. - Block External App Redirects Setting: Added a Privacy & Security toggle to prevent redirects or link clicks from launching external apps (e.g. Facebook, Play Store) and force them to load inside the browser. Fully localized in English and Indonesian.
🐛 Bug Fixes
- Background WebView Crash Recovery: Handle WebView rendering process crashes programmatically in
onRenderProcessGoneby scheduling an automatic page reload, and manage WebView resources during Activity pause/resume. - Media Player False Notifications: Added validation to prevent empty media player notifications from appearing before media playback has actually started.
- Incognito Back History Restoration: Fixed an issue where incognito tabs lost their navigation history (back/forward state) after being restored from the background.
🗑️ Removed
- REQUEST_INSTALL_PACKAGES Permission: Removed the sensitive APK installation permission to comply with Google Play Store policies.
v1.1.2
✨ New Features
- Site Permissions Screen: Add per-site permission management screen (
SitePermissionsScreen.kt) with Location, Camera, and Microphone overrides and one-click reset - IP & DNS Checker Screen: Add network diagnostics screen (
IpDnsCheckerScreen.kt) that detects active VPN/Proxy transports viaConnectivityManager - Security & Privacy Settings: Add HTTPS-Only Mode, Do-Not-Track, third-party cookie blocking, fingerprint protection, referrer control, and Safe Browsing toggles, plus per-domain permission persistence
📝 Documentation
- Rewrite all
docs/guides with relative source-file paths (GitHub-safe) and reusable code references - Clean up
README.md: addpublic/previewscreenshots, tidy feature list, and link to feature docs
v1.1.1
🐛 Bug Fixes
- Fix tab state corruption – Empty popup tabs no longer appear during state restore or tab switching. Added
suppressPopupCreationflag and mutex-serialized state writes. - Fix hold speed bug – Video no longer gets stuck in 2x speed after releasing the hold gesture. Original rate is now saved for all video states.
- Fix scroll false-trigger refresh – Pull-to-refresh no longer accidentally triggers when scrolling down on manga/comic sites.
- Fix group drag-drop – Group drag-drop zone now correctly detects drops.
- Fix adblock video visibility – Video visibility restored after ad skip.
- Fix yue state writes – Tabs state JSON now uses safe temp-file rename strategy.
✨ New Features
- URL Probing & Smart Filename – Intelligent filename extraction for downloads.
- Sponsored/Promoted Ad Selectors – Improved ad detection.
- Top Bar Component – New top bar with refined split-tab slot management.
- URL path blocking – Added pattern-based URL path matching to block ad/malware sub-resources.
- Cosmetic CSS chunking – Optimized CSS cosmetic rules injection by dividing selectors into 200-element chunks to prevent browser layout engine stutter.
- Parent domain resolution – Enhanced domain parsing in
PasswordRepositoryto support multi-level TLDs (e.g..co.id) for accurate credential auto-fills. - Speed dial base URL – Modified speed dial additions to save clean base URLs for tidier item listing.
⚡ Performance
- YouTube ad blocker optimized with CSS
:has()selectors - Adblock filter loading refactored
- Undo-close-tab timer optimized with ViewModel jobs
- Swipe-to-refresh scroll gesture detection simplified inside WebView renderer
- Tab restoration logic optimized when zero tabs are present
v1.1.0
✨ New Features
- Language & theme selection.
- Adblock filter synchronization.
- Interactive element picker.
- Welcome screen.
- Video orientation lock.
- Automatic retry for interrupted downloads.
- Improved popup and tab blocking.
🛠 Improvements
- Redesigned tab switcher UI.
- Better cookie flushing.
- More robust file path validation.
- System dark mode detection.
🐛 Bug Fixes
- Download reliability improvements.
- Popup handling fixes.
- Tab closing fixes.
- Various stability and performance improvements.
v1.0
pre-release docs: update README with interactive element picker and adblocker fea…