chromium/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/LocalStorageInfo.java

// Copyright 2015 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.browser_ui.site_settings;

import androidx.annotation.VisibleForTesting;

import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge.StorageInfoClearedCallback;
import org.chromium.content_public.browser.BrowserContextHandle;

import java.io.Serializable;

/** Local Storage information for a given origin. */
public class LocalStorageInfo implements Serializable {
    private final String mOrigin;
    private final long mSize;
    private final boolean mImportantDomain;

    @VisibleForTesting
    public LocalStorageInfo(String origin, long size, boolean importantDomain) {
        mOrigin = origin;
        mSize = size;
        mImportantDomain = importantDomain;
    }

    public String getOrigin() {
        return mOrigin;
    }

    public void clear(
            BrowserContextHandle browserContextHandle, StorageInfoClearedCallback callback) {
        // TODO(dullweber): Cookies should call a callback when cleared as well.
        WebsitePreferenceBridgeJni.get().clearCookieData(browserContextHandle, mOrigin);
        WebsitePreferenceBridgeJni.get()
                .clearLocalStorageData(browserContextHandle, mOrigin, callback);
    }

    public long getSize() {
        return mSize;
    }

    public boolean isDomainImportant() {
        return mImportantDomain;
    }
}