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.

221 lines
5.6 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: DOMStorage (experimental)
from __future__ import annotations
from .util import event_class, T_JSON_DICT
from dataclasses import dataclass
import enum
import typing
class SerializedStorageKey(str):
def to_json(self) -> str:
return self
@classmethod
def from_json(cls, json: str) -> SerializedStorageKey:
return cls(json)
def __repr__(self):
return 'SerializedStorageKey({})'.format(super().__repr__())
@dataclass
class StorageId:
'''
DOM Storage identifier.
'''
#: Whether the storage is local storage (not session storage).
is_local_storage: bool
#: Security origin for the storage.
security_origin: typing.Optional[str] = None
#: Represents a key by which DOM Storage keys its CachedStorageAreas
storage_key: typing.Optional[SerializedStorageKey] = None
def to_json(self):
json = dict()
json['isLocalStorage'] = self.is_local_storage
if self.security_origin is not None:
json['securityOrigin'] = self.security_origin
if self.storage_key is not None:
json['storageKey'] = self.storage_key.to_json()
return json
@classmethod
def from_json(cls, json):
return cls(
is_local_storage=bool(json['isLocalStorage']),
security_origin=str(json['securityOrigin']) if 'securityOrigin' in json else None,
storage_key=SerializedStorageKey.from_json(json['storageKey']) if 'storageKey' in json else None,
)
class Item(list):
'''
DOM Storage item.
'''
def to_json(self) -> typing.List[str]:
return self
@classmethod
def from_json(cls, json: typing.List[str]) -> Item:
return cls(json)
def __repr__(self):
return 'Item({})'.format(super().__repr__())
def clear(
storage_id: StorageId
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
:param storage_id:
'''
params: T_JSON_DICT = dict()
params['storageId'] = storage_id.to_json()
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.clear',
'params': params,
}
json = yield cmd_dict
def disable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
Disables storage tracking, prevents storage events from being sent to the client.
'''
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.disable',
}
json = yield cmd_dict
def enable() -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
Enables storage tracking, storage events will now be delivered to the client.
'''
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.enable',
}
json = yield cmd_dict
def get_dom_storage_items(
storage_id: StorageId
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,typing.List[Item]]:
'''
:param storage_id:
:returns:
'''
params: T_JSON_DICT = dict()
params['storageId'] = storage_id.to_json()
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.getDOMStorageItems',
'params': params,
}
json = yield cmd_dict
return [Item.from_json(i) for i in json['entries']]
def remove_dom_storage_item(
storage_id: StorageId,
key: str
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
:param storage_id:
:param key:
'''
params: T_JSON_DICT = dict()
params['storageId'] = storage_id.to_json()
params['key'] = key
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.removeDOMStorageItem',
'params': params,
}
json = yield cmd_dict
def set_dom_storage_item(
storage_id: StorageId,
key: str,
value: str
) -> typing.Generator[T_JSON_DICT,T_JSON_DICT,None]:
'''
:param storage_id:
:param key:
:param value:
'''
params: T_JSON_DICT = dict()
params['storageId'] = storage_id.to_json()
params['key'] = key
params['value'] = value
cmd_dict: T_JSON_DICT = {
'method': 'DOMStorage.setDOMStorageItem',
'params': params,
}
json = yield cmd_dict
@event_class('DOMStorage.domStorageItemAdded')
@dataclass
class DomStorageItemAdded:
storage_id: StorageId
key: str
new_value: str
@classmethod
def from_json(cls, json: T_JSON_DICT) -> DomStorageItemAdded:
return cls(
storage_id=StorageId.from_json(json['storageId']),
key=str(json['key']),
new_value=str(json['newValue'])
)
@event_class('DOMStorage.domStorageItemRemoved')
@dataclass
class DomStorageItemRemoved:
storage_id: StorageId
key: str
@classmethod
def from_json(cls, json: T_JSON_DICT) -> DomStorageItemRemoved:
return cls(
storage_id=StorageId.from_json(json['storageId']),
key=str(json['key'])
)
@event_class('DOMStorage.domStorageItemUpdated')
@dataclass
class DomStorageItemUpdated:
storage_id: StorageId
key: str
old_value: str
new_value: str
@classmethod
def from_json(cls, json: T_JSON_DICT) -> DomStorageItemUpdated:
return cls(
storage_id=StorageId.from_json(json['storageId']),
key=str(json['key']),
old_value=str(json['oldValue']),
new_value=str(json['newValue'])
)
@event_class('DOMStorage.domStorageItemsCleared')
@dataclass
class DomStorageItemsCleared:
storage_id: StorageId
@classmethod
def from_json(cls, json: T_JSON_DICT) -> DomStorageItemsCleared:
return cls(
storage_id=StorageId.from_json(json['storageId'])
)