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") { ...@@ -9,6 +9,7 @@ source_set("overlays") {
] ]
sources = [ sources = [
"overlay_container_coordinator.mm", "overlay_container_coordinator.mm",
"overlay_coordinator_factory+initialization.h",
"overlay_coordinator_factory.mm", "overlay_coordinator_factory.mm",
"overlay_presenter_ui_delegate_impl.h", "overlay_presenter_ui_delegate_impl.h",
"overlay_presenter_ui_delegate_impl.mm", "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 @@ ...@@ -5,6 +5,7 @@
#import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory.h" #import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory.h"
#include "base/logging.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" #import "ios/chrome/browser/ui/overlays/overlay_request_coordinator.h"
#if !defined(__has_feature) || !__has_feature(objc_arc) #if !defined(__has_feature) || !__has_feature(objc_arc)
...@@ -18,10 +19,6 @@ ...@@ -18,10 +19,6 @@
// associated with this coordinator factory. // associated with this coordinator factory.
@property(nonatomic, readonly) @property(nonatomic, readonly)
NSArray<Class>* supportedOverlayRequestCoordinatorClasses; NSArray<Class>* supportedOverlayRequestCoordinatorClasses;
// Initializer used by |+factoryForBrowser:modality:|.
- (instancetype)initWithBrowser:(Browser*)browser
supportedOverlayRequestCoordinatorClasses:
(NSArray<Class>*)supportedOverlayClasses NS_DESIGNATED_INITIALIZER;
@end @end
@implementation OverlayRequestCoordinatorFactory @implementation OverlayRequestCoordinatorFactory
...@@ -40,18 +37,6 @@ ...@@ -40,18 +37,6 @@
supportedOverlayRequestCoordinatorClasses:supportedCoordinatorClasses]; 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*) - (OverlayRequestCoordinator*)
newCoordinatorForRequest:(OverlayRequest*)request newCoordinatorForRequest:(OverlayRequest*)request
dismissalDelegate:(OverlayUIDismissalDelegate*)dismissalDelegate dismissalDelegate:(OverlayUIDismissalDelegate*)dismissalDelegate
...@@ -71,3 +56,19 @@ ...@@ -71,3 +56,19 @@
} }
@end @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