Index: extensions/renderer/script_context_set.cc |
diff --git a/extensions/renderer/script_context_set.cc b/extensions/renderer/script_context_set.cc |
index 8d11517814d547c891cde2bde24ef2697e073174..5ff971e57242da67fbf43d5e25e7c1bf98feb5e0 100644 |
--- a/extensions/renderer/script_context_set.cc |
+++ b/extensions/renderer/script_context_set.cc |
@@ -17,12 +17,20 @@ |
namespace extensions { |
+namespace { |
+// There is only ever one instance of the ScriptContextSet. |
+ScriptContextSet* g_context_set = nullptr; |
+} |
+ |
ScriptContextSet::ScriptContextSet(ExtensionSet* extensions, |
ExtensionIdSet* active_extension_ids) |
: extensions_(extensions), active_extension_ids_(active_extension_ids) { |
+ DCHECK(!g_context_set); |
+ g_context_set = this; |
} |
ScriptContextSet::~ScriptContextSet() { |
+ g_context_set = nullptr; |
} |
ScriptContext* ScriptContextSet::Register( |
@@ -79,6 +87,12 @@ ScriptContext* ScriptContextSet::GetByV8Context( |
return nullptr; |
} |
+ScriptContext* ScriptContextSet::GetContextByV8Context( |
+ const v8::Local<v8::Context>& v8_context) { |
+ // g_context_set can be null in unittests. |
+ return g_context_set ? g_context_set->GetByV8Context(v8_context) : nullptr; |
+} |
+ |
void ScriptContextSet::ForEach( |
const std::string& extension_id, |
content::RenderView* render_view, |