Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(499)

Unified Diff: content_decryption_module_broker.h

Issue 2446413003: Add cdm::ContentDecryptionModule_9 (Closed)
Patch Set: RejectionReason Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« content_decryption_module.h ('K') | « content_decryption_module.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content_decryption_module_broker.h
diff --git a/content_decryption_module_broker.h b/content_decryption_module_broker.h
new file mode 100644
index 0000000000000000000000000000000000000000..eddce28c5f953556403a5eb0821a6c345ca4ef87
--- /dev/null
+++ b/content_decryption_module_broker.h
@@ -0,0 +1,62 @@
+// Copyright 2016 The Chromium 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 CDM_CONTENT_DECRYPTION_MODULE_BROKER_H_
+#define CDM_CONTENT_DECRYPTION_MODULE_BROKER_H_
+
+#if defined(_MSC_VER)
+typedef unsigned char uint8_t;
+typedef unsigned int uint32_t;
+#else
+#include <stdint.h>
+#endif
+
+// Define CDM_API so that functionality implemented by the CDM module
+// can be exported to consumers.
+#if defined(WIN32)
+
+#if defined(CDM_IMPLEMENTATION)
+#define CDM_API __declspec(dllexport)
+#else
+#define CDM_API __declspec(dllimport)
+#endif // defined(CDM_IMPLEMENTATION)
+
+#else // defined(WIN32)
+#define CDM_API __attribute__((visibility("default")))
+#endif // defined(WIN32)
+
+// Define CdmFilePathCharType to be the type of characters passed when
+// specifying file paths to ProcessHostChallenge()
+#if defined(WIN32)
+// On Windows, for Unicode-aware applications, native pathnames are wchar_t
+// arrays.
+typedef std::wstring::value_type CdmFilePathCharType;
+#else
+// On other platforms, native pathnames are char arrays.
+typedef std::string::value_type CdmFilePathCharType;
xhwang 2016/10/31 22:43:47 Can you use wchar_t and char directly? It's a bit
xhwang 2016/10/31 22:43:47 CdmFilePath is a bit misleading; some paths are no
jrummell 2016/11/02 20:10:03 Done.
jrummell 2016/11/02 20:10:03 Done.
+#endif // defined(OS_WIN)
xhwang 2016/10/31 22:43:47 s/OS_WIN/WIN32?
jrummell 2016/11/02 20:10:03 Done.
+
+extern "C" {
+// Returns the |response| to ProcessHostChallenge(). If the challenge fails,
+// |response| = nullptr and |response_size| = 0. |context| must be the value
+// passed in to ProcessHostChallenge().
+typedef void (*HostResponseFunc)(const uint8_t* response,
+ uint32_t response_size,
+ void* context);
+
+// This method receives the |challenge| from the CDM as well as a list of
+// additional binary file paths created by the host and a callback function.
+// |response_func| is called when the challenge has been processed, passing
+// |context| along with the desired response data.
+CDM_API void ProcessHostChallenge(const uint8_t* challenge,
+ uint32_t challenge_size,
+ const CdmFilePathCharType** binary_file_paths,
+ uint32_t num_binary_file_paths,
+ HostResponseFunc response_func,
+ void* context);
+}
+
+#undef CDM_API
+
+#endif // CDM_CONTENT_DECRYPTION_MODULE_BROKER_H_
« content_decryption_module.h ('K') | « content_decryption_module.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698