blob: 5edccf4928b54e6096c0036175f9292bdccb54f7 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_
#define MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_
#include "third_party/WebKit/public/platform/WebClipboard.h"
#include "third_party/mojo_services/src/clipboard/public/interfaces/clipboard.mojom.h"
namespace html_viewer {
class WebClipboardImpl : public blink::WebClipboard {
public:
WebClipboardImpl(mojo::ClipboardPtr clipboard);
virtual ~WebClipboardImpl();
// blink::WebClipboard methods:
virtual uint64_t sequenceNumber(Buffer);
virtual bool isFormatAvailable(Format, Buffer);
virtual blink::WebVector<blink::WebString> readAvailableTypes(
Buffer,
bool* containsFilenames);
virtual blink::WebString readPlainText(Buffer);
virtual blink::WebString readHTML(Buffer buffer,
blink::WebURL* pageURL,
unsigned* fragmentStart,
unsigned* fragmentEnd);
// TODO(erg): readImage()
virtual blink::WebString readCustomData(Buffer, const blink::WebString& type);
virtual void writePlainText(const blink::WebString&);
virtual void writeHTML(const blink::WebString& htmlText,
const blink::WebURL&,
const blink::WebString& plainText,
bool writeSmartPaste);
private:
// Changes webkit buffers to mojo Clipboard::Types.
mojo::Clipboard::Type ConvertBufferType(Buffer buffer);
mojo::ClipboardPtr clipboard_;
DISALLOW_COPY_AND_ASSIGN(WebClipboardImpl);
};
} // namespace html_viewer
#endif // MOJO_SERVICES_HTML_VIEWER_WEBCLIPBOARD_IMPL_H_