Skip to content
Permalink
Browse files
2010-04-27 Andrey Kosyakov <caseq@chromium.org>
        Reviewed by Yury Semikhatsky.

        Log error message to inspector console if a resource fails to load.
        Moved console-tests.js to http tests. Added support for sorting
        console messages, in case order may vary.
        https://bugs.webkit.org/show_bug.cgi?id=37215

        * http/tests/inspector/console-resource-errors-expected.txt: Added.
        * http/tests/inspector/console-resource-errors.html: Added.
        * http/tests/inspector/console-tests.js: Added.
        (dumpConsoleMessages.callback):
        (dumpConsoleMessages):
        (dumpConsoleMessagesWithClasses.callback):
        (dumpConsoleMessagesWithClasses):
        (frontend_dumpConsoleMessages):
        * inspector/console-clear.html:
        * inspector/console-dir.html:
        * inspector/console-dirxml.html:
        * inspector/console-format-collections-expected.txt:
        * inspector/console-format-collections.html:
        * inspector/console-format.html:
        * inspector/console-log-before-inspector-open.html:
        * inspector/console-tests.html:
        * inspector/console-tests.js: Removed.
2010-04-27  Andrey Kosyakov  <caseq@chromium.org>

        Reviewed by Yury Semikhatsky.

        Log error message to inspector console if a resource fails to load.
        Disable checking of mime-type consistency for failed resources.
        https://bugs.webkit.org/show_bug.cgi?id=37215

        Test: http/tests/inspector/console-resource-errors.html

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didReceiveResponse):
        (WebCore::InspectorController::didFailLoading):
        * inspector/front-end/Resource.js:
        (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):

Canonical link: https://commits.webkit.org/49596@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@58318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
eseidel committed Apr 27, 2010
1 parent 8ea6e63 commit aec5b97fddb6039ba329aa9fe25c89a9550cf0fe
Showing 16 changed files with 121 additions and 22 deletions.
@@ -1,3 +1,30 @@
2010-04-27 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Yury Semikhatsky.

Log error message to inspector console if a resource fails to load.
Moved console-tests.js to http tests. Added support for sorting
console messages, in case order may vary.
https://bugs.webkit.org/show_bug.cgi?id=37215

* http/tests/inspector/console-resource-errors-expected.txt: Added.
* http/tests/inspector/console-resource-errors.html: Added.
* http/tests/inspector/console-tests.js: Added.
(dumpConsoleMessages.callback):
(dumpConsoleMessages):
(dumpConsoleMessagesWithClasses.callback):
(dumpConsoleMessagesWithClasses):
(frontend_dumpConsoleMessages):
* inspector/console-clear.html:
* inspector/console-dir.html:
* inspector/console-dirxml.html:
* inspector/console-format-collections-expected.txt:
* inspector/console-format-collections.html:
* inspector/console-format.html:
* inspector/console-log-before-inspector-open.html:
* inspector/console-tests.html:
* inspector/console-tests.js: Removed.

2010-04-27 Joseph Pecoraro <joepeck@webkit.org>

Reviewed by Dan Bernstein.
@@ -0,0 +1,7 @@
Tests that errors to load a resource cause error messages to be logged to console.

missing.cssFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
non-existent-iframe.htmlFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
non-existent-script.jsFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level
non-existent-xhrFailed to load resource: the server responded with a status of 404 (Not Found) console-message console-other-source console-error-level

@@ -0,0 +1,30 @@
<html>
<head>
<script src="console-tests.js"></script>
<script src="inspector-test.js"></script>

<link rel="stylesheet" type="text/css" href="missing.css">

<script>
function doit()
{
var xhr = new XMLHttpRequest();
xhr.open("GET","non-existent-xhr", false);
xhr.send(null);

dumpConsoleMessagesWithClasses(true);
}

</script>
</head>

<body onload="onload()">
<p>
<script src="non-existent-script.js"></script>
<iframe src="non-existent-iframe.html"></iframe>

Tests that errors to load a resource cause error messages to be logged to console.
</p>

</body>
</html>
@@ -11,11 +11,16 @@ function dumpConsoleMessages(noNotifyDone) {
evaluateInWebInspector("frontend_dumpConsoleMessages", callback);
}

