chromium/ios/web_view/public/cwv_favicon.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_WEB_VIEW_PUBLIC_CWV_FAVICON_H_
#define IOS_WEB_VIEW_PUBLIC_CWV_FAVICON_H_

#import <Foundation/Foundation.h>

#import "cwv_export.h"

NS_ASSUME_NONNULL_BEGIN

typedef NS_ENUM(NSInteger, CWVFaviconType) {
  // Invalid icon type.
  CWVFaviconTypeInvalid = 0,
  // <link rel="icon" ...>.
  CWVFaviconTypeFavicon,
  // <link rel="apple-touch-icon" ...>.
  CWVFaviconTypeTouchIcon,
  // <link rel="apple-touch-icon-precomposed" ...>.
  CWVFaviconTypeTouchPrecomposedIcon,
  // Icon listed in a web manifest.
  CWVFaviconTypeWebManifestIcon,
};

// Encapsulates information about a fav icon.
CWV_EXPORT
@interface CWVFavicon : NSObject

// URL of the icon.
@property(nonatomic, copy, readonly) NSURL* URL;
// Type of icon.
@property(nonatomic, readonly) CWVFaviconType type;
// Boxed values of CGSizes.
// There may be multiple sizes if the |type| is CWVFaviconTypeFavicon.
@property(nonatomic, readonly) NSArray<NSValue*>* sizes;

- (instancetype)init NS_UNAVAILABLE;

@end

NS_ASSUME_NONNULL_END

#endif  // IOS_WEB_VIEW_PUBLIC_CWV_FAVICON_H_