[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

pfeldman at chromium.org pfeldman at chromium.org
Wed Dec 22 15:10:20 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f13f4fe005cba23bb37fee6d28071c3cdb80b57f
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Oct 28 21:09:32 2010 +0000

    2010-10-28  Pavel Feldman  <pfeldman at chromium.org>
    
            Not reviewed. Rolling out r70800.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 28b42a7..8350e62 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,7 @@
+2010-10-28  Pavel Feldman  <pfeldman at chromium.org>
+
+        Not reviewed. Rolling out r70800.
+
 2010-10-28  Alexey Proskuryakov  <ap at apple.com>
 
         Reviewed by Dan Bernstein.
diff --git a/WebCore/English.lproj/localizedStrings.js b/WebCore/English.lproj/localizedStrings.js
index c432f73..7403b22 100644
Binary files a/WebCore/English.lproj/localizedStrings.js and b/WebCore/English.lproj/localizedStrings.js differ
diff --git a/WebCore/inspector/InspectorCSSStore.cpp b/WebCore/inspector/InspectorCSSStore.cpp
index b75f11b..e0b658f 100644
--- a/WebCore/inspector/InspectorCSSStore.cpp
+++ b/WebCore/inspector/InspectorCSSStore.cpp
@@ -44,7 +44,6 @@
 #include "HTMLHeadElement.h"
 #include "InspectorController.h"
 #include "InspectorResource.h"
-#include "InspectorResourceAgent.h"
 #include "Node.h"
 #include "PlatformString.h"
 #include "SharedBuffer.h"
@@ -143,7 +142,7 @@ String InspectorCSSStore::styleSheetText(long styleSheetId)
 
 bool InspectorCSSStore::resourceStyleSheetText(CSSStyleSheet* styleSheet, String* result)
 {
-    return InspectorResourceAgent::resourceContent(styleSheet->document()->frame(), styleSheet->finalURL(), result);
+    return m_inspectorController->resourceContentForURL(styleSheet->finalURL(), styleSheet->document(), result);
 }
 
 String InspectorCSSStore::inlineStyleSheetText(CSSStyleSheet* styleSheet)
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index 26907a4..31f4505 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -68,6 +68,7 @@
 #include "InspectorFrontendClient.h"
 #include "InspectorInstrumentation.h"
 #include "InspectorProfilerAgent.h"
+#include "InspectorResource.h"
 #include "InspectorResourceAgent.h"
 #include "InspectorState.h"
 #include "InspectorStorageAgent.h"
@@ -100,11 +101,6 @@
 #include <wtf/ListHashSet.h>
 #include <wtf/RefCounted.h>
 #include <wtf/StdLibExtras.h>
-#include <wtf/UnusedParam.h>
-
-#if LEGACY_RESOURCE_TRACKING_ENABLED
-#include "InspectorResource.h"
-#endif
 
 #if ENABLE(DATABASE)
 #include "Database.h"
@@ -144,7 +140,6 @@ InspectorController::InspectorController(Page* page, InspectorClient* client)
     , m_client(client)
     , m_openingFrontend(false)
     , m_cssStore(new InspectorCSSStore(this))
-    , m_mainResourceIdentifier(0)
     , m_loadEventTime(-1.0)
     , m_domContentEventTime(-1.0)
     , m_expiredConsoleMessageCount(0)
@@ -173,9 +168,7 @@ InspectorController::~InspectorController()
     ASSERT(!m_inspectedPage);
     ASSERT(!m_highlightedNode);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     deleteAllValues(m_frameResources);
-#endif
 
     releaseFrontendLifetimeAgents();
 
@@ -232,12 +225,10 @@ bool InspectorController::searchingForNodeInPage() const
     return m_state->getBoolean(InspectorState::searchingForNode);
 }
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
 bool InspectorController::resourceTrackingEnabled() const
 {
     return m_state->getBoolean(InspectorState::resourceTrackingEnabled);
 }
-#endif
 
 void InspectorController::getInspectorState(RefPtr<InspectorObject>* state)
 {
@@ -491,10 +482,8 @@ void InspectorController::connectFrontend()
     releaseFrontendLifetimeAgents();
     m_frontend = new InspectorFrontend(m_client);
     m_domAgent = InspectorDOMAgent::create(m_cssStore.get(), m_frontend.get());
-
-#if !LEGACY_RESOURCE_TRACKING_ENABLED
-    m_resourceAgent = InspectorResourceAgent::create(m_inspectedPage, m_frontend.get());
-#endif
+    // FIXME: enable resource agent once front-end is ready.
+    // m_resourceAgent = InspectorResourceAgent::create(m_inspectedPage, m_frontend.get());
 
 #if ENABLE(DATABASE)
     m_storageAgent = InspectorStorageAgent::create(m_frontend.get());
@@ -602,9 +591,7 @@ void InspectorController::disconnectFrontend()
 
 void InspectorController::releaseFrontendLifetimeAgents()
 {
-#if !LEGACY_RESOURCE_TRACKING_ENABLED
     m_resourceAgent.clear();
-#endif
 
     // m_domAgent is RefPtr. Remove DOM listeners first to ensure that there are
     // no references to the DOM agent from the DOM tree.
@@ -639,12 +626,9 @@ void InspectorController::populateScriptObjects()
         m_frontend->profilerWasEnabled();
 #endif
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     ResourcesMap::iterator resourcesEnd = m_resources.end();
     for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it)
         it->second->updateScriptObject(m_frontend.get());
-#endif
-
     if (m_domContentEventTime != -1.0)
         m_frontend->domContentEventFired(m_domContentEventTime);
     if (m_loadEventTime != -1.0)
@@ -707,12 +691,10 @@ void InspectorController::restoreProfiler()
 
 void InspectorController::unbindAllResources()
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     ResourcesMap::iterator resourcesEnd = m_resources.end();
     for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it)
         it->second->releaseScriptObject(0);
