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

Unified Diff: content/ppapi_plugin/ppapi_thread.cc

Issue 2582463003: media: Verify CDM Host files (Closed)
Patch Set: Created 4 years 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
Index: content/ppapi_plugin/ppapi_thread.cc
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc
index 85b2c6cb1995e66e9669e38a5b6e769f717a3f9c..1a2781258e0a0da88861463c8adc1a9292e1dc7f 100644
--- a/content/ppapi_plugin/ppapi_thread.cc
+++ b/content/ppapi_plugin/ppapi_thread.cc
@@ -29,6 +29,7 @@
#include "content/child/browser_font_resource_trusted.h"
#include "content/child/child_process.h"
#include "content/common/child_process_messages.h"
+#include "content/common/media/cdm_host_files.h"
#include "content/ppapi_plugin/broker_process_dispatcher.h"
#include "content/ppapi_plugin/plugin_process_dispatcher.h"
#include "content/ppapi_plugin/ppapi_blink_platform_impl.h"
@@ -354,6 +355,17 @@ void PpapiThread::OnLoadPlugin(const base::FilePath& path,
}
}
+ std::unique_ptr<CdmHostFiles> cdm_host_files;
xhwang 2016/12/16 01:23:03 Use a local instance such that if we return early
+// Open CDM host files before the process is sandboxed.
+#if defined(OS_WIN) || defined(OS_MACOSX)
+ if (!is_broker_ && IsCdm(path))
+ cdm_host_files = OpenCdmHostFiles(path);
Greg K 2016/12/16 22:10:41 Am I missing something? Where is this defined?
xhwang 2016/12/16 22:30:15 oops, this is some old code that I didn't update.
Greg K 2016/12/16 22:34:41 Thanks, I'll take a look now.
xhwang 2017/01/18 06:03:59 Done.
+#elif defined(OS_LINUX)
+ cdm_host_files = CdmHostFiles::TakeGlobalInstance();
+ if (is_broker_ || !IsCdm(path))
+ cdm_host_files.reset(); // Close all opened files.
+#endif
+
#if defined(OS_WIN)
// If code subsequently tries to exit using abort(), force a crash (since
// otherwise these would be silent terminations and fly under the radar).
@@ -440,6 +452,11 @@ void PpapiThread::OnLoadPlugin(const base::FilePath& path,
ReportLoadResult(path, INIT_FAILED);
return;
}
+ // Now the process is sandboxed. Verify CDM host.
+ if (cdm_host_files) {
+ DCHECK(IsCdm(path));
+ cdm_host_files->VerifyFiles(library.get(), path);
xhwang 2016/12/16 01:08:27 tinskip / hmchen: This will be called right after
Haoming Chen 2017/01/04 22:23:39 Acknowledged.
Haoming Chen 2017/01/04 22:23:39 The interface name on the design doc (https://docs
xhwang 2017/01/12 20:15:02 Nobody would be able to understand what VMP is. So
+ }
}
// Initialization succeeded, so keep the plugin DLL loaded.

Powered by Google App Engine
This is Rietveld 408576698