diff options
Diffstat (limited to 'chromium/components/open_from_clipboard/clipboard_recent_content_ios.h')
-rw-r--r-- | chromium/components/open_from_clipboard/clipboard_recent_content_ios.h | 56 |
1 files changed, 14 insertions, 42 deletions
diff --git a/chromium/components/open_from_clipboard/clipboard_recent_content_ios.h b/chromium/components/open_from_clipboard/clipboard_recent_content_ios.h index d4b7d7ec831..abbf510182e 100644 --- a/chromium/components/open_from_clipboard/clipboard_recent_content_ios.h +++ b/chromium/components/open_from_clipboard/clipboard_recent_content_ios.h @@ -11,13 +11,16 @@ #include "components/open_from_clipboard/clipboard_recent_content.h" #include "url/gurl.h" +@class NSArray; @class NSDate; @class NSUserDefaults; -@class ApplicationDidBecomeActiveNotificationListenerBridge; +@class ClipboardRecentContentImplIOS; -class ClipboardRecentContentIOSTest; - -// IOS implementation of ClipboardRecentContent +// IOS implementation of ClipboardRecentContent. +// A large part of the implementation is in clipboard_recent_content_impl_ios, +// a GURL-free class that is used by some of the iOS extensions. Not using GURL +// in extensions is preferable as GURL requires depending on ICU which makes the +// extensions much larger. class ClipboardRecentContentIOS : public ClipboardRecentContent { public: // |application_scheme| is the URL scheme that can be used to open the @@ -26,53 +29,22 @@ class ClipboardRecentContentIOS : public ClipboardRecentContent { // |group_user_defaults| is the NSUserDefaults used to store information on // pasteboard entry expiration. This information will be shared with other // application in the application group. - explicit ClipboardRecentContentIOS(const std::string& application_scheme, - NSUserDefaults* group_user_defaults); - ~ClipboardRecentContentIOS() override; + ClipboardRecentContentIOS(const std::string& application_scheme, + NSUserDefaults* group_user_defaults); - // If the content of the pasteboard has changed, updates the change count, - // change date, and md5 of the latest pasteboard entry if necessary. - void UpdateIfNeeded(); + // Constructor that directly takes an |implementation|. For use in tests. + ClipboardRecentContentIOS(ClipboardRecentContentImplIOS* implementation); - // Returns whether the pasteboard changed since the last time a pasteboard - // change was detected. - bool HasPasteboardChanged() const; - - // Loads information from the user defaults about the latest pasteboard entry. - void LoadFromUserDefaults(); + ~ClipboardRecentContentIOS() override; // ClipboardRecentContent implementation. bool GetRecentURLFromClipboard(GURL* url) override; base::TimeDelta GetClipboardContentAge() const override; void SuppressClipboardContent() override; - protected: - // Returns the uptime. Override in tests to return custom value. - virtual base::TimeDelta Uptime() const; - private: - friend class ClipboardRecentContentIOSTest; - - // Saves information to the user defaults about the latest pasteboard entry. - void SaveToUserDefaults(); - - // Returns the URL contained in the clipboard (if any). - GURL URLFromPasteboard(); - - // Contains the URL scheme opening the app. May be empty. - std::string application_scheme_; - // The pasteboard's change count. Increases everytime the pasteboard changes. - NSInteger last_pasteboard_change_count_; - // Estimation of the date when the pasteboard changed. - base::scoped_nsobject<NSDate> last_pasteboard_change_date_; - // MD5 hash of the last registered pasteboard entry. - base::scoped_nsobject<NSData> last_pasteboard_entry_md5_; - // Bridge to receive notifications when the application becomes active. - base::scoped_nsobject<ApplicationDidBecomeActiveNotificationListenerBridge> - notification_bridge_; - // The user defaults from the app group used to optimize the pasteboard change - // detection. - base::scoped_nsobject<NSUserDefaults> shared_user_defaults_; + // The implementation instance. + base::scoped_nsobject<ClipboardRecentContentImplIOS> implementation_; DISALLOW_COPY_AND_ASSIGN(ClipboardRecentContentIOS); }; |