Repository tour
Every folder has a README.md listing its files; this page is the map above them.
Top level#
| Path | What's inside |
|---|---|
jbrowser/ |
The application package (below) |
main.py |
Entry point for python main.py and the PyInstaller build |
assets/ |
The icon, the logo and the welcome-screen sounds bundled with the app |
installer/ |
JBrowser.iss, the Inno Setup script for JBrowser-Setup-<version>.exe |
tools/ |
Scripts for dependencies, versions, icons, builds and releases |
docs/ |
Guides in Markdown: features, architecture, building, releasing, updates |
JBrowser.spec |
The PyInstaller recipe |
requirements*.txt |
Runtime packages, build tools |
.github/ |
CI, issue templates and the pull-request template |
The jbrowser package#
The package is split into layers; each only imports the layers below it (architecture overview).
| Folder | Layer | What's inside |
|---|---|---|
jbrowser/*.py |
Application | app.py (start-up and shutdown), context.py (the AppContext container), paths.py (file locations), single_instance.py |
core/ |
Core | No UI and no web engine: settings, the command registry, motion, fuzzy matching, URL helpers, atomic JSON files, background downloads |
models/ |
Models | BrowserState, Space, Tab and the per-frame update pipeline |
services/ |
Services | Features without widgets: history, bookmarks, the password vault, privacy, threats, network, downloads, session, updates and more |
engine/ |
Web engine | Qt WebEngine: per-space profiles, tab controllers, pages, the lifecycle manager and injected JavaScript |
platform/ |
Platform | win.py: DWM backdrops, the custom window frame, DPAPI, accent colour |
ui/ |
User interface | Every widget: the window, title bar, sidebar, canvas, cards, Lazy Toolbar and welcome |
ui/dialogs/ |
User interface | Settings and the tool windows: history, bookmarks, passwords, downloads, cookies and more |
Finding code for something you can see#
- A button or menu item: search
ui/actions.pyfor its text. The command's handler usually calls a method onBrowserControllerinui/controller.py. - A setting: search for its key (for example
"privacy.gpc"); the settings reference lists where each key is read. - Something a web page does differently: start at
engine/tab_controller.pyorservices/privacy.py. - A class or function: use the search box at the top, which also searches the Python API.