1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/install_verification/win/install_verification.h"
6
7#include <set>
8#include <vector>
9
10#include "base/metrics/sparse_histogram.h"
11#include "chrome/browser/install_verification/win/imported_module_verification.h"
12#include "chrome/browser/install_verification/win/loaded_module_verification.h"
13#include "chrome/browser/install_verification/win/module_ids.h"
14#include "chrome/browser/install_verification/win/module_info.h"
15#include "chrome/browser/install_verification/win/module_verification_common.h"
16
17namespace {
18
19void ReportModuleMatch(size_t module_id) {
20  UMA_HISTOGRAM_SPARSE_SLOWLY("InstallVerifier.ModuleMatch", module_id);
21}
22
23void ReportImport(size_t module_id) {
24  UMA_HISTOGRAM_SPARSE_SLOWLY("InstallVerifier.ModuleImport", module_id);
25}
26
27}  // namespace
28
29void VerifyInstallation() {
30  ModuleIDs module_ids;
31  LoadModuleIDs(&module_ids);
32  std::set<ModuleInfo> loaded_modules;
33  if (GetLoadedModules(&loaded_modules)) {
34    VerifyLoadedModules(loaded_modules, module_ids, &ReportModuleMatch);
35    VerifyImportedModules(loaded_modules, module_ids, &ReportImport);
36  }
37}
38