Refactor management of overview window copy lifetime into a separate class.
[chromium-blink-merge.git] / content / renderer / webclipboard_impl.h
blob926ca2ca3f27a2890b0ec55c907b3bf7f972ff4c
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"
10 #include "third_party/WebKit/public/platform/WebClipboard.h"
11 #include "ui/base/clipboard/clipboard.h"
13 #include <string>
15 namespace content {
16 class ClipboardClient;
18 class WebClipboardImpl : public WebKit::WebClipboard {
19 public:
20 explicit WebClipboardImpl(ClipboardClient* client);
22 virtual ~WebClipboardImpl();
24 // WebClipboard methods:
25 virtual uint64 sequenceNumber(Buffer buffer);
26 virtual bool isFormatAvailable(Format format, Buffer buffer);
27 virtual WebKit::WebVector<WebKit::WebString> readAvailableTypes(
28 Buffer buffer, bool* contains_filenames);
29 virtual WebKit::WebString readPlainText(Buffer buffer);
30 virtual WebKit::WebString readHTML(
31 Buffer buffer,
32 WebKit::WebURL* source_url,
33 unsigned* fragment_start,
34 unsigned* fragment_end);
35 virtual WebKit::WebData readImage(Buffer buffer);
36 virtual WebKit::WebString readCustomData(
37 Buffer buffer, const WebKit::WebString& type);
38 virtual void writePlainText(const WebKit::WebString& plain_text);
39 virtual void writeHTML(
40 const WebKit::WebString& html_text,
41 const WebKit::WebURL& source_url,
42 const WebKit::WebString& plain_text,
43 bool write_smart_paste);
44 virtual void writeImage(
45 const WebKit::WebImage& image,
46 const WebKit::WebURL& source_url,
47 const WebKit::WebString& title);
48 virtual void writeDataObject(const WebKit::WebDragData& data);
50 private:
51 bool ConvertBufferType(Buffer, ui::ClipboardType*);
52 ClipboardClient* client_;
55 } // namespace content
57 #endif // CONTENT_RENDERER_WEBCLIPBOARD_IMPL_H_