widevine: Use component updater with the Alloy runtime (fixes issue #3149)

Widevine CDM binaries will be downloaded on supported platforms shortly after
application startup. Widevine support will then become available within a few
seconds after successful installation on Windows or after the next application
restart on other platforms. The CDM files will be downloaded to a "WidevineCdm"
directory inside the `CefSettings.user_data_path` directory.

Pass the `--disable-component-update` command-line flag to disable Widevine
download and installation. Pass the `--component-updater=fast-update` command-
line flag to force Widevine download immediately after application startup.

See the related issue for additional usage details.
This commit is contained in:
Marshall Greenblatt
2021-08-09 17:18:43 -04:00
parent eaf581e544
commit 240b869db5
45 changed files with 201 additions and 1459 deletions

View File

@@ -1,63 +0,0 @@
// Copyright (c) 2021 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool. If making changes by
// hand only do so within the body of existing method and function
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=cf53fb30f47eeda9354fa60731d554ea757a47ac$
//
#include "libcef_dll/ctocpp/register_cdm_callback_ctocpp.h"
#include "libcef_dll/shutdown_checker.h"
// VIRTUAL METHODS - Body may be edited by hand.
NO_SANITIZE("cfi-icall")
void CefRegisterCdmCallbackCToCpp::OnCdmRegistrationComplete(
cef_cdm_registration_error_t result,
const CefString& error_message) {
shutdown_checker::AssertNotShutdown();
cef_register_cdm_callback_t* _struct = GetStruct();
if (CEF_MEMBER_MISSING(_struct, on_cdm_registration_complete))
return;
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
// Unverified params: error_message
// Execute
_struct->on_cdm_registration_complete(_struct, result,
error_message.GetStruct());
}
// CONSTRUCTOR - Do not edit by hand.
CefRegisterCdmCallbackCToCpp::CefRegisterCdmCallbackCToCpp() {}
// DESTRUCTOR - Do not edit by hand.
CefRegisterCdmCallbackCToCpp::~CefRegisterCdmCallbackCToCpp() {
shutdown_checker::AssertNotShutdown();
}
template <>
cef_register_cdm_callback_t* CefCToCppRefCounted<
CefRegisterCdmCallbackCToCpp,
CefRegisterCdmCallback,
cef_register_cdm_callback_t>::UnwrapDerived(CefWrapperType type,
CefRegisterCdmCallback* c) {
NOTREACHED() << "Unexpected class type: " << type;
return nullptr;
}
template <>
CefWrapperType CefCToCppRefCounted<CefRegisterCdmCallbackCToCpp,
CefRegisterCdmCallback,
cef_register_cdm_callback_t>::kWrapperType =
WT_REGISTER_CDM_CALLBACK;

View File

@@ -1,44 +0,0 @@
// Copyright (c) 2021 The Chromium Embedded Framework Authors. All rights
// reserved. Use of this source code is governed by a BSD-style license that
// can be found in the LICENSE file.
//
// ---------------------------------------------------------------------------
//
// This file was generated by the CEF translator tool. If making changes by
// hand only do so within the body of existing method and function
// implementations. See the translator.README.txt file in the tools directory
// for more information.
//
// $hash=202e9ab7dd5d4dc53daa2f716e0dd74c623ecd8c$
//
#ifndef CEF_LIBCEF_DLL_CTOCPP_REGISTER_CDM_CALLBACK_CTOCPP_H_
#define CEF_LIBCEF_DLL_CTOCPP_REGISTER_CDM_CALLBACK_CTOCPP_H_
#pragma once
#if !defined(BUILDING_CEF_SHARED)
#error This file can be included DLL-side only
#endif
#include "include/capi/cef_browser_capi.h"
#include "include/capi/cef_web_plugin_capi.h"
#include "include/cef_browser.h"
#include "include/cef_web_plugin.h"
#include "libcef_dll/ctocpp/ctocpp_ref_counted.h"
// Wrap a C structure with a C++ class.
// This class may be instantiated and accessed DLL-side only.
class CefRegisterCdmCallbackCToCpp
: public CefCToCppRefCounted<CefRegisterCdmCallbackCToCpp,
CefRegisterCdmCallback,
cef_register_cdm_callback_t> {
public:
CefRegisterCdmCallbackCToCpp();
virtual ~CefRegisterCdmCallbackCToCpp();
// CefRegisterCdmCallback methods.
void OnCdmRegistrationComplete(cef_cdm_registration_error_t result,
const CefString& error_message) override;
};
#endif // CEF_LIBCEF_DLL_CTOCPP_REGISTER_CDM_CALLBACK_CTOCPP_H_