blob: e4775091b5f1225650df6ce0e8b2cd6d2e509a17 [file] [log] [blame] [edit]
// Copyright 2021 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 "content/browser/prerender/prerender_metrics.h"
#include "base/metrics/histogram_functions.h"
namespace content {
namespace {
PrerenderCancelledInterface GetCancelledInterfaceType(
const std::string& interface_name) {
if (interface_name == "device.mojom.GamepadHapticsManager")
return PrerenderCancelledInterface::kGamepadHapticsManager;
else if (interface_name == "device.mojom.GamepadMonitor")
return PrerenderCancelledInterface::kGamepadMonitor;
else if (interface_name == "blink.mojom.NotificationService")
return PrerenderCancelledInterface::kNotificationService;
return PrerenderCancelledInterface::kUnknown;
}
} // namespace
// Called by MojoBinderPolicyApplier. This function records the Mojo interface
// that causes MojoBinderPolicyApplier to cancel prerendering.
void RecordPrerenderCancelledInterface(const std::string& interface_name) {
const PrerenderCancelledInterface interface_type =
GetCancelledInterfaceType(interface_name);
base::UmaHistogramEnumeration(
"Prerender.Experimental.PrerenderCancelledInterface", interface_type);
}
} // namespace content