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

Side by Side Diff: ios/chrome/browser/passwords/password_controller.mm

Issue 1861593005: Convert //ios from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase? Created 4 years, 8 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 unified diff | Download patch
OLDNEW
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 <utility> 11 #include <utility>
11 #include <vector> 12 #include <vector>
12 13
13 #import "base/ios/weak_nsobject.h" 14 #import "base/ios/weak_nsobject.h"
14 #include "base/json/json_reader.h" 15 #include "base/json/json_reader.h"
15 #include "base/json/json_writer.h" 16 #include "base/json/json_writer.h"
16 #include "base/mac/foundation_util.h" 17 #include "base/mac/foundation_util.h"
17 #include "base/mac/scoped_nsobject.h" 18 #include "base/mac/scoped_nsobject.h"
18 #include "base/memory/scoped_ptr.h" 19 #include "base/memory/ptr_util.h"
19 #include "base/strings/string16.h" 20 #include "base/strings/string16.h"
20 #include "base/strings/sys_string_conversions.h" 21 #include "base/strings/sys_string_conversions.h"
21 #include "base/strings/utf_string_conversions.h" 22 #include "base/strings/utf_string_conversions.h"
22 #include "components/autofill/core/common/password_form.h" 23 #include "components/autofill/core/common/password_form.h"
23 #include "components/autofill/core/common/password_form_fill_data.h" 24 #include "components/autofill/core/common/password_form_fill_data.h"
24 #include "components/browser_sync/browser/profile_sync_service.h" 25 #include "components/browser_sync/browser/profile_sync_service.h"
25 #include "components/infobars/core/infobar_manager.h" 26 #include "components/infobars/core/infobar_manager.h"
26 #include "components/password_manager/core/browser/password_bubble_experiment.h" 27 #include "components/password_manager/core/browser/password_bubble_experiment.h"
27 #include "components/password_manager/core/browser/password_generation_manager.h " 28 #include "components/password_manager/core/browser/password_generation_manager.h "
28 #include "components/password_manager/core/browser/password_manager.h" 29 #include "components/password_manager/core/browser/password_manager.h"
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 187
187 // The normalized URL of the web page. 188 // The normalized URL of the web page.
188 rootDict.SetString("origin", formData.origin.spec()); 189 rootDict.SetString("origin", formData.origin.spec());
189 190
190 // The normalized URL from the "action" attribute of the <form> tag. 191 // The normalized URL from the "action" attribute of the <form> tag.
191 rootDict.SetString("action", formData.action.spec()); 192 rootDict.SetString("action", formData.action.spec());
192 193
193 // Input elements in the form. The list does not necessarily contain 194 // Input elements in the form. The list does not necessarily contain
194 // all elements from the form, but all elements listed here are required 195 // all elements from the form, but all elements listed here are required
195 // to identify the right form to fill. 196 // to identify the right form to fill.
196 auto fieldList = make_scoped_ptr(new base::ListValue()); 197 auto fieldList = base::WrapUnique(new base::ListValue());
197 198
198 auto usernameField = make_scoped_ptr(new base::DictionaryValue()); 199 auto usernameField = base::WrapUnique(new base::DictionaryValue());
199 usernameField->SetString("name", formData.username_field.name); 200 usernameField->SetString("name", formData.username_field.name);
200 usernameField->SetString("value", formData.username_field.value); 201 usernameField->SetString("value", formData.username_field.value);
201 fieldList->Append(usernameField.release()); 202 fieldList->Append(usernameField.release());
202 203
203 auto passwordField = make_scoped_ptr(new base::DictionaryValue()); 204 auto passwordField = base::WrapUnique(new base::DictionaryValue());
204 passwordField->SetString("name", formData.password_field.name); 205 passwordField->SetString("name", formData.password_field.name);
205 passwordField->SetString("value", formData.password_field.value); 206 passwordField->SetString("value", formData.password_field.value);
206 fieldList->Append(passwordField.release()); 207 fieldList->Append(passwordField.release());
207 208
208 rootDict.Set("fields", fieldList.release()); 209 rootDict.Set("fields", fieldList.release());
209 210
210 std::string jsonString; 211 std::string jsonString;
211 base::JSONWriter::Write(rootDict, &jsonString); 212 base::JSONWriter::Write(rootDict, &jsonString);
212 return base::SysUTF8ToNSString(jsonString); 213 return base::SysUTF8ToNSString(jsonString);
213 } 214 }
214 215
215 // Returns true if the trust level for the current page URL of |web_state| is 216 // Returns true if the trust level for the current page URL of |web_state| is
216 // kAbsolute. If |page_url| is not null, fills it with the current page URL. 217 // kAbsolute. If |page_url| is not null, fills it with the current page URL.
217 bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) { 218 bool GetPageURLAndCheckTrustLevel(web::WebState* web_state, GURL* page_url) {
218 auto trustLevel = web::URLVerificationTrustLevel::kNone; 219 auto trustLevel = web::URLVerificationTrustLevel::kNone;
219 GURL dummy; 220 GURL dummy;
220 if (!page_url) 221 if (!page_url)
221 page_url = &dummy; 222 page_url = &dummy;
222 *page_url = web_state->GetCurrentURL(&trustLevel); 223 *page_url = web_state->GetCurrentURL(&trustLevel);
223 return trustLevel == web::URLVerificationTrustLevel::kAbsolute; 224 return trustLevel == web::URLVerificationTrustLevel::kAbsolute;
224 } 225 }
225 226
226 } // namespace 227 } // namespace
227 228
228 @implementation PasswordController { 229 @implementation PasswordController {
229 scoped_ptr<PasswordManager> passwordManager_; 230 std::unique_ptr<PasswordManager> passwordManager_;
230 scoped_ptr<PasswordGenerationManager> passwordGenerationManager_; 231 std::unique_ptr<PasswordGenerationManager> passwordGenerationManager_;
231 scoped_ptr<PasswordManagerClient> passwordManagerClient_; 232 std::unique_ptr<PasswordManagerClient> passwordManagerClient_;
232 scoped_ptr<PasswordManagerDriver> passwordManagerDriver_; 233 std::unique_ptr<PasswordManagerDriver> passwordManagerDriver_;
233 base::scoped_nsobject<PasswordGenerationAgent> passwordGenerationAgent_; 234 base::scoped_nsobject<PasswordGenerationAgent> passwordGenerationAgent_;
234 235
235 JsPasswordManager* passwordJsManager_; // weak 236 JsPasswordManager* passwordJsManager_; // weak
236 237
237 // The pending form data. 238 // The pending form data.
238 scoped_ptr<autofill::PasswordFormFillData> formData_; 239 std::unique_ptr<autofill::PasswordFormFillData> formData_;
239 240
240 // Bridge to observe WebState from Objective-C. 241 // Bridge to observe WebState from Objective-C.
241 scoped_ptr<web::WebStateObserverBridge> webStateObserverBridge_; 242 std::unique_ptr<web::WebStateObserverBridge> webStateObserverBridge_;
242 } 243 }
243 244
244 - (instancetype)initWithWebState:(web::WebState*)webState 245 - (instancetype)initWithWebState:(web::WebState*)webState
245 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate { 246 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate {
246 self = [self initWithWebState:webState 247 self = [self initWithWebState:webState
247 passwordsUiDelegate:UIDelegate 248 passwordsUiDelegate:UIDelegate
248 client:nullptr]; 249 client:nullptr];
249 return self; 250 return self;
250 } 251 }
251 252
252 - (instancetype)initWithWebState:(web::WebState*)webState 253 - (instancetype)initWithWebState:(web::WebState*)webState
253 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate 254 passwordsUiDelegate:(id<PasswordsUiDelegate>)UIDelegate
254 client:(scoped_ptr<PasswordManagerClient>) 255 client:(std::unique_ptr<PasswordManagerClient>)
255 passwordManagerClient { 256 passwordManagerClient {
256 DCHECK(webState); 257 DCHECK(webState);
257 self = [super init]; 258 self = [super init];
258 if (self) { 259 if (self) {
259 webStateObserverBridge_.reset( 260 webStateObserverBridge_.reset(
260 new web::WebStateObserverBridge(webState, self)); 261 new web::WebStateObserverBridge(webState, self));
261 if (passwordManagerClient) 262 if (passwordManagerClient)
262 passwordManagerClient_ = std::move(passwordManagerClient); 263 passwordManagerClient_ = std::move(passwordManagerClient);
263 else 264 else
264 passwordManagerClient_.reset(new IOSChromePasswordManagerClient(self)); 265 passwordManagerClient_.reset(new IOSChromePasswordManagerClient(self));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 password:(NSString*)password 319 password:(NSString*)password
319 completionHandler:(void (^)(BOOL))completionHandler { 320 completionHandler:(void (^)(BOOL))completionHandler {
320 [self findPasswordFormsWithCompletionHandler:^( 321 [self findPasswordFormsWithCompletionHandler:^(
321 const std::vector<autofill::PasswordForm>& forms) { 322 const std::vector<autofill::PasswordForm>& forms) {
322 for (const auto& form : forms) { 323 for (const auto& form : forms) {
323 autofill::PasswordFormFillData formData; 324 autofill::PasswordFormFillData formData;
324 autofill::PasswordFormMap matches; 325 autofill::PasswordFormMap matches;
325 // Initialize |matches| to satisfy the expectation from 326 // Initialize |matches| to satisfy the expectation from
326 // InitPasswordFormFillData() that the preferred match (3rd parameter) 327 // InitPasswordFormFillData() that the preferred match (3rd parameter)
327 // should be one of the |matches|. 328 // should be one of the |matches|.
328 auto scoped_form = make_scoped_ptr(new autofill::PasswordForm(form)); 329 auto scoped_form = base::WrapUnique(new autofill::PasswordForm(form));
329 matches.insert( 330 matches.insert(
330 std::make_pair(form.username_value, std::move(scoped_form))); 331 std::make_pair(form.username_value, std::move(scoped_form)));
331 autofill::InitPasswordFormFillData(form, matches, &form, false, false, 332 autofill::InitPasswordFormFillData(form, matches, &form, false, false,
332 &formData); 333 &formData);
333 [self fillPasswordForm:formData 334 [self fillPasswordForm:formData
334 withUsername:base::SysNSStringToUTF16(username) 335 withUsername:base::SysNSStringToUTF16(username)
335 password:base::SysNSStringToUTF16(password) 336 password:base::SysNSStringToUTF16(password)
336 completionHandler:completionHandler]; 337 completionHandler:completionHandler];
337 } 338 }
338 }]; 339 }];
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 fromFormsJSON:(NSString*)jsonString 422 fromFormsJSON:(NSString*)jsonString
422 pageURL:(const GURL&)pageURL { 423 pageURL:(const GURL&)pageURL {
423 DCHECK(forms); 424 DCHECK(forms);
424 if (![jsonString length]) { 425 if (![jsonString length]) {
425 VLOG(1) << "Error in password controller javascript."; 426 VLOG(1) << "Error in password controller javascript.";
426 return; 427 return;
427 } 428 }
428 429
429 int errorCode = 0; 430 int errorCode = 0;
430 std::string errorMessage; 431 std::string errorMessage;
431 scoped_ptr<base::Value> jsonData(base::JSONReader::ReadAndReturnError( 432 std::unique_ptr<base::Value> jsonData(base::JSONReader::ReadAndReturnError(
432 std::string([jsonString UTF8String]), false, &errorCode, &errorMessage)); 433 std::string([jsonString UTF8String]), false, &errorCode, &errorMessage));
433 if (errorCode || !jsonData || !jsonData->IsType(base::Value::TYPE_LIST)) { 434 if (errorCode || !jsonData || !jsonData->IsType(base::Value::TYPE_LIST)) {
434 VLOG(1) << "JSON parse error " << errorMessage 435 VLOG(1) << "JSON parse error " << errorMessage
435 << " JSON string: " << [jsonString UTF8String]; 436 << " JSON string: " << [jsonString UTF8String];
436 return; 437 return;
437 } 438 }
438 439
439 const base::ListValue* formDataList; 440 const base::ListValue* formDataList;
440 if (!jsonData->GetAsList(&formDataList)) 441 if (!jsonData->GetAsList(&formDataList))
441 return; 442 return;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 - (BOOL)getPasswordForm:(autofill::PasswordForm*)form 486 - (BOOL)getPasswordForm:(autofill::PasswordForm*)form
486 fromPasswordFormJSON:(NSString*)jsonString 487 fromPasswordFormJSON:(NSString*)jsonString
487 pageURL:(const GURL&)pageURL { 488 pageURL:(const GURL&)pageURL {
488 DCHECK(form); 489 DCHECK(form);
489 // There is no identifiable password form on the page. 490 // There is no identifiable password form on the page.
490 if ([jsonString isEqualToString:@"noPasswordsFound"]) 491 if ([jsonString isEqualToString:@"noPasswordsFound"])
491 return NO; 492 return NO;
492 493
493 int errorCode = 0; 494 int errorCode = 0;
494 std::string errorMessage; 495 std::string errorMessage;
495 scoped_ptr<const base::Value> jsonData(base::JSONReader::ReadAndReturnError( 496 std::unique_ptr<const base::Value> jsonData(
496 std::string([jsonString UTF8String]), false, &errorCode, &errorMessage)); 497 base::JSONReader::ReadAndReturnError(std::string([jsonString UTF8String]),
498 false, &errorCode, &errorMessage));
497 499
498 // If the the JSON string contains null, there is no identifiable password 500 // If the the JSON string contains null, there is no identifiable password
499 // form on the page. 501 // form on the page.
500 if (!errorCode && !jsonData) { 502 if (!errorCode && !jsonData) {
501 return NO; 503 return NO;
502 } 504 }
503 505
504 if (errorCode || !jsonData->IsType(base::Value::TYPE_DICTIONARY)) { 506 if (errorCode || !jsonData->IsType(base::Value::TYPE_DICTIONARY)) {
505 VLOG(1) << "JSON parse error " << errorMessage 507 VLOG(1) << "JSON parse error " << errorMessage
506 << " JSON string: " << [jsonString UTF8String]; 508 << " JSON string: " << [jsonString UTF8String];
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 } 735 }
734 autofill::FormFieldData field; 736 autofill::FormFieldData field;
735 field.name = std::move(element); 737 field.name = std::move(element);
736 field.form_control_type = base::UTF16ToUTF8(type); 738 field.form_control_type = base::UTF16ToUTF8(type);
737 form->form_data.fields.push_back(field); 739 form->form_data.fields.push_back(field);
738 } 740 }
739 741
740 return YES; 742 return YES;
741 } 743 }
742 744
743 - (void)showSavePasswordInfoBar:(scoped_ptr<PasswordFormManager>)formToSave { 745 - (void)showSavePasswordInfoBar:
746 (std::unique_ptr<PasswordFormManager>)formToSave {
744 if (!webStateObserverBridge_ || !webStateObserverBridge_->web_state()) 747 if (!webStateObserverBridge_ || !webStateObserverBridge_->web_state())
745 return; 748 return;
746 749
747 bool isSmartLockBrandingEnabled = false; 750 bool isSmartLockBrandingEnabled = false;
748 if (self.browserState) { 751 if (self.browserState) {
749 sync_driver::SyncService* sync_service = 752 sync_driver::SyncService* sync_service =
750 IOSChromeProfileSyncServiceFactory::GetForBrowserState( 753 IOSChromeProfileSyncServiceFactory::GetForBrowserState(
751 self.browserState); 754 self.browserState);
752 isSmartLockBrandingEnabled = 755 isSmartLockBrandingEnabled =
753 password_bubble_experiment::IsSmartLockBrandingSavePromptEnabled( 756 password_bubble_experiment::IsSmartLockBrandingSavePromptEnabled(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
808 811
809 - (PasswordManager*)passwordManager { 812 - (PasswordManager*)passwordManager {
810 return passwordManager_.get(); 813 return passwordManager_.get();
811 } 814 }
812 815
813 - (JsPasswordManager*)passwordJsManager { 816 - (JsPasswordManager*)passwordJsManager {
814 return passwordJsManager_; 817 return passwordJsManager_;
815 } 818 }
816 819
817 @end 820 @end
OLDNEW
« no previous file with comments | « ios/chrome/browser/passwords/password_controller.h ('k') | ios/chrome/browser/passwords/password_controller_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698