identifiability_metrics.cc 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright 2020 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. #include "extensions/common/identifiability_metrics.h"
  5. #include "extensions/common/extension_set.h"
  6. #include "services/metrics/public/cpp/ukm_recorder.h"
  7. #include "services/metrics/public/cpp/ukm_source_id.h"
  8. #include "third_party/blink/public/common/privacy_budget/identifiability_metric_builder.h"
  9. namespace extensions {
  10. blink::IdentifiableSurface SurfaceForExtension(
  11. blink::IdentifiableSurface::Type type,
  12. const ExtensionId& extension_id) {
  13. return blink::IdentifiableSurface::FromTypeAndToken(
  14. type, base::as_bytes(base::make_span(extension_id)));
  15. }
  16. void RecordExtensionResourceAccessResult(ukm::SourceIdObj ukm_source_id,
  17. const GURL& gurl,
  18. ExtensionResourceAccessResult result) {
  19. if (ukm_source_id == ukm::kInvalidSourceIdObj)
  20. return;
  21. ExtensionId extension_id = ExtensionSet::GetExtensionIdByURL(gurl);
  22. blink::IdentifiabilityMetricBuilder(ukm_source_id)
  23. .Add(SurfaceForExtension(
  24. blink::IdentifiableSurface::Type::kExtensionFileAccess,
  25. extension_id),
  26. result)
  27. .Record(ukm::UkmRecorder::Get());
  28. }
  29. void RecordContentScriptInjection(ukm::SourceIdObj ukm_source_id,
  30. const ExtensionId& extension_id) {
  31. if (ukm_source_id == ukm::kInvalidSourceIdObj)
  32. return;
  33. blink::IdentifiabilityMetricBuilder(ukm_source_id)
  34. .Add(SurfaceForExtension(
  35. blink::IdentifiableSurface::Type::kExtensionContentScript,
  36. extension_id),
  37. /* Succeeded= */ true)
  38. .Record(ukm::UkmRecorder::Get());
  39. }
  40. void RecordNetworkRequestBlocked(ukm::SourceIdObj ukm_source_id,
  41. const ExtensionId& extension_id) {
  42. if (ukm_source_id == ukm::kInvalidSourceIdObj)
  43. return;
  44. blink::IdentifiabilityMetricBuilder(ukm_source_id)
  45. .Add(SurfaceForExtension(
  46. blink::IdentifiableSurface::Type::kExtensionCancelRequest,
  47. extension_id),
  48. /* Succeeded= */ true)
  49. .Record(ukm::UkmRecorder::Get());
  50. }
  51. } // namespace extensions