103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// found in the LICENSE file. 403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#ifndef EXTENSIONS_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#define EXTENSIONS_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/compiler_specific.h" 903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "base/macros.h" 1003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "components/nacl/browser/nacl_browser_delegate.h" 1103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace content { 1303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class BrowserContext; 1403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} 1503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace extensions { 1703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class InfoMap; 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 1903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// A lightweight NaClBrowserDelegate for app_shell. Only supports a single 2003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)// BrowserContext. 2103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class ShellNaClBrowserDelegate : public NaClBrowserDelegate { 2203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) public: 2303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) // Uses |context| to look up extensions via InfoMap on the IO thread. 2403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) explicit ShellNaClBrowserDelegate(content::BrowserContext* context); 2503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual ~ShellNaClBrowserDelegate(); 2603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) // NaClBrowserDelegate overrides: 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual void ShowMissingArchInfobar(int render_process_id, 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) int render_view_id) OVERRIDE; 3003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool DialogsAreSuppressed() OVERRIDE; 3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool GetCacheDirectory(base::FilePath* cache_dir) OVERRIDE; 3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool GetPluginDirectory(base::FilePath* plugin_dir) OVERRIDE; 3303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool GetPnaclDirectory(base::FilePath* pnacl_dir) OVERRIDE; 3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool GetUserDirectory(base::FilePath* user_dir) OVERRIDE; 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual std::string GetVersionString() const OVERRIDE; 3603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual ppapi::host::HostFactory* CreatePpapiHostFactory( 3703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) content::BrowserPpapiHost* ppapi_host) OVERRIDE; 3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool MapUrlToLocalFilePath(const GURL& url, 3903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) bool is_blocking, 4003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::FilePath& profile_directory, 4103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) base::FilePath* file_path) OVERRIDE; 4203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual void SetDebugPatterns(std::string debug_patterns) OVERRIDE; 4303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool URLMatchesDebugPatterns(const GURL& manifest_url) OVERRIDE; 4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual content::BrowserPpapiHost::OnKeepaliveCallback 4503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) GetOnKeepaliveCallback() OVERRIDE; 4603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) virtual bool IsNonSfiModeAllowed(const base::FilePath& profile_directory, 4703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const GURL& manifest_url) OVERRIDE; 4803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 4903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) private: 5003b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) content::BrowserContext* browser_context_; // Not owned. 5103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 5203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ShellNaClBrowserDelegate); 5303b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}; 5403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 5503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)} // namespace extensions 5603b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) 5703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#endif // EXTENSIONS_SHELL_BROWSER_SHELL_NACL_BROWSER_DELEGATE_H_ 58