diff options
author | rockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 03:39:35 +0000 |
---|---|---|
committer | rockot@chromium.org <rockot@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 03:39:35 +0000 |
commit | 60961f7cf8708f4af18961b51059cfd3b77a6f09 (patch) | |
tree | ccc527abe4e46909b78f3d0f63960101b5ed3b3d /apps | |
parent | 98cb9ff27bbead1151e161f516afc2a4b391536c (diff) | |
download | chromium_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.gyp | 2 | ||||
-rw-r--r-- | apps/shell/renderer/shell_content_renderer_client.cc | 4 | ||||
-rw-r--r-- | apps/shell/renderer/shell_content_renderer_client.h | 2 | ||||
-rw-r--r-- | apps/shell/renderer/shell_extensions_renderer_client.cc | 25 | ||||
-rw-r--r-- | apps/shell/renderer/shell_extensions_renderer_client.h | 29 |
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_ |