|  | // Copyright 2012 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_CHROME_URL_UTIL_H_ | 
|  | #define IOS_CHROME_BROWSER_CHROME_URL_UTIL_H_ | 
|  |  | 
|  | #import <Foundation/Foundation.h> | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | class GURL; | 
|  |  | 
|  | // Returns whether |url| is an external file reference. | 
|  | bool UrlIsExternalFileReference(const GURL& url); | 
|  |  | 
|  | // Returns true if the scheme has a chrome scheme. | 
|  | bool UrlHasChromeScheme(const GURL& url); | 
|  | bool UrlHasChromeScheme(NSURL* url); | 
|  |  | 
|  | // Returns YES if |url| matches chrome://newtab. | 
|  | bool IsURLNtp(const GURL& url); | 
|  |  | 
|  | // Returns true if |scheme| is handled in Chrome, or by default handlers in | 
|  | // net::URLRequest. | 
|  | bool IsHandledProtocol(const std::string& scheme); | 
|  |  | 
|  | // Singleton object that generates constants for Chrome iOS applications. | 
|  | // Behavior of this object can be overridden by unit tests. | 
|  | @interface ChromeAppConstants : NSObject | 
|  |  | 
|  | // Class method returning the singleton instance. | 
|  | + (ChromeAppConstants*)sharedInstance; | 
|  |  | 
|  | // Returns the URL scheme that launches Chrome. | 
|  | - (NSString*)getBundleURLScheme; | 
|  |  | 
|  | // Returns all the URL schemes that are registered on the Application Bundle. | 
|  | - (NSArray*)getAllBundleURLSchemes; | 
|  |  | 
|  | // Method to set the scheme to callback Chrome iOS for testing. | 
|  | - (void)setCallbackSchemeForTesting:(NSString*)callbackScheme; | 
|  |  | 
|  | @end | 
|  |  | 
|  | #endif  // IOS_CHROME_BROWSER_CHROME_URL_UTIL_H_ |