| Index: extensions/renderer/dispatcher.cc
 | 
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
 | 
| index a8a2b3ed3076b3dc1d3405b6025a9c2025ce59cc..4b0145a35ee141ab9efbcb9503104b12a98e77c6 100644
 | 
| --- a/extensions/renderer/dispatcher.cc
 | 
| +++ b/extensions/renderer/dispatcher.cc
 | 
| @@ -500,6 +500,26 @@ 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.
 | 
| +
 | 
| +  frame_helper->AfterDidCreateDocumentElement();
 | 
| +  // |frame_helper| and |render_frame| might be dead by now.
 | 
| +}
 | 
| +
 | 
| +void Dispatcher::AfterDidFinishDocumentLoad(
 | 
| +    content::RenderFrame* render_frame) {
 | 
| +  ExtensionFrameHelper* frame_helper = ExtensionFrameHelper::Get(render_frame);
 | 
| +  if (!frame_helper)
 | 
| +    return;  // The frame is invisible to extensions.
 | 
| +
 | 
| +  frame_helper->AfterDidFinishDocumentLoad();
 | 
| +  // |frame_helper| and |render_frame| might be dead by now.
 | 
| +}
 | 
| +
 | 
|  void Dispatcher::OnExtensionResponse(int request_id,
 | 
|                                       bool success,
 | 
|                                       const base::ListValue& response,
 | 
| 
 |