blob: 57edb226658bc191b04b003c7fb466eb12e2656b [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:
uint64_t sequenceNumber(Buffer) override;
bool isFormatAvailable(Format, Buffer) override;
blink::WebVector<blink::WebString> readAvailableTypes(
Buffer,
bool* containsFilenames) override;
blink::WebString readPlainText(Buffer) override;
blink::WebString readHTML(Buffer buffer,
blink::WebURL* pageURL,
unsigned* fragmentStart,
unsigned* fragmentEnd) override;
// TODO(erg): readImage()
blink::WebString readCustomData(Buffer,
const blink::WebString& type) override;
void writePlainText(const blink::WebString&) override;
void writeHTML(const blink::WebString& htmlText,
const blink::WebURL&,
const blink::WebString& plainText,
bool writeSmartPaste) override;
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_