blob: e106d41029a9ab2bffbbfbe7684c6994f5ccc562 [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CONTENT_BROWSER_FINGERPRINTING_PROTECTION_CANVAS_NOISE_TOKEN_DATA_H_
#define CONTENT_BROWSER_FINGERPRINTING_PROTECTION_CANVAS_NOISE_TOKEN_DATA_H_
#include <cstdint>
#include "base/rand_util.h"
#include "content/public/browser/browser_context.h"
#include "third_party/blink/public/common/renderer_preferences/renderer_preferences.h"
namespace content {
// A user data class that generates and stores BrowserContext-associated noise
// tokens used for canvas noising.
class CONTENT_EXPORT CanvasNoiseTokenData
: public base::SupportsUserData::Data {
public:
CanvasNoiseTokenData() = default;
// Gets the 64 bit BrowserContext-associated noise token.
static uint64_t GetToken(BrowserContext* context);
// Regenerates the noise token, returning the updated token value.
static uint64_t SetNewToken(BrowserContext* context);
private:
uint64_t session_token_ = base::RandUint64();
};
} // namespace content
#endif // CONTENT_BROWSER_FINGERPRINTING_PROTECTION_CANVAS_NOISE_TOKEN_DATA_H_