1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_ 6#define CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_ 7 8#include "base/compiler_specific.h" 9 10#include "third_party/WebKit/public/platform/WebClipboard.h" 11#include "ui/base/clipboard/clipboard.h" 12 13#include <string> 14 15namespace content { 16class ClipboardClient; 17 18class WebClipboardImpl : public blink::WebClipboard { 19 public: 20 explicit WebClipboardImpl(ClipboardClient* client); 21 22 virtual ~WebClipboardImpl(); 23 24 // WebClipboard methods: 25 virtual uint64 sequenceNumber(Buffer buffer); 26 virtual bool isFormatAvailable(Format format, Buffer buffer); 27 virtual blink::WebVector<blink::WebString> readAvailableTypes( 28 Buffer buffer, bool* contains_filenames); 29 virtual blink::WebString readPlainText(Buffer buffer); 30 virtual blink::WebString readHTML( 31 Buffer buffer, 32 blink::WebURL* source_url, 33 unsigned* fragment_start, 34 unsigned* fragment_end); 35 virtual blink::WebData readImage(Buffer buffer); 36 virtual blink::WebString readCustomData( 37 Buffer buffer, const blink::WebString& type); 38 virtual void writePlainText(const blink::WebString& plain_text); 39 virtual void writeHTML( 40 const blink::WebString& html_text, 41 const blink::WebURL& source_url, 42 const blink::WebString& plain_text, 43 bool write_smart_paste); 44 virtual void writeImage( 45 const blink::WebImage& image, 46 const blink::WebURL& source_url, 47 const blink::WebString& title); 48 virtual void writeDataObject(const blink::WebDragData& data); 49 50 private: 51 bool ConvertBufferType(Buffer, ui::ClipboardType*); 52 ClipboardClient* client_; 53}; 54 55} // namespace content 56 57#endif // CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_ 58