clipboard.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright 2017 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. #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_H_
  5. #define THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_H_
  6. #include <utility>
  7. #include "base/macros.h"
  8. #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
  9. #include "third_party/blink/renderer/core/dom/events/event_target.h"
  10. #include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
  11. #include "third_party/blink/renderer/core/fileapi/blob.h"
  12. #include "third_party/blink/renderer/modules/clipboard/clipboard_item.h"
  13. namespace blink {
  14. class ClipboardItemOptions;
  15. class ScriptState;
  16. class Clipboard : public EventTargetWithInlineData,
  17. public ExecutionContextClient {
  18. DEFINE_WRAPPERTYPEINFO();
  19. public:
  20. explicit Clipboard(ExecutionContext* execution_context);
  21. ScriptPromise read(ScriptState*);
  22. ScriptPromise read(ScriptState*, ClipboardItemOptions*);
  23. ScriptPromise readText(ScriptState*);
  24. ScriptPromise write(ScriptState*, const HeapVector<Member<ClipboardItem>>&);
  25. ScriptPromise writeText(ScriptState*, const String&);
  26. // EventTarget
  27. const AtomicString& InterfaceName() const override;
  28. ExecutionContext* GetExecutionContext() const override;
  29. void Trace(Visitor*) const override;
  30. private:
  31. DISALLOW_COPY_AND_ASSIGN(Clipboard);
  32. };
  33. } // namespace blink
  34. #endif // THIRD_PARTY_BLINK_RENDERER_MODULES_CLIPBOARD_CLIPBOARD_H_