url_scheme_util.mm 839 B

123456789101112131415161718192021222324252627282930
  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #import "ios/net/url_scheme_util.h"
  5. #import <Foundation/Foundation.h>
  6. #include "base/check.h"
  7. #include "base/strings/sys_string_conversions.h"
  8. #include "url/gurl.h"
  9. #if !defined(__has_feature) || !__has_feature(objc_arc)
  10. #error "This file requires ARC support."
  11. #endif
  12. namespace net {
  13. bool UrlSchemeIs(NSURL* url, NSString* scheme) {
  14. DCHECK([scheme isEqualToString:[scheme lowercaseString]]);
  15. NSString* url_scheme = [url scheme];
  16. return (url_scheme != nil) &&
  17. [url_scheme caseInsensitiveCompare:scheme] == NSOrderedSame;
  18. }
  19. bool UrlHasDataScheme(NSURL* url) {
  20. return UrlSchemeIs(url, base::SysUTF8ToNSString(url::kDataScheme));
  21. }
  22. } // namespace net