| 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(
|
| + 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)));
|
|
|