summaryrefslogtreecommitdiff
path: root/chromium/components/autofill/ios/browser
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-12 14:27:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:35:20 +0000
commitc30a6232df03e1efbd9f3b226777b07e087a1122 (patch)
treee992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/components/autofill/ios/browser
parent7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff)
downloadqtwebengine-chromium-85-based.tar.gz
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/autofill/ios/browser')
-rw-r--r--chromium/components/autofill/ios/browser/autofill_agent.mm3
-rw-r--r--chromium/components/autofill/ios/browser/autofill_util.h1
-rw-r--r--chromium/components/autofill/ios/browser/autofill_util.mm32
-rw-r--r--chromium/components/autofill/ios/browser/js_autofill_manager.h7
-rw-r--r--chromium/components/autofill/ios/browser/js_autofill_manager.mm33
-rw-r--r--chromium/components/autofill/ios/browser/js_suggestion_manager.mm12
6 files changed, 28 insertions, 60 deletions
diff --git a/chromium/components/autofill/ios/browser/autofill_agent.mm b/chromium/components/autofill/ios/browser/autofill_agent.mm
index fceb06e2fda..fafe880b37e 100644
--- a/chromium/components/autofill/ios/browser/autofill_agent.mm
+++ b/chromium/components/autofill/ios/browser/autofill_agent.mm
@@ -187,8 +187,7 @@ void GetFormField(autofill::FormFieldData* field,
_prefObserverBridge->ObserveChangesForPreference(
autofill::prefs::kAutofillProfileEnabled, &_prefChangeRegistrar);
- _jsAutofillManager = [[JsAutofillManager alloc]
- initWithReceiver:_webState->GetJSInjectionReceiver()];
+ _jsAutofillManager = [[JsAutofillManager alloc] init];
}
return self;
}
diff --git a/chromium/components/autofill/ios/browser/autofill_util.h b/chromium/components/autofill/ios/browser/autofill_util.h
index 7065abd8203..8c4f61538ee 100644
--- a/chromium/components/autofill/ios/browser/autofill_util.h
+++ b/chromium/components/autofill/ios/browser/autofill_util.h
@@ -72,7 +72,6 @@ bool ExtractFormFieldData(const base::DictionaryValue& field,
void ExecuteJavaScriptFunction(const std::string& name,
const std::vector<base::Value>& parameters,
web::WebFrame* frame,
- CRWJSInjectionReceiver* js_injection_receiver,
base::OnceCallback<void(NSString*)> callback);
} // namespace autofill
diff --git a/chromium/components/autofill/ios/browser/autofill_util.mm b/chromium/components/autofill/ios/browser/autofill_util.mm
index 8e14a554ba2..af140f29505 100644
--- a/chromium/components/autofill/ios/browser/autofill_util.mm
+++ b/chromium/components/autofill/ios/browser/autofill_util.mm
@@ -19,7 +19,6 @@
#include "components/autofill/core/common/autofill_util.h"
#include "components/autofill/core/common/form_data.h"
#include "components/autofill/core/common/form_field_data.h"
-#import "ios/web/public/deprecated/crw_js_injection_receiver.h"
#import "ios/web/public/navigation/navigation_item.h"
#import "ios/web/public/navigation/navigation_manager.h"
#include "ios/web/public/security/ssl_status.h"
@@ -27,6 +26,9 @@
#include "url/gurl.h"
#include "url/origin.h"
+using base::NumberToString;
+using base::StringToUint;
+
namespace {
// The timeout for any JavaScript call in this file.
const int64_t kJavaScriptExecutionTimeoutInSeconds = 5;
@@ -50,17 +52,11 @@ bool IsContextSecureForWebState(web::WebState* web_state) {
}
std::unique_ptr<base::Value> ParseJson(NSString* json_string) {
- // Convert JSON string to JSON object |JSONValue|.
- int error_code = 0;
- std::string error_message;
- std::unique_ptr<base::Value> json_value(
- base::JSONReader::ReadAndReturnErrorDeprecated(
- base::SysNSStringToUTF8(json_string), base::JSON_PARSE_RFC,
- &error_code, &error_message));
- if (error_code)
+ base::Optional<base::Value> json_value =
+ base::JSONReader::Read(base::SysNSStringToUTF8(json_string));
+ if (!json_value)
return nullptr;
-
- return json_value;
+ return base::Value::ToUniquePtrValue(std::move(*json_value));
}
bool ExtractFormsData(NSString* forms_json,
@@ -123,9 +119,9 @@ bool ExtractFormData(const base::Value& form_value,
std::string unique_renderer_id;
form_dictionary->GetString("unique_renderer_id", &unique_renderer_id);
- if (!unique_renderer_id.empty()) {
- base::StringToUint(unique_renderer_id,
- &form_data->unique_renderer_id.value());
+ if (!unique_renderer_id.empty() &&
+ unique_renderer_id != NumberToString(kNotSetRendererID)) {
+ StringToUint(unique_renderer_id, &form_data->unique_renderer_id.value());
} else {
form_data->unique_renderer_id = FormRendererId();
}
@@ -141,6 +137,7 @@ bool ExtractFormData(const base::Value& form_value,
form_dictionary->GetBoolean("is_form_tag", &form_data->is_form_tag);
form_dictionary->GetBoolean("is_formless_checkout",
&form_data->is_formless_checkout);
+ form_dictionary->GetString("frame_id", &form_data->frame_id);
// Field list (mandatory) is extracted.
const base::ListValue* fields_list = nullptr;
@@ -169,9 +166,9 @@ bool ExtractFormFieldData(const base::DictionaryValue& field,
std::string unique_renderer_id;
field.GetString("unique_renderer_id", &unique_renderer_id);
- if (!unique_renderer_id.empty()) {
- base::StringToUint(unique_renderer_id,
- &field_data->unique_renderer_id.value());
+ if (!unique_renderer_id.empty() &&
+ unique_renderer_id != NumberToString(kNotSetRendererID)) {
+ StringToUint(unique_renderer_id, &field_data->unique_renderer_id.value());
} else {
field_data->unique_renderer_id = FieldRendererId();
}
@@ -233,7 +230,6 @@ bool ExtractFormFieldData(const base::DictionaryValue& field,
void ExecuteJavaScriptFunction(const std::string& name,
const std::vector<base::Value>& parameters,
web::WebFrame* frame,
- CRWJSInjectionReceiver* js_injection_receiver,
base::OnceCallback<void(NSString*)> callback) {
__block base::OnceCallback<void(NSString*)> cb = std::move(callback);
diff --git a/chromium/components/autofill/ios/browser/js_autofill_manager.h b/chromium/components/autofill/ios/browser/js_autofill_manager.h
index 15c404b9b3a..7ebd532dcd1 100644
--- a/chromium/components/autofill/ios/browser/js_autofill_manager.h
+++ b/chromium/components/autofill/ios/browser/js_autofill_manager.h
@@ -8,7 +8,6 @@
#include "base/ios/block_types.h"
#include "base/values.h"
#include "components/autofill/core/common/autofill_constants.h"
-#import "ios/web/public/deprecated/crw_js_injection_receiver.h"
namespace web {
class WebFrame;
@@ -72,12 +71,6 @@ class WebFrame;
- (void)toggleTrackingUserEditedFields:(BOOL)state
inFrame:(web::WebFrame*)frame;
-// Designated initializer. |receiver| should not be nil.
-- (instancetype)initWithReceiver:(CRWJSInjectionReceiver*)receiver
- NS_DESIGNATED_INITIALIZER;
-
-- (instancetype)init NS_UNAVAILABLE;
-
@end
#endif // COMPONENTS_AUTOFILL_IOS_BROWSER_JS_AUTOFILL_MANAGER_H_
diff --git a/chromium/components/autofill/ios/browser/js_autofill_manager.mm b/chromium/components/autofill/ios/browser/js_autofill_manager.mm
index 13592c9ba3a..4e8f9645df4 100644
--- a/chromium/components/autofill/ios/browser/js_autofill_manager.mm
+++ b/chromium/components/autofill/ios/browser/js_autofill_manager.mm
@@ -12,8 +12,6 @@
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/format_macros.h"
-#include "base/json/json_writer.h"
-#include "base/json/string_escape.h"
#include "base/mac/foundation_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/sys_string_conversions.h"
@@ -26,19 +24,7 @@
#error "This file requires ARC support."
#endif
-@implementation JsAutofillManager {
- // The injection receiver used to evaluate JavaScript.
- __weak CRWJSInjectionReceiver* _receiver;
-}
-
-- (instancetype)initWithReceiver:(CRWJSInjectionReceiver*)receiver {
- DCHECK(receiver);
- self = [super init];
- if (self) {
- _receiver = receiver;
- }
- return self;
-}
+@implementation JsAutofillManager
- (void)addJSDelayInFrame:(web::WebFrame*)frame {
const base::CommandLine* command_line =
@@ -52,7 +38,7 @@
std::vector<base::Value> parameters;
parameters.push_back(base::Value(commandLineDelay));
autofill::ExecuteJavaScriptFunction(
- "autofill.setDelay", parameters, frame, _receiver,
+ "autofill.setDelay", parameters, frame,
base::OnceCallback<void(NSString*)>());
}
}
@@ -70,8 +56,7 @@
parameters.push_back(base::Value(static_cast<int>(requiredFieldsCount)));
parameters.push_back(base::Value(restrictUnownedFieldsToFormlessCheckout));
autofill::ExecuteJavaScriptFunction("autofill.extractForms", parameters,
- frame, _receiver,
- base::BindOnce(completionHandler));
+ frame, base::BindOnce(completionHandler));
}
#pragma mark -
@@ -84,7 +69,7 @@
std::vector<base::Value> parameters;
parameters.push_back(std::move(*data));
autofill::ExecuteJavaScriptFunction("autofill.fillActiveFormField",
- parameters, frame, _receiver,
+ parameters, frame,
base::BindOnce(^(NSString*) {
completionHandler();
}));
@@ -94,7 +79,7 @@
std::vector<base::Value> parameters;
parameters.push_back(base::Value(state ? 200 : 0));
autofill::ExecuteJavaScriptFunction("formHandlers.trackFormMutations",
- parameters, frame, _receiver,
+ parameters, frame,
base::OnceCallback<void(NSString*)>());
}
@@ -104,7 +89,7 @@
parameters.push_back(base::Value(static_cast<bool>(state)));
autofill::ExecuteJavaScriptFunction(
"formHandlers.toggleTrackingUserEditedFields", parameters, frame,
- _receiver, base::OnceCallback<void(NSString*)>());
+ base::OnceCallback<void(NSString*)>());
}
- (void)fillForm:(std::unique_ptr<base::Value>)data
@@ -121,7 +106,7 @@
parameters.push_back(std::move(*data));
parameters.push_back(base::Value(fieldIdentifier));
autofill::ExecuteJavaScriptFunction("autofill.fillForm", parameters, frame,
- _receiver, base::BindOnce(^(NSString*) {
+ base::BindOnce(^(NSString*) {
completionHandler();
}));
}
@@ -135,7 +120,7 @@
parameters.push_back(base::Value(base::SysNSStringToUTF8(formName)));
parameters.push_back(base::Value(base::SysNSStringToUTF8(fieldIdentifier)));
autofill::ExecuteJavaScriptFunction("autofill.clearAutofilledFields",
- parameters, frame, _receiver,
+ parameters, frame,
base::BindOnce(^(NSString*) {
completionHandler();
}));
@@ -147,7 +132,7 @@
std::vector<base::Value> parameters;
parameters.push_back(std::move(*data));
autofill::ExecuteJavaScriptFunction("autofill.fillPredictionData", parameters,
- frame, _receiver,
+ frame,
base::OnceCallback<void(NSString*)>());
}
diff --git a/chromium/components/autofill/ios/browser/js_suggestion_manager.mm b/chromium/components/autofill/ios/browser/js_suggestion_manager.mm
index e5767bba023..837546f40de 100644
--- a/chromium/components/autofill/ios/browser/js_suggestion_manager.mm
+++ b/chromium/components/autofill/ios/browser/js_suggestion_manager.mm
@@ -56,8 +56,7 @@
parameters.push_back(base::Value(base::SysNSStringToUTF8(fieldName)));
autofill::ExecuteJavaScriptFunction(
"suggestion.selectNextElement", parameters,
- [self frameWithFrameID:frameID], _receiver,
- base::OnceCallback<void(NSString*)>());
+ [self frameWithFrameID:frameID], base::OnceCallback<void(NSString*)>());
}
- (void)selectPreviousElementInFrameWithID:(NSString*)frameID {
@@ -72,8 +71,7 @@
parameters.push_back(base::Value(base::SysNSStringToUTF8(fieldName)));
autofill::ExecuteJavaScriptFunction(
"suggestion.selectPreviousElement", parameters,
- [self frameWithFrameID:frameID], _receiver,
- base::OnceCallback<void(NSString*)>());
+ [self frameWithFrameID:frameID], base::OnceCallback<void(NSString*)>());
}
- (void)fetchPreviousAndNextElementsPresenceInFrameWithID:(NSString*)frameID
@@ -98,8 +96,7 @@
parameters.push_back(base::Value(base::SysNSStringToUTF8(fieldName)));
autofill::ExecuteJavaScriptFunction(
"suggestion.hasPreviousNextElements", parameters,
- [self frameWithFrameID:frameID], _receiver,
- base::BindOnce(^(NSString* result) {
+ [self frameWithFrameID:frameID], base::BindOnce(^(NSString* result) {
// The result maybe an empty string here due to 2 reasons:
// 1) When there is an exception running the JS
// 2) There is a race when the page is changing due to which
@@ -127,8 +124,7 @@
std::vector<base::Value> parameters;
autofill::ExecuteJavaScriptFunction(
"suggestion.blurActiveElement", parameters,
- [self frameWithFrameID:frameID], _receiver,
- base::OnceCallback<void(NSString*)>());
+ [self frameWithFrameID:frameID], base::OnceCallback<void(NSString*)>());
}
- (web::WebFrame*)frameWithFrameID:(NSString*)frameID {