InspectorDOMStorageAgent.h [plain text]
#ifndef InspectorDOMStorageAgent_h
#define InspectorDOMStorageAgent_h
#include "InspectorWebAgentBase.h"
#include "InspectorWebBackendDispatchers.h"
#include "StorageArea.h"
#include <wtf/HashMap.h>
#include <wtf/text/WTFString.h>
namespace Inspector {
class InspectorArray;
class InspectorDOMStorageFrontendDispatcher;
}
namespace WebCore {
class Frame;
class InspectorPageAgent;
class InstrumentingAgents;
class Page;
class SecurityOrigin;
class Storage;
typedef String ErrorString;
class InspectorDOMStorageAgent : public InspectorAgentBase, public Inspector::InspectorDOMStorageBackendDispatcherHandler {
WTF_MAKE_FAST_ALLOCATED;
public:
InspectorDOMStorageAgent(InstrumentingAgents*, InspectorPageAgent*);
~InspectorDOMStorageAgent();
virtual void didCreateFrontendAndBackend(Inspector::InspectorFrontendChannel*, Inspector::InspectorBackendDispatcher*) override;
virtual void willDestroyFrontendAndBackend(Inspector::InspectorDisconnectReason) override;
virtual void enable(ErrorString*) override;
virtual void disable(ErrorString*) override;
virtual void getDOMStorageItems(ErrorString*, const RefPtr<Inspector::InspectorObject>& storageId, RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Array<String>>>& items) override;
virtual void setDOMStorageItem(ErrorString*, const RefPtr<Inspector::InspectorObject>& storageId, const String& key, const String& value) override;
virtual void removeDOMStorageItem(ErrorString*, const RefPtr<Inspector::InspectorObject>& storageId, const String& key) override;
String storageId(Storage*);
PassRefPtr<Inspector::TypeBuilder::DOMStorage::StorageId> storageId(SecurityOrigin*, bool isLocalStorage);
void didDispatchDOMStorageEvent(const String& key, const String& oldValue, const String& newValue, StorageType, SecurityOrigin*, Page*);
private:
PassRefPtr<StorageArea> findStorageArea(ErrorString*, const RefPtr<Inspector::InspectorObject>&, Frame*&);
InspectorPageAgent* m_pageAgent;
std::unique_ptr<Inspector::InspectorDOMStorageFrontendDispatcher> m_frontendDispatcher;
RefPtr<Inspector::InspectorDOMStorageBackendDispatcher> m_backendDispatcher;
bool m_enabled;
};
}
#endif // !defined(InspectorDOMStorageAgent_h)