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

# 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'])
)