summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 03:39:35 +0000
committerrockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-16 03:39:35 +0000
commit60961f7cf8708f4af18961b51059cfd3b77a6f09 (patch)
treeccc527abe4e46909b78f3d0f63960101b5ed3b3d /extensions
parent98cb9ff27bbead1151e161f516afc2a4b391536c (diff)
downloadchromium_src-60961f7cf8708f4af18961b51059cfd3b77a6f09.zip
chromium_src-60961f7cf8708f4af18961b51059cfd3b77a6f09.tar.gz
chromium_src-60961f7cf8708f4af18961b51059cfd3b77a6f09.tar.bz2
Create ExtensionsRendererClient.
ExtensionsRendererClient defines an interface for clients who wish to embed the extensions system into their renderer processes. This initial CL introduces two simple client methods to abstract away Chrome dependencies within UserScriptSlave. BUG=359836 R=yoz@chromium.org TBR=jochen@chromium.org for ChromeContentRendererClient Review URL: https://codereview.chromium.org/237833002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264097 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'extensions')
-rw-r--r--extensions/extensions.gyp2
-rw-r--r--extensions/renderer/extensions_renderer_client.cc23
-rw-r--r--extensions/renderer/extensions_renderer_client.h37
3 files changed, 62 insertions, 0 deletions
diff --git a/extensions/extensions.gyp b/extensions/extensions.gyp
index e16b516..ed1425c 100644
--- a/extensions/extensions.gyp
+++ b/extensions/extensions.gyp
@@ -419,6 +419,8 @@
'renderer/console.h',
'renderer/event_bindings.cc',
'renderer/event_bindings.h',
+ 'renderer/extensions_renderer_client.cc',
+ 'renderer/extensions_renderer_client.h',
'renderer/module_system.cc',
'renderer/module_system.h',
'renderer/native_handler.cc',
diff --git a/extensions/renderer/extensions_renderer_client.cc b/extensions/renderer/extensions_renderer_client.cc
new file mode 100644
index 0000000..6fb5a96
--- /dev/null
+++ b/extensions/renderer/extensions_renderer_client.cc
@@ -0,0 +1,23 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "extensions/renderer/extensions_renderer_client.h"
+
+#include "base/basictypes.h"
+
+namespace extensions {
+
+namespace {
+
+ExtensionsRendererClient* g_client = NULL;
+
+} // namespace
+
+ExtensionsRendererClient* ExtensionsRendererClient::Get() { return g_client; }
+
+void ExtensionsRendererClient::Set(ExtensionsRendererClient* client) {
+ g_client = client;
+}
+
+} // namespace extensions
diff --git a/extensions/renderer/extensions_renderer_client.h b/extensions/renderer/extensions_renderer_client.h
new file mode 100644
index 0000000..b8f5255
--- /dev/null
+++ b/extensions/renderer/extensions_renderer_client.h
@@ -0,0 +1,37 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_
+#define EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_
+
+namespace extensions {
+
+// Interface to allow the extensions module to make render-process-specific
+// queries of the embedder. Should be Set() once in the render process.
+//
+// NOTE: Methods that do not require knowledge of renderer concepts should be
+// added in ExtensionsClient (extensions/common/extensions_client.h) even if
+// they are only used in the renderer process.
+class ExtensionsRendererClient {
+ public:
+ virtual ~ExtensionsRendererClient() {}
+
+ // Returns true if the current render process was launched incognito.
+ virtual bool IsIncognitoProcess() const = 0;
+
+ // Returns the lowest isolated world ID available to extensions.
+ // Must be greater than 0. See blink::WebFrame::executeScriptInIsolatedWorld
+ // (third_party/WebKit/public/web/WebFrame.h) for additional context.
+ virtual int GetLowestIsolatedWorldId() const = 0;
+
+ // Returns the single instance of |this|.
+ static ExtensionsRendererClient* Get();
+
+ // Initialize the single instance.
+ static void Set(ExtensionsRendererClient* client);
+};
+
+} // namespace extensions
+
+#endif // EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_