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

Unified Diff: extensions/renderer/script_injection_manager.cc

Issue 1642283002: Deal with frame removal by content scripts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ImageDocument: Account for detach in DOM mutations Created 4 years, 10 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: 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));
}

Powered by Google App Engine
This is Rietveld 408576698