| Index: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
|
| diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
|
| index 3465f8d0ebc537627c72adbbbacf192f8d0cf95e..50836d363e7188db9327fb7d89622be26caa1af1 100644
|
| --- a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
|
| +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
|
| @@ -576,10 +576,14 @@ base::WeakPtr<AutofillDialogController> AutofillDialogController::Create(
|
| void AutofillDialogControllerImpl::Show() {
|
| dialog_shown_timestamp_ = base::Time::Now();
|
|
|
| - content::NavigationEntry* entry =
|
| - web_contents()->GetController().GetActiveEntry();
|
| - const GURL& active_url = entry ? entry->GetURL() : web_contents()->GetURL();
|
| - invoked_from_same_origin_ = active_url.GetOrigin() == source_url_.GetOrigin();
|
| + // The Autofill dialog is shown in response to a message from the renderer and
|
| + // as such, it can only be made in the context of the current document. A call
|
| + // to GetActiveEntry would return a pending entry, if there was one, which
|
| + // would be a security bug. Therefore, we use the last committed URL for the
|
| + // access checks.
|
| + const GURL& current_url = web_contents()->GetLastCommittedURL();
|
| + invoked_from_same_origin_ =
|
| + current_url.GetOrigin() == source_url_.GetOrigin();
|
|
|
| // Log any relevant UI metrics and security exceptions.
|
| GetMetricLogger().LogDialogUiEvent(AutofillMetrics::DIALOG_UI_SHOWN);
|
|
|