| Index: components/autofill/content/renderer/password_autofill_agent.cc
|
| diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
|
| index ce485ac91a149483af76227c72d83e372025aace..d0245ece9c365df0d262abbacd2677253d050941 100644
|
| --- a/components/autofill/content/renderer/password_autofill_agent.cc
|
| +++ b/components/autofill/content/renderer/password_autofill_agent.cc
|
| @@ -1237,6 +1237,14 @@ void PasswordAutofillAgent::WillSubmitForm(const blink::WebFormElement& form) {
|
| }
|
| }
|
|
|
| +void PasswordAutofillAgent::OnDestruct() {
|
| + // As described in http://crbug.com/608100, there might be an AutofillAgent
|
| + // method in-progress lower on the stack. Destroying |this| would cause
|
| + // use-after-free once the lower stack frame becomes active. Instead, a task
|
| + // needs to be posted to delete this.
|
| + base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, this);
|
| +}
|
| +
|
| void PasswordAutofillAgent::DidStartProvisionalLoad() {
|
| std::unique_ptr<RendererSavePasswordProgressLogger> logger;
|
| if (logging_state_active_) {
|
|
|