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.
5 #ifndef CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_
6 #define CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_
8 #include "base/compiler_specific.h"
9 #include "third_party/WebKit/public/platform/WebClipboard.h"
10 #include "ui/base/clipboard/clipboard.h"
15 class RendererClipboardDelegate
;
17 class WebClipboardImpl
: public blink::WebClipboard
{
19 explicit WebClipboardImpl(RendererClipboardDelegate
* delegate
);
21 virtual ~WebClipboardImpl();
23 // WebClipboard methods:
24 virtual uint64
sequenceNumber(Buffer buffer
);
25 virtual bool isFormatAvailable(Format format
, Buffer buffer
);
26 virtual blink::WebVector
<blink::WebString
> readAvailableTypes(
27 Buffer buffer
, bool* contains_filenames
);
28 virtual blink::WebString
readPlainText(Buffer buffer
);
29 virtual blink::WebString
readHTML(
31 blink::WebURL
* source_url
,
32 unsigned* fragment_start
,
33 unsigned* fragment_end
);
34 virtual blink::WebData
readImage(Buffer buffer
);
35 virtual blink::WebString
readCustomData(
36 Buffer buffer
, const blink::WebString
& type
);
37 virtual void writePlainText(const blink::WebString
& plain_text
);
38 virtual void writeHTML(
39 const blink::WebString
& html_text
,
40 const blink::WebURL
& source_url
,
41 const blink::WebString
& plain_text
,
42 bool write_smart_paste
);
43 virtual void writeImage(
44 const blink::WebImage
& image
,
45 const blink::WebURL
& source_url
,
46 const blink::WebString
& title
);
47 virtual void writeDataObject(const blink::WebDragData
& data
);
50 bool ConvertBufferType(Buffer
, ui::ClipboardType
*);
51 RendererClipboardDelegate
* const delegate_
;
54 } // namespace content
56 #endif // CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_