blob: 62325352ac39f6ea32e9620a6bb2c42b964fa8e1 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SAFE_BROWSING_EXTENSION_TELEMETRY_EXTENSION_SIGNAL_H_
#define CHROME_BROWSER_SAFE_BROWSING_EXTENSION_TELEMETRY_EXTENSION_SIGNAL_H_
#include "extensions/common/extension_id.h"
namespace safe_browsing {
// Signal types.
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class ExtensionSignalType {
kTabsExecuteScript = 0,
kRemoteHostContacted = 1,
kCookiesGetAll = 2,
kPasswordReuse = 3,
kPotentialPasswordTheft = 4,
kCookiesGet = 5,
kMaxValue = kCookiesGet,
};
// An abstract signal. Subclasses provide type-specific functionality to
// enable processing by the extension telemetry service.
class ExtensionSignal {
public:
virtual ~ExtensionSignal() = default;
// Returns the type of the signal.
virtual ExtensionSignalType GetType() const = 0;
const extensions::ExtensionId& extension_id() const { return extension_id_; }
protected:
explicit ExtensionSignal(const extensions::ExtensionId& extension_id)
: extension_id_(extension_id) {}
const extensions::ExtensionId extension_id_;
};
} // namespace safe_browsing
#endif // CHROME_BROWSER_SAFE_BROWSING_EXTENSION_TELEMETRY_EXTENSION_SIGNAL_H_