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

Unified Diff: chrome/browser/ui/autofill/chrome_autofill_client.cc

Issue 796493004: Remove FrameDetached and FrameWillClose listeners from AutofillAgent. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix init order Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/autofill/chrome_autofill_client.cc
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
index 8d75ec226389dccc2450bee4dba5ba13a30e219e..3c7efd697d43a8217b1b0978e215eeef366c6f6d 100644
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
@@ -26,7 +26,7 @@
#include "components/autofill/content/common/autofill_messages.h"
#include "components/autofill/core/common/autofill_pref_names.h"
#include "components/password_manager/content/browser/content_password_manager_driver.h"
-#include "content/public/browser/render_view_host.h"
+#include "content/public/browser/render_frame_host.h"
#include "ui/gfx/geometry/rect.h"
#if defined(OS_ANDROID)
@@ -42,7 +42,8 @@ namespace autofill {
ChromeAutofillClient::ChromeAutofillClient(content::WebContents* web_contents)
: content::WebContentsObserver(web_contents),
- unmask_controller_(web_contents) {
+ unmask_controller_(web_contents),
+ last_rfh_to_rac_(nullptr) {
DCHECK(web_contents);
#if !defined(OS_ANDROID)
@@ -136,12 +137,13 @@ void ChromeAutofillClient::ScanCreditCard(
void ChromeAutofillClient::ShowRequestAutocompleteDialog(
const FormData& form,
- const GURL& source_url,
+ content::RenderFrameHost* render_frame_host,
const ResultCallback& callback) {
HideRequestAutocompleteDialog();
-
+ last_rfh_to_rac_ = render_frame_host;
+ GURL frame_url = render_frame_host->GetLastCommittedURL();
dialog_controller_ = AutofillDialogController::Create(web_contents(), form,
- source_url, callback);
+ frame_url, callback);
if (dialog_controller_) {
dialog_controller_->Show();
} else {
@@ -199,10 +201,24 @@ bool ChromeAutofillClient::IsAutocompleteEnabled() {
}
void ChromeAutofillClient::HideRequestAutocompleteDialog() {
- if (dialog_controller_.get())
+ if (dialog_controller_)
dialog_controller_->Hide();
}
+void ChromeAutofillClient::RenderFrameDeleted(
+ content::RenderFrameHost* render_frame_host) {
+ if (dialog_controller_ && render_frame_host == last_rfh_to_rac_)
+ HideRequestAutocompleteDialog();
+}
+
+void ChromeAutofillClient::DidNavigateAnyFrame(
+ content::RenderFrameHost* render_frame_host,
+ const content::LoadCommittedDetails& details,
+ const content::FrameNavigateParams& params) {
+ if (dialog_controller_ && render_frame_host == last_rfh_to_rac_)
+ HideRequestAutocompleteDialog();
+}
+
void ChromeAutofillClient::WebContentsDestroyed() {
HideAutofillPopup();
}
« no previous file with comments | « chrome/browser/ui/autofill/chrome_autofill_client.h ('k') | chrome/renderer/autofill/autofill_renderer_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698