Changeset 84976 in webkit


Ignore:
Timestamp:
Apr 26, 2011 4:26:07 PM (13 years ago)
Author:
Patrick Gansterer
Message:

2011-04-26 Patrick Gansterer <Patrick Gansterer>

Reviewed by Adam Barth.

Respect charset in handleDataURL
https://bugs.webkit.org/show_bug.cgi?id=47746

Original patch by Kwang Yul Seo <skyul@company100.net>

We must use TextEncoding(charset) to encode data URL again. Otherwise TextEncoding::encode()
returns an empty string because encoding name is not specified.

Also use "US-ASCII" as fallback charset as extractCharsetFromMediaType can be empty.

This change fixes over 130 layout tests when running GTK port with cURL network backend.

  • platform/network/DataURL.cpp: (WebCore::handleDataURL):
Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r84971 r84976  
     12011-04-26  Patrick Gansterer  <paroga@webkit.org>
     2
     3        Reviewed by Adam Barth.
     4
     5        Respect charset in handleDataURL
     6        https://bugs.webkit.org/show_bug.cgi?id=47746
     7
     8        Original patch by Kwang Yul Seo <skyul@company100.net>
     9
     10        We must use TextEncoding(charset) to encode data URL again. Otherwise TextEncoding::encode()
     11        returns an empty string because encoding name is not specified.
     12
     13        Also use "US-ASCII" as fallback charset as extractCharsetFromMediaType can be empty.
     14
     15        This change fixes over 130 layout tests when running GTK port with cURL network backend.
     16
     17        * platform/network/DataURL.cpp:
     18        (WebCore::handleDataURL):
     19
    1202011-04-26  Anders Carlsson  <andersca@apple.com>
    221
  • trunk/Source/WebCore/platform/network/DataURL.cpp

    r69183 r84976  
    5858
    5959    if (mediaType.isEmpty())
    60         mediaType = "text/plain;charset=US-ASCII";
     60        mediaType = "text/plain";
    6161
    6262    String mimeType = extractMIMETypeFromMediaType(mediaType);
    6363    String charset = extractCharsetFromMediaType(mediaType);
     64
     65    if (charset.isEmpty())
     66        charset = "US-ASCII";
    6467
    6568    ResourceResponse response;
     
    7881        }
    7982    } else {
    80         data = decodeURLEscapeSequences(data, TextEncoding(charset));
     83        TextEncoding encoding(charset);
     84        data = decodeURLEscapeSequences(data, encoding);
    8185        handle->client()->didReceiveResponse(handle, response);
    8286
    83         CString encodedData = TextEncoding().encode(data.characters(), data.length(), URLEncodedEntitiesForUnencodables);
     87        CString encodedData = encoding.encode(data.characters(), data.length(), URLEncodedEntitiesForUnencodables);
    8488        response.setExpectedContentLength(encodedData.length());
    8589        if (encodedData.length())
Note: See TracChangeset for help on using the changeset viewer.