You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
310 lines
8.1 KiB
Python
310 lines
8.1 KiB
Python
# DO NOT EDIT THIS FILE!
|
|
#
|
|
# This file is generated from the CDP specification. If you need to make
|
|
# changes, edit the generator and regenerate all of the modules.
|
|
#
|
|
# CDP domain: Storage (experimental)
|
|
from __future__ import annotations
|
|
from .util import event_class, T_JSON_DICT
|
|
from dataclasses import dataclass
|
|
import enum
|
|
import typing
|
|
from . import browser
|
|
from . import network
|
|
|
|
|
|
class StorageType(enum.Enum):
|
|
'''
|
|
Enum of possible storage types.
|
|
'''
|
|
APPCACHE = "appcache"
|
|
COOKIES = "cookies"
|
|
FILE_SYSTEMS = "file_systems"
|
|
INDEXEDDB = "indexeddb"
|
|
LOCAL_STORAGE = "local_storage"
|
|
SHADER_CACHE = "shader_cache"
|
|
WEBSQL = "websql"
|
|
SERVICE_WORKERS = "service_workers"
|
|
CACHE_STORAGE = "cache_storage"
|
|
ALL_ = "all"
|
|
OTHER = "other"
|
|
|
|
def to_json(self):
|
|
return self.value
|
|
|
|
@classmethod
|
|
def from_json(cls, json):
|
|
return cls(json)
|
|
|
|
|
|
@dataclass
|
|
class UsageForType:
|
|
'''
|
|
Usage for a storage type.
|
|
'''
|
|
#: Name of storage type.
|
|
storage_type: StorageType
|
|
|
|
#: Storage usage (bytes).
|
|
usage: float
|
|
|
|
def to_json(self):
|
|
json = dict()
|
|
json['storageType'] = self.storage_type.to_json()
|
|
json['usage'] = self.usage
|
|
return json
|
|
|
|
@classmethod
|
|
def from_json(cls, json):
|
|
return cls(
|
|
storage_type=StorageType.from_json(json['storageType']),
|
|
usage=float(json['usage']),
|
|
)
|
|
|
|
|
|
def clear_data_for_origin(
|
|
origin: str,
|
|
storage_types: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Clears storage for origin.
|
|
|
|
:param origin: Security origin.
|
|
:param storage_types: Comma separated list of StorageType to clear.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
params['storageTypes'] = storage_types
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.clearDataForOrigin',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def get_cookies(
|
|
browser_context_id: typing.Optional[browser.BrowserContextID] = None
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,typing.List[network.Cookie]]:
|
|
'''
|
|
Returns all browser cookies.
|
|
|
|
:param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
|
|
:returns: Array of cookie objects.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
if browser_context_id is not None:
|
|
params['browserContextId'] = browser_context_id.to_json()
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.getCookies',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
return [network.Cookie.from_json(i) for i in json['cookies']]
|
|
|
|
|
|
def set_cookies(
|
|
cookies: typing.List[network.CookieParam],
|
|
browser_context_id: typing.Optional[browser.BrowserContextID] = None
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Sets given cookies.
|
|
|
|
:param cookies: Cookies to be set.
|
|
:param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['cookies'] = [i.to_json() for i in cookies]
|
|
if browser_context_id is not None:
|
|
params['browserContextId'] = browser_context_id.to_json()
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.setCookies',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def clear_cookies(
|
|
browser_context_id: typing.Optional[browser.BrowserContextID] = None
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Clears cookies.
|
|
|
|
:param browser_context_id: *(Optional)* Browser context to use when called on the browser endpoint.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
if browser_context_id is not None:
|
|
params['browserContextId'] = browser_context_id.to_json()
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.clearCookies',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def get_usage_and_quota(
|
|
origin: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,typing.Tuple[float, float, typing.List[UsageForType]]]:
|
|
'''
|
|
Returns usage and quota in bytes.
|
|
|
|
:param origin: Security origin.
|
|
:returns: A tuple with the following items:
|
|
|
|
0. **usage** - Storage usage (bytes).
|
|
1. **quota** - Storage quota (bytes).
|
|
2. **usageBreakdown** - Storage usage per type (bytes).
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.getUsageAndQuota',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
return (
|
|
float(json['usage']),
|
|
float(json['quota']),
|
|
[UsageForType.from_json(i) for i in json['usageBreakdown']]
|
|
)
|
|
|
|
|
|
def track_cache_storage_for_origin(
|
|
origin: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Registers origin to be notified when an update occurs to its cache storage list.
|
|
|
|
:param origin: Security origin.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.trackCacheStorageForOrigin',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def track_indexed_db_for_origin(
|
|
origin: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Registers origin to be notified when an update occurs to its IndexedDB.
|
|
|
|
:param origin: Security origin.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.trackIndexedDBForOrigin',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def untrack_cache_storage_for_origin(
|
|
origin: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Unregisters origin from receiving notifications for cache storage.
|
|
|
|
:param origin: Security origin.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.untrackCacheStorageForOrigin',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
def untrack_indexed_db_for_origin(
|
|
origin: str
|
|
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
|
|
'''
|
|
Unregisters origin from receiving notifications for IndexedDB.
|
|
|
|
:param origin: Security origin.
|
|
'''
|
|
params: T_JSON_DICT = dict()
|
|
params['origin'] = origin
|
|
cmd_dict: T_JSON_DICT = {
|
|
'method': 'Storage.untrackIndexedDBForOrigin',
|
|
'params': params,
|
|
}
|
|
json = yield cmd_dict
|
|
|
|
|
|
@event_class('Storage.cacheStorageContentUpdated')
|
|
@dataclass
|
|
class CacheStorageContentUpdated:
|
|
'''
|
|
A cache's contents have been modified.
|
|
'''
|
|
#: Origin to update.
|
|
origin: str
|
|
#: Name of cache in origin.
|
|
cache_name: str
|
|
|
|
@classmethod
|
|
def from_json(cls, json: T_JSON_DICT) -> CacheStorageContentUpdated:
|
|
return cls(
|
|
origin=str(json['origin']),
|
|
cache_name=str(json['cacheName'])
|
|
)
|
|
|
|
|
|
@event_class('Storage.cacheStorageListUpdated')
|
|
@dataclass
|
|
class CacheStorageListUpdated:
|
|
'''
|
|
A cache has been added/deleted.
|
|
'''
|
|
#: Origin to update.
|
|
origin: str
|
|
|
|
@classmethod
|
|
def from_json(cls, json: T_JSON_DICT) -> CacheStorageListUpdated:
|
|
return cls(
|
|
origin=str(json['origin'])
|
|
)
|
|
|
|
|
|
@event_class('Storage.indexedDBContentUpdated')
|
|
@dataclass
|
|
class IndexedDBContentUpdated:
|
|
'''
|
|
The origin's IndexedDB object store has been modified.
|
|
'''
|
|
#: Origin to update.
|
|
origin: str
|
|
#: Database to update.
|
|
database_name: str
|
|
#: ObjectStore to update.
|
|
object_store_name: str
|
|
|
|
@classmethod
|
|
def from_json(cls, json: T_JSON_DICT) -> IndexedDBContentUpdated:
|
|
return cls(
|
|
origin=str(json['origin']),
|
|
database_name=str(json['databaseName']),
|
|
object_store_name=str(json['objectStoreName'])
|
|
)
|
|
|
|
|
|
@event_class('Storage.indexedDBListUpdated')
|
|
@dataclass
|
|
class IndexedDBListUpdated:
|
|
'''
|
|
The origin's IndexedDB database list has been modified.
|
|
'''
|
|
#: Origin to update.
|
|
origin: str
|
|
|
|
@classmethod
|
|
def from_json(cls, json: T_JSON_DICT) -> IndexedDBListUpdated:
|
|
return cls(
|
|
origin=str(json['origin'])
|
|
)
|