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

Side by Side Diff: content/ppapi_plugin/ppapi_thread.cc

Issue 2849163003: media: Move the callsite of CdmHostFiles::InitVerification() (Closed)
Patch Set: Created 3 years, 7 months 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/ppapi_plugin/ppapi_thread.h" 5 #include "content/ppapi_plugin/ppapi_thread.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <limits> 9 #include <limits>
10 10
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 383
384 #if defined(OS_WIN) || defined(OS_MACOSX) 384 #if defined(OS_WIN) || defined(OS_MACOSX)
385 // Open CDM host files before the process is sandboxed. 385 // Open CDM host files before the process is sandboxed.
386 if (!is_broker_ && IsCdm(path)) 386 if (!is_broker_ && IsCdm(path))
387 cdm_host_files = CdmHostFiles::Create(path); 387 cdm_host_files = CdmHostFiles::Create(path);
388 #elif defined(OS_LINUX) 388 #elif defined(OS_LINUX)
389 cdm_host_files = CdmHostFiles::TakeGlobalInstance(); 389 cdm_host_files = CdmHostFiles::TakeGlobalInstance();
390 if (is_broker_ || !IsCdm(path)) 390 if (is_broker_ || !IsCdm(path))
391 cdm_host_files.reset(); // Close all opened files. 391 cdm_host_files.reset(); // Close all opened files.
392 #endif // defined(OS_WIN) || defined(OS_MACOSX) 392 #endif // defined(OS_WIN) || defined(OS_MACOSX)
393
394 // Verify CDM host. On Windows and Mac, this is called unsandboxed. On Linux,
395 // this is called sandboxed.
396 if (cdm_host_files) {
397 DCHECK(IsCdm(path));
398 if (!cdm_host_files->VerifyFiles(library.get(), path)) {
Will Harris 2017/05/01 20:59:00 what exactly does VerifyFiles do? We agreed in th
xhwang 2017/05/01 23:05:45 As discussed offline, added links and updated func
399 LOG(WARNING) << "CDM host verification failed.";
400 // TODO(xhwang): Add a new load result if needed.
401 ReportLoadResult(path, INIT_FAILED);
402 return;
403 }
404 }
393 #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION) 405 #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION)
394 406
395 #if defined(OS_WIN) 407 #if defined(OS_WIN)
396 // If code subsequently tries to exit using abort(), force a crash (since 408 // If code subsequently tries to exit using abort(), force a crash (since
397 // otherwise these would be silent terminations and fly under the radar). 409 // otherwise these would be silent terminations and fly under the radar).
398 base::win::SetAbortBehaviorForCrashReporting(); 410 base::win::SetAbortBehaviorForCrashReporting();
399 411
400 // Once we lower the token the sandbox is locked down and no new modules 412 // Once we lower the token the sandbox is locked down and no new modules
401 // can be loaded. TODO(cpu): consider changing to the loading style of 413 // can be loaded. TODO(cpu): consider changing to the loading style of
402 // regular plugins. 414 // regular plugins.
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 #endif 483 #endif
472 484
473 int32_t init_error = plugin_entry_points_.initialize_module( 485 int32_t init_error = plugin_entry_points_.initialize_module(
474 local_pp_module_, 486 local_pp_module_,
475 &ppapi::proxy::PluginDispatcher::GetBrowserInterface); 487 &ppapi::proxy::PluginDispatcher::GetBrowserInterface);
476 if (init_error != PP_OK) { 488 if (init_error != PP_OK) {
477 LOG(WARNING) << "InitModule failed with error " << init_error; 489 LOG(WARNING) << "InitModule failed with error " << init_error;
478 ReportLoadResult(path, INIT_FAILED); 490 ReportLoadResult(path, INIT_FAILED);
479 return; 491 return;
480 } 492 }
481 #if BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION)
482 // Now the process is sandboxed. Verify CDM host.
483 if (cdm_host_files) {
484 DCHECK(IsCdm(path));
485 if (!cdm_host_files->VerifyFiles(library.get(), path)) {
486 LOG(WARNING) << "CDM host verification failed.";
487 // TODO(xhwang): Add a new load result if needed.
488 ReportLoadResult(path, INIT_FAILED);
489 return;
490 }
491 }
492 #endif // BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION)
493 } 493 }
494 494
495 // Initialization succeeded, so keep the plugin DLL loaded. 495 // Initialization succeeded, so keep the plugin DLL loaded.
496 library_.Reset(library.Release()); 496 library_.Reset(library.Release());
497 497
498 ReportLoadResult(path, LOAD_SUCCESS); 498 ReportLoadResult(path, LOAD_SUCCESS);
499 } 499 }
500 500
501 void PpapiThread::OnCreateChannel(base::ProcessId renderer_pid, 501 void PpapiThread::OnCreateChannel(base::ProcessId renderer_pid,
502 int renderer_child_id, 502 int renderer_child_id,
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 GetHistogramName(is_broker_, "LoadTime", path), 637 GetHistogramName(is_broker_, "LoadTime", path),
638 base::TimeDelta::FromMilliseconds(1), 638 base::TimeDelta::FromMilliseconds(1),
639 base::TimeDelta::FromSeconds(10), 639 base::TimeDelta::FromSeconds(10),
640 50, 640 50,
641 base::HistogramBase::kUmaTargetedHistogramFlag); 641 base::HistogramBase::kUmaTargetedHistogramFlag);
642 642
643 histogram->AddTime(load_time); 643 histogram->AddTime(load_time);
644 } 644 }
645 645
646 } // namespace content 646 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698