Index: extensions/renderer/dispatcher.cc |
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
index a8a2b3ed3076b3dc1d3405b6025a9c2025ce59cc..7f3e1e63c69d170f80f092b01246e03c88adcba5 100644 |
--- a/extensions/renderer/dispatcher.cc |
+++ b/extensions/renderer/dispatcher.cc |
@@ -500,6 +500,30 @@ void Dispatcher::DidCreateDocumentElement(blink::WebLocalFrame* frame) { |
} |
} |
+void Dispatcher::AfterDidCreateDocumentElement( |
+ const base::WeakPtr<content::RenderFrame>& render_frame) { |
+ DCHECK(render_frame.get()); |
+ ExtensionFrameHelper* frame_helper = |
+ ExtensionFrameHelper::Get(render_frame.get()); |
ncarter (slow)
2016/02/11 22:47:32
Nasko pointed me at this CL to see if there might
robwu
2016/02/11 23:36:50
Done. I don't see any issue with passing a weakptr
ncarter (slow)
2016/02/12 19:32:57
I'm not opposed to it per se either, but I think i
robwu
2016/02/12 19:51:43
That makes sense. Thanks for explaining your line
|
+ if (!frame_helper) |
+ return; // The frame is invisible to extensions. |
+ |
+ script_injection_manager_->AfterDidCreateDocumentElement(render_frame.get()); |
+ if (!render_frame.get()) |
+ return; // Frame was destroyed by injected user script. |
+ |
+ frame_helper->AfterDidCreateDocumentElement(render_frame); |
+} |
+ |
+void Dispatcher::AfterDidFinishDocumentLoad( |
+ const base::WeakPtr<content::RenderFrame>& render_frame) { |
+ if (!ExtensionFrameHelper::Get(render_frame.get())) |
+ return; // The frame is invisible to extensions. |
+ |
+ script_injection_manager_->AfterDidFinishDocumentLoad(render_frame.get()); |
+ // 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, |