]> git.sesse.net Git - casparcg/blobdiff - dependencies64/cef/linux/include/capi/cef_web_plugin_capi.h
Upgrade CEF to 3.3029.1611.g44e39a8 / Chromium 58.0.3029.81.
[casparcg] / dependencies64 / cef / linux / include / capi / cef_web_plugin_capi.h
similarity index 62%
rename from dependencies64/cef/include/capi/cef_web_plugin_capi.h
rename to dependencies64/cef/linux/include/capi/cef_web_plugin_capi.h
index a9d089b77a27204b2222d4057ae95cc65474c3d3..c3dc6d999cf29f4351ec6054bdb2c1acfa994fd5 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2014 Marshall A. Greenblatt. All rights reserved.
+// Copyright (c) 2017 Marshall A. Greenblatt. All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are
 #pragma once
 
 #include "include/capi/cef_base_capi.h"
-#include "include/capi/cef_browser_capi.h"
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+struct _cef_browser_t;
 
 ///
 // Information about a specific web plugin.
@@ -53,7 +53,7 @@ typedef struct _cef_web_plugin_info_t {
   ///
   // Base structure.
   ///
-  cef_base_t base;
+  cef_base_ref_counted_t base;
 
   ///
   // Returns the plugin name (i.e. Flash).
@@ -93,7 +93,7 @@ typedef struct _cef_web_plugin_info_visitor_t {
   ///
   // Base structure.
   ///
-  cef_base_t base;
+  cef_base_ref_counted_t base;
 
   ///
   // Method that will be called once for each plugin. |count| is the 0-based
@@ -114,7 +114,7 @@ typedef struct _cef_web_plugin_unstable_callback_t {
   ///
   // Base structure.
   ///
-  cef_base_t base;
+  cef_base_ref_counted_t base;
 
   ///
   // Method that will be called for the requested plugin. |unstable| will be
@@ -127,6 +127,29 @@ typedef struct _cef_web_plugin_unstable_callback_t {
 } cef_web_plugin_unstable_callback_t;
 
 
+///
+// Implement this structure to receive notification when CDM registration is
+// complete. The functions of this structure will be called on the browser
+// process UI thread.
+///
+typedef struct _cef_register_cdm_callback_t {
+  ///
+  // Base structure.
+  ///
+  cef_base_ref_counted_t base;
+
+  ///
+  // Method that will be called when CDM registration is complete. |result| will
+  // be CEF_CDM_REGISTRATION_ERROR_NONE if registration completed successfully.
+  // Otherwise, |result| and |error_message| will contain additional information
+  // about why registration failed.
+  ///
+  void (CEF_CALLBACK *on_cdm_registration_complete)(
+      struct _cef_register_cdm_callback_t* self,
+      cef_cdm_registration_error_t result, const cef_string_t* error_message);
+} cef_register_cdm_callback_t;
+
+
 ///
 // Visit web plugin information. Can be called on any thread in the browser
 // process.
@@ -141,27 +164,6 @@ CEF_EXPORT void cef_visit_web_plugin_info(
 ///
 CEF_EXPORT void cef_refresh_web_plugins();
 
-///
-// Add a plugin path (directory + file). This change may not take affect until
-// after cef_refresh_web_plugins() is called. Can be called on any thread in the
-// browser process.
-///
-CEF_EXPORT void cef_add_web_plugin_path(const cef_string_t* path);
-
-///
-// Add a plugin directory. This change may not take affect until after
-// cef_refresh_web_plugins() is called. Can be called on any thread in the
-// browser process.
-///
-CEF_EXPORT void cef_add_web_plugin_directory(const cef_string_t* dir);
-
-///
-// Remove a plugin path (directory + file). This change may not take affect
-// until after cef_refresh_web_plugins() is called. Can be called on any thread
-// in the browser process.
-///
-CEF_EXPORT void cef_remove_web_plugin_path(const cef_string_t* path);
-
 ///
 // Unregister an internal plugin. This may be undone the next time
 // cef_refresh_web_plugins() is called. Can be called on any thread in the
@@ -169,12 +171,6 @@ CEF_EXPORT void cef_remove_web_plugin_path(const cef_string_t* path);
 ///
 CEF_EXPORT void cef_unregister_internal_web_plugin(const cef_string_t* path);
 
-///
-// Force a plugin to shutdown. Can be called on any thread in the browser
-// process but will be executed on the IO thread.
-///
-CEF_EXPORT void cef_force_web_plugin_shutdown(const cef_string_t* path);
-
 ///
 // Register a plugin crash. Can be called on any thread in the browser process
 // but will be executed on the IO thread.
@@ -188,6 +184,54 @@ CEF_EXPORT void cef_register_web_plugin_crash(const cef_string_t* path);
 CEF_EXPORT void cef_is_web_plugin_unstable(const cef_string_t* path,
     cef_web_plugin_unstable_callback_t* callback);
 
+///
+// Register the Widevine CDM plugin.
+//
+// The client application is responsible for downloading an appropriate
+// platform-specific CDM binary distribution from Google, extracting the
+// contents, and building the required directory structure on the local machine.
+// The cef_browser_host_t::StartDownload function and CefZipArchive structure
+// can be used to implement this functionality in CEF. Contact Google via
+// https://www.widevine.com/contact.html for details on CDM download.
+//
+// |path| is a directory that must contain the following files:
+//   1. manifest.json file from the CDM binary distribution (see below).
+//   2. widevinecdm file from the CDM binary distribution (e.g.
+//      widevinecdm.dll on on Windows, libwidevinecdm.dylib on OS X,
+//      libwidevinecdm.so on Linux).
+//   3. widevidecdmadapter file from the CEF binary distribution (e.g.
+//      widevinecdmadapter.dll on Windows, widevinecdmadapter.plugin on OS X,
+//      libwidevinecdmadapter.so on Linux).
+//
+// If any of these files are missing or if the manifest file has incorrect
+// contents the registration will fail and |callback| will receive a |result|
+// value of CEF_CDM_REGISTRATION_ERROR_INCORRECT_CONTENTS.
+//
+// The manifest.json file must contain the following keys:
+//   A. "os": Supported OS (e.g. "mac", "win" or "linux").
+//   B. "arch": Supported architecture (e.g. "ia32" or "x64").
+//   C. "x-cdm-module-versions": Module API version (e.g. "4").
+//   D. "x-cdm-interface-versions": Interface API version (e.g. "8").
+//   E. "x-cdm-host-versions": Host API version (e.g. "8").
+//   F. "version": CDM version (e.g. "1.4.8.903").
+//   G. "x-cdm-codecs": List of supported codecs (e.g. "vp8,vp9.0,avc1").
+//
+// A through E are used to verify compatibility with the current Chromium
+// version. If the CDM is not compatible the registration will fail and
+// |callback| will receive a |result| value of
+// CEF_CDM_REGISTRATION_ERROR_INCOMPATIBLE.
+//
+// |callback| will be executed asynchronously once registration is complete.
+//
+// On Linux this function must be called before cef_initialize() and the
+// registration cannot be changed during runtime. If registration is not
+// supported at the time that cef_register_widevine_cdm() is called then
+// |callback| will receive a |result| value of
+// CEF_CDM_REGISTRATION_ERROR_NOT_SUPPORTED.
+///
+CEF_EXPORT void cef_register_widevine_cdm(const cef_string_t* path,
+    cef_register_cdm_callback_t* callback);
+
 #ifdef __cplusplus
 }
 #endif