Skip to content

A light-weight, full-featured, web-browser built in C#. Features include: HTML5, CSS3, JS, HTML5 Video, WebGL 3D, WebAssembly, etc

License

Notifications You must be signed in to change notification settings

is-leeroy-jenkins/Baby

Repository files navigation

Baby

An open source web browser written in C# and released under the MIT license.

Features

  • HTML5, CSS3, JS, HTML5 Video, WebGL 3D, WebAssembly, etc
  • Tabbed browsing
  • Address bar (also opens Google)
  • Back, Forward, Stop, Refresh
  • Developer tools
  • Search bar (also highlights all instances)
  • Download manager
  • Custom error pages
  • Custom context menu
  • Easily add vendor-specific branding, buttons or hotkeys
  • View online & offline webpages

Hotkeys

Hotkeys Function
Ctrl+T Add a new tab
Ctrl+N Add a new window
Ctrl+W Close active tab
F5 Refresh active tab
F12 Open developer tools
Ctrl+Tab Switch to the next tab
Ctrl+Shift+Tab Switch to the previous tab
Ctrl+F Open search bar (Enter to find next, Esc to close)

System requirements

  • You need VC++ 2019 Runtime 32-bit and 64-bit versions

  • You will need .NET 6.

  • You need to install the version of VC++ Runtime that CEFSharp needs. Since we are using CefSharp 106, according to this we need the above versions

Getting started

Documentation

Code

  • Baby uses CefSharp 106 and is built on NET 6
  • Baby supports AnyCPU as well as x86/x64 specific builds
  • WebBrowser.xaml.cs - main web browser UI and related functionality
  • WebBrowser.xaml - main web browser UI and related functionality
  • Callbacks - various handlers that we have registered with CefSharp.
  • Delegates - fast JSON serializer/deserializer
  • Enumerations - Enumerations used by Baby.
  • Events - events for the interface.
  • Exceptions - custom exception classes.
  • Serializers - custom serialization classes.
  • Views - windows used in the application.
  • Themes - themes used on the application controls.
  • Controls - classes for the Baby user interface.
  • WebPages - optional custom web page templates
  • bin - Binaries are included in the bin folder due to the complex CefSharp setup required. Don't empty this folder.
  • bin/storage - HTML and JS required for downloads manager and custom error pages

Baby Overview

Apple.com

WebAssembly & WebGL

YouTube

Google Maps

Search Bar

Downloads Tab

Developer Tools

CefSharp Requirements

The binaries directory must contain these required dependencies:

  • libcef.dll (Chromium Embedded Framework Core library)
  • icudtl.dat (Unicode Support data)
  • chrome_elf.dll(Crash reporting library)
  • snapshot_blob.bin, v8_context_snapshot.bin (V8 snapshot data)
  • locales\en-US.pak, chrome_100_percent.pak, chrome_200_percent.pak, resources.pak,
  • d3dcompiler_47.dll
  • libEGL.dll
  • libGLESv2.dll

Whilst these are technically listed as optional, the browser is unlikely to function without these files.

  • CefSharp.Core.dll, CefSharp.dll
  • CefSharp.Core.Runtime.dll
  • CefSharp.BrowserSubprocess.exe
  • CefSharp.BrowserSubProcess.Core.dll

These are required CefSharp binaries that are the common core logic binaries of CefSharp (only 1 required).

  • CefSharp.WinForms.dll
  • CefSharp.Wpf.dll
  • CefSharp.OffScreen.dll

By default CEF has it's own log file, Debug.log which is located in your executing folder. e.g. bin

πŸ™ Acknowledgements

Bubba uses the following projects and libraries. Please consider supporting them as well (e.g., by starring their repositories):

Library Description
CefSharp.WPF.Core .NET (WPF/Windows Forms) bindings for the Chromium Embedded Framework
Epplus EPPlus-Excel spreadsheets for .NET
Google.Api.CustomSearchAPI.v1 Google APIs Client Library for working with Customsearch v1
LinqStatistics Linq extensions to calculate basic statistics.
System.Data.SqlServerCe Unofficial package of System.Data.SqlServerCe.dll if you need it as dependency.
Microsoft.Office.Interop.Outlook 15.0.4797.1004 This an assembly you can use for Outlook 2013/2016/2019 COM interop, generated and signed by Microsoft. This is entirely unsupported and there is no license since it is a repackaging of Office assemblies.
ModernWpfUI 0.9.6 Modern styles and controls for your WPF applications.
Newtonsoft.Json 13.0.3 Json.NET is a popular high-performance JSON framework for .NET
RestoreWindowPlace 2.1.0 Save and restore the place of the WPF window
SkiaSharp 2.88.9 SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library.
Syncfusion.Licensing 24.1.41 Syncfusion licensing is a .NET library for validating the registered Syncfusion license in an application at runtime.
System.Data.OleDb 9.0.0 This package implements a data provider for OLE DB data sources.
System.Data.SqlClient 4.9.0 The legacy .NET Data Provider for SQL Server.
MahApps.Metro UI toolkit for WPF applications
System.Data.SQLite.Core The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.
System.Speech 9.0.0 Provides APIs for speech recognition and synthesis built on the Microsoft Speech API in Windows.
ToastNotifications.Messages.Net6 1.0.4 Toast notifications for WPF allows you to create and display rich notifications in WPF applications.
Syncfusion.SfSkinManager.WPF 24.1.41 The Syncfusion WPF Skin Manageris a .NET UI library that contains the SfSkinManager class, which helps apply the built-in themes to the Syncfusion UI controls for WPF.
Syncfusion.Shared.Base 24.1.41 Syncfusion WinForms Shared Components
Syncfusion.Shared.WPF 24.1.41 Syncfusion WPF components
Syncfusion.Themes.FluentDark.WPF 24.1.41 The Syncfusion WPF Fluent Dark Theme for WPF contains the style resources to change the look and feel of a WPF application to be similar to the modern Windows UI style introduced in Windows 8 apps.
Syncfusion.Tools.WPF 24.1.41 This package contains WPF AutoComplete, WPF DockingManager, WPF Navigation Pane, WPF Hierarchy Navigator, WPF Range Slider, WPF Ribbon, WPF TabControl, WPF Wizard, and WPF Badge components for WPF application.
Syncfusion.UI.WPF.NET 24.1.41 Syncfusion WPF Controls is a library of 100+ WPF UI components and file formats to build modern WPF applications.

Code Signing

Baby uses free code signing provided by SignPath.io and a free code signing certificate from SignPath Foundation.

The binaries and installer are built on AppVeyor directly from the GitHub repository. Build artifacts are automatically sent to SignPath.io via webhook, where they are signed after manual approval by the maintainer. The signed binaries are then uploaded to the GitHub releases page.

Privacy Policy

This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.

Baby has integrated the following services for additional functions, which can be enabled or disabled at the first start (in the welcome dialog) or at any time in the settings:

  • api.github.com (Check for program updates)
  • ipify.org (Retrieve the public IP address used by the client)
  • ip-api.com (Retrieve network information such as geo location, ISP, DNS resolver used, etc. used by the client)

πŸ“ License

Baby is published under the MIT General Public License v3.

The licenses of the libraries used can be found here.

About

A light-weight, full-featured, web-browser built in C#. Features include: HTML5, CSS3, JS, HTML5 Video, WebGL 3D, WebAssembly, etc

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published