OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_APP_CHROME_MAIN_MAC_H_ | 5 #ifndef CHROME_APP_CHROME_MAIN_MAC_H_ |
6 #define CHROME_APP_CHROME_MAIN_MAC_H_ | 6 #define CHROME_APP_CHROME_MAIN_MAC_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 class FilePath; | 9 class FilePath; |
10 | 10 |
11 // Checks if the UserDataDir policy has been set and returns its value in the | 11 // Checks if the UserDataDir policy has been set and returns its value in the |
12 // |user_data_dir| parameter. If no policy is set the parameter is not changed. | 12 // |user_data_dir| parameter. If no policy is set the parameter is not changed. |
13 void CheckUserDataDirPolicy(FilePath* user_data_dir); | 13 void CheckUserDataDirPolicy(FilePath* user_data_dir); |
14 | 14 |
15 // Sets the app bundle (base::mac::MainAppBundle()) to the framework's bundle, | 15 // Sets the app bundle (base::mac::MainAppBundle()) to the framework's bundle, |
16 // and sets the base bundle ID (base::mac::BaseBundleID()) to the proper value | 16 // and sets the base bundle ID (base::mac::BaseBundleID()) to the proper value |
17 // based on the running application. The base bundle ID is the outer browser | 17 // based on the running application. The base bundle ID is the outer browser |
18 // application's bundle ID even when running in a non-browser (helper) | 18 // application's bundle ID even when running in a non-browser (helper) |
19 // process. | 19 // process. |
20 void SetUpBundleOverrides(); | 20 void SetUpBundleOverrides(); |
21 | 21 |
22 // Creates a bootstrap subset port as a subset of the current bootstrap port, | |
23 // tying its lifetime to the current task port, and switches the task's | |
24 // bootstrap port to the new bootstrap subset port. Any subsequent bootstrap | |
25 // servers created in the task via bootstrap_create_server and directed at the | |
26 // bootstrap port will be created in the bootstrap subset port, meaning that | |
27 // they will only be visible via bootstrap_look_up to this task and its | |
28 // children, and that these mappings will be destroyed along with the subset | |
29 // port as soon as this process exits. | |
30 // | |
31 // This scheme prevents bootstrap server mappings from leaking beyond this | |
32 // process' lifetime. It also prevents any mappings from being visible by any | |
33 // process other than this one and its children, but currently, nothing | |
34 // requires this behavior. If anything ever does, this function could save the | |
35 // original bootstrap port and make it available to things that need to call | |
36 // bootstrap_create_server and create mappings with the original bootstrap | |
37 // port. | |
38 // | |
39 // This needs to be called before anything calls bootstrap_create_server. | |
40 // Currently, the only things that create bootstrap server mappings are | |
41 // Breakpad and rohitfork. To look for other users, search for | |
42 // bootstrap_create_server and -[NSMachBootstrapServer registerPort:name:]. | |
43 void SwitchToMachBootstrapSubsetPort(); | |
44 | |
45 #endif // CHROME_APP_CHROME_MAIN_MAC_H_ | 22 #endif // CHROME_APP_CHROME_MAIN_MAC_H_ |
OLD | NEW |