Commit 30c34a0a authored by Kurt Horimoto's avatar Kurt Horimoto Committed by Commit Bot

[iOS] Add OverlayModalities for InfoBar banners and modals.

This CL also adds no-op functions to return supported overlay
coordinator classes.

Bug: 1030357
Change-Id: I77c48fd1833509044a8c440d45e7f82218f06ebc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1949288
Commit-Queue: Kurt Horimoto <kkhorimoto@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Auto-Submit: Kurt Horimoto <kkhorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#721605}
parent 03600ec0
...@@ -12,6 +12,14 @@ enum class OverlayModality { ...@@ -12,6 +12,14 @@ enum class OverlayModality {
// Used to schedule overlay UI to be displayed modally over a WebState's // Used to schedule overlay UI to be displayed modally over a WebState's
// content area (i.e. present UI requested by script execution on a page). // content area (i.e. present UI requested by script execution on a page).
kWebContentArea, kWebContentArea,
// Used to schedule overlay UI to display Infobar banners. This modality is
// in front of the Browser view, allowing the banner to be displayed over the
// toolbar.
kInfobarBanner,
// Used to schedule overlay UI to display modal views for Infobars. This
// modality is in front of the banner, as it is possible for an Infobar to
// present its modal on top of its banner.
kInfobarModal,
}; };
#endif // IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_OVERLAY_MODALITY_H_ #endif // IOS_CHROME_BROWSER_OVERLAYS_PUBLIC_OVERLAY_MODALITY_H_
...@@ -31,6 +31,8 @@ source_set("overlays") { ...@@ -31,6 +31,8 @@ source_set("overlays") {
"//ios/chrome/browser/main", "//ios/chrome/browser/main",
"//ios/chrome/browser/overlays", "//ios/chrome/browser/overlays",
"//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/coordinators:chrome_coordinators",
"//ios/chrome/browser/ui/overlays/infobar_banner",
"//ios/chrome/browser/ui/overlays/infobar_modal",
"//ios/chrome/browser/ui/overlays/web_content_area", "//ios/chrome/browser/ui/overlays/web_content_area",
"//ios/chrome/common/ui_util", "//ios/chrome/common/ui_util",
] ]
......
# 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.
source_set("infobar_banner") {
public = [
"infobar_banner_supported_overlay_coordinator_classes.h",
]
sources = [
"infobar_banner_supported_overlay_coordinator_classes.mm",
]
configs += [ "//build/config/compiler:enable_arc" ]
deps = []
}
// 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_INFOBAR_BANNER_INFOBAR_BANNER_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
#define IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_BANNER_INFOBAR_BANNER_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
#import <Foundation/Foundation.h>
namespace infobar_banner {
// Returns the supported OverlayRequestCoordinator classes for
// OverlayModality::kInfobarBanner.
NSArray<Class>* GetSupportedOverlayCoordinatorClasses();
} // infobar_banner
#endif // IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_BANNER_INFOBAR_BANNER_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
// 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.
#import "ios/chrome/browser/ui/overlays/infobar_banner/infobar_banner_supported_overlay_coordinator_classes.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace infobar_banner {
NSArray<Class>* GetSupportedOverlayCoordinatorClasses() {
// TODO(crbug.com/1030357): Add overlay coordinator classes when converted.
return @[];
}
} // infobar_banner
# 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.
source_set("infobar_modal") {
public = [
"infobar_modal_supported_overlay_coordinator_classes.h",
]
sources = [
"infobar_modal_supported_overlay_coordinator_classes.mm",
]
configs += [ "//build/config/compiler:enable_arc" ]
deps = []
}
// 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_INFOBAR_MODAL_INFOBAR_MODAL_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
#define IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_MODAL_INFOBAR_MODAL_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
#import <Foundation/Foundation.h>
namespace infobar_modal {
// Returns the supported OverlayRequestCoordinator classes for
// OverlayModality::kInfobarModal.
NSArray<Class>* GetSupportedOverlayCoordinatorClasses();
} // infobar_modal
#endif // IOS_CHROME_BROWSER_UI_OVERLAYS_INFOBAR_MODAL_INFOBAR_MODAL_SUPPORTED_OVERLAY_COORDINATOR_CLASSES_H_
// 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.
#import "ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_supported_overlay_coordinator_classes.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
namespace infobar_modal {
NSArray<Class>* GetSupportedOverlayCoordinatorClasses() {
// TODO(crbug.com/1030357): Add overlay coordinator classes when converted.
return @[];
}
} // infobar_modal
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
#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/infobar_banner/infobar_banner_supported_overlay_coordinator_classes.h"
#import "ios/chrome/browser/ui/overlays/infobar_modal/infobar_modal_supported_overlay_coordinator_classes.h"
#import "ios/chrome/browser/ui/overlays/overlay_coordinator_factory+initialization.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"
#import "ios/chrome/browser/ui/overlays/web_content_area/web_content_area_supported_overlay_coordinator_classes.h" #import "ios/chrome/browser/ui/overlays/web_content_area/web_content_area_supported_overlay_coordinator_classes.h"
...@@ -33,6 +35,14 @@ ...@@ -33,6 +35,14 @@
supportedCoordinatorClasses = supportedCoordinatorClasses =
web_content_area::GetSupportedOverlayCoordinatorClasses(); web_content_area::GetSupportedOverlayCoordinatorClasses();
break; break;
case OverlayModality::kInfobarBanner:
supportedCoordinatorClasses =
infobar_banner::GetSupportedOverlayCoordinatorClasses();
break;
case OverlayModality::kInfobarModal:
supportedCoordinatorClasses =
infobar_modal::GetSupportedOverlayCoordinatorClasses();
break;
} }
return [[self alloc] initWithBrowser:browser return [[self alloc] initWithBrowser:browser
supportedOverlayRequestCoordinatorClasses:supportedCoordinatorClasses]; supportedOverlayRequestCoordinatorClasses:supportedCoordinatorClasses];
......
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