Chromium Code Reviews| 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..e1273b8ba77d0ae758328247dd36ea0de361c526 100644 |
| --- a/extensions/renderer/script_injection_manager.cc |
| +++ b/extensions/renderer/script_injection_manager.cc |
| @@ -70,7 +70,6 @@ class ScriptInjectionManager::RFOHelper : public content::RenderFrameObserver { |
| // RenderFrameObserver implementation. |
| bool OnMessageReceived(const IPC::Message& message) override; |
| void DidCreateNewDocument() override; |
| - void DidCreateDocumentElement() override; |
| void DidFailProvisionalLoad(const blink::WebURLError& error) override; |
| void DidFinishDocumentLoad() override; |
| void DidFinishLoad() override; |
| @@ -135,10 +134,6 @@ void ScriptInjectionManager::RFOHelper::DidCreateNewDocument() { |
| InvalidateAndResetFrame(); |
| } |
| -void ScriptInjectionManager::RFOHelper::DidCreateDocumentElement() { |
| - manager_->StartInjectScripts(render_frame(), UserScript::DOCUMENT_START); |
| -} |
| - |
| void ScriptInjectionManager::RFOHelper::DidFailProvisionalLoad( |
| const blink::WebURLError& error) { |
| FrameStatusMap::iterator it = manager_->frame_statuses_.find(render_frame()); |
| @@ -162,7 +157,6 @@ void ScriptInjectionManager::RFOHelper::DidFailProvisionalLoad( |
| void ScriptInjectionManager::RFOHelper::DidFinishDocumentLoad() { |
| DCHECK(content::RenderThread::Get()); |
| - manager_->StartInjectScripts(render_frame(), UserScript::DOCUMENT_END); |
| // 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 |
| @@ -175,6 +169,9 @@ void ScriptInjectionManager::RFOHelper::DidFinishDocumentLoad() { |
| base::Bind(&ScriptInjectionManager::RFOHelper::RunIdle, |
| weak_factory_.GetWeakPtr()), |
| base::TimeDelta::FromMilliseconds(kScriptIdleTimeoutInMs)); |
| + |
| + // Soon after this method returns, AfterDidFinishDocumentLoad will be called, |
| + // which injects the DOCUMENT_END scripts. |
| } |
| void ScriptInjectionManager::RFOHelper::DidFinishLoad() { |
| @@ -254,6 +251,16 @@ ScriptInjectionManager::~ScriptInjectionManager() { |
| injection->invalidate_render_frame(); |
| } |
| +void ScriptInjectionManager::AfterDidCreateDocumentElement( |
|
Devlin
2016/02/12 22:21:56
In general, it kind of makes me sad that we can't
|
| + content::RenderFrame* render_frame) { |
| + StartInjectScripts(render_frame, UserScript::DOCUMENT_START); |
| +} |
| + |
| +void ScriptInjectionManager::AfterDidFinishDocumentLoad( |
| + content::RenderFrame* render_frame) { |
| + StartInjectScripts(render_frame, UserScript::DOCUMENT_END); |
| +} |
| + |
| void ScriptInjectionManager::OnRenderFrameCreated( |
| content::RenderFrame* render_frame) { |
| rfo_helpers_.push_back(make_scoped_ptr(new RFOHelper(render_frame, this))); |