-#endif
-    
+
 #if ENABLE(DATABASE)
     DatabaseResourcesMap::iterator databasesEnd = m_databaseResources.end();
     for (DatabaseResourcesMap::iterator it = m_databaseResources.begin(); it != databasesEnd; ++it)
@@ -727,7 +709,6 @@ void InspectorController::unbindAllResources()
         m_timelineAgent->reset();
 }
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
 void InspectorController::pruneResources(ResourcesMap* resourceMap, DocumentLoader* loaderToKeep)
 {
     ASSERT_ARG(resourceMap, resourceMap);
@@ -746,17 +727,15 @@ void InspectorController::pruneResources(ResourcesMap* resourceMap, DocumentLoad
         }
     }
 }
-#endif
 
 void InspectorController::didCommitLoad(DocumentLoader* loader)
 {
     if (!enabled())
         return;
 
-#if !LEGACY_RESOURCE_TRACKING_ENABLED
-    m_resourceAgent->didCommitLoad(loader);
-#endif
-    
+    if (m_resourceAgent)
+        m_resourceAgent->didCommitLoad(loader);
+
     ASSERT(m_inspectedPage);
 
     if (loader->frame() == m_inspectedPage->mainFrame()) {
@@ -803,7 +782,6 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
 #endif
 
         if (m_frontend) {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
             if (!loader->frameLoader()->isLoadingFromCachedPage()) {
                 ASSERT(m_mainResource && m_mainResource->isSameLoader(loader));
                 // We don't add the main resource until its load is committed. This is
@@ -817,18 +795,14 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
                 // identifierForInitialRequest.
                 m_mainResource = 0;
             }
-#endif
-            m_mainResourceIdentifier = 0;
             m_frontend->didCommitLoad();
             m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
         }
     }
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     for (Frame* frame = loader->frame(); frame; frame = frame->tree()->traverseNext(loader->frame()))
         if (ResourcesMap* resourceMap = m_frameResources.get(frame))
             pruneResources(resourceMap, loader);
-#endif
 }
 
 void InspectorController::frameDetachedFromParent(Frame* rootFrame)
@@ -836,16 +810,14 @@ void InspectorController::frameDetachedFromParent(Frame* rootFrame)
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->frameDetachedFromParent(rootFrame);
+
     for (Frame* frame = rootFrame; frame; frame = frame->tree()->traverseNext(rootFrame))
         if (ResourcesMap* resourceMap = m_frameResources.get(frame))
             removeAllResources(resourceMap);
