1 // Copyright (c) 2012 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.
5 #ifndef COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_
6 #define COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_
10 #include "base/memory/ref_counted.h"
23 class NaClHostMessageFilter
;
26 // Opens NaCl Files in the Browser process, on behalf of the NaCl plugin.
28 namespace nacl_file_host
{
30 // Open a PNaCl file (readonly) on behalf of the NaCl plugin.
31 // If it is executable, registers the executable for validation caching.
32 // Otherwise, just opens the file read-only.
33 void GetReadonlyPnaclFd(
34 scoped_refptr
<nacl::NaClHostMessageFilter
> nacl_host_message_filter
,
35 const std::string
& filename
,
37 IPC::Message
* reply_msg
);
39 // Return true if the filename requested is valid for opening.
40 // Sets file_to_open to the base::FilePath which we will attempt to open.
41 bool PnaclCanOpenFile(const std::string
& filename
,
42 base::FilePath
* file_to_open
);
44 // Opens a NaCl executable file for reading and executing.
45 void OpenNaClExecutable(
46 scoped_refptr
<nacl::NaClHostMessageFilter
> nacl_host_message_filter
,
49 IPC::Message
* reply_msg
);
51 } // namespace nacl_file_host
53 #endif // COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_