{"id":22305005,"url":"https://github.com/gan3xh/browserfx","last_synced_at":"2026-04-14T00:03:43.038Z","repository":{"id":262475858,"uuid":"887336499","full_name":"gan3xh/BrowserFX","owner":"gan3xh","description":"BrowserFX is a feature-rich, high-performance web browser application built using the JavaFX framework. Designed with both functionality and extensibility in mind, BrowserFX offers a modern browsing experience with a focus on user productivity and customization.","archived":false,"fork":false,"pushed_at":"2024-11-28T17:33:35.000Z","size":8819,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T00:44:38.001Z","etag":null,"topics":["java","javafx","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gan3xh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-12T15:12:51.000Z","updated_at":"2025-02-12T06:50:35.000Z","dependencies_parsed_at":"2025-01-30T21:38:28.881Z","dependency_job_id":null,"html_url":"https://github.com/gan3xh/BrowserFX","commit_stats":null,"previous_names":["gan3xh/browserfx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gan3xh%2FBrowserFX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gan3xh%2FBrowserFX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gan3xh%2FBrowserFX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gan3xh%2FBrowserFX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gan3xh","download_url":"https://codeload.github.com/gan3xh/BrowserFX/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245568580,"owners_count":20636803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","javafx","spring"],"created_at":"2024-12-03T19:09:21.481Z","updated_at":"2026-04-14T00:03:43.010Z","avatar_url":"https://github.com/gan3xh.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrowserFX: JavaFX-based Web Browser\n\nBrowserFX is a feature-rich, high-performance web browser application built using the JavaFX framework. Designed with both functionality and extensibility in mind, BrowserFX offers a modern browsing experience with a focus on user productivity and customization.\n\n# Documentation\n\nFor more detailed information about the BrowserFX project, including the design, implementation, and evaluation, please refer to the [Project Documentation](Ganesh_Kumar_projectreport_github.pdf).\n\n## Motivation and Purpose\n\n1. **User Privacy Focus**: The development of BrowserFX was driven by a deep concern for user anonymity in an era of pervasive data gathering, aiming to enhance privacy and security in web browsing.\n\n2. **Market Need**: Observations of significant user tracking in popular browsers revealed a strong demand for a privacy-respecting browser that meets essential browsing requirements, particularly for sensitive activities like net banking.\n\n3. **User-Centric Design**: BrowserFX empowers users to take back control over their online identities and safeguard their sensitive information from unauthorized access.\n\n4. **Resource Efficiency**: Designed as a lightweight and efficient alternative to traditional browsers, BrowserFX reduces resource consumption, making it ideal for users with limited device processing power.\n\n5. **Simplicity \u0026 Accessibility**: The browser provides a straightforward, secure, and convenient browsing experience without compromising on privacy or usability, especially in sensitive areas.\n\n\n## Features\n\nBrowserFX provides the following core features:\n\n1. **Web Page Rendering**: Leveraging JavaFX's powerful `WebView` and `WebEngine` classes, BrowserFX delivers accurate and responsive rendering of HTML, CSS, and JavaScript content.\n2. **Navigation Controls**: Users can navigate the web using the traditional back, forward, and refresh buttons, as well as a fully functional address bar for direct URL input.\n3. **Tab Management**: The application supports multiple open tabs, allowing users to easily switch between web pages and maintain their browsing context.\n4. **Download Manager**: BrowserFX includes a robust download manager that enables users to initiate, monitor, pause, resume, and cancel file downloads. Real-time progress tracking and download speed metrics are provided.\n5. **Customizable UI**: The user interface of BrowserFX is designed to be easily customizable, allowing users to tailor the appearance and layout to their preferences.\n\n## Installation\n\nTo run BrowserFX, you'll need to have Java 8 or a later version installed on your system. Follow these steps to get started:\n\n1. Download the BrowserFX.jar file from the project repository.\n2. Open a terminal or command prompt and navigate to the directory where you downloaded the JAR file.\n3. Run the application using the following command:\n   ```\n   java -jar BrowserFX.jar\n   ```\n\nAlternatively, you can double-click the BrowserFX.jar file to launch the application directly.\n\n## Usage\n\n### Main Interface\n\nThe main interface of BrowserFX consists of the following key elements:\n\n![Screenshot 2024-10-16 221210](https://github.com/user-attachments/assets/2afc1101-b978-4327-a2ec-e872a9b77c91)\n\n\n![Screenshot 2024-10-16 220932](https://github.com/user-attachments/assets/ed74bb57-6847-48f0-96f1-de19e7ab9c40)\n\n\n1. **Tab Bar**: Allows users to switch between multiple open tabs, managed by the `WebBrowserApp` class.\n2. **Navigation Controls**: The `WebPageView` class handles the back, forward, and refresh buttons, as well as the address bar for entering URLs.\n3. **Web Content**: The `WebPageView` class, along with the `WebView` and `WebEngine` components from JavaFX, render web pages in the main content area.\n4. **Download Manager**: The `FileRetrievalManager` class provides access to the download management functionality.\n\n### Download Manager\n\nThe download manager interface, implemented in the `FileRetrievalManager` class, offers comprehensive control over file downloads:\n\n![Screenshot 2024-10-16 220319](https://github.com/user-attachments/assets/624ac29c-de10-4a19-8510-d0de8209bd9f)\n\n\n![Screenshot 2024-10-16 214745](https://github.com/user-attachments/assets/2244afdd-0379-4b23-9b23-2eee4a49c474)\n\n\n1. **Download List**: Displays active and completed downloads, managed by the `FileRetrievalTableModel` class.\n2. **Progress Bars**: The `ProgressRenderer` class provides the custom table cell renderer for visualizing download progress.\n3. **Control Buttons**: Allow users to pause, resume, cancel, and clear downloads, handled by the `FileRetrievalManager`.\n\n## Architecture\n\nBrowserFX follows a modular and extensible architecture, making it easier to maintain, test, and expand the application in the future.\n\n### Key Components\n\nThe main components of the BrowserFX application are:\n\n- `BrowserLauncher`: The entry point of the application, responsible for launching the `WebBrowserApp`.\n- `WebBrowserApp`: The main JavaFX application class, handling the creation of the user interface and managing the overall application state.\n- `WebPageView`: Encapsulates the `WebView` and `WebEngine` for rendering web pages and handling user interactions.\n- `FileRetrievalManager`: Manages the download functionality, including the `FileRetriever` class for handling individual file downloads.\n- `FileRetrievalTableModel`: Provides the data model for the download manager's table view.\n- `ProgressRenderer`: Implements a custom table cell renderer for displaying download progress.\n\n### Modular Design\n\nThe modular design of BrowserFX allows for easier maintenance, testing, and potential future expansions. Each component is responsible for a specific set of functionalities, promoting code reusability and maintainability. For example, the `WebPageView` class can be easily modified or replaced without affecting the rest of the application, while the `FileRetrievalManager` can be extended to support additional download features.\n\n## Performance\n\nBrowserFX has been optimized for performance, delivering a smooth and responsive browsing experience.\n\n### Page Load Times\n\nExtensive testing has shown that BrowserFX's page load times are comparable to leading web browsers, with average load times ranging from 1.2 to 3.1 seconds for popular websites.\n\n### Memory Management\n\nThe application's memory usage is carefully managed, with gradual increases in memory consumption corresponding to the number of open tabs and the complexity of the loaded web pages. This ensures stable performance even during prolonged browsing sessions.\n\n### Download Speeds\n\nThe custom `FileRetriever` class, used by the `FileRetrievalManager`, provides consistent download speeds across various file sizes, with minimal impact on the system's resources.\n\n## Extensibility\n\nBrowserFX's modular design and well-documented codebase make it easy to extend the application's functionality. Developers can integrate custom components, such as unique UI elements, additional browsing features, or specialized data visualizations, by leveraging the existing architecture.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgan3xh%2Fbrowserfx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgan3xh%2Fbrowserfx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgan3xh%2Fbrowserfx/lists"}