summaryrefslogtreecommitdiffstats
path: root/apps
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 /apps
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 'apps')
-rw-r--r--apps/shell/app_shell.gyp2
-rw-r--r--apps/shell/renderer/shell_content_renderer_client.cc4
-rw-r--r--apps/shell/renderer/shell_content_renderer_client.h2
-rw-r--r--apps/shell/renderer/shell_extensions_renderer_client.cc25
-rw-r--r--apps/shell/renderer/shell_extensions_renderer_client.h29
5 files changed, 62 insertions, 0 deletions
diff --git a/apps/shell/app_shell.gyp b/apps/shell/app_shell.gyp
index 368b97b..b4e31a0 100644
--- a/apps/shell/app_shell.gyp
+++ b/apps/shell/app_shell.gyp
@@ -119,6 +119,8 @@
'common/shell_extensions_client.h',
'renderer/shell_content_renderer_client.cc',
'renderer/shell_content_renderer_client.h',
+ 'renderer/shell_extensions_renderer_client.cc',
+ 'renderer/shell_extensions_renderer_client.h',
],
},
{
diff --git a/apps/shell/renderer/shell_content_renderer_client.cc b/apps/shell/renderer/shell_content_renderer_client.cc
index 71cf442..a0dffbd 100644
--- a/apps/shell/renderer/shell_content_renderer_client.cc
+++ b/apps/shell/renderer/shell_content_renderer_client.cc
@@ -5,6 +5,7 @@
#include "apps/shell/renderer/shell_content_renderer_client.h"
#include "apps/shell/common/shell_extensions_client.h"
+#include "apps/shell/renderer/shell_extensions_renderer_client.h"
#include "chrome/renderer/extensions/dispatcher.h"
#include "chrome/renderer/extensions/extension_helper.h"
#include "content/public/renderer/render_frame.h"
@@ -71,6 +72,9 @@ void ShellContentRendererClient::RenderThreadStarted() {
extensions_client_.reset(new ShellExtensionsClient);
extensions::ExtensionsClient::Set(extensions_client_.get());
+
+ extensions_renderer_client_.reset(new ShellExtensionsRendererClient);
+ extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get());
}
void ShellContentRendererClient::RenderFrameCreated(
diff --git a/apps/shell/renderer/shell_content_renderer_client.h b/apps/shell/renderer/shell_content_renderer_client.h
index 4f31225..4a34810 100644
--- a/apps/shell/renderer/shell_content_renderer_client.h
+++ b/apps/shell/renderer/shell_content_renderer_client.h
@@ -17,6 +17,7 @@ class Dispatcher;
namespace apps {
class ShellExtensionsClient;
+class ShellExtensionsRendererClient;
// Renderer initialization and runtime support for app_shell.
class ShellContentRendererClient : public content::ContentRendererClient {
@@ -41,6 +42,7 @@ class ShellContentRendererClient : public content::ContentRendererClient {
private:
scoped_ptr<ShellExtensionsClient> extensions_client_;
+ scoped_ptr<ShellExtensionsRendererClient> extensions_renderer_client_;
scoped_ptr<extensions::Dispatcher> extension_dispatcher_;
DISALLOW_COPY_AND_ASSIGN(ShellContentRendererClient);
diff --git a/apps/shell/renderer/shell_extensions_renderer_client.cc b/apps/shell/renderer/shell_extensions_renderer_client.cc
new file mode 100644
index 0000000..c5de265
--- /dev/null
+++ b/apps/shell/renderer/shell_extensions_renderer_client.cc
@@ -0,0 +1,25 @@
+// 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 "apps/shell/renderer/shell_extensions_renderer_client.h"
+
+namespace apps {
+
+ShellExtensionsRendererClient::ShellExtensionsRendererClient() {}
+
+ShellExtensionsRendererClient::~ShellExtensionsRendererClient() {}
+
+bool ShellExtensionsRendererClient::IsIncognitoProcess() const {
+ // app_shell doesn't support off-the-record contexts.
+ return false;
+}
+
+int ShellExtensionsRendererClient::GetLowestIsolatedWorldId() const {
+ // app_shell doesn't need to reserve world IDs for anything other than
+ // extensions, so we always return 1. Note that 0 is reserved for the global
+ // world.
+ return 1;
+}
+
+} // namespace apps
diff --git a/apps/shell/renderer/shell_extensions_renderer_client.h b/apps/shell/renderer/shell_extensions_renderer_client.h
new file mode 100644
index 0000000..7b32f90
--- /dev/null
+++ b/apps/shell/renderer/shell_extensions_renderer_client.h
@@ -0,0 +1,29 @@
+// 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 APPS_SHELL_RENDERER_SHELL_EXTENSIONS_RENDERER_CLIENT_H_
+#define APPS_SHELL_RENDERER_SHELL_EXTENSIONS_RENDERER_CLIENT_H_
+
+#include "base/macros.h"
+#include "extensions/renderer/extensions_renderer_client.h"
+
+namespace apps {
+
+class ShellExtensionsRendererClient
+ : public extensions::ExtensionsRendererClient {
+ public:
+ ShellExtensionsRendererClient();
+ virtual ~ShellExtensionsRendererClient();
+
+ // extensions::ExtensionsRendererClient implementation.
+ virtual bool IsIncognitoProcess() const OVERRIDE;
+ virtual int GetLowestIsolatedWorldId() const OVERRIDE;
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ShellExtensionsRendererClient);
+};
+
+} // namespace apps
+
+#endif // APPS_SHELL_RENDERER_SHELL_EXTENSIONS_RENDERER_CLIENT_H_