function dumpConsoleMessagesWithClasses() {
function dumpConsoleMessagesWithClasses(sortMessages) {
function callback(result)
{
var messages = [];
for (var i = 0; i < result.length; ++i)
output(result[i].text + " " + result[i].clazz);
messages.push(result[i].text + " " + result[i].clazz);
if (sortMessages)
messages.sort();
for (var i = 0; i < messages.length; ++i)
output(messages[i]);
notifyDone();
}
evaluateInWebInspector("frontend_dumpConsoleMessages", callback);
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

function doit()
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

function doit()
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

function doit()
@@ -8,9 +8,9 @@ CONSOLE MESSAGE: line 41: 1,2,
Tests that console nicely formats HTML Collections and NodeLists.

console-format-collections.html:15[<select id="sel" name="sel">…</select>]
console-format-collections.html:19[<script src="../http/tests/inspector/inspector-test.js"></script>, <script src="console-tests.js"></script>, <script>…</script>]
console-format-collections.html:19[<script src="../http/tests/inspector/inspector-test.js"></script>, <script src="../http/tests/inspector/console-tests.js"></script>, <script>…</script>]
console-format-collections.html:23[<option value="1">one</option>, <option value="2">two</option>]
console-format-collections.html:27[<html>…</html>, <head>…</head>, <script src="../http/tests/inspector/inspector-test.js"></script>, <script src="console-tests.js"></script>, <script>…</script>, <body onload="onload()">…</body>, <p> Tests that console nicely formats HTML Collections and NodeLists. </p>, <div style="display:none">…</div>, <form id="f">…</form>, <select id="sel" name="sel">…</select>, <option value="1">one</option>, <option value="2">two</option>, <input type="radio" name="x" value="x1">, <input type="radio" name="x" value="x2">, <div id="output"></div>]
console-format-collections.html:27[<html>…</html>, <head>…</head>, <script src="../http/tests/inspector/inspector-test.js"></script>, <script src="../http/tests/inspector/console-tests.js"></script>, <script>…</script>, <body onload="onload()">…</body>, <p> Tests that console nicely formats HTML Collections and NodeLists. </p>, <div style="display:none">…</div>, <form id="f">…</form>, <select id="sel" name="sel">…</select>, <option value="1">one</option>, <option value="2">two</option>, <input type="radio" name="x" value="x1">, <input type="radio" name="x" value="x2">, <div id="output"></div>]
console-format-collections.html:31[<select id="sel" name="sel">…</select>, <input type="radio" name="x" value="x1">, <input type="radio" name="x" value="x2">]
console-format-collections.html:35[<input type="radio" name="x" value="x1">, <input type="radio" name="x" value="x2">]
console-format-collections.html:41[1, Array]
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

function doit()
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

// Global Values
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

console.log('log');
@@ -1,7 +1,7 @@
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script src="console-tests.js"></script>
<script src="../http/tests/inspector/console-tests.js"></script>
<script>

function doit()
@@ -1,3 +1,21 @@
2010-04-27 Andrey Kosyakov <caseq@chromium.org>

Reviewed by Yury Semikhatsky.

Log error message to inspector console if a resource fails to load.
Disable checking of mime-type consistency for failed resources.
https://bugs.webkit.org/show_bug.cgi?id=37215

Test: http/tests/inspector/console-resource-errors.html

* inspector/InspectorController.cpp:
(WebCore::InspectorController::didReceiveResponse):
(WebCore::InspectorController::didFailLoading):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):

2010-04-27 Vitaly Repeshko <vitalyr@chromium.org>

Reviewed by Nate Chapin.
@@ -894,15 +894,19 @@ void InspectorController::willSendRequest(unsigned long identifier, const Resour

void InspectorController::didReceiveResponse(unsigned long identifier, const ResourceResponse& response)
{
RefPtr<InspectorResource> resource = getTrackedResource(identifier);
if (!resource)
return;
if (RefPtr<InspectorResource> resource = getTrackedResource(identifier)) {
resource->updateResponse(response);
resource->markResponseReceivedTime();

resource->updateResponse(response);
resource->markResponseReceivedTime();
if (resource != m_mainResource && m_frontend)
resource->updateScriptObject(m_frontend.get());
}
if (response.httpStatusCode() >= 400) {
// The ugly code below is due to that String::format() is not utf8-safe at the moment.
String message = String::format("Failed to load resource: the server responded with a status of %u (", response.httpStatusCode()) + response.httpStatusText() + ")";

if (resource != m_mainResource && m_frontend)
resource->updateScriptObject(m_frontend.get());
addMessageToConsole(OtherMessageSource, LogMessageType, ErrorMessageLevel, message, 0, response.url().string());
}
}

void InspectorController::didReceiveContentLength(unsigned long identifier, int lengthReceived)
@@ -933,11 +937,16 @@ void InspectorController::didFinishLoading(unsigned long identifier)
resource->updateScriptObject(m_frontend.get());
}

void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& /*error*/)
void InspectorController::didFailLoading(unsigned long identifier, const ResourceError& error)
{
if (m_timelineAgent)
m_timelineAgent->didFinishLoadingResource(identifier, true);

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;
@@ -536,6 +536,12 @@ WebInspector.Resource.prototype = {

_mimeTypeIsConsistentWithType: function()
{
// If status is an error, content is likely to be of an inconsistent type,
// as it's going to be an error message. We do not want to emit a warning
// for this, though, as this will already be reported as resource loading failure.
if (this.statusCode >= 400)
return true;

if (typeof this.type === "undefined"
|| this.type === WebInspector.Resource.Type.Other
|| this.type === WebInspector.Resource.Type.XHR)
@@ -443,9 +443,6 @@ WebInspector.ResourcesPanel.prototype = {
if (newView.__proto__ === resource._resourcesView.__proto__)
return;

resource.warnings = 0;
resource.errors = 0;

if (!this.currentQuery && resource._itemsTreeElement)
resource._itemsTreeElement.updateErrorsAndWarnings();

0 comments on commit aec5b97

Please sign in to comment.