Index: extensions/browser/web_ui_user_script_loader.cc |
diff --git a/extensions/browser/web_ui_user_script_loader.cc b/extensions/browser/web_ui_user_script_loader.cc |
index facbadb0ee2ed8f91890418bdd723eb0550b02aa..dd7550b3446f4b16482fe8ae4b73e1d6c310fd26 100644 |
--- a/extensions/browser/web_ui_user_script_loader.cc |
+++ b/extensions/browser/web_ui_user_script_loader.cc |
@@ -86,14 +86,20 @@ void WebUIUserScriptLoader::LoadScripts( |
int render_process_id = iter->second.render_process_id; |
int render_frame_id = iter->second.render_frame_id; |
- content::BrowserContext* browser_context = |
- content::RenderProcessHost::FromID(render_process_id) |
- ->GetBrowserContext(); |
- |
- CreateWebUIURLFetchers(script->js_scripts(), browser_context, |
- render_process_id, render_frame_id); |
- CreateWebUIURLFetchers(script->css_scripts(), browser_context, |
- render_process_id, render_frame_id); |
+ content::RenderProcessHost* render_process_host = |
+ content::RenderProcessHost::FromID(render_process_id); |
+ |
+ // LoadScripts may not be synchronous with AddScripts. Hence the |
+ // |render_process_host| may no longer be alive. |
lazyboy
2017/05/22 23:34:53
As we don't have a repro case, might be worth addi
karandeepb
2017/05/24 21:36:57
Tryed adding a test in Patchset 2, but don't have
|
+ if (render_process_host) { |
+ content::BrowserContext* browser_context = |
+ render_process_host->GetBrowserContext(); |
+ |
+ CreateWebUIURLFetchers(script->js_scripts(), browser_context, |
+ render_process_id, render_frame_id); |
+ CreateWebUIURLFetchers(script->css_scripts(), browser_context, |
+ render_process_id, render_frame_id); |
+ } |
script_render_info_map_.erase(script->id()); |
} |