clipboard_recent_content_generic.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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 COMPONENTS_OPEN_FROM_CLIPBOARD_CLIPBOARD_RECENT_CONTENT_GENERIC_H_
  5. #define COMPONENTS_OPEN_FROM_CLIPBOARD_CLIPBOARD_RECENT_CONTENT_GENERIC_H_
  6. #include "base/time/time.h"
  7. #include "components/open_from_clipboard/clipboard_recent_content.h"
  8. #include "ui/gfx/image/image.h"
  9. #include "url/gurl.h"
  10. // An implementation of ClipboardRecentContent that uses
  11. // ui/base/clipboard/clipboard.h
  12. // and hence works on all platforms for which Clipboard is implemented.
  13. // (This includes all platforms Chrome runs on except iOS.)
  14. // Note that on some platforms Clipboard may not implement the necessary
  15. // functions for this provider to function. In those cases, it will not do
  16. // anything.
  17. class ClipboardRecentContentGeneric : public ClipboardRecentContent {
  18. public:
  19. ClipboardRecentContentGeneric();
  20. ClipboardRecentContentGeneric(const ClipboardRecentContentGeneric&) = delete;
  21. ClipboardRecentContentGeneric& operator=(
  22. const ClipboardRecentContentGeneric&) = delete;
  23. ~ClipboardRecentContentGeneric() override;
  24. // ClipboardRecentContent implementation.
  25. absl::optional<GURL> GetRecentURLFromClipboard() override;
  26. absl::optional<std::u16string> GetRecentTextFromClipboard() override;
  27. absl::optional<std::set<ClipboardContentType>>
  28. GetCachedClipboardContentTypes() override;
  29. void GetRecentImageFromClipboard(GetRecentImageCallback callback) override;
  30. bool HasRecentImageFromClipboard() override;
  31. void HasRecentContentFromClipboard(std::set<ClipboardContentType> types,
  32. HasDataCallback callback) override;
  33. void GetRecentURLFromClipboard(GetRecentURLCallback callback) override;
  34. void GetRecentTextFromClipboard(GetRecentTextCallback callback) override;
  35. base::TimeDelta GetClipboardContentAge() const override;
  36. void SuppressClipboardContent() override;
  37. void ClearClipboardContent() override;
  38. private:
  39. // Returns true if the URL is appropriate to be suggested.
  40. static bool IsAppropriateSuggestion(const GURL& url);
  41. };
  42. #endif // COMPONENTS_OPEN_FROM_CLIPBOARD_CLIPBOARD_RECENT_CONTENT_GENERIC_H_