Commit 34537983 authored by Sylvain Defresne's avatar Sylvain Defresne Committed by Commit Bot

Allow WebStateObserver to observe N WebStates [58/58].

Remove deprecated methods from WebStateObserverBridge as they
are now unused.

Bug: 775684
Change-Id: I7c6cf9ef3dff9fa2e88851c9eecdd2242e5f6286
Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Reviewed-on: https://chromium-review.googlesource.com/779004
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: default avatarEugene But <eugenebut@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521316}
parent 9f638b8e
...@@ -87,27 +87,12 @@ ...@@ -87,27 +87,12 @@
namespace web { namespace web {
class WebState;
// Bridge to use an id<CRWWebStateObserver> as a web::WebStateObserver. // Bridge to use an id<CRWWebStateObserver> as a web::WebStateObserver.
class WebStateObserverBridge : public web::WebStateObserver { class WebStateObserverBridge : public web::WebStateObserver {
public: public:
// Returns the web state associated with this observer. // It it the responsibility of calling code to add/remove the instance
// TODO(crbug.com/775684): this is deprecated. Remove once all observer // from the WebStates observer lists.
// have been converted to manage the registration with WebState directly.
WebState* web_state() const { return web_state_; }
// Use this constructor to control which WebStates to observe. It it the
// responsibility of calling code to add/remove the instance from the
// WebStates observer lists.
WebStateObserverBridge(id<CRWWebStateObserver> observer); WebStateObserverBridge(id<CRWWebStateObserver> observer);
// Use this constructor when using automatic registration/unregistration
// of the WebStateObserver. Deprecated. TODO(crbug.com/775684): remove
// once all observer have been converted.
// TODO(crbug.com/775684): this is deprecated. Remove once all observer
// have been converted to manage the registration with WebState directly.
WebStateObserverBridge(web::WebState* web_state,
id<CRWWebStateObserver> observer);
~WebStateObserverBridge() override; ~WebStateObserverBridge() override;
// web::WebStateObserver methods. // web::WebStateObserver methods.
...@@ -141,19 +126,7 @@ class WebStateObserverBridge : public web::WebStateObserver { ...@@ -141,19 +126,7 @@ class WebStateObserverBridge : public web::WebStateObserver {
void DidStartLoading(web::WebState* web_state) override; void DidStartLoading(web::WebState* web_state) override;
void DidStopLoading(web::WebState* web_state) override; void DidStopLoading(web::WebState* web_state) override;
protected:
// Start observing a different WebState; used with the default constructor.
// TODO(crbug.com/775684): this is deprecated. Remove once all observer
// have been converted to manage the registration with WebState directly.
void Observe(WebState* web_state);
private: private:
// The WebState this instance is observing. Will be null after
// WebStateDestroyed has been called or if registration is manual.
// TODO(crbug.com/775684): this is deprecated. Remove once all observer
// have been converted to manage the registration with WebState directly.
WebState* web_state_ = nullptr;
__weak id<CRWWebStateObserver> observer_ = nil; __weak id<CRWWebStateObserver> observer_ = nil;
DISALLOW_COPY_AND_ASSIGN(WebStateObserverBridge); DISALLOW_COPY_AND_ASSIGN(WebStateObserverBridge);
}; };
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
#import "ios/web/public/web_state/web_state_observer_bridge.h" #import "ios/web/public/web_state/web_state_observer_bridge.h"
#include "base/logging.h"
#include "ios/web/public/web_state/form_activity_params.h" #include "ios/web/public/web_state/form_activity_params.h"
#import "ios/web/public/web_state/web_state.h" #import "ios/web/public/web_state/web_state.h"
...@@ -17,30 +16,15 @@ namespace web { ...@@ -17,30 +16,15 @@ namespace web {
WebStateObserverBridge::WebStateObserverBridge(id<CRWWebStateObserver> observer) WebStateObserverBridge::WebStateObserverBridge(id<CRWWebStateObserver> observer)
: observer_(observer) {} : observer_(observer) {}
WebStateObserverBridge::WebStateObserverBridge(web::WebState* web_state, WebStateObserverBridge::~WebStateObserverBridge() = default;
id<CRWWebStateObserver> observer)
: web_state_(web_state), observer_(observer) {
if (web_state_) {
web_state_->AddObserver(this);
}
}
WebStateObserverBridge::~WebStateObserverBridge() {
if (web_state_) {
web_state_->RemoveObserver(this);
web_state_ = nullptr;
}
}
void WebStateObserverBridge::WasShown(web::WebState* web_state) { void WebStateObserverBridge::WasShown(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webStateWasShown:)]) { if ([observer_ respondsToSelector:@selector(webStateWasShown:)]) {
[observer_ webStateWasShown:web_state]; [observer_ webStateWasShown:web_state];
} }
} }
void WebStateObserverBridge::WasHidden(web::WebState* web_state) { void WebStateObserverBridge::WasHidden(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webStateWasHidden:)]) { if ([observer_ respondsToSelector:@selector(webStateWasHidden:)]) {
[observer_ webStateWasHidden:web_state]; [observer_ webStateWasHidden:web_state];
} }
...@@ -48,7 +32,6 @@ void WebStateObserverBridge::WasHidden(web::WebState* web_state) { ...@@ -48,7 +32,6 @@ void WebStateObserverBridge::WasHidden(web::WebState* web_state) {
void WebStateObserverBridge::NavigationItemsPruned(web::WebState* web_state, void WebStateObserverBridge::NavigationItemsPruned(web::WebState* web_state,
size_t pruned_item_count) { size_t pruned_item_count) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didPruneNavigationItemsWithCount:); SEL selector = @selector(webState:didPruneNavigationItemsWithCount:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webState:web_state [observer_ webState:web_state
...@@ -59,7 +42,6 @@ void WebStateObserverBridge::NavigationItemsPruned(web::WebState* web_state, ...@@ -59,7 +42,6 @@ void WebStateObserverBridge::NavigationItemsPruned(web::WebState* web_state,
void WebStateObserverBridge::NavigationItemCommitted( void WebStateObserverBridge::NavigationItemCommitted(
web::WebState* web_state, web::WebState* web_state,
const web::LoadCommittedDetails& load_detatils) { const web::LoadCommittedDetails& load_detatils) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didCommitNavigationWithDetails:); SEL selector = @selector(webState:didCommitNavigationWithDetails:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webState:web_state didCommitNavigationWithDetails:load_detatils]; [observer_ webState:web_state didCommitNavigationWithDetails:load_detatils];
...@@ -69,7 +51,6 @@ void WebStateObserverBridge::NavigationItemCommitted( ...@@ -69,7 +51,6 @@ void WebStateObserverBridge::NavigationItemCommitted(
void WebStateObserverBridge::DidStartNavigation( void WebStateObserverBridge::DidStartNavigation(
web::WebState* web_state, web::WebState* web_state,
web::NavigationContext* navigation_context) { web::NavigationContext* navigation_context) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webState:didStartNavigation:)]) { if ([observer_ respondsToSelector:@selector(webState:didStartNavigation:)]) {
[observer_ webState:web_state didStartNavigation:navigation_context]; [observer_ webState:web_state didStartNavigation:navigation_context];
} }
...@@ -78,14 +59,12 @@ void WebStateObserverBridge::DidStartNavigation( ...@@ -78,14 +59,12 @@ void WebStateObserverBridge::DidStartNavigation(
void WebStateObserverBridge::DidFinishNavigation( void WebStateObserverBridge::DidFinishNavigation(
web::WebState* web_state, web::WebState* web_state,
web::NavigationContext* navigation_context) { web::NavigationContext* navigation_context) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webState:didFinishNavigation:)]) { if ([observer_ respondsToSelector:@selector(webState:didFinishNavigation:)]) {
[observer_ webState:web_state didFinishNavigation:navigation_context]; [observer_ webState:web_state didFinishNavigation:navigation_context];
} }
} }
void WebStateObserverBridge::DidStartLoading(web::WebState* web_state) { void WebStateObserverBridge::DidStartLoading(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webStateDidStartLoading:); SEL selector = @selector(webStateDidStartLoading:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webStateDidStartLoading:web_state]; [observer_ webStateDidStartLoading:web_state];
...@@ -93,7 +72,6 @@ void WebStateObserverBridge::DidStartLoading(web::WebState* web_state) { ...@@ -93,7 +72,6 @@ void WebStateObserverBridge::DidStartLoading(web::WebState* web_state) {
} }
void WebStateObserverBridge::DidStopLoading(web::WebState* web_state) { void WebStateObserverBridge::DidStopLoading(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webStateDidStopLoading:); SEL selector = @selector(webStateDidStopLoading:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webStateDidStopLoading:web_state]; [observer_ webStateDidStopLoading:web_state];
...@@ -103,7 +81,6 @@ void WebStateObserverBridge::DidStopLoading(web::WebState* web_state) { ...@@ -103,7 +81,6 @@ void WebStateObserverBridge::DidStopLoading(web::WebState* web_state) {
void WebStateObserverBridge::PageLoaded( void WebStateObserverBridge::PageLoaded(
web::WebState* web_state, web::WebState* web_state,
web::PageLoadCompletionStatus load_completion_status) { web::PageLoadCompletionStatus load_completion_status) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didLoadPageWithSuccess:); SEL selector = @selector(webState:didLoadPageWithSuccess:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
BOOL success = NO; BOOL success = NO;
...@@ -121,7 +98,6 @@ void WebStateObserverBridge::PageLoaded( ...@@ -121,7 +98,6 @@ void WebStateObserverBridge::PageLoaded(
void WebStateObserverBridge::LoadProgressChanged(web::WebState* web_state, void WebStateObserverBridge::LoadProgressChanged(web::WebState* web_state,
double progress) { double progress) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didChangeLoadingProgress:); SEL selector = @selector(webState:didChangeLoadingProgress:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webState:web_state didChangeLoadingProgress:progress]; [observer_ webState:web_state didChangeLoadingProgress:progress];
...@@ -129,7 +105,6 @@ void WebStateObserverBridge::LoadProgressChanged(web::WebState* web_state, ...@@ -129,7 +105,6 @@ void WebStateObserverBridge::LoadProgressChanged(web::WebState* web_state,
} }
void WebStateObserverBridge::TitleWasSet(web::WebState* web_state) { void WebStateObserverBridge::TitleWasSet(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webStateDidChangeTitle:)]) { if ([observer_ respondsToSelector:@selector(webStateDidChangeTitle:)]) {
[observer_ webStateDidChangeTitle:web_state]; [observer_ webStateDidChangeTitle:web_state];
} }
...@@ -137,7 +112,6 @@ void WebStateObserverBridge::TitleWasSet(web::WebState* web_state) { ...@@ -137,7 +112,6 @@ void WebStateObserverBridge::TitleWasSet(web::WebState* web_state) {
void WebStateObserverBridge::DidChangeVisibleSecurityState( void WebStateObserverBridge::DidChangeVisibleSecurityState(
web::WebState* web_state) { web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webStateDidChangeVisibleSecurityState:); SEL selector = @selector(webStateDidChangeVisibleSecurityState:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webStateDidChangeVisibleSecurityState:web_state]; [observer_ webStateDidChangeVisibleSecurityState:web_state];
...@@ -145,7 +119,6 @@ void WebStateObserverBridge::DidChangeVisibleSecurityState( ...@@ -145,7 +119,6 @@ void WebStateObserverBridge::DidChangeVisibleSecurityState(
} }
void WebStateObserverBridge::DidSuppressDialog(web::WebState* web_state) { void WebStateObserverBridge::DidSuppressDialog(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(webStateDidSuppressDialog:)]) { if ([observer_ respondsToSelector:@selector(webStateDidSuppressDialog:)]) {
[observer_ webStateDidSuppressDialog:web_state]; [observer_ webStateDidSuppressDialog:web_state];
} }
...@@ -154,7 +127,6 @@ void WebStateObserverBridge::DidSuppressDialog(web::WebState* web_state) { ...@@ -154,7 +127,6 @@ void WebStateObserverBridge::DidSuppressDialog(web::WebState* web_state) {
void WebStateObserverBridge::DocumentSubmitted(web::WebState* web_state, void WebStateObserverBridge::DocumentSubmitted(web::WebState* web_state,
const std::string& form_name, const std::string& form_name,
bool user_initiated) { bool user_initiated) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = SEL selector =
@selector(webState:didSubmitDocumentWithFormNamed:userInitiated:); @selector(webState:didSubmitDocumentWithFormNamed:userInitiated:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
...@@ -167,7 +139,6 @@ void WebStateObserverBridge::DocumentSubmitted(web::WebState* web_state, ...@@ -167,7 +139,6 @@ void WebStateObserverBridge::DocumentSubmitted(web::WebState* web_state,
void WebStateObserverBridge::FormActivityRegistered( void WebStateObserverBridge::FormActivityRegistered(
web::WebState* web_state, web::WebState* web_state,
const FormActivityParams& params) { const FormActivityParams& params) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didRegisterFormActivity:); SEL selector = @selector(webState:didRegisterFormActivity:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webState:web_state didRegisterFormActivity:params]; [observer_ webState:web_state didRegisterFormActivity:params];
...@@ -177,7 +148,6 @@ void WebStateObserverBridge::FormActivityRegistered( ...@@ -177,7 +148,6 @@ void WebStateObserverBridge::FormActivityRegistered(
void WebStateObserverBridge::FaviconUrlUpdated( void WebStateObserverBridge::FaviconUrlUpdated(
web::WebState* web_state, web::WebState* web_state,
const std::vector<FaviconURL>& candidates) { const std::vector<FaviconURL>& candidates) {
DCHECK(!web_state_ || web_state_ == web_state);
SEL selector = @selector(webState:didUpdateFaviconURLCandidates:); SEL selector = @selector(webState:didUpdateFaviconURLCandidates:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
[observer_ webState:web_state didUpdateFaviconURLCandidates:candidates]; [observer_ webState:web_state didUpdateFaviconURLCandidates:candidates];
...@@ -185,19 +155,12 @@ void WebStateObserverBridge::FaviconUrlUpdated( ...@@ -185,19 +155,12 @@ void WebStateObserverBridge::FaviconUrlUpdated(
} }
void WebStateObserverBridge::RenderProcessGone(web::WebState* web_state) { void WebStateObserverBridge::RenderProcessGone(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if ([observer_ respondsToSelector:@selector(renderProcessGoneForWebState:)]) { if ([observer_ respondsToSelector:@selector(renderProcessGoneForWebState:)]) {
[observer_ renderProcessGoneForWebState:web_state]; [observer_ renderProcessGoneForWebState:web_state];
} }
} }
void WebStateObserverBridge::WebStateDestroyed(web::WebState* web_state) { void WebStateObserverBridge::WebStateDestroyed(web::WebState* web_state) {
DCHECK(!web_state_ || web_state_ == web_state);
if (web_state_) {
web_state_->RemoveObserver(this);
web_state_ = nullptr;
}
SEL selector = @selector(webStateDestroyed:); SEL selector = @selector(webStateDestroyed:);
if ([observer_ respondsToSelector:selector]) { if ([observer_ respondsToSelector:selector]) {
// |webStateDestroyed:| may delete |this|, so don't expect |this| to be // |webStateDestroyed:| may delete |this|, so don't expect |this| to be
...@@ -206,11 +169,4 @@ void WebStateObserverBridge::WebStateDestroyed(web::WebState* web_state) { ...@@ -206,11 +169,4 @@ void WebStateObserverBridge::WebStateDestroyed(web::WebState* web_state) {
} }
} }
void WebStateObserverBridge::Observe(WebState* web_state) {
// No class should sub-class WebStateObserverBridge, so this method should
// never be called. It is there to protect a potential sub-class from calling
// WebStateObserver implementation (this would break WebStateObserverBridge).
NOTREACHED();
}
} // namespace web } // namespace web
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