void InspectorResource::createScriptObject(InspectorFrontend* frontend) { if (!m_scriptObjectCreated) { JSONObject jsonObject = frontend->newJSONObject(); JSONObject requestHeaders = frontend->newJSONObject(); populateHeadersObject(&requestHeaders, m_requestHeaderFields); jsonObject.set("requestHeaders", requestHeaders); jsonObject.set("requestURL", requestURL()); jsonObject.set("host", m_requestURL.host()); jsonObject.set("path", m_requestURL.path()); jsonObject.set("lastPathComponent", m_requestURL.lastPathComponent()); jsonObject.set("isMainResource", m_isMainResource); jsonObject.set("cached", m_cached); if (!frontend->addResource(m_identifier, jsonObject)) return; m_scriptObjectCreated = true; m_changes.clear(RequestChange); } updateScriptObject(frontend); }
void InspectorResource::updateScriptObject(InspectorFrontend* frontend) { if (!m_scriptObjectCreated) return; if (m_changes.hasChange(NoChange)) return; ScriptObject jsonObject = frontend->newScriptObject(); if (m_changes.hasChange(RequestChange)) { jsonObject.set("url", requestURL()); jsonObject.set("domain", m_requestURL.host()); jsonObject.set("path", m_requestURL.path()); jsonObject.set("lastPathComponent", m_requestURL.lastPathComponent()); ScriptObject requestHeaders = frontend->newScriptObject(); populateHeadersObject(&requestHeaders, m_requestHeaderFields); jsonObject.set("requestHeaders", requestHeaders); jsonObject.set("mainResource", m_isMainResource); jsonObject.set("requestMethod", m_requestMethod); jsonObject.set("requestFormData", m_requestFormData); jsonObject.set("didRequestChange", true); } if (m_changes.hasChange(ResponseChange)) { jsonObject.set("mimeType", m_mimeType); jsonObject.set("suggestedFilename", m_suggestedFilename); jsonObject.set("expectedContentLength", m_expectedContentLength); jsonObject.set("statusCode", m_responseStatusCode); jsonObject.set("suggestedFilename", m_suggestedFilename); ScriptObject responseHeaders = frontend->newScriptObject(); populateHeadersObject(&responseHeaders, m_responseHeaderFields); jsonObject.set("responseHeaders", responseHeaders); jsonObject.set("didResponseChange", true); } if (m_changes.hasChange(TypeChange)) { jsonObject.set("type", static_cast<int>(type())); jsonObject.set("didTypeChange", true); } if (m_changes.hasChange(LengthChange)) { jsonObject.set("contentLength", m_length); jsonObject.set("didLengthChange", true); } if (m_changes.hasChange(CompletionChange)) { jsonObject.set("failed", m_failed); jsonObject.set("finished", m_finished); jsonObject.set("didCompletionChange", true); } if (m_changes.hasChange(TimingChange)) { if (m_startTime > 0) jsonObject.set("startTime", m_startTime); if (m_responseReceivedTime > 0) jsonObject.set("responseReceivedTime", m_responseReceivedTime); if (m_endTime > 0) jsonObject.set("endTime", m_endTime); if (m_loadEventTime > 0) jsonObject.set("loadEventTime", m_loadEventTime); if (m_domContentEventTime > 0) jsonObject.set("domContentEventTime", m_domContentEventTime); jsonObject.set("didTimingChange", true); } if (!frontend->updateResource(m_identifier, jsonObject)) return; m_changes.clearAll(); }