| Index: webkit/glue/webclipboard_impl.cc | 
| diff --git a/webkit/glue/webclipboard_impl.cc b/webkit/glue/webclipboard_impl.cc | 
| index 0cbecaf08c57a1b1b028d289bf148a6a6fcffe2c..60176be73f94045c896af3b30ff62294e084393d 100644 | 
| --- a/webkit/glue/webclipboard_impl.cc | 
| +++ b/webkit/glue/webclipboard_impl.cc | 
| @@ -60,6 +60,10 @@ std::string WebClipboardImpl::URLToImageMarkup(const WebURL& url, | 
| return markup; | 
| } | 
|  | 
| +WebClipboardImpl::WebClipboardImpl(ClipboardClient* client) | 
| +    : client_(client) { | 
| +} | 
| + | 
| WebClipboardImpl::~WebClipboardImpl() { | 
| } | 
|  | 
| @@ -72,7 +76,7 @@ uint64 WebClipboardImpl::sequenceNumber(Buffer buffer) { | 
| if (!ConvertBufferType(buffer, &buffer_type)) | 
| return 0; | 
|  | 
| -  return ClipboardGetSequenceNumber(buffer_type); | 
| +  return client_->GetSequenceNumber(buffer_type); | 
| } | 
|  | 
| bool WebClipboardImpl::isFormatAvailable(Format format, Buffer buffer) { | 
| @@ -84,9 +88,9 @@ bool WebClipboardImpl::isFormatAvailable(Format format, Buffer buffer) { | 
|  | 
| switch (format) { | 
| case FormatPlainText: | 
| -      return ClipboardIsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 
| +      return client_->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 
| buffer_type) || | 
| -          ClipboardIsFormatAvailable(ui::Clipboard::GetPlainTextWFormatType(), | 
| +          client_->IsFormatAvailable(ui::Clipboard::GetPlainTextWFormatType(), | 
| buffer_type); | 
| case FormatHTML: | 
| format_type = ui::Clipboard::GetHtmlFormatType(); | 
| @@ -104,7 +108,7 @@ bool WebClipboardImpl::isFormatAvailable(Format format, Buffer buffer) { | 
| return false; | 
| } | 
|  | 
| -  return ClipboardIsFormatAvailable(format_type, buffer_type); | 
| +  return client_->IsFormatAvailable(format_type, buffer_type); | 
| } | 
|  | 
| WebVector<WebString> WebClipboardImpl::readAvailableTypes( | 
| @@ -112,7 +116,7 @@ WebVector<WebString> WebClipboardImpl::readAvailableTypes( | 
| ui::Clipboard::Buffer buffer_type; | 
| std::vector<string16> types; | 
| if (ConvertBufferType(buffer, &buffer_type)) { | 
| -    ClipboardReadAvailableTypes(buffer_type, &types, contains_filenames); | 
| +    client_->ReadAvailableTypes(buffer_type, &types, contains_filenames); | 
| } | 
| return types; | 
| } | 
| @@ -122,18 +126,18 @@ WebString WebClipboardImpl::readPlainText(Buffer buffer) { | 
| if (!ConvertBufferType(buffer, &buffer_type)) | 
| return WebString(); | 
|  | 
| -  if (ClipboardIsFormatAvailable(ui::Clipboard::GetPlainTextWFormatType(), | 
| +  if (client_->IsFormatAvailable(ui::Clipboard::GetPlainTextWFormatType(), | 
| buffer_type)) { | 
| string16 text; | 
| -    ClipboardReadText(buffer_type, &text); | 
| +    client_->ReadText(buffer_type, &text); | 
| if (!text.empty()) | 
| return text; | 
| } | 
|  | 
| -  if (ClipboardIsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 
| +  if (client_->IsFormatAvailable(ui::Clipboard::GetPlainTextFormatType(), | 
| buffer_type)) { | 
| std::string text; | 
| -    ClipboardReadAsciiText(buffer_type, &text); | 
| +    client_->ReadAsciiText(buffer_type, &text); | 
| if (!text.empty()) | 
| return ASCIIToUTF16(text); | 
| } | 
| @@ -150,7 +154,7 @@ WebString WebClipboardImpl::readHTML(Buffer buffer, WebURL* source_url, | 
|  | 
| string16 html_stdstr; | 
| GURL gurl; | 
| -  ClipboardReadHTML(buffer_type, &html_stdstr, &gurl, | 
| +  client_->ReadHTML(buffer_type, &html_stdstr, &gurl, | 
| static_cast<uint32*>(fragment_start), | 
| static_cast<uint32*>(fragment_end)); | 
| *source_url = gurl; | 
| @@ -163,14 +167,14 @@ WebData WebClipboardImpl::readImage(Buffer buffer) { | 
| return WebData(); | 
|  | 
| std::string png_data; | 
| -  ClipboardReadImage(buffer_type, &png_data); | 
| +  client_->ReadImage(buffer_type, &png_data); | 
| return WebData(png_data); | 
| } | 
|  | 
| void WebClipboardImpl::writeHTML( | 
| const WebString& html_text, const WebURL& source_url, | 
| const WebString& plain_text, bool write_smart_paste) { | 
| -  ScopedClipboardWriterGlue scw(ClipboardGetClipboard()); | 
| +  ScopedClipboardWriterGlue scw(client_); | 
| scw.WriteHTML(html_text, source_url.spec()); | 
| scw.WriteText(plain_text); | 
|  | 
| @@ -179,12 +183,12 @@ void WebClipboardImpl::writeHTML( | 
| } | 
|  | 
| void WebClipboardImpl::writePlainText(const WebString& plain_text) { | 
| -  ScopedClipboardWriterGlue scw(ClipboardGetClipboard()); | 
| +  ScopedClipboardWriterGlue scw(client_); | 
| scw.WriteText(plain_text); | 
| } | 
|  | 
| void WebClipboardImpl::writeURL(const WebURL& url, const WebString& title) { | 
| -  ScopedClipboardWriterGlue scw(ClipboardGetClipboard()); | 
| +  ScopedClipboardWriterGlue scw(client_); | 
|  | 
| scw.WriteBookmark(title, url.spec()); | 
| scw.WriteHTML(UTF8ToUTF16(URLToMarkup(url, title)), ""); | 
| @@ -193,7 +197,7 @@ void WebClipboardImpl::writeURL(const WebURL& url, const WebString& title) { | 
|  | 
| void WebClipboardImpl::writeImage( | 
| const WebImage& image, const WebURL& url, const WebString& title) { | 
| -  ScopedClipboardWriterGlue scw(ClipboardGetClipboard()); | 
| +  ScopedClipboardWriterGlue scw(client_); | 
|  | 
| if (!image.isNull()) { | 
| #if WEBKIT_USING_SKIA | 
|  |