Files
brave-core/browser/widevine
cdesouza-chromium 5eb666f034 [CodeHealth] Run gn format on all files (#30448)
This PR is the run of `gn format` on all `gn` files. This is a
mechanical change done with:

```sh
git ls-files -- "*.gn" | xargs gn format
git ls-files -- "*.gni" | xargs gn format
```

This change has been motivated primarily by an improvement to the
formatters privided by `gn` correcting cases of redundant target naming,
i.e cases where `//foo:foo` is used, and should just be `//foo`.

For this particular `gn` change, see:
https://chromium.googlesource.com/chromium/src/+/c822490a82cdb6ad479159683a92858f7c6f0a58

Resolves https://github.com/brave/brave-browser/issues/48161
2025-08-05 18:08:10 +01:00
..

Widevine in Brave

Widevine is used to decrypt DRM-protected content, which is served from streaming services such as Netflix. Widevine is integrated in Chromium as a component.

Signature files (brave.exe.sig, chrome.dll.sig, ...)

Streaming services only offer high definition content to clients that are trusted. Widevine has mechanisms to ensure the integrity of the client. One of these mechanisms are .sig files. They prove to Widevine that the browser has not been tampered with. In order for Brave's users to see high-definition content, the browser must generate and ship with those .sig files.

Licensing

Brave's licensing agreement for Widevine forbids distribution of Widevine's binaries. This entails several workarounds, some of which are listed below.

Workarounds

Sequential component updates: SequentialUpdateChecker

Brave has its own components and thus uses its own component update server. This server also gets polled by the browser for Widevine. To comply with the licensing restriction described above, Brave's component update server responds with a redirect to Google's server in this case. This works as long as a single update check request only polls for Widevine, and not also for any other components. We have a special class, SequentialUpdateChecker, that makes sure that this is the case.