1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_ 6 #define EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_ 7 8 class ResourceBundleSourceMap; 9 10 namespace extensions { 11 12 // Interface to allow the extensions module to make render-process-specific 13 // queries of the embedder. Should be Set() once in the render process. 14 // 15 // NOTE: Methods that do not require knowledge of renderer concepts should be 16 // added in ExtensionsClient (extensions/common/extensions_client.h) even if 17 // they are only used in the renderer process. 18 class ExtensionsRendererClient { 19 public: 20 virtual ~ExtensionsRendererClient() {} 21 22 // Returns true if the current render process was launched incognito. 23 virtual bool IsIncognitoProcess() const = 0; 24 25 // Returns the lowest isolated world ID available to extensions. 26 // Must be greater than 0. See blink::WebFrame::executeScriptInIsolatedWorld 27 // (third_party/WebKit/public/web/WebFrame.h) for additional context. 28 virtual int GetLowestIsolatedWorldId() const = 0; 29 30 // Returns the single instance of |this|. 31 static ExtensionsRendererClient* Get(); 32 33 // Initialize the single instance. 34 static void Set(ExtensionsRendererClient* client); 35 }; 36 37 } // namespace extensions 38 39 #endif // EXTENSIONS_RENDERER_EXTENSIONS_RENDERER_CLIENT_H_ 40