Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1188)

Unified Diff: content/test/mock_webclipboard_impl.cc

Issue 135853010: Fix the WebStrings leak in MockWebClipboardImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: copy string Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/test/mock_webclipboard_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/test/mock_webclipboard_impl.cc
diff --git a/content/test/mock_webclipboard_impl.cc b/content/test/mock_webclipboard_impl.cc
index 06507145aa1c81d1a2cf5e852eddca1c8d1bd112..9b81b110d0db18cea728036be34bc78e26cb2411 100644
--- a/content/test/mock_webclipboard_impl.cc
+++ b/content/test/mock_webclipboard_impl.cc
@@ -24,6 +24,12 @@ using blink::WebString;
using blink::WebURL;
using blink::WebVector;
+namespace {
+std::string webStringToString(const blink::WebString& string) {
+ return std::string(string.utf8().c_str());
+}
+} // namespace
+
namespace content {
MockWebClipboardImpl::MockWebClipboardImpl() {}
@@ -33,10 +39,10 @@ MockWebClipboardImpl::~MockWebClipboardImpl() {}
bool MockWebClipboardImpl::isFormatAvailable(Format format, Buffer buffer) {
switch (format) {
case FormatPlainText:
- return !m_plainText.isNull();
+ return !m_plainText.empty();
dcheng 2014/01/27 19:47:04 The difference between empty and null is significa
case FormatHTML:
- return !m_htmlText.isNull();
+ return !m_htmlText.empty();
case FormatSmartPaste:
return m_writeSmartPaste;
@@ -66,10 +72,10 @@ WebVector<WebString> MockWebClipboardImpl::readAvailableTypes(
bool* containsFilenames) {
*containsFilenames = false;
std::vector<WebString> results;
- if (!m_plainText.isEmpty()) {
+ if (!m_plainText.empty()) {
results.push_back(WebString("text/plain"));
}
- if (!m_htmlText.isEmpty()) {
+ if (!m_htmlText.empty()) {
results.push_back(WebString("text/html"));
}
if (!m_image.isNull()) {
@@ -87,7 +93,7 @@ WebVector<WebString> MockWebClipboardImpl::readAvailableTypes(
blink::WebString MockWebClipboardImpl::readPlainText(
blink::WebClipboard::Buffer buffer) {
- return m_plainText;
+ return blink::WebString::fromUTF8(m_plainText);
}
// TODO(wtc): set output argument *url.
@@ -98,7 +104,7 @@ blink::WebString MockWebClipboardImpl::readHTML(
unsigned* fragmentEnd) {
*fragmentStart = 0;
*fragmentEnd = static_cast<unsigned>(m_htmlText.length());
- return m_htmlText;
+ return blink::WebString::fromUTF8(m_htmlText);
}
blink::WebData MockWebClipboardImpl::readImage(
@@ -141,23 +147,23 @@ void MockWebClipboardImpl::writeHTML(const blink::WebString& htmlText,
bool writeSmartPaste) {
clear();
- m_htmlText = htmlText;
- m_plainText = plainText;
+ m_htmlText = webStringToString(htmlText);
+ m_plainText = webStringToString(plainText);
m_writeSmartPaste = writeSmartPaste;
}
void MockWebClipboardImpl::writePlainText(const blink::WebString& plain_text) {
clear();
- m_plainText = plain_text;
+ m_plainText = webStringToString(plain_text);
}
void MockWebClipboardImpl::writeURL(const blink::WebURL& url,
const blink::WebString& title) {
clear();
- m_htmlText = WebString::fromUTF8(URLToMarkup(url, title));
- m_plainText = url.spec().utf16();
+ m_htmlText = URLToMarkup(url, title);
+ m_plainText = webStringToString(url.string());
}
void MockWebClipboardImpl::writeImage(const blink::WebImage& image,
@@ -167,7 +173,7 @@ void MockWebClipboardImpl::writeImage(const blink::WebImage& image,
clear();
m_plainText = m_htmlText;
- m_htmlText = WebString::fromUTF8(URLToImageMarkup(url, title));
+ m_htmlText = URLToImageMarkup(url, title);
m_image = image;
}
}
@@ -181,11 +187,11 @@ void MockWebClipboardImpl::writeDataObject(const WebDragData& data) {
switch (item.storageType) {
case WebDragData::Item::StorageTypeString: {
if (EqualsASCII(item.stringType, ui::Clipboard::kMimeTypeText)) {
- m_plainText = item.stringData;
+ m_plainText = webStringToString(item.stringData);
continue;
}
if (EqualsASCII(item.stringType, ui::Clipboard::kMimeTypeHTML)) {
- m_htmlText = item.stringData;
+ m_htmlText = webStringToString(item.stringData);
continue;
}
m_customData.insert(std::make_pair(item.stringType, item.stringData));
@@ -199,8 +205,8 @@ void MockWebClipboardImpl::writeDataObject(const WebDragData& data) {
}
void MockWebClipboardImpl::clear() {
- m_plainText = WebString();
- m_htmlText = WebString();
+ m_plainText.clear();
+ m_htmlText.clear();
m_image.reset();
m_customData.clear();
m_writeSmartPaste = false;
« no previous file with comments | « content/test/mock_webclipboard_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698