Index: extensions/renderer/script_injection.cc |
diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc |
index 44421da2db590bd999975ca551f27ffe4f0f1b6a..ac9424a882f405674a4144aa7b71f76f7259638a 100644 |
--- a/extensions/renderer/script_injection.cc |
+++ b/extensions/renderer/script_injection.cc |
@@ -113,18 +113,19 @@ void ScriptInjection::RemoveIsolatedWorld(const std::string& host_id) { |
ScriptInjection::ScriptInjection( |
scoped_ptr<ScriptInjector> injector, |
blink::WebLocalFrame* web_frame, |
- const HostID& host_id, |
+ scoped_ptr<const InjectionHost> injection_host, |
const UserScript::ConsumerInstanceType& consumer_instance_type, |
UserScript::RunLocation run_location, |
int tab_id) |
: injector_(injector.Pass()), |
web_frame_(web_frame), |
- host_id_(host_id), |
+ injection_host_(injection_host.Pass()), |
consumer_instance_type_(consumer_instance_type), |
run_location_(run_location), |
tab_id_(tab_id), |
request_id_(kInvalidRequestId), |
complete_(false) { |
+ CHECK(injection_host_.get()); |
} |
ScriptInjection::~ScriptInjection() { |
@@ -175,8 +176,14 @@ bool ScriptInjection::OnPermissionGranted(const InjectionHost* injection_host, |
return true; |
} |
+const InjectionHost* ScriptInjection::GetInjectionHost() { |
+ if (injection_host_->IsGone()) |
Devlin
2015/02/17 18:56:52
This won't really work, because you never update t
Xi Han
2015/02/18 21:11:46
As discussed offline, the Dispatcher will notify t
|
+ return nullptr; |
+ return injection_host_.get(); |
+} |
+ |
void ScriptInjection::RequestPermission() { |
- if (host_id_.type() != HostID::EXTENSIONS) |
+ if (host_id().type() != HostID::EXTENSIONS) |
return; |
content::RenderView* render_view = |
@@ -190,7 +197,7 @@ void ScriptInjection::RequestPermission() { |
: g_next_pending_id++; |
render_view->Send(new ExtensionHostMsg_RequestScriptInjectionPermission( |
render_view->GetRoutingID(), |
- host_id_.id(), |
+ host_id().id(), |
injector_->script_type(), |
request_id_)); |
} |