Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: ios/chrome/browser/ui/activity_services/share_protocol.h

Issue 2586993002: Upstream Chrome on iOS source code [3/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/activity_services/share_protocol.h
diff --git a/ios/chrome/browser/ui/activity_services/share_protocol.h b/ios/chrome/browser/ui/activity_services/share_protocol.h
new file mode 100644
index 0000000000000000000000000000000000000000..dc88815abe9073e285ef3c92efbd74002c151d1b
--- /dev/null
+++ b/ios/chrome/browser/ui/activity_services/share_protocol.h
@@ -0,0 +1,79 @@
+// 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 IOS_CHROME_BROWSER_UI_ACTIVITY_SERVICES_SHARE_PROTOCOL_H_
+#define IOS_CHROME_BROWSER_UI_ACTIVITY_SERVICES_SHARE_PROTOCOL_H_
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+@class ShareToData;
+
+namespace ShareTo {
+
+// Provides the result of a sharing event.
+enum ShareResult {
+ // The share was successful.
+ SHARE_SUCCESS,
+ // The share was cancelled by either the user or by the service.
+ SHARE_CANCEL,
+ // The share was attempted, but failed due to a network-related error.
+ SHARE_NETWORK_FAILURE,
+ // The share was attempted, but failed because of user authentication error.
+ SHARE_SIGN_IN_FAILURE,
+ // The share was attempted, but failed with an unspecified error.
+ SHARE_ERROR,
+ // The share was attempted, and the result is unknown.
+ SHARE_UNKNOWN_RESULT,
+};
+
+} // namespace ShareTo
+
+// This protocol provides callbacks for sharing events.
+@protocol ShareToDelegate<NSObject>
+// Callback triggered on completion of sharing. |successMessage| gives the
+// message to be displayed on successful completion. If |successMessage| is nil,
+// no message is displayed.
+- (void)shareDidComplete:(ShareTo::ShareResult)shareStatus
+ successMessage:(NSString*)message;
+
+// Callback triggered if user invoked a Password Management App Extension.
+// If |shareStatus| is a successful status, delegate implementing this method
+// should find a login form on the current page and autofills it with the
+// |username| and |password|. |successMessage|, if non-nil, is the message to
+// be displayed on successful completion.
+- (void)passwordAppExDidFinish:(ShareTo::ShareResult)shareStatus
+ username:(NSString*)username
+ password:(NSString*)password
+ successMessage:(NSString*)message;
+@end
+
+namespace ios {
+class ChromeBrowserState;
+}
+
+@protocol ShareProtocol<NSObject>
+
+// Returns YES if a share is currently in progress.
+- (BOOL)isActive;
+
+// Cancels share operation.
+- (void)cancelShareAnimated:(BOOL)animated;
+
+// Shares the given data. The controller should be the current controller and
+// will be used to layer the necessary UI on top of it. The delegate will
+// receive callbacks about sharing events. On iPad, |rect| specifies the anchor
+// location for the UIPopover relative to |inView|.
+// |-isEnabled| must be YES. |data|, |controller|, |delegate| must not be nil.
+// When sharing to iPad, |inView| must not be nil and |rect|'s size must not be
+// zero.
+- (void)shareWithData:(ShareToData*)data
+ controller:(UIViewController*)controller
+ browserState:(ios::ChromeBrowserState*)browserState
+ shareToDelegate:(id<ShareToDelegate>)delegate
+ fromRect:(CGRect)rect
+ inView:(UIView*)inView;
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_ACTIVITY_SERVICES_SHARE_PROTOCOL_H_

Powered by Google App Engine
This is Rietveld 408576698