All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.chrome.devtools.client.core.storage.Storage Maven / Gradle / Ivy

package com.hubspot.chrome.devtools.client.core.storage;

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hubspot.chrome.devtools.base.ChromeRequest;
import com.hubspot.chrome.devtools.base.ChromeSessionCore;
import java.util.concurrent.CompletableFuture;

public final class Storage {
  ChromeSessionCore chromeSession;

  ObjectMapper objectMapper;

  public Storage(ChromeSessionCore chromeSession, ObjectMapper objectMapper) {
    this.chromeSession = chromeSession;
    this.objectMapper = objectMapper;
  }

  /**
   * Clears storage for origin.
   *
   * @param origin  Security origin.
   * @param storageTypes  Comma separated origin names.
   */
  public void clearDataForOrigin(String origin, String storageTypes) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.clearDataForOrigin");
    chromeRequest
        .putParams("origin", origin)
        .putParams("storageTypes", storageTypes);
    chromeSession.send(chromeRequest);
  }

  /**
   * Clears storage for origin.
   *
   * @param origin  Security origin.
   * @param storageTypes  Comma separated origin names.
   */
  public void clearDataForOriginAsync(String origin, String storageTypes) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.clearDataForOrigin");
    chromeRequest
        .putParams("origin", origin)
        .putParams("storageTypes", storageTypes);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Returns usage and quota in bytes.
   *
   * @param origin  Security origin.
   */
  public GetUsageAndQuotaResult getUsageAndQuota(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.getUsageAndQuota");
    chromeRequest
        .putParams("origin", origin);
    return chromeSession.send(chromeRequest, new TypeReference(){});
  }

  /**
   * Returns usage and quota in bytes.
   *
   * @param origin  Security origin.
   */
  public CompletableFuture getUsageAndQuotaAsync(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.getUsageAndQuota");
    chromeRequest
        .putParams("origin", origin);
    return chromeSession.sendAsync(chromeRequest, new TypeReference(){});
  }

  /**
   * Registers origin to be notified when an update occurs to its cache storage list.
   *
   * @param origin  Security origin.
   */
  public void trackCacheStorageForOrigin(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.trackCacheStorageForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.send(chromeRequest);
  }

  /**
   * Registers origin to be notified when an update occurs to its cache storage list.
   *
   * @param origin  Security origin.
   */
  public void trackCacheStorageForOriginAsync(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.trackCacheStorageForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Registers origin to be notified when an update occurs to its IndexedDB.
   *
   * @param origin  Security origin.
   */
  public void trackIndexedDBForOrigin(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.trackIndexedDBForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.send(chromeRequest);
  }

  /**
   * Registers origin to be notified when an update occurs to its IndexedDB.
   *
   * @param origin  Security origin.
   */
  public void trackIndexedDBForOriginAsync(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.trackIndexedDBForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Unregisters origin from receiving notifications for cache storage.
   *
   * @param origin  Security origin.
   */
  public void untrackCacheStorageForOrigin(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.untrackCacheStorageForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.send(chromeRequest);
  }

  /**
   * Unregisters origin from receiving notifications for cache storage.
   *
   * @param origin  Security origin.
   */
  public void untrackCacheStorageForOriginAsync(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.untrackCacheStorageForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.sendAsync(chromeRequest);
  }

  /**
   * Unregisters origin from receiving notifications for IndexedDB.
   *
   * @param origin  Security origin.
   */
  public void untrackIndexedDBForOrigin(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.untrackIndexedDBForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.send(chromeRequest);
  }

  /**
   * Unregisters origin from receiving notifications for IndexedDB.
   *
   * @param origin  Security origin.
   */
  public void untrackIndexedDBForOriginAsync(String origin) {
    ChromeRequest chromeRequest = new ChromeRequest("Storage.untrackIndexedDBForOrigin");
    chromeRequest
        .putParams("origin", origin);
    chromeSession.sendAsync(chromeRequest);
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy