Index: mojo/services/public/interfaces/clipboard/clipboard.mojom |
diff --git a/mojo/services/public/interfaces/clipboard/clipboard.mojom b/mojo/services/public/interfaces/clipboard/clipboard.mojom |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c1e1be4ee09f79244c36d7437d4d918d3e1958c8 |
--- /dev/null |
+++ b/mojo/services/public/interfaces/clipboard/clipboard.mojom |
@@ -0,0 +1,52 @@ |
+// 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. |
+ |
+module mojo { |
+ |
+// A wrapper type which is just a Key/Value pair. Workaround until we get |
+// proper maps in mojom. |
+struct MimeTypePair { |
+ string mime_type; |
+ uint8[] data; |
+}; |
+ |
+interface Clipboard { |
+ enum Type { |
+ COPY_PASTE = 0, |
+ SELECTION = 1, |
+ DRAG = 2 |
+ }; |
+ |
+ // Mime type constants |
+ const string MIME_TYPE_TEXT = "text/plain"; |
+ const string MIME_TYPE_HTML = "text/html"; |
+ const string MIME_TYPE_URL = "text/url"; |
+ |
+ // Returns a sequence number which uniquely identifies clipboard state. |
+ // Clients are able to assume that the clipboard contents are unchanged as |
+ // long as this number has not changed. This number is monotonically |
+ // increasing, is increased when the clipboard state changes, and is |
+ // provided by Windows, Linux, and Mac. |
+ GetSequenceNumber(Type clipboard_type) => (uint64 sequence); |
+ |
+ // Returns the available mime types. (Note: the chrome interface has a |
+ // |contains_filenames| parameter here, but it appears to always be set |
+ // to false.) |
+ GetAvailableMimeTypes(Type clipboard_types) => (string[] types); |
+ |
+ // Returns the data associated with a Mime type, returning NULL if that data |
+ // doesn't exist. Note: because of the inherit raciness of clipboard access, |
+ // this may return NULL even if you just verified that it exists with |
+ // GetAvailableFormatMimeTypes(). We don't want to provide one API to return |
+ // the entire clipboard state because the combined size of the clipboard can |
+ // be megabytes, especially when image data is involved. |
+ ReadMimeType(Type clipboard_type, string mime_type) => (uint8[]? data); |
+ |
+ // Writes a set of mime types to the clipboard. This will increment the |
+ // sequence number. In the case of an empty or NULL list, this will just |
+ // clear the clipboard. |
+ WriteClipboardData(Type clipboard_type, MimeTypePair[]? data); |
+}; |
+ |
+} // module mojo |