| // 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_WEB_NAVIGATION_CRW_WEB_VIEW_NAVIGATION_OBSERVER_DELEGATE_H_ |
| #define IOS_WEB_NAVIGATION_CRW_WEB_VIEW_NAVIGATION_OBSERVER_DELEGATE_H_ |
| |
| #import "ios/web/web_state/ui/crw_web_view_handler_delegate.h" |
| |
| @class CRWWebViewNavigationObserver; |
| @class CRWWKNavigationHandler; |
| class GURL; |
| namespace web { |
| class NavigationContextImpl; |
| } |
| |
| // Delegate for the NavigationObserver. |
| @protocol CRWWebViewNavigationObserverDelegate <CRWWebViewHandlerDelegate> |
| |
| // The navigation handler |
| - (CRWWKNavigationHandler*)navigationHandlerForNavigationObserver: |
| (CRWWebViewNavigationObserver*)navigationObserver; |
| |
| // Notifies the delegate that the URL of the document object changed. |
| - (void)navigationObserver:(CRWWebViewNavigationObserver*)navigationObserver |
| didChangeDocumentURL:(const GURL&)documentURL |
| forContext:(web::NavigationContextImpl*)context; |
| |
| // Called when the web page has changed document and/or URL, and so the page |
| // navigation should be reported. |context| contains information about the |
| // navigation that triggered the document/URL change. |
| - (void)navigationObserver:(CRWWebViewNavigationObserver*)navigationObserver |
| didChangePageWithContext:(web::NavigationContextImpl*)context; |
| |
| // Notifies the delegate that the webView has started a new navigation to |
| // |webViewURL| and whether it |isSameDocumentNavigation|. |
| - (void)navigationObserver:(CRWWebViewNavigationObserver*)navigationObserver |
| didLoadNewURL:(const GURL&)webViewURL |
| forSameDocumentNavigation:(BOOL)isSameDocumentNavigation; |
| |
| // Notifies the delegate that a non-document-changing URL change occurs. |
| - (void)navigationObserver:(CRWWebViewNavigationObserver*)navigationObserver |
| URLDidChangeWithoutDocumentChange:(const GURL&)newURL; |
| |
| @end |
| |
| #endif // IOS_WEB_NAVIGATION_CRW_WEB_VIEW_NAVIGATION_OBSERVER_DELEGATE_H_ |