Chromium Code Reviews| Index: extensions/renderer/script_injection.cc |
| diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc |
| index da93590c3908c00fb33421a2b3ff9f1077e04b06..cc1a63233ada6dae326790a55dfc45686057c80a 100644 |
| --- a/extensions/renderer/script_injection.cc |
| +++ b/extensions/renderer/script_injection.cc |
| @@ -153,7 +153,7 @@ ScriptInjection::InjectionResult ScriptInjection::TryToInject( |
| if (!injection_host_) { |
| NotifyWillNotInject(ScriptInjector::EXTENSION_REMOVED); |
| - return INJECTION_FINISHED; // We're done. |
| + return INJECTION_CANCELED; // We're done. |
| } |
| blink::WebLocalFrame* web_frame = render_frame_->GetWebFrame(); |
| @@ -172,6 +172,8 @@ ScriptInjection::InjectionResult ScriptInjection::TryToInject( |
| // notify it upon completion. |
| if (result == INJECTION_BLOCKED) |
| async_completion_callback_ = async_completion_callback; |
| + else if (result == INJECTION_CANCELED) |
| + NotifyWillNotInject(ScriptInjector::EXTENSION_REMOVED); |
| return result; |
| } |
| @@ -218,8 +220,11 @@ ScriptInjection::InjectionResult ScriptInjection::Inject( |
| bool should_inject_css = injector_->ShouldInjectCss(run_location_); |
| DCHECK(should_inject_js || should_inject_css); |
| - if (should_inject_js) |
| + if (should_inject_js) { |
| InjectJs(); |
| + if (!injection_host_) |
|
Devlin
2016/07/08 20:51:09
A comment explaining why/how this could happen wou
robwu
2016/07/09 05:22:02
Done.
|
| + return INJECTION_CANCELED; |
| + } |
| if (should_inject_css) |
| InjectCss(); |
| @@ -274,7 +279,7 @@ void ScriptInjection::InjectJs() { |
| callback.release()); |
| } |
| - if (injection_host_->id().type() == HostID::EXTENSIONS) |
| + if (injection_host_ && injection_host_->id().type() == HostID::EXTENSIONS) |
| UMA_HISTOGRAM_TIMES("Extensions.InjectScriptTime", exec_timer.Elapsed()); |
| } |