<html><!-- webkit-test-runner [ LoadsImagesAutomatically=false ] -->
<head>
<script>
function runTest()
{
    if (window.testRunner && window.internals) {
        testRunner.dumpAsText();
        testRunner.dumpResourceLoadCallbacks();
        testRunner.setIconDatabaseEnabled(true);
        internals.setLoadsSiteIconsIgnoringImageLoadingSetting(true);
        testRunner.queueReload();
    }
}
</script>
<link rel="icon" href="resources/favicon.ico" type="image/x-icon">
</head>
<body onload="runTest()">
https://bugs.webkit.org/show_bug.cgi?id=58292 - Provide new setting to allow site icon loading despite disabling automatic image loading in general.<br>
Resource load callbacks will reveal if the favicon still gets loaded if automatic image loading is disabled, but site icon image loading override is enabled. <br>
</body>
</html>
