Chromium change: https://source.chromium.org/chromium/chromium/src/+/62be9fed82911e8e37c4ef6a926590203fef434a Reland "[permissions] Plumb PromptOptions through PermissionRequestManager" This is a reland of commit 7688ee13bc24db46228f4873ecb27f0e9263a315. The cause of the failing test was actually tangential to this CL and is resolved by https://crrev.com/c/7484754. Original change's description: > [permissions] Plumb PromptOptions through PermissionRequestManager > > This is the last of a series of CLs that remove PromptOptions from > PermissionRequest and instead plumb it through the code, see > https://crbug.com/450752868 for more context. > > This CL removes prompt_options from the PermissionRequest and instead > modifies the various methods Accept, AcceptThisTime, Deny, Dismiss and > Ignore of PermissionRequestManager to get a PromptOptions parameter. > > Bug: 450752868, 469397053 > Change-Id: I145fa50b69596c744be4751d1b8d441573db0379 > Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7415427 > Reviewed-by: Andy Paicu <andypaicu@chromium.org> > Reviewed-by: Marc Treib <treib@chromium.org> > Commit-Queue: Antonio Sartori <antoniosartori@chromium.org> > Cr-Commit-Position: refs/heads/main@{#1570263} Bug: 450752868, 469397053 Change-Id: Ibf876e0dbc2cda765b9ed8237faff441874ce360 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7486896
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.