Response InspectorDOMStorageAgent::findStorageArea( std::unique_ptr<protocol::DOMStorage::StorageId> storageId, LocalFrame*& frame, StorageArea*& storageArea) { String securityOrigin = storageId->getSecurityOrigin(); bool isLocalStorage = storageId->getIsLocalStorage(); if (!m_page->mainFrame()->isLocalFrame()) return Response::InternalError(); InspectedFrames* inspectedFrames = InspectedFrames::create(m_page->deprecatedLocalMainFrame()); frame = inspectedFrames->frameWithSecurityOrigin(securityOrigin); if (!frame) return Response::Error("Frame not found for the given security origin"); if (isLocalStorage) { storageArea = StorageNamespace::localStorageArea( frame->document()->getSecurityOrigin()); return Response::OK(); } StorageNamespace* sessionStorage = StorageNamespaceController::from(m_page)->sessionStorage(); if (!sessionStorage) return Response::Error("SessionStorage is not supported"); storageArea = sessionStorage->storageArea(frame->document()->getSecurityOrigin()); return Response::OK(); }