[Extensions] Kill off ExtensionMsg_AddMessageToConsole

ExtensionMsg_AddMessageToConsole does the same things as
RenderFrameHost::AddMessageToConsole, and adds a fair amount of code bloat.
Remove it.
In addition to being a nice cleanup, this kills off a bunch of
RenderViewHost dependencies, as well.

BUG=455776
[email protected]

Review URL: https://codereview.chromium.org/1200503002

Cr-Commit-Position: refs/heads/master@{#335991}
diff --git a/extensions/renderer/script_context_set.cc b/extensions/renderer/script_context_set.cc
index 3c1d5c1..096ea70a 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 @@
   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::RenderFrame* render_frame,