blob: 6ed4b5a307c8cfc08856aea3682670182e4bbd4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
// Copyright 2019 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 CHROME_COMMON_MEDIA_CDM_MANIFEST_H_
#define CHROME_COMMON_MEDIA_CDM_MANIFEST_H_
namespace base {
class FilePath;
class Value;
class Version;
}
namespace content {
struct CdmCapability;
}
// Returns whether the CDM's API versions, as specified in the manifest, are
// supported in this Chrome binary and not disabled at run time.
// Checks the module API, CDM interface API, and Host API.
// This should never fail except in rare cases where the component has not been
// updated recently or the user downgrades Chrome.
bool IsCdmManifestCompatibleWithChrome(const base::Value& manifest);
// Extracts the necessary information from |manifest| and updates |capability|.
// Returns true on success, false if there are errors in the manifest.
// If this method returns false, |capability| may or may not be updated.
bool ParseCdmManifest(const base::Value& manifest,
content::CdmCapability* capability);
// Reads the file |manifest_path| which is assumed to be a CDM manifest and
// extracts the necessary information from it to update |version| and
// |capability|. This also verifies that the read CDM manifest is compatible
// with Chrome (by calling IsCdmManifestCompatibleWithChrome()). Returns true on
// success, false if there are errors in the file or the manifest is not
// compatible with this version of Chrome. If this method returns false,
// |version| and |capability| may or may not be updated.
bool ParseCdmManifestFromPath(const base::FilePath& manifest_path,
base::Version* version,
content::CdmCapability* capability);
#endif // CHROME_COMMON_MEDIA_CDM_MANIFEST_H_
|