Title: [138218] trunk/Source/WebCore
- Revision
- 138218
- Author
- commit-qu...@webkit.org
- Date
- 2012-12-19 21:28:21 -0800 (Wed, 19 Dec 2012)
Log Message
[BlackBerry] RSS reader mangles UTF-8
https://bugs.webkit.org/show_bug.cgi?id=105440
RIM PR 235099
Patch by Cosmin Truta <ctr...@rim.com> on 2012-12-19
Reviewed by Yong Li.
Reviewed internally by Liam Quinn.
The HTML string built from RSS parse data is encoded in UTF-8,
and it should not be converted to UTF-8 repeatedly.
* platform/network/blackberry/rss/RSSFilterStream.cpp:
(WebCore::RSSFilterStream::convertContentToHtml):
* platform/network/blackberry/rss/RSSGenerator.cpp:
(WebCore::RSSGenerator::generateHtml):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (138217 => 138218)
--- trunk/Source/WebCore/ChangeLog 2012-12-20 05:27:12 UTC (rev 138217)
+++ trunk/Source/WebCore/ChangeLog 2012-12-20 05:28:21 UTC (rev 138218)
@@ -1,3 +1,21 @@
+2012-12-19 Cosmin Truta <ctr...@rim.com>
+
+ [BlackBerry] RSS reader mangles UTF-8
+ https://bugs.webkit.org/show_bug.cgi?id=105440
+
+ RIM PR 235099
+
+ Reviewed by Yong Li.
+ Reviewed internally by Liam Quinn.
+
+ The HTML string built from RSS parse data is encoded in UTF-8,
+ and it should not be converted to UTF-8 repeatedly.
+
+ * platform/network/blackberry/rss/RSSFilterStream.cpp:
+ (WebCore::RSSFilterStream::convertContentToHtml):
+ * platform/network/blackberry/rss/RSSGenerator.cpp:
+ (WebCore::RSSGenerator::generateHtml):
+
2012-12-19 Jon Lee <jon...@apple.com>
Leak in StringImpl::createCFString()
Modified: trunk/Source/WebCore/platform/network/blackberry/rss/RSSFilterStream.cpp (138217 => 138218)
--- trunk/Source/WebCore/platform/network/blackberry/rss/RSSFilterStream.cpp 2012-12-20 05:27:12 UTC (rev 138217)
+++ trunk/Source/WebCore/platform/network/blackberry/rss/RSSFilterStream.cpp 2012-12-20 05:28:21 UTC (rev 138218)
@@ -525,9 +525,16 @@
if (!success)
return false;
+ // FIXME:
+ // The HTML string generated below purports to be a UTF8-encoded
+ // WTF::String, although its characters8() data should be Latin1.
+ // We build then extract this string, pretending that we don't know
+ // that we pass incorrectly-encoded char data both ways.
+ // We should use BlackBerry::Platform::String instead of WTF::String.
OwnPtr<RSSGenerator> generator = adoptPtr(new RSSGenerator());
String html = generator->generateHtml(parser->m_root);
- result = html.utf8(String::StrictConversion).data();
+ ASSERT(html.is8Bit());
+ result.assign(reinterpret_cast<const char*>(html.characters8()), html.length());
return true;
}
Modified: trunk/Source/WebCore/platform/network/blackberry/rss/RSSGenerator.cpp (138217 => 138218)
--- trunk/Source/WebCore/platform/network/blackberry/rss/RSSGenerator.cpp 2012-12-20 05:27:12 UTC (rev 138217)
+++ trunk/Source/WebCore/platform/network/blackberry/rss/RSSGenerator.cpp 2012-12-20 05:28:21 UTC (rev 138218)
@@ -83,10 +83,10 @@
builder.append(articleName);
builder.appendLiteral("\" class=\"article\">\n<a href=""
if (!item->m_link.isEmpty())
- builder.append(item->m_link.utf8(String::StrictConversion).data());
+ builder.append(item->m_link);
builder.appendLiteral("\"><b>");
if (!item->m_title.isEmpty())
- builder.append(item->m_title.utf8(String::StrictConversion).data());
+ builder.append(item->m_title);
else
builder.append(s_defaultEntryTitle);
builder.appendLiteral("</b></a>\n<br />");
@@ -94,13 +94,13 @@
if (!item->m_author.isEmpty()) {
builder.append(i18n("By"));
builder.appendLiteral(" <b>");
- builder.append(item->m_author.utf8(String::StrictConversion).data());
+ builder.append(item->m_author);
builder.appendLiteral("</b> ");
} else {
if (!feed->m_author.isEmpty()) {
builder.append(i18n("By"));
builder.appendLiteral(" <b>");
- builder.append(feed->m_author.utf8(String::StrictConversion).data());
+ builder.append(feed->m_author);
builder.appendLiteral("</b> ");
}
}
@@ -113,7 +113,7 @@
for (unsigned i = 0; i < item->m_categories.size() ; ++i) {
builder.appendLiteral("<b>");
- builder.append(item->m_categories[i].utf8(String::StrictConversion).data());
+ builder.append(item->m_categories[i]);
builder.appendLiteral("</b>");
if (i < item->m_categories.size() - 1)
@@ -123,11 +123,11 @@
builder.appendLiteral("<br />");
if (!item->m_pubDate.isEmpty())
- builder.append(item->m_pubDate.utf8(String::StrictConversion).data());
+ builder.append(item->m_pubDate);
builder.appendLiteral("<br />");
if (!item->m_description.isEmpty())
- builder.append(item->m_description.utf8(String::StrictConversion).data());
+ builder.append(item->m_description);
builder.appendLiteral("<br />");
if (item->m_enclosure) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes