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_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 6 #define EXTENSIONS_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/macros.h" 10 #include "components/nacl/browser/nacl_browser_delegate.h" 11 12 namespace content { 13 class BrowserContext; 14 } 15 16 namespace extensions { 17 class InfoMap; 18 19 // A lightweight NaClBrowserDelegate for app_shell. Only supports a single 20 // BrowserContext. 21 class ShellNaClBrowserDelegate : public NaClBrowserDelegate { 22 public: 23 // Uses |context| to look up extensions via InfoMap on the IO thread. 24 explicit ShellNaClBrowserDelegate(content::BrowserContext* context); 25 virtual ~ShellNaClBrowserDelegate(); 26 27 // NaClBrowserDelegate overrides: 28 virtual void ShowMissingArchInfobar(int render_process_id, 29 int render_view_id) OVERRIDE; 30 virtual bool DialogsAreSuppressed() OVERRIDE; 31 virtual bool GetCacheDirectory(base::FilePath* cache_dir) OVERRIDE; 32 virtual bool GetPluginDirectory(base::FilePath* plugin_dir) OVERRIDE; 33 virtual bool GetPnaclDirectory(base::FilePath* pnacl_dir) OVERRIDE; 34 virtual bool GetUserDirectory(base::FilePath* user_dir) OVERRIDE; 35 virtual std::string GetVersionString() const OVERRIDE; 36 virtual ppapi::host::HostFactory* CreatePpapiHostFactory( 37 content::BrowserPpapiHost* ppapi_host) OVERRIDE; 38 virtual bool MapUrlToLocalFilePath(const GURL& url, 39 bool is_blocking, 40 const base::FilePath& profile_directory, 41 base::FilePath* file_path) OVERRIDE; 42 virtual void SetDebugPatterns(std::string debug_patterns) OVERRIDE; 43 virtual bool URLMatchesDebugPatterns(const GURL& manifest_url) OVERRIDE; 44 virtual content::BrowserPpapiHost::OnKeepaliveCallback 45 GetOnKeepaliveCallback() OVERRIDE; 46 virtual bool IsNonSfiModeAllowed(const base::FilePath& profile_directory, 47 const GURL& manifest_url) OVERRIDE; 48 49 private: 50 content::BrowserContext* browser_context_; // Not owned. 51 52 DISALLOW_COPY_AND_ASSIGN(ShellNaClBrowserDelegate); 53 }; 54 55 } // namespace extensions 56 57 #endif // EXTENSIONS_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 58