Index: ios/chrome/browser/passwords/password_controller.mm |
diff --git a/ios/chrome/browser/passwords/password_controller.mm b/ios/chrome/browser/passwords/password_controller.mm |
index 60f7cae51f10067215f61d36e62c62bcf9f66c35..fc5d885b3bc2553709c48354ab7457b59e3033a7 100644 |
--- a/ios/chrome/browser/passwords/password_controller.mm |
+++ b/ios/chrome/browser/passwords/password_controller.mm |
@@ -241,6 +241,7 @@ bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { |
base::scoped_nsobject<PasswordGenerationAgent> passwordGenerationAgent_; |
JsPasswordManager* passwordJsManager_; // weak |
+ web::WebState* webState_; // weak |
vasilii
2016/05/10 12:38:47
Why is the new member required?
vabr (Chromium)
2016/05/10 12:48:47
Before it, the WebState was accessed through the W
|
// The pending form data. |
std::unique_ptr<autofill::PasswordFormFillData> formData_; |
@@ -266,8 +267,7 @@ bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { |
DCHECK(webState); |
self = [super init]; |
if (self) { |
- webStateObserverBridge_.reset( |
- new web::WebStateObserverBridge(webState, self)); |
+ webState_ = webState; |
if (passwordManagerClient) |
passwordManagerClient_ = std::move(passwordManagerClient); |
else |
@@ -288,6 +288,8 @@ bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { |
passwordJsManager_ = base::mac::ObjCCastStrict<JsPasswordManager>( |
[webState->GetJSInjectionReceiver() |
instanceOfClass:[JsPasswordManager class]]); |
+ webStateObserverBridge_.reset( |
+ new web::WebStateObserverBridge(webState, self)); |
} |
return self; |
} |
@@ -303,10 +305,9 @@ bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { |
} |
- (ios::ChromeBrowserState*)browserState { |
- return webStateObserverBridge_ && webStateObserverBridge_->web_state() |
- ? ios::ChromeBrowserState::FromBrowserState( |
- webStateObserverBridge_->web_state()->GetBrowserState()) |
- : nullptr; |
+ return webState_ ? ios::ChromeBrowserState::FromBrowserState( |
+ webState_->GetBrowserState()) |
+ : nullptr; |
} |
- (const GURL&)lastCommittedURL { |
@@ -316,6 +317,7 @@ bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { |
} |
- (void)detach { |
+ webState_ = nullptr; |
webStateObserverBridge_.reset(); |
passwordGenerationAgent_.reset(); |
passwordGenerationManager_.reset(); |