chromium/components/privacy_sandbox/android/java/src/org/chromium/components/privacy_sandbox/TrackingProtectionDelegate.java

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

package org.chromium.components.privacy_sandbox;

import android.content.Context;

import org.chromium.components.browser_ui.site_settings.SiteSettingsDelegate;
import org.chromium.content_public.browser.BrowserContextHandle;

/** Interface implemented by the embedder to access embedder-specific logic. */
public interface TrackingProtectionDelegate {
    /** @return whether block all 3PCD pref is enabled. */
    boolean isBlockAll3PCDEnabled();

    /** Set the value of the block all 3PCD pref. */
    void setBlockAll3PCD(boolean enabled);

    /** @return whether the Do Not Track pref is enabled. */
    boolean isDoNotTrackEnabled();

    /** Set the value of the Do Not Track Pref. */
    void setDoNotTrack(boolean enabled);

    /**
     * @return whether the IP protection preference should be shown.
     */
    boolean shouldDisplayIpProtection();

    /**
     * @return whether the IP protection is enabled.
     */
    boolean isIpProtectionEnabled();

    /** Set the value of the IP protection state. */
    void setIpProtection(boolean enabled);

    /**
     * @return whether the fingerprinting protection preference should be shown.
     */
    boolean shouldDisplayFingerprintingProtection();

    /**
     * @return whether the fingerprinting protection is enabled.
     */
    boolean isFingerprintingProtectionEnabled();

    /** Set the value of the fingerprinting protection state. */
    void setFingerprintingProtection(boolean enabled);

    /**
     * @return the browser context associated with the settings page.
     */
    BrowserContextHandle getBrowserContext();

    /** @return the site settings delegate object. */
    SiteSettingsDelegate getSiteSettingsDelegate(Context context);
}