xref: /aosp_15_r20/external/cronet/components/nacl/browser/nacl_file_host.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2012 The Chromium Authors
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 COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_
6 #define COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_
7 
8 #include <string>
9 
10 #include "base/memory/ref_counted.h"
11 
12 class GURL;
13 
14 namespace base {
15 class FilePath;
16 }
17 
18 namespace IPC {
19 class Message;
20 }
21 
22 namespace nacl {
23 class NaClHostMessageFilter;
24 }
25 
26 // Opens NaCl Files in the Browser process, on behalf of the NaCl plugin.
27 
28 namespace nacl_file_host {
29 
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,
36     bool is_executable,
37     IPC::Message* reply_msg);
38 
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);
43 
44 // Opens a NaCl executable file for reading and executing.
45 void OpenNaClExecutable(
46     scoped_refptr<nacl::NaClHostMessageFilter> nacl_host_message_filter,
47     int render_frame_id,
48     const GURL& file_url,
49     IPC::Message* reply_msg);
50 
51 }  // namespace nacl_file_host
52 
53 #endif  // COMPONENTS_NACL_BROWSER_NACL_FILE_HOST_H_
54