Home | History | Annotate | Download | only in renderer
      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