Index: ios/clean/chrome/browser/ui/overlay_service/internal/overlay_service_impl.mm |
diff --git a/ios/clean/chrome/browser/ui/overlay_service/internal/overlay_service_impl.mm b/ios/clean/chrome/browser/ui/overlay_service/internal/overlay_service_impl.mm |
index fec6060bf09a55b76be75a9e6983795801810aad..b1a6f7dc67955f8bc418245dc25f450e1da3dc35 100644 |
--- a/ios/clean/chrome/browser/ui/overlay_service/internal/overlay_service_impl.mm |
+++ b/ios/clean/chrome/browser/ui/overlay_service/internal/overlay_service_impl.mm |
@@ -62,15 +62,17 @@ |
BrowserCoordinator* overlay_coordinator, |
web::WebState* web_state) { |
DCHECK(overlay_coordinator.supportsOverlaying); |
- WebStateOverlayQueue::FromWebState(web_state)->AddWebStateOverlay( |
- overlay_coordinator); |
+ WebStateOverlayQueue* queue = WebStateOverlayQueue::FromWebState(web_state); |
+ if (queue) |
+ queue->AddWebStateOverlay(overlay_coordinator); |
} |
void OverlayServiceImpl::SetWebStateParentCoordinator( |
BrowserCoordinator* parent_coordinator, |
web::WebState* web_state) { |
- WebStateOverlayQueue::FromWebState(web_state)->SetWebStateParentCoordinator( |
- parent_coordinator); |
+ WebStateOverlayQueue* queue = WebStateOverlayQueue::FromWebState(web_state); |
+ if (queue) |
+ queue->SetWebStateParentCoordinator(parent_coordinator); |
} |
void OverlayServiceImpl::ShowOverlayForBrowser( |
@@ -78,8 +80,9 @@ |
BrowserCoordinator* parent_coordiantor, |
Browser* browser) { |
DCHECK(overlay_coordinator.supportsOverlaying); |
- BrowserOverlayQueue::FromBrowser(browser)->AddBrowserOverlay( |
- overlay_coordinator, parent_coordiantor); |
+ BrowserOverlayQueue* queue = BrowserOverlayQueue::FromBrowser(browser); |
+ if (queue) |
+ queue->AddBrowserOverlay(overlay_coordinator, parent_coordiantor); |
} |
void OverlayServiceImpl::CancelOverlays() { |
@@ -90,11 +93,18 @@ |
} |
void OverlayServiceImpl::CancelOverlayForWebState(web::WebState* web_state) { |
- WebStateOverlayQueue::FromWebState(web_state)->CancelOverlays(); |
+ OverlayQueue* queue = WebStateOverlayQueue::FromWebState(web_state); |
+ if (queue) |
+ queue->CancelOverlays(); |
} |
void OverlayServiceImpl::StartSchedulerForBrowser(Browser* browser) { |
- OverlayScheduler::CreateForBrowser(browser); |
+ OverlayScheduler* scheduler = OverlayScheduler::FromBrowser(browser); |
+ if (scheduler) { |
+ scheduler->StartObservingBrowser(); |
+ } else { |
+ OverlayScheduler::CreateForBrowser(browser); |
+ } |
} |
void OverlayServiceImpl::StopSchedulerForBrowser(Browser* browser) { |