chromium/ios/chrome/browser/ui/page_info/page_info_about_this_site_mediator.h

// Copyright 2024 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_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_ABOUT_THIS_SITE_MEDIATOR_H_
#define IOS_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_ABOUT_THIS_SITE_MEDIATOR_H_

#import <Foundation/Foundation.h>

#import "ios/chrome/browser/ui/page_info/page_info_about_this_site_consumer.h"

namespace web {
class WebState;
}

namespace page_info {
class AboutThisSiteService;
}

@class PageInfoSiteSecurityDescription;

// Mediator for AboutThisPage that will extract the data to be displayed in the
// Page Info's view controller.
@interface PageInfoAboutThisSiteMediator : NSObject

// The consumer being set up by this mediator. Setting to a new value updates
// the new consumer.
@property(nonatomic, weak) id<PageInfoAboutThisSiteConsumer> consumer;

// Designated initializer. `webState` is the webState for the BrowserContainer
// that owns this mediator. `service` is the AboutThisSiteService used to obtain
// the AboutThisSite information of the `webState`. `webState` should not be
// null.
- (instancetype)initWithWebState:(web::WebState*)webState
                         service:(page_info::AboutThisSiteService*)service;

- (instancetype)init NS_UNAVAILABLE;

@end

#endif  // IOS_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_ABOUT_THIS_SITE_MEDIATOR_H_