• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 namespace content {
16 class ClipboardClient;
17 
18 class 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