diff options
author | John Reck <jreck@google.com> | 2010-11-04 12:00:17 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2010-11-09 11:35:04 -0800 |
commit | e14391e94c850b8bd03680c23b38978db68687a8 (patch) | |
tree | 3fed87e6620fecaf3edc7259ae58a11662bedcb2 /WebCore/inspector/InspectorResourceAgent.cpp | |
parent | 1bd705833a68f07850cf7e204b26f8d328d16951 (diff) | |
download | external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.zip external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.tar.gz external_webkit-e14391e94c850b8bd03680c23b38978db68687a8.tar.bz2 |
Merge Webkit at r70949: Initial merge by git.
Change-Id: I77b8645c083b5d0da8dba73ed01d4014aab9848e
Diffstat (limited to 'WebCore/inspector/InspectorResourceAgent.cpp')
-rw-r--r-- | WebCore/inspector/InspectorResourceAgent.cpp | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/WebCore/inspector/InspectorResourceAgent.cpp b/WebCore/inspector/InspectorResourceAgent.cpp index f49e1d7..2e965b6 100644 --- a/WebCore/inspector/InspectorResourceAgent.cpp +++ b/WebCore/inspector/InspectorResourceAgent.cpp @@ -199,17 +199,23 @@ static PassRefPtr<InspectorObject> buildObjectForResourceResponse(const Resource return responseObject; } -static PassRefPtr<InspectorObject> buildObjectForMainResource(Frame* frame) +static PassRefPtr<InspectorObject> buildObjectForDocumentLoader(DocumentLoader* loader) +{ + RefPtr<InspectorObject> documentLoaderObject = InspectorObject::create(); + documentLoaderObject->setNumber("frameId", reinterpret_cast<uintptr_t>(loader->frame())); + documentLoaderObject->setNumber("loaderId", reinterpret_cast<uintptr_t>(loader)); + documentLoaderObject->setString("url", loader->requestURL().string()); + return documentLoaderObject; +} + +static PassRefPtr<InspectorObject> buildObjectForFrameResource(Frame* frame) { FrameLoader* frameLoader = frame->loader(); DocumentLoader* loader = frameLoader->documentLoader(); RefPtr<InspectorObject> resourceObject = InspectorObject::create(); resourceObject->setString("url", loader->url().string()); - resourceObject->setString("host", loader->url().host()); - resourceObject->setString("path", loader->url().path()); - resourceObject->setString("lastPathComponent", loader->url().lastPathComponent()); - resourceObject->setString("type", "Document"); + resourceObject->setObject("loader", buildObjectForDocumentLoader(loader)); resourceObject->setObject("request", buildObjectForResourceRequest(loader->request())); resourceObject->setObject("response", buildObjectForResourceResponse(loader->response())); return resourceObject; @@ -236,21 +242,20 @@ static String cachedResourceTypeString(const CachedResource& cachedResource) } } -static PassRefPtr<InspectorObject> buildObjectForCachedResource(const CachedResource& cachedResource) +static PassRefPtr<InspectorObject> buildObjectForCachedResource(DocumentLoader* loader, const CachedResource& cachedResource) { RefPtr<InspectorObject> resourceObject = InspectorObject::create(); resourceObject->setString("url", cachedResource.url()); resourceObject->setString("type", cachedResourceTypeString(cachedResource)); resourceObject->setNumber("encodedSize", cachedResource.encodedSize()); resourceObject->setObject("response", buildObjectForResourceResponse(cachedResource.response())); + resourceObject->setObject("loader", buildObjectForDocumentLoader(loader)); return resourceObject; } -static PassRefPtr<InspectorObject> buildObjectForFrameResources(Frame* frame) +static void populateObjectWithFrameResources(Frame* frame, PassRefPtr<InspectorObject> frameResources) { - RefPtr<InspectorObject> frameResources = InspectorObject::create(); - frameResources->setNumber("frameID", reinterpret_cast<uintptr_t>(frame)); - frameResources->setObject("mainResource", buildObjectForMainResource(frame)); + frameResources->setObject("resource", buildObjectForFrameResource(frame)); RefPtr<InspectorArray> subresources = InspectorArray::create(); frameResources->setArray("subresources", subresources); @@ -258,19 +263,19 @@ static PassRefPtr<InspectorObject> buildObjectForFrameResources(Frame* frame) CachedResourceLoader::DocumentResourceMap::const_iterator end = allResources.end(); for (CachedResourceLoader::DocumentResourceMap::const_iterator it = allResources.begin(); it != end; ++it) { CachedResource* cachedResource = it->second.get(); - if (cachedResource) - subresources->pushValue(buildObjectForCachedResource(*cachedResource)); + RefPtr<InspectorObject> cachedResourceObject = buildObjectForCachedResource(frame->loader()->documentLoader(), *cachedResource); + subresources->pushValue(cachedResourceObject); } - return frameResources; } InspectorResourceAgent::~InspectorResourceAgent() { } -void InspectorResourceAgent::identifierForInitialRequest(unsigned long identifier, const KURL& url, DocumentLoader* loader, bool isMainResource) +void InspectorResourceAgent::identifierForInitialRequest(unsigned long identifier, const KURL& url, DocumentLoader* loader) { - m_frontend->identifierForInitialRequest(identifier, url.string(), reinterpret_cast<uintptr_t>(loader->frame()), isMainResource); + RefPtr<InspectorObject> loaderObject = buildObjectForDocumentLoader(loader); + m_frontend->identifierForInitialRequest(identifier, url.string(), loaderObject); } void InspectorResourceAgent::willSendRequest(unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse) @@ -321,8 +326,7 @@ void InspectorResourceAgent::didFailLoading(unsigned long identifier, const Reso void InspectorResourceAgent::didLoadResourceFromMemoryCache(DocumentLoader* loader, const CachedResource* resource) { - Frame* frame = loader->frame(); - m_frontend->didLoadResourceFromMemoryCache(currentTime(), reinterpret_cast<uintptr_t>(frame), buildObjectForCachedResource(*resource)); + m_frontend->didLoadResourceFromMemoryCache(currentTime(), buildObjectForCachedResource(loader, *resource)); } void InspectorResourceAgent::setOverrideContent(unsigned long identifier, const String& sourceString, InspectorResource::Type type) @@ -342,10 +346,28 @@ void InspectorResourceAgent::setOverrideContent(unsigned long identifier, const m_frontend->setOverrideContent(identifier, sourceString, typeString); } +static PassRefPtr<InspectorObject> buildObjectForFrameTree(Frame* frame, bool dumpResources) +{ + RefPtr<InspectorObject> frameObject = InspectorObject::create(); + frameObject->setNumber("parentId", reinterpret_cast<uintptr_t>(frame->tree()->parent())); + frameObject->setNumber("id", reinterpret_cast<uintptr_t>(frame)); + if (dumpResources) + populateObjectWithFrameResources(frame, frameObject); + RefPtr<InspectorArray> childrenArray; + for (Frame* child = frame->tree()->firstChild(); child; child = child->tree()->nextSibling()) { + if (!childrenArray) { + childrenArray = InspectorArray::create(); + frameObject->setArray("children", childrenArray); + } + childrenArray->pushObject(buildObjectForFrameTree(child, dumpResources)); + } + return frameObject; +} + void InspectorResourceAgent::didCommitLoad(DocumentLoader* loader) { - Frame* frame = loader->frame(); - m_frontend->didCommitLoad(reinterpret_cast<uintptr_t>(frame)); + Frame* parentFrame = loader->frame()->tree()->parent(); + m_frontend->didCommitLoadForFrame(reinterpret_cast<uintptr_t>(parentFrame), buildObjectForDocumentLoader(loader)); } void InspectorResourceAgent::frameDetachedFromParent(Frame* frame) @@ -353,7 +375,6 @@ void InspectorResourceAgent::frameDetachedFromParent(Frame* frame) m_frontend->frameDetachedFromParent(reinterpret_cast<uintptr_t>(frame)); } - #if ENABLE(WEB_SOCKETS) // FIXME: More this into the front-end? @@ -404,19 +425,20 @@ void InspectorResourceAgent::didCloseWebSocket(unsigned long identifier) } #endif // ENABLE(WEB_SOCKETS) -void InspectorResourceAgent::cachedResources(RefPtr<InspectorArray>* resources) +void InspectorResourceAgent::cachedResources(RefPtr<InspectorObject>* object) { - for (Frame* frame = m_page->mainFrame(); frame; frame = frame->tree()->traverseNext(m_page->mainFrame())) - (*resources)->pushObject(buildObjectForFrameResources(frame)); + *object = buildObjectForFrameTree(m_page->mainFrame(), true); } -void InspectorResourceAgent::resourceContent(unsigned long frameID, const String& url, String* content) +void InspectorResourceAgent::resourceContent(unsigned long frameId, const String& url, bool base64Encode, String* content) { - RefPtr<InspectorArray> frameResources = InspectorArray::create(); for (Frame* frame = m_page->mainFrame(); frame; frame = frame->tree()->traverseNext(m_page->mainFrame())) { - if (reinterpret_cast<uintptr_t>(frame) != frameID) + if (reinterpret_cast<uintptr_t>(frame) != frameId) continue; - InspectorResourceAgent::resourceContent(frame, KURL(ParsedURLString, url), content); + if (base64Encode) + InspectorResourceAgent::resourceContentBase64(frame, KURL(ParsedURLString, url), content); + else + InspectorResourceAgent::resourceContent(frame, KURL(ParsedURLString, url), content); break; } } |