11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_ 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_ 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "mojo/services/public/interfaces/clipboard/clipboard.mojom.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "third_party/WebKit/public/platform/WebClipboard.h" 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccinamespace mojo { 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass WebClipboardImpl : public blink::WebClipboard { 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public: 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci WebClipboardImpl(ClipboardPtr clipboard); 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual ~WebClipboardImpl(); 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // blink::WebClipboard methods: 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual uint64_t sequenceNumber(Buffer); 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual bool isFormatAvailable(Format, Buffer); 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual blink::WebVector<blink::WebString> readAvailableTypes( 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Buffer, 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool* containsFilenames); 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual blink::WebString readPlainText(Buffer); 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual blink::WebString readHTML(Buffer buffer, 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci blink::WebURL* pageURL, 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci unsigned* fragmentStart, 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci unsigned* fragmentEnd); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // TODO(erg): readImage() 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual blink::WebString readCustomData(Buffer, const blink::WebString& type); 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void writePlainText(const blink::WebString&); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci virtual void writeHTML(const blink::WebString& htmlText, 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const blink::WebURL&, 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const blink::WebString& plainText, 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci bool writeSmartPaste); 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private: 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci // Changes webkit buffers to mojo Clipboard::Types. 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mojo::Clipboard::Type ConvertBufferType(Buffer buffer); 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ClipboardPtr clipboard_; 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci DISALLOW_COPY_AND_ASSIGN(WebClipboardImpl); 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci}; 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci} // namespace mojo 471320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif // MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_ 49