String InspectorDOMStorageAgent::storageId(Storage* storage) { ASSERT(storage); Frame* frame = storage->frame(); ExceptionCode ec = 0; bool isLocalStorage = (frame->document()->domWindow()->localStorage(ec) == storage && !ec); return storageId(frame->document()->securityOrigin(), isLocalStorage); }
String InspectorDOMStorageAgent::storageId(Storage* storage) { ASSERT(storage); Document* document = storage->frame()->document(); ASSERT(document); DOMWindow* window = document->domWindow(); ASSERT(window); RefPtr<SecurityOrigin> securityOrigin = document->securityOrigin(); bool isLocalStorage = window->optionalLocalStorage() == storage; return storageId(securityOrigin.get(), isLocalStorage)->toJSONString(); }
void InspectorDOMStorageAgent::didDispatchDOMStorageEvent(const String&, const String&, const String&, StorageType storageType, SecurityOrigin* securityOrigin, Page*) { if (!m_frontend || !m_enabled) return; String id = storageId(securityOrigin, storageType == LocalStorage); if (id.isEmpty()) return; m_frontend->domstorage()->domStorageUpdated(id); }
void InspectorDOMStorageAgent::didDispatchDOMStorageEvent(const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin) { if (!m_frontend || !isEnabled()) return; RefPtr<TypeBuilder::DOMStorage::StorageId> id = storageId(securityOrigin, storageType == LocalStorage); if (key.isNull()) m_frontend->domstorage()->domStorageItemsCleared(id); else if (newValue.isNull()) m_frontend->domstorage()->domStorageItemRemoved(id, key); else if (oldValue.isNull()) m_frontend->domstorage()->domStorageItemAdded(id, key, newValue); else m_frontend->domstorage()->domStorageItemUpdated(id, key, oldValue, newValue); }
void InspectorDOMStorageAgent::didDispatchDOMStorageEvent( const String& key, const String& oldValue, const String& newValue, StorageType storageType, SecurityOrigin* securityOrigin) { if (!frontend()) return; std::unique_ptr<protocol::DOMStorage::StorageId> id = storageId(securityOrigin, storageType == LocalStorage); if (key.isNull()) frontend()->domStorageItemsCleared(std::move(id)); else if (newValue.isNull()) frontend()->domStorageItemRemoved(std::move(id), key); else if (oldValue.isNull()) frontend()->domStorageItemAdded(std::move(id), key, newValue); else frontend()->domStorageItemUpdated(std::move(id), key, oldValue, newValue); }