| // 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. |
| |
| #import "ios/web/public/url_scheme_util.h" |
| |
| #import <Foundation/Foundation.h> |
| |
| #import "base/strings/sys_string_conversions.h" |
| #include "url/gurl.h" |
| |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| #error "This file requires ARC support." |
| #endif |
| |
| namespace web { |
| |
| bool UrlHasWebScheme(const GURL& url) { |
| return url.SchemeIs(url::kHttpScheme) || |
| url.SchemeIs(url::kHttpsScheme) || |
| url.SchemeIs(url::kDataScheme); |
| } |
| |
| bool UrlHasWebScheme(NSURL* url) { |
| NSString* scheme = [url scheme]; |
| if (![scheme length]) |
| return false; |
| |
| // Use the GURL implementation, but with a scheme-only URL to avoid |
| // unnecessary parsing in GURL construction. |
| NSString* schemeURLString = [scheme stringByAppendingString:@":"]; |
| GURL gurl(base::SysNSStringToUTF8(schemeURLString)); |
| return UrlHasWebScheme(gurl); |
| } |
| |
| } // namespace web |