Index: chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
diff --git a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
index 29321901199008b6fa4c831f749715e393043aca..36e0496ef05e4ac048bd74d3734bc7453b53a02e 100644 |
--- a/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
+++ b/chrome/renderer/autofill/password_autofill_agent_browsertest.cc |
@@ -12,6 +12,7 @@ |
#include "components/autofill/content/renderer/test_password_autofill_agent.h" |
#include "components/autofill/core/common/form_data.h" |
#include "components/autofill/core/common/form_field_data.h" |
+#include "content/public/renderer/render_frame.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
#include "third_party/WebKit/public/platform/WebVector.h" |
@@ -178,13 +179,21 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
void SimulateOnFillPasswordForm( |
const PasswordFormFillData& fill_data) { |
AutofillMsg_FillPasswordForm msg(0, kPasswordFillFormDataId, fill_data); |
- static_cast<content::RenderViewObserver*>(password_autofill_agent_) |
+ static_cast<content::RenderFrameObserver*>(password_autofill_agent_) |
->OnMessageReceived(msg); |
} |
+ // As above, but fills for an iframe. |
+ void SimulateOnFillPasswordFormForFrame( |
+ WebFrame* frame, |
+ const PasswordFormFillData& fill_data) { |
+ AutofillMsg_FillPasswordForm msg(0, kPasswordFillFormDataId, fill_data); |
+ content::RenderFrame::FromWebFrame(frame)->OnMessageReceived(msg); |
+ } |
+ |
void SendVisiblePasswordForms() { |
- static_cast<content::RenderViewObserver*>(password_autofill_agent_) |
- ->DidFinishLoad(GetMainFrame()); |
+ static_cast<content::RenderFrameObserver*>(password_autofill_agent_) |
+ ->DidFinishLoad(); |
} |
void SetUp() override { |
@@ -280,10 +289,15 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
input_frame->document().frame()->view()->advanceFocus(false); |
if (move_caret_to_end) |
input.setSelectionRange(new_value.length(), new_value.length()); |
- if (is_user_input) |
- password_autofill_agent_->FirstUserGestureObserved(); |
- static_cast<blink::WebAutofillClient*>(autofill_agent_) |
- ->textFieldDidChange(input); |
+ if (is_user_input) { |
+ AutofillMsg_FirstUserGestureObservedInTab msg(0); |
+ content::RenderFrame::FromWebFrame(input_frame)->OnMessageReceived(msg); |
+ |
+ // Also pass the message to the testing object. |
+ if (input_frame == GetMainFrame()) |
+ password_autofill_agent_->FirstUserGestureObserved(); |
+ } |
+ input_frame->toWebLocalFrame()->autofillClient()->textFieldDidChange(input); |
// Processing is delayed because of a Blink bug: |
// https://bugs.webkit.org/show_bug.cgi?id=16976 |
// See PasswordAutofillAgent::TextDidChangeInTextField() for details. |
@@ -308,7 +322,7 @@ class PasswordAutofillAgentTest : public ChromeRenderViewTest { |
->FormControlElementClicked(username_input, false); |
AutofillMsg_FillPasswordSuggestion msg(0, username, password); |
- static_cast<content::RenderViewObserver*>(autofill_agent_) |
+ static_cast<content::RenderFrameObserver*>(autofill_agent_) |
->OnMessageReceived(msg); |
} |
@@ -855,12 +869,13 @@ TEST_F(PasswordAutofillAgentTest, IframeNoFillTest) { |
fill_data_.origin = GURL(origin); |
fill_data_.action = GURL(origin); |
- SimulateOnFillPasswordForm(fill_data_); |
- |
// Retrieve the input elements from the iframe since that is where we want to |
// test the autofill. |
WebFrame* iframe = GetMainFrame()->findChildByName(kIframeName); |
ASSERT_TRUE(iframe); |
+ |
+ SimulateOnFillPasswordFormForFrame(iframe, fill_data_); |
+ |
WebDocument document = iframe->document(); |
WebElement username_element = document.getElementById(kUsernameName); |
@@ -1408,7 +1423,7 @@ TEST_F(PasswordAutofillAgentTest, |
// site's JavaScript before submit. |
username_element_.setValue(WebString()); |
password_element_.setValue(WebString()); |
- static_cast<content::RenderViewObserver*>(password_autofill_agent_) |
+ static_cast<content::RenderViewObserver*>(&password_autofill_agent_->legacy_) |
->WillSubmitForm(GetMainFrame(), username_element_.form()); |
// Observe that the PasswordAutofillAgent still remembered the last non-empty |
@@ -1432,7 +1447,7 @@ TEST_F(PasswordAutofillAgentTest, |
true); |
SimulateInputChangeForElement( |
"", true, GetMainFrame(), password_element_, true); |
- static_cast<content::RenderViewObserver*>(password_autofill_agent_) |
+ static_cast<content::RenderViewObserver*>(&password_autofill_agent_->legacy_) |
->WillSubmitForm(GetMainFrame(), username_element_.form()); |
// Observe that the PasswordAutofillAgent respects the user having cleared the |
@@ -1462,7 +1477,7 @@ TEST_F(PasswordAutofillAgentTest, |
// the site's JavaScript before submit. |
username_element_.setValue(WebString()); |
password_element_.setValue(WebString()); |
- static_cast<content::RenderViewObserver*>(password_autofill_agent_) |
+ static_cast<content::RenderViewObserver*>(&password_autofill_agent_->legacy_) |
->WillSubmitForm(GetMainFrame(), username_element_.form()); |
// Observe that the PasswordAutofillAgent still remembered the last non-empty |