blob: c2cba0506944b1045f023cf93a5fde1842c833d7 [file] [log] [blame]
// Copyright 2020 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 "weblayer/browser/urlbar/autocomplete_scheme_classifier_impl.h"
#include "base/strings/string_util.h"
#include "content/public/common/url_constants.h"
#include "third_party/metrics_proto/omnibox_input_type.pb.h"
#include "url/url_constants.h"
namespace weblayer {
metrics::OmniboxInputType
AutocompleteSchemeClassifierImpl::GetInputTypeForScheme(
const std::string& scheme) const {
DCHECK_EQ(scheme, base::ToLowerASCII(scheme));
// Check against an allowlist of schemes.
const char* kKnownURLSchemes[] = {
url::kHttpScheme, url::kHttpsScheme,
url::kWsScheme, url::kWssScheme,
url::kFileScheme, url::kAboutScheme,
url::kFtpScheme, url::kBlobScheme,
url::kFileSystemScheme, content::kViewSourceScheme,
url::kJavaScriptScheme};
for (const char* known_scheme : kKnownURLSchemes) {
if (scheme == known_scheme)
return metrics::OmniboxInputType::URL;
}
return metrics::OmniboxInputType::EMPTY;
}
} // namespace weblayer