mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	- Configuration of OSR VSync interval is currently missing (issue #2517) - Rename VERSION to VERSION.in to fix libc++ compile error (issue #2518)
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright 2016 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.
 | |
| 
 | |
| #ifndef CEF_LIBCEF_COMMON_WIDEVINE_LOADER_H_
 | |
| #define CEF_LIBCEF_COMMON_WIDEVINE_LOADER_H_
 | |
| #pragma once
 | |
| 
 | |
| #include "build/build_config.h"
 | |
| #include "media/media_buildflags.h"
 | |
| #include "third_party/widevine/cdm/buildflags.h"
 | |
| 
 | |
| #if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)
 | |
| 
 | |
| #include <vector>
 | |
| 
 | |
| #include "include/cef_web_plugin.h"
 | |
| 
 | |
| #include "base/lazy_instance.h"
 | |
| 
 | |
| namespace content {
 | |
| struct CdmInfo;
 | |
| }
 | |
| 
 | |
| namespace media {
 | |
| struct CdmHostFilePath;
 | |
| }
 | |
| 
 | |
| class CefWidevineLoader {
 | |
|  public:
 | |
|   // Returns the singleton instance of this object.
 | |
|   static CefWidevineLoader* GetInstance();
 | |
| 
 | |
|   // Load the Widevine CDM. May be called before or after context creation. See
 | |
|   // comments in cef_web_plugin.h.
 | |
|   void LoadWidevineCdm(const base::FilePath& path,
 | |
|                        CefRefPtr<CefRegisterCdmCallback> callback);
 | |
| 
 | |
|   // Plugin registration is triggered here if LoadWidevineCdm() was called
 | |
|   // before context creation.
 | |
|   void OnContextInitialized();
 | |
| 
 | |
| #if defined(OS_LINUX)
 | |
|   // The zygote process which is used when the sandbox is enabled on Linux
 | |
|   // requires early loading of CDM modules. Other processes will receive
 | |
|   // load notification in the usual way.
 | |
|   // Called from CefContentClient::AddContentDecryptionModules.
 | |
|   static void AddContentDecryptionModules(
 | |
|       std::vector<content::CdmInfo>* cdms,
 | |
|       std::vector<media::CdmHostFilePath>* cdm_host_file_paths);
 | |
| 
 | |
|   const base::FilePath& path() { return path_; }
 | |
| #endif
 | |
| 
 | |
|  private:
 | |
|   friend struct base::LazyInstanceTraitsBase<CefWidevineLoader>;
 | |
| 
 | |
|   // Members are only accessed before context initialization or on the UI
 | |
|   // thread.
 | |
|   bool load_pending_ = false;
 | |
|   base::FilePath path_;
 | |
|   CefRefPtr<CefRegisterCdmCallback> callback_;
 | |
| 
 | |
|   CefWidevineLoader();
 | |
|   ~CefWidevineLoader();
 | |
| };
 | |
| 
 | |
| #endif  // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)
 | |
| 
 | |
| #endif  // CEF_LIBCEF_COMMON_WIDEVINE_LOADER_H_
 |