chromium/chrome/browser/xsurface/android/java/src/org/chromium/chrome/browser/xsurface/LoggingParameters.java

// 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.

package org.chromium.chrome.browser.xsurface;

import androidx.annotation.Nullable;

// TODO(b/269234249): Decide what to do with this class. Some of these things are feed specific.
/**
 * Implemented in Chromium.
 *
 * The set of parameters necessary for logging.
 */
public interface LoggingParameters {
    // Key for ListContentManager.getContextValues().
    String KEY = "LoggingParameters";

    /** Returns the account name to be used when logging. */
    String accountName();

    /** Returns the client instance ID used for reliability logging. */
    String clientInstanceId();

    /** Returns whether this has the same parameters as `other`. */
    @Deprecated
    default boolean loggingParametersEquals(LoggingParameters other) {
        return false;
    }

    /** Whether attention / interaction logging is enabled. */
    boolean loggingEnabled();

    /** Whether view actions may be recorded. */
    boolean viewActionsEnabled();

    /** The EventID, in raw proto bytes, of the first page response, or null if not present. */
    @Nullable
    default byte[] rootEventId() {
        return null;
    }
}