Commit 28370f6d authored by Maria Kazinova's avatar Maria Kazinova Committed by Commit Bot

[iOS] Removed double string conversion from JSPasswordManager.

Bug: 1075444
Change-Id: I229f5ca4c20bae2d4dda248d88bd80002b960a77
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2320269
Commit-Queue: Maria Kazinova <kazinova@google.com>
Reviewed-by: default avatarJan Wilken Dörrie <jdoerrie@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792199}
parent 7322a1dd
......@@ -63,8 +63,8 @@ std::unique_ptr<base::Value> SerializePasswordFormFillData(
// |completionHandler| cannot be nil.
- (void)fillPasswordForm:(std::unique_ptr<base::Value>)form
inFrame:(web::WebFrame*)frame
withUsername:(NSString*)username
password:(NSString*)password
withUsername:(std::string)username
password:(std::string)password
completionHandler:(void (^)(NSString*))completionHandler;
// Fills new password field for (optional) |newPasswordIdentifier| and for
......
......@@ -86,30 +86,26 @@ std::unique_ptr<base::Value> SerializeFillData(
completionHandler:(void (^)(NSString*))completionHandler {
DCHECK(completionHandler);
std::vector<base::Value> parameters;
parameters.push_back(base::Value(static_cast<int>(formIdentifier.value())));
parameters.emplace_back(static_cast<int>(formIdentifier.value()));
autofill::ExecuteJavaScriptFunction("passwords.getPasswordFormDataAsString",
parameters, frame,
base::BindOnce(completionHandler));
}
// TODO(crbug.com/1075444): Receive strings as std::string as they are being
// converted twice.
- (void)fillPasswordForm:(std::unique_ptr<base::Value>)form
inFrame:(web::WebFrame*)frame
withUsername:(NSString*)username
password:(NSString*)password
withUsername:(std::string)username
password:(std::string)password
completionHandler:(void (^)(NSString*))completionHandler {
DCHECK(completionHandler);
std::vector<base::Value> parameters;
parameters.push_back(std::move(*form));
parameters.push_back(base::Value(SysNSStringToUTF8(username)));
parameters.push_back(base::Value(SysNSStringToUTF8(password)));
parameters.emplace_back(std::move(username));
parameters.emplace_back(std::move(password));
autofill::ExecuteJavaScriptFunction("passwords.fillPasswordForm", parameters,
frame, base::BindOnce(completionHandler));
}
// TODO(crbug.com/1075444): Receive strings as std::string as they are being
// converted twice.
- (void)fillPasswordForm:(FormRendererId)formIdentifier
inFrame:(web::WebFrame*)frame
newPasswordIdentifier:(FieldRendererId)newPasswordIdentifier
......@@ -118,11 +114,9 @@ std::unique_ptr<base::Value> SerializeFillData(
completionHandler:(void (^)(NSString*))completionHandler {
DCHECK(completionHandler);
std::vector<base::Value> parameters;
parameters.push_back(base::Value(static_cast<int>(formIdentifier.value())));
parameters.push_back(
base::Value(static_cast<int>(newPasswordIdentifier.value())));
parameters.push_back(
base::Value(static_cast<int>(confirmPasswordIdentifier.value())));
parameters.emplace_back(static_cast<int>(formIdentifier.value()));
parameters.emplace_back(static_cast<int>(newPasswordIdentifier.value()));
parameters.emplace_back(static_cast<int>(confirmPasswordIdentifier.value()));
parameters.push_back(base::Value(SysNSStringToUTF8(generatedPassword)));
autofill::ExecuteJavaScriptFunction(
"passwords.fillPasswordFormWithGeneratedPassword", parameters, frame,
......@@ -132,7 +126,7 @@ std::unique_ptr<base::Value> SerializeFillData(
- (void)setUpForUniqueIDsWithInitialState:(uint32_t)nextAvailableID
inFrame:(web::WebFrame*)frame {
std::vector<base::Value> parameters;
parameters.push_back(base::Value(static_cast<int>(nextAvailableID)));
parameters.emplace_back(static_cast<int>(nextAvailableID));
autofill::ExecuteJavaScriptFunction("fill.setUpForUniqueIDs", parameters,
frame,
base::OnceCallback<void(NSString*)>());
......
......@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/metrics/histogram_macros.h"
#include "base/strings/sys_string_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "components/autofill/core/common/field_data_manager.h"
#include "components/autofill/core/common/form_data.h"
......@@ -30,7 +31,7 @@ using autofill::FormRendererId;
using autofill::FieldRendererId;
using autofill::PasswordFormFillData;
using base::SysNSStringToUTF16;
using base::SysUTF16ToNSString;
using base::UTF16ToUTF8;
using password_manager::FillData;
using password_manager::GetPageURLAndCheckTrustLevel;
using password_manager::SerializePasswordFormFillData;
......@@ -313,8 +314,8 @@ constexpr char kCommandPrefix[] = "passwordForm";
[self.jsPasswordManager
fillPasswordForm:SerializePasswordFormFillData(formData)
inFrame:GetMainFrame(_webState)
withUsername:SysUTF16ToNSString(formData.username_field.value)
password:SysUTF16ToNSString(formData.password_field.value)
withUsername:UTF16ToUTF8(usernameValue)
password:UTF16ToUTF8(passwordValue)
completionHandler:^(NSString* result) {
BOOL success = [result isEqual:@"true"];
if (success) {
......@@ -375,8 +376,8 @@ constexpr char kCommandPrefix[] = "passwordForm";
[self.jsPasswordManager
fillPasswordForm:SerializeFillData(fillData)
inFrame:GetMainFrame(_webState)
withUsername:SysUTF16ToNSString(usernameValue)
password:SysUTF16ToNSString(passwordValue)
withUsername:UTF16ToUTF8(usernameValue)
password:UTF16ToUTF8(passwordValue)
completionHandler:^(NSString* result) {
BOOL success = [result isEqual:@"true"];
if (success) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment