Commit 4c4d81cf authored by Chris Lu's avatar Chris Lu Committed by Commit Bot

[ios] Add Infobar Overlay DCHECKs

Now that all Infobars have been converted to the Overlay framework,
DCHECKs can replace early returns to ensure that infrastructure exists
for all Infobars.

Bug: 1030357
Change-Id: I293755ae96b4f9eba763ffb1158f5e2260d3306b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2363324
Commit-Queue: Chris Lu <thegreenfrog@chromium.org>
Commit-Queue: Sergio Collazos <sczs@chromium.org>
Auto-Submit: Chris Lu <thegreenfrog@chromium.org>
Reviewed-by: default avatarSergio Collazos <sczs@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799913}
parent 9c17bce2
...@@ -25,9 +25,6 @@ using save_card_infobar_overlays::SaveCardBannerRequestConfig; ...@@ -25,9 +25,6 @@ using save_card_infobar_overlays::SaveCardBannerRequestConfig;
using save_card_infobar_overlays::SaveCardModalRequestConfig; using save_card_infobar_overlays::SaveCardModalRequestConfig;
InfobarOverlayRequestFactoryImpl::InfobarOverlayRequestFactoryImpl() { InfobarOverlayRequestFactoryImpl::InfobarOverlayRequestFactoryImpl() {
// Create the factory helpers for the supported infobar types.
// TODO(crbug.com/1030357): Add factory helpers for other infobar and overlay
// types.
SetUpFactories(InfobarType::kInfobarTypePasswordSave, SetUpFactories(InfobarType::kInfobarTypePasswordSave,
CreateFactory<SavePasswordInfobarBannerOverlayRequestConfig>(), CreateFactory<SavePasswordInfobarBannerOverlayRequestConfig>(),
/*detail_sheet_factory=*/nullptr, /*detail_sheet_factory=*/nullptr,
...@@ -58,12 +55,9 @@ InfobarOverlayRequestFactoryImpl::CreateInfobarRequest( ...@@ -58,12 +55,9 @@ InfobarOverlayRequestFactoryImpl::CreateInfobarRequest(
InfobarOverlayType type) { InfobarOverlayType type) {
DCHECK(infobar); DCHECK(infobar);
InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(infobar); InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(infobar);
// TODO(crbug.com/1030357): This factory should DCHECK that |factory| is
// non-null after all existing infobars have been converted to using overlays.
// Early return in the interim to prevent crashing while the remaining
// infobars are being converted.
FactoryHelper* factory = factory_storages_[infobar_ios->infobar_type()][type]; FactoryHelper* factory = factory_storages_[infobar_ios->infobar_type()][type];
return factory ? factory->CreateInfobarRequest(infobar_ios) : nullptr; DCHECK(factory);
return factory->CreateInfobarRequest(infobar_ios);
} }
void InfobarOverlayRequestFactoryImpl::SetUpFactories( void InfobarOverlayRequestFactoryImpl::SetUpFactories(
......
...@@ -75,10 +75,7 @@ void InfobarOverlayRequestInserter::InsertOverlayRequest( ...@@ -75,10 +75,7 @@ void InfobarOverlayRequestInserter::InsertOverlayRequest(
std::unique_ptr<OverlayRequest> request = std::unique_ptr<OverlayRequest> request =
request_factory_->CreateInfobarRequest(params.infobar, request_factory_->CreateInfobarRequest(params.infobar,
params.overlay_type); params.overlay_type);
// TODO(crbug.com/1030357): Replace early return with a DCHECK once all DCHECK(request);
// infobars have been converted to use OverlayPresenter.
if (!request)
return;
InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(params.infobar); InfoBarIOS* infobar_ios = static_cast<InfoBarIOS*>(params.infobar);
DCHECK_EQ(infobar_ios, DCHECK_EQ(infobar_ios,
request->GetConfig<InfobarOverlayRequestConfig>()->infobar()); request->GetConfig<InfobarOverlayRequestConfig>()->infobar());
......
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