blob: 75043582d9531a620f18b0f2756e39ddcf0ed2ae [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/safe_browsing/extension_telemetry/tabs_api_signal.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "chrome/browser/safe_browsing/extension_telemetry/extension_js_callstacks.h"
#include "chrome/browser/safe_browsing/extension_telemetry/extension_signal_util.h"
namespace safe_browsing {
TabsApiSignal::TabsApiSignal(const extensions::ExtensionId& extension_id,
TabsApiInfo::ApiMethod api_method,
const std::string& current_url,
const std::string& new_url,
extensions::StackTrace js_callstack)
: ExtensionSignal(extension_id),
api_method_(api_method),
js_callstack_(std::move(js_callstack)) {
if (!current_url.empty()) {
current_url_ = SanitizeURLWithoutFilename(current_url);
}
if (!new_url.empty()) {
new_url_ = SanitizeURLWithoutFilename(new_url);
}
}
TabsApiSignal::~TabsApiSignal() = default;
ExtensionSignalType TabsApiSignal::GetType() const {
return ExtensionSignalType::kTabsApi;
}
std::string TabsApiSignal::GetUniqueCallDetailsId() const {
return base::JoinString({base::NumberToString(static_cast<int>(api_method_)),
current_url_, new_url_},
",");
}
} // namespace safe_browsing