InspectorDOMStorageAgent.h [plain text]
#ifndef InspectorDOMStorageAgent_h
#define InspectorDOMStorageAgent_h
#include "InspectorWebAgentBase.h"
#include "StorageArea.h"
#include <inspector/InspectorBackendDispatchers.h>
#include <wtf/HashMap.h>
#include <wtf/text/WTFString.h>
namespace Inspector {
class DOMStorageFrontendDispatcher;
class InspectorArray;
}
namespace WebCore {
class Frame;
class InspectorPageAgent;
class Page;
class SecurityOrigin;
class Storage;
typedef String ErrorString;
class InspectorDOMStorageAgent final : public InspectorAgentBase, public Inspector::DOMStorageBackendDispatcherHandler {
WTF_MAKE_FAST_ALLOCATED;
public:
InspectorDOMStorageAgent(WebAgentContext&, InspectorPageAgent*);
virtual ~InspectorDOMStorageAgent();
void didCreateFrontendAndBackend(Inspector::FrontendRouter*, Inspector::BackendDispatcher*) override;
void willDestroyFrontendAndBackend(Inspector::DisconnectReason) override;
void enable(ErrorString&) override;
void disable(ErrorString&) override;
void getDOMStorageItems(ErrorString&, const Inspector::InspectorObject& storageId, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Array<String>>>& items) override;
void setDOMStorageItem(ErrorString&, const Inspector::InspectorObject& storageId, const String& key, const String& value) override;
void removeDOMStorageItem(ErrorString&, const Inspector::InspectorObject& storageId, const String& key) override;
String storageId(Storage*);
RefPtr<Inspector::Protocol::DOMStorage::StorageId> storageId(SecurityOrigin*, bool isLocalStorage);
void didDispatchDOMStorageEvent(const String& key, const String& oldValue, const String& newValue, StorageType, SecurityOrigin*, Page*);
private:
RefPtr<StorageArea> findStorageArea(ErrorString&, const Inspector::InspectorObject&, Frame*&);
std::unique_ptr<Inspector::DOMStorageFrontendDispatcher> m_frontendDispatcher;
RefPtr<Inspector::DOMStorageBackendDispatcher> m_backendDispatcher;
InspectorPageAgent* m_pageAgent { nullptr };
bool m_enabled { false };
};
}
#endif // !defined(InspectorDOMStorageAgent_h)