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 /extensions | |
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 'extensions')
-rw-r--r-- | extensions/extensions.gyp | 2 | ||||
-rw-r--r-- | extensions/renderer/extensions_renderer_client.cc | 23 | ||||
-rw-r--r-- | extensions/renderer/extensions_renderer_client.h | 37 |
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_ |