13609: Added an Open in IPFS option for domains that have a TXT record that is prefixed with dnslink=
13611: Add a setting to automatically redirect for DNSLink
Resolves: https://github.com/brave/brave-browser/issues/12906
Sidebar component manages persisted items list in pref store.
SidebarService does it and store items list is shared per profile.
In chrome layer, sidebar is implemented with MVC model.
They are SidebarController, SidebarModel and Sidebar and many views implementations.
Each browser window has its own MVC. So, BraveBrowser(subclass of Browser) owns them.
SidebarModel manages each item's runtime state and it observes SidebarService to get
notification about item add or delete.
This change only implements initial native sidebar UI.
Sidebar feature is disabled by default and can enable via brave://flags only on nightly/local build.
During the runtime, sidebar can be toggled via settings.
Sidebar webviews don't work properly yet because their WebContentsDelegate is not set properly.
Implementing WebContentsDelegate will be done as a separate task.
As part of upstream bug 1134547[1], the ResourceIdentifier that Brave
Shields relied on so far has been completely removed[2], so we need to
adapt our code not to rely on it anymore so that we can keep building
Brave correctly on the latest dev channel release of Chromium 88.
This patch implements the first step to adapt Brave to this new
scenario, by moving into using Brave-specific values of the
ContentSettingsType enumeration instead of using the PLUGINS
type plus a ResourceIdentifier as we did before.
Note that this patch adds a "bs_" prefix to all the BraveShields
constants, to avoid collisions with the COOKIES and JAVASCRIPT
upstream content types. Added prefix to all constants for
consistency + update TS code.
Note that the goal of this change is simply to keep Brave building,
running and passing the tests so that we can continue working on the
rebase. Further work will be still needed in follow-up patches to
fully migrate the code base to a post-Flash world by changing those
bits that don't make sense anymore, and simplifying things as much
as possible.
[1] https://crbug.com/1134547
[2] https://crrev.com/c/2500161