| 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) {
|
|
|