| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_ |
| #define IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_ |
| |
| #include <stddef.h> |
| |
| #include "base/observer_list_types.h" |
| #include "ios/web/public/web_state_observer.h" |
| |
| namespace web { |
| |
| class NavigationContext; |
| class WebState; |
| |
| // An observer API implemented by classes that are interested in various |
| // WebState-related events from all WebStates. GlobalWebStateObservers will |
| // receive callbacks for the duration of their lifetime. |
| // WARNING: This class exists only to mimic //chrome-specific flows that |
| // listen for notifications from all WebContents or NavigationController |
| // instances. Do not add new subclasses of this class for any other reason. |
| // DEPRECATED. Use TabHelper to observe WebState creation. Use WebStateObserver |
| // to observe WebState changes. |
| // TODO(crbug.com/41353925): Remove this class. |
| class GlobalWebStateObserver : public base::CheckedObserver { |
| public: |
| GlobalWebStateObserver(); |
| |
| GlobalWebStateObserver(const GlobalWebStateObserver&) = delete; |
| GlobalWebStateObserver& operator=(const GlobalWebStateObserver&) = delete; |
| |
| ~GlobalWebStateObserver() override; |
| |
| // Called when `web_state` has started loading a page. |
| // DEPRECATED. Use WebStateObserver's `DidStartLoading` instead. |
| // TODO(crbug.com/41353925): Remove this method. |
| virtual void WebStateDidStartLoading(WebState* web_state) {} |
| |
| // Called when `web_state` has stopped loading a page. |
| // DEPRECATED. Use WebStateObserver's `DidStopLoading` instead. |
| // TODO(crbug.com/41353925): Remove this method. |
| virtual void WebStateDidStopLoading(WebState* web_state) {} |
| |
| // Called when a navigation started in `web_state` for the main frame. |
| // DEPRECATED. Use WebStateObserver's `DidStartNavigation` instead. |
| // TODO(crbug.com/41353925): Remove this method. |
| virtual void WebStateDidStartNavigation( |
| WebState* web_state, |
| NavigationContext* navigation_context) {} |
| |
| // Called when the web process is terminated (usually by crashing, though |
| // possibly by other means). |
| // DEPRECATED. Use WebStateObserver's `RendererProcessGone` instead. |
| // TODO(crbug.com/41353925): Remove this method. |
| virtual void RenderProcessGone(WebState* web_state) {} |
| |
| // Called when `web_state` is being destroyed. |
| // DEPRECATED. Use WebStateObserver's `WebStateDestroyed` instead. |
| // TODO(crbug.com/41353925): Remove this method. |
| virtual void WebStateDestroyed(WebState* web_state) {} |
| }; |
| |
| } // namespace web |
| |
| #endif // IOS_WEB_WEB_STATE_DEPRECATED_GLOBAL_WEB_STATE_OBSERVER_H_ |