Cobrow is a native Android WebView browser focused on fast local browsing, bundled ad blocking, and practical privacy controls. It stores browsing data on the device and does not include analytics or tracking SDKs.
- Tabbed browsing with a responsive grid overview, tab thumbnails, drag-to-reorder, swipe-to-close, clone actions, and optional tab groups.
- Chromium-style bottom tab counter with a dedicated tab overview.
- Built-in ad and tracker blocking using bundled EasyList, EasyPrivacy, Peter Lowe, uBlock filters, uBlock badware, cookie notice filters, supplemental tracker rules, and optimized request-decision caching.
- JavaScript-aware adblock handling for sites that test blocked
fetch()/XHR failures, plus cosmetic hiding for common ad placeholders. - YouTube and YouTube Music improvements: YouTube ad-host blocking, YouTube player-response ad key stripping, skip-ad helper, background playback support, fullscreen video handling, and Picture-in-Picture support.
- Privacy dashboard with session and lifetime blocked-request counts plus an estimated data-saved total.
- Local bookmarks, bookmark folders, browsing history, downloads, and saved credentials using Room.
- Incognito mode with cookies disabled, cache bypassed, and history saving skipped.
- Custom
cobrow://newtabstart page bundled in app assets. - Search suggestions from local history/bookmarks and selectable search engines.
- Reader mode with configurable serif, sans-serif, or monospace font.
- System, light, and dark theme modes with selectable accent colors.
- Per-site JavaScript, camera/microphone, and location preferences.
- Custom page-load and certificate warning handling.
- Floating scroll-to-top control for long pages.
- Find in page, text size controls, page info, view source, desktop mode, share, screenshot, save page as MHTML, and print/PDF export.
- Backup and restore for bookmarks and history through JSON import/export.
- App shortcuts for New Tab, New Incognito, and Bookmarks.
- Java 17
- Android Gradle Plugin 8.2.2
- Gradle 8.2 wrapper
- AndroidX AppCompat, Material Components, ConstraintLayout, SwipeRefreshLayout, WebKit
- Room persistence library
- Android WebView
- Android Studio with Android SDK 36 installed
- JDK 17
- An Android device or emulator running Android 5.0 or newer
Cobrow is prepared for Android 17 compatibility testing:
- The project targets the latest SDK installed in this workspace, API 36.
- Android 17 local-network and loopback permissions are declared for API 37 readiness.
- Local router/NAS/self-hosted addresses request local-network access at runtime on Android 17+.
- The app is resizable and does not lock orientation, matching Android 17 large-screen behavior.
- No native dynamic code loading is used by the app.
Clone the repository and build with the Gradle wrapper:
./gradlew assembleDebugInstall the debug build on a connected device:
./gradlew installDebugThe generated debug APK is written to:
app/build/outputs/apk/debug/app-debug.apk
app/src/main/java/com/cobrow/browser/
activities/ UI screens and browser actions
adapters/ RecyclerView and URL suggestion adapters
data/ Room entities, DAOs, and tab persistence
engine/ Ad blocker and credential manager
utils/ URL normalization helpers
views/ Custom WebView behavior
app/src/main/assets/
new_tab.html Built-in new tab page
filters/ Bundled ad-block filter lists
Cobrow is designed to keep user data local:
- History, bookmarks, downloads, tabs, and credentials are stored on the device.
- Third-party cookies are disabled by default in the browser WebView.
- Ad-block filters are bundled with the app.
- No analytics SDKs are included.
Saved credentials are stored in the app database. Treat debug builds and local device data accordingly.
- YouTube ad-response stripping, playback keepalive, and Android WebView background playback/PiP ideas were adapted from NouTube.
- Ad-blocking uses public filter list formats and bundled filter data from EasyList, EasyPrivacy, Peter Lowe, and uBlock Origin filter sources.
The repository intentionally keeps generated or local agent/tool files out of source control. Files such as .agents/, .gemini/, package-lock.json, and skills-lock.json are not required to build the Android app.