| 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,
|
|
|