blob: eefe07271136b171b4715b690edcdbe1ded8f4e1 [file] [log] [blame]
// 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.
#include "chrome/browser/media/library_cdm_test_helper.h"
#include "base/command_line.h"
#include "base/native_library.h"
#include "base/path_service.h"
#include "content/public/browser/cdm_registry.h"
#include "content/public/common/cdm_info.h"
#include "media/base/media_switches.h"
#include "media/cdm/cdm_paths.h"
void RegisterClearKeyCdm(base::CommandLine* command_line,
bool use_wrong_cdm_path) {
base::FilePath cdm_path;
base::PathService::Get(base::DIR_MODULE, &cdm_path);
std::string cdm_library_name =
use_wrong_cdm_path ? "invalidcdmname" : media::kClearKeyCdmLibraryName;
cdm_path = cdm_path
.Append(media::GetPlatformSpecificDirectory(
media::kClearKeyCdmBaseDirectory))
.AppendASCII(base::GetLoadableModuleName(cdm_library_name));
// Append the switch to register the Clear Key CDM path.
command_line->AppendSwitchNative(switches::kClearKeyCdmPathForTesting,
cdm_path.value());
}
bool IsLibraryCdmRegistered(const std::string& cdm_guid) {
std::vector<content::CdmInfo> cdm_info_vector =
content::CdmRegistry::GetInstance()->GetAllRegisteredCdms();
for (const auto& cdm_info : cdm_info_vector) {
if (cdm_info.guid == cdm_guid) {
DVLOG(2) << "CDM registered for " << cdm_guid << " with path "
<< cdm_info.path.value();
return true;
}
}
return false;
}