Skip to content
Permalink
Browse files
2010-02-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
        Reviewed by Xan Lopez.

        [GTK] Crashes when going back to a page that has data: URIs, with page cache enabled
        https://bugs.webkit.org/show_bug.cgi?id=34944

        Set the URL in the newly created response, when parsing data:
        URIs.

        Test: fast/harness/page-cache-crash-on-data-urls.html

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::parseDataUrl):

Canonical link: https://commits.webkit.org/46093@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@54786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
kov committed Feb 15, 2010
1 parent a64d313 commit aac88c99ff1919059c181b1374f6fb3754fe8116
Showing 6 changed files with 97 additions and 0 deletions.
@@ -1,3 +1,14 @@
2010-02-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>

Reviewed by Xan Lopez.

[GTK] Crashes when going back to a page that has data: URIs, with page cache enabled
https://bugs.webkit.org/show_bug.cgi?id=34944

* fast/harness/page-cache-crash-on-data-urls-expected.txt: Added.
* fast/harness/page-cache-crash-on-data-urls.html: Added.
* fast/harness/resources/cached-page-with-data-urls.html: Added.

2010-02-15 Dan Bernstein <mitz@apple.com>

Reviewed by Simon Fraser.
@@ -0,0 +1,8 @@
This tests that going back in history with page cache enabled is not going to crash/ASSERT when the previous page has data:// URLs.

open page with data urls
page with data urls, about to navigate to page-2.
page-2, about to go back to page-1
Back on page with data urls, timer is still firing.
PASS.

@@ -0,0 +1,36 @@
<html>
<script>
window.finish = function()
{
if (layoutTestController)
layoutTestController.notifyDone();
}

window.log = function(message) {
document.getElementById("result").innerHTML += message + "<br>";
}

window.failure = function(message) {
log("FAIL: " + message);
finish();
}

function test()
{
if (window.layoutTestController) {
layoutTestController.dumpAsText();
layoutTestController.waitUntilDone();
layoutTestController.setCanOpenWindows();
layoutTestController.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
}
log("open page with data urls");
window.open("resources/cached-page-with-data-urls.html");
}
</script>

<body onload="test()">
<p>This tests that going back in history with page cache enabled is
not going to crash/ASSERT when the previous page has data:// URLs.</p>
<div id="result"></div>
</body>
</html>
@@ -0,0 +1,26 @@
<script>

var intervalId;
function check() {
// This flag is set by cached-page-2 when it loads.
// If the timer is fired before cached-page-2 loads, just bail and wait.
if (!window.opener.canExit)
return;

clearInterval(intervalId);
window.opener.log("Back on page with data urls, timer is still firing.");
window.opener.log("PASS.");
window.opener.finish();
}

