| 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_ | 
|  |