// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/net/model/crurl.h"
#import "net/base/apple/url_conversions.h"
@implementation CrURL {
// In an attempt to reduce the number of conversions to NSURL, we strive
// to keep URLs represented as GURL for as long as possible. It should only
// be converted to NSURL when needed by UIKit or Foundation as some URLs
// are not able to be perfectly represented as NSURL, or the conversion is
// not always accurate. This is similar to what is done with NSString.
GURL url_;
}
- (instancetype)initWithGURL:(const GURL&)url {
if ((self = [super init])) {
url_ = url;
}
return self;
}
- (instancetype)initWithNSURL:(NSURL*)url {
return [self initWithGURL:net::GURLWithNSURL(url)];
}
- (const GURL&)gurl {
return url_;
}
- (NSURL*)nsurl {
return net::NSURLWithGURL(url_);
}
@end