-#else
-    m_resourceAgent->frameDetachedFromParent(rootFrame);
-#endif
 }
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
 void InspectorController::addResource(InspectorResource* resource)
 {
     m_resources.set(resource->identifier(), resource);
@@ -901,14 +873,24 @@ InspectorResource* InspectorController::getTrackedResource(unsigned long identif
 
     return 0;
 }
-#endif
+
+InspectorResource* InspectorController::resourceForURL(const String& url)
+{
+    for (InspectorController::ResourcesMap::iterator resIt = m_resources.begin(); resIt != m_resources.end(); ++resIt) {
+        if (resIt->second->requestURL().string() == url)
+            return resIt->second.get();
+    }
+    return 0;
+}
 
 void InspectorController::didLoadResourceFromMemoryCache(DocumentLoader* loader, const CachedResource* cachedResource)
 {
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
+
     // If the resource URL is already known, we don't need to add it again since this is just a cached load.
     if (m_knownResources.contains(cachedResource->url()))
         return;
@@ -930,9 +912,6 @@ void InspectorController::didLoadResourceFromMemoryCache(DocumentLoader* loader,
 
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didLoadResourceFromMemoryCache(loader, cachedResource);
-#endif
 }
 
 void InspectorController::identifierForInitialRequest(unsigned long identifier, DocumentLoader* loader, const ResourceRequest& request)
@@ -941,11 +920,10 @@ void InspectorController::identifierForInitialRequest(unsigned long identifier,
         return;
     ASSERT(m_inspectedPage);
 
-    bool isMainResource = isMainResourceLoader(loader, request.url());
-    if (isMainResource)
-        m_mainResourceIdentifier = identifier;
+    if (m_resourceAgent)
+        m_resourceAgent->identifierForInitialRequest(identifier, request.url(), loader);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    bool isMainResource = isMainResourceLoader(loader, request.url());
 
     ensureSettingsLoaded();
     if (!isMainResource && !resourceTrackingEnabled())
@@ -962,9 +940,6 @@ void InspectorController::identifierForInitialRequest(unsigned long identifier,
 
     if (m_frontend && loader->frameLoader()->isLoadingFromCachedPage() && resource == m_mainResource)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->identifierForInitialRequest(identifier, request.url(), loader);
-#endif
 }
 
 void InspectorController::mainResourceFiredDOMContentEvent(DocumentLoader* loader, const KURL& url)
@@ -1001,22 +976,23 @@ void InspectorController::willSendRequest(unsigned long identifier, ResourceRequ
     if (!enabled())
         return;
 
-    request.setReportLoadTiming(true);
-    // Only enable raw headers if front-end is attached, as otherwise we may lack
-    // permissions to fetch the headers.
-    if (m_frontend)
-        request.setReportRawHeaders(true);
-
-    bool isMainResource = m_mainResourceIdentifier == identifier;
+    if (m_resourceAgent)
+        m_resourceAgent->willSendRequest(identifier, request, redirectResponse);
 
+    bool isMainResource = (m_mainResource && m_mainResource->identifier() == identifier);
     if (m_timelineAgent)
         m_timelineAgent->willSendResourceRequest(identifier, isMainResource, request);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
 
+    request.setReportLoadTiming(true);
+    // Only enable raw headers if front-end is attached, as otherwise we may lack
+    // permissions to fetch the headers.
+    if (m_frontend)
+        request.setReportRawHeaders(true);
+
     if (!redirectResponse.isNull()) {
         // Redirect may have empty URL and we'd like to not crash with invalid HashMap entry.
         // See http/tests/misc/will-send-request-returns-null-on-redirect.html
@@ -1042,9 +1018,6 @@ void InspectorController::willSendRequest(unsigned long identifier, ResourceRequ
 
     if (resource != m_mainResource && m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->willSendRequest(identifier, request, redirectResponse);
-#endif
 }
 
 void InspectorController::markResourceAsCached(unsigned long identifier)
@@ -1052,12 +1025,11 @@ void InspectorController::markResourceAsCached(unsigned long identifier)
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->markResourceAsCached(identifier);
+
     if (RefPtr<InspectorResource> resource = getTrackedResource(identifier))
         resource->markAsCached();
-#else
-    m_resourceAgent->markResourceAsCached(identifier);
-#endif
 }
 
 void InspectorController::didReceiveResponse(unsigned long identifier, DocumentLoader* loader, const ResourceResponse& response)
@@ -1065,17 +1037,19 @@ void InspectorController::didReceiveResponse(unsigned long identifier, DocumentL
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didReceiveResponse(identifier, loader, response);
+
     if (RefPtr<InspectorResource> resource = getTrackedResource(identifier)) {
         resource->updateResponse(response);
 
         if (resource != m_mainResource && m_frontend)
             resource->updateScriptObject(m_frontend.get());
     }
-    UNUSED_PARAM(loader);
-#else
-    m_resourceAgent->didReceiveResponse(identifier, loader, response);
-#endif
+    if (response.httpStatusCode() >= 400) {
+        String message = makeString("Failed to load resource: the server responded with a status of ", String::number(response.httpStatusCode()), " (", response.httpStatusText(), ')');
+        addMessageToConsole(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 0, response.url().string());
+    }
 }
 
 void InspectorController::didReceiveContentLength(unsigned long identifier, int lengthReceived)
@@ -1083,7 +1057,9 @@ void InspectorController::didReceiveContentLength(unsigned long identifier, int
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didReceiveContentLength(identifier, lengthReceived);
+
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
@@ -1092,9 +1068,6 @@ void InspectorController::didReceiveContentLength(unsigned long identifier, int
 
     if (resource != m_mainResource && m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didReceiveContentLength(identifier, lengthReceived);
-#endif
 }
 
 void InspectorController::didFinishLoading(unsigned long identifier, double finishTime)
@@ -1102,10 +1075,12 @@ void InspectorController::didFinishLoading(unsigned long identifier, double fini
     if (!enabled())
         return;
 
+    if (m_resourceAgent)
+        m_resourceAgent->didFinishLoading(identifier, finishTime);
+
     if (m_timelineAgent)
         m_timelineAgent->didFinishLoadingResource(identifier, false, finishTime);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
@@ -1115,9 +1090,6 @@ void InspectorController::didFinishLoading(unsigned long identifier, double fini
     // No need to mute this event for main resource since it happens after did commit load.
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didFinishLoading(identifier, finishTime);
-#endif
 }
 
 void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& error)
@@ -1125,23 +1097,27 @@ void InspectorController::didFailLoading(unsigned long identifier, const Resourc
     if (!enabled())
         return;
 
+    if (m_resourceAgent)
+        m_resourceAgent->didFailLoading(identifier, error);
+
     if (m_timelineAgent)
         m_timelineAgent->didFinishLoadingResource(identifier, true, 0);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    String message = "Failed to load resource";
+    if (!error.localizedDescription().isEmpty())
+        message += ": " + error.localizedDescription();
+    addMessageToConsole(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 0, error.failingURL());
+
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
 
-    resource->markFailed(error.localizedDescription());
+    resource->markFailed();
     resource->endTiming(0);
 
     // No need to mute this event for main resource since it happens after did commit load.
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didFailLoading(identifier, error);
-#endif
 }
 
 void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber)
@@ -1149,10 +1125,12 @@ void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identi
     if (!enabled())
         return;
 
+    if (m_resourceAgent)
+        m_resourceAgent->setOverrideContent(identifier, sourceString, InspectorResource::XHR);
+
     if (m_state->getBoolean(InspectorState::monitoringXHR))
         addMessageToConsole(JSMessageSource, LogMessageType, LogMessageLevel, "XHR finished loading: \"" + url + "\".", sendLineNumber, sendURL);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     if (!resourceTrackingEnabled())
         return;
 
@@ -1164,9 +1142,6 @@ void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identi
 
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->setOverrideContent(identifier, sourceString, InspectorResource::XHR);
-#endif
 }
 
 void InspectorController::scriptImported(unsigned long identifier, const String& sourceString)
@@ -1174,7 +1149,9 @@ void InspectorController::scriptImported(unsigned long identifier, const String&
     if (!enabled())
         return;
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->setOverrideContent(identifier, sourceString, InspectorResource::Script);
+
     if (!resourceTrackingEnabled())
         return;
 
@@ -1186,12 +1163,8 @@ void InspectorController::scriptImported(unsigned long identifier, const String&
 
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->setOverrideContent(identifier, sourceString, InspectorResource::Script);
-#endif
 }
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
 void InspectorController::setResourceTrackingEnabled(bool enable)
 {
     if (!enabled())
@@ -1200,11 +1173,9 @@ void InspectorController::setResourceTrackingEnabled(bool enable)
     ASSERT(m_inspectedPage);
     m_state->setBoolean(InspectorState::resourceTrackingEnabled, enable);
 }
-#endif
 
 void InspectorController::setResourceTrackingEnabled(bool enable, bool always, bool* newState)
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     *newState = enable;
 
     if (always)
@@ -1218,11 +1189,6 @@ void InspectorController::setResourceTrackingEnabled(bool enable, bool always, b
 
     if (enable)
         reloadPage();
-#else
-    UNUSED_PARAM(enable);
-    UNUSED_PARAM(always);
-    UNUSED_PARAM(newState);
-#endif
 }
 
 void InspectorController::ensureSettingsLoaded()
@@ -1382,35 +1348,33 @@ void InspectorController::getCookies(RefPtr<InspectorArray>* cookies, WTF::Strin
     // always return the same true/false value.
     bool rawCookiesImplemented = false;
 
-    for (Frame* frame = m_inspectedPage->mainFrame(); frame; frame = frame->tree()->traverseNext(m_inspectedPage->mainFrame())) {
-        Document* document = frame->document();
-        const CachedResourceLoader::DocumentResourceMap& allResources = document->cachedResourceLoader()->allCachedResources();
-        CachedResourceLoader::DocumentResourceMap::const_iterator end = allResources.end();
-        for (CachedResourceLoader::DocumentResourceMap::const_iterator it = allResources.begin(); it != end; ++it) {
-            Vector<Cookie> docCookiesList;
-            rawCookiesImplemented = getRawCookies(document, KURL(ParsedURLString, it->second->url()), docCookiesList);
-
-            if (!rawCookiesImplemented) {
-                // FIXME: We need duplication checking for the String representation of cookies.
-                ExceptionCode ec = 0;
-                stringCookiesList += document->cookie(ec);
-                // Exceptions are thrown by cookie() in sandboxed frames. That won't happen here
-                // because "document" is the document of the main frame of the page.
-                ASSERT(!ec);
-            } else {
-                int cookiesSize = docCookiesList.size();
-                for (int i = 0; i < cookiesSize; i++) {
-                    if (!rawCookiesList.contains(docCookiesList[i]))
-                        rawCookiesList.add(docCookiesList[i]);
-                }
+    ResourcesMap::iterator resourcesEnd = m_resources.end();
+    for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it) {
+        Document* document = it->second->frame()->document();
+        Vector<Cookie> docCookiesList;
+        rawCookiesImplemented = getRawCookies(document, it->second->requestURL(), docCookiesList);
+
+        if (!rawCookiesImplemented) {
+            // FIXME: We need duplication checking for the String representation of cookies.
+            ExceptionCode ec = 0;
+            stringCookiesList += document->cookie(ec);
+            // Exceptions are thrown by cookie() in sandboxed frames. That won't happen here
+            // because "document" is the document of the main frame of the page.
+            ASSERT(!ec);
+        } else {
+            int cookiesSize = docCookiesList.size();
+            for (int i = 0; i < cookiesSize; i++) {
+                if (!rawCookiesList.contains(docCookiesList[i]))
+                    rawCookiesList.add(docCookiesList[i]);
             }
         }
     }
 
     if (rawCookiesImplemented)
         *cookies = buildArrayForCookies(rawCookiesList);
-    else
+    else {
         *cookiesString = stringCookiesList;
+    }
 }
 
 PassRefPtr<InspectorArray> InspectorController::buildArrayForCookies(ListHashSet<Cookie>& cookiesList)
@@ -1442,14 +1406,11 @@ PassRefPtr<InspectorObject> InspectorController::buildObjectForCookie(const Cook
 
 void InspectorController::deleteCookie(const String& cookieName, const String& domain)
 {
-    for (Frame* frame = m_inspectedPage->mainFrame(); frame; frame = frame->tree()->traverseNext(m_inspectedPage->mainFrame())) {
-        Document* document = frame->document();
-        if (document->url().host() != domain)
-            continue;
-        const CachedResourceLoader::DocumentResourceMap& allResources = document->cachedResourceLoader()->allCachedResources();
-        CachedResourceLoader::DocumentResourceMap::const_iterator end = allResources.end();
-        for (CachedResourceLoader::DocumentResourceMap::const_iterator it = allResources.begin(); it != end; ++it)
-            WebCore::deleteCookie(document, KURL(ParsedURLString, it->second->url()), cookieName);
+    ResourcesMap::iterator resourcesEnd = m_resources.end();
+    for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it) {
+        Document* document = it->second->frame()->document();
+        if (document->url().host() == domain)
+            WebCore::deleteCookie(document, it->second->requestURL(), cookieName);
     }
 }
 
@@ -1547,21 +1508,21 @@ void InspectorController::didCreateWebSocket(unsigned long identifier, const KUR
         return;
     ASSERT(m_inspectedPage);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didCreateWebSocket(identifier, requestURL);
+
     RefPtr<InspectorResource> resource = InspectorResource::createWebSocket(identifier, requestURL, documentURL);
     addResource(resource.get());
 
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didCreateWebSocket(identifier, requestURL);
-    UNUSED_PARAM(documentURL);
-#endif
 }
 
 void InspectorController::willSendWebSocketHandshakeRequest(unsigned long identifier, const WebSocketHandshakeRequest& request)
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->willSendWebSocketHandshakeRequest(identifier, request);
+
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
@@ -1569,14 +1530,13 @@ void InspectorController::willSendWebSocketHandshakeRequest(unsigned long identi
     resource->updateWebSocketRequest(request);
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->willSendWebSocketHandshakeRequest(identifier, request);
-#endif
 }
 
 void InspectorController::didReceiveWebSocketHandshakeResponse(unsigned long identifier, const WebSocketHandshakeResponse& response)
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didReceiveWebSocketHandshakeResponse(identifier, response);
+
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
@@ -1586,14 +1546,13 @@ void InspectorController::didReceiveWebSocketHandshakeResponse(unsigned long ide
     resource->updateWebSocketResponse(response);
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didReceiveWebSocketHandshakeResponse(identifier, response);
-#endif
 }
 
 void InspectorController::didCloseWebSocket(unsigned long identifier)
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
+    if (m_resourceAgent)
+        m_resourceAgent->didCloseWebSocket(identifier);
+
     RefPtr<InspectorResource> resource = getTrackedResource(identifier);
     if (!resource)
         return;
@@ -1601,9 +1560,6 @@ void InspectorController::didCloseWebSocket(unsigned long identifier)
     resource->endTiming(0);
     if (m_frontend)
         resource->updateScriptObject(m_frontend.get());
-#else
-    m_resourceAgent->didCloseWebSocket(identifier);
-#endif
 }
 #endif // ENABLE(WEB_SOCKETS)
 
@@ -1817,7 +1773,9 @@ void InspectorController::didEvaluateForTestInFrontend(long callId, const String
 String InspectorController::breakpointsSettingKey()
 {
     DEFINE_STATIC_LOCAL(String, keyPrefix, ("breakpoints:"));
-    return keyPrefix + InspectorDebuggerAgent::md5Base16(m_inspectedPage->mainFrame()->loader()->url().string());
+    if (!m_mainResource)
+        return "";
+    return keyPrefix + InspectorDebuggerAgent::md5Base16(m_mainResource->requestURL());
 }
 
 PassRefPtr<InspectorValue> InspectorController::loadBreakpoints()
@@ -2149,18 +2107,55 @@ void InspectorController::setInspectorExtensionAPI(const String& source)
 
 void InspectorController::getResourceContent(unsigned long identifier, bool encode, String* content)
 {
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     RefPtr<InspectorResource> resource = m_resources.get(identifier);
     if (!resource) {
         *content = String();
         return;
     }
     *content = encode ? resource->sourceBytes() : resource->sourceString();
-#else
-    UNUSED_PARAM(identifier);
-    UNUSED_PARAM(encode);
-    UNUSED_PARAM(content);
-#endif
+}
+
+bool InspectorController::resourceContentForURL(const KURL& url, Document* frameDocument, String* result)
+{
+    if (!frameDocument)
+        return false;
+
+    String textEncodingName;
+    RefPtr<SharedBuffer> buffer;
+    if (equalIgnoringFragmentIdentifier(url, frameDocument->frame()->loader()->documentLoader()->requestURL())) {
+        textEncodingName = frameDocument->inputEncoding();
+        buffer = frameDocument->frame()->loader()->provisionalDocumentLoader()->mainResourceData();
+    } else {
+        const String& urlString = url.string();
+        CachedResource* cachedResource = frameDocument->cachedResourceLoader()->cachedResource(urlString);
+        if (!cachedResource)
+            cachedResource = cache()->resourceForURL(urlString);
+
+        ASSERT(cachedResource); // FIXME(apavlov): This might be too aggressive.
+
+        bool isUnpurgeable = true;
+        if (cachedResource->isPurgeable()) {
+            // If the resource is purgeable then make it unpurgeable to get
+            // its data. This might fail, in which case we return an
+            // empty String.
+            if (!cachedResource->makePurgeable(false))
+                isUnpurgeable = false;
+        }
+        if (isUnpurgeable) {
+            textEncodingName = cachedResource->encoding();
+            buffer = cachedResource->data();
+        }
+    }
+
+    if (buffer) {
+        TextEncoding encoding(textEncodingName);
+        if (!encoding.isValid())
+            encoding = WindowsLatin1Encoding();
+        *result = encoding.decode(buffer->data(), buffer->size());
+        return true;
+    }
+
+    return false;
 }
 
 void InspectorController::reloadPage()
diff --git a/WebCore/inspector/InspectorController.h b/WebCore/inspector/InspectorController.h
index 917968c..18db07f 100644
--- a/WebCore/inspector/InspectorController.h
+++ b/WebCore/inspector/InspectorController.h
@@ -67,6 +67,7 @@ class InspectorFrontend;
 class InspectorFrontendClient;
 class InspectorObject;
 class InspectorProfilerAgent;
+class InspectorResource;
 class InspectorResourceAgent;
 class InspectorState;
 class InspectorStorageAgent;
@@ -86,12 +87,6 @@ class SharedBuffer;
 class Storage;
 class StorageArea;
 
-#define LEGACY_RESOURCE_TRACKING_ENABLED 1
-
-#if LEGACY_RESOURCE_TRACKING_ENABLED
-class InspectorResource;
-#endif
-
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
 class InspectorApplicationCacheAgent;
 #endif
@@ -103,10 +98,8 @@ class WebSocketHandshakeResponse;
 
 class InspectorController : public Noncopyable {
 public:
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     typedef HashMap<unsigned long, RefPtr<InspectorResource> > ResourcesMap;
     typedef HashMap<RefPtr<Frame>, ResourcesMap*> FrameResourcesMap;
-#endif
     typedef HashMap<int, RefPtr<InspectorDatabaseResource> > DatabaseResourcesMap;
     typedef HashMap<int, RefPtr<InspectorDOMStorageResource> > DOMStorageResourcesMap;
 
@@ -176,11 +169,9 @@ public:
     void resourceRetrievedByXMLHttpRequest(unsigned long identifier, const String& sourceString, const String& url, const String& sendURL, unsigned sendLineNumber);
     void scriptImported(unsigned long identifier, const String& sourceString);
 
-    void setResourceTrackingEnabled(bool enabled, bool always, bool* newState);
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     void setResourceTrackingEnabled(bool enabled);
+    void setResourceTrackingEnabled(bool enabled, bool always, bool* newState);
     bool resourceTrackingEnabled() const;
-#endif
 
     void ensureSettingsLoaded();
 
@@ -223,10 +214,9 @@ public:
     void didCloseWebSocket(unsigned long identifier);
 #endif
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     const ResourcesMap& resources() const { return m_resources; }
-#endif
-
+    InspectorResource* resourceForURL(const String& url);
+    bool resourceContentForURL(const KURL& url, Document* loaderDocument, String* result);
     bool hasFrontend() const { return m_frontend; }
 
     void drawNodeHighlight(GraphicsContext&) const;
@@ -326,14 +316,13 @@ private:
 
     void addConsoleMessage(PassOwnPtr<ConsoleMessage>);
 
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     void addResource(InspectorResource*);
     void removeResource(InspectorResource*);
     InspectorResource* getTrackedResource(unsigned long identifier);
+    void getResourceContent(unsigned long identifier, bool encode, String* content);
+
     void pruneResources(ResourcesMap*, DocumentLoader* loaderToKeep = 0);
     void removeAllResources(ResourcesMap* map) { pruneResources(map); }
-#endif
-    void getResourceContent(unsigned long identifier, bool encode, String* content);
 
     bool isMainResourceLoader(DocumentLoader* loader, const KURL& requestUrl);
 
@@ -352,6 +341,7 @@ private:
     bool m_openingFrontend;
     OwnPtr<InspectorFrontend> m_frontend;
     RefPtr<InspectorDOMAgent> m_domAgent;
+    RefPtr<InspectorResourceAgent> m_resourceAgent;
     RefPtr<InspectorStorageAgent> m_storageAgent;
     OwnPtr<InspectorCSSStore> m_cssStore;
     OwnPtr<InspectorTimelineAgent> m_timelineAgent;
@@ -360,15 +350,12 @@ private:
 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
     OwnPtr<InspectorApplicationCacheAgent> m_applicationCacheAgent;
 #endif
+
     RefPtr<Node> m_nodeToFocus;
-#if LEGACY_RESOURCE_TRACKING_ENABLED
     RefPtr<InspectorResource> m_mainResource;
     ResourcesMap m_resources;
     HashSet<String> m_knownResources;
     FrameResourcesMap m_frameResources;
-#endif
-    RefPtr<InspectorResourceAgent> m_resourceAgent;
-    unsigned long m_mainResourceIdentifier;
     double m_loadEventTime;
     double m_domContentEventTime;
     Vector<OwnPtr<ConsoleMessage> > m_consoleMessages;
diff --git a/WebCore/inspector/InspectorResource.cpp b/WebCore/inspector/InspectorResource.cpp
index 9b3f95d..05b1bff 100644
--- a/WebCore/inspector/InspectorResource.cpp
+++ b/WebCore/inspector/InspectorResource.cpp
@@ -302,7 +302,6 @@ void InspectorResource::updateScriptObject(InspectorFrontend* frontend)
 
     if (m_changes.hasChange(CompletionChange)) {
         jsonObject->setBoolean("failed", m_failed);
-        jsonObject->setString("localizedFailDescription", m_localizedFailDescription);
         jsonObject->setBoolean("finished", m_finished);
         jsonObject->setBoolean("didCompletionChange", true);
     }
@@ -437,10 +436,9 @@ void InspectorResource::endTiming(double actualEndTime)
     m_changes.set(CompletionChange);
 }
 
-void InspectorResource::markFailed(const String& localizedDescription)
+void InspectorResource::markFailed()
 {
     m_failed = true;
-    m_localizedFailDescription = localizedDescription;
     m_changes.set(CompletionChange);
 }
 
diff --git a/WebCore/inspector/InspectorResource.h b/WebCore/inspector/InspectorResource.h
index aa4c3b1..aa6001f 100644
--- a/WebCore/inspector/InspectorResource.h
+++ b/WebCore/inspector/InspectorResource.h
@@ -116,7 +116,7 @@ namespace WebCore {
         void startTiming();
         void endTiming(double actualEndTime);
 
-        void markFailed(const String& localizedDescription);
+        void markFailed();
         void addLength(int lengthReceived);
 
     private:
@@ -175,7 +175,6 @@ namespace WebCore {
         bool m_cached;
         bool m_finished;
         bool m_failed;
-        String m_localizedFailDescription;
         int m_length;
         int m_responseStatusCode;
         String m_responseStatusText;
diff --git a/WebCore/inspector/InspectorResourceAgent.cpp b/WebCore/inspector/InspectorResourceAgent.cpp
index 2e965b6..9f8062f 100644
--- a/WebCore/inspector/InspectorResourceAgent.cpp
+++ b/WebCore/inspector/InspectorResourceAgent.cpp
@@ -263,8 +263,10 @@ static void populateObjectWithFrameResources(Frame* frame, PassRefPtr<InspectorO
     CachedResourceLoader::DocumentResourceMap::const_iterator end = allResources.end();
     for (CachedResourceLoader::DocumentResourceMap::const_iterator it = allResources.begin(); it != end; ++it) {
         CachedResource* cachedResource = it->second.get();
-        RefPtr<InspectorObject> cachedResourceObject = buildObjectForCachedResource(frame->loader()->documentLoader(), *cachedResource);
-        subresources->pushValue(cachedResourceObject);
+        if (cachedResource) {
+            RefPtr<InspectorObject> cachedResourceObject = buildObjectForCachedResource(frame->loader()->documentLoader(), *cachedResource);
+            subresources->pushValue(cachedResourceObject);
+        }
     }
 }
 
diff --git a/WebCore/inspector/front-end/CookieItemsView.js b/WebCore/inspector/front-end/CookieItemsView.js
index b2da875..4e250c4 100644
--- a/WebCore/inspector/front-end/CookieItemsView.js
+++ b/WebCore/inspector/front-end/CookieItemsView.js
@@ -208,6 +208,7 @@ WebInspector.CookieItemsView.prototype = {
             this._filterCookiesForDomain(allCookies);
         else
             this._cookies = allCookies;
+
         if (!this._cookies.length) {
             // Nothing to show.
             this._emptyMsgElement.removeStyleClass("hidden");
@@ -254,7 +255,7 @@ WebInspector.CookieItemsView.prototype = {
             if (url && url.host == this._cookieDomain)
                 resourceURLsForDocumentURL.push(resource.url);
         }
-        WebInspector.forAllResources(populateResourcesForDocuments.bind(this));
+        WebInspector.forAllResources(populateResourcesForDocuments);
 
         for (var i = 0; i < allCookies.length; ++i) {
             var pushed = false;
diff --git a/WebCore/inspector/front-end/Resource.js b/WebCore/inspector/front-end/Resource.js
index c2f3bed..2df7b73 100644
--- a/WebCore/inspector/front-end/Resource.js
+++ b/WebCore/inspector/front-end/Resource.js
@@ -565,9 +565,6 @@ WebInspector.Resource.prototype = {
          || this.type === WebInspector.Resource.Type.WebSocket)
             return true;
 
-        if (!this.mimeType)
-            return true; // Might be not known for cached resources with null responses.
-
         if (this.mimeType in WebInspector.MIMETypes)
             return this.type in WebInspector.MIMETypes[this.mimeType];
 
@@ -585,7 +582,7 @@ WebInspector.Resource.prototype = {
         var msg;
         switch (warning.id) {
             case WebInspector.Warnings.IncorrectMIMEType.id:
-                if (!this._mimeTypeIsConsistentWithType()) {
+                if (!this._mimeTypeIsConsistentWithType())
                     msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other,
                         WebInspector.ConsoleMessage.MessageType.Log, 
                         WebInspector.ConsoleMessage.MessageLevel.Warning,
@@ -596,35 +593,6 @@ WebInspector.Resource.prototype = {
                         String.sprintf(WebInspector.Warnings.IncorrectMIMEType.message, WebInspector.Resource.Type.toUIString(this.type), this.mimeType),
                         null,
                         null);
-                }
-                break;
-            case WebInspector.Warnings.FailedToLoad.id:
-                if (this.failed) {
-                    msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other,
-                        WebInspector.ConsoleMessage.MessageType.Log, 
-                        WebInspector.ConsoleMessage.MessageLevel.Error,
-                        -1,
-                        this.url,
-                        null,
-                        1,
-                        String.sprintf(WebInspector.Warnings.FailedToLoad.message, this.localizedFailDescription),
-                        null,
-                        null);
-                }
-                break;
-            case WebInspector.Warnings.FailedToLoadWithStatus.id:
-                if (this.statusCode >= 400) {
-                    msg = new WebInspector.ConsoleMessage(WebInspector.ConsoleMessage.MessageSource.Other,
-                        WebInspector.ConsoleMessage.MessageType.Log, 
-                        WebInspector.ConsoleMessage.MessageLevel.Error,
-                        -1,
-                        this.url,
-                        null,
-                        1,
-                        String.sprintf(WebInspector.Warnings.FailedToLoadWithStatus.message, this.statusCode, this.statusText),
-                        null,
-                        null);
-                }
                 break;
         }
 
diff --git a/WebCore/inspector/front-end/ResourceManager.js b/WebCore/inspector/front-end/ResourceManager.js
index 43a655e..b181958 100644
--- a/WebCore/inspector/front-end/ResourceManager.js
+++ b/WebCore/inspector/front-end/ResourceManager.js
@@ -154,9 +154,6 @@ WebInspector.ResourceManager.prototype = {
 
     _updateResourceWithResponse: function(resource, response)
     {
-        if (resource.isNull)
-            return;
-
         resource.mimeType = response.mimeType;
         resource.expectedContentLength = response.expectedContentLength;
         resource.textEncodingName = response.textEncodingName;
@@ -213,7 +210,6 @@ WebInspector.ResourceManager.prototype = {
             return;
 
         resource.failed = true;
-        resource.localizedFailDescription = localizedDescription;
         resource.finished = true;
         resource.endTime = time;
 
diff --git a/WebCore/inspector/front-end/inspector.js b/WebCore/inspector/front-end/inspector.js
index f52f74e..85ca3f6 100644
--- a/WebCore/inspector/front-end/inspector.js
+++ b/WebCore/inspector/front-end/inspector.js
@@ -466,8 +466,8 @@ var WebInspector = {
         if (Preferences.networkPanelEnabled)
             WebInspector.resourceManager.forAllResources(callback);
         else {
-            for (var id in this.resources) {
-                if (callback(this.resources[id]))
+            for (var id in WebInspector.panels.resources.resources) {
+                if (callback(WebInspector.panels.resources.resources[id]))
                     return;
             }
         }
@@ -583,9 +583,7 @@ WebInspector.doLoadedDone = function()
     };
 
     this.Warnings = {
-        IncorrectMIMEType: {id: 0, message: WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s.")},
-        FailedToLoad: {id: 1, message: WebInspector.UIString("Failed to load resource: %s")},
-        FailedToLoadWithStatus: {id: 2, message: WebInspector.UIString("Failed to load resource: the server responded with a status of %s (%s)")}
+        IncorrectMIMEType: {id: 0, message: WebInspector.UIString("Resource interpreted as %s but transferred with MIME type %s.")}
     };
 
     this.addMainEventListeners(document);
@@ -1320,7 +1318,6 @@ WebInspector.updateResource = function(payload)
 
     if (payload.didCompletionChange) {
         resource.failed = payload.failed;
-        resource.localizedFailDescription = payload.localizedFailDescription;
         resource.finished = payload.finished;
         if (this.panels.audits)
             this.panels.audits.resourceFinished(resource);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list