| OLD | NEW |
| 1 ;; | 1 ;; |
| 2 ;; Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 ;; Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 ;; Use of this source code is governed by a BSD-style license that can be | 3 ;; Use of this source code is governed by a BSD-style license that can be |
| 4 ;; found in the LICENSE file. | 4 ;; found in the LICENSE file. |
| 5 ;; | 5 ;; |
| 6 ; This configuration file isn't used on it's own, but instead implicitly | 6 ; This configuration file isn't used on it's own, but instead implicitly |
| 7 ; included at the start of all other sandbox configuration files in Chrome. | 7 ; included at the start of all other sandbox configuration files in Chrome. |
| 8 (version 1) | 8 (version 1) |
| 9 | 9 |
| 10 ; Helper function to check if a param is set to true. | 10 ; DISABLE_SANDBOX_DENIAL_LOGGING expands to syntax that turns off log message |
| 11 (define (param-true? str) (string=? (param str) "TRUE")) | 11 ; printing on sandbox exceptions; this functionality only exists on 10.6. The |
| 12 | 12 ; --enable-sandbox-logging flag or system versions <10.6 cause this flag to |
| 13 ; Helper function to determine if a parameter is defined or not. | 13 ; expand to an empty string. http://crbug.com/26621 |
| 14 (define (param-defined? str) (string? (param str))) | 14 (deny default @DISABLE_SANDBOX_DENIAL_LOGGING@) |
| 15 | |
| 16 ; Define constants for all of the parameter strings passed in. | |
| 17 (define disable-sandbox-denial-logging "DISABLE_SANDBOX_DENIAL_LOGGING") | |
| 18 (define enable-logging "ENABLE_LOGGING") | |
| 19 (define component-build-workaround "COMPONENT_BUILD_WORKAROUND") | |
| 20 (define permitted-dir "PERMITTED_DIR") | |
| 21 (define lion-or-later "LION_OR_LATER") | |
| 22 (define homedir-as-literal "USER_HOMEDIR_AS_LITERAL") | |
| 23 | |
| 24 ; Consumes a subpath and appends it to the user's homedir path. | |
| 25 (define (user-homedir-path subpath) (string-append (param homedir-as-literal) su
bpath)) | |
| 26 | |
| 27 ; DISABLE_SANDBOX_DENIAL_LOGGING turns off log messages in the system log. | |
| 28 (if (param-true? disable-sandbox-denial-logging) | |
| 29 (deny default (with no-log)) | |
| 30 (deny default)) | |
| 31 | 15 |
| 32 ; Support for programmatically enabling verbose debugging. | 16 ; Support for programmatically enabling verbose debugging. |
| 33 (if (param-true? enable-logging) (debug deny)) | 17 ;ENABLE_LOGGING (debug deny) |
| 34 | 18 |
| 35 ; Allow sending signals to self - http://crbug.com/20370 | 19 ; Allow sending signals to self - http://crbug.com/20370 |
| 36 (allow signal (target self)) | 20 (allow signal (target self)) |
| 37 | 21 |
| 38 ; Needed for full-page-zoomed controls - http://crbug.com/11325 | 22 ; Needed for full-page-zoomed controls - http://crbug.com/11325 |
| 39 (allow sysctl-read) | 23 (allow sysctl-read) |
| 40 | 24 |
| 25 ; Each line is marked with the System version that needs it. |
| 26 ; This profile is tested with the following system versions: |
| 27 ; 10.5.6, 10.6 |
| 28 |
| 41 ; Loading System Libraries. | 29 ; Loading System Libraries. |
| 42 (allow file-read* | 30 (allow file-read* |
| 43 (regex #"^/System/Library/Frameworks($|/)") | 31 (regex #"^/System/Library/Frameworks($|/)") |
| 44 (regex #"^/System/Library/PrivateFrameworks($|/)") | 32 (regex #"^/System/Library/PrivateFrameworks($|/)") |
| 45 (regex #"^/System/Library/CoreServices($|/)")) | 33 (regex #"^/System/Library/CoreServices($|/)")) ; 10.5.6 |
| 46 | 34 |
| 35 ; Needed for IPC on 10.6 |
| 47 (allow ipc-posix-shm) | 36 (allow ipc-posix-shm) |
| 48 | 37 |
| 49 ; Allow direct access to /dev/urandom, similar to Linux/POSIX, to allow | 38 ; Allow direct access to /dev/urandom, similar to Linux/POSIX, to allow |
| 50 ; third party code (eg: bits of Adobe Flash and NSS) to function properly. | 39 ; third party code (eg: bits of Adobe Flash and NSS) to function properly. |
| 51 (allow file-read-data file-read-metadata (literal "/dev/urandom")) | 40 (allow file-read-data file-read-metadata (literal "/dev/urandom")) |
| 52 | 41 |
| 42 ; Component build workaround for a dyld bug, used on OS X <= 10.6. |
| 53 ; Enables reading file metadata for the Chrome bundle and its parent paths. | 43 ; Enables reading file metadata for the Chrome bundle and its parent paths. |
| 54 ; http://crbug.com/127465 | 44 ; http://crbug.com/127465 |
| 55 (if (and (param-defined? component-build-workaround) | 45 @COMPONENT_BUILD_WORKAROUND@ |
| 56 (param-true? component-build-workaround)) | |
| 57 (allow file-read-metadata )) | |
| OLD | NEW |