Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #import "ios/chrome/browser/passwords/password_controller.h" | 5 #import "ios/chrome/browser/passwords/password_controller.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 234 } // namespace | 234 } // namespace |
| 235 | 235 |
| 236 @implementation PasswordController { | 236 @implementation PasswordController { |
| 237 std::unique_ptr<PasswordManager> passwordManager_; | 237 std::unique_ptr<PasswordManager> passwordManager_; |
| 238 std::unique_ptr<PasswordGenerationManager> passwordGenerationManager_; | 238 std::unique_ptr<PasswordGenerationManager> passwordGenerationManager_; |
| 239 std::unique_ptr<PasswordManagerClient> passwordManagerClient_; | 239 std::unique_ptr<PasswordManagerClient> passwordManagerClient_; |
| 240 std::unique_ptr<PasswordManagerDriver> passwordManagerDriver_; | 240 std::unique_ptr<PasswordManagerDriver> passwordManagerDriver_; |
| 241 base::scoped_nsobject<PasswordGenerationAgent> passwordGenerationAgent_; | 241 base::scoped_nsobject<PasswordGenerationAgent> passwordGenerationAgent_; |
| 242 | 242 |
| 243 JsPasswordManager* passwordJsManager_; // weak | 243 JsPasswordManager* passwordJsManager_; // weak |
| 244 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
| |
| 244 | 245 |
| 245 // The pending form data. | 246 // The pending form data. |
| 246 std::unique_ptr<autofill::PasswordFormFillData> formData_; | 247 std::unique_ptr<autofill::PasswordFormFillData> formData_; |
| 247 | 248 |
| 248 // Bridge to observe WebState from Objective-C. | 249 // Bridge to observe WebState from Objective-C. |
| 249 std::unique_ptr<web::WebStateObserverBridge> webStateObserverBridge_; | 250 std::unique_ptr<web::WebStateObserverBridge> webStateObserverBridge_; |
| 250 } | 251 } |
| 251 | 252 |
| 252 @synthesize isWebStateDestroyed = isWebStateDestroyed_; | 253 @synthesize isWebStateDestroyed = isWebStateDestroyed_; |
| 253 | 254 |
| 254 - (instancetype)initWithWebState:(web::WebState*)webState | 255 - (instancetype)initWithWebState:(web::WebState*)webState |
| 255 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate { | 256 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate { |
| 256 self = [self initWithWebState:webState | 257 self = [self initWithWebState:webState |
| 257 passwordsUiDelegate:UIDelegate | 258 passwordsUiDelegate:UIDelegate |
| 258 client:nullptr]; | 259 client:nullptr]; |
| 259 return self; | 260 return self; |
| 260 } | 261 } |
| 261 | 262 |
| 262 - (instancetype)initWithWebState:(web::WebState*)webState | 263 - (instancetype)initWithWebState:(web::WebState*)webState |
| 263 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate | 264 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate |
| 264 client:(std::unique_ptr<PasswordManagerClient>) | 265 client:(std::unique_ptr<PasswordManagerClient>) |
| 265 passwordManagerClient { | 266 passwordManagerClient { |
| 266 DCHECK(webState); | 267 DCHECK(webState); |
| 267 self = [super init]; | 268 self = [super init]; |
| 268 if (self) { | 269 if (self) { |
| 269 webStateObserverBridge_.reset( | 270 webState_ = webState; |
| 270 new web::WebStateObserverBridge(webState, self)); | |
| 271 if (passwordManagerClient) | 271 if (passwordManagerClient) |
| 272 passwordManagerClient_ = std::move(passwordManagerClient); | 272 passwordManagerClient_ = std::move(passwordManagerClient); |
| 273 else | 273 else |
| 274 passwordManagerClient_.reset(new IOSChromePasswordManagerClient(self)); | 274 passwordManagerClient_.reset(new IOSChromePasswordManagerClient(self)); |
| 275 passwordManager_.reset(new PasswordManager(passwordManagerClient_.get())); | 275 passwordManager_.reset(new PasswordManager(passwordManagerClient_.get())); |
| 276 passwordManagerDriver_.reset(new IOSChromePasswordManagerDriver(self)); | 276 passwordManagerDriver_.reset(new IOSChromePasswordManagerDriver(self)); |
| 277 if (experimental_flags::IsPasswordGenerationEnabled() && | 277 if (experimental_flags::IsPasswordGenerationEnabled() && |
| 278 !passwordManagerClient_->IsOffTheRecord()) { | 278 !passwordManagerClient_->IsOffTheRecord()) { |
| 279 passwordGenerationManager_.reset(new PasswordGenerationManager( | 279 passwordGenerationManager_.reset(new PasswordGenerationManager( |
| 280 passwordManagerClient_.get(), passwordManagerDriver_.get())); | 280 passwordManagerClient_.get(), passwordManagerDriver_.get())); |
| 281 passwordGenerationAgent_.reset([[PasswordGenerationAgent alloc] | 281 passwordGenerationAgent_.reset([[PasswordGenerationAgent alloc] |
| 282 initWithWebState:webState | 282 initWithWebState:webState |
| 283 passwordManager:passwordManager_.get() | 283 passwordManager:passwordManager_.get() |
| 284 passwordManagerDriver:passwordManagerDriver_.get() | 284 passwordManagerDriver:passwordManagerDriver_.get() |
| 285 passwordsUiDelegate:UIDelegate]); | 285 passwordsUiDelegate:UIDelegate]); |
| 286 } | 286 } |
| 287 | 287 |
| 288 passwordJsManager_ = base::mac::ObjCCastStrict<JsPasswordManager>( | 288 passwordJsManager_ = base::mac::ObjCCastStrict<JsPasswordManager>( |
| 289 [webState->GetJSInjectionReceiver() | 289 [webState->GetJSInjectionReceiver() |
| 290 instanceOfClass:[JsPasswordManager class]]); | 290 instanceOfClass:[JsPasswordManager class]]); |
| 291 webStateObserverBridge_.reset( | |
| 292 new web::WebStateObserverBridge(webState, self)); | |
| 291 } | 293 } |
| 292 return self; | 294 return self; |
| 293 } | 295 } |
| 294 | 296 |
| 295 - (instancetype)init { | 297 - (instancetype)init { |
| 296 NOTREACHED(); | 298 NOTREACHED(); |
| 297 return nil; | 299 return nil; |
| 298 } | 300 } |
| 299 | 301 |
| 300 - (void)dealloc { | 302 - (void)dealloc { |
| 301 [self detach]; | 303 [self detach]; |
| 302 [super dealloc]; | 304 [super dealloc]; |
| 303 } | 305 } |
| 304 | 306 |
| 305 - (ios::ChromeBrowserState*)browserState { | 307 - (ios::ChromeBrowserState*)browserState { |
| 306 return webStateObserverBridge_ && webStateObserverBridge_->web_state() | 308 return webState_ ? ios::ChromeBrowserState::FromBrowserState( |
| 307 ? ios::ChromeBrowserState::FromBrowserState( | 309 webState_->GetBrowserState()) |
| 308 webStateObserverBridge_->web_state()->GetBrowserState()) | 310 : nullptr; |
| 309 : nullptr; | |
| 310 } | 311 } |
| 311 | 312 |
| 312 - (const GURL&)lastCommittedURL { | 313 - (const GURL&)lastCommittedURL { |
| 313 if (!webStateObserverBridge_ || !webStateObserverBridge_->web_state()) | 314 if (!webStateObserverBridge_ || !webStateObserverBridge_->web_state()) |
| 314 return GURL::EmptyGURL(); | 315 return GURL::EmptyGURL(); |
| 315 return webStateObserverBridge_->web_state()->GetLastCommittedURL(); | 316 return webStateObserverBridge_->web_state()->GetLastCommittedURL(); |
| 316 } | 317 } |
| 317 | 318 |
| 318 - (void)detach { | 319 - (void)detach { |
| 320 webState_ = nullptr; | |
| 319 webStateObserverBridge_.reset(); | 321 webStateObserverBridge_.reset(); |
| 320 passwordGenerationAgent_.reset(); | 322 passwordGenerationAgent_.reset(); |
| 321 passwordGenerationManager_.reset(); | 323 passwordGenerationManager_.reset(); |
| 322 passwordManagerDriver_.reset(); | 324 passwordManagerDriver_.reset(); |
| 323 passwordManager_.reset(); | 325 passwordManager_.reset(); |
| 324 passwordManagerClient_.reset(); | 326 passwordManagerClient_.reset(); |
| 325 } | 327 } |
| 326 | 328 |
| 327 - (void)findAndFillPasswordForms:(NSString*)username | 329 - (void)findAndFillPasswordForms:(NSString*)username |
| 328 password:(NSString*)password | 330 password:(NSString*)password |
| (...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 821 | 823 |
| 822 - (PasswordManager*)passwordManager { | 824 - (PasswordManager*)passwordManager { |
| 823 return passwordManager_.get(); | 825 return passwordManager_.get(); |
| 824 } | 826 } |
| 825 | 827 |
| 826 - (JsPasswordManager*)passwordJsManager { | 828 - (JsPasswordManager*)passwordJsManager { |
| 827 return passwordJsManager_; | 829 return passwordJsManager_; |
| 828 } | 830 } |
| 829 | 831 |
| 830 @end | 832 @end |
| OLD | NEW |