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 InstrumentingAgents;
class Page;
class SecurityOrigin;
class Storage;
typedef String ErrorString;
class InspectorDOMStorageAgent final : public InspectorAgentBase, public Inspector::DOMStorageBackendDispatcherHandler {
WTF_MAKE_FAST_ALLOCATED;
public:
InspectorDOMStorageAgent(InstrumentingAgents*, InspectorPageAgent*);
virtual ~InspectorDOMStorageAgent();
virtual void didCreateFrontendAndBackend(Inspector::FrontendChannel*, Inspector::BackendDispatcher*) override;
virtual void willDestroyFrontendAndBackend(Inspector::DisconnectReason) override;
virtual void enable(ErrorString&) override;
virtual void disable(ErrorString&) override;
virtual void getDOMStorageItems(ErrorString&, const Inspector::InspectorObject& storageId, RefPtr<Inspector::Protocol::Array<Inspector::Protocol::Array<String>>>& items) override;
virtual void setDOMStorageItem(ErrorString&, const Inspector::InspectorObject& storageId, const String& key, const String& value) override;
virtual 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*&);
InspectorPageAgent* m_pageAgent;
std::unique_ptr<Inspector::DOMStorageFrontendDispatcher> m_frontendDispatcher;
RefPtr<Inspector::DOMStorageBackendDispatcher> m_backendDispatcher;
bool m_enabled;
};
}
#endif // !defined(InspectorDOMStorageAgent_h)