[ios] Remove WebStateActivatedAt() from WebStateUpdateBrowserAgent
This CL updates WebStateUpdateBrowserAgent to handle the activation of WebState in WebStateListDidChange(). Bug: 1442546 Change-Id: Ic8f6dd11238bcd91639275e4162c7a3ef89a44a6 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4705544 Reviewed-by: Federica Germinario <fedegermi@google.com> Reviewed-by: Sylvain Defresne <sdefresne@chromium.org> Commit-Queue: Asami Doi <asamidoi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1174188}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
662cf35e26
commit
10080947c0
ios/chrome/browser/web
@ -41,11 +41,6 @@ class WebStateUpdateBrowserAgent
|
||||
void WebStateListDidChange(WebStateList* web_state_list,
|
||||
const WebStateListChange& change,
|
||||
const WebStateListStatus& status) override;
|
||||
void WebStateActivatedAt(WebStateList* web_state_list,
|
||||
web::WebState* old_web_state,
|
||||
web::WebState* new_web_state,
|
||||
int active_index,
|
||||
ActiveWebStateChangeReason reason) override;
|
||||
|
||||
void WebStateListDestroyed(WebStateList* web_state_list) override;
|
||||
|
||||
|
@ -49,48 +49,27 @@ void WebStateUpdateBrowserAgent::WebStateListDidChange(
|
||||
WebStateList* web_state_list,
|
||||
const WebStateListChange& change,
|
||||
const WebStateListStatus& status) {
|
||||
switch (change.type()) {
|
||||
case WebStateListChange::Type::kStatusOnly:
|
||||
// TODO(crbug.com/1442546): Move the implementation from
|
||||
// WebStateActivatedAt() to here. Note that here is reachable only when
|
||||
// `reason` == ActiveWebStateChangeReason::Activated.
|
||||
break;
|
||||
case WebStateListChange::Type::kDetach: {
|
||||
// Inform the detached web state that it is no longer visible.
|
||||
const WebStateListChangeDetach& detach_change =
|
||||
change.As<WebStateListChangeDetach>();
|
||||
web::WebState* detached_web_state = detach_change.detached_web_state();
|
||||
if (detached_web_state->IsRealized()) {
|
||||
detached_web_state->WasHidden();
|
||||
detached_web_state->SetKeepRenderProcessAlive(false);
|
||||
}
|
||||
break;
|
||||
if (change.type() == WebStateListChange::Type::kDetach) {
|
||||
// Inform the detached web state that it is no longer visible.
|
||||
const WebStateListChangeDetach& detach_change =
|
||||
change.As<WebStateListChangeDetach>();
|
||||
web::WebState* detached_web_state = detach_change.detached_web_state();
|
||||
if (detached_web_state->IsRealized()) {
|
||||
detached_web_state->WasHidden();
|
||||
detached_web_state->SetKeepRenderProcessAlive(false);
|
||||
}
|
||||
case WebStateListChange::Type::kMove:
|
||||
// Do nothing when a WebState is moved.
|
||||
break;
|
||||
case WebStateListChange::Type::kReplace:
|
||||
// Do nothing when a WebState is replaced.
|
||||
break;
|
||||
case WebStateListChange::Type::kInsert:
|
||||
// Do nothing when a WebState is inserted.
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void WebStateUpdateBrowserAgent::WebStateActivatedAt(
|
||||
WebStateList* web_state_list,
|
||||
web::WebState* old_web_state,
|
||||
web::WebState* new_web_state,
|
||||
int active_index,
|
||||
ActiveWebStateChangeReason reason) {
|
||||
// Inform the old web state that it is no longer visible.
|
||||
if (old_web_state) {
|
||||
old_web_state->WasHidden();
|
||||
old_web_state->SetKeepRenderProcessAlive(false);
|
||||
}
|
||||
if (new_web_state) {
|
||||
new_web_state->GetWebViewProxy().scrollViewProxy.clipsToBounds = NO;
|
||||
if (status.active_web_state_change()) {
|
||||
// Inform the old web state that it is no longer visible.
|
||||
if (status.old_active_web_state) {
|
||||
status.old_active_web_state->WasHidden();
|
||||
status.old_active_web_state->SetKeepRenderProcessAlive(false);
|
||||
}
|
||||
if (status.new_active_web_state) {
|
||||
status.new_active_web_state->GetWebViewProxy()
|
||||
.scrollViewProxy.clipsToBounds = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user