Commit 1c3b69c4 authored by Darwin Huang's avatar Darwin Huang Committed by Commit Bot

Clipboard: Simplify WinClipboard::WriteToClipboard and make uses more consistent

WriteToClipboard expected a cfFormat, but inconsistently retrieved this from a
hardcoded value or the ClipboardFormatType. Consistently pass in a
ClipboardFormatType, and retrieve the cfFormat in WriteToClipboard.

Refactoring change, so no functional changes intended.

Bug: 1048945
Change-Id: I7f73d0904a8d1b3c02de220f471ebca9a71535c1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036281
Commit-Queue: Darwin Huang <huangdarwin@chromium.org>
Reviewed-by: default avatarVictor Costan <pwnall@chromium.org>
Auto-Submit: Darwin Huang <huangdarwin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#738883}
parent 8dc9b602
......@@ -614,7 +614,7 @@ void ClipboardWin::WriteText(const char* text_data, size_t text_len) {
base::UTF8ToUTF16(text_data, text_len, &text);
HGLOBAL glob = CreateGlobalData(text);
WriteToClipboard(CF_UNICODETEXT, glob);
WriteToClipboard(ClipboardFormatType::GetPlainTextType(), glob);
}
void ClipboardWin::WriteHTML(const char* markup_data,
......@@ -630,8 +630,7 @@ void ClipboardWin::WriteHTML(const char* markup_data,
std::string html_fragment = ClipboardUtil::HtmlToCFHtml(markup, url);
HGLOBAL glob = CreateGlobalData(html_fragment);
WriteToClipboard(ClipboardFormatType::GetHtmlType().ToFormatEtc().cfFormat,
glob);
WriteToClipboard(ClipboardFormatType::GetHtmlType(), glob);
}
void ClipboardWin::WriteRTF(const char* rtf_data, size_t data_len) {
......@@ -649,8 +648,7 @@ void ClipboardWin::WriteBookmark(const char* title_data,
base::string16 wide_bookmark = base::UTF8ToUTF16(bookmark);
HGLOBAL glob = CreateGlobalData(wide_bookmark);
WriteToClipboard(ClipboardFormatType::GetUrlType().ToFormatEtc().cfFormat,
glob);
WriteToClipboard(ClipboardFormatType::GetUrlType(), glob);
}
void ClipboardWin::WriteWebSmartPaste() {
......@@ -714,7 +712,7 @@ void ClipboardWin::WriteData(const ClipboardFormatType& format,
char* data = static_cast<char*>(::GlobalLock(hdata));
memcpy(data, data_data, data_len);
::GlobalUnlock(data);
WriteToClipboard(format.ToFormatEtc().cfFormat, hdata);
WriteToClipboard(format, hdata);
}
void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap,
......@@ -764,15 +762,16 @@ void ClipboardWin::WriteBitmapFromHandle(HBITMAP source_hbitmap,
::DeleteDC(source_dc);
::ReleaseDC(nullptr, dc);
WriteToClipboard(CF_BITMAP, hbitmap);
WriteToClipboard(ClipboardFormatType::GetBitmapType(), hbitmap);
}
void ClipboardWin::WriteToClipboard(unsigned int format, HANDLE handle) {
void ClipboardWin::WriteToClipboard(ClipboardFormatType format, HANDLE handle) {
UINT cf_format = format.ToFormatEtc().cfFormat;
DCHECK_NE(clipboard_owner_->hwnd(), nullptr);
if (handle && !::SetClipboardData(format, handle)) {
if (handle && !::SetClipboardData(cf_format, handle)) {
DCHECK_NE(GetLastError(),
static_cast<unsigned long>(ERROR_CLIPBOARD_NOT_OPEN));
FreeData(format, handle);
FreeData(cf_format, handle);
}
}
......
......@@ -12,6 +12,7 @@
#include "base/macros.h"
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/clipboard/clipboard_format_type.h"
namespace base {
namespace win {
......@@ -83,10 +84,10 @@ class ClipboardWin : public Clipboard {
void WriteBitmapFromHandle(HBITMAP source_hbitmap, const gfx::Size& size);
// Safely write to system clipboard. Free |handle| on failure.
void WriteToClipboard(unsigned int format, HANDLE handle);
void WriteToClipboard(ClipboardFormatType format, HANDLE handle);
// Return the window that should be the clipboard owner, creating it
// if neccessary. Marked const for lazily initialization by const methods.
// if necessary. Marked const for lazily initialization by const methods.
HWND GetClipboardWindow() const;
// Mark this as mutable so const methods can still do lazy initialization.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment