Commit 249af91f authored by John Z Wu's avatar John Z Wu Committed by Commit Bot

Add userInitiated to CWVAutofillControllerDelegate methods

This will help with more accurate logging in //ios/web_view.

Bug: 1031423
Change-Id: I2a87917bb9be50c8e802a33dff1e8de33d818e12
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1954457
Commit-Queue: John Wu <jzw@chromium.org>
Reviewed-by: default avatarHiroshi Ichikawa <ichikawa@chromium.org>
Cr-Commit-Position: refs/heads/master@{#722605}
parent 69ded10d
...@@ -536,40 +536,47 @@ showUnmaskPromptForCard:(const autofill::CreditCard&)creditCard ...@@ -536,40 +536,47 @@ showUnmaskPromptForCard:(const autofill::CreditCard&)creditCard
NSString* nsFieldType = base::SysUTF8ToNSString(params.field_type); NSString* nsFieldType = base::SysUTF8ToNSString(params.field_type);
NSString* nsFrameID = base::SysUTF8ToNSString(GetWebFrameId(frame)); NSString* nsFrameID = base::SysUTF8ToNSString(GetWebFrameId(frame));
NSString* nsValue = base::SysUTF8ToNSString(params.value); NSString* nsValue = base::SysUTF8ToNSString(params.value);
BOOL userInitiated = params.has_user_gesture;
if (params.type == "focus") { if (params.type == "focus") {
_lastFocusFormActivityWebFrameID = nsFrameID; _lastFocusFormActivityWebFrameID = nsFrameID;
if ([_delegate respondsToSelector:@selector if ([_delegate respondsToSelector:@selector
(autofillController:didFocusOnFieldWithIdentifier:fieldType (autofillController:
:formName:frameID:value:)]) { didFocusOnFieldWithIdentifier:fieldType:formName:frameID
:value:userInitiated:)]) {
[_delegate autofillController:self [_delegate autofillController:self
didFocusOnFieldWithIdentifier:nsFieldIdentifier didFocusOnFieldWithIdentifier:nsFieldIdentifier
fieldType:nsFieldType fieldType:nsFieldType
formName:nsFormName formName:nsFormName
frameID:nsFrameID frameID:nsFrameID
value:nsValue]; value:nsValue
userInitiated:userInitiated];
} }
} else if (params.type == "input") { } else if (params.type == "input") {
_lastFocusFormActivityWebFrameID = nsFrameID; _lastFocusFormActivityWebFrameID = nsFrameID;
if ([_delegate respondsToSelector:@selector if ([_delegate respondsToSelector:@selector
(autofillController:didInputInFieldWithIdentifier:fieldType (autofillController:
:formName:frameID:value:)]) { didInputInFieldWithIdentifier:fieldType:formName:frameID
:value:userInitiated:)]) {
[_delegate autofillController:self [_delegate autofillController:self
didInputInFieldWithIdentifier:nsFieldIdentifier didInputInFieldWithIdentifier:nsFieldIdentifier
fieldType:nsFieldType fieldType:nsFieldType
formName:nsFormName formName:nsFormName
frameID:nsFrameID frameID:nsFrameID
value:nsValue]; value:nsValue
userInitiated:userInitiated];
} }
} else if (params.type == "blur") { } else if (params.type == "blur") {
if ([_delegate respondsToSelector:@selector if ([_delegate respondsToSelector:@selector
(autofillController:didBlurOnFieldWithIdentifier:fieldType (autofillController:
:formName:frameID:value:)]) { didBlurOnFieldWithIdentifier:fieldType:formName:frameID
:value:userInitiated:)]) {
[_delegate autofillController:self [_delegate autofillController:self
didBlurOnFieldWithIdentifier:nsFieldIdentifier didBlurOnFieldWithIdentifier:nsFieldIdentifier
fieldType:nsFieldType fieldType:nsFieldType
formName:nsFormName formName:nsFormName
frameID:nsFrameID frameID:nsFrameID
value:nsValue]; value:nsValue
userInitiated:userInitiated];
} }
} }
} }
...@@ -581,12 +588,12 @@ showUnmaskPromptForCard:(const autofill::CreditCard&)creditCard ...@@ -581,12 +588,12 @@ showUnmaskPromptForCard:(const autofill::CreditCard&)creditCard
formInMainFrame:(BOOL)isMainFrame formInMainFrame:(BOOL)isMainFrame
inFrame:(web::WebFrame*)frame { inFrame:(web::WebFrame*)frame {
if ([_delegate respondsToSelector:@selector if ([_delegate respondsToSelector:@selector
(autofillController:didSubmitFormWithName:userInitiated (autofillController:
:isMainFrame:)]) { didSubmitFormWithName:frameID:userInitiated:)]) {
[_delegate autofillController:self [_delegate autofillController:self
didSubmitFormWithName:base::SysUTF8ToNSString(formName) didSubmitFormWithName:base::SysUTF8ToNSString(formName)
userInitiated:userInitiated frameID:base::SysUTF8ToNSString(frame->GetFrameId())
isMainFrame:isMainFrame]; userInitiated:userInitiated];
} }
} }
......
...@@ -231,13 +231,15 @@ TEST_F(CWVAutofillControllerTest, FocusCallback) { ...@@ -231,13 +231,15 @@ TEST_F(CWVAutofillControllerTest, FocusCallback) {
fieldType:@"" fieldType:@""
formName:kTestFormName formName:kTestFormName
frameID:kTestFrameId frameID:kTestFrameId
value:kTestFieldValue]; value:kTestFieldValue
userInitiated:YES];
autofill::FormActivityParams params; autofill::FormActivityParams params;
params.form_name = base::SysNSStringToUTF8(kTestFormName); params.form_name = base::SysNSStringToUTF8(kTestFormName);
params.field_identifier = base::SysNSStringToUTF8(kTestFieldIdentifier); params.field_identifier = base::SysNSStringToUTF8(kTestFieldIdentifier);
params.value = base::SysNSStringToUTF8(kTestFieldValue); params.value = base::SysNSStringToUTF8(kTestFieldValue);
params.frame_id = base::SysNSStringToUTF8(kTestFrameId); params.frame_id = base::SysNSStringToUTF8(kTestFrameId);
params.has_user_gesture = true;
params.type = "focus"; params.type = "focus";
web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true, web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true,
GURL::EmptyGURL()); GURL::EmptyGURL());
...@@ -260,7 +262,8 @@ TEST_F(CWVAutofillControllerTest, InputCallback) { ...@@ -260,7 +262,8 @@ TEST_F(CWVAutofillControllerTest, InputCallback) {
fieldType:@"" fieldType:@""
formName:kTestFormName formName:kTestFormName
frameID:kTestFrameId frameID:kTestFrameId
value:kTestFieldValue]; value:kTestFieldValue
userInitiated:YES];
autofill::FormActivityParams params; autofill::FormActivityParams params;
params.form_name = base::SysNSStringToUTF8(kTestFormName); params.form_name = base::SysNSStringToUTF8(kTestFormName);
...@@ -268,6 +271,7 @@ TEST_F(CWVAutofillControllerTest, InputCallback) { ...@@ -268,6 +271,7 @@ TEST_F(CWVAutofillControllerTest, InputCallback) {
params.value = base::SysNSStringToUTF8(kTestFieldValue); params.value = base::SysNSStringToUTF8(kTestFieldValue);
params.frame_id = base::SysNSStringToUTF8(kTestFrameId); params.frame_id = base::SysNSStringToUTF8(kTestFrameId);
params.type = "input"; params.type = "input";
params.has_user_gesture = true;
web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true, web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true,
GURL::EmptyGURL()); GURL::EmptyGURL());
test_form_activity_tab_helper_->FormActivityRegistered(&frame, params); test_form_activity_tab_helper_->FormActivityRegistered(&frame, params);
...@@ -288,7 +292,8 @@ TEST_F(CWVAutofillControllerTest, BlurCallback) { ...@@ -288,7 +292,8 @@ TEST_F(CWVAutofillControllerTest, BlurCallback) {
fieldType:@"" fieldType:@""
formName:kTestFormName formName:kTestFormName
frameID:kTestFrameId frameID:kTestFrameId
value:kTestFieldValue]; value:kTestFieldValue
userInitiated:YES];
autofill::FormActivityParams params; autofill::FormActivityParams params;
params.form_name = base::SysNSStringToUTF8(kTestFormName); params.form_name = base::SysNSStringToUTF8(kTestFormName);
...@@ -296,6 +301,7 @@ TEST_F(CWVAutofillControllerTest, BlurCallback) { ...@@ -296,6 +301,7 @@ TEST_F(CWVAutofillControllerTest, BlurCallback) {
params.value = base::SysNSStringToUTF8(kTestFieldValue); params.value = base::SysNSStringToUTF8(kTestFieldValue);
params.frame_id = base::SysNSStringToUTF8(kTestFrameId); params.frame_id = base::SysNSStringToUTF8(kTestFrameId);
params.type = "blur"; params.type = "blur";
params.has_user_gesture = true;
web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true, web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true,
GURL::EmptyGURL()); GURL::EmptyGURL());
test_form_activity_tab_helper_->FormActivityRegistered(&frame, params); test_form_activity_tab_helper_->FormActivityRegistered(&frame, params);
...@@ -314,8 +320,8 @@ TEST_F(CWVAutofillControllerTest, SubmitCallback) { ...@@ -314,8 +320,8 @@ TEST_F(CWVAutofillControllerTest, SubmitCallback) {
@autoreleasepool { @autoreleasepool {
[[delegate expect] autofillController:autofill_controller_ [[delegate expect] autofillController:autofill_controller_
didSubmitFormWithName:kTestFormName didSubmitFormWithName:kTestFormName
userInitiated:YES frameID:kTestFrameId
isMainFrame:YES]; userInitiated:YES];
web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true, web::FakeWebFrame frame(base::SysNSStringToUTF8(kTestFrameId), true,
GURL::EmptyGURL()); GURL::EmptyGURL());
test_form_activity_tab_helper_->DocumentSubmitted( test_form_activity_tab_helper_->DocumentSubmitted(
...@@ -326,8 +332,8 @@ TEST_F(CWVAutofillControllerTest, SubmitCallback) { ...@@ -326,8 +332,8 @@ TEST_F(CWVAutofillControllerTest, SubmitCallback) {
[[delegate expect] autofillController:autofill_controller_ [[delegate expect] autofillController:autofill_controller_
didSubmitFormWithName:kTestFormName didSubmitFormWithName:kTestFormName
userInitiated:NO frameID:kTestFrameId
isMainFrame:YES]; userInitiated:NO];
test_form_activity_tab_helper_->DocumentSubmitted( test_form_activity_tab_helper_->DocumentSubmitted(
/*sender_frame*/ &frame, base::SysNSStringToUTF8(kTestFormName), /*sender_frame*/ &frame, base::SysNSStringToUTF8(kTestFormName),
......
...@@ -42,35 +42,42 @@ typedef NS_ENUM(NSInteger, CWVPasswordUserDecision) { ...@@ -42,35 +42,42 @@ typedef NS_ENUM(NSInteger, CWVPasswordUserDecision) {
@optional @optional
// Called when a form field element receives a "focus" event. // Called when a form field element receives a "focus" event.
// |userInitiated| is YES if field was focused as a result of user interaction.
- (void)autofillController:(CWVAutofillController*)autofillController - (void)autofillController:(CWVAutofillController*)autofillController
didFocusOnFieldWithIdentifier:(NSString*)fieldIdentifier didFocusOnFieldWithIdentifier:(NSString*)fieldIdentifier
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
frameID:(NSString*)frameID frameID:(NSString*)frameID
value:(NSString*)value; value:(NSString*)value
userInitiated:(BOOL)userInitiated;
// Called when a form field element receives an "input" event. // Called when a form field element receives an "input" event.
// |userInitiated| is YES if field received input as a result of user
// interaction.
- (void)autofillController:(CWVAutofillController*)autofillController - (void)autofillController:(CWVAutofillController*)autofillController
didInputInFieldWithIdentifier:(NSString*)fieldIdentifier didInputInFieldWithIdentifier:(NSString*)fieldIdentifier
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
frameID:(NSString*)frameID frameID:(NSString*)frameID
value:(NSString*)value; value:(NSString*)value
userInitiated:(BOOL)userInitiated;
// Called when a form field element receives a "blur" (un-focused) event. // Called when a form field element receives a "blur" (un-focused) event.
// |userInitiated| is YES if field was blurred as a result of user interaction.
- (void)autofillController:(CWVAutofillController*)autofillController - (void)autofillController:(CWVAutofillController*)autofillController
didBlurOnFieldWithIdentifier:(NSString*)fieldIdentifier didBlurOnFieldWithIdentifier:(NSString*)fieldIdentifier
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
frameID:(NSString*)frameID frameID:(NSString*)frameID
value:(NSString*)value; value:(NSString*)value
userInitiated:(BOOL)userInitiated;
// Called when a form was submitted. |userInitiated| is YES if form is submitted // Called when a form was submitted.
// as a result of user interaction. // |userInitiated| is YES if form was submitted as a result of user interaction.
- (void)autofillController:(CWVAutofillController*)autofillController - (void)autofillController:(CWVAutofillController*)autofillController
didSubmitFormWithName:(NSString*)formName didSubmitFormWithName:(NSString*)formName
userInitiated:(BOOL)userInitiated frameID:(NSString*)frameID
isMainFrame:(BOOL)isMainFrame; userInitiated:(BOOL)userInitiated;
// Called when |forms| are found in a frame with |frameID|. // Called when |forms| are found in a frame with |frameID|.
// Will be called after initial load and after any form mutations. // Will be called after initial load and after any form mutations.
......
...@@ -45,7 +45,8 @@ ...@@ -45,7 +45,8 @@
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
frameID:(NSString*)frameID frameID:(NSString*)frameID
value:(NSString*)value { value:(NSString*)value
userInitiated:(BOOL)userInitiated {
_autofillController = autofillController; _autofillController = autofillController;
__weak ShellAutofillDelegate* weakSelf = self; __weak ShellAutofillDelegate* weakSelf = self;
...@@ -89,7 +90,9 @@ ...@@ -89,7 +90,9 @@
didInputInFieldWithIdentifier:(NSString*)fieldIdentifier didInputInFieldWithIdentifier:(NSString*)fieldIdentifier
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
value:(NSString*)value { frameID:(NSString*)frameID
value:(NSString*)value
userInitiated:(BOOL)userInitiated {
// Not implemented. // Not implemented.
} }
...@@ -97,14 +100,16 @@ ...@@ -97,14 +100,16 @@
didBlurOnFieldWithIdentifier:(NSString*)fieldIdentifier didBlurOnFieldWithIdentifier:(NSString*)fieldIdentifier
fieldType:(NSString*)fieldType fieldType:(NSString*)fieldType
formName:(NSString*)formName formName:(NSString*)formName
value:(NSString*)value { frameID:(NSString*)frameID
value:(NSString*)value
userInitiated:(BOOL)userInitiated {
// Not implemented. // Not implemented.
} }
- (void)autofillController:(CWVAutofillController*)autofillController - (void)autofillController:(CWVAutofillController*)autofillController
didSubmitFormWithName:(NSString*)formName didSubmitFormWithName:(NSString*)formName
userInitiated:(BOOL)userInitiated frameID:(NSString*)frameID
isMainFrame:(BOOL)isMainFrame { userInitiated:(BOOL)userInitiated {
// Not implemented. // Not implemented.
} }
......
...@@ -194,7 +194,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) { ...@@ -194,7 +194,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) {
fieldType:kTestFieldType fieldType:kTestFieldType
formName:kTestFormName formName:kTestFormName
frameID:[OCMArg any] frameID:[OCMArg any]
value:kTestAddressFieldValue]; value:kTestAddressFieldValue
userInitiated:YES];
NSString* focus_script = NSString* focus_script =
[NSString stringWithFormat:@"document.getElementById('%@').focus();", [NSString stringWithFormat:@"document.getElementById('%@').focus();",
kTestAddressFieldID]; kTestAddressFieldID];
...@@ -208,7 +209,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) { ...@@ -208,7 +209,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) {
fieldType:kTestFieldType fieldType:kTestFieldType
formName:kTestFormName formName:kTestFormName
frameID:[OCMArg any] frameID:[OCMArg any]
value:kTestAddressFieldValue]; value:kTestAddressFieldValue
userInitiated:NO];
NSString* blur_script = NSString* blur_script =
[NSString stringWithFormat: [NSString stringWithFormat:
@"var event = new Event('blur', {bubbles:true});" @"var event = new Event('blur', {bubbles:true});"
...@@ -224,7 +226,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) { ...@@ -224,7 +226,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) {
fieldType:kTestFieldType fieldType:kTestFieldType
formName:kTestFormName formName:kTestFormName
frameID:[OCMArg any] frameID:[OCMArg any]
value:kTestAddressFieldValue]; value:kTestAddressFieldValue
userInitiated:NO];
// The 'input' event listener defined in form.js is only called during the // The 'input' event listener defined in form.js is only called during the
// bubbling phase. // bubbling phase.
NSString* input_script = NSString* input_script =
...@@ -239,8 +242,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) { ...@@ -239,8 +242,8 @@ TEST_F(WebViewAutofillTest, TestDelegateCallbacks) {
[[delegate expect] autofillController:autofill_controller_ [[delegate expect] autofillController:autofill_controller_
didSubmitFormWithName:kTestFormName didSubmitFormWithName:kTestFormName
userInitiated:NO frameID:[OCMArg any]
isMainFrame:YES]; userInitiated:NO];
// The 'submit' event listener defined in form.js is only called during the // The 'submit' event listener defined in form.js is only called during the
// bubbling phase. // bubbling phase.
NSString* submit_script = NSString* submit_script =
......
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