blob: 9653addac4d5d073337b3d58763363092807a9ef [file] [log] [blame]
// Copyright 2017 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.
#ifndef IOS_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_LEGACY_COORDINATOR_H_
#define IOS_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_LEGACY_COORDINATOR_H_
#import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h"
@class CommandDispatcher;
@protocol PageInfoPresentation;
@class TabModel;
@protocol UrlLoader;
// Notification sent when the page info is shown.
extern NSString* const kPageInfoWillShowNotification;
// Notification sent when the page info is hidden.
extern NSString* const kPageInfoWillHideNotification;
// The coordinator that manages the display of the Page Info UI. When
// |dispatcher| is set, this coordinator uses |dispatcher| to register itself
// as the target for PageInfoCommmands. These commands can then trigger the
// showing/hiding of the Page Info UI.
@interface PageInfoLegacyCoordinator : ChromeCoordinator
// The dispatcher for this coordinator. When |dispatcher| is set, the
// coordinator will register itself as the target for PageInfoCommands.
@property(nonatomic, weak) CommandDispatcher* dispatcher;
// The UrlLoader to be used by this coordinator.
@property(nonatomic, weak) id<UrlLoader> loader;
// |presentationProvider| provides information and runs tasks necessary to
// present Page Info.
@property(nonatomic, weak) id<PageInfoPresentation> presentationProvider;
// The active TabModel to be used to display Page Info.
@property(nonatomic, weak) TabModel* tabModel;
// Stops listening for dispatcher calls and clears this coordinator's weak
// references. The Page Info UI must not be displayed when this method is
// called.
- (void)disconnect;
@end
#endif // IOS_CHROME_BROWSER_UI_PAGE_INFO_PAGE_INFO_LEGACY_COORDINATOR_H_