Diff
Modified: trunk/LayoutTests/ChangeLog (110392 => 110393)
--- trunk/LayoutTests/ChangeLog 2012-03-11 14:59:41 UTC (rev 110392)
+++ trunk/LayoutTests/ChangeLog 2012-03-11 15:09:17 UTC (rev 110393)
@@ -1,5 +1,16 @@
2012-03-11 Vsevolod Vlasov <[email protected]>
+ Web Inspector: Network panel does not show responses for application/json data
+ https://bugs.webkit.org/show_bug.cgi?id=80684
+
+ Reviewed by Pavel Feldman.
+
+ * http/tests/inspector/network/async-xhr-json-mime-type-expected.txt: Added.
+ * http/tests/inspector/network/async-xhr-json-mime-type.html: Added.
+ * http/tests/inspector/network/resources/json.php: Added.
+
+2012-03-11 Vsevolod Vlasov <[email protected]>
+
Web Inspector: CSS content is not shown when stylesheet is loaded with invalid mime type in quirks mode.
https://bugs.webkit.org/show_bug.cgi?id=80528
Added: trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type-expected.txt (0 => 110393)
--- trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type-expected.txt (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type-expected.txt 2012-03-11 15:09:17 UTC (rev 110393)
@@ -0,0 +1,10 @@
+CONSOLE MESSAGE: line 13: Done.
+Tests XHR network resource content for asynchronous requests with application/json mime type. Bug 80684
+
+http://127.0.0.1:8000/inspector/network/resources/json.php
+resource.type: 5
+resource.content before requesting content: undefined
+resource.content after requesting content: {"number": "42"}
+
+
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type-expected.txt
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type.html (0 => 110393)
--- trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type.html (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type.html 2012-03-11 15:09:17 UTC (rev 110393)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<script src=""
+<script src=""
+<script>
+function loadData()
+{
+ doXHR("GET", "resources/json.php", true, resourceLoaded);
+}
+
+function resourceLoaded()
+{
+ console.log("Done.");
+}
+
+function test()
+{
+ InspectorTest.addConsoleSniffer(step2);
+ InspectorTest.evaluateInPage("loadData()");
+
+ function step2()
+ {
+ var resource1 = WebInspector.panels.network.resources[WebInspector.panels.network.resources.length - 1];
+ InspectorTest.addResult(resource1.url);
+ InspectorTest.addResult("resource.type: " + resource1.type);
+ InspectorTest.addResult("resource.content before requesting content: " + resource1.content);
+ InspectorTest.assertTrue(!resource1.failed, "Resource loading failed.");
+ resource1.requestContent(step3);
+ }
+
+ function step3()
+ {
+ var resource1 = WebInspector.panels.network.resources[WebInspector.panels.network.resources.length - 1];
+ InspectorTest.addResult("resource.content after requesting content: " + resource1.content);
+
+ InspectorTest.completeTest();
+ }
+}
+</script>
+</head>
+<body _onload_="runTest()">
+ <p>
+ Tests XHR network resource content for asynchronous requests with application/json mime type.
+<a href="" 80684</a>
+</p>
+</body>
+</html>
Property changes on: trunk/LayoutTests/http/tests/inspector/network/async-xhr-json-mime-type.html
___________________________________________________________________
Added: svn:eol-style
Added: trunk/LayoutTests/http/tests/inspector/network/resources/json.php (0 => 110393)
--- trunk/LayoutTests/http/tests/inspector/network/resources/json.php (rev 0)
+++ trunk/LayoutTests/http/tests/inspector/network/resources/json.php 2012-03-11 15:09:17 UTC (rev 110393)
@@ -0,0 +1,5 @@
+<?php
+ header("Content-Type: application/json");
+?>
+{"number": "42"}
+
Property changes on: trunk/LayoutTests/http/tests/inspector/network/resources/json.php
___________________________________________________________________
Added: svn:executable
Modified: trunk/Source/WebCore/ChangeLog (110392 => 110393)
--- trunk/Source/WebCore/ChangeLog 2012-03-11 14:59:41 UTC (rev 110392)
+++ trunk/Source/WebCore/ChangeLog 2012-03-11 15:09:17 UTC (rev 110393)
@@ -1,5 +1,23 @@
2012-03-11 Vsevolod Vlasov <[email protected]>
+ Web Inspector: Network panel does not show responses for application/json data
+ https://bugs.webkit.org/show_bug.cgi?id=80684
+
+ Reviewed by Pavel Feldman.
+
+ Test: http/tests/inspector/network/async-xhr-json-mime-type.html
+
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::createXHRTextDecoder):
+ (WebCore::InspectorPageAgent::cachedResourceContent):
+ * inspector/InspectorPageAgent.h:
+ * inspector/NetworkResourcesData.cpp:
+ (WebCore::createOtherResourceTextDecoder):
+ (WebCore):
+ (WebCore::NetworkResourcesData::responseReceived):
+
+2012-03-11 Vsevolod Vlasov <[email protected]>
+
Web Inspector: CSS content is not shown when stylesheet is loaded with invalid mime type in quirks mode.
https://bugs.webkit.org/show_bug.cgi?id=80528
Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.cpp (110392 => 110393)
--- trunk/Source/WebCore/inspector/InspectorPageAgent.cpp 2012-03-11 14:59:41 UTC (rev 110392)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.cpp 2012-03-11 15:09:17 UTC (rev 110393)
@@ -131,20 +131,18 @@
return type == InspectorPageAgent::StylesheetResource || type == InspectorPageAgent::ScriptResource || type == InspectorPageAgent::XHRResource;
}
-// static
-PassRefPtr<TextResourceDecoder> InspectorPageAgent::createDecoder(const String& mimeType, const String& textEncodingName)
+static PassRefPtr<TextResourceDecoder> createXHRTextDecoder(const String& mimeType, const String& textEncodingName)
{
RefPtr<TextResourceDecoder> decoder;
if (!textEncodingName.isEmpty())
decoder = TextResourceDecoder::create("text/plain", textEncodingName);
- else if (mimeType == "text/plain")
- decoder = TextResourceDecoder::create("text/plain", "ISO-8859-1");
- else if (mimeType == "text/html")
- decoder = TextResourceDecoder::create("text/html", "UTF-8");
- else if (DOMImplementation::isXMLMIMEType(mimeType)) {
+ else if (DOMImplementation::isXMLMIMEType(mimeType.lower())) {
decoder = TextResourceDecoder::create("application/xml");
decoder->useLenientXMLDecoding();
- }
+ } else if (equalIgnoringCase(mimeType, "text/html"))
+ decoder = TextResourceDecoder::create("text/html", "UTF-8");
+ else
+ decoder = TextResourceDecoder::create("text/plain", "UTF-8");
return decoder;
}
@@ -183,7 +181,7 @@
SharedBuffer* buffer = cachedResource->data();
if (!buffer)
return false;
- RefPtr<TextResourceDecoder> decoder = InspectorPageAgent::createDecoder(cachedResource->response().mimeType(), cachedResource->response().textEncodingName());
+ RefPtr<TextResourceDecoder> decoder = createXHRTextDecoder(cachedResource->response().mimeType(), cachedResource->response().textEncodingName());
// We show content for raw resources only for certain mime types (text, html and xml). Otherwise decoder will be null.
if (!decoder)
return false;
Modified: trunk/Source/WebCore/inspector/InspectorPageAgent.h (110392 => 110393)
--- trunk/Source/WebCore/inspector/InspectorPageAgent.h 2012-03-11 14:59:41 UTC (rev 110392)
+++ trunk/Source/WebCore/inspector/InspectorPageAgent.h 2012-03-11 15:09:17 UTC (rev 110393)
@@ -78,7 +78,6 @@
static PassOwnPtr<InspectorPageAgent> create(InstrumentingAgents*, Page*, InspectorState*, InjectedScriptManager*, InspectorClient*);
- static PassRefPtr<TextResourceDecoder> createDecoder(const String& mimeType, const String& textEncodingName);
static bool cachedResourceContent(CachedResource*, String* result, bool* base64Encoded);
static bool sharedBufferContent(PassRefPtr<SharedBuffer>, const String& textEncodingName, bool withBase64Encode, String* result);
static void resourceContent(ErrorString*, Frame*, const KURL&, String* result, bool* base64Encoded);
Modified: trunk/Source/WebCore/inspector/NetworkResourcesData.cpp (110392 => 110393)
--- trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2012-03-11 14:59:41 UTC (rev 110392)
+++ trunk/Source/WebCore/inspector/NetworkResourcesData.cpp 2012-03-11 15:09:17 UTC (rev 110393)
@@ -29,6 +29,7 @@
#include "config.h"
#include "NetworkResourcesData.h"
+#include "DOMImplementation.h"
#include "SharedBuffer.h"
#include "TextResourceDecoder.h"
@@ -122,6 +123,21 @@
m_requestIdToResourceDataMap.set(requestId, new ResourceData(requestId, loaderId));
}
+static PassRefPtr<TextResourceDecoder> createOtherResourceTextDecoder(const String& mimeType, const String& textEncodingName)
+{
+ RefPtr<TextResourceDecoder> decoder;
+ if (!textEncodingName.isEmpty())
+ decoder = TextResourceDecoder::create("text/plain", textEncodingName);
+ else if (DOMImplementation::isXMLMIMEType(mimeType.lower())) {
+ decoder = TextResourceDecoder::create("application/xml");
+ decoder->useLenientXMLDecoding();
+ } else if (equalIgnoringCase(mimeType, "text/html"))
+ decoder = TextResourceDecoder::create("text/html", "UTF-8");
+ else if (mimeType == "text/plain")
+ decoder = TextResourceDecoder::create("text/plain", "ISO-8859-1");
+ return decoder;
+}
+
void NetworkResourcesData::responseReceived(const String& requestId, const String& frameId, const ResourceResponse& response)
{
ResourceData* resourceData = m_requestIdToResourceDataMap.get(requestId);
@@ -129,7 +145,7 @@
return;
resourceData->setFrameId(frameId);
resourceData->setUrl(response.url());
- resourceData->setDecoder(InspectorPageAgent::createDecoder(response.mimeType(), response.textEncodingName()));
+ resourceData->setDecoder(createOtherResourceTextDecoder(response.mimeType(), response.textEncodingName()));
}
void NetworkResourcesData::setResourceType(const String& requestId, InspectorPageAgent::ResourceType type)