 +        return;
 +    }
 +
-+    out_axNode = snapshotForAXObject(makeRefPtr(axObject));
++    Node* node = nullptr;
++    if (objectId) {
++        InspectorDOMAgent* domAgent = m_instrumentingAgents.inspectorDOMAgent();
++        ASSERT(domAgent);
++        node = domAgent->nodeForObjectId(*objectId);
++        if (!node) {
++            errorString = "No Node for objectId"_s;
++            return;
++        }
++    }
++
++    out_axNode = snapshotForAXObject(makeRefPtr(axObject), node);
 +}
 +
 +void InspectorPageAgent::setInterceptFileChooserDialog(ErrorString&, bool enabled) {

     bool handleMousePress();
     void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags);
     void inspect(Node*);
@@ -194,6 +199,7 @@ public:
     void reset();
 
     Node* assertNode(ErrorString&, int nodeId);
+    Node* assertNode(ErrorString&, const int* nodeId, const String* objectId);
     Element* assertElement(ErrorString&, int nodeId);
     Document* assertDocument(ErrorString&, int nodeId);
 
diff --git a/Source/WebCore/inspector/agents/InspectorDOMStorageAgent.h b/Source/WebCore/inspector/agents/InspectorDOMStorageAgent.h
index b578660fbb3ce176e4e0aeb5a22021dc880e47f0..a7c968bc9f88c7d26e1887bb53106b4af2464753 100644

 void InspectorPageAgent::archive(ErrorString& errorString, String* data)
 {
 #if ENABLE(WEB_ARCHIVE) && USE(CF)
@@ -979,4 +1056,509 @@ void InspectorPageAgent::archive(ErrorString& errorString, String* data)
 #endif
 }
 
