| Index: ios/chrome/browser/web/mailto_handler.h
|
| diff --git a/ios/chrome/browser/web/mailto_handler.h b/ios/chrome/browser/web/mailto_handler.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..53347a32cdef8b6e1aae578d9f83db33066f7f67
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/web/mailto_handler.h
|
| @@ -0,0 +1,46 @@
|
| +// Copyright 2017 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_WEB_MAILTO_HANDLER_H_
|
| +#define _IOS_CHROME_BROWSER_WEB_MAILTO_HANDLER_H_
|
| +
|
| +#import <Foundation/Foundation.h>
|
| +
|
| +class GURL;
|
| +
|
| +// MailtoHandler is the base class for Mail client apps that can handle
|
| +// mailto: URLs via custom URL schemes. To add support for Mail clients,
|
| +// subclass from this and add it to MailtoURLRewriter class.
|
| +@interface MailtoHandler : NSObject
|
| +
|
| +// Name of Mail client. This is a name that a user can recognize, e.g. @"Gmail".
|
| +@property(nonatomic, readonly) NSString* appName;
|
| +
|
| +// The iOS App Store ID for the Mail client. This is usually a string of digits.
|
| +@property(nonatomic, readonly) NSString* appStoreID;
|
| +
|
| +// Initializer that subclasses should call from -init.
|
| +- (instancetype)initWithName:(NSString*)appName
|
| + appStoreID:(NSString*)appStoreID;
|
| +
|
| +// Returns whether the Mail client app is installed.
|
| +- (BOOL)isAvailable;
|
| +
|
| +// Returns the prefix to use with -rewriteMailtoURL:. This is usually the custom
|
| +// URL scheme plus some operator prefix. Subclasses should override this method.
|
| +- (NSString*)beginningScheme;
|
| +
|
| +// Returns a set of NSString for mailto: parameters supported by this handler.
|
| +- (NSSet<NSString*>*)supportedHeaders;
|
| +
|
| +// Rewrites |gURL| into a URL with a different URL scheme that will cause a
|
| +// native iOS app to be launched to handle the mailto: URL. Returns nil if
|
| +// |gURL| is not a mailto: URL. Base class implementation provides the typical
|
| +// use which rewrites mailto:user@domain.com?subject=arg to
|
| +// mailtoScheme:/co?to=user@domain.com&subject=arg
|
| +- (NSString*)rewriteMailtoURL:(const GURL&)gURL;
|
| +
|
| +@end
|
| +
|
| +#endif // _IOS_CHROME_BROWSER_WEB_MAILTO_HANDLER_H_
|
|
|