Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Unified Diff: ios/chrome/browser/tabs/tab_model.mm

Issue 2900643003: [ios] Clean how WebUsageEnabled flag is restored for WebStateList. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ios/chrome/browser/web_state_list/web_state_list_serialization.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/tabs/tab_model.mm
diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm
index 99ddd8c173ae430c8bc40ec630d60c0384876650..9191dd97a9001f4927a842fd6fbe87bb3daaab54 100644
--- a/ios/chrome/browser/tabs/tab_model.mm
+++ b/ios/chrome/browser/tabs/tab_model.mm
@@ -121,6 +121,19 @@ void CleanCertificatePolicyCache(
base::Unretained(web_state_list)));
}
+// Factory of WebState for DeserializeWebStateList that wraps the method
+// web::WebState::CreateWithStorageSession and sets the WebState usage
+// enabled flag from |web_usage_enabled|.
+std::unique_ptr<web::WebState> CreateWebState(
+ BOOL web_usage_enabled,
+ web::WebState::CreateParams create_params,
+ CRWSessionStorage* session_storage) {
+ std::unique_ptr<web::WebState> web_state =
+ web::WebState::CreateWithStorageSession(create_params, session_storage);
+ web_state->SetWebUsageEnabled(web_usage_enabled);
+ return web_state;
+}
+
} // anonymous namespace
@interface TabModelWebStateProxyFactory : NSObject<WebStateProxyFactory>
@@ -186,7 +199,7 @@ void CleanCertificatePolicyCache(
@synthesize browserState = _browserState;
@synthesize sessionID = _sessionID;
-@synthesize webUsageEnabled = webUsageEnabled_;
+@synthesize webUsageEnabled = _webUsageEnabled;
#pragma mark - Overriden
@@ -496,7 +509,7 @@ void CleanCertificatePolicyCache(
Tab* tab = LegacyTabHelper::GetTabForWebState(webStatePtr);
DCHECK(tab);
- webStatePtr->SetWebUsageEnabled(webUsageEnabled_ ? true : false);
+ webStatePtr->SetWebUsageEnabled(_webUsageEnabled ? true : false);
if (!inBackground && _tabUsageRecorder)
_tabUsageRecorder->TabCreatedForSelection(tab);
@@ -505,7 +518,7 @@ void CleanCertificatePolicyCache(
// Force the page to start loading even if it's in the background.
// TODO(crbug.com/705819): Remove this call.
- if (webUsageEnabled_)
+ if (_webUsageEnabled)
webStatePtr->GetView();
NSDictionary* userInfo = @{
@@ -585,12 +598,12 @@ void CleanCertificatePolicyCache(
}
- (void)setWebUsageEnabled:(BOOL)webUsageEnabled {
- if (webUsageEnabled_ == webUsageEnabled)
+ if (_webUsageEnabled == webUsageEnabled)
return;
- webUsageEnabled_ = webUsageEnabled;
+ _webUsageEnabled = webUsageEnabled;
for (int index = 0; index < _webStateList->count(); ++index) {
web::WebState* webState = _webStateList->GetWebStateAt(index);
- webState->SetWebUsageEnabled(webUsageEnabled_ ? true : false);
+ webState->SetWebUsageEnabled(_webUsageEnabled ? true : false);
}
}
@@ -708,9 +721,8 @@ void CleanCertificatePolicyCache(
web::WebState::CreateParams createParams(_browserState);
DeserializeWebStateList(
- _webStateList.get(), window, webUsageEnabled_,
- base::BindRepeating(&web::WebState::CreateWithStorageSession,
- createParams));
+ _webStateList.get(), window,
+ base::BindRepeating(&CreateWebState, _webUsageEnabled, createParams));
DCHECK_GT(_webStateList->count(), oldCount);
int restoredCount = _webStateList->count() - oldCount;
@@ -726,7 +738,7 @@ void CleanCertificatePolicyCache(
web::WebState* webState = _webStateList->GetWebStateAt(index);
Tab* tab = LegacyTabHelper::GetTabForWebState(webState);
- webState->SetWebUsageEnabled(webUsageEnabled_ ? true : false);
+ webState->SetWebUsageEnabled(_webUsageEnabled ? true : false);
tab.webController.usePlaceholderOverlay = YES;
// Restore the CertificatePolicyCache (note that webState is invalid after
@@ -754,7 +766,7 @@ void CleanCertificatePolicyCache(
// Called when UIApplicationWillResignActiveNotification is received.
- (void)willResignActive:(NSNotification*)notify {
- if (webUsageEnabled_ && self.currentTab) {
+ if (_webUsageEnabled && self.currentTab) {
[[SnapshotCache sharedInstance]
willBeSavedGreyWhenBackgrounding:self.currentTab.tabId];
}
@@ -781,7 +793,7 @@ void CleanCertificatePolicyCache(
[self saveSessionImmediately:YES];
// Write out a grey version of the current website to disk.
- if (webUsageEnabled_ && self.currentTab) {
+ if (_webUsageEnabled && self.currentTab) {
[[SnapshotCache sharedInstance]
saveGreyInBackgroundForSessionID:self.currentTab.tabId];
}
« no previous file with comments | « no previous file | ios/chrome/browser/web_state_list/web_state_list_serialization.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698