function loadNext()
{
intervalId = setInterval(check, 10);

window.opener.log("page with data urls, about to navigate to page-2.")
location.href = "cached-page-2.html";
}
</script>
<body onload="loadNext()">
<img src="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD//gATQ3JlYXRlZCB3aXRoIEdJTVD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAAnAFsDASIAAhEBAxEB/8QAHQAAAwEAAgMBAAAAAAAAAAAAAAcICQQGAQIDBf/EADgQAAIBAgQEBAQEAwkAAAAAAAECAwQFAAYHEQgSITETQVFhCSJxgRQjcoIyM5EVNEJikpOhwcL/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/8QAFBEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AmbRrOd3yXqLZ7xb7jJTJ+MjWpBlIR42YB+fyI2J741jRldFdGDKw3BB3BHrjGjGnXB9mypzfoHYautkaWroA1umdiSW8I7KST3PIU3PrvgG9gwYCQBuTsBgFjxVXOa08PWc6uCTw5Gt5pw2+3SV1jO3vs5xlriiOMnW2sz3mmoyhZagx5Ztc5RuRv75Mp2Lk+ag/wjt5+m074C9fhyX6qr9L75YqiRnitVzDU+/ZEmTmKj9ys37sVHiYvhy0NLDo9ea+N1apqb26S7d1VIYuUH/Ux++KdwBgwYWXE9nxtPNG7ze6WUR3GZBR0HqJpOgYfpHM37cBBfFvmOnzPxB5pr6OcTUsE6UcLDt+TGsbbe3Orn74VGPLszuXdizMdySepOHpp7wy52zjk225mpZYaeC4RmWJJB83JzEA/cAEexwCKxoZ8PNg2gs4B6re6gH/AG4j/wB4hrVXJ1dkHUG8ZTuCv4lBUMkbsP5sR6xuP1KQcPPgC1GbLuoc2SbhViO2X4FoA52VKtV+Xbp0LqOXv3CjAX9hFcZGrUenWnUlrtdUq5jvStT0qqfmgiI2kmPXcbA7A+pHocOu7V9JarXVXOvmSClpIXmmkY7BUUEkn7DGUutWe67UbUe65nrJH8KaYrSRMekMAOyKB5dOp9ycB0xiWJYkknqScfWspaijn8CqheGXkV+VxseVlDKfuCD98N/hK0nfVDUeP+0IGOXrSVqLk3YSdfkh+rEdfYH2x3X4g2R0y/qPasy0FKkNuu9CsBCDYLNBspHoB4Zj2+hwH63w4s1S0md79k+acinr6L8ZBGW6eNGwB2G/cox8v8Pti6MZIaTZwqsh6i2XNdIX3oakNKq93iPyyL3HdSw+u2NIcra/6P5jjQ0eerVTSMN/Cr3NKwPp+aFBP0JwDOxAXH/qImYtQKXJtsrEmt1jTmqPDbdWqnHUe5Vdh9SRjuHFLxRxSQ1OT9Mq/mDAx1l5iPTbzSE/+/6euI2dmd2d2LMx3LE7kn1wHY9MMpV2es/2bKlvB8a4VKxswH8uMdXc/pUMftjWizW6ltFoo7VQxCKlo4EghQdlRVAA/oMST8PrS2tt61epV5pHgNTCaa1rIuzGM7F5R7HYAH0B9cWDgJB+IfpuKq1UWptD4ayUfJQ3BSQC8bN+W49SGO30YemIop5paeeOeCR4pY2Do6HZlYHcEHyIODBgGRnHXfVPN2Uxla+5pmntZRUljSCON5gu2wd1UM3bruevnvhaopdwqjck7DBgwGoXCtp6NOtHrXbaiNFulcPxtwZTvvI/ULuCQeVeVenToT545HEppjHqpprUWOORIblTv+Jt8r9hKoI5T7MCR/z5YMGAzCv9prrFequz3OEQ1tHM0MyBwwVlOxG4JB+2ODgwYAxXPCTw1RXuKjz5n2KKW2sBLb7aHDCfzDy7H+H/AC+fn6YMGAtyCGKngSCCNIoo1CoiDYKB2AHkMe+DBgP/2Q=="/>
</body>
@@ -1,3 +1,18 @@
2010-02-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>

Reviewed by Xan Lopez.

[GTK] Crashes when going back to a page that has data: URIs, with page cache enabled
https://bugs.webkit.org/show_bug.cgi?id=34944

Set the URL in the newly created response, when parsing data:
URIs.

Test: fast/harness/page-cache-crash-on-data-urls.html

* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::parseDataUrl):

2010-02-15 Dan Bernstein <mitz@apple.com>

Reviewed by Simon Fraser.
@@ -380,6 +380,7 @@ static gboolean parseDataUrl(gpointer callback_data)
String charset = extractCharsetFromMediaType(mediaType);

ResourceResponse response;
response.setURL(handle->request().url());
response.setMimeType(mimeType);

if (isBase64) {

0 comments on commit aac88c9

Please sign in to comment.