Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

logo

AngleSharp.Browser

CI GitHub Tag NuGet Count Issues Open CLA Assistant

AngleSharp.Browser brings everything from the AngleSharp ecosystem together in a set of packages that can either be a rendering (visible) browser; in form of a re-usable component.

Vision showing the AngleSharp repository on GitHub

Packages

Package Description
AngleSharp.Browser A UI-agnostic BrowserEngine wiring up AngleSharp, AngleSharp.Css, AngleSharp.Js, AngleSharp.Io and AngleSharp.Renderer. It navigates (with back / forward history), paints the current document and translates pointer, wheel and keyboard input into DOM interactions (hover, links, forms, focus, text entry, scrolling).
AngleSharp.Browser.Avalonia A ready to use BrowserView control for showing web pages in Avalonia applications.

The repository also contains Vision, a sample browser showing how the packages are used.

Rendering quality and speed are bound by AngleSharp.Renderer, which is still an early layout engine.

Quick Start

In an Avalonia Application

dotnet add package AngleSharp.Browser.Avalonia
<Window xmlns="https://github.com/avaloniaui"
        xmlns:browser="using:AngleSharp.Browser.Avalonia">
    <browser:BrowserView Source="https://example.org" />
</Window>

Without Any UI

dotnet add package AngleSharp.Browser
using var engine = new BrowserEngine(new BrowserOptions
{
    ProfileDirectory = null, // keep everything in memory
    ViewportWidth = 1280,
    ViewportHeight = 800,
});

await engine.NavigateAsync("https://example.org");
await engine.ClickAsync(40, 390);
var image = await engine.PaintAsync();
await File.WriteAllBytesAsync("page.png", image!.Data);

Documentation

The docs cover the engine, rendering, input, configuration, the Avalonia control, and have a collection of examples.

Vision

Vision is the sample browser of this repository: a proof of concept, not a product. Run it (optionally with a start address) from a clone:

dotnet run --project src/Vision -- https://example.org

Cookies, web storage and the HTTP cache are persisted in a profile directory (by default in the local application data folder). Use --profile <directory> to pick another one or --in-memory to persist nothing.

The diagnostics (F12) show what a page did: errors with their stack traces, the console output, a waterfall of the requests and the timings of the rendering. They are HTML and CSS rendered by a second BrowserView, like the rest of Vision's own UI:

Vision showing Wikipedia with the requests in the diagnostics panel

The inspector (Ctrl+Shift+I) opens in the same place and shows the page as AngleSharp sees it right now: its DOM, its CSSOM and its render tree, with the matched rules, computed style and box of any element:

Vision showing GitHub with the DOM in the inspector panel

Settings About
The settings of Vision The about window of Vision in dark mode

Help Us Render the Web

Every page that looks wrong points at something we can improve, and Vision is the easiest way to find those pages. Run it with a website you care about:

dotnet run --project src/Vision -- https://your-favorite-website.example

If the page does not render correctly, then please do one of the following:

  1. Report it. Open an issue with the address, a screenshot, and what you expected to see.
  2. Even better, fix it. Point your coding agent at the page and let it find the cause, then send a pull request to the project responsible.

The diagnostics (F12) show the page's failed requests, errors and console output, and the inspector (Ctrl+Shift+I) shows the DOM, CSSOM and render tree AngleSharp ended up with, which is a good place to start. The fix may belong to any part of the ecosystem:

Project Responsible for
AngleSharp HTML parsing and the DOM
AngleSharp.Css CSS parsing, the cascade and computed styles
AngleSharp.Xml XML parsing and validation
AngleSharp.Renderer Layout and painting
AngleSharp.Js Running scripts and exposing the DOM to them
AngleSharp.Io Requests and other I/O
AngleSharp.Browser Navigation, input, scrolling and Vision itself

Not sure which one it is? Open the issue here and we will help to find out. A small reproduction and a test make a pull request much easier to review, whoever (or whatever) wrote it. See the contributing guide for the details.

.NET Foundation

This project is supported by the .NET Foundation.

License

AngleSharp.Browser is released using the MIT license. For more information see the license file.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages