// 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 #include class GURL; // Returns whether |url| is an external file reference. bool UrlIsExternalFileReference(const GURL& url); // Returns a URL that launches Chrome. NSURL* UrlToLaunchChrome(); // Returns the URL for the iOS App Icon for Chrome. NSURL* UrlOfChromeAppIcon(int width, int height); // Returns true if the scheme has a chrome scheme. bool UrlHasChromeScheme(const GURL& url); bool UrlHasChromeScheme(NSURL* 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 the URL string to the Chrome application icon. - (NSString*)getChromeAppIconURLOfWidth:(int)width height:(int)height; // Method to set the scheme to callback Chrome iOS for testing. - (void)setCallbackSchemeForTesting:(NSString*)callbackScheme; // Method to set a different block to provider the App Icon URL. typedef NSString* (^AppIconURLProvider)(int, int); - (void)setAppIconURLProviderForTesting:(AppIconURLProvider)block; @end #endif // IOS_CHROME_BROWSER_CHROME_URL_UTIL_H_