| Index: extensions/renderer/script_injection_manager.cc
|
| diff --git a/extensions/renderer/script_injection_manager.cc b/extensions/renderer/script_injection_manager.cc
|
| index aa0f5d32b9aa35ee7c4cbb85461f79899b169c6e..d8a24ba8fa9a5e6af5cf71886a6a2f2dbcf03055 100644
|
| --- a/extensions/renderer/script_injection_manager.cc
|
| +++ b/extensions/renderer/script_injection_manager.cc
|
| @@ -162,7 +162,10 @@ void ScriptInjectionManager::RFOHelper::DidFailProvisionalLoad(
|
|
|
| void ScriptInjectionManager::RFOHelper::DidFinishDocumentLoad() {
|
| DCHECK(content::RenderThread::Get());
|
| + base::WeakPtr<RFOHelper> weak_self = weak_factory_.GetWeakPtr();
|
| manager_->StartInjectScripts(render_frame(), UserScript::DOCUMENT_END);
|
| + if (!weak_self.get())
|
| + return;
|
| // We try to run idle in two places: here and DidFinishLoad.
|
| // DidFinishDocumentLoad() corresponds to completing the document's load,
|
| // whereas DidFinishLoad corresponds to completing the document and all
|
| @@ -172,8 +175,7 @@ void ScriptInjectionManager::RFOHelper::DidFinishDocumentLoad() {
|
| // triggered), then there's no reason to keep waiting.
|
| base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
|
| FROM_HERE,
|
| - base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle,
|
| - weak_factory_.GetWeakPtr()),
|
| + base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, weak_self),
|
| base::TimeDelta::FromMilliseconds(kScriptIdleTimeoutInMs));
|
| }
|
|
|
|
|