Commit 76d722a8 authored by Kurt Horimoto's avatar Kurt Horimoto Committed by Commit Bot

[iOS] Move OverlayCoordinatorFactory initializer to category.

This allows for tests to create OverlayCoordinatorFactories for a
subset of OverlayRequest types for a given modality, allowing more
granular tests without duplicating OverlayCoordinatorFactory logic.

Bug: 941745
Change-Id: Icbf39e968eeb9e0d0814cad7e37b111e772e1de5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1636591
Commit-Queue: Kurt Horimoto <kkhorimoto@chromium.org>
Reviewed-by: default avatarMike Dougherty <michaeldo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#664915}
parent a7d164c9
......@@ -9,6 +9,7 @@ source_set("overlays") {
]
sources = [
"overlay_container_coordinator.mm",
"overlay_coordinator_factory+initialization.h",
"overlay_coordinator_factory.mm",
"overlay_presenter_ui_delegate_impl.h",
"overlay_presenter_ui_delegate_impl.mm",
......
// Copyright 2019 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_OVERLAYS_OVERLAY_COORDINATOR_FACTORY_INITIALIZATION_H_
#define IOS_CHROME_BROWSER_UI_OVERLAYS_OVERLAY_COORDINATOR_FACTORY_INITIALIZATION_H_
#import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory.h"
@interface OverlayRequestCoordinatorFactory (Initialization)
// Initializer for a factory that supports the OverlayRequestCoordinator types
// in |supportedOverlayClasses|.
- (instancetype)initWithBrowser:(Browser*)browser
supportedOverlayRequestCoordinatorClasses:
(NSArray<Class>*)supportedOverlayClasses;
@end
#endif // IOS_CHROME_BROWSER_UI_OVERLAYS_OVERLAY_COORDINATOR_FACTORY_INITIALIZATION_H_
......@@ -5,6 +5,7 @@
#import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory.h"
#include "base/logging.h"
#import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory+initialization.h"
#import "ios/chrome/browser/ui/overlays/overlay_request_coordinator.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
......@@ -18,10 +19,6 @@
// associated with this coordinator factory.
@property(nonatomic, readonly)
NSArray<Class>* supportedOverlayRequestCoordinatorClasses;
// Initializer used by |+factoryForBrowser:modality:|.
- (instancetype)initWithBrowser:(Browser*)browser
supportedOverlayRequestCoordinatorClasses:
(NSArray<Class>*)supportedOverlayClasses NS_DESIGNATED_INITIALIZER;
@end
@implementation OverlayRequestCoordinatorFactory
......@@ -40,18 +37,6 @@
supportedOverlayRequestCoordinatorClasses:supportedCoordinatorClasses];
}
- (instancetype)initWithBrowser:(Browser*)browser
supportedOverlayRequestCoordinatorClasses:
(NSArray<Class>*)supportedOverlayClasses {
if (self = [super init]) {
_browser = browser;
DCHECK(_browser);
_supportedOverlayRequestCoordinatorClasses = supportedOverlayClasses;
DCHECK(_supportedOverlayRequestCoordinatorClasses.count);
}
return self;
}
- (OverlayRequestCoordinator*)
newCoordinatorForRequest:(OverlayRequest*)request
dismissalDelegate:(OverlayUIDismissalDelegate*)dismissalDelegate
......@@ -71,3 +56,19 @@
}
@end
@implementation OverlayRequestCoordinatorFactory (Initialization)
- (instancetype)initWithBrowser:(Browser*)browser
supportedOverlayRequestCoordinatorClasses:
(NSArray<Class>*)supportedOverlayClasses {
if (self = [super init]) {
_browser = browser;
DCHECK(_browser);
_supportedOverlayRequestCoordinatorClasses = supportedOverlayClasses;
DCHECK(_supportedOverlayRequestCoordinatorClasses.count);
}
return self;
}
@end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment