Chromium Code Reviews| Index: extensions/renderer/dispatcher.cc |
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
| index a8a2b3ed3076b3dc1d3405b6025a9c2025ce59cc..8a7cc96a0a2c642162db8a72ec8a856e532669d8 100644 |
| --- a/extensions/renderer/dispatcher.cc |
| +++ b/extensions/renderer/dispatcher.cc |
| @@ -500,6 +500,31 @@ void Dispatcher::DidCreateDocumentElement(blink::WebLocalFrame* frame) { |
| } |
| } |
| +void Dispatcher::AfterDidCreateDocumentElement( |
| + content::RenderFrame* render_frame) { |
| + ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame); |
| + if (!frame_helper) |
| + return; // The frame is invisible to extensions. |
| + |
| + base::WeakPtr<ExtensionFrameHelper> frame_helper_weak = |
| + frame_helper->AsWeakPtr(); |
| + |
| + script_injection_manager_->AfterDidCreateDocumentElement(render_frame); |
|
Devlin
2016/02/12 22:21:56
Would it make sense to have the script injection m
robwu
2016/02/12 22:37:13
I avoided that, because ScriptInjectionManager nee
Devlin
2016/02/12 22:51:01
What's the optimization there? Just avoiding crea
robwu
2016/02/12 23:24:49
This happens (which seems not that expensive):
1.
Devlin
2016/02/12 23:42:24
That sounds reasonable to me. If we're going to s
|
| + if (!frame_helper_weak.get()) |
| + return; // Frame was destroyed by injected user script. |
| + |
| + frame_helper->AfterDidCreateDocumentElement(); |
| +} |
| + |
| +void Dispatcher::AfterDidFinishDocumentLoad( |
| + content::RenderFrame* render_frame) { |
| + if (!ExtensionFrameHelper::Get(render_frame)) |
| + return; // The frame is invisible to extensions. |
| + |
| + script_injection_manager_->AfterDidFinishDocumentLoad(render_frame); |
| + // The frame might be destroyed by the injected user script at this point. |
| +} |
| + |
| void Dispatcher::OnExtensionResponse(int request_id, |
| bool success, |
| const base::ListValue& response, |